commit 6dcc0888857ecf9a28394ccc3548fc2e8a751dc8 Author: Defeng Date: Wed Jul 29 18:10:19 2026 +0800 Initial commit diff --git a/.env b/.env new file mode 100644 index 0000000..5aec3bd --- /dev/null +++ b/.env @@ -0,0 +1,42 @@ +#大模型API地址 +OPENAI_API_BASE=http://192.168.0.46:59800/v1 +#大模型API密钥 +OPENAI_API_KEY=gpustack_dee9ca823290886c_5edfc86aeeeceb1e9ee5162941cb2cb5 +#Embedding 模型地址 : +OPENAI_API_EMBEDDING_BASE=http://172.18.30.122:40044/v1 +# OPENAI_API_EMBEDDING_BASE=http://172.18.127.124:40050/v1 +#Embedding 模型名称 +OPENAI_EMBEDDING_MODEL=bge-m3 +# OPENAI_EMBEDDING_MODEL=Qwen3-Embedding +#大模型名称 +# OPENAI_MODEL=Qwen3.5-35B-A3B +OPENAI_MODEL=Qwen3-32B +#重排序模型地址 +OPENAI_API_RERANKER_BASE=http://172.18.30.122:40014/v1 +# OPENAI_API_RERANKER_BASE=http://172.18.127.124:40022/v1 +#重排序模型名称 +OPENAI_RERANKER_MODEL=bge-rerank +# OPENAI_RERANKER_MODEL=Qwen3-Reranker-8B +#向量数据库用户名 +Milvus_USER=user +#向量数据库密码 +Milvus_PASSWORD=password +#向量数据库地址 +Milvus_URI=http://192.168.0.46:59530 +#文档解析 +Mineru_URL=http://172.18.30.122:9988 +#word 转pdf +CONVERT_DOC_URL=http://172.18.30.122:9000 +#3D_模型召回 置信度 +3D_RECALL_SCORE = 0.3 +#服务器所在地址 +HOST_IP=http://172.18.30.122:9988 + +# neo4j +NEO4J_URI=bolt://192.168.0.46:57687 +NEO4J_USERNAME=neo4j +#NEO4J_PASSWORD=123456hdf +NEO4J_PASSWORD=zdht123@ +//NEO4J_URI=neo4j://192.168.0.46:7687 +//NEO4J_USER=neo4j +//NEO4J_PASSWORD=123456hdf diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..80a6dfd --- /dev/null +++ b/.env.example @@ -0,0 +1,22 @@ +#大模型API地址 +OPENAI_API_BASE=http://172.18.127.124:40058/v1 +#大模型API密钥 +OPENAI_API_KEY=gpustack_dee9ca823290886c_5edfc86aeeeceb1e9ee5162941cb2cb5 +#Embedding 模型地址 : +OPENAI_API_EMBEDDING_BASE=http://172.18.127.124:40023/v1 +#Embedding 模型名称 +OPENAI_EMBEDDING_MODEL=bge-m3 +#大模型名称 +OPENAI_MODEL=qwen3-32b-gguf +#重排序模型地址 +OPENAI_API_RERANKER_BASE=http://172.18.30.122:20507/v1 +#重排序模型名称 +OPENAI_RERANKER_MODEL=bge-rerank +#向量数据库用户名 +Milvus_USER=user +#向量数据库密码 +Milvus_PASSWORD=password +#向量数据库地址 +Milvus_URI=http://172.18.30.122:19530 +#文档解析 +Mineru_URL=http://172.18.30.122:9988 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..3e255f3 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +docker-images/*.tar.gz filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e7d3622 --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +__pycache__/ +*.py[cod] +.pytest_cache/ +.cache/ + +*.log +*.tmp +*.swp +.DS_Store +.nfs* + +files/ +files_part1/ +mineru_output/ +kg_output/ +parsefiles/ +upload/ + +output*.json +output*.txt +result_tmp.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..c4f7f58 --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +# KGRAG 镜像和代码备份 + +来源设备:`192.168.1.108` + +原始代码路径:`/home/workspace/kgrag` + +镜像名称:`kgrag:arm64` + +## 主要内容 + +- `app.py`:KGRAG 服务主程序 +- `requirements.txt`:Python 依赖 +- `start.sh` / `stop.sh`:启动和停止脚本 +- `docker-images/kgrag_arm64.docker-save.tar.gz`:`kgrag:arm64` 镜像备份 + +## 已清理内容 + +本仓库未上传运行输出、上传文件、日志、缓存、原 `.git` 目录,以及 `.bak` 或带日期后缀的历史备份文件。 + +## 大文件下载 + +本仓库使用 Git LFS 保存 Docker 镜像包。 + +克隆仓库后执行: + +```bash +git lfs install +git lfs pull +``` + +如果镜像文件内容是 `version https://git-lfs.github.com/spec/v1`,说明当前只是 LFS 指针文件,还需要执行 `git lfs pull` 下载真实文件。 + +## 恢复镜像 + +```bash +gunzip -c docker-images/kgrag_arm64.docker-save.tar.gz | docker load +``` diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/aiofiles-25.1.0-py3-none-any.whl b/aiofiles-25.1.0-py3-none-any.whl new file mode 100644 index 0000000..e0d06a8 Binary files /dev/null and b/aiofiles-25.1.0-py3-none-any.whl differ diff --git a/app.py b/app.py new file mode 100644 index 0000000..ff16851 --- /dev/null +++ b/app.py @@ -0,0 +1,2932 @@ +from filename_proceess_and_kgquery import build_graph_from_paths, fetch_graph_sample, node_to_json, rel_to_json +from graph_search.operation_graph_search import operation_graph_search +from graph_search.fault_graph_search import fault_graph_reason_and_projects +from contextlib import asynccontextmanager +from langchain_community.graphs import Neo4jGraph +from neo4j import GraphDatabase +from neo4j.exceptions import Neo4jError +from fastapi.concurrency import run_in_threadpool +from io import BytesIO +import aiofiles +import hashlib +import logging +import random +import os +import re +import tempfile +import mimetypes +import time +import asyncio +from fastapi import FastAPI, File, Path, UploadFile, HTTPException, Form, Request, Header, Body, BackgroundTasks +from fastapi.responses import JSONResponse, StreamingResponse +from modelsAPI.model_api import OpenaiAPI +from fastapi.middleware.cors import CORSMiddleware +from pydantic import BaseModel, Field +from dotenv import load_dotenv +from pathlib import PurePath, Path as PathLib +import httpx +import pdfplumber +from typing import List, Optional, Dict +from collections import defaultdict +from fuzzywuzzy import fuzz, process +from collections import defaultdict, Counter +from kg_build.filter_node_relation import filter_node_relationship +from kg_build.kg_save import MilitaryKnowledgeGraph +from kgbuild.table_html_extract import extract_operation_tables, extract_repair_tables_keep_first, extract_tables +from kgbuild.entity_rela_reset import create_extraction_prompt +from filename_proceess_and_kgquery import get_entity,build_tree +from typing import List, Dict, Optional, Union, Any, Tuple +from pydantic import BaseModel +from dataprocess import _split_markdown +import uuid +import json +from fileparse_util import process_document, extract_image_caption +# import hanlp +from itertools import groupby +import requests +from datetime import datetime +from excel_process import transform_excel_json, read_excel_with_merged_cells, dataframe_to_row_json, json_to_markdown +import traceback +import signal +import threading +from multiprocessing import Process, Queue +import asyncio +from fastapi.staticfiles import StaticFiles +from extract_text_node_relation import get_md_node_relation, check_filename_ocr, process_file_content +from concurrent.futures import ThreadPoolExecutor +import base64 +from extract_excel_node_relation import get_excel_node_relation +from doc2pdf import Doc2PDF +from chunk_text import get_chunk_bbox, split_text_preserve_sentences, data_replace, chunk_check,merge_short_slices,find_and_read_content_list,process_pdf_file,process_other_file,safe_original_filename,image_base64_to_data_url,extract_image_text,prepare_split_image +from filename_proceess_and_kgquery import get_entity +from kg_build.extract_filtertext import get_filtertext_node_relation +import os +import logging +import sys +import asyncio +from time import sleep +from graph_search.Hybrid_graphsearch import ( + retrieve_entities, + query_with_cypher, + fetch_relations_among_results, + format_relations, + LocalBgeM3Embeddings, +) +from neo4j import AsyncGraphDatabase, GraphDatabase +from graph_search.cypher_excute import excute_cypher +if sys.platform == "win32": + asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) +from contextlib import asynccontextmanager +import mimetypes +from default_ontology_config import ( + ONTOLOGY as ontology, + ONTOLOGY_DESCRIPTION as Ontology_DESCRIPTION, + NODE_TYPES as node_types, + RELATIONSHIPS as relationships, + RELATIONSHIP_TYPES as relationship_types, + # 也可以导入便捷函数 + get_ontology_config, + get_ontology_list, + get_ontology_description, + get_node_types, + get_relationships, + get_relationship_types, +) +from config import NEO4J_CONFIG,URL,API_URLS,API_OTHER_URLS,VLM_CONCURRENCY,SEARCH_DIR +converter = Doc2PDF() +DATA_DIR = "/app/files" +# ================== 全局资源容器 ================== +# 用一个字典持有重资源,避免每次请求都重建 +_resources: Dict[str, Any] = { + "sync_driver": None, + "async_driver": None, + "embedder": None, +} +# 图谱检索和索引生成 +try: + from graph_search.graph_service import GraphService + from neo4j_indexing import build_hybrid_indexes + INDEXING_AVAILABLE = True + GRAPH_AVAILABLE = True +except ImportError as e: + INDEXING_AVAILABLE = False + GRAPH_AVAILABLE = False + + +kg_running_tasks: Dict[str, dict] = {} +_neo4j_indexing_lock = asyncio.Lock() + + +def setup_logging(): + fmt = "%(asctime)s - %(levelname)s - %(name)s - %(message)s" + handlers = [ + logging.StreamHandler(), + logging.FileHandler("app.log", encoding="utf-8"), + ] + logging.basicConfig(level=logging.INFO, format=fmt, handlers=handlers, force=True) + logging.disable(logging.NOTSET) + for name in list(logging.root.manager.loggerDict.keys()): + lg = logging.getLogger(name) + lg.disabled = False + lg.setLevel(logging.NOTSET) # ← 加这行,强制清除所有子 logger 的独立 level + for name in ("uvicorn", "uvicorn.error", "uvicorn.access"): + uv_logger = logging.getLogger(name) + uv_logger.handlers = list(handlers) + uv_logger.propagate = False + +@asynccontextmanager +async def lifespan(app): + setup_logging() + """应用启动时初始化驱动和 embedder,关闭时释放。""" + logger.info("[lifespan] 初始化 Neo4j 驱动与 embedder ...") + + # 同步驱动(HybridCypherRetriever 用) + _resources["sync_driver"] = GraphDatabase.driver(NEO4J_URI, auth=("neo4j", "zdht123@")) + + # 异步驱动(fulltext 检索 + Cypher 执行用) + _resources["async_driver"] = AsyncGraphDatabase.driver(NEO4J_URI, auth=("neo4j", "zdht123@")) + + # embedder + _resources["embedder"] = LocalBgeM3Embeddings( + base_url=os.getenv("LOCAL_EMBEDDING_BASE"), + api_key=os.getenv("LOCAL_API_KEY"), + ) + + logger.info("[lifespan] 初始化完成") + try: + yield + finally: + logger.info("[lifespan] 释放资源 ...") + if _resources["sync_driver"] is not None: + _resources["sync_driver"].close() + if _resources["async_driver"] is not None: + await _resources["async_driver"].close() + logger.info("[lifespan] 资源已释放") + yield + + +app = FastAPI(max_request_size=1024 * 1024 * 10, lifespan=lifespan) +VLM_SEMAPHORE = asyncio.Semaphore(max(1, VLM_CONCURRENCY)) + +setup_logging() +logger = logging.getLogger(__name__) + +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], # Allow all origins + allow_credentials=True, + allow_methods=["*"], # Allow all HTTP methods + allow_headers=["*"], # Allow all headers +) + + + + + +app.mount("/upload", StaticFiles(directory="/app/files/uploads_v1"), name="upload") +app.mount("/files", StaticFiles(directory="/app/files"), name="files") + + +""" +图查询接口 +""" + +load_dotenv() +# ===== 本地 Neo4j 强制配置 ===== +# NEO4J_URI = os.getenv("NEO4J_URI", "bolt://localhost:7687") +# NEO4J_URI = os.getenv("NEO4J_URI", "bolt://localhost:7687") +NEO4J_URI = NEO4J_CONFIG["uri"] +NEO4J_USER = NEO4J_CONFIG["username"] +NEO4J_PASSWORD = NEO4J_CONFIG["password"] # 不设默认值,强制要求提供 +NEO4J_DATABASE =NEO4J_CONFIG["database"] +indexing_url = URL['indexing_url'] # 根据实际部署调整 +PREFIX_URL = URL['prefix_url'] +API_URLS = API_URLS +API_other_URLS = API_OTHER_URLS + +_api_url_inflight = [0] * len(API_URLS) +_api_url_lock = threading.Lock() + + +def get_api_url(task_id: str = "") -> tuple: + """返回 (analyze_url, contentlist_url),选当前 inflight 最少的实例。""" + with _api_url_lock: + idx = _api_url_inflight.index(min(_api_url_inflight)) + _api_url_inflight[idx] += 1 + base = API_URLS[idx] + return base, base.replace("/analyze-pdf", "/analyze-otherfile") + + +def release_api_url(url: str): + with _api_url_lock: + if url in API_URLS: + idx = API_URLS.index(url) + _api_url_inflight[idx] = max(0, _api_url_inflight[idx] - 1) + + +# 可选:如果密码未设置,抛出明确错误 +if NEO4J_PASSWORD is None: + raise ValueError("Environment variable 'NEO4J_PASSWORD' is required.") + +driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASSWORD), database=NEO4J_DATABASE) + +DEFAULT_ONTOLOGY: list = ontology + +DEFAULT_ONTOLOGY_DESCRIPTION: dict = Ontology_DESCRIPTION + +DEFAULT_NODE_TYPES: dict = node_types + +DEFAULT_RELATIONSHIPS: list = relationships + +DEFAULT_RELATIONSHIP_TYPES: dict = relationship_types + + +# ============================================================ +# 2. 合并工具函数 +# 规则: +# - dict → 以默认值为底,用户值 key 已存在则合并 value list; +# key 不存在则直接新增 +# ============================================================ + + +def _merge_list(default: list, user: list | None) -> list: + """去重合并两个列表,保持默认顺序,用户新增项追加到末尾。""" + if not user: + return list(default) + merged = list(default) + for item in user: + if item not in merged: + merged.append(item) + return merged + + +def _merge_dict_of_lists(default: dict, user: dict | None) -> dict: + """ + 合并两个 {key: list} 结构的字典。 + - key 存在于 default:合并 list(去重),用户值追加到末尾 + - key 只存在于 user:直接新增 + """ + if not user: + return {k: list(v) for k, v in default.items()} + merged = {k: list(v) for k, v in default.items()} + for key, val in user.items(): + if key in merged: + for item in val: + if item not in merged[key]: + merged[key].append(item) + else: + merged[key] = list(val) + return merged + + +def _load_registry_config(): + """每次调用都从 entity_registry.json 读取最新注册的实体类型,无需重启生效。""" + try: + import importlib + import entity_registry as _reg + + importlib.reload(_reg) # 强制重新读文件 + return _reg.get_ontology_list(), _reg.get_ontology_description(), _reg.get_node_types() + except Exception: + return [], {}, {} + + +def build_kg_config( + user_ontology: list | None, + user_ontology_desc: dict | None, + user_relationships: list | None, + user_node_types: dict | None, + user_relationship_types: dict | None, +) -> dict: + """ + 将用户传入的参数与全局默认值合并,返回最终执行配置。 + 任何字段未传(None)时直接使用默认值;传了则合并。 + registry 中的新类型每次请求动态合并,无需重启。 + """ + reg_list, reg_desc, reg_nodes = _load_registry_config() + ontology = _merge_list(DEFAULT_ONTOLOGY, reg_list) + ontology_desc = {**reg_desc, **DEFAULT_ONTOLOGY_DESCRIPTION} # 手写配置优先 + node_types = {**reg_nodes, **DEFAULT_NODE_TYPES} # 手写配置优先 + + return { + "ontology": _merge_list(ontology, user_ontology), + "ontology_description": _merge_dict_of_lists(ontology_desc, user_ontology_desc), + "relationships": _merge_list(DEFAULT_RELATIONSHIPS, user_relationships), + "node_types": _merge_dict_of_lists(node_types, user_node_types), + "relationship_types": _merge_dict_of_lists(DEFAULT_RELATIONSHIP_TYPES, user_relationship_types), + } + + +# ============================================================ +# 3. 修改后的 Pydantic 模型 +# 所有字段改为 Optional(默认 None),表示"用户未传" +# 真正的默认值由 build_kg_config() 在运行时合并产生 +# ============================================================ + + +class FileContent(BaseModel): + """单个文件""" + + file_name: str + + # 修改:改为可选,默认为空字符串 + markdown_content: str = Field(default="", description="Markdown格式的内容") + + # 修改:改为可选,默认为空列表 + # 注意:List[Dict[str, Any]] 不能直接赋值 default=[],需要用 Field 或 default_factory 防止引用共享 + content_middle: List[Dict[str, Any]] = Field(default_factory=list, description="中间处理结果") + file_base64: str = Field(default="", description="文件内容的Base64编码字符串", validate_default=True) + + +class KGRequest(BaseModel): + task_id: str + files: Union[FileContent, List[FileContent]] + + # 全部改为 Optional[...] = None,不再在模型层携带默认值 + ontology: Optional[List[str]] = None + Ontology_DESCRIPTION: Optional[Dict[str, List[str]]] = None + relationships: Optional[List[str]] = None + node_types: Optional[Dict[str, List[str]]] = None + relationship_types: Optional[Dict[str, List[str]]] = None + + +class FileContentReset(BaseModel): + """单个文件""" + + file_name: str # 保留文件名(可用于日志或调试) + markdown_content: str + + +class resetRequest(BaseModel): + files: Union[FileContentReset, List[FileContentReset]] + + ontology: Optional[List[str]] = None + Ontology_DESCRIPTION: Optional[Dict[str, List[str]]] = None + relationships: Optional[List[str]] = None + node_types: Optional[Dict[str, List[str]]] = None + relationship_types: Optional[Dict[str, List[str]]] = None + + +def clear_database(): + graph = Neo4jGraph( + refresh_schema=False, url=NEO4J_URI, username=NEO4J_USER, password=NEO4J_PASSWORD, database=NEO4J_DATABASE + ) + # 清空数据库内容 + graph.query("MATCH (n) DETACH DELETE n") + + +# ========================= +# 接口:head / tail / 查询,并返回最短路径。node+depth查询 +# ======================== + + +def add_node_style(node): + node_type = node.get("labels", []) + if node_type and len(node_type) > 0: + node_type = node_type[0] + else: + node_type = "" + + if node_type == "舰艇": + node["color"] = "#F89A64" + node["size"] = 86 + elif node_type == "系统": + node["color"] = "#C25C21" + node["size"] = 86 + elif node_type == "子系统": + node["color"] = "#7D2D00" + node["size"] = 86 + elif node_type == "设备": + node["color"] = "#540702C1" + node["size"] = 86 + elif node_type in [ + "功能", + "环境条件", + "接口", + "安全警告", + "调试", + "器材保障", + "图册", + "设计单位", + "维修项目", + "操作项目", + ]: + node["color"] = "#2261DF" + node["size"] = 52 + else: + node["color"] = "#68C3FF" + node["size"] = 53 + + return node + + +def add_link_style(link, nodes_dict): + source_id = link.get("source") + target_id = link.get("target") + + source_type = "" + target_type = "" + + if source_id and source_id in nodes_dict: + source_labels = nodes_dict[source_id].get("labels", []) + if source_labels and len(source_labels) > 0: + source_type = source_labels[0] + + if target_id and target_id in nodes_dict: + target_labels = nodes_dict[target_id].get("labels", []) + if target_labels and len(target_labels) > 0: + target_type = target_labels[0] + + hierarchy_types = ["舰艇", "系统", "子系统", "设备"] + if source_type in hierarchy_types and target_type in hierarchy_types: + link["color"] = "#F59E0B" + else: + link["color"] = "#FFFFFF" + + return link + + +def apply_styles(graph_data): + nodes = graph_data.get("nodes", []) + links = graph_data.get("links", []) + + nodes_dict = {n.get("id"): n for n in nodes if n.get("id")} + + for node in nodes: + add_node_style(node) + + for link in links: + add_link_style(link, nodes_dict) + + return graph_data + + +class GraphQueryRequest(BaseModel): + filename: Optional[str] = None + queryview: Optional[str] = None + querylink: Optional[str] = None + head: Optional[str] = None + tail: Optional[str] = None + node: Optional[str] = None + source_node: Optional[str] = None + # 在这里设置默认值为 1 + depth: Optional[int] = 1 + simple_graphData_copy: Optional[Dict[str, Any]] = None + + +@app.post("/api/v2/neo4j/query") +async def graph_query(request: GraphQueryRequest): + """ + 返回结构: + { + "message": str, + "simple_graphData": {...}, # 200节点采样(带 level 属性) + "graphData": {...}, # 查询结果图(头尾路径 / 节点展开等) + "short_routes": {...} # 最短路径(仅头尾模式有效) + } + """ + filename = request.filename + queryview = request.queryview + querylink = request.querylink + head = request.head + tail = request.tail + node = request.node + depth = request.depth + source_node = request.source_node + simple_graphData_copy = request.simple_graphData_copy + + simple_graphData = {"nodes": [], "links": []} + + logger.info("Fetching graph sample") + try: + # 只有当没有特定查询意图(头、尾、节点、文件名、视图)时,才加载全量采样 + if not any([filename, queryview, head, tail, node]): + simple_graphData = await run_in_threadpool(fetch_graph_sample, driver) + # # 处理外部传入的 copy 数据 (如果存在) + if simple_graphData_copy: + # 注意:这里假设传入的结构是 {"simple_graphData_copy": {...}} + # 如果传入的就是图数据本身,请调整 key 的访问方式 + data_source = simple_graphData_copy.get("simple_graphData_copy", simple_graphData_copy) + + # 删除 labels 字段(如果存在) + data_source.pop("labels", None) + + # 删除 nodes 中每个 node 的 color 字段 + for n in data_source.get("nodes", []): + if isinstance(n, dict): + n.pop("color", None) + + # 更新 simple_graphData 为处理后的数据 + simple_graphData = data_source + + except Exception: + logger.exception("Neo4j sample query error") + # 可以选择继续执行(使用空图),或者抛出错误 + # 这里选择继续执行,simple_graphData 保持为空或默认值 + simple_graphData = {"nodes": [], "links": []} + + def db_task(): + try: + with driver.session() as session: + # 默认返回值 + res = { + "graphData": {"nodes": [], "links": []}, + "short_routes": {"nodes": [], "links": []}, + "message": "", + } + + # =============================== + # 情况 1: 头尾节点都有 + # =============================== + if head and tail: + logger.info(f"Mode: HEAD + TAIL | {head} -> {tail}") + h_exists = session.run("MATCH (h {名称: $head}) RETURN h", head=head).single() + t_exists = session.run("MATCH (t {名称: $tail}) RETURN t", tail=tail).single() + + if h_exists and t_exists: + res["message"] = "头节点和尾节点展开成功" + if not h_exists and not t_exists: + res["message"] = "头节点和尾节点均不存在" + res["graphData"] = {"nodes": [], "links": []} + return res + elif not h_exists: + res["message"] = "头节点不存在" + # 返回存在的尾节点(如果存在) + nodes_list = [] + if t_exists: + nodes_list.append(node_to_json(t_exists["t"])) + res["graphData"] = {"nodes": nodes_list, "links": []} + return res + elif not t_exists: + res["message"] = "尾节点不存在" + nodes_list = [node_to_json(h_exists["h"])] + res["graphData"] = {"nodes": nodes_list, "links": []} + return res + + # 两者都存在,查路径 + sp_paths = list( + session.run( + """ + MATCH path = allShortestPaths((h {名称: $head})-[*1..10]->(t {名称: $tail})) + RETURN path AS p + """, + head=head, + tail=tail, + ) + ) + + all_paths = list( + session.run( + """ + MATCH path = (h {名称: $head})-[*1..10]->(t {名称: $tail}) + UNWIND nodes(path) AS x + WITH path, COUNT(DISTINCT x) AS nodeCount + WHERE nodeCount = LENGTH(path) + 1 + RETURN path AS p + """, + head=head, + tail=tail, + ) + ) + + if not sp_paths and not all_paths: + # 无连接,返回两个孤立节点 + nodes_list = [node_to_json(h_exists["h"]), node_to_json(t_exists["t"])] + res["graphData"] = {"nodes": nodes_list, "links": []} + res["short_routes"] = {"nodes": [], "links": []} + else: + res["graphData"] = build_graph_from_paths(all_paths) + res["short_routes"] = build_graph_from_paths(sp_paths) + # === 新增:为 graphData 中每个节点计算 level(最大无向跳数,≤3)=== + nodes_list = res["graphData"]["nodes"] + if not nodes_list: + return res + + # 确保每个节点都有 "名称" + valid_nodes = [n for n in nodes_list if "name" in n and n["name"]] + node_names = [n["name"] for n in valid_nodes] + name_to_node = {n["name"]: n for n in valid_nodes} + for name in node_names: + try: + result = session.run( + """ + MATCH (start {名称: $name}) + OPTIONAL MATCH path = (start)-[*1]-(end) + WHERE start <> end + RETURN coalesce(max(length(path)), 0) AS max_level + """, + name=name, + ).single() + + if result: + level = min(result["max_level"], 3) + name_to_node[name]["level"] = level + else: + name_to_node[name]["level"] = 0 + except Exception as e: + logger.warning(f"Failed to compute level for {name}: {e}") + name_to_node[name]["level"] = 0 + + apply_styles(res["graphData"]) + apply_styles(res["short_routes"]) + return res + + # =============================== + # 情况 2: 单节点查询 + # =============================== + elif node: + logger.info(f"Mode: NODE (1-hop only) | {node}") + # === 只查询 1 跳关系 === + paths = session.run( + """ + MATCH path = (n {名称: $node})-[*1]-(m) + UNWIND nodes(path) AS x + WITH path, COUNT(DISTINCT x) AS nodeCount + WHERE nodeCount = LENGTH(path) + 1 + RETURN path AS p + """, + node=node, + ) + + # 构建图 + graph = build_graph_from_paths(paths) + + # ============================== + # ✅ 新增:节点类型过滤(核心) + # ============================== + FILTER_TYPES = { + "功能", + "环境条件", + "组成", + "技术指标参数", + "接口", + "安全警告", + "操作使用", + "维修工作", + "调试", + "器材保障", + "图册", + "试验鉴定", + "设计单位", + "组成部件", + "无人机", + "无人机性能", + "外部设备", + "维修", + "操作", + "故障", + "舰艇", + "系统", + "子系统", + "设备", + } + + nodes = graph.get("nodes", []) + links = graph.get("links", []) + + # 👉 1. 过滤节点(注意字段名) + filtered_nodes = [ + n + for n in nodes + if n.get("labels")[0] in FILTER_TYPES # ⚠️ type 要和你的结构一致 + ] + + # 👉 2. 保留合法节点ID + valid_ids = {n["id"] for n in filtered_nodes} + + # 👉 3. 过滤边(避免“断边”) + filtered_links = [l for l in links if l.get("source") in valid_ids and l.get("target") in valid_ids] + + # 👉 4. 回写 graph + graph["nodes"] = filtered_nodes + graph["links"] = filtered_links + + # ============================== + + center_node_result = session.run("MATCH (n {名称: $node}) RETURN n", node=node).single() + + center_node_json = None + if center_node_result: + center_node_json = node_to_json(center_node_result["n"]) + + short_routes = {"nodes": [center_node_json] if center_node_json else [], "links": []} + + res["short_routes"] = short_routes + res["graphData"] = graph + + # === level 计算 === + nodes_list = graph.get("nodes", []) + if not nodes_list: + res["message"] = "未查询到相关节点" + return res + + valid_nodes = [n for n in nodes_list if n.get("name")] + name_to_node = {n["name"]: n for n in valid_nodes} + + for name in name_to_node: + try: + result = session.run( + """ + MATCH (start {名称: $name}) + OPTIONAL MATCH (start)-[*1]-(end) + WHERE start <> end + RETURN COUNT(end) AS cnt + """, + name=name, + ).single() + + level = 1 if result and result["cnt"] > 0 else 0 + name_to_node[name]["level"] = level + + except Exception as e: + logger.warning(f"Failed to compute level for {name}: {e}") + name_to_node[name]["level"] = 0 + + apply_styles(graph) + apply_styles(short_routes) + res["message"] = "节点展开成功" + return res + # =============================== + # 情况 3: 有simple_graphData_copy和source_node + # =============================== + elif simple_graphData_copy and source_node: + logger.info(f"Mode: SIMPLE_GRAPHDATA_COPY + SOURCE_NODE | source_node={source_node}") + + data_source = simple_graphData_copy.get("simple_graphData_copy", simple_graphData_copy) + data_source.pop("labels", None) + for n in data_source.get("nodes", []): + if isinstance(n, dict): + n.pop("color", None) + + existing_nodes = {n["id"]: n for n in data_source.get("nodes", []) if n.get("id")} + existing_links = {l["id"]: l for l in data_source.get("links", []) if l.get("id")} + + s_exists = session.run("MATCH (s {名称: $source_node}) RETURN s", source_node=source_node).single() + if not s_exists: + res["message"] = "source_node 节点不存在" + res["short_routes"] = { + "nodes": list(existing_nodes.values()), + "links": list(existing_links.values()), + } + res["graphData"] = { + "nodes": list(existing_nodes.values()), + "links": list(existing_links.values()), + } + return res + + source_node_json = node_to_json(s_exists["s"]) + source_id = s_exists["s"].element_id + if source_id not in existing_nodes: + existing_nodes[source_id] = source_node_json + + paths = session.run( + """ + MATCH path = (s {名称: $source_node})-[*1]-(m) + RETURN path + """, + source_node=source_node, + ) + + for p_rec in paths: + path = p_rec["path"] + for n in path.nodes: + nid = n.element_id + if nid not in existing_nodes: + existing_nodes[nid] = node_to_json(n) + for rel in path.relationships: + rid = rel.element_id + if rid not in existing_links: + existing_links[rid] = rel_to_json(rel) + + short_routes_data = simple_graphData_copy.get("simple_graphData_copy", simple_graphData_copy) + short_routes_nodes = list(short_routes_data.get("nodes", [])) + short_routes_links = list(short_routes_data.get("links", [])) + + graph_data = {"nodes": list(existing_nodes.values()), "links": list(existing_links.values())} + + FILTER_TYPES = { + "功能", + "环境条件", + "组成", + "技术指标参数", + "接口", + "安全警告", + "操作使用", + "维修工作", + "调试", + "器材保障", + "图册", + "试验鉴定", + "设计单位", + "组成部件", + "无人机", + "无人机性能", + "外部设备", + "维修", + "操作", + "故障", + "舰艇", + "系统", + "子系统", + "设备", + } + + nodes = graph_data.get("nodes", []) + links = graph_data.get("links", []) + + filtered_nodes = [ + n for n in nodes if n.get("labels") and len(n["labels"]) > 0 and n["labels"][0] in FILTER_TYPES + ] + + valid_ids = {n["id"] for n in filtered_nodes} + + filtered_links = [l for l in links if l.get("source") in valid_ids and l.get("target") in valid_ids] + + graph_data["nodes"] = filtered_nodes + graph_data["links"] = filtered_links + + short_routes = {"nodes": short_routes_nodes, "links": short_routes_links} + + valid_nodes = [n for n in graph_data["nodes"] if n.get("name")] + name_to_node = {n["name"]: n for n in valid_nodes if n.get("name")} + for name in name_to_node: + try: + result = session.run( + """ + MATCH (start {名称: $name}) + OPTIONAL MATCH path = (start)-[*1]-(end) + WHERE start <> end + RETURN coalesce(max(length(path)), 0) AS max_level + """, + name=name, + ).single() + level = min(result["max_level"], 3) if result else 0 + name_to_node[name]["level"] = level + except Exception as e: + logger.warning(f"Failed to compute level for {name}: {e}") + name_to_node[name]["level"] = 0 + + apply_styles(graph_data) + apply_styles(short_routes) + res["graphData"] = graph_data + res["short_routes"] = short_routes + res["message"] = f"查询节点成功!" + return res + # =============================== + # 情况 4: 只有头节点(有向,最多3跳) + # =============================== + elif head: + logger.info(f"Mode: HEAD ONLY | {head}") + h_exists = session.run("MATCH (h {名称: $head}) RETURN h", head=head).single() + if not h_exists: + res["message"] = "头节点不存在" + return res + + paths = session.run( + """ + MATCH path = (h {名称: $head})-[*1]->(n) + UNWIND nodes(path) AS x + WITH path, COUNT(DISTINCT x) AS nodeCount + WHERE nodeCount = LENGTH(path) + 1 + RETURN path AS p + """, + head=head, + ) + paths = list(paths) + if not paths: + # 3. 如果没有有向路径,返回单个节点信息 + res["graphData"] = {"nodes": [node_to_json(h_exists["h"])], "links": []} + else: + res["graphData"] = build_graph_from_paths(paths) + # === 新增:为 graphData 中每个节点计算 level(最大无向跳数,≤3)=== + nodes_list = res["graphData"]["nodes"] + if not nodes_list: + return res + + # 确保每个节点都有 "名称" + valid_nodes = [n for n in nodes_list if "name" in n and n["name"]] + node_names = [n["name"] for n in valid_nodes] + name_to_node = {n["name"]: n for n in valid_nodes} + + for name in node_names: + try: + result = session.run( + """ + MATCH (start {名称: $name}) + OPTIONAL MATCH path = (start)-[*1]-(end) + WHERE start <> end + RETURN coalesce(max(length(path)), 0) AS max_level + """, + name=name, + ).single() + + if result: + level = min(result["max_level"], 3) + name_to_node[name]["level"] = level + else: + name_to_node[name]["level"] = 0 + except Exception as e: + logger.warning(f"Failed to compute level for {name}: {e}") + name_to_node[name]["level"] = 0 + apply_styles(res["graphData"]) + res["message"] = "头节点展开成功" + return res + + # =============================== + # 情况 5: 只有尾节点(应查入边!即 ←) + # =============================== + elif tail: + logger.info(f"Mode: TAIL ONLY | {tail}") + t_exists = session.run("MATCH (t {名称: $tail}) RETURN t", tail=tail).single() + if not t_exists: + res["message"] = "尾节点不存在" + return res + + # 注意:尾节点作为终点,应查找指向它的路径(←) + paths = session.run( + """ + MATCH path = (n)-[*1]->(t {名称: $tail}) + UNWIND nodes(path) AS x + WITH path, COUNT(DISTINCT x) AS nodeCount + WHERE nodeCount = LENGTH(path) + 1 + RETURN path AS p + """, + tail=tail, + ) + paths = list(paths) + if not paths: + # 3. 如果没有有向路径,返回单个节点信息 + res["graphData"] = {"nodes": [node_to_json(t_exists["t"])], "links": []} + else: + res["graphData"] = build_graph_from_paths(paths) + # === 新增:为 graphData 中每个节点计算 level(最大无向跳数,≤3)=== + nodes_list = res["graphData"]["nodes"] + if not nodes_list: + return res + + # 确保每个节点都有 "名称" + valid_nodes = [n for n in nodes_list if "name" in n and n["name"]] + node_names = [n["name"] for n in valid_nodes] + name_to_node = {n["name"]: n for n in valid_nodes} + + for name in node_names: + try: + result = session.run( + """ + MATCH (start {名称: $name}) + OPTIONAL MATCH path = (start)-[*1]-(end) + WHERE start <> end + RETURN coalesce(max(length(path)), 0) AS max_level + """, + name=name, + ).single() + + if result: + level = min(result["max_level"], 3) + name_to_node[name]["level"] = level + else: + name_to_node[name]["level"] = 0 + except Exception as e: + logger.warning(f"Failed to compute level for {name}: {e}") + name_to_node[name]["level"] = 0 + apply_styles(res["graphData"]) + res["message"] = "尾节点展开成功" + return res + # =============================== + # 情况 6: 查询节点展开 + # =============================== + elif queryview: + logger.info(f"Mode: QUERYVIEW + QUERYLINK | nodes={queryview}, links={querylink}") + + node_ids = [x.strip() for x in queryview.split(",") if x.strip()] + if querylink: + link_ids = [x.strip() for x in querylink.split(",") if x.strip()] + else: + link_ids = [] + + if not node_ids and not link_ids: + res["message"] = "queryview 和 querylink 均为空" + return res + + graph_data_nodes = {} + graph_data_links = {} + + if node_ids: + nodes_result = session.run("MATCH (n) WHERE elementId(n) IN $ids RETURN n", ids=node_ids) + for rec in nodes_result: + n = rec["n"] + nid = n.element_id + if nid not in graph_data_nodes: + graph_data_nodes[nid] = node_to_json(n) + + if link_ids: + rels_result = session.run( + """ + MATCH ()-[r]->() + WHERE elementId(r) IN $link_ids + RETURN r, elementId(startNode(r)) AS start_id, elementId(endNode(r)) AS end_id + """, + link_ids=link_ids, + ) + + for record in rels_result: + rel = record["r"] + rid = rel.element_id + if rid not in graph_data_links: + graph_data_links[rid] = rel_to_json(rel) + + start_id = record["start_id"] + end_id = record["end_id"] + + if start_id not in graph_data_nodes: + node_result = session.run( + "MATCH (n) WHERE elementId(n) = $id RETURN n", id=start_id + ).single() + if node_result: + graph_data_nodes[start_id] = node_to_json(node_result["n"]) + + if end_id not in graph_data_nodes: + node_result = session.run( + "MATCH (n) WHERE elementId(n) = $id RETURN n", id=end_id + ).single() + if node_result: + graph_data_nodes[end_id] = node_to_json(node_result["n"]) + + graph_data = {"nodes": list(graph_data_nodes.values()), "links": list(graph_data_links.values())} + + short_routes = {"nodes": list(graph_data_nodes.values()), "links": list(graph_data_links.values())} + + valid_nodes = [n for n in graph_data["nodes"] if n.get("name")] + name_to_node = {n["name"]: n for n in valid_nodes if n.get("name")} + for name in name_to_node: + try: + result = session.run( + """ + MATCH (start {名称: $name}) + OPTIONAL MATCH path = (start)-[*1]-(end) + WHERE start <> end + RETURN coalesce(max(length(path)), 0) AS max_level + """, + name=name, + ).single() + level = min(result["max_level"], 3) if result else 0 + name_to_node[name]["level"] = level + except Exception as e: + logger.warning(f"Failed to compute level for {name}: {e}") + name_to_node[name]["level"] = 0 + + apply_styles(graph_data) + apply_styles(short_routes) + res["graphData"] = graph_data + res["short_routes"] = short_routes + res["message"] = f"查询拓展加载成功!" + return res + + # =============================== + # 情况 7: 按文件名检索所有匹配节点 + # =============================== + elif filename: + logger.info(f"Mode: FILENAME SEARCH | filename={filename}") + try: + search_pattern = f'"filename": "{filename}"' + result = session.run( + """ + MATCH (n) + WHERE n.knowledge_source IS NOT NULL + AND n.knowledge_source CONTAINS $search_pattern + RETURN n + """, + search_pattern=search_pattern, + ) + + nodes_list = [] + node_ids = [] + + # ========= 查询节点 ========= + for record in result: + n = record["n"] + node_json = node_to_json(n) + + # 使用 elementId 作为前端 graph 的唯一 id + eid = n.element_id + node_json["id"] = eid + node_ids.append(eid) + + identifier = node_json.get("name") or node_json.get("名称") + if identifier: + try: + level_result = session.run( + """ + MATCH (start {名称: $id}) + OPTIONAL MATCH path = (start)-[*1..3]-(end) + WHERE start <> end + RETURN coalesce(max(length(path)), 0) AS max_level + """, + id=identifier, + ).single() + level = min(level_result["max_level"], 3) if level_result else 0 + node_json["level"] = level + except Exception as e: + logger.warning(f"Level calc failed for {identifier}: {e}") + node_json["level"] = 0 + else: + node_json["level"] = 0 + + nodes_list.append(node_json) + + # ========= 查询节点之间的边 ========= + links_list = [] + if node_ids: + rel_result = session.run( + """ + MATCH (a)-[r]->(b) + WHERE elementId(a) IN $ids + AND elementId(b) IN $ids + RETURN r, + elementId(a) AS source, + elementId(b) AS target + """, + ids=node_ids, + ) + + for record in rel_result: + r = record["r"] + link_json = rel_to_json(r) # 你已有的方法 + + # # 确保 source / target 正确 + # link_json["source"] = record["source"] + # link_json["target"] = record["target"] + + links_list.append(link_json) + + # ========= 返回结果 ========= + if nodes_list: + graph_data = {"nodes": nodes_list, "links": links_list} + apply_styles(graph_data) + res["graphData"] = graph_data + res["message"] = ( + f"找到 {len(nodes_list)} 个关联文件名 '{filename}' 的节点,{len(links_list)} 条关系" + ) + else: + res["graphData"] = {"nodes": [], "links": []} + res["message"] = f"未找到关联文件名 '{filename}' 的节点" + + return res + + except Exception as e: + logger.exception("Filename search error") + res["message"] = f"按文件名查询节点时出错: {str(e)}" + return res + + # =============================== + # 兜底:无任何输入 + # =============================== + else: + res["message"] = "查询成功!" + return res + + except Exception as e: + logger.exception("Internal db_task error") + return { + "graphData": {"nodes": [], "links": []}, + "short_routes": {"nodes": [], "links": []}, + "message": f"数据库查询异常: {str(e)}", + } + + # 执行数据库任务 + query_result = await run_in_threadpool(db_task) + + # 组装最终响应 + if head or tail: + return { + "message": query_result["message"], + "simple_graphData": query_result["graphData"], + "graphData": query_result["graphData"], + "short_routes": query_result.get("short_routes", {"nodes": [], "links": []}), + } + if node and depth: + return { + "message": query_result["message"], + "simple_graphData": query_result["graphData"], + "graphData": query_result["graphData"], + "short_routes": query_result.get("short_routes", {"nodes": [], "links": []}), + } + if simple_graphData_copy and source_node: + return { + "message": query_result["message"], + "simple_graphData": query_result["graphData"], + "graphData": query_result["graphData"], + "short_routes": query_result.get("short_routes", {"nodes": [], "links": []}), + } + if queryview: + return { + "message": query_result["message"], + "simple_graphData": query_result["graphData"], + "graphData": query_result["graphData"], + "short_routes": query_result.get("short_routes", {"nodes": [], "links": []}), + } + if filename: + return { + "message": query_result["message"], + "simple_graphData": query_result["graphData"], + "graphData": query_result["graphData"], + "short_routes": query_result.get("short_routes", {"nodes": [], "links": []}), + } + else: + apply_styles(simple_graphData) + tree_graphData = build_tree(simple_graphData["nodes"], simple_graphData["links"]) + return { + "message": query_result["message"], + "simple_graphData": simple_graphData, + "graphData": simple_graphData, + "short_routes": query_result.get("short_routes", {"nodes": [], "links": []}), + "tree_graphData": tree_graphData + } + + +class FuzzyNodeOnlyRequest(BaseModel): + node: str + limit: Optional[int] = 20 + + +@app.post("/api/v2/neo4j/fuzzy_query") +async def fuzzy_node_only(request: FuzzyNodeOnlyRequest): + """ + 节点名称模糊匹配(仅返回节点,不返回关系) + """ + + keyword = request.node.strip() + limit = request.limit or 50 + + if not keyword: + raise HTTPException(status_code=400, detail="keyword 不能为空") + + def db_task(): + try: + with driver.session() as session: + logger.info(f"Mode: FUZZY NODE ONLY | keyword='{keyword}', limit={limit}") + + result = session.run( + """ + MATCH (n) + WHERE n.名称 CONTAINS $kw + RETURN n + LIMIT $limit + """, + kw=keyword, + limit=limit, + ) + + nodes_list = [] + + for record in result: + n = record["n"] + node_json = node_to_json(n) + + # 统一前端使用 elementId 作为 id + node_json["id"] = n.element_id + + nodes_list.append(node_json) + + if nodes_list: + return {"message": f"模糊匹配 '{keyword}' 成功,找到 {len(nodes_list)} 个节点", "nodes": nodes_list} + else: + return {"message": f"未找到名称包含 '{keyword}' 的节点", "nodes": []} + + except Exception as e: + logger.exception("Fuzzy node only query error") + return {"message": f"节点模糊查询异常: {str(e)}", "nodes": []} + + return await run_in_threadpool(db_task) + + +class ExpandQueryRequest(BaseModel): + node: str + + +@app.post("/api/v2/neo4j/expand") +async def expand_node(request: ExpandQueryRequest): + """ + 无向节点拓展: + 仅返回指定节点 1 跳范围内的所有无向关联及节点信息。 + """ + node_name = request.node + if not node_name: + raise HTTPException(status_code=400, detail="Node name is required") + + logger.info(f"Expanding node: {node_name} | depth=1 (undirected)") + + def db_task_expand(): + try: + with driver.session() as session: + # 1. 执行 1 跳无向查询 + # 使用 -[r]- 表示无向,匹配起点 node_name 的所有直接邻居 + cypher_query = """ + MATCH path = (n {名称: $name})-[r]-(m) + RETURN path AS p + """ + result = session.run(cypher_query, name=node_name) + + # 将结果转为列表,以便多次处理或判断 + records = list(result) + + if not records: + logger.info(f"No connections found for node: {node_name}") + return {"nodes": [], "links": []} + + # 使用 build_graph_from_paths 解析路径(内部已过滤 Searchable) + return build_graph_from_paths(records) + + except Exception as e: + logger.exception("Neo4j expansion query error") + raise e + + # 执行数据库任务 + try: + related_data = await run_in_threadpool(db_task_expand) + except Exception as e: + raise HTTPException(status_code=500, detail=f"Expansion failed: {str(e)}") + + return {"message": "200", "related_graphData": related_data} + + +def _sync_kg_build_task( + task_id: str, files_data: List[dict], kg_config: dict, result_queue: Queue, cancel_flag_path: str +): + """子进程中执行知识图谱构建(并发版:最多 4 个文件同时处理)""" + + logging.basicConfig(level=logging.INFO) + logger = logging.getLogger(__name__) + + complete_files = [] + _complete_files_lock = threading.Lock() # 保护 complete_files 和 result_queue + _kg_lock = threading.Lock() # 保护 Neo4j 入库(kg.process_data / filter_node_relationship) + + def check_cancelled(): + return os.path.exists(cancel_flag_path) + + # 配置加载 + NEO4J_URI = kg_config["neo4j_uri"] + NEO4J_USER = kg_config["neo4j_user"] + NEO4J_PASSWORD = kg_config["neo4j_password"] + DATA_DIR = "/app/files" + Ontology = kg_config["ontology"] + Ontology_DESC = kg_config["ontology_description"] + relationships = kg_config["relationships"] + node_types = kg_config["node_types"] + relationship_types = kg_config["relationship_types"] + + kg = MilitaryKnowledgeGraph(uri=NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASSWORD), Ontology=Ontology) + + # ---- 单文件处理函数(供线程池调用) ---- + def _process_single_file(idx: int, file_data: dict): + """处理单个文件:OCR/提取 → 入库。线程安全。""" + entities = [] + relations = [] + filename_entity = [] + filename_relation = [] + lower_entity_device = None + lower_entity_type = None + file_name = file_data.get("file_name") or f"unknown_{idx}" + _t_file_start = time.time() + + try: + if check_cancelled(): + raise InterruptedError("任务已取消") + + file_name = file_data["file_name"] + file_base64 = file_data["file_base64"] + + logger.info(f"[线程] 处理文件: {file_name}") + + # --- 1. 文件名相关的简单实体提取 --- + try: + final_result = get_entity(file_name) + filename_entity = final_result.get("entities", []) + print(f"文件名实体提取结果: {filename_entity}") + filename_relation = final_result.get("relationships", []) + print(f"文件名关系提取结果: {filename_relation}") + lower_entity = final_result.get("low_level") + + for ins in filename_entity: + if ins.get("properties", {}).get("名称") == lower_entity: + lower_entity_device = ins["properties"].get("名称") + lower_entity_type = ins["type"] + break + except Exception as e: + logger.warning(f"文件名实体提取失败: {e}") + filename_entity = [] + filename_relation = [] + + # --- 2. 保存文件到磁盘 --- + os.makedirs(DATA_DIR, exist_ok=True) + FILE_PATH = os.path.join(DATA_DIR, file_name) + file_binary = base64.b64decode(file_base64) + with open(FILE_PATH, "wb") as f: + f.write(file_binary) + logger.info(f"? 已保存文件: {FILE_PATH}") + + content_middle = file_data.get("content_middle") or [] + + check_result = check_filename_ocr(file_name) + print("#####################################") + print(check_result) + if content_middle: + # --- 3a. 已有预解析内容,直接抽取,跳过 MinerU --- + logger.info(f"文件 {file_name} 使用预解析内容,跳过 MinerU") + _t_extract_start = time.time() + + async def run_extraction_with_content(): + return await get_md_node_relation( + content_list=content_middle, + input_pdf_path=FILE_PATH, + Ontology=Ontology, + Ontology_DESCRIPTION=Ontology_DESC, + Relationships=relationships, + RELATIONSHIP_TYPES=relationship_types, + NODE_TYPES=node_types, + PREFIX_URL=PREFIX_URL, + device=lower_entity_device, + device_type=lower_entity_type, + ) + + entities, relations = asyncio.run(run_extraction_with_content()) + + elif check_result == "ocr_true": + logger.info(f"文件 {file_name} 需要 OCR 处理") + + # --- 3b. 调用 MinerU 进行 OCR(get_api_url 轮询不同实例) --- + _t_extract_start = time.time() + entities, relations = process_file_content( + file_name=file_name, + file_path=FILE_PATH, + task_id=task_id, + data_dir=DATA_DIR, + ontology=Ontology, + ontology_desc=Ontology_DESC, + relationships=relationships, + node_types=node_types, + relationship_types=relationship_types, + prefix_url=PREFIX_URL, + api_url=file_data["api_url"], + check_cancelled_callback=check_cancelled, + device=lower_entity_device, + device_type=lower_entity_type, + ) + + elif check_result == "ocr_false": + logger.info(f"文件 {file_name} 不需要 OCR 处理,调用 get_filtertext_node_relation") + _t_extract_start = time.time() + + async def run_filtertext(): + return await get_filtertext_node_relation( + input_pdf_path=FILE_PATH, data=[], prefix_url=PREFIX_URL, device=lower_entity_device + ) + + try: + filter_result = asyncio.run(run_filtertext()) + + if isinstance(filter_result, tuple) and len(filter_result) >= 2: + entities, relations = filter_result[0], filter_result[1] + logger.info(f"get_filtertext_node_relation 返回: 实体 {len(entities)}, 关系 {len(relations)}") + else: + logger.error( + f"get_filtertext_node_relation 返回格式异常: {type(filter_result)}, 值: {filter_result}" + ) + entities, relations = [], [] + + except Exception as e: + logger.error(f"get_filtertext_node_relation 调用失败: {e}") + logger.error(traceback.format_exc()) + entities, relations = [], [] + else: + logger.warning(f"未知的 check_result: {check_result},默认使用空值") + _t_extract_start = time.time() + entities, relations = [], [] + + _t_extract_cost = time.time() - _t_extract_start + logger.info(f"[计时][{file_name}] OCR/抽取耗时: {_t_extract_cost:.1f}s") + + # --- 4. 后续合并与入库逻辑 --- + all_entity = entities + filename_entity + all_relation = relations + filename_relation + + all_entity_new = [ins for ins in all_entity if ins.get("properties", {}).get("名称")] + + # 生成 Embedding + _t_embed_start = time.time() + for entity in all_entity_new: + name = entity["properties"].get("名称") + if "未知" in name: + continue + if name: + try: + embedding_vector = OpenaiAPI.generate_embedding(name) + entity["properties"]["embedding"] = embedding_vector + except Exception as e: + logger.warning(f"生成 embedding 失败 for {name}: {e}") + + _t_embed_cost = time.time() - _t_embed_start + logger.info(f"[计时][{file_name}] Embedding耗时: {_t_embed_cost:.1f}s (实体数: {len(all_entity_new)})") + + merged_output_data = {"entities": all_entity_new, "relationships": all_relation} + + # 调试输出 + debug_path = f"/app/output_{task_id}_{idx}.json" + try: + with open(debug_path, "w", encoding="utf-8") as f: + json.dump(merged_output_data, f, ensure_ascii=False, indent=2) + except Exception as e: + logger.warning(f"保存调试文件失败: {e}") + + # 入库(加锁,Neo4j 写操作串行化,避免并发冲突) + _t_lock_wait_start = time.time() + with _kg_lock: + _t_lock_wait_cost = time.time() - _t_lock_wait_start + logger.info(f"[计时][{file_name}] 等锁耗时: {_t_lock_wait_cost:.1f}s") + + _t_filter_start = time.time() + try: + filter_data = filter_node_relationship( + URI=NEO4J_URI, + USERNAME=NEO4J_USER, + PASSWORD=NEO4J_PASSWORD, + merged_output_data=merged_output_data, + ) + except Exception as e: + logger.error(f"过滤节点关系失败: {e}") + raise + _t_filter_cost = time.time() - _t_filter_start + logger.info(f"[计时][{file_name}] filter去重耗时: {_t_filter_cost:.1f}s") + + _t_write_start = time.time() + entity_count, rel_count = kg.process_data(filter_data) + _t_write_cost = time.time() - _t_write_start + logger.info( + f"[计时][{file_name}] Neo4j写入耗时: {_t_write_cost:.1f}s (实体: {entity_count}, 关系: {rel_count})" + ) + + # 建立索引 + try: + data = { + "neo4j_uri": NEO4J_URI, + "neo4j_username": NEO4J_USER, + "neo4j_password": NEO4J_PASSWORD, + "force_refresh": True, + } + requests.post(indexing_url, json=data, timeout=30) + except Exception as e: + logger.warning(f"建立索引失败: {e}") + + _t_file_total = time.time() - _t_file_start + logger.info( + f"[计时][{file_name}] ===总耗时: {_t_file_total:.1f}s === " + f"(抽取:{_t_extract_cost:.1f}s embed:{_t_embed_cost:.1f}s " + f"等锁:{_t_lock_wait_cost:.1f}s filter:{_t_filter_cost:.1f}s 写入:{_t_write_cost:.1f}s)" + ) + + # 记录结果(加锁) + with _complete_files_lock: + file_result = { + "file_name": file_name, + "status": "success", + "entity_count": entity_count, + "relation_count": rel_count, + } + complete_files.append(file_result) + + result_queue.put( + { + "code": 200, + "type": "progress", + "file_index": idx, + "total_files": len(files_data), + "file_name": file_name, + "status": "success", + "entity_count": entity_count, + "relation_count": rel_count, + "complete_files": complete_files.copy(), + } + ) + + except InterruptedError: + with _complete_files_lock: + complete_files.append({"file_name": file_name, "status": "cancelled"}) + raise + + except Exception as e: + error_msg = f"[{task_id}] 文件 {file_name} 处理失败: {str(e)}" + logger.error(error_msg) + logger.error(traceback.format_exc()) + + with _complete_files_lock: + file_result = {"file_name": file_name, "status": "failed", "error": str(e)} + complete_files.append(file_result) + + result_queue.put( + { + "code": 200, + "type": "progress", + "file_index": idx, + "total_files": len(files_data), + "file_name": file_name, + "status": "failed", + "error": str(e), + "complete_files": complete_files.copy(), + } + ) + + # ---- 并发执行 ---- + # 预解析文件不经过 MinerU,并发数不受 API_URLS 限制 + # 需要 MinerU 的文件受 API_URLS 实例数约束,取两者中较大值保证并发 + _files_need_mineru = sum(1 for fd in files_data if not (fd.get("content_middle") or [])) + CONCURRENT_WORKERS = ( + max(len(API_URLS), min(len(files_data), 100)) if _files_need_mineru == 0 else max(len(API_URLS), 1) + ) + logger.info(f"[{task_id}] 并发数: {CONCURRENT_WORKERS},需MinerU文件: {_files_need_mineru}/{len(files_data)}") + cancelled = False + + with ThreadPoolExecutor(max_workers=CONCURRENT_WORKERS) as executor: + futures = {executor.submit(_process_single_file, idx, fd): (idx, fd) for idx, fd in enumerate(files_data)} + + for future in futures: + try: + future.result() # 等待完成,异常已在内部处理 + except InterruptedError: + cancelled = True + # 取消尚未开始的任务 + for f in futures: + f.cancel() + break + except Exception: + pass # 已在 _process_single_file 内部处理并汇报 + + if cancelled: + result_queue.put( + {"code": 200, "status": "cancelled", "message": "任务已取消", "complete_files": complete_files} + ) + return + + # 所有文件处理完成 + result_queue.put( + {"code": 200, "type": "completed", "status": "success", "message": "构建完成", "complete_files": complete_files} + ) + + +@app.post("/kg_build") +async def kg_build(request: KGRequest): + task_id = request.task_id + + if task_id in kg_running_tasks: + existing = kg_running_tasks[task_id] + if existing.get("process") and existing["process"].is_alive(): + return {"code": 400, "message": f"任务 {task_id} 已在运行中"} + + files = request.files if isinstance(request.files, list) else [request.files] + files_data = [] + for i, f in enumerate(files): + _api, _cache = get_api_url(f"{task_id}_{i}") # 哈希取模,多 worker 进程安全 + logger.info(f"[{task_id}] 文件 {f.file_name} → MinerU {_api}") + files_data.append( + { + "file_name": f.file_name, + "markdown_content": f.markdown_content, + "file_base64": f.file_base64, + "content_middle": f.content_middle, + "api_url": _api, + "get_contentlist_url": _cache, + } + ) + + logger.info(f"[{task_id}] 开始构建知识图谱,文件数量: {len(files_data)}") + + # ★ 关键改动:合并默认值与用户传入值 + merged = build_kg_config( + user_ontology=request.ontology, + user_ontology_desc=request.Ontology_DESCRIPTION, + user_relationships=request.relationships, + user_node_types=request.node_types, + user_relationship_types=request.relationship_types, + ) + + kg_config = { + "neo4j_uri": NEO4J_URI, + "neo4j_user": NEO4J_USER, + "neo4j_password": NEO4J_PASSWORD, + "data_dir": DATA_DIR, + **merged, # ontology / ontology_description / relationships / node_types / relationship_types + } + + # 持久化配置缓存(使用合并后的值) + try: + cache_dir = DATA_DIR if os.path.isdir(DATA_DIR) else os.path.dirname(__file__) + os.makedirs(cache_dir, exist_ok=True) + cache_path = os.path.join(cache_dir, "kg_config_cache.json") + async with aiofiles.open(cache_path, "w", encoding="utf-8") as f: + await f.write(json.dumps( + { + "ontology": kg_config["ontology"], + "ontology_description": kg_config["ontology_description"], + "relationships": kg_config["relationships"], + "node_types": kg_config["node_types"], + "relationship_types": kg_config["relationship_types"], + "updated_at": datetime.utcnow().isoformat() + "Z", + }, + ensure_ascii=False, + indent=2, + )) + logger.info(f"已保存 kg_build 配置缓存: {cache_path}") + except Exception as e: + logger.warning(f"保存 kg_build 配置缓存失败: {e}") + + # 后续进程启动逻辑保持不变 ...https://gitea.zkzdht.com/Ascend/htknow + cancel_flag_path = f"/tmp/kg_cancel_{task_id}" + if os.path.exists(cancel_flag_path): + os.remove(cancel_flag_path) + + result_queue = Queue() + proc = Process( + target=_sync_kg_build_task, + args=(task_id, files_data, kg_config, result_queue, cancel_flag_path), + daemon=True, + ) + proc.start() + + # 记录任务(用于取消) + task_data = { + "process": proc, + "result_queue": result_queue, + "cancel_flag_path": cancel_flag_path, + "status": "processing", + } + kg_running_tasks[task_id] = task_data + + # 流式返回生成器 + async def event_generator(): + """生成器:实时返回每个文件的处理进度""" + timeout = 3600 # 2小时超时 + start = time.time() + + try: + while True: + # 超时检查 + if time.time() - start > timeout: + proc.terminate() + proc.join(timeout=5) + if proc.is_alive(): + proc.kill() + kg_running_tasks.pop(task_id, None) + yield ( + json.dumps( + {"code": 500, "type": "error", "message": "任务执行超时", "complete_files": []}, + ensure_ascii=False, + ) + + "\n" + ) + return + + # 检查是否有结果 + try: + # 非阻塞获取队列消息 + while not result_queue.empty(): + result = result_queue.get_nowait() + yield json.dumps(result, ensure_ascii=False) + "\n" + + # 如果是完成或错误消息,结束生成器 + if result.get("type") in ["completed", "error", "cancelled"]: + kg_running_tasks.pop(task_id, None) + return + except Exception as e: + logger.warning(f"[{task_id}] Queue读取异常: {e}") + + # 检查进程是否还活着 + if not proc.is_alive(): + # 进程结束,读取剩余消息 + while not result_queue.empty(): + result = result_queue.get_nowait() + yield json.dumps(result, ensure_ascii=False) + "\n" + + # 如果队列为空但进程异常退出 + if result_queue.empty(): + yield ( + json.dumps( + { + "code": 500, + "type": "error", + "message": f"进程异常退出: {proc.exitcode}", + "complete_files": [], + }, + ensure_ascii=False, + ) + + "\n" + ) + + kg_running_tasks.pop(task_id, None) + return + + # 短暂休眠,避免CPU空转 + await asyncio.sleep(0.3) + + except Exception as e: + kg_running_tasks.pop(task_id, None) + logger.error(f"[{task_id}] 流式返回异常: {str(e)}") + yield ( + json.dumps({"code": 500, "type": "error", "message": str(e), "complete_files": []}, ensure_ascii=False) + + "\n" + ) + + return StreamingResponse(event_generator(), media_type="application/x-ndjson") + + +# ==================== kg_task_cancel 接口 ==================== + + +@app.post("/kg_task_cancel/{task_id}") +async def kg_task_cancel(task_id: str): + """取消知识图谱构建任务""" + task = kg_running_tasks.get(task_id) + if not task: + raise HTTPException(status_code=404, detail=f"任务 {task_id} 不存在") + + proc = task.get("process") + if not proc or not proc.is_alive(): + return {"code": 400, "message": "任务已结束", "status": task.get("status")} + + cancel_flag_path = task.get("cancel_flag_path") + + try: + # 1. 设置取消标志 + async with aiofiles.open(cancel_flag_path, "w") as f: + await f.write(str(time.time())) + + await asyncio.sleep(3) + + # 2. 强制终止 + if proc.is_alive(): + os.kill(proc.pid, signal.SIGTERM) + proc.join(timeout=5) + if proc.is_alive(): + os.kill(proc.pid, signal.SIGKILL) + proc.join() + + task["status"] = "cancelled" + + if os.path.exists(cancel_flag_path): + os.remove(cancel_flag_path) + + kg_running_tasks.pop(task_id, None) + + logger.info(f"[{task_id}] 任务已取消") + return {"code": 200, "message": "任务已取消", "task_id": task_id} + + except Exception as e: + return {"code": 500, "message": f"取消失败: {str(e)}"} + + +@app.post("/ontology_reset") +async def ontology_reset(request: resetRequest): + # ★ 关键改动:合并默认值与用户传入值 + merged = build_kg_config( + user_ontology=request.ontology, + user_ontology_desc=request.Ontology_DESCRIPTION, + user_relationships=request.relationships, + user_node_types=request.node_types, + user_relationship_types=request.relationship_types, + ) + + Ontology = merged["ontology"] + Ontology_DESC = merged["ontology_description"] + relationships = merged["relationships"] + node_types = merged["node_types"] + relationship_types = merged["relationship_types"] + + files = request.files if isinstance(request.files, list) else [request.files] + logger.info(f"开始本体衍生,文件数量: {len(files)}") + + async def event_generator(): + total_files = len(files) + for file_idx, file in enumerate(files): + markdown_content = file.markdown_content + file_name = file.file_name + new_filename = re.sub(r"^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}_", "", file_name) + + wx_tables, cleaned_wx_content = extract_repair_tables_keep_first(content=markdown_content) + opration_tables, cleaned_opration_content = extract_operation_tables(cleaned_wx_content) + nromaltabel, contexts, cleaned_normal_content = extract_tables(cleaned_opration_content) + + content, headers = _split_markdown(cleaned_normal_content, chunk_size=15000, chunk_overlap=500) + total_chunks = len(content) + + for chunk_idx, ins in enumerate(content): + final_prompt = create_extraction_prompt( + text=ins, + ontology=Ontology, + Ontology_DESCRIPTION=Ontology_DESC, + relationships=relationships, + relationship_types=relationship_types, + node_types=node_types, + ) + final_prompt = create_extraction_prompt( + text=ins, + ontology=Ontology, + Ontology_DESCRIPTION=Ontology_DESCRIPTION, + relationships=relationships, + relationship_types=relationship_types, + node_types=node_types, + ) + + res_str = await OpenaiAPI.openai_chat_aysnc(final_prompt) + + # 处理 API 调用失败 + if res_str is None: + error_msg = { + "code": 500, + "error": "API调用失败", + "file_index": file_idx, + "total_files": total_files, + "chunk_index": chunk_idx, + "total_chunks": total_chunks, + "file_name": new_filename, + } + yield json.dumps(error_msg, ensure_ascii=False) + "\n" + continue + + # 尝试解析 JSON + try: + res = json.loads(res_str) + except json.JSONDecodeError as e: + error_msg = { + "code": 500, + "error": f"JSON解析失败: {str(e)}", + "raw_response": repr(res_str), + "file_index": file_idx, + "total_files": total_files, + "chunk_index": chunk_idx, + "total_chunks": total_chunks, + "file_name": new_filename, + } + yield json.dumps(error_msg, ensure_ascii=False) + "\n" + continue + + new_entities = res.get("new_entities", []) + logger.info(f"new_entities: {new_entities}") + new_relationships = res.get("new_relationships", []) + logger.info(f"new_relationships: {new_relationships}") + + # 简化逻辑:file_index 就是当前文件索引(从0开始) + result = { + "code": 200, + "file_index": file_idx, + "total_files": total_files, + "chunk_index": chunk_idx, + "total_chunks": total_chunks, + "new_entities": new_entities, + "new_relationships": new_relationships, + "file_name": new_filename, + } + logger.info(f"衍生本体如下:{result}") + + # 流式返回(JSON Lines) + yield json.dumps(result, ensure_ascii=False) + "\n" + + # 当前文件所有chunk处理完毕后,发送文件完成标记 + yield ( + json.dumps( + { + "code": 200, + "status": "file_completed", + "file_index": file_idx, + "total_files": total_files, + "file_name": new_filename, + "message": f"文件 {new_filename} 处理完成", + }, + ensure_ascii=False, + ) + + "\n" + ) + + # 最后发送全部完成标记 + yield ( + json.dumps({"code": 200, "status": "completed", "message": "所有文件本体衍生完毕"}, ensure_ascii=False) + + "\n" + ) + logger.info("所有文件本体衍生完毕") + + return StreamingResponse(event_generator(), media_type="application/x-ndjson") + + +class PdfContentItem(BaseModel): + page_idx: int + bbox: Optional[str] = None + text: Optional[str] = None + text_level: Optional[int] = None + img_path: Optional[str] = None + table_body: Optional[str] = None + + +class RequestWrapper(BaseModel): + pdf_contents: List[PdfContentItem] + + +class Base64ImageRequest(BaseModel): + content: Optional[str] = Field( + None, + description="Optional text around the image, for example: 图3.1 船舶主发动机组成图(images/test.jpg)", + ) + filename: str = Field(..., description="Original image filename, for example test.png") + image_base64: str = Field(..., description="Base64 image content, with or without data:image/... prefix") + original_filename:Optional[str] = Field( + None, + description="图片 所在pdf文件", + ) + +async def analyze_image_with_vlm(image_bytes: bytes, suffix: str) -> str: + image_url = image_base64_to_data_url(image_bytes, suffix) + async with VLM_SEMAPHORE: + return await OpenaiAPI.open_api_vl_without_thinking(image_url) + + +@app.post("/split_image") +async def image_base64(request_data: Base64ImageRequest): + logger.info(f"Received image: {request_data.filename}") + logger.info(f"内容: {request_data.content}") + logger.info(f"pdf文件名: {request_data.original_filename}") + filename = safe_original_filename(request_data.filename) + logger.info(f"filename: {filename}") + suffix = PathLib(filename).suffix.lower() + if suffix not in {".jpg", ".jpeg", ".png", ".bmp", ".webp", ".gif", ".tif", ".tiff"}: + raise HTTPException(status_code=400, detail="Unsupported image type") + + image_bytes, processed_suffix = prepare_split_image(request_data.image_base64, suffix) + if not image_bytes: + raise HTTPException(status_code=400, detail="decoded image is empty") + + temp_path = None + image_caption = [] + vlm_text = "" + try: + with tempfile.NamedTemporaryFile(delete=False, suffix=processed_suffix) as tmp: + tmp.write(image_bytes) + temp_path = PathLib(tmp.name) + + ocr_data = await extract_image_text(temp_path) + try: + temp_path.unlink() + except Exception as e: + logger.warning(f"Failed to delete temp image {temp_path}: {e}") + finally: + temp_path = None + if request_data.original_filename: + image_caption = await extract_image_caption( + SEARCH_DIR, + request_data.original_filename, + request_data.filename, + ) + + caption_text = "\n".join(image_caption).strip() + + # image_caption 不为空时使用 caption, + # 否则使用原始图片文件名 + if caption_text: + caption_text =caption_text+".jpg" + output_filename = caption_text or filename + logger.info(f"image_caption: {caption_text}") + content = (request_data.content or "").strip() + ocr_full_text = ((ocr_data or {}).get("full_text") or "").strip() + + # content 和 OCR 都为空时调用 VLM + if not content and not ocr_full_text: + vlm_text = await analyze_image_with_vlm( + image_bytes, + processed_suffix, + ) + + image_related_content = ocr_full_text+ "\n" +content+ "\n"+vlm_text + + # image_content = ( + # f"{output_filename}\n" + # f"{image_related_content}" + # ) + logger.info(f"output_filename: {output_filename}") + logger.info(f"{image_related_content}") + return JSONResponse( + { + "code": 200, + "message": "ok", + "data": { + "image_content": image_related_content, + "filename": filename, + "jpg_filename": output_filename + }, + } + ) + finally: + if temp_path and temp_path.exists(): + try: + temp_path.unlink() + except Exception as e: + logger.warning(f"Failed to delete temp image {temp_path}: {e}") + + + +@app.post("/split_content_list") +async def split_content_list(request_data: RequestWrapper): + pdf_contents = request_data.pdf_contents + processed_list = [] + + for item in pdf_contents: + # 将 Pydantic 模型转换为字典,方便修改 + item_dict = item.model_dump() + + # --- 核心逻辑:判断并添加 type 字段 --- + item_type = None + + # 1. 如果 text 非空 -> type: "text" + if item.text: + item_type = "text" + + # 2. 如果 table_body 非空 -> type: "table" + # 注意:如果 text 和 table_body 都有,根据代码顺序,table 会覆盖 text。 + # 如果你的业务逻辑是互斥的或需要优先级,请调整此处顺序。 + elif item.table_body: + item_type = "table" + + # 3. 如果 img_path 非空 且 table_body 为空 -> type: "image" + # 注意:上面用了 elif 判断 table_body,所以到这里 table_body 肯定为空, + # 但为了逻辑清晰,显式写出条件。 + elif item.img_path and not item.table_body: + item_type = "image" + + # 如果匹配到了类型,写入字典 + if item_type: + item_dict["type"] = item_type + + processed_list.append(item_dict) + slices = get_chunk_bbox(processed_list) + slices_check = chunk_check(slices, 8000) + + return {"code": 200, "message": "ok", "data": {"slices": slices_check}} + + +@app.post("/split_result") +async def split_result( + file: UploadFile = File(...), + image_prefix: str = Form("/api/v1/knowledge/files/images/"), +): + if not file.filename: + raise HTTPException(status_code=400, detail="File name is missing") + + chunk_size = 1024 + chunk_overlap = 100 + + filename = file.filename + suffix = PathLib(filename).suffix.lower() # 获取文件后缀 + temp_input_path: Optional[PathLib] = None + converted_pdf_path: Optional[PathLib] = None + logger.info("调用知识切分接口") + + try: + # ? 创建临时文件时指定后缀名 + with tempfile.NamedTemporaryFile(delete=False, suffix=suffix) as tmp_in: + content = await file.read() + logger.info(f"文件大小:{len(content)}") + logger.info(f"前10字节:{content[:10]}") + # if not content.startwith(b"%PDF"): + # logger.error("不是合法PDF") + # raise HTTPException(status_code=400,detail="Uploaded file is not a valid PDF") + tmp_in.write(content) + temp_input_path = PathLib(tmp_in.name) + # 2. 根据文件类型处理 + if suffix == ".pdf": + logger.info("调用pdf切分方式") + + result_data = await process_pdf_file(temp_input_path, image_prefix,filename) + if result_data is None: + raise HTTPException(status_code=502, detail="PDF processing failed") + elif suffix == ".docx": + logger.info("调用docx切分方式") + logger.info(f"转换 DOCX -> PDF: {filename}") + + # 执行转换 + converter.convert(str(temp_input_path), output_dir=str(DATA_DIR)) + + # ? 使用临时文件的基础名查找 PDF + temp_base_name = temp_input_path.stem # 如 tmp2bb0l4cn + converted_pdf_path = PathLib(DATA_DIR) / f"{temp_base_name}.pdf" + + if not converted_pdf_path.exists(): + raise HTTPException(status_code=500, detail=f"PDF 转换失败: {converted_pdf_path}") + + result_data = await process_pdf_file(converted_pdf_path, image_prefix) + if result_data is None: + raise HTTPException(status_code=502, detail="DOCX to PDF processing failed") + + elif suffix in (".txt", ".md"): + logger.info("调用txt切分方式") + + # 直接读取文本内容 + async with aiofiles.open(temp_input_path, "r", encoding="utf-8", errors="ignore") as f: + text_content = await f.read() + contents = split_text_preserve_sentences(text_content) + # 构造统一结构(无 images) + slices = [] + for ins in contents: + slices.append({"content": ins, "positions": []}) + result_data = {"slices": slices, "images": {},"summary":''} + elif suffix in [".xlsx"]: + # converter.convert(str(temp_input_path), output_dir=str(DATA_DIR)) + # temp_base_name = temp_input_path.stem # 如 tmp2bb0l4cn + # converted_pdf_path = PathLib(DATA_DIR) / f"{temp_base_name}.pdf" + # if not converted_pdf_path.exists(): + # raise HTTPException(status_code=500, detail=f"PDF 转换失败: {converted_pdf_path}") + logger.info("调用xlsx切分方式") + + result_data = await process_other_file(temp_input_path, image_prefix,filename) + if result_data is None: + raise HTTPException(status_code=502, detail="DOCX parse failed") + elif suffix in [".ppt", ".pptx"]: + logger.info("调用 PPT/PPTX 切分方式") + + # 1. 判断是否为旧版 .ppt 格式,如果是,则先进行转换 + if suffix == ".ppt": + logger.info(f"检测到旧版 PPT 文件,正在转换为 PPTX: {temp_input_path}") + try: + # 定义 LibreOffice 转换命令 + command = [ + 'libreoffice', + '--headless', # 无头模式,不弹出图形界面 + '--convert-to', 'pptx', + '--outdir', os.path.dirname(temp_input_path), + temp_input_path + ] + + # 2. 使用 run_in_executor 将阻塞的同步转换操作放入线程池,避免阻塞异步事件循环 + loop = asyncio.get_event_loop() + result = await loop.run_in_executor( + None, + lambda: subprocess.run(command, capture_output=True, text=True) + ) + + # 3. 检查转换是否成功 + if result.returncode != 0: + logger.error(f"PPT 转换失败: {result.stderr}") + raise HTTPException(status_code=500, detail="PPT to PPTX conversion failed") + + # 4. 转换成功后,更新输入路径为新生成的 .pptx 文件路径 + temp_input_path = os.path.splitext(temp_input_path)[0] + ".pptx" + logger.info(f"PPT 转换成功,新文件路径: {temp_input_path}") + + except Exception as e: + logger.exception(f"PPT 转换过程发生异常: {e}") + raise HTTPException(status_code=500, detail=f"PPT conversion error: {str(e)}") + + # 5. 无论是原本就是 .pptx,还是刚刚转换完成的 .pptx,都统一走后续处理逻辑 + result_data = await process_other_file(temp_input_path, image_prefix, filename) + if result_data is None: + raise HTTPException(status_code=502, detail="PPTX parse failed") + else: + raise HTTPException( + status_code=400, detail="Unsupported file type. Only PDF, DOCX, TXT, and MD are supported." + ) + + return JSONResponse({"code": 200, "message": "ok", "data": result_data}) + + except requests.RequestException as e: + logger.error(f"Split service request failed: {e}") + raise HTTPException(status_code=502, detail=f"Split service error: {str(e)}") + except Exception as e: + logger.error(f"Internal error: {e}") + raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}") + finally: + # 清理临时文件 + for path in [temp_input_path, converted_pdf_path]: + if path and path.exists(): + try: + path.unlink() + except Exception as e: + logger.warning(f"Failed to delete temp file {path}: {e}") + + +# ========== ========== ========== ========== ========== ========== +# 图谱检索接口 +# ========== ========== ========== ========== ========== ========== + +class GraphSearchRequest(BaseModel): + """图谱检索请求模型""" + + query: Optional[str] = None + top_k: Optional[int] = 10 # 图谱检索返回结果数量 + graph_timeout: Optional[float] = 2.0 + entry_nodes: Optional[Dict[str, Any]] = None + + +# ========== ========== ========== ========== ========== ========== +# Neo4j 索引创建接口 +# ========== ========== ========== ========== ========== ========== + + +class Neo4jIndexingRequest(BaseModel): + """Neo4j索引创建请求模型""" + + neo4j_uri: Optional[str] = None # 可选,如果不提供则从环境变量获取 + neo4j_username: Optional[str] = None # 可选,如果不提供则从环境变量获取 + neo4j_password: Optional[str] = None # 可选,如果不提供则从环境变量获取 + force_refresh: Optional[bool] = ( + False # 是否强制刷新所有索引(True=清空重建,False=增量更新,只处理新节点或缺失的索引) + ) +@app.post("/neo4j_indexing") +async def neo4j_indexing(request: Neo4jIndexingRequest): + """ + Neo4j知识图谱混合索引创建接口 + + 当前版本: + 只创建 Searchable 混合索引体系: + + 1. searchable_vector + - embedding语义检索 + + 2. searchable_name_fulltext + - 名称关键词检索 + + 3. searchable_fulltext + - 内容关键词检索 + """ + + start_time = time.time() + + logger.info("[neo4j_indexing] 收到索引创建请求") + + + # ============================== + # 防止并发创建索引 + # ============================== + + if _neo4j_indexing_lock.locked(): + logger.warning( + "[neo4j_indexing] 已有任务执行,拒绝请求" + ) + return JSONResponse( + status_code=409, + content={ + "code":409, + "message":"已有Neo4j索引创建任务正在执行", + "data":None + } + ) + async with _neo4j_indexing_lock: + try: + if not INDEXING_AVAILABLE: + raise HTTPException(status_code=503,detail="Neo4j索引模块不可用") + kwargs = { + "drop_old": True, + } + # 如果接口传入连接参数,则覆盖 + if request.neo4j_uri: + kwargs["uri"] = request.neo4j_uri + if request.neo4j_username: + kwargs["user"] = request.neo4j_username + if request.neo4j_password: + kwargs["password"] = request.neo4j_password + + result = await asyncio.to_thread(build_hybrid_indexes,**kwargs) + elapsed = time.time()-start_time + if result.get("success"): + logger.info( + f"[neo4j_indexing] 创建成功 " + f"耗时:{elapsed:.2f}s") + return { + "code":200, + "message":"success", + "data":{ + "success":True, + "message": + result.get("message","混合索引创建完成"), + "searchable_added": + result.get("searchable_added",0), + "elapsed_seconds": + round(elapsed,2) + } + } + else: + logger.error( + f"[neo4j_indexing] 创建失败:" + f"{result.get('message')}" + ) + return { + "code":207, + "message":"partial success", + "data":{ + "success":False, + "message": + result.get("message","未知错误"), + "searchable_added":0, + "elapsed_seconds":round(elapsed,2) + } + } + + except HTTPException: + raise + + except Exception as e: + elapsed=time.time()-start_time + error_msg=f"索引创建失败:{str(e)}" + logger.error(error_msg,exc_info=True) + return { + "code":500, + "message":"索引创建失败", + "data":{ + "success":False, + "message":error_msg, + "elapsed_seconds": + round(elapsed,2) + } + } + +# ========== ========== ========== ========== ========== ========== +# Neo4j 索引创建接口结束 +# ========== ========== ========== ========== ========== ========== + + +# ========== ========== ========== ========== ========== ========== +# fault 图谱检索接口 +# ========== ========== ========== ========== ========== ========== + + +class FaultGraphSearchRequest(BaseModel): + """Fault 图谱检索请求模型""" + + ship_number: Optional[str] = None + device_name: Optional[str] = None + fault_symptom: Optional[str] = None + + +@app.post("/fault_graph_search") +async def fault_graph_search(request: FaultGraphSearchRequest): + result = await fault_graph_reason_and_projects(request.ship_number, request.device_name, request.fault_symptom) + return result + + +# ========== ========== ========== ========== ========== ========== +# fault 图谱检索接口结束 +# ========== ========== ========== ========== ========== ========== + +# ========== ========== ========== ========== ========== ========== +# operation 图谱检索接口 +# ========== ========== ========== ========== ========== ========== + + +class OperationGraphSearchRequest(BaseModel): + """Operation 图谱检索请求模型""" + + ship_number: Optional[str] = None + device_name: Optional[str] = None + operation_item: Optional[str] = None + + +@app.post("/operation_graph_search") +async def operation_graph_search_endpoint(request: OperationGraphSearchRequest): + result = await operation_graph_search(request.ship_number, request.device_name, request.operation_item) + return result + + +# ========== ========== ========== ========== ========== ========== +# operation 图谱检索接口结束 +# ========== ========== ========== ========== ========== ========== + + +# ========== ========== ========== ========== ========== ========== +# 设备到系统反向检索接口 +# ========== ========== ========== ========== ========== ========== +from graph_search.device_to_system import find_system_by_device + +class DeviceToSystemRequest(BaseModel): + """设备到系统反向检索请求模型""" + device_name: Optional[str] = None + min_hops: Optional[int] = 2 + max_hops: Optional[int] = 8 + top_k: Optional[int] = 10 + +@app.post("/device_to_system") +async def device_to_system_endpoint(request: DeviceToSystemRequest): + """ + ========== ========== ========== ========== ========== ========== + 设备到系统反向检索接口 + + 功能:根据设备名称,使用混合检索找到设备节点,然后反向遍历找到对应的系统节点 + + 请求参数: + - device_name: 设备名称(必填) + - min_hops: 最小跳数(默认2级) + - max_hops: 最大跳数(默认8级) + - top_k: 混合检索返回的候选节点数量(默认10) + + 返回格式: + { + "success": true/false, + "device": {设备节点信息}, + "systems": [系统节点列表], + "graph": {节点和边的图谱数据}, + "meta": {元数据} + } + ========== ========== ========== ========== ========== ========== + """ + result = await find_system_by_device( + request.device_name, + min_hops=request.min_hops or 2, + max_hops=request.max_hops or 8, + top_k=request.top_k or 10, + driver=driver + ) + return result + +# ========== ========== ========== ========== ========== ========== +# 设备到系统反向检索接口结束 +# ========== ========== ========== ========== ========== ========== + +# ========== ========== ========== ========== ========== ========== +# 图册检索接口 +# ========== ========== ========== ========== ========== ========== +from graph_search.atlas_retrieval import find_atlas_by_nodes + +class AtlasRetrievalRequest(BaseModel): + """图册检索请求模型""" + node_names: Optional[List[str]] = None + top_k: Optional[int] = 10 + +@app.post("/atlas_retrieval") +async def atlas_retrieval_endpoint(request: AtlasRetrievalRequest): + """ + ========== ========== ========== ========== ========== ========== + 图册检索接口 + + 功能:根据节点名称(可以是系统、子系统或设备),使用混合检索匹配节点 + 然后找到一跳关系的图册节点,提取图册名称和PDF URL + + 请求参数: + - node_names: 节点名称列表(可以是系统、子系统或设备,必填) + - top_k: 混合检索返回的候选节点数量(默认10) + + 返回格式(层级结构): + { + "success": true/false, + "data": { + "节点名称1": { + "图册名称1": ["PDF_URL1", "PDF_URL2"], + "图册名称2": ["PDF_URL3"] + }, + "节点名称2": { + ... + } + } + } + ========== ========== ========== ========== ========== ========== + """ + result = await find_atlas_by_nodes( + node_names=request.node_names, + top_k=request.top_k or 10, + driver=driver + ) + return result + +# ========== ========== ========== ========== ========== ========== +# 图册检索接口结束 +# ========== ========== ========== ========== ========== ========== + + +# ====================================================== +# 处理excel解析请求 +# ====================================================== + + +@app.post("/api/v2/parse/excel") +async def parse_excel(file: UploadFile = File(...), sheet_name: Optional[str] = Form(None)): + """ + 解析Excel文件的API端点 + + Args: + file (UploadFile): 上传的Excel文件 + sheet_name (Optional[str]): 工作表名称 + + Returns: + JSONResponse: 解析结果 + """ + start_time = datetime.now() + try: + logger.info(f"Received request to parse Excel file: {file.filename}, sheet: {sheet_name}") + + # if not file.filename.endswith(".xlsx"): + # logger.warning(f"Invalid file type: {file.filename}") + # raise HTTPException(status_code=400, detail="仅支持 .xlsx 文件") + + # with tempfile.NamedTemporaryFile(delete=False, suffix=".xlsx") as tmp: + # tmp.write(await file.read()) + # tmp_path = tmp.name + # logger.info(f"Saved uploaded file to temporary path: {tmp_path}") + allowed_extensions = {".xlsx", ".xls"} + + # 获取文件扩展名,并转为小写 + file_ext = os.path.splitext(file.filename)[1].lower() + + if file_ext not in allowed_extensions: + logger.warning(f"Invalid file type: {file.filename}") + raise HTTPException(status_code=400, detail="仅支持 .xls 和 .xlsx 文件") + + with tempfile.NamedTemporaryFile(delete=False, suffix=file_ext) as tmp: + tmp.write(await file.read()) + tmp_path = tmp.name + logger.info(f"Saved uploaded file to temporary path: {tmp_path}") + + try: + df = read_excel_with_merged_cells(tmp_path, sheet_name) + rows = dataframe_to_row_json(df) + result = transform_excel_json(rows) + with open("output.json", "w", encoding="utf-8") as f: + json.dump(result, f, ensure_ascii=False, indent=2) + md_text = json_to_markdown(result) + with open("output.md", "w", encoding="utf-8") as f: + f.write(md_text) + processing_time = (datetime.now() - start_time).total_seconds() + logger.info(f"Successfully processed file in {processing_time:.2f}s, result length: {len(result)}") + + return JSONResponse( + { + "message": "success", + "data": result, + "markdown": md_text, + "processing_time": processing_time, + "row_count": len(result), + } + ) + + except Exception as e: + logger.error(f"Error processing Excel file: {e}") + logger.error(traceback.format_exc()) + raise HTTPException(status_code=500, detail=f"处理Excel文件时发生错误: {str(e)}") + + finally: + if os.path.exists(tmp_path): + os.remove(tmp_path) + logger.info(f"Removed temporary file: {tmp_path}") + + except HTTPException: + # 重新抛出HTTP异常,不记录为错误 + logger.warning(f"HTTP Exception: {traceback.format_exc()}") + raise + except Exception as e: + logger.error(f"Unexpected error in parse_excel: {e}") + logger.error(traceback.format_exc()) + raise HTTPException(status_code=500, detail=f"服务器内部错误: {str(e)}") + + +# ================== 请求模型 ================== +class CypherQueryRequest(BaseModel): + """Cypher 图谱问答请求模型""" + + query: Optional[str] = None + use_rerank: Optional[bool] = False + top_k: Optional[int] = 70 + fulltext_top_k: Optional[int] = 15 + rerank_top_k: Optional[int] = 15 + hops: Optional[int] = 3 + verbose: Optional[bool] = False # 接口默认关闭冗长日志 + +@app.post("/search_graph") +async def search_graph(request: CypherQueryRequest): + """ + Cypher 图谱问答接口 + """ + start_time = time.time() + query = request.query + + # 1. 基础校验 + if not query or not query.strip(): + raise HTTPException(status_code=400, detail="查询文本不能为空") + + query = query.strip() + logger.info(f"[query_cypher] 请求: query='{query}', use_rerank={getattr(request, 'use_rerank', False)}") + + # ========== 检查资源是否就绪 ========== + sync_driver = _resources.get("sync_driver") + async_driver = _resources.get("async_driver") + embedder = _resources.get("embedder") + + if sync_driver is None or async_driver is None or embedder is None: + raise HTTPException(status_code=503, detail="图谱服务未初始化,请稍后重试") + + # 初始化变量,防止 except 中引用未定义变量 + final_cypher = "" + elapsed_ms = 0.0 + nodes = [] + links = [] + text_results = "" + + try: + # ========== ① 实体检索 ========== + retrieval = await retrieve_entities( + query=query, + sync_driver=sync_driver, + async_driver=async_driver, + embedder=embedder, + hybrid_top_k=getattr(request, 'top_k', 40), + fulltext_top_k=getattr(request, 'fulltext_top_k', 15), + rerank_top_k=getattr(request, 'rerank_top_k', 15), + use_rerank=getattr(request, 'use_rerank', False), + hops=getattr(request, 'hops', 3), + verbose=getattr(request, 'verbose', False), + ) + # ========== ② 增加已提取实体的一跳关系提取 ========== + relations = await fetch_relations_among_results( + search_results=retrieval["search_results"], + async_driver=async_driver, + verbose=True, + ) + formatted_relations = format_relations(relations) + retrieval["formatted_relations"] = formatted_relations + + # ========== ② Cypher 生成 + 修复 + 查询 ========== + result = await query_with_cypher( + query=query, + retrieval_result=retrieval, + driver=async_driver, + verbose=getattr(request, 'verbose', False), + ) + + # ========== ③ 执行 Cypher 获取原始数据 ========== + final_cypher = result.get("final_cypher", result.get("original_cypher", "")) + + # 如果 Cypher 生成失败或为空 + if not final_cypher: + elapsed_ms = round((time.time() - start_time) * 1000, 2) + return { + "code": 200, + "message": "success", + "data": { + "nodes": [], + "links": [], + "results": "未能生成有效的 Cypher 查询语句" + }, + "meta": { + "elapsed_ms": elapsed_ms, + "result_count": 0, + "cypher": "", + "query_classification": result.get("query_classification") + } + } + + logger.info(f"[query_cypher] 准备执行 Cypher: {final_cypher}") + + # 执行 Cypher + excute_result = None + try: + # 假设 excute_cypher 是异步的,传入 async_driver + excute_result = await excute_cypher(async_driver, final_cypher) + except Exception as e: + logger.error(f"[query_cypher] excute_cypher 调用失败: {e},尝试降级为直接执行") + # 降级方案:直接使用 async_driver 执行原始 Cypher + try: + records, _, _ = await async_driver.execute_query(final_cypher) + # 将 Record 转换为 dict + excute_result = [r.data() for r in records] + except Exception as e2: + logger.error(f"[query_cypher] 降级执行也失败: {e2}") + excute_result = [] + + logger.info(f"[query_cypher] 执行结果类型: {type(excute_result)}") + + # ========== ④ 数据处理与格式化 (健壮性核心) ========== + + # A. 尝试从 result (LLM/GraphService 输出) 中提取结构化图数据 + # 优先使用 query_with_cypher 返回的可能存在的图结构 + if isinstance(result.get("data"), dict): + graph_data = result["data"] + nodes = graph_data.get("nodes", []) + links = graph_data.get("links", []) + text_results = graph_data.get("results", "") + + # B. 如果 result 中没有图数据,则处理 excute_result + # 注意:这里需要兼容 excute_result 的不同返回格式 + if not nodes and not links: + if isinstance(excute_result, dict): + # 情况1: excute_result 已经是格式化好的 {'data': {'nodes':..., 'links':..., 'results':...}} + if "data" in excute_result and isinstance(excute_result["data"], dict): + data_part = excute_result["data"] + nodes = data_part.get("nodes", []) + links = data_part.get("links", []) + # results 可能是字符串或列表 + res_val = data_part.get("results", "") + if isinstance(res_val, list): + text_results = json.dumps(res_val, ensure_ascii=False, indent=2) + else: + text_results = str(res_val) + # 情况2: excute_result 是 {'data': [rows]} 这种普通数据库返回 + elif "data" in excute_result and isinstance(excute_result["data"], list): + rows_data = excute_result["data"] + if rows_data: + text_results = json.dumps(rows_data[:50], ensure_ascii=False, indent=2) + else: + text_results = "查询无结果" + else: + # 其他字典结构,直接序列化 + text_results = json.dumps(excute_result, ensure_ascii=False, indent=2)[:2000] + + elif isinstance(excute_result, list): + # 情况3: 直接返回列表 + if excute_result: + text_results = json.dumps(excute_result[:50], ensure_ascii=False, indent=2) + else: + text_results = "查询无结果" + else: + text_results = str(excute_result) if excute_result else "查询无结果" + + # C. 计算耗时 + elapsed_ms = round((time.time() - start_time) * 1000, 2) + + # D. 构建 Meta + # 计算 result_count + count_val = 0 + if nodes: + count_val = len(nodes) + elif links: + count_val = len(links) + elif isinstance(excute_result, list): + count_val = len(excute_result) + elif isinstance(excute_result, dict) and "data" in excute_result and isinstance(excute_result["data"], list): + count_val = len(excute_result["data"]) + + meta = { + "elapsed_ms": elapsed_ms, + "result_count": count_val, + "cypher": final_cypher, + "query_type": "graph_search" if (nodes or links) else "cypher_query" + } + + if result.get("query_classification"): + meta["query_classification"] = result.get("query_classification") + + # ========== ⑤ 最终返回 ========== + return { + "code": 200, + "message": "success", + "data": { + "nodes": nodes, + "links": links, + "results": text_results, + }, + "meta": meta, + } + + except HTTPException: + raise + except Exception as e: + # 确保 elapsed_ms 有值 + if elapsed_ms == 0.0: + elapsed_ms = round((time.time() - start_time) * 1000, 2) + + logger.exception(f"[query_cypher] Critical Error: {str(e)}") + return { + "code": 500, + "message": f"Query failed: {str(e)}", + "data": { + "nodes": [], + "links": [], + "results": "" + }, + "meta": { + "elapsed_ms": elapsed_ms, + "result_count": 0, + "cypher": final_cypher, + "error": str(e) + } + } + + +# 接口:读取 kg_build 配置缓存 +@app.get("/kg_config_cache") +async def get_kg_config_cache(): + """返回最近一次通过 `/kg_build` 保存的配置缓存(kg_config_cache.json)。""" + try: + cache_path = os.path.join(DATA_DIR, "kg_config_cache.json") + if not os.path.exists(cache_path): + # 回退到代码目录中的缓存文件(如果 DATA_DIR 不可写或不存在) + cache_path = os.path.join(os.path.dirname(__file__), "kg_config_cache.json") + + if not os.path.exists(cache_path): + return JSONResponse({"code": 404, "message": "kg_config_cache.json 未找到", "data": None}, status_code=404) + + async with aiofiles.open(cache_path, "r", encoding="utf-8") as f: + raw = await f.read() + try: + data = json.loads(raw) + except Exception as e: + return JSONResponse({"code": 500, "message": f"解析缓存文件失败: {e}", "data": None}, status_code=500) + + return {"code": 200, "message": "success", "data": data} + except Exception as e: + return JSONResponse({"code": 500, "message": str(e), "data": None}, status_code=500) + + +if __name__ == "__main__": + import uvicorn + + uvicorn.run(app, host="0.0.0.0", port=9085) + diff --git a/app_files_0729/777-11A1014-B01001_发动机-维修手册.pdf b/app_files_0729/777-11A1014-B01001_发动机-维修手册.pdf new file mode 100644 index 0000000..7353772 Binary files /dev/null and b/app_files_0729/777-11A1014-B01001_发动机-维修手册.pdf differ diff --git a/app_files_0729/kg_cache/merged_output_batch_777-11A1014-B01001_发动机-维修手册.pdf.json b/app_files_0729/kg_cache/merged_output_batch_777-11A1014-B01001_发动机-维修手册.pdf.json new file mode 100644 index 0000000..9bdcddf --- /dev/null +++ b/app_files_0729/kg_cache/merged_output_batch_777-11A1014-B01001_发动机-维修手册.pdf.json @@ -0,0 +1,1417 @@ +{ + "entities": [ + { + "type": "故障模式", + "properties": { + "名称": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大", + "故障现象": "主机运行中振动异常增大", + "故障原因": "主轴承或连杆大端轴承磨损", + "维修方案": "执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "曲轴主轴颈跳动超差导致主机运行中振动异常增大", + "故障现象": "主机运行中振动异常增大", + "故障原因": "曲轴主轴颈跳动超差", + "维修方案": "执行以下维修项目:MTO03 检测曲轴主轴颈跳动量", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低", + "故障现象": "单缸功率下降、排温偏低", + "故障原因": "活塞头烧蚀或活塞环断裂", + "维修方案": "执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "气缸套严重磨损导致单缸功率下降、排温偏低", + "故障现象": "单缸功率下降、排温偏低", + "故障原因": "气缸套严重磨损", + "维修方案": "执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低", + "故障现象": "单缸功率下降、排温偏低", + "故障原因": "喷油嘴偶件雾化不良", + "维修方案": "执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高", + "故障现象": "排气温度异常升高", + "故障原因": "排气阀密封面磨损或阀座烧蚀", + "维修方案": "执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "涡轮增压器轴承损坏导致排气温度异常升高", + "故障现象": "排气温度异常升高", + "故障原因": "涡轮增压器轴承损坏", + "维修方案": "执行以下维修项目:MT015 更换涡轮增压器轴承组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏", + "故障现象": "扫气箱内发现润滑油泄漏", + "故障原因": "活塞杆填料函密封失效", + "维修方案": "执行以下维修项目:MTO01保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "缸盖密封环老化失效导致主机启动困难或压缩压力不足", + "故障现象": "主机启动困难或压缩压力不足", + "故障原因": "缸盖密封环老化失效", + "维修方案": "执行以下维修项目:MT001保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "喷油器工作不一致导致主机功率输出不稳定", + "故障现象": "主机功率输出不稳定", + "故障原因": "喷油器工作不一致", + "维修方案": "执行以下维修项目:MT019 排除喷油器雾化不良故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "调速系统响应异常导致主机功率输出不稳定", + "故障现象": "主机功率输出不稳定", + "故障原因": "调速系统响应异常", + "维修方案": "执行以下维修项目:MT020 排除主机功率异常波动故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高", + "故障现象": "空冷器后扫气温度持续偏高", + "故障原因": "空冷器管束芯体结垢或堵塞", + "维修方案": "执行以下维修项目:MT016 清洗空冷器管束芯体", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞环磨损或断裂导致主机润滑油消耗异常增加", + "故障现象": "主机润滑油消耗异常增加", + "故障原因": "活塞环磨损或断裂", + "维修方案": "执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞杆填料函磨损导致", + "故障现象": "", + "故障原因": "活塞杆填料函磨损", + "维修方案": "执行以下维修项目:MT001保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "高压油管接头密封失效导致高压燃油管路附近有油渍", + "故障现象": "高压燃油管路附近有油渍", + "故障原因": "高压油管接头密封失效", + "维修方案": "执行以下维修项目:MT014 更换高压油泵柱塞偶件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "润滑油压力骤降导致主机紧急停机", + "故障现象": "主机紧急停机", + "故障原因": "润滑油压力骤降", + "维修方案": "执行以下维修项目:MT001保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "多缸燃烧严重失衡导致主机紧急停机", + "故障现象": "主机紧急停机", + "故障原因": "多缸燃烧严重失衡", + "维修方案": "执行以下维修项目:MT020 排除主机功率异常波动故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "发动机的维修工作" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "保养机座与机架组件", + "编号": "MT001", + "内容": "表 4.3 MT001 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT00101机座与机架组件保养机座与机架组件1MJY级
安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。
安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。
序号名称规格/型号数量及单位备注
1液压升降平台HLP-30001台用于接近主机上部
2扭矩扳手TB-200N·m1把精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FIT1套厂家配套
4工业吸油泵VAC-0IL501台防爆型
2)备品备件
名称规格/型号消耗数量备注
1高压燃油泵HD-45A2个原厂件
2涡轮增压器TC-80B1个耐高温氟橡胶
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1柴油机专用润滑油Shell Mysella S5N8050L符合MAN 97101标准
2无纺布抹布Industrial Grade5张不掉屑
3清洗剂CRC Brakleen1罐用于清洁滤座
\n\n
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师主导保养流程
2电气专业1技师监控主机ECU状 态
修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识;
3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油;
图 MT001.1旋松螺塞
(2)检查排出机油中是否有金属屑,若有则记录并上报异常。
图MT001.2检查
2)更换机油滤芯
\n图 MT001.3 拆卸\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\n图 MT001.4 滤芯安装扭矩示意图\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\n图 MT001.5 滤芯安装扭矩示意图\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\n(2)静置 10 分钟后复查油位,补充至标准范围。\n图 MT001.6 油位检查\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\n图 MT001.7 安装放油螺塞\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\n\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\n图 MT001.8 油污清理\n
3)拆除“禁止启动”牌,通知集控室保养完成。
验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下);
2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。
页码:2/2版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.3 MT001 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT00101机座与机架组件保养机座与机架组件1MJY级
安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。
安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。
序号名称规格/型号数量及单位备注
1液压升降平台HLP-30001台用于接近主机上部
2扭矩扳手TB-200N·m1把精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FIT1套厂家配套
4工业吸油泵VAC-0IL501台防爆型
2)备品备件
名称规格/型号消耗数量备注
1高压燃油泵HD-45A2个原厂件
2涡轮增压器TC-80B1个耐高温氟橡胶
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1柴油机专用润滑油Shell Mysella S5N8050L符合MAN 97101标准
2无纺布抹布Industrial Grade5张不掉屑
3清洗剂CRC Brakleen1罐用于清洁滤座
\\n\\n
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师主导保养流程
2电气专业1技师监控主机ECU状 态
修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识;
3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油;
图 MT001.1旋松螺塞
(2)检查排出机油中是否有金属屑,若有则记录并上报异常。
图MT001.2检查
2)更换机油滤芯
\\n图 MT001.3 拆卸\\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\\n图 MT001.4 滤芯安装扭矩示意图\\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\\n图 MT001.5 滤芯安装扭矩示意图\\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\\n(2)静置 10 分钟后复查油位,补充至标准范围。\\n图 MT001.6 油位检查\\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\\n图 MT001.7 安装放油螺塞\\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\\n\\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\\n图 MT001.8 油污清理\\n
3)拆除“禁止启动”牌,通知集控室保养完成。
验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下);
2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。
页码:2/2版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3e87ad34-4dc0-427a-b3a2-364164392059.pdf#page=20\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "机座与机架组件", + "组成编码": "01", + "维修项目名称": "保养机座与机架组件", + "维修项目编号": "MT001", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.3 MT001 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT00101机座与机架组件保养机座与机架组件1MJY级
安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。
安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。
序号名称规格/型号数量及单位备注
1液压升降平台HLP-30001台用于接近主机上部
2扭矩扳手TB-200N·m1把精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FIT1套厂家配套
4工业吸油泵VAC-0IL501台防爆型
2)备品备件
名称规格/型号消耗数量备注
1高压燃油泵HD-45A2个原厂件
2涡轮增压器TC-80B1个耐高温氟橡胶
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1柴油机专用润滑油Shell Mysella S5N8050L符合MAN 97101标准
2无纺布抹布Industrial Grade5张不掉屑
3清洗剂CRC Brakleen1罐用于清洁滤座
\\n\\n
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师主导保养流程
2电气专业1技师监控主机ECU状 态
修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识;
3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油;
图 MT001.1旋松螺塞
(2)检查排出机油中是否有金属屑,若有则记录并上报异常。
图MT001.2检查
2)更换机油滤芯
\\n图 MT001.3 拆卸\\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\\n图 MT001.4 滤芯安装扭矩示意图\\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\\n图 MT001.5 滤芯安装扭矩示意图\\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\\n(2)静置 10 分钟后复查油位,补充至标准范围。\\n图 MT001.6 油位检查\\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\\n图 MT001.7 安装放油螺塞\\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\\n\\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\\n图 MT001.8 油污清理\\n
3)拆除“禁止启动”牌,通知集控室保养完成。
验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下);
2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。
页码:2/2版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3e87ad34-4dc0-427a-b3a2-364164392059.pdf#page=20\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检查主轴承座安装状态", + "编号": "MT002", + "内容": "表 4.4 MT002 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0020101焊接机座组件检查主轴承座安装状态6M/200hJY级
安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。
安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。
序号名称规格/型号数量及单位备注
1激光对中仪SKF TKSA 711套用于轴承同轴度检测
2塞尺组0.02 -1.00 mm1套精度±0.005mm
3液压拉伸器HYTORC AVANTI-101台用于地脚螺栓预紧
4内径千分尺200-300mm1把校验有效期内
2)备品备件
名称规格/型号消耗数量备注
1排气阀PV-1001
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁酒精AR Grade100mL
2防锈纸VCI-2002张
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师
修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;
\n图 MT002.1 换油前清洗\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\n图 MT002.2 检查\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\n图 MT002.3 塞尺测量\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\n图 MT002.4 激光对中仪\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\n图 MT002.5 测量轴线偏移量\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\n\n
判定与处理
1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。
验收标准
1.主轴承座与机座结合面间隙≤0.05mm(全周);
2.相邻主轴承同轴度偏差≤0.08 mm/m;
3.地脚螺栓预紧力在设计值 ±5% 范围内。
页码:1/1版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.4 MT002 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0020101焊接机座组件检查主轴承座安装状态6M/200hJY级
安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。
安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。
序号名称规格/型号数量及单位备注
1激光对中仪SKF TKSA 711套用于轴承同轴度检测
2塞尺组0.02 -1.00 mm1套精度±0.005mm
3液压拉伸器HYTORC AVANTI-101台用于地脚螺栓预紧
4内径千分尺200-300mm1把校验有效期内
2)备品备件
名称规格/型号消耗数量备注
1排气阀PV-1001
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁酒精AR Grade100mL
2防锈纸VCI-2002张
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师
修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;
\\n图 MT002.1 换油前清洗\\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\\n图 MT002.2 检查\\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\\n图 MT002.3 塞尺测量\\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\\n图 MT002.4 激光对中仪\\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\\n图 MT002.5 测量轴线偏移量\\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\\n\\n
判定与处理
1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。
验收标准
1.主轴承座与机座结合面间隙≤0.05mm(全周);
2.相邻主轴承同轴度偏差≤0.08 mm/m;
3.地脚螺栓预紧力在设计值 ±5% 范围内。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1416a6cb-7b91-466b-9287-ff15f275e8c7.pdf#page=23\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "焊接机座组件", + "组成编码": "0101", + "维修项目名称": "检查主轴承座安装状态", + "维修项目编号": "MT002", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.4 MT002 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0020101焊接机座组件检查主轴承座安装状态6M/200hJY级
安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。
安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。
序号名称规格/型号数量及单位备注
1激光对中仪SKF TKSA 711套用于轴承同轴度检测
2塞尺组0.02 -1.00 mm1套精度±0.005mm
3液压拉伸器HYTORC AVANTI-101台用于地脚螺栓预紧
4内径千分尺200-300mm1把校验有效期内
2)备品备件
名称规格/型号消耗数量备注
1排气阀PV-1001
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁酒精AR Grade100mL
2防锈纸VCI-2002张
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师
修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;
\\n图 MT002.1 换油前清洗\\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\\n图 MT002.2 检查\\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\\n图 MT002.3 塞尺测量\\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\\n图 MT002.4 激光对中仪\\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\\n图 MT002.5 测量轴线偏移量\\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\\n\\n
判定与处理
1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。
验收标准
1.主轴承座与机座结合面间隙≤0.05mm(全周);
2.相邻主轴承同轴度偏差≤0.08 mm/m;
3.地脚螺栓预紧力在设计值 ±5% 范围内。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1416a6cb-7b91-466b-9287-ff15f275e8c7.pdf#page=23\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检测曲轴主轴颈跳动量", + "编号": "MT003", + "内容": "表 4.5 MT003 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0030201曲轴组件检测曲轴主轴颈跳动量1A/8000hJY级
安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。
安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg
序号名称规格/型号数量及单位备注
1精密千分表Mitutoyo 543-791D1套分辨率0.001 mm
2磁力表座Starrett 16B1个带万向关节
3V型支撑架Custom-Crank-V3002组承重≥500kg
\n\n
4盘车手轮OEM-MAN-BW-PCW1个原厂配套
\n\n
名称规格/型号消耗数量备注
1排气阀PV-1001
\n\n
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%50mL清洁轴颈表面
2无绒擦拭布Kimwipe EX-L3张防刮伤轴面
\n\n
序号专业人数技能等级备注
1机械专业2总工+工程师总工复刻数据
\n图 MT003.1 清洁\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\n图 MT003.2 标记测量基准点\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\n2)安装千分表\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\n图 MT003.3 千分尺\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\n(2)预压千分表 0.3 mm,归零。\n3)盘车测量\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\n(2)跳动量 = 最大值 - 最小值;\n(3)重复上述步骤,依次测量其余主轴颈。\n数据判定\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\n\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.5 MT003 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0030201曲轴组件检测曲轴主轴颈跳动量1A/8000hJY级
安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。
安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg
序号名称规格/型号数量及单位备注
1精密千分表Mitutoyo 543-791D1套分辨率0.001 mm
2磁力表座Starrett 16B1个带万向关节
3V型支撑架Custom-Crank-V3002组承重≥500kg
\\n\\n
4盘车手轮OEM-MAN-BW-PCW1个原厂配套
\\n\\n
名称规格/型号消耗数量备注
1排气阀PV-1001
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%50mL清洁轴颈表面
2无绒擦拭布Kimwipe EX-L3张防刮伤轴面
\\n\\n
序号专业人数技能等级备注
1机械专业2总工+工程师总工复刻数据
\\n图 MT003.1 清洁\\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\\n图 MT003.2 标记测量基准点\\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\\n2)安装千分表\\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\\n图 MT003.3 千分尺\\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\\n(2)预压千分表 0.3 mm,归零。\\n3)盘车测量\\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\\n(2)跳动量 = 最大值 - 最小值;\\n(3)重复上述步骤,依次测量其余主轴颈。\\n数据判定\\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\\n\\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8e20bf10-c161-4a3f-89fc-2cd7afd91b16.pdf#page=27\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "曲轴组件", + "组成编码": "0201", + "维修项目名称": "检测曲轴主轴颈跳动量", + "维修项目编号": "MT003", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.5 MT003 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0030201曲轴组件检测曲轴主轴颈跳动量1A/8000hJY级
安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。
安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg
序号名称规格/型号数量及单位备注
1精密千分表Mitutoyo 543-791D1套分辨率0.001 mm
2磁力表座Starrett 16B1个带万向关节
3V型支撑架Custom-Crank-V3002组承重≥500kg
\\n\\n
4盘车手轮OEM-MAN-BW-PCW1个原厂配套
\\n\\n
名称规格/型号消耗数量备注
1排气阀PV-1001
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%50mL清洁轴颈表面
2无绒擦拭布Kimwipe EX-L3张防刮伤轴面
\\n\\n
序号专业人数技能等级备注
1机械专业2总工+工程师总工复刻数据
\\n图 MT003.1 清洁\\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\\n图 MT003.2 标记测量基准点\\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\\n2)安装千分表\\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\\n图 MT003.3 千分尺\\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\\n(2)预压千分表 0.3 mm,归零。\\n3)盘车测量\\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\\n(2)跳动量 = 最大值 - 最小值;\\n(3)重复上述步骤,依次测量其余主轴颈。\\n数据判定\\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\\n\\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8e20bf10-c161-4a3f-89fc-2cd7afd91b16.pdf#page=27\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换连杆大端轴承", + "编号": "MT004", + "内容": "表 4.6 MT004 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT004020201连杆大端轴承更换连杆大端轴承2A/12000hJT级
安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。
安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。
序号名称规格/型号数量及单位备注
1液压拉伸器HYTORC RS-201套
2扭矩扳手Norbar 1500N·m1把精度±2%
3轴承安装导向套OEM-MAN-BW-BG-041个
4内窥镜GE Mentor Visual iQ1台
2)备品备件
名称规格/型号消耗数量备注
1连杆大端轴承上瓦MAN 5L35MC-BRG-UP1副原厂高锡合金
2连杆大端轴承下瓦MAN 5L35MC-BRG-DN1副
3连杆螺栓M30 ×2.0 Grade 12.92根次性使用,强制更换
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\n\n
1轴承装配润滑脂Kluber Isoflex LDS18 Special A10g仅涂瓦背
2螺纹锁固胶Loctite 2701少量用于螺栓螺纹(如适用)
3清洗剂Brulin 815GD200mL清洁连杆结合面
\n4)人力人员\n\n
序号专业人数技能等级备注
1机械专业3总工+2x工程师总工监督关键步骤
\n修理步骤及工艺\n更换前提确认\n1)主机已完成停机冷却,滑油系统泄压;\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\n拆卸旧轴承\n1)拆连杆盖\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\n(2)取下螺栓及连杆大端盖,放置于专用托架。\n2)取出旧轴承\n(1)轻敲连杆体侧面,使下瓦自然脱落;\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\n安装新轴承\n1)清洁与检查\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\n(2)目视检查新瓦背面涂层均匀,无裂纹。\n2)装配\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\n(2)将下瓦装入连杆盖,同样对准定位;\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\n3)紧固螺栓\n(1)安装新连杆螺栓,手工旋入到底;\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\n(3)最终用角度法复核(如适用)。\n图 MT004.1 连杆大端轴承结构分解图\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.6 MT004 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT004020201连杆大端轴承更换连杆大端轴承2A/12000hJT级
安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。
安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。
序号名称规格/型号数量及单位备注
1液压拉伸器HYTORC RS-201套
2扭矩扳手Norbar 1500N·m1把精度±2%
3轴承安装导向套OEM-MAN-BW-BG-041个
4内窥镜GE Mentor Visual iQ1台
2)备品备件
名称规格/型号消耗数量备注
1连杆大端轴承上瓦MAN 5L35MC-BRG-UP1副原厂高锡合金
2连杆大端轴承下瓦MAN 5L35MC-BRG-DN1副
3连杆螺栓M30 ×2.0 Grade 12.92根次性使用,强制更换
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1轴承装配润滑脂Kluber Isoflex LDS18 Special A10g仅涂瓦背
2螺纹锁固胶Loctite 2701少量用于螺栓螺纹(如适用)
3清洗剂Brulin 815GD200mL清洁连杆结合面
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业3总工+2x工程师总工监督关键步骤
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成停机冷却,滑油系统泄压;\\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\\n拆卸旧轴承\\n1)拆连杆盖\\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\\n(2)取下螺栓及连杆大端盖,放置于专用托架。\\n2)取出旧轴承\\n(1)轻敲连杆体侧面,使下瓦自然脱落;\\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\\n安装新轴承\\n1)清洁与检查\\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\\n(2)目视检查新瓦背面涂层均匀,无裂纹。\\n2)装配\\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\\n(2)将下瓦装入连杆盖,同样对准定位;\\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\\n3)紧固螺栓\\n(1)安装新连杆螺栓,手工旋入到底;\\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\\n(3)最终用角度法复核(如适用)。\\n图 MT004.1 连杆大端轴承结构分解图\\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3c8cb01b-bfd0-4e6d-9fd7-d7490b0cc28f.pdf#page=29\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "连杆大端轴承", + "组成编码": "020201", + "维修项目名称": "更换连杆大端轴承", + "维修项目编号": "MT004", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.6 MT004 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT004020201连杆大端轴承更换连杆大端轴承2A/12000hJT级
安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。
安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。
序号名称规格/型号数量及单位备注
1液压拉伸器HYTORC RS-201套
2扭矩扳手Norbar 1500N·m1把精度±2%
3轴承安装导向套OEM-MAN-BW-BG-041个
4内窥镜GE Mentor Visual iQ1台
2)备品备件
名称规格/型号消耗数量备注
1连杆大端轴承上瓦MAN 5L35MC-BRG-UP1副原厂高锡合金
2连杆大端轴承下瓦MAN 5L35MC-BRG-DN1副
3连杆螺栓M30 ×2.0 Grade 12.92根次性使用,强制更换
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1轴承装配润滑脂Kluber Isoflex LDS18 Special A10g仅涂瓦背
2螺纹锁固胶Loctite 2701少量用于螺栓螺纹(如适用)
3清洗剂Brulin 815GD200mL清洁连杆结合面
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业3总工+2x工程师总工监督关键步骤
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成停机冷却,滑油系统泄压;\\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\\n拆卸旧轴承\\n1)拆连杆盖\\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\\n(2)取下螺栓及连杆大端盖,放置于专用托架。\\n2)取出旧轴承\\n(1)轻敲连杆体侧面,使下瓦自然脱落;\\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\\n安装新轴承\\n1)清洁与检查\\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\\n(2)目视检查新瓦背面涂层均匀,无裂纹。\\n2)装配\\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\\n(2)将下瓦装入连杆盖,同样对准定位;\\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\\n3)紧固螺栓\\n(1)安装新连杆螺栓,手工旋入到底;\\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\\n(3)最终用角度法复核(如适用)。\\n图 MT004.1 连杆大端轴承结构分解图\\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3c8cb01b-bfd0-4e6d-9fd7-d7490b0cc28f.pdf#page=29\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换连杆小段轴承", + "编号": "MT005", + "内容": "表 4.7 MT005 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT005020203连杆小段轴承更换连杆小段轴承2A/12000hJY级
安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。
安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。
序号名称规格/型号数量及单位备注
1活塞吊装专用吊具OEM-MAN-BW-PST-051套带缓冲橡胶夹头
2感应加热器EFD Induction Minac161台温控精度±5℃
3内径千分尺40 - 50 mm1把校验有效期内
4铜棒与塑料锤Φ20×300 mm各1把
2)备品备件
名称规格/型号消耗数量备注
1连杆小端衬套(上)MAN 5L35MC-BUSH-UP1件锡青铜基
2连杆小端衬套(下)MAN 5L35MC-BUSH-DN1件
3活塞销卡簧Φ50×2.5 mm2个不锈钢,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\n\n
1高温装配润滑脂Molycote G-10525g
2清洗剂Brulin 815GD150mL
3耐高温标记笔Markal 900°F1支
\n4)人力人员\n\n
序号专业人数技能等级备注
1机械专业2工程师+技师工程师主导热装
\n修理步骤及工艺\n更换前提确认\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\n拆卸旧衬套\n1)抽出活塞-连杆总成\n(1)拆除缸头、喷油器及冷却水管路;\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\n2)压出旧衬套\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\n安装新衬套\n1)清洁与预装检查\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\n(2)测量座孔内径,记录作为过盈量计算依据。\n2)热装新衬套\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\n(2)迅速将热衬套套入连杆小端,确保完全到位;\n(3)自然冷却至室温,禁止强制冷却。\n3)精铰与研配(如需要)\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\n组装活塞销与卡簧\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\n\n
验收标准
1.衬套与座孔过盈配合牢固,无松动或轴向位移;
2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。
页码:1/1版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.7 MT005 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT005020203连杆小段轴承更换连杆小段轴承2A/12000hJY级
安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。
安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。
序号名称规格/型号数量及单位备注
1活塞吊装专用吊具OEM-MAN-BW-PST-051套带缓冲橡胶夹头
2感应加热器EFD Induction Minac161台温控精度±5℃
3内径千分尺40 - 50 mm1把校验有效期内
4铜棒与塑料锤Φ20×300 mm各1把
2)备品备件
名称规格/型号消耗数量备注
1连杆小端衬套(上)MAN 5L35MC-BUSH-UP1件锡青铜基
2连杆小端衬套(下)MAN 5L35MC-BUSH-DN1件
3活塞销卡簧Φ50×2.5 mm2个不锈钢,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1高温装配润滑脂Molycote G-10525g
2清洗剂Brulin 815GD150mL
3耐高温标记笔Markal 900°F1支
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业2工程师+技师工程师主导热装
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\\n拆卸旧衬套\\n1)抽出活塞-连杆总成\\n(1)拆除缸头、喷油器及冷却水管路;\\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\\n2)压出旧衬套\\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\\n安装新衬套\\n1)清洁与预装检查\\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\\n(2)测量座孔内径,记录作为过盈量计算依据。\\n2)热装新衬套\\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\\n(2)迅速将热衬套套入连杆小端,确保完全到位;\\n(3)自然冷却至室温,禁止强制冷却。\\n3)精铰与研配(如需要)\\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\\n组装活塞销与卡簧\\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\\n\\n
验收标准
1.衬套与座孔过盈配合牢固,无松动或轴向位移;
2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_989f92a1-7f51-4cdf-8bbb-2aeba9ccac07.pdf#page=31\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "连杆小段轴承", + "组成编码": "020203", + "维修项目名称": "更换连杆小段轴承", + "维修项目编号": "MT005", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.7 MT005 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT005020203连杆小段轴承更换连杆小段轴承2A/12000hJY级
安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。
安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。
序号名称规格/型号数量及单位备注
1活塞吊装专用吊具OEM-MAN-BW-PST-051套带缓冲橡胶夹头
2感应加热器EFD Induction Minac161台温控精度±5℃
3内径千分尺40 - 50 mm1把校验有效期内
4铜棒与塑料锤Φ20×300 mm各1把
2)备品备件
名称规格/型号消耗数量备注
1连杆小端衬套(上)MAN 5L35MC-BUSH-UP1件锡青铜基
2连杆小端衬套(下)MAN 5L35MC-BUSH-DN1件
3活塞销卡簧Φ50×2.5 mm2个不锈钢,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1高温装配润滑脂Molycote G-10525g
2清洗剂Brulin 815GD150mL
3耐高温标记笔Markal 900°F1支
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业2工程师+技师工程师主导热装
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\\n拆卸旧衬套\\n1)抽出活塞-连杆总成\\n(1)拆除缸头、喷油器及冷却水管路;\\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\\n2)压出旧衬套\\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\\n安装新衬套\\n1)清洁与预装检查\\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\\n(2)测量座孔内径,记录作为过盈量计算依据。\\n2)热装新衬套\\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\\n(2)迅速将热衬套套入连杆小端,确保完全到位;\\n(3)自然冷却至室温,禁止强制冷却。\\n3)精铰与研配(如需要)\\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\\n组装活塞销与卡簧\\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\\n\\n
验收标准
1.衬套与座孔过盈配合牢固,无松动或轴向位移;
2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_989f92a1-7f51-4cdf-8bbb-2aeba9ccac07.pdf#page=31\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "拆检活塞头磨损情况", + "编号": "MT006", + "内容": "表 4.8 MT006 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT006030201活塞头拆检活塞头磨损情况1A/8000hJY级
安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。
安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配350mm活塞
2内窥镜GE Mentor Visual iQ1台
3深度规0-150mm1把
4放大镜10× with scale1个
2)备品备件
名称规格/型号消耗数量备注
11本项目为检查类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1积碳清洗剂CRC Carbon CleanPro200mL环保型
2无纺布Industrial Grade5张
3防锈油CRC 3-3650mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。
抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态
1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查
(1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。
判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008;
3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.8 MT006 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT006030201活塞头拆检活塞头磨损情况1A/8000hJY级
安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。
安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配350mm活塞
2内窥镜GE Mentor Visual iQ1台
3深度规0-150mm1把
4放大镜10× with scale1个
2)备品备件
名称规格/型号消耗数量备注
11本项目为检查类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1积碳清洗剂CRC Carbon CleanPro200mL环保型
2无纺布Industrial Grade5张
3防锈油CRC 3-3650mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。
抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态
1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查
(1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。
判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008;
3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_5617ece6-b596-47da-a2c7-4218c18390b7.pdf#page=32\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "活塞头", + "组成编码": "030201", + "维修项目名称": "拆检活塞头磨损情况", + "维修项目编号": "MT006", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.8 MT006 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT006030201活塞头拆检活塞头磨损情况1A/8000hJY级
安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。
安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配350mm活塞
2内窥镜GE Mentor Visual iQ1台
3深度规0-150mm1把
4放大镜10× with scale1个
2)备品备件
名称规格/型号消耗数量备注
11本项目为检查类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1积碳清洗剂CRC Carbon CleanPro200mL环保型
2无纺布Industrial Grade5张
3防锈油CRC 3-3650mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。
抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态
1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查
(1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。
判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008;
3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_5617ece6-b596-47da-a2c7-4218c18390b7.pdf#page=32\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换1号压缩环", + "编号": "MT007", + "内容": "表 4.9 MT007 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0070302031号压缩环更换1号压缩环1A/8000hJY级
安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。
安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。
\n\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配Φ350 mm活塞
2环口间隙测量规Feeler Gauge Set1套0.05-1.00mm
3环槽清洁刮刀Custom-Piston-Groove-Scraper1把铜质刃口
4扭矩扳手20-100 N·m1把
2)备品备件
名称规格/型号消耗数量备注
1第一道压缩环MAN 5L35MC-RING-11件梯形截面,表面镀铬
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus5g
2无绒布Kimwipe EX-L3张
3清洗剂Brulin 815GD100mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师复刻还口间隙
修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。
验收标准
1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内;
页码:1/13.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.9 MT007 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0070302031号压缩环更换1号压缩环1A/8000hJY级
安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。
安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配Φ350 mm活塞
2环口间隙测量规Feeler Gauge Set1套0.05-1.00mm
3环槽清洁刮刀Custom-Piston-Groove-Scraper1把铜质刃口
4扭矩扳手20-100 N·m1把
2)备品备件
名称规格/型号消耗数量备注
1第一道压缩环MAN 5L35MC-RING-11件梯形截面,表面镀铬
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus5g
2无绒布Kimwipe EX-L3张
3清洗剂Brulin 815GD100mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师复刻还口间隙
修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。
验收标准
1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内;
页码:1/13.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_11764560-e529-4268-a045-e036ba8ba667.pdf#page=33\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "1号压缩环", + "组成编码": "030203", + "维修项目名称": "更换1号压缩环", + "维修项目编号": "MT007", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.9 MT007 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0070302031号压缩环更换1号压缩环1A/8000hJY级
安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。
安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配Φ350 mm活塞
2环口间隙测量规Feeler Gauge Set1套0.05-1.00mm
3环槽清洁刮刀Custom-Piston-Groove-Scraper1把铜质刃口
4扭矩扳手20-100 N·m1把
2)备品备件
名称规格/型号消耗数量备注
1第一道压缩环MAN 5L35MC-RING-11件梯形截面,表面镀铬
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus5g
2无绒布Kimwipe EX-L3张
3清洗剂Brulin 815GD100mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师复刻还口间隙
修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。
验收标准
1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内;
页码:1/13.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_11764560-e529-4268-a045-e036ba8ba667.pdf#page=33\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换2-4号活塞环", + "编号": "MT008", + "内容": "表 4.10 MT008 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0080302042-4号活塞环更换2-4号活塞环1A/8000hJY级
安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。
安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个同MT007
2环口定位夹具Custom-Ring-Aligner1套控制各环开口相位
3放大镜(带LED)5X with light1个检查环体缺陷
2)备品备件
名称规格/型号消耗数量备注
1第二道压缩环MAN 5L35MC-RING-21件锥面环
2第三道刮油环(组合式)MAN 5L35MC-RING-31套含轨环+弹簧胀圈
3第四道刮油环(组合式)MAN 5L35MC-RING-41套同上
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus10g涂所有环外圆
2缸套润滑机油Shell Mysella S5N8050mL涂缸壁
3标记笔(耐油)Marka1Oil-Resistant1支标记环开口位置
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+ 技师工程师监督相位布置
修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。
拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。
差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120°
(1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证
1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.10 MT008 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0080302042-4号活塞环更换2-4号活塞环1A/8000hJY级
安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。
安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个同MT007
2环口定位夹具Custom-Ring-Aligner1套控制各环开口相位
3放大镜(带LED)5X with light1个检查环体缺陷
2)备品备件
名称规格/型号消耗数量备注
1第二道压缩环MAN 5L35MC-RING-21件锥面环
2第三道刮油环(组合式)MAN 5L35MC-RING-31套含轨环+弹簧胀圈
3第四道刮油环(组合式)MAN 5L35MC-RING-41套同上
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus10g涂所有环外圆
2缸套润滑机油Shell Mysella S5N8050mL涂缸壁
3标记笔(耐油)Marka1Oil-Resistant1支标记环开口位置
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+ 技师工程师监督相位布置
修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。
拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。
差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120°
(1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证
1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_c8dc7bf9-e9b4-4423-91ad-4afb1911fadd.pdf#page=35\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "2-4号活塞环", + "组成编码": "030204", + "维修项目名称": "更换2-4号活塞环", + "维修项目编号": "MT008", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.10 MT008 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0080302042-4号活塞环更换2-4号活塞环1A/8000hJY级
安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。
安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个同MT007
2环口定位夹具Custom-Ring-Aligner1套控制各环开口相位
3放大镜(带LED)5X with light1个检查环体缺陷
2)备品备件
名称规格/型号消耗数量备注
1第二道压缩环MAN 5L35MC-RING-21件锥面环
2第三道刮油环(组合式)MAN 5L35MC-RING-31套含轨环+弹簧胀圈
3第四道刮油环(组合式)MAN 5L35MC-RING-41套同上
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus10g涂所有环外圆
2缸套润滑机油Shell Mysella S5N8050mL涂缸壁
3标记笔(耐油)Marka1Oil-Resistant1支标记环开口位置
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+ 技师工程师监督相位布置
修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。
拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。
差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120°
(1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证
1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_c8dc7bf9-e9b4-4423-91ad-4afb1911fadd.pdf#page=35\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检测气缸套内径磨损量", + "编号": "MT009", + "内容": "表 4.11 MT009 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT009030301气缸套检测气缸套内径磨损量1A/8000hJY级
安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。
安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1内径千分尺(三点式) Mitutoyo 204-304 mm1套分辨率0.001mm
2缸套磨损测量记录仪Custom-Bore-Wear-Log1台自动生成磨损曲线
3防爆LED手电Streamlight 880401个24V安全电压
4清洁气枪Industrial Air BlowGun1把压力≤0.5 MPa
2)备品
名称规格/型号消耗数量备注
11本项目为检测类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%100mL清洁测量接触面
2无绒布Kimwipe EX-L5张防刮伤缸壁
3防锈纸VCI-2002张测量后临时覆盖
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工审核磨损趋势
\n\n\n\n
3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略)
验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。
页码:1/1版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.11 MT009 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT009030301气缸套检测气缸套内径磨损量1A/8000hJY级
安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。
安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1内径千分尺(三点式) Mitutoyo 204-304 mm1套分辨率0.001mm
2缸套磨损测量记录仪Custom-Bore-Wear-Log1台自动生成磨损曲线
3防爆LED手电Streamlight 880401个24V安全电压
4清洁气枪Industrial Air BlowGun1把压力≤0.5 MPa
2)备品
名称规格/型号消耗数量备注
11本项目为检测类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%100mL清洁测量接触面
2无绒布Kimwipe EX-L5张防刮伤缸壁
3防锈纸VCI-2002张测量后临时覆盖
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工审核磨损趋势
\\n\\n\\n\\n
3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略)
验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1352eb4a-1f16-4fb9-b64d-4c5786cb8e8d.pdf#page=36\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "气缸套", + "组成编码": "030301", + "维修项目名称": "检测气缸套内径磨损量", + "维修项目编号": "MT009", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.11 MT009 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT009030301气缸套检测气缸套内径磨损量1A/8000hJY级
安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。
安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1内径千分尺(三点式) Mitutoyo 204-304 mm1套分辨率0.001mm
2缸套磨损测量记录仪Custom-Bore-Wear-Log1台自动生成磨损曲线
3防爆LED手电Streamlight 880401个24V安全电压
4清洁气枪Industrial Air BlowGun1把压力≤0.5 MPa
2)备品
名称规格/型号消耗数量备注
11本项目为检测类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%100mL清洁测量接触面
2无绒布Kimwipe EX-L5张防刮伤缸壁
3防锈纸VCI-2002张测量后临时覆盖
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工审核磨损趋势
\\n\\n\\n\\n
3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略)
验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1352eb4a-1f16-4fb9-b64d-4c5786cb8e8d.pdf#page=36\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换气缸套", + "编号": "MT010", + "内容": "表 4.12 MT010 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT010030301气缸套更换气缸套4A/32000hJY级
安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。
安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。
序号名称规格/型号数量及单位备注
1液压压装机HYDRA-PRESS-50T1台带压力与位移监控
2缸套拔出器OEM-MAN-BW-LINER-PULL1套螺纹顶压式
3冷却水腔密封测试仪LeakTest-CT3001台0.3 MPa保压
4深度规0- 300 mm1把测量缸套凸肩高度
2)备品备件
名称规格/型号消耗数量备注
1气缸套总成MAN5L35MC-LINER-ASSY1件含0形圈、定位销
2缸套水封0形圈Viton Φ380×5.02个耐高温氟橡胶
3缸套油封环NBR Φ352×3.01个下部密封
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1装配润滑脂Kluber Isoflex LDS18 Special A20g涂缸套外壁
2密封胶Loctite 518少量水腔法兰面(如适用)
3清洗剂Brulin 815GD300mL清洁缸体座孔
4)人力人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工监督压装对中
\n\n
修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。
3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm;
2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.12 MT010 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT010030301气缸套更换气缸套4A/32000hJY级
安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。
安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。
序号名称规格/型号数量及单位备注
1液压压装机HYDRA-PRESS-50T1台带压力与位移监控
2缸套拔出器OEM-MAN-BW-LINER-PULL1套螺纹顶压式
3冷却水腔密封测试仪LeakTest-CT3001台0.3 MPa保压
4深度规0- 300 mm1把测量缸套凸肩高度
2)备品备件
名称规格/型号消耗数量备注
1气缸套总成MAN5L35MC-LINER-ASSY1件含0形圈、定位销
2缸套水封0形圈Viton Φ380×5.02个耐高温氟橡胶
3缸套油封环NBR Φ352×3.01个下部密封
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1装配润滑脂Kluber Isoflex LDS18 Special A20g涂缸套外壁
2密封胶Loctite 518少量水腔法兰面(如适用)
3清洗剂Brulin 815GD300mL清洁缸体座孔
4)人力人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工监督压装对中
\\n\\n
修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。
3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm;
2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1b7daafc-9c60-4d7d-acbf-581d29ddb984.pdf#page=38\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "气缸套", + "组成编码": "030301", + "维修项目名称": "更换气缸套", + "维修项目编号": "MT010", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.12 MT010 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT010030301气缸套更换气缸套4A/32000hJY级
安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。
安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。
序号名称规格/型号数量及单位备注
1液压压装机HYDRA-PRESS-50T1台带压力与位移监控
2缸套拔出器OEM-MAN-BW-LINER-PULL1套螺纹顶压式
3冷却水腔密封测试仪LeakTest-CT3001台0.3 MPa保压
4深度规0- 300 mm1把测量缸套凸肩高度
2)备品备件
名称规格/型号消耗数量备注
1气缸套总成MAN5L35MC-LINER-ASSY1件含0形圈、定位销
2缸套水封0形圈Viton Φ380×5.02个耐高温氟橡胶
3缸套油封环NBR Φ352×3.01个下部密封
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1装配润滑脂Kluber Isoflex LDS18 Special A20g涂缸套外壁
2密封胶Loctite 518少量水腔法兰面(如适用)
3清洗剂Brulin 815GD300mL清洁缸体座孔
4)人力人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工监督压装对中
\\n\\n
修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。
3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm;
2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1b7daafc-9c60-4d7d-acbf-581d29ddb984.pdf#page=38\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检查排气阀杆密封面磨损", + "编号": "MT011", + "内容": "表 4.13 MT011 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT011040102阀杆检查排气阀杆密封面磨损6M/4000hJY级
安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。
安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。
\n\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1排气阀专用吊具OEM-MAN-BW-VALVE-HOOK1套带隔热手柄
2红外测温仪Fluke 62 Max+1台测量阀杆温度
3密封面检测平板Optical Flat λ/101块用于着色法检查
4着色剂套装Dykem Steel Blue +Developer1套检查接触印痕
2)备品备件
名称规格/型号消耗数量备注
本项目为检查类,无备件消耗(但可能触发MT012)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温清洁剂CRC Brakleen HT100mL清除积碳
2无绒布Kimwipe EX-L5张防刮伤密封面
3防锈油CRC 3-3630mL检查后临时防护
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座);
3)记录检查结果于《排气阀状态档案》。
验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm;
2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。
页码:1/1版本号:1
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.13 MT011 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT011040102阀杆检查排气阀杆密封面磨损6M/4000hJY级
安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。
安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1排气阀专用吊具OEM-MAN-BW-VALVE-HOOK1套带隔热手柄
2红外测温仪Fluke 62 Max+1台测量阀杆温度
3密封面检测平板Optical Flat λ/101块用于着色法检查
4着色剂套装Dykem Steel Blue +Developer1套检查接触印痕
2)备品备件
名称规格/型号消耗数量备注
本项目为检查类,无备件消耗(但可能触发MT012)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温清洁剂CRC Brakleen HT100mL清除积碳
2无绒布Kimwipe EX-L5张防刮伤密封面
3防锈油CRC 3-3630mL检查后临时防护
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座);
3)记录检查结果于《排气阀状态档案》。
验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm;
2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。
页码:1/1版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_934fd518-5e85-488e-be09-aa2728a92334.pdf#page=39\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "阀杆", + "组成编码": "040102", + "维修项目名称": "检查排气阀杆密封面磨损", + "维修项目编号": "MT011", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.13 MT011 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT011040102阀杆检查排气阀杆密封面磨损6M/4000hJY级
安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。
安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1排气阀专用吊具OEM-MAN-BW-VALVE-HOOK1套带隔热手柄
2红外测温仪Fluke 62 Max+1台测量阀杆温度
3密封面检测平板Optical Flat λ/101块用于着色法检查
4着色剂套装Dykem Steel Blue +Developer1套检查接触印痕
2)备品备件
名称规格/型号消耗数量备注
本项目为检查类,无备件消耗(但可能触发MT012)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温清洁剂CRC Brakleen HT100mL清除积碳
2无绒布Kimwipe EX-L5张防刮伤密封面
3防锈油CRC 3-3630mL检查后临时防护
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座);
3)记录检查结果于《排气阀状态档案》。
验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm;
2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。
页码:1/1版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_934fd518-5e85-488e-be09-aa2728a92334.pdf#page=39\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换排气阀座", + "编号": "MT012", + "内容": "表 4.14 MT012 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT012040103阀座更换排气阀座2A/16000hJY级
安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。
安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。
序号名称规格/型号数量及单位备注
1便携式阀座镗床SUNNEN SV-201台带角度调节
2液压阀座压装机HYDRA-SEAT-PRESS1台用于过盈配合座
3渗透探伤套装Magnaflux ZL-27A1套PT检测裂纹
4角度规0-90°Protractor1把检查密封锥角
2)备品备件
名称规格/型号消耗数量备注
1排气阀座MAN5L35MC-EXH-SEAT1件Stellite合金堆焊
2定位销(如适用)Φ8×20 mm1个不锈钢
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温镍基焊条ENiCrFe-31根用于焊接固定(如需要)
2清洗剂Brulin 815GD150mL清洁阀座孔
3研磨膏(细)Clover Leaf Green20g配合研磨
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工批准焊接/压装方案
修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座
1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。
2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座);
3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。
页码:1/1 版本号:1
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.14 MT012 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT012040103阀座更换排气阀座2A/16000hJY级
安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。
安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。
序号名称规格/型号数量及单位备注
1便携式阀座镗床SUNNEN SV-201台带角度调节
2液压阀座压装机HYDRA-SEAT-PRESS1台用于过盈配合座
3渗透探伤套装Magnaflux ZL-27A1套PT检测裂纹
4角度规0-90°Protractor1把检查密封锥角
2)备品备件
名称规格/型号消耗数量备注
1排气阀座MAN5L35MC-EXH-SEAT1件Stellite合金堆焊
2定位销(如适用)Φ8×20 mm1个不锈钢
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温镍基焊条ENiCrFe-31根用于焊接固定(如需要)
2清洗剂Brulin 815GD150mL清洁阀座孔
3研磨膏(细)Clover Leaf Green20g配合研磨
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工批准焊接/压装方案
修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座
1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。
2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座);
3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。
页码:1/1 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_a654d966-cd48-4143-b1db-32286e025f22.pdf#page=41\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "阀座", + "组成编码": "040103", + "维修项目名称": "更换排气阀座", + "维修项目编号": "MT012", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.14 MT012 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT012040103阀座更换排气阀座2A/16000hJY级
安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。
安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。
序号名称规格/型号数量及单位备注
1便携式阀座镗床SUNNEN SV-201台带角度调节
2液压阀座压装机HYDRA-SEAT-PRESS1台用于过盈配合座
3渗透探伤套装Magnaflux ZL-27A1套PT检测裂纹
4角度规0-90°Protractor1把检查密封锥角
2)备品备件
名称规格/型号消耗数量备注
1排气阀座MAN5L35MC-EXH-SEAT1件Stellite合金堆焊
2定位销(如适用)Φ8×20 mm1个不锈钢
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温镍基焊条ENiCrFe-31根用于焊接固定(如需要)
2清洗剂Brulin 815GD150mL清洁阀座孔
3研磨膏(细)Clover Leaf Green20g配合研磨
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工批准焊接/压装方案
修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座
1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。
2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座);
3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。
页码:1/1 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_a654d966-cd48-4143-b1db-32286e025f22.pdf#page=41\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换喷油嘴偶件", + "编号": "MT013", + "内容": "表 4.15 MT013 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT013050201喷油嘴偶件更换喷油嘴偶件6M/4000hJY级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火
安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2高压燃油压力表0-20 MPa1个校验有效期内
3喷油雾化测试台Bosch EPS 8151台可测开启压力与雾化角
4扭矩扳手40 -200 N·m1把用于喷油器压紧螺母
名称规格/型号消耗数量备注
1喷油嘴偶件(针阀+阀体)MAN5L35MC-INJ-NOZZLE-KIT1套原厂高精度配对
2喷油器铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
\n\n
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200 mL用于冲洗油道
2 3无绒布 高温润滑脂Kimwipe EX-L5张 少量擦拭偶件表面
4)人力人员Molycote G-1052涂压紧螺纹
序号专业人数技能等级备注
修理步骤及工艺1机械专业2工程师+技师工程师操作测试 台
更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件
(1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5°
无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa;
2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.15 MT013 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT013050201喷油嘴偶件更换喷油嘴偶件6M/4000hJY级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火
安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2高压燃油压力表0-20 MPa1个校验有效期内
3喷油雾化测试台Bosch EPS 8151台可测开启压力与雾化角
4扭矩扳手40 -200 N·m1把用于喷油器压紧螺母
名称规格/型号消耗数量备注
1喷油嘴偶件(针阀+阀体)MAN5L35MC-INJ-NOZZLE-KIT1套原厂高精度配对
2喷油器铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
\\n\\n
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200 mL用于冲洗油道
2 3无绒布 高温润滑脂Kimwipe EX-L5张 少量擦拭偶件表面
4)人力人员Molycote G-1052涂压紧螺纹
序号专业人数技能等级备注
修理步骤及工艺1机械专业2工程师+技师工程师操作测试 台
更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件
(1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5°
无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa;
2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_b333c56d-9e77-429b-88f9-9329465ba601.pdf#page=42\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "喷油嘴偶件", + "组成编码": "050201", + "维修项目名称": "更换喷油嘴偶件", + "维修项目编号": "MT013", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.15 MT013 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT013050201喷油嘴偶件更换喷油嘴偶件6M/4000hJY级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火
安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2高压燃油压力表0-20 MPa1个校验有效期内
3喷油雾化测试台Bosch EPS 8151台可测开启压力与雾化角
4扭矩扳手40 -200 N·m1把用于喷油器压紧螺母
名称规格/型号消耗数量备注
1喷油嘴偶件(针阀+阀体)MAN5L35MC-INJ-NOZZLE-KIT1套原厂高精度配对
2喷油器铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
\\n\\n
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200 mL用于冲洗油道
2 3无绒布 高温润滑脂Kimwipe EX-L5张 少量擦拭偶件表面
4)人力人员Molycote G-1052涂压紧螺纹
序号专业人数技能等级备注
修理步骤及工艺1机械专业2工程师+技师工程师操作测试 台
更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件
(1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5°
无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa;
2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_b333c56d-9e77-429b-88f9-9329465ba601.pdf#page=42\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换高压油泵柱塞偶件", + "编号": "MT014", + "内容": "表 4.16 MT014 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT014050301柱塞偶件更换高压油泵柱塞偶件1A/8000hJY级
安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。
安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖
序号名称规格/型号数量及单位备注
1柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDE1个防止划伤
2供油定时检测仪AVL 5451台测量喷油始点
3精密塞尺0.02-1.00mm1套检查齿条间隙
4扭矩扳手30-150 N·m1把用于泵体检修盖
2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用)
名称规格/型号消耗数量备注
1柱塞+套筒偶件MAN5L35MC-PLUNGER-KIT1套配对编号一致
2出油阀组件MAN 5L35MC-DV-ASSY1套含弹簧、阀座
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高压泵专用润滑油Shell Tellus S4 VX32100mL用于偶件润滑
2密封胶Loctite 577少量泵体结合面(如适用)
3清洗柴油ISO 4020 Grade A300mL冲洗油道
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工确认供油定时
修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m;
(2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA;
验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA;
3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1
\n\n\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.16 MT014 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT014050301柱塞偶件更换高压油泵柱塞偶件1A/8000hJY级
安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。
安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖
序号名称规格/型号数量及单位备注
1柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDE1个防止划伤
2供油定时检测仪AVL 5451台测量喷油始点
3精密塞尺0.02-1.00mm1套检查齿条间隙
4扭矩扳手30-150 N·m1把用于泵体检修盖
2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用)
名称规格/型号消耗数量备注
1柱塞+套筒偶件MAN5L35MC-PLUNGER-KIT1套配对编号一致
2出油阀组件MAN 5L35MC-DV-ASSY1套含弹簧、阀座
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高压泵专用润滑油Shell Tellus S4 VX32100mL用于偶件润滑
2密封胶Loctite 577少量泵体结合面(如适用)
3清洗柴油ISO 4020 Grade A300mL冲洗油道
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工确认供油定时
修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m;
(2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA;
验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA;
3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_e4164aa5-a4e0-42da-8ce9-84075ff9b2f6.pdf#page=43\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "柱塞偶件", + "组成编码": "050301", + "维修项目名称": "更换高压油泵柱塞偶件", + "维修项目编号": "MT014", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.16 MT014 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT014050301柱塞偶件更换高压油泵柱塞偶件1A/8000hJY级
安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。
安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖
序号名称规格/型号数量及单位备注
1柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDE1个防止划伤
2供油定时检测仪AVL 5451台测量喷油始点
3精密塞尺0.02-1.00mm1套检查齿条间隙
4扭矩扳手30-150 N·m1把用于泵体检修盖
2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用)
名称规格/型号消耗数量备注
1柱塞+套筒偶件MAN5L35MC-PLUNGER-KIT1套配对编号一致
2出油阀组件MAN 5L35MC-DV-ASSY1套含弹簧、阀座
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高压泵专用润滑油Shell Tellus S4 VX32100mL用于偶件润滑
2密封胶Loctite 577少量泵体结合面(如适用)
3清洗柴油ISO 4020 Grade A300mL冲洗油道
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工确认供油定时
修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m;
(2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA;
验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA;
3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_e4164aa5-a4e0-42da-8ce9-84075ff9b2f6.pdf#page=43\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换涡轮增压器轴承组件", + "编号": "MT015", + "内容": "表 4.17 MT015 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT015060103轴承组件更换涡轮增压器轴承组件2A/16000hZJ级
安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。
安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。
序号名称规格/型号数量及单位备注
1涡轮增压器专用拆装台Custom-Turbo-Bench1台带V型支撑
2感应加热器EFD Minac 101台温控±5℃
3动平衡检测仪Schenck BALANCER V1台G2.5级精度
4扭矩扳手10-80 N·m1把用于壳体螺栓
2)备品备件
名称规格/型号消耗数量备注
1径向轴承(主轴)MAN TCA77-BRG-RAD1套铜铅合金
2止推轴承组件MANTCA77-BRG-THRUST1套含瓦片+垫片组
3轴封环Carbon Seal Φ60X32个石墨基
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温润滑脂Kluber Isoflex LDS18 Special A15g仅涂轴承外圈
2清洗剂Brulin 815GD200mL清洁轴承座
3密封胶Loctite 518少量壳体结合面
4)人力人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导装配
2电子专业1中级监测振动传感器
\n\n
(如适用)
修理步骤及工艺
更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换;
拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃;
2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.17 MT015 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT015060103轴承组件更换涡轮增压器轴承组件2A/16000hZJ级
安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。
安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。
序号名称规格/型号数量及单位备注
1涡轮增压器专用拆装台Custom-Turbo-Bench1台带V型支撑
2感应加热器EFD Minac 101台温控±5℃
3动平衡检测仪Schenck BALANCER V1台G2.5级精度
4扭矩扳手10-80 N·m1把用于壳体螺栓
2)备品备件
名称规格/型号消耗数量备注
1径向轴承(主轴)MAN TCA77-BRG-RAD1套铜铅合金
2止推轴承组件MANTCA77-BRG-THRUST1套含瓦片+垫片组
3轴封环Carbon Seal Φ60X32个石墨基
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温润滑脂Kluber Isoflex LDS18 Special A15g仅涂轴承外圈
2清洗剂Brulin 815GD200mL清洁轴承座
3密封胶Loctite 518少量壳体结合面
4)人力人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导装配
2电子专业1中级监测振动传感器
\\n\\n
(如适用)
修理步骤及工艺
更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换;
拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃;
2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_409e2d92-62f0-4056-b862-0aa45116ad9d.pdf#page=45\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "轴承组件", + "组成编码": "060103", + "维修项目名称": "更换涡轮增压器轴承组件", + "维修项目编号": "MT015", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.17 MT015 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT015060103轴承组件更换涡轮增压器轴承组件2A/16000hZJ级
安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。
安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。
序号名称规格/型号数量及单位备注
1涡轮增压器专用拆装台Custom-Turbo-Bench1台带V型支撑
2感应加热器EFD Minac 101台温控±5℃
3动平衡检测仪Schenck BALANCER V1台G2.5级精度
4扭矩扳手10-80 N·m1把用于壳体螺栓
2)备品备件
名称规格/型号消耗数量备注
1径向轴承(主轴)MAN TCA77-BRG-RAD1套铜铅合金
2止推轴承组件MANTCA77-BRG-THRUST1套含瓦片+垫片组
3轴封环Carbon Seal Φ60X32个石墨基
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温润滑脂Kluber Isoflex LDS18 Special A15g仅涂轴承外圈
2清洗剂Brulin 815GD200mL清洁轴承座
3密封胶Loctite 518少量壳体结合面
4)人力人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导装配
2电子专业1中级监测振动传感器
\\n\\n
(如适用)
修理步骤及工艺
更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换;
拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃;
2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_409e2d92-62f0-4056-b862-0aa45116ad9d.pdf#page=45\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "清洗空冷器管束芯体", + "编号": "MT016", + "内容": "表 4.18 MT016 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT016060201管束芯体清洗空冷器管束芯体3MZJ级
安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。
安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。
\n\n
序号名称规格/型号数量及单位备注
1高压清洗机Kärcher HD 7/15-41台压力0-5MPa可调
2管束专用清洗喷头Rotating Nozzle 3mm2个自旋式
3风压干燥机Industrial AirDryer1台0.6 MPa
4泄漏测试装置Air/Water LeakTester1套0.4 MPa 保压
\n\n
名称规格/型号消耗数量备注
本项目为清洗 类,无备件消耗 (但可能触发堵 管修复
\n\n
序号名称牌号/品级/规格消耗数量备注
1中性清洗剂Alconox Detojet2kgpH=9.5,环保型
2软化水Deionized Water200L配制清洗液
3防锈剂CRC 3-36100mL清洗后喷涂
\n\n
序号专业人数技能等级备注
1机械专业2中级+初级中级操作高压设备
\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\n\n
1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥
(1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准
1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.18 MT016 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT016060201管束芯体清洗空冷器管束芯体3MZJ级
安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。
安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。
\\n\\n
序号名称规格/型号数量及单位备注
1高压清洗机Kärcher HD 7/15-41台压力0-5MPa可调
2管束专用清洗喷头Rotating Nozzle 3mm2个自旋式
3风压干燥机Industrial AirDryer1台0.6 MPa
4泄漏测试装置Air/Water LeakTester1套0.4 MPa 保压
\\n\\n
名称规格/型号消耗数量备注
本项目为清洗 类,无备件消耗 (但可能触发堵 管修复
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1中性清洗剂Alconox Detojet2kgpH=9.5,环保型
2软化水Deionized Water200L配制清洗液
3防锈剂CRC 3-36100mL清洗后喷涂
\\n\\n
序号专业人数技能等级备注
1机械专业2中级+初级中级操作高压设备
\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\\n\\n
1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥
(1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准
1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_35c6181a-f8c1-4baa-9e11-c605d980ad41.pdf#page=47\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "管束芯体", + "组成编码": "060201", + "维修项目名称": "清洗空冷器管束芯体", + "维修项目编号": "MT016", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.18 MT016 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT016060201管束芯体清洗空冷器管束芯体3MZJ级
安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。
安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。
\\n\\n
序号名称规格/型号数量及单位备注
1高压清洗机Kärcher HD 7/15-41台压力0-5MPa可调
2管束专用清洗喷头Rotating Nozzle 3mm2个自旋式
3风压干燥机Industrial AirDryer1台0.6 MPa
4泄漏测试装置Air/Water LeakTester1套0.4 MPa 保压
\\n\\n
名称规格/型号消耗数量备注
本项目为清洗 类,无备件消耗 (但可能触发堵 管修复
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1中性清洗剂Alconox Detojet2kgpH=9.5,环保型
2软化水Deionized Water200L配制清洗液
3防锈剂CRC 3-36100mL清洗后喷涂
\\n\\n
序号专业人数技能等级备注
1机械专业2中级+初级中级操作高压设备
\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\\n\\n
1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥
(1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准
1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_35c6181a-f8c1-4baa-9e11-c605d980ad41.pdf#page=47\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "修复连杆大端轴承异常磨损", + "编号": "T017", + "内容": "表 4.19 MT017 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
T017030200连杆大端轴承修复连杆大端轴承异常磨损故障触发ZJ级
安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。
安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。
序号名称规格/型号数量及单位备注
1防爆型扫气箱清洗机器人SCB-CLEANBOT-X11台自动高压水射流
2内窥镜(防爆)GE Mentor VisualiQ-Ex1台检查缸套下部
3红外热像仪FLIR T8601台检测局部热点
4可燃气体检测仪MSA Altair 5X1台多气体复合
2)备品备件
名称规格/型号消耗数量备注
1全套活塞环组MAN5L35MC-RING-SET1套含1-4号环
2活塞头(如需更换)MAN5L35MC-PISTON-HEAD1件铸钢整体式
3扫气口密封条Viton Strip 5×10mm若干更换烧损件
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1生物降解清洗剂Envirox SC-905L清除碳化油泥
2耐高温防火毯Fiberglass Mat1200°C2m局部隔热防护
3防锈剂CRC 3-36200mL修复后防护
4)人力人员人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工主导故障分析
2安全监督1高级安全员全程监护受限空间作业
修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头;
2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。
验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。
页码:1/1版本号:1
\n\n\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.19 MT017 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
T017030200连杆大端轴承修复连杆大端轴承异常磨损故障触发ZJ级
安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。
安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。
序号名称规格/型号数量及单位备注
1防爆型扫气箱清洗机器人SCB-CLEANBOT-X11台自动高压水射流
2内窥镜(防爆)GE Mentor VisualiQ-Ex1台检查缸套下部
3红外热像仪FLIR T8601台检测局部热点
4可燃气体检测仪MSA Altair 5X1台多气体复合
2)备品备件
名称规格/型号消耗数量备注
1全套活塞环组MAN5L35MC-RING-SET1套含1-4号环
2活塞头(如需更换)MAN5L35MC-PISTON-HEAD1件铸钢整体式
3扫气口密封条Viton Strip 5×10mm若干更换烧损件
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1生物降解清洗剂Envirox SC-905L清除碳化油泥
2耐高温防火毯Fiberglass Mat1200°C2m局部隔热防护
3防锈剂CRC 3-36200mL修复后防护
4)人力人员人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工主导故障分析
2安全监督1高级安全员全程监护受限空间作业
修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头;
2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。
验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_6daa944c-849a-4f46-8a4a-342424b06d3b.pdf#page=48\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "连杆大端轴承", + "组成编码": "030200", + "维修项目名称": "修复连杆大端轴承异常磨损", + "维修项目编号": "T017", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.19 MT017 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
T017030200连杆大端轴承修复连杆大端轴承异常磨损故障触发ZJ级
安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。
安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。
序号名称规格/型号数量及单位备注
1防爆型扫气箱清洗机器人SCB-CLEANBOT-X11台自动高压水射流
2内窥镜(防爆)GE Mentor VisualiQ-Ex1台检查缸套下部
3红外热像仪FLIR T8601台检测局部热点
4可燃气体检测仪MSA Altair 5X1台多气体复合
2)备品备件
名称规格/型号消耗数量备注
1全套活塞环组MAN5L35MC-RING-SET1套含1-4号环
2活塞头(如需更换)MAN5L35MC-PISTON-HEAD1件铸钢整体式
3扫气口密封条Viton Strip 5×10mm若干更换烧损件
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1生物降解清洗剂Envirox SC-905L清除碳化油泥
2耐高温防火毯Fiberglass Mat1200°C2m局部隔热防护
3防锈剂CRC 3-36200mL修复后防护
4)人力人员人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工主导故障分析
2安全监督1高级安全员全程监护受限空间作业
修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头;
2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。
验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_6daa944c-849a-4f46-8a4a-342424b06d3b.pdf#page=48\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "修复活塞头部烧蚀熔损", + "编号": "MT018", + "内容": "表 4.20 MT018 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT018030201活塞头修复活塞头部烧蚀熔损故障触发ZJ级
安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。
安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。
序号名称规格/型号数量及单位备注
1等离子堆焊机PLASMAD 50001台自动送粉
2热处理炉Box Furnace 800° C1台控温±10℃
3超声波探伤仪Olympus Epoch 6501台检测内部缺陷
4三维扫描仪FARO Arm Quantum1台修复前后形貌比对
2)备品备件
名称规格/型号消耗数量备注
1本项目为修复类,通常不消耗新活塞(除非报废)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1镍基合金焊粉INCONEL 625300g耐高温抗烧蚀
2渗透探伤剂Magnaflux ZL-27A1套PT检测裂纹
3保温棉Ceramic FiberBlanket2 kg焊后包裹缓冷
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+高级技师总工批准修复方案
2焊接专业1高级焊工(ASMEIX认证)执行堆焊
\n\n
修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理
3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证
2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm);
3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.20 MT018 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT018030201活塞头修复活塞头部烧蚀熔损故障触发ZJ级
安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。
安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。
序号名称规格/型号数量及单位备注
1等离子堆焊机PLASMAD 50001台自动送粉
2热处理炉Box Furnace 800° C1台控温±10℃
3超声波探伤仪Olympus Epoch 6501台检测内部缺陷
4三维扫描仪FARO Arm Quantum1台修复前后形貌比对
2)备品备件
名称规格/型号消耗数量备注
1本项目为修复类,通常不消耗新活塞(除非报废)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1镍基合金焊粉INCONEL 625300g耐高温抗烧蚀
2渗透探伤剂Magnaflux ZL-27A1套PT检测裂纹
3保温棉Ceramic FiberBlanket2 kg焊后包裹缓冷
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+高级技师总工批准修复方案
2焊接专业1高级焊工(ASMEIX认证)执行堆焊
\\n\\n
修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理
3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证
2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm);
3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_ce42d490-31ba-4c97-afad-26cf5192f901.pdf#page=50\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "活塞头", + "组成编码": "030201", + "维修项目名称": "修复活塞头部烧蚀熔损", + "维修项目编号": "MT018", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.20 MT018 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT018030201活塞头修复活塞头部烧蚀熔损故障触发ZJ级
安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。
安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。
序号名称规格/型号数量及单位备注
1等离子堆焊机PLASMAD 50001台自动送粉
2热处理炉Box Furnace 800° C1台控温±10℃
3超声波探伤仪Olympus Epoch 6501台检测内部缺陷
4三维扫描仪FARO Arm Quantum1台修复前后形貌比对
2)备品备件
名称规格/型号消耗数量备注
1本项目为修复类,通常不消耗新活塞(除非报废)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1镍基合金焊粉INCONEL 625300g耐高温抗烧蚀
2渗透探伤剂Magnaflux ZL-27A1套PT检测裂纹
3保温棉Ceramic FiberBlanket2 kg焊后包裹缓冷
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+高级技师总工批准修复方案
2焊接专业1高级焊工(ASMEIX认证)执行堆焊
\\n\\n
修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理
3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证
2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm);
3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_ce42d490-31ba-4c97-afad-26cf5192f901.pdf#page=50\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "排除喷油器雾化不良故障", + "编号": "MT019", + "内容": "表 4.21 MT019 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0190502喷油器组件排除喷油器雾化不良故障1UZJ级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2喷油雾化测试台Bosch EPS815或等效1台可调压、可视窗
3扭矩扳手40-200 N·m1把用于压紧螺母回装
名称规格/型号消耗数量备注
1喷油嘴偶件MAN5L35MC-INJ-NOZZLE-KIT1套原厂配对
2铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200mL冲洗油道
2无绒布Kimwipe EX-L5张
3高温润滑脂Molycote G-1052少量
4)人力人员
序号专业人数技能等级
1机械专业2高级+中级
修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m;
2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。
验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。
页码:1/1版本号:1
\n\n\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.21 MT019 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0190502喷油器组件排除喷油器雾化不良故障1UZJ级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2喷油雾化测试台Bosch EPS815或等效1台可调压、可视窗
3扭矩扳手40-200 N·m1把用于压紧螺母回装
名称规格/型号消耗数量备注
1喷油嘴偶件MAN5L35MC-INJ-NOZZLE-KIT1套原厂配对
2铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200mL冲洗油道
2无绒布Kimwipe EX-L5张
3高温润滑脂Molycote G-1052少量
4)人力人员
序号专业人数技能等级
1机械专业2高级+中级
修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m;
2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。
验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3f9bb979-7000-46a7-bdb1-01ff0824fd89.pdf#page=51\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "喷油器组件", + "组成编码": "0502", + "维修项目名称": "排除喷油器雾化不良故障", + "维修项目编号": "MT019", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.21 MT019 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0190502喷油器组件排除喷油器雾化不良故障1UZJ级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2喷油雾化测试台Bosch EPS815或等效1台可调压、可视窗
3扭矩扳手40-200 N·m1把用于压紧螺母回装
名称规格/型号消耗数量备注
1喷油嘴偶件MAN5L35MC-INJ-NOZZLE-KIT1套原厂配对
2铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200mL冲洗油道
2无绒布Kimwipe EX-L5张
3高温润滑脂Molycote G-1052少量
4)人力人员
序号专业人数技能等级
1机械专业2高级+中级
修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m;
2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。
验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3f9bb979-7000-46a7-bdb1-01ff0824fd89.pdf#page=51\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "排除主机功率异常波动故障", + "编号": "MT020", + "内容": "表 4.22 MT020 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT02001机座与机架组件排除主机功率异常波动故障1UZJ级
安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。
安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。
序号名称规格/型号数量及单位备注
1主机监控系统(PMS)Integrated BridgeSystem1套读取实时功率曲线
2调速器性能测试仪 Woodward Test Bench1台检测响应滞后
3燃油黏度计MarconiViscotester1台测 HFO黏度
4多通道数据记录仪DataTaker DT801套同步录负荷/转速
2)备品
名称规格/型号消耗数量备注
1调速器伺服阀滤芯OEM-GOV-FILTER1个如堵塞
2燃油温度传感器PT100,0-200°C1个如漂移
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1标准测试燃油ISO 8217 RMG380300L用于稳定测试
2密封胶Loctite 577少量传感器安装
4)人力人员人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导系统分析
2自动化专业1中级负责调速器信号检测
修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。
分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。
针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟;
验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下);
3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1
\n\n\n5器材保障\n5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n
序号名称规格/型号生产单位通用/专用体积山重量8)参考价(元)存放位置备注
1液压升降平台HLP-3000OEM 或市场品专用120045085,000主机车间东侧工具架A区用于接近主机上部
2扭矩扳手TB-200N·mOEM 或市场品通用32.51,200工具柜 B-02精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FITOEM专用53.82,500主机备件柜M-07厂家配套
4工业吸油泵VAC-0IL50OEM 或市场品专用25186,800油料间防爆柜防爆型
5激光对SKF TKSA 71SKF专用84.298,000精密仪器室轴承
中仪C-01同轴度检测
6塞尺组0.02 - 1.00 mm市品通用0.80.6180量具盒D-05精度土0.005m
7液压拉伸器HYTORCAVANTI-10 /RS-20HYTORC专用302242,000螺栓工具架E区用于地脚螺栓/连杆螺栓
8内径千分尺200-300mm /40-50mmMitutoyo 等通用21.43,600量具柜F-03校验有效期内
9精密千分表 Mitutoyo543-791DMitutoyo专用1.20.94,200精密仪器室C-02分辨率0.001mm
10磁力表座Starrett 16BStarrett通用1.51.81,500量具柜F-04带万向关节
11V型支撑架Custom-Crank-V300OEM专用8012018,000曲轴检修平台旁承重≥500kg
12盘车手轮OEM-MAN-BW-PCWOEM专用15125,500主机附件箱G-01原厂配套
13内窥镜GE MentorVisual iQ /iQ-ExGE专用63.575,000探伤设备柜H-02防爆型用于故障排查
14轴承安装导向套OEM-MAN-BW-BG-04OEM专用45.23,800轴承装配区I-03防止瓦片移位
15活塞吊装专用吊具 OEM-MAN-BW-PST-05OEM专用202812,000吊具架J-01带缓冲橡胶夹头
16感应加热器EFD InductionMinac 16 /EFD专用453568,000热装工具区K-02温控精度
序号名称规格/型号生产单位通用/专用体积U重量(kg)参考价(元)存放位置备注
Minac 10±5℃
17铜棒与塑料锤Φ20×300 mm市品通用22.1150普通工具箱L-05用于轻敲装配
18活塞环压缩器OEM-MAN-BW-RCC-06OEM专用86.54,200活塞维修台M-03适配350活塞
19环槽清洁刮刀Custom-Piston-Groove-ScraperOEM专用0.50.4320活塞工具盒N-01铜质加
20环口定位夹具Custom-Ring-AlignerOEM专用32.31,800活塞维修台M-04控制环开□相位
21缸套拔出器OEM-MAN-BW-LINER-PULLOEM专用25329,500缸体检修区0-02螺纹顶压式
22液压压装机HYDRA-PRESS-50TOEM或市品专用600800180,000压装工位P区带压力与位移监控
23冷却水腔密封测试仪LeakTest-CT300OEM专用181528,000密封测试台Q-010.3MPa保压
24深度规0-150mm/0-300mm市品通用10.7600量具柜F-05
25放大镜(带LED)5×/10×withscale/light市品通用0.60.3220检验工具盒R-01检查裂纹/印痕
26防爆LED手电Streamlight88040Streamlight专用0.40.51,100防爆工具柜S-0124V安全电压
27清洁气枪Industrial AirBlow Gun市品通用1.20.9180气动工具架T-02压力≤0.5MPa
28排气阀专用吊具OEM-MAN-BW-VALVE-HOOKOEM专用12166,200阀件吊装区U-01带隔热手柄
29红外测温仪Fluke 62 Max+Fluke通用0.80.352,400电子仪表柜V-03测量高温
序号名称规格/型号生产单位通用/专用体积山重量(kg)参考价(元)存放位置备注
部件
30密封面检测平板Optical Flat/10市品专用10815,000精密测量台W-01着色法检查
31便携式阀座镗床SUNNEN SV-20SUNNEN专用9075130,000阀维修区X-01带角度调节
32液压阀座压装机 HYDRA-SEAT-PRESSOEM专用12018078,000阀维修区X-02过盈配合
33角度规0-90°Protractor市品通用1.51.2300量具柜F-06检查锥角
34喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCHOEM专用43.62,800喷油器工具箱Y-01防滑齿设计
35高压燃油压力表0-20 MPa市品通用0.90.8950仪表校验柜Z-02校验有效期内
36喷油雾化测试台Bosch EPS 815Bosch专用200220220,000喷油器测试室AA-01测开启压力与雾化角
37柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDEOEM专用21.71,600喷油泵维修台AB-02防划伤
38供油定时检测仪AVL 545AVL专用151285,000燃油系统测试区AC-01测喷油始点
39涡轮增压器专用拆装台Custom-Turbo-BenchOEM专用30040095,000增压器维修区AD-01带V型支撑
40动平衡检测仪SchenckBALANCER VSchenck专用500600680,000平衡实验室AE-01G2.5级精度
41高压清洗机Kärcher HD7/15-4Karcher通用806532,000清洗站 AF-01压力0-5MPa可调
42管束专RotatingOEM专用0.30.2800清洗配件柜自旋
序号名称规格/型号生产单位通用/专用体积U重量8)参考价(元)存放位置备注
用清洗喷头Nozzle 3mm5AG-01
43风压干燥机Industrial AirDryer市品通用1209025,000空压站 AH-010.6MPa
44泄漏测试装置Air/Water LeakTesterOEM专用252036,000密封测试台Q-020.4MPa保压
45防爆型扫气箱清洗机器人SCB-CLEANBOT-X1OEM专用150130420,000机器人存放区AI-01自动高压水射流
46红外热像仪FLIR T860FLIR专用52.1120,000电气检测室AJ-01检测热点
47可燃气体检测仪MSA Altair 5XMSA专用10.78,500安全设备柜AK-01多气体复合
48等离子堆焊机PLASMAD 5000OEM专用400350580,000焊接修复区AL-01自动送粉
49热处理炉Box Furnace800°COEM专用10001200320,000热处理间AM-01控温土10℃
50超声波探伤仪Olympus Epoch650Olympus专用63.295,000探伤设备柜H-03检测内部缺陷
51三维扫描仪FARO ArmQuantumFARO专用3025750,000测绘室AN-01修复形貌比对
52主机监控系统(PMS)IntegratedBridge System船厂集成专用1,200,000集控室A0-01读取功率曲线
53调速器性能测试仪Woodward TestBenchWoodward专用180200480,000调速器测试间AP-01检测响应滞后
54燃油黏度计MarconiViscotesterMarconi专用12942,000燃油化验室AQ-01测HFO黏度
55多通道数据记录仪DataTaker DT80DataTaker通用32.418,000数据采集柜AR-01同步录负荷/转速
\n\n\n\n\n\n\n\n\n5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n
序号名称牌号/品级/规格生产单位备注
1柴油机专用润滑油 Shell Mysella S5 N80Shell符合MAN 97101标准
2无纺布抹布Industrial Grade市场品不掉屑
3清洗剂CRC Brakleen /Brulin 815GD/ CRC Carbon Clean ProCRC /Brulin多用途清洁
4主机油滤芯MAN B&W 5L35MC-FIL-01MAN原厂件
5机油放油螺塞密封圈Viton Φ22×2.5市场品耐高温氟橡胶
6清洁酒精AR Grade / ≥99.5%市场品
7防锈纸VCI-200市场品
8无绒擦拭布Kimwipe EX-LKimberly-Clark防刮伤
9轴承装配润滑脂 Kluber Isoflex LDS 18Special AKluber仅涂瓦背
10螺纹锁固胶Loctite 2701Henke1用于螺栓(如适用)
11高温装配润滑脂Molycote G-1052Dow Corning活塞销/螺纹
12积碳清洗剂CRC Carbon Clean ProCRC环保型
13防锈油CRC 3-36CRC临时防护
14二硫化钼润滑膏 Molycote BR2 PlusDow Corning涂活塞环外圆
15缸套润滑机油Shell Mysella S5 N80Shell同主滑油
16耐油标记笔Markal Oil-ResistantMarkal标记环开口
17耐高温标记笔Markal 900° FMarkal高温环境
18装配润滑脂 Kluber Isoflex LDS 18Special AKluber缸套外壁
19密封胶Loctite 518 / 577Henke1水腔/泵体法兰
20高温镍基焊条ENiCrFe-3市场品阀座焊接
21研磨膏(细)Clover Leaf GreenClover阀座研配
22清洁柴油ISO 4020 Grade A市场品冲洗油道
23高压泵专用润滑油 Shell Tellus S4 VX 32Shell偶件润滑
24中性清洗剂Alconox DetojetAlconoxpH=9.5,环保
25软化水Deionized Water市场品配清洗液
26生物降解清洗剂Envirox SC-90Envirox清除碳化油泥
27耐高温防火毯Fiberglass Mat 1200°C市场品局部隔热
28镍基合金焊粉INCONEL 625Special Metals堆焊修复
29渗透探伤剂Magnaflux ZL-27AMagnafluxPT检测裂纹
30保温棉Ceramic Fiber Blanket市场品焊后缓冷
31标准测试燃油ISO 8217 RMG380市场品稳定测试用
\n\n\n6 维修安全防护及注意事项汇总表\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\n6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n
序号维修项目安全防护要求备注
1MT001保养机座与机架组件1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡防止误启与油污扩散
2MT002检查主轴承座1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区防止转动伤人
3MT003检测曲轴跳动1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固防止测量中曲轴转动
4MT004更换连杆大端轴承1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区防止异物落入/坠落
5MT005更换连杆小端轴承1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫防止活塞坠落损坏
6MT006 拆检活塞头1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁防爆防误启
2.缸内作业使用≤24V防爆照明
7MT007/008更换活塞环1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩防止工具/异物落入
8MT009 检测缸套磨损1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳高空/旋转风险
9MT010 更换气缸套1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布防水防砸
10MT011 检查排气阀杆1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识防高温/误动作
11MT012 更换排气阀座1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线防金属屑/电击
12MT013/019 更换/排除喷油器1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火防燃防爆
13MT014 更换柱塞偶件隔离燃油系统,LOTO 挂牌上锁防燃油泄漏
14MT015 更换增压器轴承1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫防气体倒流/坠落
15MT016 清洗空冷器1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服防高压水伤人
16MT017 修复连杆异常磨损1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体防复燃/室息
17MT018修复活塞烧蚀1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证防火灾
18MT020 排除功率波动1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范防飞车/电火花
\n\n\n6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n
序号维修项目注意事项备注
1MT0011.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜防烫伤
2MT0021.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间防夹伤
3MT0031.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油防滑脱
4MT0041.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整防损伤
5MT0051.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套防烫/变形
6MT0061.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩防吸入积碳
7MT007/0081.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180°防划伤/装反
8MT0091.冷却水未排空不得测量2.手不得置于千分尺与缸壁间防夹伤
9MT0101.禁用火焰加热缸体2.压装时人员不得站压机正下方防裂纹/砸伤
10MT0111.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜防碎屑/热辐射
11MT0121.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测防热应力/裂纹
12MT013/0191.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装防卡死/污染
13MT0141.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确防相位错误
14MT0151.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形防误判/失效
15MT0161.禁用酸性清洗剂2.清洗压力≤5 MPa防腐蚀/翅片倒伏
16MT0171.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温防自燃
17MT0181.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷防二次裂纹
18MT0201.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认防飞车
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.22 MT020 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT02001机座与机架组件排除主机功率异常波动故障1UZJ级
安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。
安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。
序号名称规格/型号数量及单位备注
1主机监控系统(PMS)Integrated BridgeSystem1套读取实时功率曲线
2调速器性能测试仪 Woodward Test Bench1台检测响应滞后
3燃油黏度计MarconiViscotester1台测 HFO黏度
4多通道数据记录仪DataTaker DT801套同步录负荷/转速
2)备品
名称规格/型号消耗数量备注
1调速器伺服阀滤芯OEM-GOV-FILTER1个如堵塞
2燃油温度传感器PT100,0-200°C1个如漂移
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1标准测试燃油ISO 8217 RMG380300L用于稳定测试
2密封胶Loctite 577少量传感器安装
4)人力人员人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导系统分析
2自动化专业1中级负责调速器信号检测
修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。
分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。
针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟;
验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下);
3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1
\\n\\n\\n5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n
序号名称规格/型号生产单位通用/专用体积山重量8)参考价(元)存放位置备注
1液压升降平台HLP-3000OEM 或市场品专用120045085,000主机车间东侧工具架A区用于接近主机上部
2扭矩扳手TB-200N·mOEM 或市场品通用32.51,200工具柜 B-02精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FITOEM专用53.82,500主机备件柜M-07厂家配套
4工业吸油泵VAC-0IL50OEM 或市场品专用25186,800油料间防爆柜防爆型
5激光对SKF TKSA 71SKF专用84.298,000精密仪器室轴承
中仪C-01同轴度检测
6塞尺组0.02 - 1.00 mm市品通用0.80.6180量具盒D-05精度土0.005m
7液压拉伸器HYTORCAVANTI-10 /RS-20HYTORC专用302242,000螺栓工具架E区用于地脚螺栓/连杆螺栓
8内径千分尺200-300mm /40-50mmMitutoyo 等通用21.43,600量具柜F-03校验有效期内
9精密千分表 Mitutoyo543-791DMitutoyo专用1.20.94,200精密仪器室C-02分辨率0.001mm
10磁力表座Starrett 16BStarrett通用1.51.81,500量具柜F-04带万向关节
11V型支撑架Custom-Crank-V300OEM专用8012018,000曲轴检修平台旁承重≥500kg
12盘车手轮OEM-MAN-BW-PCWOEM专用15125,500主机附件箱G-01原厂配套
13内窥镜GE MentorVisual iQ /iQ-ExGE专用63.575,000探伤设备柜H-02防爆型用于故障排查
14轴承安装导向套OEM-MAN-BW-BG-04OEM专用45.23,800轴承装配区I-03防止瓦片移位
15活塞吊装专用吊具 OEM-MAN-BW-PST-05OEM专用202812,000吊具架J-01带缓冲橡胶夹头
16感应加热器EFD InductionMinac 16 /EFD专用453568,000热装工具区K-02温控精度
序号名称规格/型号生产单位通用/专用体积U重量(kg)参考价(元)存放位置备注
Minac 10±5℃
17铜棒与塑料锤Φ20×300 mm市品通用22.1150普通工具箱L-05用于轻敲装配
18活塞环压缩器OEM-MAN-BW-RCC-06OEM专用86.54,200活塞维修台M-03适配350活塞
19环槽清洁刮刀Custom-Piston-Groove-ScraperOEM专用0.50.4320活塞工具盒N-01铜质加
20环口定位夹具Custom-Ring-AlignerOEM专用32.31,800活塞维修台M-04控制环开□相位
21缸套拔出器OEM-MAN-BW-LINER-PULLOEM专用25329,500缸体检修区0-02螺纹顶压式
22液压压装机HYDRA-PRESS-50TOEM或市品专用600800180,000压装工位P区带压力与位移监控
23冷却水腔密封测试仪LeakTest-CT300OEM专用181528,000密封测试台Q-010.3MPa保压
24深度规0-150mm/0-300mm市品通用10.7600量具柜F-05
25放大镜(带LED)5×/10×withscale/light市品通用0.60.3220检验工具盒R-01检查裂纹/印痕
26防爆LED手电Streamlight88040Streamlight专用0.40.51,100防爆工具柜S-0124V安全电压
27清洁气枪Industrial AirBlow Gun市品通用1.20.9180气动工具架T-02压力≤0.5MPa
28排气阀专用吊具OEM-MAN-BW-VALVE-HOOKOEM专用12166,200阀件吊装区U-01带隔热手柄
29红外测温仪Fluke 62 Max+Fluke通用0.80.352,400电子仪表柜V-03测量高温
序号名称规格/型号生产单位通用/专用体积山重量(kg)参考价(元)存放位置备注
部件
30密封面检测平板Optical Flat/10市品专用10815,000精密测量台W-01着色法检查
31便携式阀座镗床SUNNEN SV-20SUNNEN专用9075130,000阀维修区X-01带角度调节
32液压阀座压装机 HYDRA-SEAT-PRESSOEM专用12018078,000阀维修区X-02过盈配合
33角度规0-90°Protractor市品通用1.51.2300量具柜F-06检查锥角
34喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCHOEM专用43.62,800喷油器工具箱Y-01防滑齿设计
35高压燃油压力表0-20 MPa市品通用0.90.8950仪表校验柜Z-02校验有效期内
36喷油雾化测试台Bosch EPS 815Bosch专用200220220,000喷油器测试室AA-01测开启压力与雾化角
37柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDEOEM专用21.71,600喷油泵维修台AB-02防划伤
38供油定时检测仪AVL 545AVL专用151285,000燃油系统测试区AC-01测喷油始点
39涡轮增压器专用拆装台Custom-Turbo-BenchOEM专用30040095,000增压器维修区AD-01带V型支撑
40动平衡检测仪SchenckBALANCER VSchenck专用500600680,000平衡实验室AE-01G2.5级精度
41高压清洗机Kärcher HD7/15-4Karcher通用806532,000清洗站 AF-01压力0-5MPa可调
42管束专RotatingOEM专用0.30.2800清洗配件柜自旋
序号名称规格/型号生产单位通用/专用体积U重量8)参考价(元)存放位置备注
用清洗喷头Nozzle 3mm5AG-01
43风压干燥机Industrial AirDryer市品通用1209025,000空压站 AH-010.6MPa
44泄漏测试装置Air/Water LeakTesterOEM专用252036,000密封测试台Q-020.4MPa保压
45防爆型扫气箱清洗机器人SCB-CLEANBOT-X1OEM专用150130420,000机器人存放区AI-01自动高压水射流
46红外热像仪FLIR T860FLIR专用52.1120,000电气检测室AJ-01检测热点
47可燃气体检测仪MSA Altair 5XMSA专用10.78,500安全设备柜AK-01多气体复合
48等离子堆焊机PLASMAD 5000OEM专用400350580,000焊接修复区AL-01自动送粉
49热处理炉Box Furnace800°COEM专用10001200320,000热处理间AM-01控温土10℃
50超声波探伤仪Olympus Epoch650Olympus专用63.295,000探伤设备柜H-03检测内部缺陷
51三维扫描仪FARO ArmQuantumFARO专用3025750,000测绘室AN-01修复形貌比对
52主机监控系统(PMS)IntegratedBridge System船厂集成专用1,200,000集控室A0-01读取功率曲线
53调速器性能测试仪Woodward TestBenchWoodward专用180200480,000调速器测试间AP-01检测响应滞后
54燃油黏度计MarconiViscotesterMarconi专用12942,000燃油化验室AQ-01测HFO黏度
55多通道数据记录仪DataTaker DT80DataTaker通用32.418,000数据采集柜AR-01同步录负荷/转速
\\n\\n\\n\\n\\n\\n\\n\\n\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n
序号名称牌号/品级/规格生产单位备注
1柴油机专用润滑油 Shell Mysella S5 N80Shell符合MAN 97101标准
2无纺布抹布Industrial Grade市场品不掉屑
3清洗剂CRC Brakleen /Brulin 815GD/ CRC Carbon Clean ProCRC /Brulin多用途清洁
4主机油滤芯MAN B&W 5L35MC-FIL-01MAN原厂件
5机油放油螺塞密封圈Viton Φ22×2.5市场品耐高温氟橡胶
6清洁酒精AR Grade / ≥99.5%市场品
7防锈纸VCI-200市场品
8无绒擦拭布Kimwipe EX-LKimberly-Clark防刮伤
9轴承装配润滑脂 Kluber Isoflex LDS 18Special AKluber仅涂瓦背
10螺纹锁固胶Loctite 2701Henke1用于螺栓(如适用)
11高温装配润滑脂Molycote G-1052Dow Corning活塞销/螺纹
12积碳清洗剂CRC Carbon Clean ProCRC环保型
13防锈油CRC 3-36CRC临时防护
14二硫化钼润滑膏 Molycote BR2 PlusDow Corning涂活塞环外圆
15缸套润滑机油Shell Mysella S5 N80Shell同主滑油
16耐油标记笔Markal Oil-ResistantMarkal标记环开口
17耐高温标记笔Markal 900° FMarkal高温环境
18装配润滑脂 Kluber Isoflex LDS 18Special AKluber缸套外壁
19密封胶Loctite 518 / 577Henke1水腔/泵体法兰
20高温镍基焊条ENiCrFe-3市场品阀座焊接
21研磨膏(细)Clover Leaf GreenClover阀座研配
22清洁柴油ISO 4020 Grade A市场品冲洗油道
23高压泵专用润滑油 Shell Tellus S4 VX 32Shell偶件润滑
24中性清洗剂Alconox DetojetAlconoxpH=9.5,环保
25软化水Deionized Water市场品配清洗液
26生物降解清洗剂Envirox SC-90Envirox清除碳化油泥
27耐高温防火毯Fiberglass Mat 1200°C市场品局部隔热
28镍基合金焊粉INCONEL 625Special Metals堆焊修复
29渗透探伤剂Magnaflux ZL-27AMagnafluxPT检测裂纹
30保温棉Ceramic Fiber Blanket市场品焊后缓冷
31标准测试燃油ISO 8217 RMG380市场品稳定测试用
\\n\\n\\n6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n
序号维修项目安全防护要求备注
1MT001保养机座与机架组件1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡防止误启与油污扩散
2MT002检查主轴承座1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区防止转动伤人
3MT003检测曲轴跳动1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固防止测量中曲轴转动
4MT004更换连杆大端轴承1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区防止异物落入/坠落
5MT005更换连杆小端轴承1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫防止活塞坠落损坏
6MT006 拆检活塞头1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁防爆防误启
2.缸内作业使用≤24V防爆照明
7MT007/008更换活塞环1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩防止工具/异物落入
8MT009 检测缸套磨损1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳高空/旋转风险
9MT010 更换气缸套1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布防水防砸
10MT011 检查排气阀杆1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识防高温/误动作
11MT012 更换排气阀座1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线防金属屑/电击
12MT013/019 更换/排除喷油器1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火防燃防爆
13MT014 更换柱塞偶件隔离燃油系统,LOTO 挂牌上锁防燃油泄漏
14MT015 更换增压器轴承1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫防气体倒流/坠落
15MT016 清洗空冷器1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服防高压水伤人
16MT017 修复连杆异常磨损1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体防复燃/室息
17MT018修复活塞烧蚀1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证防火灾
18MT020 排除功率波动1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范防飞车/电火花
\\n\\n\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n
序号维修项目注意事项备注
1MT0011.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜防烫伤
2MT0021.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间防夹伤
3MT0031.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油防滑脱
4MT0041.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整防损伤
5MT0051.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套防烫/变形
6MT0061.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩防吸入积碳
7MT007/0081.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180°防划伤/装反
8MT0091.冷却水未排空不得测量2.手不得置于千分尺与缸壁间防夹伤
9MT0101.禁用火焰加热缸体2.压装时人员不得站压机正下方防裂纹/砸伤
10MT0111.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜防碎屑/热辐射
11MT0121.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测防热应力/裂纹
12MT013/0191.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装防卡死/污染
13MT0141.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确防相位错误
14MT0151.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形防误判/失效
15MT0161.禁用酸性清洗剂2.清洗压力≤5 MPa防腐蚀/翅片倒伏
16MT0171.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温防自燃
17MT0181.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷防二次裂纹
18MT0201.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认防飞车
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_bfa2402a-7784-4dcf-a836-3569e52ccafc.pdf#page=60\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "机座与机架组件", + "组成编码": "01", + "维修项目名称": "排除主机功率异常波动故障", + "维修项目编号": "MT020", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.22 MT020 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT02001机座与机架组件排除主机功率异常波动故障1UZJ级
安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。
安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。
序号名称规格/型号数量及单位备注
1主机监控系统(PMS)Integrated BridgeSystem1套读取实时功率曲线
2调速器性能测试仪 Woodward Test Bench1台检测响应滞后
3燃油黏度计MarconiViscotester1台测 HFO黏度
4多通道数据记录仪DataTaker DT801套同步录负荷/转速
2)备品
名称规格/型号消耗数量备注
1调速器伺服阀滤芯OEM-GOV-FILTER1个如堵塞
2燃油温度传感器PT100,0-200°C1个如漂移
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1标准测试燃油ISO 8217 RMG380300L用于稳定测试
2密封胶Loctite 577少量传感器安装
4)人力人员人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导系统分析
2自动化专业1中级负责调速器信号检测
修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。
分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。
针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟;
验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下);
3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1
\\n\\n\\n5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n
序号名称规格/型号生产单位通用/专用体积山重量8)参考价(元)存放位置备注
1液压升降平台HLP-3000OEM 或市场品专用120045085,000主机车间东侧工具架A区用于接近主机上部
2扭矩扳手TB-200N·mOEM 或市场品通用32.51,200工具柜 B-02精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FITOEM专用53.82,500主机备件柜M-07厂家配套
4工业吸油泵VAC-0IL50OEM 或市场品专用25186,800油料间防爆柜防爆型
5激光对SKF TKSA 71SKF专用84.298,000精密仪器室轴承
中仪C-01同轴度检测
6塞尺组0.02 - 1.00 mm市品通用0.80.6180量具盒D-05精度土0.005m
7液压拉伸器HYTORCAVANTI-10 /RS-20HYTORC专用302242,000螺栓工具架E区用于地脚螺栓/连杆螺栓
8内径千分尺200-300mm /40-50mmMitutoyo 等通用21.43,600量具柜F-03校验有效期内
9精密千分表 Mitutoyo543-791DMitutoyo专用1.20.94,200精密仪器室C-02分辨率0.001mm
10磁力表座Starrett 16BStarrett通用1.51.81,500量具柜F-04带万向关节
11V型支撑架Custom-Crank-V300OEM专用8012018,000曲轴检修平台旁承重≥500kg
12盘车手轮OEM-MAN-BW-PCWOEM专用15125,500主机附件箱G-01原厂配套
13内窥镜GE MentorVisual iQ /iQ-ExGE专用63.575,000探伤设备柜H-02防爆型用于故障排查
14轴承安装导向套OEM-MAN-BW-BG-04OEM专用45.23,800轴承装配区I-03防止瓦片移位
15活塞吊装专用吊具 OEM-MAN-BW-PST-05OEM专用202812,000吊具架J-01带缓冲橡胶夹头
16感应加热器EFD InductionMinac 16 /EFD专用453568,000热装工具区K-02温控精度
序号名称规格/型号生产单位通用/专用体积U重量(kg)参考价(元)存放位置备注
Minac 10±5℃
17铜棒与塑料锤Φ20×300 mm市品通用22.1150普通工具箱L-05用于轻敲装配
18活塞环压缩器OEM-MAN-BW-RCC-06OEM专用86.54,200活塞维修台M-03适配350活塞
19环槽清洁刮刀Custom-Piston-Groove-ScraperOEM专用0.50.4320活塞工具盒N-01铜质加
20环口定位夹具Custom-Ring-AlignerOEM专用32.31,800活塞维修台M-04控制环开□相位
21缸套拔出器OEM-MAN-BW-LINER-PULLOEM专用25329,500缸体检修区0-02螺纹顶压式
22液压压装机HYDRA-PRESS-50TOEM或市品专用600800180,000压装工位P区带压力与位移监控
23冷却水腔密封测试仪LeakTest-CT300OEM专用181528,000密封测试台Q-010.3MPa保压
24深度规0-150mm/0-300mm市品通用10.7600量具柜F-05
25放大镜(带LED)5×/10×withscale/light市品通用0.60.3220检验工具盒R-01检查裂纹/印痕
26防爆LED手电Streamlight88040Streamlight专用0.40.51,100防爆工具柜S-0124V安全电压
27清洁气枪Industrial AirBlow Gun市品通用1.20.9180气动工具架T-02压力≤0.5MPa
28排气阀专用吊具OEM-MAN-BW-VALVE-HOOKOEM专用12166,200阀件吊装区U-01带隔热手柄
29红外测温仪Fluke 62 Max+Fluke通用0.80.352,400电子仪表柜V-03测量高温
序号名称规格/型号生产单位通用/专用体积山重量(kg)参考价(元)存放位置备注
部件
30密封面检测平板Optical Flat/10市品专用10815,000精密测量台W-01着色法检查
31便携式阀座镗床SUNNEN SV-20SUNNEN专用9075130,000阀维修区X-01带角度调节
32液压阀座压装机 HYDRA-SEAT-PRESSOEM专用12018078,000阀维修区X-02过盈配合
33角度规0-90°Protractor市品通用1.51.2300量具柜F-06检查锥角
34喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCHOEM专用43.62,800喷油器工具箱Y-01防滑齿设计
35高压燃油压力表0-20 MPa市品通用0.90.8950仪表校验柜Z-02校验有效期内
36喷油雾化测试台Bosch EPS 815Bosch专用200220220,000喷油器测试室AA-01测开启压力与雾化角
37柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDEOEM专用21.71,600喷油泵维修台AB-02防划伤
38供油定时检测仪AVL 545AVL专用151285,000燃油系统测试区AC-01测喷油始点
39涡轮增压器专用拆装台Custom-Turbo-BenchOEM专用30040095,000增压器维修区AD-01带V型支撑
40动平衡检测仪SchenckBALANCER VSchenck专用500600680,000平衡实验室AE-01G2.5级精度
41高压清洗机Kärcher HD7/15-4Karcher通用806532,000清洗站 AF-01压力0-5MPa可调
42管束专RotatingOEM专用0.30.2800清洗配件柜自旋
序号名称规格/型号生产单位通用/专用体积U重量8)参考价(元)存放位置备注
用清洗喷头Nozzle 3mm5AG-01
43风压干燥机Industrial AirDryer市品通用1209025,000空压站 AH-010.6MPa
44泄漏测试装置Air/Water LeakTesterOEM专用252036,000密封测试台Q-020.4MPa保压
45防爆型扫气箱清洗机器人SCB-CLEANBOT-X1OEM专用150130420,000机器人存放区AI-01自动高压水射流
46红外热像仪FLIR T860FLIR专用52.1120,000电气检测室AJ-01检测热点
47可燃气体检测仪MSA Altair 5XMSA专用10.78,500安全设备柜AK-01多气体复合
48等离子堆焊机PLASMAD 5000OEM专用400350580,000焊接修复区AL-01自动送粉
49热处理炉Box Furnace800°COEM专用10001200320,000热处理间AM-01控温土10℃
50超声波探伤仪Olympus Epoch650Olympus专用63.295,000探伤设备柜H-03检测内部缺陷
51三维扫描仪FARO ArmQuantumFARO专用3025750,000测绘室AN-01修复形貌比对
52主机监控系统(PMS)IntegratedBridge System船厂集成专用1,200,000集控室A0-01读取功率曲线
53调速器性能测试仪Woodward TestBenchWoodward专用180200480,000调速器测试间AP-01检测响应滞后
54燃油黏度计MarconiViscotesterMarconi专用12942,000燃油化验室AQ-01测HFO黏度
55多通道数据记录仪DataTaker DT80DataTaker通用32.418,000数据采集柜AR-01同步录负荷/转速
\\n\\n\\n\\n\\n\\n\\n\\n\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n
序号名称牌号/品级/规格生产单位备注
1柴油机专用润滑油 Shell Mysella S5 N80Shell符合MAN 97101标准
2无纺布抹布Industrial Grade市场品不掉屑
3清洗剂CRC Brakleen /Brulin 815GD/ CRC Carbon Clean ProCRC /Brulin多用途清洁
4主机油滤芯MAN B&W 5L35MC-FIL-01MAN原厂件
5机油放油螺塞密封圈Viton Φ22×2.5市场品耐高温氟橡胶
6清洁酒精AR Grade / ≥99.5%市场品
7防锈纸VCI-200市场品
8无绒擦拭布Kimwipe EX-LKimberly-Clark防刮伤
9轴承装配润滑脂 Kluber Isoflex LDS 18Special AKluber仅涂瓦背
10螺纹锁固胶Loctite 2701Henke1用于螺栓(如适用)
11高温装配润滑脂Molycote G-1052Dow Corning活塞销/螺纹
12积碳清洗剂CRC Carbon Clean ProCRC环保型
13防锈油CRC 3-36CRC临时防护
14二硫化钼润滑膏 Molycote BR2 PlusDow Corning涂活塞环外圆
15缸套润滑机油Shell Mysella S5 N80Shell同主滑油
16耐油标记笔Markal Oil-ResistantMarkal标记环开口
17耐高温标记笔Markal 900° FMarkal高温环境
18装配润滑脂 Kluber Isoflex LDS 18Special AKluber缸套外壁
19密封胶Loctite 518 / 577Henke1水腔/泵体法兰
20高温镍基焊条ENiCrFe-3市场品阀座焊接
21研磨膏(细)Clover Leaf GreenClover阀座研配
22清洁柴油ISO 4020 Grade A市场品冲洗油道
23高压泵专用润滑油 Shell Tellus S4 VX 32Shell偶件润滑
24中性清洗剂Alconox DetojetAlconoxpH=9.5,环保
25软化水Deionized Water市场品配清洗液
26生物降解清洗剂Envirox SC-90Envirox清除碳化油泥
27耐高温防火毯Fiberglass Mat 1200°C市场品局部隔热
28镍基合金焊粉INCONEL 625Special Metals堆焊修复
29渗透探伤剂Magnaflux ZL-27AMagnafluxPT检测裂纹
30保温棉Ceramic Fiber Blanket市场品焊后缓冷
31标准测试燃油ISO 8217 RMG380市场品稳定测试用
\\n\\n\\n6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n
序号维修项目安全防护要求备注
1MT001保养机座与机架组件1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡防止误启与油污扩散
2MT002检查主轴承座1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区防止转动伤人
3MT003检测曲轴跳动1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固防止测量中曲轴转动
4MT004更换连杆大端轴承1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区防止异物落入/坠落
5MT005更换连杆小端轴承1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫防止活塞坠落损坏
6MT006 拆检活塞头1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁防爆防误启
2.缸内作业使用≤24V防爆照明
7MT007/008更换活塞环1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩防止工具/异物落入
8MT009 检测缸套磨损1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳高空/旋转风险
9MT010 更换气缸套1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布防水防砸
10MT011 检查排气阀杆1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识防高温/误动作
11MT012 更换排气阀座1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线防金属屑/电击
12MT013/019 更换/排除喷油器1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火防燃防爆
13MT014 更换柱塞偶件隔离燃油系统,LOTO 挂牌上锁防燃油泄漏
14MT015 更换增压器轴承1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫防气体倒流/坠落
15MT016 清洗空冷器1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服防高压水伤人
16MT017 修复连杆异常磨损1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体防复燃/室息
17MT018修复活塞烧蚀1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证防火灾
18MT020 排除功率波动1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范防飞车/电火花
\\n\\n\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n
序号维修项目注意事项备注
1MT0011.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜防烫伤
2MT0021.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间防夹伤
3MT0031.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油防滑脱
4MT0041.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整防损伤
5MT0051.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套防烫/变形
6MT0061.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩防吸入积碳
7MT007/0081.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180°防划伤/装反
8MT0091.冷却水未排空不得测量2.手不得置于千分尺与缸壁间防夹伤
9MT0101.禁用火焰加热缸体2.压装时人员不得站压机正下方防裂纹/砸伤
10MT0111.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜防碎屑/热辐射
11MT0121.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测防热应力/裂纹
12MT013/0191.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装防卡死/污染
13MT0141.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确防相位错误
14MT0151.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形防误判/失效
15MT0161.禁用酸性清洗剂2.清洗压力≤5 MPa防腐蚀/翅片倒伏
16MT0171.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温防自燃
17MT0181.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷防二次裂纹
18MT0201.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认防飞车
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_bfa2402a-7784-4dcf-a836-3569e52ccafc.pdf#page=60\"}]" + } + }, + { + "type": "安全警告", + "properties": { + "名称": "发动机的安全警告", + "概述": "本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。", + "警告": "1.1 警告\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。", + "注意": "1.2 注意\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "内容": "1 安全警告\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\n1.1 警告\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\n1.2 注意\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"1 安全警告\\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\\n1.1 警告\\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\\n1.2 注意\\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\\n6) 所有密封件(O形圈、金属密封环)拆装必换。\\n7) 紧固件必须按规定力矩和顺序紧固。\\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_4fcabb82-02ab-49a9-8a9a-16af0fb6477e.pdf#page=3\"}]" + } + }, + { + "type": "功能", + "properties": { + "名称": "发动机的功能", + "内容": "2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑;\n2) 曲柄连杆机构:实现往复—旋转运动转换;\n3) 燃烧室部件:完成燃烧做功;\n4) 排气阀驱动系统:控制废气排放;\n5) 燃油喷射系统:完成燃油定时、定量喷射;\n6) 扫气与增压系统:提高换气效率与功率密度。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"2.1 主要功能\\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\\n发动机主要由以下子系统组成:\\n1) 机座与机架组件:承载与结构支撑;\\n2) 曲柄连杆机构:实现往复—旋转运动转换;\\n3) 燃烧室部件:完成燃烧做功;\\n4) 排气阀驱动系统:控制废气排放;\\n5) 燃油喷射系统:完成燃油定时、定量喷射;\\n6) 扫气与增压系统:提高换气效率与功率密度。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_d9af3a31-8ac8-4a27-a14a-a5650442afca.pdf#page=4\"}]" + } + }, + { + "type": "环境条件", + "properties": { + "名称": "发动机的环境条件", + "内容": "2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件\n长期纵倾:±5°;横倾:±15°;\n短期纵摇: $\\pm 1 0 ^ { \\circ } \\mathrm { ~ ~ { ~ ( ~ 5 \\sim 8 ~ \\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\pm 4 5 ^ { \\circ } \\mathrm { ~ ~ { ~ ( 8 \\sim 1 3 ~ s ) } ~ }$\n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$\n相对湿度:≤93%(40 ℃)。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"2.2 工作条件\\n2.2.1 正常运行条件\\n1)环境条件\\n长期纵倾:±5°;横倾:±15°;\\n短期纵摇: $\\\\pm 1 0 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( ~ 5 \\\\sim 8 ~ \\\\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\\\pm 4 5 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( 8 \\\\sim 1 3 ~ s ) } ~ }$\\n环境温度: $+ 5 \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } \\\\sim \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ + 5 5 ~ \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } ~ }$\\n相对湿度:≤93%(40 ℃)。\\n2)能源条件\\n表 2.1 冷水机组正常使用时的能源条件\\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\\n2.2.2 非正常运行条件\\n表 2.2 非正常输入条件及产生后果\\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\\n表 2.3 设备故障非正常输出条件及可能产生后果\\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_cb835a58-a43b-49ba-b0e9-b129bda925ad.pdf#page=4\"}]" + } + }, + { + "type": "基本情况", + "properties": { + "名称": "发动机的基本情况", + "主要功能": "2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑;\n2) 曲柄连杆机构:实现往复—旋转运动转换;\n3) 燃烧室部件:完成燃烧做功;\n4) 排气阀驱动系统:控制废气排放;\n5) 燃油喷射系统:完成燃油定时、定量喷射;\n6) 扫气与增压系统:提高换气效率与功率密度。", + "工作条件": "2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件\n长期纵倾:±5°;横倾:±15°;\n短期纵摇: $\\pm 1 0 ^ { \\circ } \\mathrm { ~ ~ { ~ ( ~ 5 \\sim 8 ~ \\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\pm 4 5 ^ { \\circ } \\mathrm { ~ ~ { ~ ( 8 \\sim 1 3 ~ s ) } ~ }$\n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$\n相对湿度:≤93%(40 ℃)。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "内容": "2 概述\n2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑;\n2) 曲柄连杆机构:实现往复—旋转运动转换;\n3) 燃烧室部件:完成燃烧做功;\n4) 排气阀驱动系统:控制废气排放;\n5) 燃油喷射系统:完成燃油定时、定量喷射;\n6) 扫气与增压系统:提高换气效率与功率密度。\n2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件\n长期纵倾:±5°;横倾:±15°;\n短期纵摇: $\\pm 1 0 ^ { \\circ } \\mathrm { ~ ~ { ~ ( ~ 5 \\sim 8 ~ \\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\pm 4 5 ^ { \\circ } \\mathrm { ~ ~ { ~ ( 8 \\sim 1 3 ~ s ) } ~ }$\n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$\n相对湿度:≤93%(40 ℃)。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"2 概述\\n2.1 主要功能\\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\\n发动机主要由以下子系统组成:\\n1) 机座与机架组件:承载与结构支撑;\\n2) 曲柄连杆机构:实现往复—旋转运动转换;\\n3) 燃烧室部件:完成燃烧做功;\\n4) 排气阀驱动系统:控制废气排放;\\n5) 燃油喷射系统:完成燃油定时、定量喷射;\\n6) 扫气与增压系统:提高换气效率与功率密度。\\n2.2 工作条件\\n2.2.1 正常运行条件\\n1)环境条件\\n长期纵倾:±5°;横倾:±15°;\\n短期纵摇: $\\\\pm 1 0 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( ~ 5 \\\\sim 8 ~ \\\\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\\\pm 4 5 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( 8 \\\\sim 1 3 ~ s ) } ~ }$\\n环境温度: $+ 5 \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } \\\\sim \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ + 5 5 ~ \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } ~ }$\\n相对湿度:≤93%(40 ℃)。\\n2)能源条件\\n表 2.1 冷水机组正常使用时的能源条件\\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\\n2.2.2 非正常运行条件\\n表 2.2 非正常输入条件及产生后果\\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\\n表 2.3 设备故障非正常输出条件及可能产生后果\\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8f1569bb-15ae-48a7-b876-5f88ce2a265c.pdf#page=4\"}]" + } + }, + { + "type": "组成", + "properties": { + "名称": "发动机的组成", + "内容": "3.1 组成\n船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\n图 3.1 船舶主发动机组成图\nimages/fdb1588e2f75e0e8a15a765fd0e2c1e3b5a3cc0a623d68df5ab0f4230839e240.jpg\n表 3.1 船舶主发动机组成部分\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.1 组成\\n船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\\n图 3.1 船舶主发动机组成图\\nimages/fdb1588e2f75e0e8a15a765fd0e2c1e3b5a3cc0a623d68df5ab0f4230839e240.jpg\\n表 3.1 船舶主发动机组成部分\\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_987bb73e-0a19-4804-bd8b-740633a1004c.pdf#page=5\"}]" + } + }, + { + "type": "工作原理", + "properties": { + "名称": "发动机的工作原理", + "内容": "3.2 工作原理\n主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\n船舶主发动机工作原理\n图 3.2 船舶主发动机组成图\nimages/ae9bcbc029d318bd8189bbb9c67cd730ea4c950b1e383ed8454834040d7d16ae.jpg\n图 3.3 机座与机架组件整体图\nimages/8adac92aca5096dde35f5be2420796b45d0e94ca723aae8ba857624de66aa758.jpg\n图 3.4 曲柄连杆机构工作原理图\nimages/23fa41fea5e5b5458d6f7df3f8e7e8033b6665bd23203946646651c3e56c2da7.jpg\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\n图 3.5 燃烧室部件工作原理图\nimages/ebfc008f330e9041518542ffd9cde5df5143a441eaada1b7e225cef8063aa904.jpg\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\n图 3.6 排气阀驱动系统工作原理图\nimages/bd853c17f04663c1afbaa7935da38fddd1bc94764f23539c044fdf3fc0ca42ed.jpg\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\n核心原理与步骤\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\n图 3.7 燃油喷射系统工作原理图\nimages/141c6a9ab46f9b8b4bd5ee3355ab569bbd8c17f0436343e32bf4429a742c40d9.jpg\n如图3.7中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\n图 3.8 扫气与增压系统工作原理图\nimages/d21cb32df23febcd28812d8e8d1a0fbfff2bc35be920932d6cd4a166663f1de4.jpg\n用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 700-900°C 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.2 工作原理\\n主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\\n船舶主发动机工作原理\\n图 3.2 船舶主发动机组成图\\nimages/ae9bcbc029d318bd8189bbb9c67cd730ea4c950b1e383ed8454834040d7d16ae.jpg\\n图 3.3 机座与机架组件整体图\\nimages/8adac92aca5096dde35f5be2420796b45d0e94ca723aae8ba857624de66aa758.jpg\\n图 3.4 曲柄连杆机构工作原理图\\nimages/23fa41fea5e5b5458d6f7df3f8e7e8033b6665bd23203946646651c3e56c2da7.jpg\\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\\n图 3.5 燃烧室部件工作原理图\\nimages/ebfc008f330e9041518542ffd9cde5df5143a441eaada1b7e225cef8063aa904.jpg\\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\\n图 3.6 排气阀驱动系统工作原理图\\nimages/bd853c17f04663c1afbaa7935da38fddd1bc94764f23539c044fdf3fc0ca42ed.jpg\\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\\n核心原理与步骤\\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\\n图 3.7 燃油喷射系统工作原理图\\nimages/141c6a9ab46f9b8b4bd5ee3355ab569bbd8c17f0436343e32bf4429a742c40d9.jpg\\n如图3.7中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\\n图 3.8 扫气与增压系统工作原理图\\nimages/d21cb32df23febcd28812d8e8d1a0fbfff2bc35be920932d6cd4a166663f1de4.jpg\\n用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 700-900°C 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_e3899eeb-febe-4f34-b93e-152cd28a3fe9.pdf#page=9\"}]" + } + }, + { + "type": "技术指标参数", + "properties": { + "名称": "发动机的技术指标参数", + "内容": "3.3 技术指标\n船舶主发动机的基本指标参见表3.2。\n表 3.2 船舶主发动机基本参数\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度≤700cSt@ 50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径 ×行程 500 mm × 2200 mm 平均有效压力(BMEP) ~ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50 ℃ 冷却水进口温度 ≤ 36 ℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25 年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.3 技术指标\\n船舶主发动机的基本指标参见表3.2。\\n表 3.2 船舶主发动机基本参数\\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度≤700cSt@ 50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径 ×行程 500 mm × 2200 mm 平均有效压力(BMEP) ~ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50 ℃ 冷却水进口温度 ≤ 36 ℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25 年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_fe841c75-4516-4760-97f9-564b9eefb74e.pdf#page=11\"}]" + } + }, + { + "type": "接口", + "properties": { + "名称": "发动机的接口", + "内容": "3.4 接口关系\n船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\n1) 安装接口\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48×320 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\n2) 能源接口\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管(040202 / 0503 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\n3) 信息与监测接口\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.4 接口关系\\n船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\\n1) 安装接口\\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48×320 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\\n2) 能源接口\\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管(040202 / 0503 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\\n3) 信息与监测接口\\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_0a6e660d-c85d-4ca9-aa75-9f41252a8086.pdf#page=13\"}]" + } + }, + { + "type": "布置情况", + "properties": { + "名称": "发动机的布置情况", + "内容": "3.5 布置情况\n全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\n船舶主发动机布置情况见表 3.3。\n表 3.3 船舶主发动机布置情况\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵触线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.5 布置情况\\n全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\\n船舶主发动机布置情况见表 3.3。\\n表 3.3 船舶主发动机布置情况\\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵触线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8f08d8fa-0421-4cc0-bc63-4e520a59ff83.pdf#page=14\"}]" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "发动机的维修工作", + "维修项目索引表": "4.1 维修项目索引表\n表 4.1 船舶主发动机维修项目索引表\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 页码 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 20 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/2000h JY级 22 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 24 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JY级 26 MT005 020203 连杆小端轴承 更换连杆小端轴承 2A/12000h JY级 29 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 31 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 33 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 35 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 37 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 40 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 43 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 45 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 47 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 49 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 52 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 54 MT017 020201 连杆大端轴承 修复连杆大端轴承异常磨损 1U ZJ级 57 MT018 030201 活塞头 修复活塞头部烧蚀 1U ZJ级 59 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 61 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 63", + "内容": "4维修工作指导\n4.1 维修项目索引表\n表 4.1 船舶主发动机维修项目索引表\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 页码 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 20 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/2000h JY级 22 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 24 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JY级 26 MT005 020203 连杆小端轴承 更换连杆小端轴承 2A/12000h JY级 29 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 31 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 33 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 35 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 37 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 40 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 43 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 45 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 47 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 49 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 52 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 54 MT017 020201 连杆大端轴承 修复连杆大端轴承异常磨损 1U ZJ级 57 MT018 030201 活塞头 修复活塞头部烧蚀 1U ZJ级 59 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 61 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 63\n4.2 常见故障表\n表 4.2 船舶主发动机常见故障表\n序号 故障现象 故障原因 维修项目 1 主机运行中振动异常增大 主轴承或连杆大端轴承磨损 执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损 曲轴主轴颈跳动超差 执行以下维修项目:MTO03 检测曲轴主轴颈跳动量 2 单缸功率下降、排温偏低 活塞头烧蚀或活塞环断裂 执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀 气缸套严重磨损 执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套 喷油嘴偶件雾化不良 执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障 3 排气温度异常升高 排气阀密封面磨损或阀座烧蚀 执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座 涡轮增压器轴承损坏 执行以下维修项目:MT015 更换涡轮增压器轴承组件 4 扫气箱内发现润滑油泄漏 活塞杆填料函密封失效 执行以下维修项目:MTO01保养机座与机架组件 5 主机启动困难或压缩压力不足 缸盖密封环老化失效 执行以下维修项目:MT001保养机座与机架组件 6 主机功率输出不稳定 喷油器工作不一致 执行以下维修项目:MT019 排除喷油器雾化不良故障 调速系统响应异常 执行以下维修项目:MT020 排除主机功率异常波动故障 7 空冷器后扫气温度持续偏高 空冷器管束芯体结垢或堵塞 执行以下维修项目:MT016 清洗空冷器管束芯体 8 主机润滑油消耗异常增加 活塞环磨损或断裂 执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环 活塞杆填料函磨损 执行以下维修项目:MT001保养机座与机架组件 9 高压燃油管路附近有油渍 高压油管接头密封失效 执行以下维修项目:MT014 更换高压油泵柱塞偶件 10 主机紧急停机 润滑油压力骤降 执行以下维修项目:MT001保养机座与机架组件 多缸燃烧严重失衡 执行以下维修项目:MT020 排除主机功率异常波动故障\n4.3 维修项目表\n本节主要填写各维修项目的修理表,包括预防性、恢复性维修、故障排查项目。\n表 4.3 MT001 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。 安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。 序号 名称 规格/型号 数量及单位 备注 1 液压升降平台 HLP-3000 1台 用于接近主机上部 2 扭矩扳手 TB-200N·m 1把 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT 1套 厂家配套 4 工业吸油泵 VAC-0IL50 1台 防爆型 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 高压燃油泵 HD-45A 2个 原厂件 2 涡轮增压器 TC-80B 1个 耐高温氟橡胶 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 柴油机专用润滑油 Shell Mysella S5N80 50L 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 5张 不掉屑 3 清洗剂 CRC Brakleen 1罐 用于清洁滤座\n4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师 主导保养流程 2 电气专业 1 技师 监控主机ECU状 态 修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识; 3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油; 图 MT001.1旋松螺塞 (2)检查排出机油中是否有金属屑,若有则记录并上报异常。 图MT001.2检查 2)更换机油滤芯\n图 MT001.3 拆卸\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\n图 MT001.4 滤芯安装扭矩示意图\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\n图 MT001.5 滤芯安装扭矩示意图\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\n(2)静置 10 分钟后复查油位,补充至标准范围。\n图 MT001.6 油位检查\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\n图 MT001.7 安装放油螺塞\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\n图 MT001.8 油污清理\n3)拆除“禁止启动”牌,通知集控室保养完成。 验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下); 2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。 页码:2/2 版本号:1\n表 4.4 MT002 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/200h JY级 安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。 安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。 序号 名称 规格/型号 数量及单位 备注 1 激光对中仪 SKF TKSA 71 1套 用于轴承同轴度检测 2 塞尺组 0.02 -1.00 mm 1套 精度±0.005mm 3 液压拉伸器 HYTORC AVANTI-10 1台 用于地脚螺栓预紧 4 内径千分尺 200-300mm 1把 校验有效期内 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁酒精 AR Grade 100mL 2 防锈纸 VCI-200 2张 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;\n图 MT002.1 换油前清洗\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\n图 MT002.2 检查\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\n图 MT002.3 塞尺测量\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\n图 MT002.4 激光对中仪\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\n图 MT002.5 测量轴线偏移量\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\n判定与处理 1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。 验收标准 1.主轴承座与机座结合面间隙≤0.05mm(全周); 2.相邻主轴承同轴度偏差≤0.08 mm/m; 3.地脚螺栓预紧力在设计值 ±5% 范围内。 页码:1/1 版本号:1\n表 4.5 MT003 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。 安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg 序号 名称 规格/型号 数量及单位 备注 1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm 2 磁力表座 Starrett 16B 1个 带万向关节 3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg\n4 盘车手轮 OEM-MAN-BW-PCW 1个 原厂配套\n序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1\n序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 50mL 清洁轴颈表面 2 无绒擦拭布 Kimwipe EX-L 3张 防刮伤轴面\n序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工复刻数据\n图 MT003.1 清洁\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\n图 MT003.2 标记测量基准点\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\n2)安装千分表\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\n图 MT003.3 千分尺\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\n(2)预压千分表 0.3 mm,归零。\n3)盘车测量\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\n(2)跳动量 = 最大值 - 最小值;\n(3)重复上述步骤,依次测量其余主轴颈。\n数据判定\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\n表 4.6 MT004 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JT级 安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。 安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。 序号 名称 规格/型号 数量及单位 备注 1 液压拉伸器 HYTORC RS-20 1套 2 扭矩扳手 Norbar 1500N·m 1把 精度±2% 3 轴承安装导向套 OEM-MAN-BW-BG-04 1个 4 内窥镜 GE Mentor Visual iQ 1台 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆大端轴承上瓦 MAN 5L35MC-BRG-UP 1副 原厂高锡合金 2 连杆大端轴承下瓦 MAN 5L35MC-BRG-DN 1副 3 连杆螺栓 M30 ×2.0 Grade 12.9 2根 次性使用,强制更换 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\n1 轴承装配润滑脂 Kluber Isoflex LDS18 Special A 10g 仅涂瓦背 2 螺纹锁固胶 Loctite 2701 少量 用于螺栓螺纹(如适用) 3 清洗剂 Brulin 815GD 200mL 清洁连杆结合面\n4)人力人员\n序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2x工程师 总工监督关键步骤\n修理步骤及工艺\n更换前提确认\n1)主机已完成停机冷却,滑油系统泄压;\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\n拆卸旧轴承\n1)拆连杆盖\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\n(2)取下螺栓及连杆大端盖,放置于专用托架。\n2)取出旧轴承\n(1)轻敲连杆体侧面,使下瓦自然脱落;\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\n安装新轴承\n1)清洁与检查\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\n(2)目视检查新瓦背面涂层均匀,无裂纹。\n2)装配\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\n(2)将下瓦装入连杆盖,同样对准定位;\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\n3)紧固螺栓\n(1)安装新连杆螺栓,手工旋入到底;\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\n(3)最终用角度法复核(如适用)。\n图 MT004.1 连杆大端轴承结构分解图\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\n表 4.7 MT005 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT005 020203 连杆小段轴承 更换连杆小段轴承 2A/12000h JY级 安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。 安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。 序号 名称 规格/型号 数量及单位 备注 1 活塞吊装专用吊具 OEM-MAN-BW-PST-05 1套 带缓冲橡胶夹头 2 感应加热器 EFD Induction Minac16 1台 温控精度±5℃ 3 内径千分尺 40 - 50 mm 1把 校验有效期内 4 铜棒与塑料锤 Φ20×300 mm 各1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆小端衬套(上) MAN 5L35MC-BUSH-UP 1件 锡青铜基 2 连杆小端衬套(下) MAN 5L35MC-BUSH-DN 1件 3 活塞销卡簧 Φ50×2.5 mm 2个 不锈钢,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\n1 高温装配润滑脂 Molycote G-1052 5g 2 清洗剂 Brulin 815GD 150mL 3 耐高温标记笔 Markal 900°F 1支\n4)人力人员\n序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师主导热装\n修理步骤及工艺\n更换前提确认\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\n拆卸旧衬套\n1)抽出活塞-连杆总成\n(1)拆除缸头、喷油器及冷却水管路;\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\n2)压出旧衬套\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\n安装新衬套\n1)清洁与预装检查\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\n(2)测量座孔内径,记录作为过盈量计算依据。\n2)热装新衬套\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\n(2)迅速将热衬套套入连杆小端,确保完全到位;\n(3)自然冷却至室温,禁止强制冷却。\n3)精铰与研配(如需要)\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\n组装活塞销与卡簧\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\n验收标准 1.衬套与座孔过盈配合牢固,无松动或轴向位移; 2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。 页码:1/1 版本号:1\n表 4.8 MT006 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。 安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配350mm活塞 2 内窥镜 GE Mentor Visual iQ 1台 3 深度规 0-150mm 1把 4 放大镜 10× with scale 1个 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检查类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 积碳清洗剂 CRC Carbon CleanPro 200mL 环保型 2 无纺布 Industrial Grade 5张 3 防锈油 CRC 3-36 50mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。 抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态 1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查 (1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。 判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008; 3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。\n表 4.9 MT007 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。 安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配Φ350 mm活塞 2 环口间隙测量规 Feeler Gauge Set 1套 0.05-1.00mm 3 环槽清洁刮刀 Custom-Piston-Groove-Scraper 1把 铜质刃口 4 扭矩扳手 20-100 N·m 1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第一道压缩环 MAN 5L35MC-RING-1 1件 梯形截面,表面镀铬 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 5g 2 无绒布 Kimwipe EX-L 3张 3 清洗剂 Brulin 815GD 100mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师复刻还口间隙 修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。 验收标准 1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内; 页码:1/1 3.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1\n表 4.10 MT008 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。 安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 同MT007 2 环口定位夹具 Custom-Ring-Aligner 1套 控制各环开口相位 3 放大镜(带LED) 5X with light 1个 检查环体缺陷 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第二道压缩环 MAN 5L35MC-RING-2 1件 锥面环 2 第三道刮油环(组合式) MAN 5L35MC-RING-3 1套 含轨环+弹簧胀圈 3 第四道刮油环(组合式) MAN 5L35MC-RING-4 1套 同上 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 10g 涂所有环外圆 2 缸套润滑机油 Shell Mysella S5N80 50mL 涂缸壁 3 标记笔(耐油) Marka1Oil-Resistant 1支 标记环开口位置 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+ 技师 工程师监督相位布置 修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。 拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。 差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120° (1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证 1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;\n表 4.11 MT009 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。 安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 内径千分尺(三点式) Mitutoyo 204-304 mm 1套 分辨率0.001mm 2 缸套磨损测量记录仪 Custom-Bore-Wear-Log 1台 自动生成磨损曲线 3 防爆LED手电 Streamlight 88040 1个 24V安全电压 4 清洁气枪 Industrial Air BlowGun 1把 压力≤0.5 MPa 2)备品 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检测类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 100mL 清洁测量接触面 2 无绒布 Kimwipe EX-L 5张 防刮伤缸壁 3 防锈纸 VCI-200 2张 测量后临时覆盖 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工审核磨损趋势\n3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略) 验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。 页码:1/1 版本号:1\n表 4.12 MT010 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。 安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。 序号 名称 规格/型号 数量及单位 备注 1 液压压装机 HYDRA-PRESS-50T 1台 带压力与位移监控 2 缸套拔出器 OEM-MAN-BW-LINER-PULL 1套 螺纹顶压式 3 冷却水腔密封测试仪 LeakTest-CT300 1台 0.3 MPa保压 4 深度规 0- 300 mm 1把 测量缸套凸肩高度 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 气缸套总成 MAN5L35MC-LINER-ASSY 1件 含0形圈、定位销 2 缸套水封0形圈 Viton Φ380×5.0 2个 耐高温氟橡胶 3 缸套油封环 NBR Φ352×3.0 1个 下部密封 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 装配润滑脂 Kluber Isoflex LDS18 Special A 20g 涂缸套外壁 2 密封胶 Loctite 518 少量 水腔法兰面(如适用) 3 清洗剂 Brulin 815GD 300mL 清洁缸体座孔 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工监督压装对中\n修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。 3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm; 2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1\n表 4.13 MT011 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。 安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK 1套 带隔热手柄 2 红外测温仪 Fluke 62 Max+ 1台 测量阀杆温度 3 密封面检测平板 Optical Flat λ/10 1块 用于着色法检查 4 着色剂套装 Dykem Steel Blue +Developer 1套 检查接触印痕 2)备品备件 序 名称 规格/型号 消耗数量 备注 一 本项目为检查类,无备件消耗(但可能触发MT012) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温清洁剂 CRC Brakleen HT 100mL 清除积碳 2 无绒布 Kimwipe EX-L 5张 防刮伤密封面 3 防锈油 CRC 3-36 30mL 检查后临时防护 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座); 3)记录检查结果于《排气阀状态档案》。 验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm; 2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。 页码:1/1 版本号:1\n表 4.14 MT012 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。 安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。 序号 名称 规格/型号 数量及单位 备注 1 便携式阀座镗床 SUNNEN SV-20 1台 带角度调节 2 液压阀座压装机 HYDRA-SEAT-PRESS 1台 用于过盈配合座 3 渗透探伤套装 Magnaflux ZL-27A 1套 PT检测裂纹 4 角度规 0-90°Protractor 1把 检查密封锥角 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀座 MAN5L35MC-EXH-SEAT 1件 Stellite合金堆焊 2 定位销(如适用) Φ8×20 mm 1个 不锈钢 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温镍基焊条 ENiCrFe-3 1根 用于焊接固定(如需要) 2 清洗剂 Brulin 815GD 150mL 清洁阀座孔 3 研磨膏(细) Clover Leaf Green 20g 配合研磨 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工批准焊接/压装方案 修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座 1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。 2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座); 3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。 页码:1/1 版本号:1\n表 4.15 MT013 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火 安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 高压燃油压力表 0-20 MPa 1个 校验有效期内 3 喷油雾化测试台 Bosch EPS 815 1台 可测开启压力与雾化角 4 扭矩扳手 40 -200 N·m 1把 用于喷油器压紧螺母 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件(针阀+阀体) MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂高精度配对 2 喷油器铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性\n3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200 mL 用于冲洗油道 2 3 无绒布 高温润滑脂 Kimwipe EX-L 5张 少量 擦拭偶件表面 4)人力人员 Molycote G-1052 涂压紧螺纹 序号 专业 人数 技能等级 备注 修理步骤及工艺 1 机械专业 2 工程师+技师 工程师操作测试 台 更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件 (1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5° 无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa; 2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。\n表 4.16 MT014 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。 安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖 序号 名称 规格/型号 数量及单位 备注 1 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤 2 供油定时检测仪 AVL 545 1台 测量喷油始点 3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙 4 扭矩扳手 30-150 N·m 1把 用于泵体检修盖 2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用) 序 名称 规格/型号 消耗数量 备注 1 柱塞+套筒偶件 MAN5L35MC-PLUNGER-KIT 1套 配对编号一致 2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高压泵专用润滑油 Shell Tellus S4 VX32 100mL 用于偶件润滑 2 密封胶 Loctite 577 少量 泵体结合面(如适用) 3 清洗柴油 ISO 4020 Grade A 300mL 冲洗油道 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工确认供油定时 修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m; (2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA; 验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA; 3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1\n表 4.17 MT015 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。 安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。 序号 名称 规格/型号 数量及单位 备注 1 涡轮增压器专用拆装台 Custom-Turbo-Bench 1台 带V型支撑 2 感应加热器 EFD Minac 10 1台 温控±5℃ 3 动平衡检测仪 Schenck BALANCER V 1台 G2.5级精度 4 扭矩扳手 10-80 N·m 1把 用于壳体螺栓 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 径向轴承(主轴) MAN TCA77-BRG-RAD 1套 铜铅合金 2 止推轴承组件 MANTCA77-BRG-THRUST 1套 含瓦片+垫片组 3 轴封环 Carbon Seal Φ60X3 2个 石墨基 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温润滑脂 Kluber Isoflex LDS18 Special A 15g 仅涂轴承外圈 2 清洗剂 Brulin 815GD 200mL 清洁轴承座 3 密封胶 Loctite 518 少量 壳体结合面 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导装配 2 电子专业 1 中级 监测振动传感器\n(如适用) 修理步骤及工艺 更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换; 拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃; 2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。\n表 4.18 MT016 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。 安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。\n序号 名称 规格/型号 数量及单位 备注 1 高压清洗机 Kärcher HD 7/15-4 1台 压力0-5MPa可调 2 管束专用清洗喷头 Rotating Nozzle 3mm 2个 自旋式 3 风压干燥机 Industrial AirDryer 1台 0.6 MPa 4 泄漏测试装置 Air/Water LeakTester 1套 0.4 MPa 保压\n序 名称 规格/型号 消耗数量 备注 本项目为清洗 类,无备件消耗 (但可能触发堵 管修复\n序号 名称 牌号/品级/规格 消耗数量 备注 1 中性清洗剂 Alconox Detojet 2kg pH=9.5,环保型 2 软化水 Deionized Water 200L 配制清洗液 3 防锈剂 CRC 3-36 100mL 清洗后喷涂\n序号 专业 人数 技能等级 备注 1 机械专业 2 中级+初级 中级操作高压设备\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\n1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥 (1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准 1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1\n表 4.19 MT017 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 T017 030200 连杆大端轴承 修复连杆大端轴承异常磨损 故障触发 ZJ级 安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。 安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。 序号 名称 规格/型号 数量及单位 备注 1 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 1台 自动高压水射流 2 内窥镜(防爆) GE Mentor VisualiQ-Ex 1台 检查缸套下部 3 红外热像仪 FLIR T860 1台 检测局部热点 4 可燃气体检测仪 MSA Altair 5X 1台 多气体复合 2)备品 备件 序 名称 规格/型号 消耗数量 备注 1 全套活塞环组 MAN5L35MC-RING-SET 1套 含1-4号环 2 活塞头(如需更换) MAN5L35MC-PISTON-HEAD 1件 铸钢整体式 3 扫气口密封条 Viton Strip 5×10mm 若干 更换烧损件 3)消耗 材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 生物降解清洗剂 Envirox SC-90 5L 清除碳化油泥 2 耐高温防火毯 Fiberglass Mat1200°C 2m 局部隔热防护 3 防锈剂 CRC 3-36 200mL 修复后防护 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工主导故障分析 2 安全监督 1 高级安全员 全程监护受限空间作业 修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头; 2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。 验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。 页码:1/1 版本号:1\n表 4.20 MT018 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT018 030201 活塞头 修复活塞头部烧蚀熔损 故障触发 ZJ级 安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。 安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。 序号 名称 规格/型号 数量及单位 备注 1 等离子堆焊机 PLASMAD 5000 1台 自动送粉 2 热处理炉 Box Furnace 800° C 1台 控温±10℃ 3 超声波探伤仪 Olympus Epoch 650 1台 检测内部缺陷 4 三维扫描仪 FARO Arm Quantum 1台 修复前后形貌比对 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 本项目为修复类,通常不消耗新活塞(除非报废) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 镍基合金焊粉 INCONEL 625 300g 耐高温抗烧蚀 2 渗透探伤剂 Magnaflux ZL-27A 1套 PT检测裂纹 3 保温棉 Ceramic FiberBlanket 2 kg 焊后包裹缓冷 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+高级技师 总工批准修复方案 2 焊接专业 1 高级焊工(ASMEIX认证) 执行堆焊\n修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理 3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证 2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm); 3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1\n表 4.21 MT019 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗 3 扭矩扳手 40-200 N·m 1把 用于压紧螺母回装 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件 MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂配对 2 铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道 2 无绒布 Kimwipe EX-L 5张 3 高温润滑脂 Molycote G-1052 少量 4)人力人员 序号 专业 人数 技能等级 1 机械专业 2 高级+中级 修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m; 2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。 验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。 页码:1/1 版本号:1\n表 4.22 MT020 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。 安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。 序号 名称 规格/型号 数量及单位 备注 1 主机监控系统(PMS) Integrated BridgeSystem 1套 读取实时功率曲线 2 调速器性能测试仪 Woodward Test Bench 1台 检测响应滞后 3 燃油黏度计 MarconiViscotester 1台 测 HFO黏度 4 多通道数据记录仪 DataTaker DT80 1套 同步录负荷/转速 2)备品 序 名称 规格/型号 消耗数量 备注 1 调速器伺服阀滤芯 OEM-GOV-FILTER 1个 如堵塞 2 燃油温度传感器 PT100,0-200°C 1个 如漂移 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 标准测试燃油 ISO 8217 RMG380 300L 用于稳定测试 2 密封胶 Loctite 577 少量 传感器安装 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导系统分析 2 自动化专业 1 中级 负责调速器信号检测 修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。 分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。 针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟; 验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下); 3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4维修工作指导\\n4.1 维修项目索引表\\n表 4.1 船舶主发动机维修项目索引表\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 页码 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 20 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/2000h JY级 22 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 24 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JY级 26 MT005 020203 连杆小端轴承 更换连杆小端轴承 2A/12000h JY级 29 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 31 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 33 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 35 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 37 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 40 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 43 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 45 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 47 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 49 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 52 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 54 MT017 020201 连杆大端轴承 修复连杆大端轴承异常磨损 1U ZJ级 57 MT018 030201 活塞头 修复活塞头部烧蚀 1U ZJ级 59 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 61 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 63\\n4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n序号 故障现象 故障原因 维修项目 1 主机运行中振动异常增大 主轴承或连杆大端轴承磨损 执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损 曲轴主轴颈跳动超差 执行以下维修项目:MTO03 检测曲轴主轴颈跳动量 2 单缸功率下降、排温偏低 活塞头烧蚀或活塞环断裂 执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀 气缸套严重磨损 执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套 喷油嘴偶件雾化不良 执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障 3 排气温度异常升高 排气阀密封面磨损或阀座烧蚀 执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座 涡轮增压器轴承损坏 执行以下维修项目:MT015 更换涡轮增压器轴承组件 4 扫气箱内发现润滑油泄漏 活塞杆填料函密封失效 执行以下维修项目:MTO01保养机座与机架组件 5 主机启动困难或压缩压力不足 缸盖密封环老化失效 执行以下维修项目:MT001保养机座与机架组件 6 主机功率输出不稳定 喷油器工作不一致 执行以下维修项目:MT019 排除喷油器雾化不良故障 调速系统响应异常 执行以下维修项目:MT020 排除主机功率异常波动故障 7 空冷器后扫气温度持续偏高 空冷器管束芯体结垢或堵塞 执行以下维修项目:MT016 清洗空冷器管束芯体 8 主机润滑油消耗异常增加 活塞环磨损或断裂 执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环 活塞杆填料函磨损 执行以下维修项目:MT001保养机座与机架组件 9 高压燃油管路附近有油渍 高压油管接头密封失效 执行以下维修项目:MT014 更换高压油泵柱塞偶件 10 主机紧急停机 润滑油压力骤降 执行以下维修项目:MT001保养机座与机架组件 多缸燃烧严重失衡 执行以下维修项目:MT020 排除主机功率异常波动故障\\n4.3 维修项目表\\n本节主要填写各维修项目的修理表,包括预防性、恢复性维修、故障排查项目。\\n表 4.3 MT001 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。 安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。 序号 名称 规格/型号 数量及单位 备注 1 液压升降平台 HLP-3000 1台 用于接近主机上部 2 扭矩扳手 TB-200N·m 1把 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT 1套 厂家配套 4 工业吸油泵 VAC-0IL50 1台 防爆型 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 高压燃油泵 HD-45A 2个 原厂件 2 涡轮增压器 TC-80B 1个 耐高温氟橡胶 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 柴油机专用润滑油 Shell Mysella S5N80 50L 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 5张 不掉屑 3 清洗剂 CRC Brakleen 1罐 用于清洁滤座\\n4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师 主导保养流程 2 电气专业 1 技师 监控主机ECU状 态 修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识; 3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油; 图 MT001.1旋松螺塞 (2)检查排出机油中是否有金属屑,若有则记录并上报异常。 图MT001.2检查 2)更换机油滤芯\\n图 MT001.3 拆卸\\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\\n图 MT001.4 滤芯安装扭矩示意图\\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\\n图 MT001.5 滤芯安装扭矩示意图\\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\\n(2)静置 10 分钟后复查油位,补充至标准范围。\\n图 MT001.6 油位检查\\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\\n图 MT001.7 安装放油螺塞\\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\\n图 MT001.8 油污清理\\n3)拆除“禁止启动”牌,通知集控室保养完成。 验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下); 2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。 页码:2/2 版本号:1\\n表 4.4 MT002 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/200h JY级 安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。 安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。 序号 名称 规格/型号 数量及单位 备注 1 激光对中仪 SKF TKSA 71 1套 用于轴承同轴度检测 2 塞尺组 0.02 -1.00 mm 1套 精度±0.005mm 3 液压拉伸器 HYTORC AVANTI-10 1台 用于地脚螺栓预紧 4 内径千分尺 200-300mm 1把 校验有效期内 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁酒精 AR Grade 100mL 2 防锈纸 VCI-200 2张 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;\\n图 MT002.1 换油前清洗\\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\\n图 MT002.2 检查\\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\\n图 MT002.3 塞尺测量\\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\\n图 MT002.4 激光对中仪\\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\\n图 MT002.5 测量轴线偏移量\\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\\n判定与处理 1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。 验收标准 1.主轴承座与机座结合面间隙≤0.05mm(全周); 2.相邻主轴承同轴度偏差≤0.08 mm/m; 3.地脚螺栓预紧力在设计值 ±5% 范围内。 页码:1/1 版本号:1\\n表 4.5 MT003 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。 安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg 序号 名称 规格/型号 数量及单位 备注 1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm 2 磁力表座 Starrett 16B 1个 带万向关节 3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg\\n4 盘车手轮 OEM-MAN-BW-PCW 1个 原厂配套\\n序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1\\n序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 50mL 清洁轴颈表面 2 无绒擦拭布 Kimwipe EX-L 3张 防刮伤轴面\\n序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工复刻数据\\n图 MT003.1 清洁\\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\\n图 MT003.2 标记测量基准点\\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\\n2)安装千分表\\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\\n图 MT003.3 千分尺\\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\\n(2)预压千分表 0.3 mm,归零。\\n3)盘车测量\\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\\n(2)跳动量 = 最大值 - 最小值;\\n(3)重复上述步骤,依次测量其余主轴颈。\\n数据判定\\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\\n表 4.6 MT004 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JT级 安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。 安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。 序号 名称 规格/型号 数量及单位 备注 1 液压拉伸器 HYTORC RS-20 1套 2 扭矩扳手 Norbar 1500N·m 1把 精度±2% 3 轴承安装导向套 OEM-MAN-BW-BG-04 1个 4 内窥镜 GE Mentor Visual iQ 1台 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆大端轴承上瓦 MAN 5L35MC-BRG-UP 1副 原厂高锡合金 2 连杆大端轴承下瓦 MAN 5L35MC-BRG-DN 1副 3 连杆螺栓 M30 ×2.0 Grade 12.9 2根 次性使用,强制更换 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\\n1 轴承装配润滑脂 Kluber Isoflex LDS18 Special A 10g 仅涂瓦背 2 螺纹锁固胶 Loctite 2701 少量 用于螺栓螺纹(如适用) 3 清洗剂 Brulin 815GD 200mL 清洁连杆结合面\\n4)人力人员\\n序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2x工程师 总工监督关键步骤\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成停机冷却,滑油系统泄压;\\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\\n拆卸旧轴承\\n1)拆连杆盖\\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\\n(2)取下螺栓及连杆大端盖,放置于专用托架。\\n2)取出旧轴承\\n(1)轻敲连杆体侧面,使下瓦自然脱落;\\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\\n安装新轴承\\n1)清洁与检查\\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\\n(2)目视检查新瓦背面涂层均匀,无裂纹。\\n2)装配\\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\\n(2)将下瓦装入连杆盖,同样对准定位;\\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\\n3)紧固螺栓\\n(1)安装新连杆螺栓,手工旋入到底;\\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\\n(3)最终用角度法复核(如适用)。\\n图 MT004.1 连杆大端轴承结构分解图\\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\\n表 4.7 MT005 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT005 020203 连杆小段轴承 更换连杆小段轴承 2A/12000h JY级 安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。 安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。 序号 名称 规格/型号 数量及单位 备注 1 活塞吊装专用吊具 OEM-MAN-BW-PST-05 1套 带缓冲橡胶夹头 2 感应加热器 EFD Induction Minac16 1台 温控精度±5℃ 3 内径千分尺 40 - 50 mm 1把 校验有效期内 4 铜棒与塑料锤 Φ20×300 mm 各1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆小端衬套(上) MAN 5L35MC-BUSH-UP 1件 锡青铜基 2 连杆小端衬套(下) MAN 5L35MC-BUSH-DN 1件 3 活塞销卡簧 Φ50×2.5 mm 2个 不锈钢,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\\n1 高温装配润滑脂 Molycote G-1052 5g 2 清洗剂 Brulin 815GD 150mL 3 耐高温标记笔 Markal 900°F 1支\\n4)人力人员\\n序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师主导热装\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\\n拆卸旧衬套\\n1)抽出活塞-连杆总成\\n(1)拆除缸头、喷油器及冷却水管路;\\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\\n2)压出旧衬套\\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\\n安装新衬套\\n1)清洁与预装检查\\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\\n(2)测量座孔内径,记录作为过盈量计算依据。\\n2)热装新衬套\\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\\n(2)迅速将热衬套套入连杆小端,确保完全到位;\\n(3)自然冷却至室温,禁止强制冷却。\\n3)精铰与研配(如需要)\\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\\n组装活塞销与卡簧\\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\\n验收标准 1.衬套与座孔过盈配合牢固,无松动或轴向位移; 2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。 页码:1/1 版本号:1\\n表 4.8 MT006 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。 安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配350mm活塞 2 内窥镜 GE Mentor Visual iQ 1台 3 深度规 0-150mm 1把 4 放大镜 10× with scale 1个 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检查类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 积碳清洗剂 CRC Carbon CleanPro 200mL 环保型 2 无纺布 Industrial Grade 5张 3 防锈油 CRC 3-36 50mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。 抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态 1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查 (1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。 判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008; 3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。\\n表 4.9 MT007 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。 安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。\\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配Φ350 mm活塞 2 环口间隙测量规 Feeler Gauge Set 1套 0.05-1.00mm 3 环槽清洁刮刀 Custom-Piston-Groove-Scraper 1把 铜质刃口 4 扭矩扳手 20-100 N·m 1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第一道压缩环 MAN 5L35MC-RING-1 1件 梯形截面,表面镀铬 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 5g 2 无绒布 Kimwipe EX-L 3张 3 清洗剂 Brulin 815GD 100mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师复刻还口间隙 修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。 验收标准 1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内; 页码:1/1 3.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1\\n表 4.10 MT008 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。 安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 同MT007 2 环口定位夹具 Custom-Ring-Aligner 1套 控制各环开口相位 3 放大镜(带LED) 5X with light 1个 检查环体缺陷 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第二道压缩环 MAN 5L35MC-RING-2 1件 锥面环 2 第三道刮油环(组合式) MAN 5L35MC-RING-3 1套 含轨环+弹簧胀圈 3 第四道刮油环(组合式) MAN 5L35MC-RING-4 1套 同上 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 10g 涂所有环外圆 2 缸套润滑机油 Shell Mysella S5N80 50mL 涂缸壁 3 标记笔(耐油) Marka1Oil-Resistant 1支 标记环开口位置 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+ 技师 工程师监督相位布置 修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。 拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。 差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120° (1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证 1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;\\n表 4.11 MT009 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。 安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 内径千分尺(三点式) Mitutoyo 204-304 mm 1套 分辨率0.001mm 2 缸套磨损测量记录仪 Custom-Bore-Wear-Log 1台 自动生成磨损曲线 3 防爆LED手电 Streamlight 88040 1个 24V安全电压 4 清洁气枪 Industrial Air BlowGun 1把 压力≤0.5 MPa 2)备品 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检测类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 100mL 清洁测量接触面 2 无绒布 Kimwipe EX-L 5张 防刮伤缸壁 3 防锈纸 VCI-200 2张 测量后临时覆盖 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工审核磨损趋势\\n3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略) 验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。 页码:1/1 版本号:1\\n表 4.12 MT010 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。 安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。 序号 名称 规格/型号 数量及单位 备注 1 液压压装机 HYDRA-PRESS-50T 1台 带压力与位移监控 2 缸套拔出器 OEM-MAN-BW-LINER-PULL 1套 螺纹顶压式 3 冷却水腔密封测试仪 LeakTest-CT300 1台 0.3 MPa保压 4 深度规 0- 300 mm 1把 测量缸套凸肩高度 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 气缸套总成 MAN5L35MC-LINER-ASSY 1件 含0形圈、定位销 2 缸套水封0形圈 Viton Φ380×5.0 2个 耐高温氟橡胶 3 缸套油封环 NBR Φ352×3.0 1个 下部密封 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 装配润滑脂 Kluber Isoflex LDS18 Special A 20g 涂缸套外壁 2 密封胶 Loctite 518 少量 水腔法兰面(如适用) 3 清洗剂 Brulin 815GD 300mL 清洁缸体座孔 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工监督压装对中\\n修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。 3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm; 2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1\\n表 4.13 MT011 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。 安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。\\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK 1套 带隔热手柄 2 红外测温仪 Fluke 62 Max+ 1台 测量阀杆温度 3 密封面检测平板 Optical Flat λ/10 1块 用于着色法检查 4 着色剂套装 Dykem Steel Blue +Developer 1套 检查接触印痕 2)备品备件 序 名称 规格/型号 消耗数量 备注 一 本项目为检查类,无备件消耗(但可能触发MT012) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温清洁剂 CRC Brakleen HT 100mL 清除积碳 2 无绒布 Kimwipe EX-L 5张 防刮伤密封面 3 防锈油 CRC 3-36 30mL 检查后临时防护 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座); 3)记录检查结果于《排气阀状态档案》。 验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm; 2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。 页码:1/1 版本号:1\\n表 4.14 MT012 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。 安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。 序号 名称 规格/型号 数量及单位 备注 1 便携式阀座镗床 SUNNEN SV-20 1台 带角度调节 2 液压阀座压装机 HYDRA-SEAT-PRESS 1台 用于过盈配合座 3 渗透探伤套装 Magnaflux ZL-27A 1套 PT检测裂纹 4 角度规 0-90°Protractor 1把 检查密封锥角 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀座 MAN5L35MC-EXH-SEAT 1件 Stellite合金堆焊 2 定位销(如适用) Φ8×20 mm 1个 不锈钢 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温镍基焊条 ENiCrFe-3 1根 用于焊接固定(如需要) 2 清洗剂 Brulin 815GD 150mL 清洁阀座孔 3 研磨膏(细) Clover Leaf Green 20g 配合研磨 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工批准焊接/压装方案 修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座 1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。 2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座); 3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。 页码:1/1 版本号:1\\n表 4.15 MT013 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火 安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 高压燃油压力表 0-20 MPa 1个 校验有效期内 3 喷油雾化测试台 Bosch EPS 815 1台 可测开启压力与雾化角 4 扭矩扳手 40 -200 N·m 1把 用于喷油器压紧螺母 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件(针阀+阀体) MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂高精度配对 2 喷油器铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性\\n3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200 mL 用于冲洗油道 2 3 无绒布 高温润滑脂 Kimwipe EX-L 5张 少量 擦拭偶件表面 4)人力人员 Molycote G-1052 涂压紧螺纹 序号 专业 人数 技能等级 备注 修理步骤及工艺 1 机械专业 2 工程师+技师 工程师操作测试 台 更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件 (1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5° 无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa; 2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。\\n表 4.16 MT014 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。 安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖 序号 名称 规格/型号 数量及单位 备注 1 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤 2 供油定时检测仪 AVL 545 1台 测量喷油始点 3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙 4 扭矩扳手 30-150 N·m 1把 用于泵体检修盖 2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用) 序 名称 规格/型号 消耗数量 备注 1 柱塞+套筒偶件 MAN5L35MC-PLUNGER-KIT 1套 配对编号一致 2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高压泵专用润滑油 Shell Tellus S4 VX32 100mL 用于偶件润滑 2 密封胶 Loctite 577 少量 泵体结合面(如适用) 3 清洗柴油 ISO 4020 Grade A 300mL 冲洗油道 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工确认供油定时 修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m; (2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA; 验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA; 3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1\\n表 4.17 MT015 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。 安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。 序号 名称 规格/型号 数量及单位 备注 1 涡轮增压器专用拆装台 Custom-Turbo-Bench 1台 带V型支撑 2 感应加热器 EFD Minac 10 1台 温控±5℃ 3 动平衡检测仪 Schenck BALANCER V 1台 G2.5级精度 4 扭矩扳手 10-80 N·m 1把 用于壳体螺栓 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 径向轴承(主轴) MAN TCA77-BRG-RAD 1套 铜铅合金 2 止推轴承组件 MANTCA77-BRG-THRUST 1套 含瓦片+垫片组 3 轴封环 Carbon Seal Φ60X3 2个 石墨基 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温润滑脂 Kluber Isoflex LDS18 Special A 15g 仅涂轴承外圈 2 清洗剂 Brulin 815GD 200mL 清洁轴承座 3 密封胶 Loctite 518 少量 壳体结合面 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导装配 2 电子专业 1 中级 监测振动传感器\\n(如适用) 修理步骤及工艺 更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换; 拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃; 2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。\\n表 4.18 MT016 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。 安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。\\n序号 名称 规格/型号 数量及单位 备注 1 高压清洗机 Kärcher HD 7/15-4 1台 压力0-5MPa可调 2 管束专用清洗喷头 Rotating Nozzle 3mm 2个 自旋式 3 风压干燥机 Industrial AirDryer 1台 0.6 MPa 4 泄漏测试装置 Air/Water LeakTester 1套 0.4 MPa 保压\\n序 名称 规格/型号 消耗数量 备注 本项目为清洗 类,无备件消耗 (但可能触发堵 管修复\\n序号 名称 牌号/品级/规格 消耗数量 备注 1 中性清洗剂 Alconox Detojet 2kg pH=9.5,环保型 2 软化水 Deionized Water 200L 配制清洗液 3 防锈剂 CRC 3-36 100mL 清洗后喷涂\\n序号 专业 人数 技能等级 备注 1 机械专业 2 中级+初级 中级操作高压设备\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥 (1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准 1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1\\n表 4.19 MT017 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 T017 030200 连杆大端轴承 修复连杆大端轴承异常磨损 故障触发 ZJ级 安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。 安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。 序号 名称 规格/型号 数量及单位 备注 1 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 1台 自动高压水射流 2 内窥镜(防爆) GE Mentor VisualiQ-Ex 1台 检查缸套下部 3 红外热像仪 FLIR T860 1台 检测局部热点 4 可燃气体检测仪 MSA Altair 5X 1台 多气体复合 2)备品 备件 序 名称 规格/型号 消耗数量 备注 1 全套活塞环组 MAN5L35MC-RING-SET 1套 含1-4号环 2 活塞头(如需更换) MAN5L35MC-PISTON-HEAD 1件 铸钢整体式 3 扫气口密封条 Viton Strip 5×10mm 若干 更换烧损件 3)消耗 材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 生物降解清洗剂 Envirox SC-90 5L 清除碳化油泥 2 耐高温防火毯 Fiberglass Mat1200°C 2m 局部隔热防护 3 防锈剂 CRC 3-36 200mL 修复后防护 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工主导故障分析 2 安全监督 1 高级安全员 全程监护受限空间作业 修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头; 2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。 验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。 页码:1/1 版本号:1\\n表 4.20 MT018 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT018 030201 活塞头 修复活塞头部烧蚀熔损 故障触发 ZJ级 安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。 安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。 序号 名称 规格/型号 数量及单位 备注 1 等离子堆焊机 PLASMAD 5000 1台 自动送粉 2 热处理炉 Box Furnace 800° C 1台 控温±10℃ 3 超声波探伤仪 Olympus Epoch 650 1台 检测内部缺陷 4 三维扫描仪 FARO Arm Quantum 1台 修复前后形貌比对 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 本项目为修复类,通常不消耗新活塞(除非报废) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 镍基合金焊粉 INCONEL 625 300g 耐高温抗烧蚀 2 渗透探伤剂 Magnaflux ZL-27A 1套 PT检测裂纹 3 保温棉 Ceramic FiberBlanket 2 kg 焊后包裹缓冷 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+高级技师 总工批准修复方案 2 焊接专业 1 高级焊工(ASMEIX认证) 执行堆焊\\n修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理 3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证 2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm); 3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1\\n表 4.21 MT019 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗 3 扭矩扳手 40-200 N·m 1把 用于压紧螺母回装 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件 MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂配对 2 铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道 2 无绒布 Kimwipe EX-L 5张 3 高温润滑脂 Molycote G-1052 少量 4)人力人员 序号 专业 人数 技能等级 1 机械专业 2 高级+中级 修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m; 2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。 验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。 页码:1/1 版本号:1\\n表 4.22 MT020 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。 安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。 序号 名称 规格/型号 数量及单位 备注 1 主机监控系统(PMS) Integrated BridgeSystem 1套 读取实时功率曲线 2 调速器性能测试仪 Woodward Test Bench 1台 检测响应滞后 3 燃油黏度计 MarconiViscotester 1台 测 HFO黏度 4 多通道数据记录仪 DataTaker DT80 1套 同步录负荷/转速 2)备品 序 名称 规格/型号 消耗数量 备注 1 调速器伺服阀滤芯 OEM-GOV-FILTER 1个 如堵塞 2 燃油温度传感器 PT100,0-200°C 1个 如漂移 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 标准测试燃油 ISO 8217 RMG380 300L 用于稳定测试 2 密封胶 Loctite 577 少量 传感器安装 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导系统分析 2 自动化专业 1 中级 负责调速器信号检测 修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。 分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。 针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟; 验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下); 3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_24e1514f-5346-427b-9fb3-511f59fe36d4.pdf#page=31\"}]" + } + }, + { + "type": "器材保障", + "properties": { + "名称": "发动机的器材保障", + "保障设施、保障设备(工具)信息汇总表": "5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n序号 名称 规格/型号 生产单位 通用/专用 体积山 重量8) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 中仪 C-01 同轴度检测 6 塞尺组 0.02 - 1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10 /RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300mm /40-50mm Mitutoyo 等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001mm 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ /iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量(kg) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LINER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0-300mm 市品 通用 1 0.7 600 量具柜F-05 一 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 序号 名称 规格/型号 生产单位 通用/专用 体积山 重量(kg) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flat/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Kärcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量8) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速", + "消耗材料信息汇总表": "5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n序号 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shell 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC /Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henke1 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shell 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "内容": "5器材保障\n5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n序号 名称 规格/型号 生产单位 通用/专用 体积山 重量8) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 中仪 C-01 同轴度检测 6 塞尺组 0.02 - 1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10 /RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300mm /40-50mm Mitutoyo 等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001mm 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ /iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量(kg) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LINER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0-300mm 市品 通用 1 0.7 600 量具柜F-05 一 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 序号 名称 规格/型号 生产单位 通用/专用 体积山 重量(kg) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flat/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Kärcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量8) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\n5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n序号 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shell 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC /Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henke1 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shell 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n序号 名称 规格/型号 生产单位 通用/专用 体积山 重量8) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 中仪 C-01 同轴度检测 6 塞尺组 0.02 - 1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10 /RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300mm /40-50mm Mitutoyo 等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001mm 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ /iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量(kg) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LINER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0-300mm 市品 通用 1 0.7 600 量具柜F-05 一 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 序号 名称 规格/型号 生产单位 通用/专用 体积山 重量(kg) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flat/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Kärcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量8) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n序号 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shell 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC /Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henke1 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shell 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8b54bbc9-26cb-4bb7-a7c5-6c4abbb153bc.pdf#page=54\"}]" + } + }, + { + "type": "维修安全防护及注意事项汇总表", + "properties": { + "名称": "发动机的维修安全防护及注意事项汇总表", + "概述": "以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。", + "安全防护": "6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006 拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MT009 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MT017 修复连杆异常磨损 1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花", + "注意事项": "6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "内容": "6 维修安全防护及注意事项汇总表\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\n6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006 拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MT009 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MT017 修复连杆异常磨损 1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\n6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006 拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MT009 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MT017 修复连杆异常磨损 1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_a4fb7669-e561-486c-83e2-c6e0e7d19fec.pdf#page=60\"}]" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "曲轴组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "连杆大端轴承的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "活塞头的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "1号压缩环的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "2-4号活塞环的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "气缸套的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "气缸套的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "阀杆的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "阀座的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "喷油嘴偶件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "柱塞偶件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "轴承组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "管束芯体的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "连杆大端轴承的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "活塞头的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "喷油器组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "喷油器组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + } + ], + "relationships": [ + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "发动机", + "to_entity": "发动机的维修工作" + }, + { + "type": "安全警告", + "from_entity": "发动机", + "to_entity": "发动机的安全警告" + }, + { + "type": "实现", + "from_entity": "发动机", + "to_entity": "发动机的功能" + }, + { + "type": "适用", + "from_entity": "发动机", + "to_entity": "发动机的环境条件" + }, + { + "type": "实现", + "from_entity": "发动机", + "to_entity": "发动机的基本情况" + }, + { + "type": "包括", + "from_entity": "发动机", + "to_entity": "发动机的组成" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的工作原理" + }, + { + "type": "具有", + "from_entity": "发动机", + "to_entity": "发动机的技术指标参数" + }, + { + "type": "配备", + "from_entity": "发动机", + "to_entity": "发动机的接口" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的布置情况" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "发动机", + "to_entity": "发动机的维修工作" + }, + { + "type": "依赖", + "from_entity": "发动机", + "to_entity": "发动机的器材保障" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的维修安全防护及注意事项汇总表" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "修理", + "from_entity": "检测曲轴主轴颈跳动量", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "更换连杆大端轴承", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "拆检活塞头磨损情况", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "更换1号压缩环", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "更换2-4号活塞环", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "检测气缸套内径磨损量", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "更换气缸套", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "检查排气阀杆密封面磨损", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "更换排气阀座", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "更换喷油嘴偶件", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "更换高压油泵柱塞偶件", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "修理", + "from_entity": "更换涡轮增压器轴承组件", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "清洗空冷器管束芯体", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "修理", + "from_entity": "修复连杆大端轴承异常磨损", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "修复活塞头部烧蚀熔损", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "排除喷油器雾化不良故障", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "排除喷油器雾化不良故障", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "排除主机功率异常波动故障", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "排除主机功率异常波动故障", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "曲轴组件", + "to_entity": "曲轴组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "曲轴组件的维修工作", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "MT003", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "连杆大端轴承", + "to_entity": "连杆大端轴承的维修工作" + }, + { + "type": "包含故障", + "from_entity": "连杆大端轴承的维修工作", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "MT004", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "活塞头", + "to_entity": "活塞头的维修工作" + }, + { + "type": "包含故障", + "from_entity": "活塞头的维修工作", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT006", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "1号压缩环", + "to_entity": "1号压缩环的维修工作" + }, + { + "type": "包含故障", + "from_entity": "1号压缩环的维修工作", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "MT007", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "2-4号活塞环", + "to_entity": "2-4号活塞环的维修工作" + }, + { + "type": "包含故障", + "from_entity": "2-4号活塞环的维修工作", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "MT008", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "气缸套", + "to_entity": "气缸套的维修工作" + }, + { + "type": "包含故障", + "from_entity": "气缸套的维修工作", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT009", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "气缸套", + "to_entity": "气缸套的维修工作" + }, + { + "type": "包含故障", + "from_entity": "气缸套的维修工作", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT010", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "阀杆", + "to_entity": "阀杆的维修工作" + }, + { + "type": "包含故障", + "from_entity": "阀杆的维修工作", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "MT011", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "阀座", + "to_entity": "阀座的维修工作" + }, + { + "type": "包含故障", + "from_entity": "阀座的维修工作", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "MT012", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "喷油嘴偶件", + "to_entity": "喷油嘴偶件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "喷油嘴偶件的维修工作", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT013", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "柱塞偶件", + "to_entity": "柱塞偶件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "柱塞偶件的维修工作", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "修理", + "from_entity": "MT014", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "轴承组件", + "to_entity": "轴承组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "轴承组件的维修工作", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "MT015", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "管束芯体", + "to_entity": "管束芯体的维修工作" + }, + { + "type": "包含故障", + "from_entity": "管束芯体的维修工作", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "修理", + "from_entity": "MT016", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "连杆大端轴承", + "to_entity": "连杆大端轴承的维修工作" + }, + { + "type": "包含故障", + "from_entity": "连杆大端轴承的维修工作", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "T017", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "活塞头", + "to_entity": "活塞头的维修工作" + }, + { + "type": "包含故障", + "from_entity": "活塞头的维修工作", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT018", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "喷油器组件", + "to_entity": "喷油器组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "喷油器组件的维修工作", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT019", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "喷油器组件", + "to_entity": "喷油器组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "喷油器组件的维修工作", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "MT019", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "MT020", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + }, + { + "type": "修理", + "from_entity": "MT020", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + } + ] +} \ No newline at end of file diff --git a/app_pkg/.env b/app_pkg/.env new file mode 100644 index 0000000..cd28734 --- /dev/null +++ b/app_pkg/.env @@ -0,0 +1,32 @@ +#大模型API地址 +OPENAI_API_BASE=http://172.18.127.124:40063/v1 +#大模型API密钥 +OPENAI_API_KEY=gpustack_dee9ca823290886c_5edfc86aeeeceb1e9ee5162941cb2cb5 +#Embedding 模型地址 : +OPENAI_API_EMBEDDING_BASE=http://172.18.30.122:40044/v1 +# OPENAI_API_EMBEDDING_BASE=http://172.18.127.124:40050/v1 +#Embedding 模型名称 +OPENAI_EMBEDDING_MODEL=bge-m3 +# OPENAI_EMBEDDING_MODEL=Qwen3-Embedding +#大模型名称 +OPENAI_MODEL=Qwen3-32B +#重排序模型地址 +OPENAI_API_RERANKER_BASE=http://172.18.30.122:40014/v1 +# OPENAI_API_RERANKER_BASE=http://172.18.127.124:40022/v1 +#重排序模型名称 +OPENAI_RERANKER_MODEL=bge-rerank +# OPENAI_RERANKER_MODEL=Qwen3-Reranker-8B +#向量数据库用户名 +Milvus_USER=user +#向量数据库密码 +Milvus_PASSWORD=password +#向量数据库地址 +Milvus_URI=http://192.168.0.46:59530 +#文档解析 +Mineru_URL=http://172.18.30.122:9988 +#word 转pdf +CONVERT_DOC_URL=http://172.18.30.122:9000 +#3D_模型召回 置信度 +3D_RECALL_SCORE = 0.3 +#服务器所在地址 +HOST_IP=http://172.18.30.122:9988 diff --git a/app_pkg/.env.example b/app_pkg/.env.example new file mode 100644 index 0000000..80a6dfd --- /dev/null +++ b/app_pkg/.env.example @@ -0,0 +1,22 @@ +#大模型API地址 +OPENAI_API_BASE=http://172.18.127.124:40058/v1 +#大模型API密钥 +OPENAI_API_KEY=gpustack_dee9ca823290886c_5edfc86aeeeceb1e9ee5162941cb2cb5 +#Embedding 模型地址 : +OPENAI_API_EMBEDDING_BASE=http://172.18.127.124:40023/v1 +#Embedding 模型名称 +OPENAI_EMBEDDING_MODEL=bge-m3 +#大模型名称 +OPENAI_MODEL=qwen3-32b-gguf +#重排序模型地址 +OPENAI_API_RERANKER_BASE=http://172.18.30.122:20507/v1 +#重排序模型名称 +OPENAI_RERANKER_MODEL=bge-rerank +#向量数据库用户名 +Milvus_USER=user +#向量数据库密码 +Milvus_PASSWORD=password +#向量数据库地址 +Milvus_URI=http://172.18.30.122:19530 +#文档解析 +Mineru_URL=http://172.18.30.122:9988 diff --git a/app_pkg/__init__.py b/app_pkg/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app_pkg/app.py b/app_pkg/app.py new file mode 100644 index 0000000..2654ebb --- /dev/null +++ b/app_pkg/app.py @@ -0,0 +1,1358 @@ +from io import BytesIO +import logging +import os +import re +import tempfile +from fastapi import FastAPI, File, Path, UploadFile, HTTPException, Form, Request, Header +from fastapi.responses import JSONResponse, StreamingResponse +from fastapi.middleware.cors import CORSMiddleware +from pydantic import BaseModel +from dotenv import load_dotenv +from pathlib import Path as PATH +from starlette.datastructures import Headers +import httpx +import pdfplumber +from markdown_process.markdown_preprocess import process_pdf_logic, convert_doc_to_pdf, convert_docx_to_pdf +from markdown_process.split_markdown import hierarchical_save, split_text, save_md, split_page_chunk +from markdown_process.chunk_postprocess import context_chunk_process +from database.milvus_api import Milvus_Database, sanitize_collection_name +from modelsAPI.model_api import OpenaiAPI, query_rewrite, prepare_rag_prompt, rerank_text, rerank_3d,resetQuery +from typing import List, Optional +from collections import defaultdict +from fuzzywuzzy import fuzz, process +from collections import defaultdict,Counter +import uuid +import hanlp +from contentprocess.contentprocess import extract_unique_nouns_from_file +from itertools import groupby +import requests +app = FastAPI(max_request_size=1024 * 1024 * 10) +load_dotenv() + +logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') +logger = logging.getLogger(__name__) + +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], # Allow all origins + allow_credentials=True, + allow_methods=["*"], # Allow all HTTP methods + allow_headers=["*"], # Allow all headers +) +print("正在加载 HanLP 模型...") +HanLPmodel = hanlp.load(hanlp.pretrained.mtl.CLOSE_TOK_POS_NER_SRL_DEP_SDP_CON_ELECTRA_SMALL_ZH) + +@app.get("/debug/routes") +async def list_routes(): + return [{"path": route.path, "methods": route.methods} + for route in app.routes] + + +# class MarkdownRequest(BaseModel): +# pdf_file: UploadFile = File(...) # 接收Markdown格式的文本 +# database_name: Optional[str] = "JXTest" # 接收类型列表,类型应该是 ['01', '02', '03'] +# collection_name: Optional[str] = "MarkdownTest")# + +class SearchRequest(BaseModel): + query: Optional[str] = None + top_k: Optional[int] = 5 + database_name: Optional[str] = "JXTest" + collection_name: Optional[str] = "RAGTest" + query_vector: Optional[List[float]] = None + + +@app.post("/search") +async def search_markdown(request: SearchRequest): + logger.info(f"Received search query: {request.query}") + # 在这里实现搜索逻辑 + milvus_db = Milvus_Database( + user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), + uri=os.getenv("Milvus_URI") + ) + # query 改写 + query = query_rewrite(query=request.query) + query_vector = OpenaiAPI.get_embeddings(list(query)) + exist_database = milvus_db.list_databases() + if request.database_name not in exist_database: + logger.error(f"database {request.database_name} not exist, please create it first") + raise HTTPException(400, f" {request.database_name} not exist, please create it first") + milvus_db.using_database(database_name=request.database_name) + + search_results = milvus_db.search(collection_name=request.collection_name, query_vector=query_vector, + top_k=request.top_k) + reranker_result_list, relevance_scores = OpenaiAPI.rerank_query(query=request.query, documents=search_results, + top_n=request.top_k) + rag_prompt = prepare_rag_prompt(query=request.query, documents=reranker_result_list) + return StreamingResponse(OpenaiAPI.open_api_chat_stream(query=rag_prompt), media_type="text/plain") + + +class CreateCollectionRequest(BaseModel): + collection_name: str + database_name: str + chunk_type: str = "01" + + +@app.post("/create_collection") +async def create_collection(request: CreateCollectionRequest): + """ + 创建数据库和集合 + chunk_type: 01 表示智能存储方式,02表示按照章节存储,03表示按字数存储 + """ + collection_name = request.collection_name + collection_name = sanitize_collection_name(collection_name) + database_name = request.database_name + chunk_type = request.chunk_type + + logger.info(f"Received create collection request: {database_name},{collection_name}") + milvus_db = Milvus_Database(user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), uri=os.getenv("Milvus_URI")) + try: + # 创建数据库与collections + exist_database = milvus_db.list_databases() + if database_name not in exist_database: + res_milvus_create = milvus_db.create_database(database_name=database_name) + logger.info(f"create database result: {res_milvus_create}") + else: + logger.info(f"database {database_name} already exist") + + milvus_db.using_database(database_name=database_name) + exist_collection = milvus_db.has_collection(collection_name=collection_name, database_name=database_name) + if not exist_collection: + if chunk_type == "03": + save_title = False + else: + save_title = True + res_milvus_create = milvus_db.create_hybrid_collection(collection_name=collection_name, + database_name=database_name, save_title=save_title) + logger.info(f"create collection result: {res_milvus_create}") + + return JSONResponse(content={"message": "success", "code": "200"}, status_code=200) + else: + logger.info(f"collection {collection_name} already exist") + raise HTTPException(400, f"collection {collection_name} already exist") + except Exception as e: + logger.error(f"Error creating collection: {str(e)}") + raise HTTPException(500, "Error creating collection") + finally: + + milvus_db.close() + + +@app.get("/has_collection") +async def collection(database_name, collection_name): + milvus_db = Milvus_Database(user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), uri=os.getenv("Milvus_URI")) + try: + collection = milvus_db.has_collection(collection_name=collection_name, database_name=database_name) + return {"message": "success", "code": "200", "data": {"has_collection": collection}} + except Exception as e: + logger.error(f"Error getting collections: {str(e)}") + raise HTTPException(500, "Error getting collections") + finally: + milvus_db.close() + + +@app.delete("/delete_collection/{collection_name}") +async def delete_collection(collection_name: str, database_name: Optional[str]): + milvus_db = Milvus_Database(user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), uri=os.getenv("Milvus_URI")) + try: + collection_name = sanitize_collection_name(collection_name) + milvus_db.drop_collection(collection_name=collection_name, database_name=database_name) + return JSONResponse(content={"message": "success", "code": "200"}, status_code=200) + except Exception as e: + logger.error(f"Error deleting collection: {str(e)}") + raise HTTPException(500, "Error deleting collection") + finally: + milvus_db.close() + + +@app.get("/get_collections") +async def get_collections(database_name): + milvus_db = Milvus_Database(user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), uri=os.getenv("Milvus_URI")) + try: + collections = milvus_db.list_collections(database_name=database_name) + if collections: # 确保列表非空 + collections.pop(0) + return {"message": "success", "code": "200", "data": {"collections": collections}} + except Exception as e: + logger.error(f"Error getting collections: {str(e)}") + raise HTTPException(500, "Error getting collections") + finally: + milvus_db.close() + + +@app.post("/upload_pdf") +async def process_pdf(pdf_file: UploadFile = File(...), database_name: Optional[str] = Form("JXTest"), + collection_name: Optional[str] = Form("MarkdownTest"), chunk_type: str = "01", + chunk_size: int = 256, chunk_overlap: int = 50): + """ + 接收 PDF 文件并转发到解析服务 + chunk_type: list[str] 01: 智能分割 ; 02: 按照章节分割; 03: 按照字数分割 + chunk_size: int 按照字数分割 + chunk_overlap: int 分块重叠 + """ + logger.info( + f"Received PDF file: {pdf_file.filename},database_name : {database_name},collection_name : {collection_name}") + # 验证文件类型 + if not pdf_file.content_type.startswith("application/pdf"): + logger.error(f"Invalid file type: {pdf_file.content_type}") + raise HTTPException(400, "仅支持 PDF 文件") + filename = pdf_file.filename + save_title = True + milvus_db = Milvus_Database(user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), uri=os.getenv("Milvus_URI")) + try: + # 创建数据库与collections + + exist_database = milvus_db.list_databases() + if database_name not in exist_database: + res_milvus_create = milvus_db.create_database(database_name=database_name) + logger.info(f"create database result: {res_milvus_create}") + else: + logger.info(f"database {database_name} already exist") + + milvus_db.using_database(database_name=database_name) + exist_collection = milvus_db.has_collection(collection_name=collection_name) + if not exist_collection: + # 创建向量检索集合 + # res_milvus_create = milvus_db.create_collections(collection_name,drop_=False) + # 创建混检集合 + if chunk_type == "03": + save_title = False + res_milvus_create = milvus_db.create_hybrid_collection(collection_name=collection_name, + database_name=database_name, save_title=save_title) + logger.info(f"create collection result: {res_milvus_create}") + else: + logger.info(f"collection {collection_name} already exist") + + md_content, content_chunk_list = await process_pdf_logic(pdf_file) + logger.info("PDF file processed successfully") + # 以下部分需调整 + md_header_splits = split_text(resource=filename, mdDocs=md_content, logger=logger, database_name=database_name, + collection_name=collection_name, chunk_type=chunk_type, chunk_length=chunk_size, + chunk_overlap=chunk_overlap) + # md_header_splits = split_by_md_header(mdDocs=md_content,logger=logger,database_name=database_name,collection_name=collection_name) + logger.info("Markdown content split successfully") + + return {"message": "PDF save to Milvus successfully", "code": 200, + "data": {"md_head": md_header_splits, "md_content": md_content}} + + except httpx.HTTPStatusError as e: + logger.error(f"HTTP status error from parsing service: {e.response.text}") + raise HTTPException(e.response.status_code, f"解析服务返回错误: {e.response.text}") + except httpx.RequestError as e: + logger.error(f"Failed to connect to parsing service: {str(e)}") + raise HTTPException(503, f"无法连接到解析服务: {str(e)}") + except Exception as e: + logger.error(f"Internal server error: {str(e)}") + raise HTTPException(500, f"服务器内部错误: {str(e)}") + finally: + milvus_db.close() + + +@app.delete("/delete_resource/{resource}") +async def delete_resource(resource: str, collection_name, database_name: str, ): + """ + 删除指定数据库和集合 + """ + logger.info( + f"delete resource : {resource}, delete database_name : {database_name},collection_name : {collection_name}") + milvus_db = Milvus_Database( + user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), + uri=os.getenv("Milvus_URI") + ) + try: + milvus_db.using_database(database_name=database_name) + collection_name = sanitize_collection_name(collection_name) + res = milvus_db.delete_resource(collection_name=collection_name, resource=resource, database_name=database_name) + + return {"code": 200, "message": "success", "data": {"result": res}} + except Exception as e: + logger.error(f"Delete failed: {str(e)}", exc_info=True) + raise HTTPException( + status_code=500, + detail=f"删除失败: {str(e)}" + ) + finally: + milvus_db.close() + + +@app.post("/get_markdown") +async def get_markdown(file: UploadFile = File(...)): + filename = file.filename + file_ext = os.path.splitext(filename)[1].lower() + headers = Headers({"content-type": "application/pdf"}) + if file.content_type.startswith("application/pdf"): + logger.info(f"Received file: {filename}") + md_content, content_chunk_list = await process_pdf_logic(file) + logger.info("PDF file processed successfully") + if not md_content: + content = await file.read() + await file.seek(0) + md_content = "" + try: + with pdfplumber.open(BytesIO(content)) as pdf: + for page in pdf.pages: + md_content += page.extract_text() or "" + except Exception as e: + logger.error(f"Failed to parse PDF: {e}") + raise HTTPException( + status_code=400, + detail="PDF file read failed" + ) + # elif file.content_type == EXT_TO_CONTENT_TYPE[".docx"]: + elif file_ext == ".docx": + # 处理DOCX文件 + converted_path = await convert_docx_to_pdf(os.getenv("CONVERT_DOC_URL", "http://192.168.0.46:59070"), file) + + # 读取转换后的DOCX文件 + with open(converted_path, 'rb') as f: + converted_file = UploadFile(filename=f"{PATH(filename).stem}.pdf", file=f, headers=headers) + md_content, content_chunk_list = await process_pdf_logic(converted_file) + os.unlink(converted_path) + if not md_content: + content = await file.read() + await file.seek(0) + md_content = "" + try: + with pdfplumber.open(BytesIO(content)) as pdf: + for page in pdf.pages: + md_content += page.extract_text() or "" + except Exception as e: + logger.error(f"Failed to parse PDF: {e}") + raise HTTPException( + status_code=400, + detail="PDF file read failed") + # elif file.content_type == EXT_TO_CONTENT_TYPE[".doc"]: + elif file_ext == ".doc": + # 处理DOC文件,先转换为DOCX + try: + logger.info(f"Converting DOC file: {filename}") + converted_path = await convert_doc_to_pdf(os.getenv("CONVERT_DOC_URL", "http://192.168.0.46:59070"), file) + + # 读取转换后的DOCX文件 + with open(converted_path, 'rb') as f: + converted_file = UploadFile(filename=f"{PATH(filename).stem}.pdf", file=f, headers=headers) + md_content, content_chunk_list = await process_pdf_logic(converted_file) + + # 获取图片信息 + img_information = [chunk for chunk in content_chunk_list if chunk.get("type") == "image"] + + # 清理临时文件 + os.unlink(converted_path) + if not md_content: + content = await file.read() + await file.seek(0) + md_content = "" + try: + with pdfplumber.open(BytesIO(content)) as pdf: + for page in pdf.pages: + md_content += page.extract_text() or "" + except Exception as e: + logger.error(f"Failed to parse PDF: {e}") + raise HTTPException( + status_code=400, + detail="PDF file read failed") + + except Exception as e: + logger.error(f"Failed to convert DOC: {e}") + raise HTTPException( + status_code=400, + detail=f"DOC conversion failed: {str(e)}" + ) + else: + raise HTTPException( + status_code=400, + detail="Unsupported file type. Only PDF, DOC and DOCX are supported." + ) + img_information = [chunk for chunk in content_chunk_list if chunk.get("type") == "image"] + + return { + "message": "success", + "code": 200, + "data": { + "markdown_content": md_content, + "content_chunk_list": content_chunk_list, + "img_information": img_information + } + } + + +class SplitContextRequest(BaseModel): + file_name: str = "测试文件" + context: Optional[str] = "测试文本" + chunk_type: str = "01" + chunk_size: int = 1024 + chunk_overlap: int = 100 + max_level: Optional[int] = 3 + chunk_list: List[dict] = [] + + +@app.post("/split_result") +async def split_result(file: UploadFile = File(...), + chunk_type: str = Form("01"), + chunk_size: int = Form(1024), + chunk_overlap: int = Form(100), + max_level: Optional[int] = Form(3), + chunk_list: Optional[List[dict]] = Form([]) + ): + """ + 拆分结果 + """ + filename = file.filename + file_ext = os.path.splitext(filename)[1] + headers = Headers({"content-type": "application/pdf"}) + if file.content_type.startswith("application/pdf"): + logger.info(f"Received file: {filename}") + md_content, content_chunk_list = await process_pdf_logic(file) + logger.info("PDF file processed successfully") + elif file_ext == ".docx": + # 处理DOCX文件 + converted_path = await convert_docx_to_pdf(os.getenv("CONVERT_DOC_URL", "http://192.168.0.46:59070"), file) + + # 读取转换后的DOCX文件 + with open(converted_path, 'rb') as f: + converted_file = UploadFile(filename=f"{PATH(filename).stem}.pdf", file=f, headers=headers) + md_content, content_chunk_list = await process_pdf_logic(converted_file) + os.unlink(converted_path) + elif file_ext == ".docx": + # 处理DOC文件,先转换为DOCX + try: + logger.info(f"Converting DOC file: {filename}") + converted_path = await convert_doc_to_pdf(os.getenv("CONVERT_DOC_URL", "http://192.168.0.46:59070"), file) + + # 读取转换后的DOCX文件 + with open(converted_path, 'rb') as f: + converted_file = UploadFile(filename=f"{PATH(filename).stem}.pdf", file=f, headers=headers) + md_content, content_chunk_list = await process_pdf_logic(converted_file) + + # 清理临时文件 + os.unlink(converted_path) + + except Exception as e: + logger.error(f"Failed to convert DOC: {e}") + raise HTTPException( + status_code=400, + detail=f"DOC conversion failed: {str(e)}" + ) + else: + raise HTTPException( + status_code=400, + detail="Unsupported file type. Only PDF, DOC and DOCX are supported." + ) + if not md_content: + content = await file.read() + await file.seek(0) + md_content = "" + try: + with pdfplumber.open(BytesIO(content)) as pdf: + for page in pdf.pages: + md_content += page.extract_text() or "" + except Exception as e: + logger.error(f"Failed to parse PDF: {e}") + raise HTTPException( + status_code=400, + detail="PDF file read failed") + if chunk_list: + md_header_splits = split_page_chunk( + resource=filename, + content_chunk_list=content_chunk_list, + chunk_size=chunk_size, + chunk_overlap=chunk_overlap, + logger=logger, + max_level=max_level, + chunk_type=chunk_type + ) + else: + md_header_splits = split_text( + resource=filename, + mdDocs=md_content, + logger=logger, + chunk_type=chunk_type, + chunk_size=chunk_size, + chunk_overlap=chunk_overlap, + max_level=max_level + ) + return { + "message": "success", + "code": 200, + "data": { + "split_result": md_header_splits, + } + } + + +@app.post("/split_context") +async def split_context(request: SplitContextRequest): + """ + 拆分结果 + """ + filename = request.file_name + context = request.context + chunk_type = request.chunk_type + chunk_size = request.chunk_size + chunk_overlap = request.chunk_overlap + max_level = request.max_level + chunk_list = request.chunk_list + if chunk_list: + md_header_splits = split_page_chunk( + resource=filename, + content_chunk_list=chunk_list, + chunk_type=chunk_type, + chunk_size=chunk_size, + chunk_overlap=chunk_overlap, + logger=logger, + max_level=max_level + ) + else: + if context: + md_header_splits = split_text(resource=filename, mdDocs=context, + logger=logger, chunk_type=chunk_type, + chunk_size=chunk_size, chunk_overlap=chunk_overlap, + max_level=max_level) + return {"message": "sucess", "code": 200, "data": {"split_result": md_header_splits}} + + +@app.post("/split_context_chunk") +async def split_context_chunk(request: SplitContextRequest): + """ + 拆分结果 + """ + filename = request.file_name + context = request.context + chunk_type = request.chunk_type + chunk_size = request.chunk_size + chunk_overlap = request.chunk_overlap + max_level = request.max_level + chunk_list = request.chunk_list + md_header_splits = split_page_chunk( + resource=filename, + content_chunk_list=chunk_list, + chunk_type=chunk_type, + chunk_size=chunk_size, + chunk_overlap=chunk_overlap, + logger=logger, + max_level=max_level + ) + context_chunk_splits = context_chunk_process(markdown_context=context, chunks=md_header_splits) + # context_chunk_splits = OpenaiAPI().context_chunk_process(markdown_context=context,chunks=md_header_splits) + return {"message": "sucess", "code": 200, "data": {"split_result": context_chunk_splits}} + + +class InsertRequest(BaseModel): + split_list: list + collection_name: str + database_name: str # 默认值 + + +@app.post("/insert_md") +async def insert_md(request: InsertRequest): + """ + 插入md + """ + collection_name = request.collection_name + logger.info(f"get {collection_name}") + database_name = request.database_name + split_list = request.split_list + milvus_db = Milvus_Database( + user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), + uri=os.getenv("Milvus_URI") + ) + for split_result in split_list: + reource = split_result.get("resource") + text = milvus_db.get_text_by_resource(collection_name=collection_name, database_name=database_name, + resource=reource, logger=logger) + if text: + logger.info("已经存在相同的内容") + return {"code": 200, "message": "success", "data": {"result": split_list}} + else: + logger.info("内容不在库内,跳过后续查询") + break + try: + # if SPLIT_LIST: + # logger.info(f"Inserting {SPLIT_LIST}") + res = save_md(results=request.split_list, collection_name=collection_name, database_name=request.database_name) + # res = save_md(results=SPLIT_LIST,collection_name=collection_name,database_name=request.database_name) + return {"code": 200, "message": "success", "data": {"result": res}} + # else: + # return {"code":200,"message":"success","data":{"result":split_list}} + except Exception as e: + logger.error(f"Insert failed: {str(e)}", exc_info=True) + raise HTTPException(400, f"插入失败: {str(e)}") + + +@app.post("/hierarchical_insert") +async def hierarchical_insert(request: InsertRequest): + collection_name = request.collection_name + logger.info(f"get {collection_name}") + database_name = request.database_name + split_list = request.split_list + milvus_db = Milvus_Database( + user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), + uri=os.getenv("Milvus_URI") + ) + for split_result in split_list: + reource = split_result.get("resource") + text = milvus_db.get_text_by_resource(collection_name=collection_name, database_name=database_name, + resource=reource, logger=logger) + if text: + logger.info("已经存在相同的内容") + return {"code": 200, "message": "success", "data": {"result": split_list}} + else: + logger.info("内容不在库内,跳过后续查询") + break + try: + res = hierarchical_save(results=request.split_list, collection_name=collection_name, + database_name=request.database_name) + return {"code": 200, "message": "success", "data": {"result": res}} + # else: + # return {"code":200,"message":"success","data":{"result":split_list}} + except Exception as e: + logger.error(f"Insert failed: {str(e)}", exc_info=True) + raise HTTPException(400, f"插入失败: {str(e)}") + + +@app.post("/search_source") +async def search_source(request: SearchRequest): + """ + 搜索与给定查询最相关的 Markdown 文档 + """ + logger.info(f"Received search query: {request.query},collection_name: {request.collection_name}") + + # 初始化 Milvus 数据库 + milvus_db = Milvus_Database( + user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), + uri=os.getenv("Milvus_URI") + ) + + # 获取查询的向量表示 + # query = query_rewrite(request.query) + query = request.query + query = resetQuery(query) + logger.info(f"改写query:{query}") + query_vector = OpenaiAPI.get_embeddings(list(query)) + + collection_name = request.collection_name + final_results = [] + # 搜索相关文档 + search_results, search_resources, recall_results = milvus_db.hybrid_search( + collection_name=collection_name, + database_name=request.database_name, + query_vector=query_vector, + top_k=request.top_k, + query=query, + embedding_rate=0.4 + ) + logger.info(f"文本混合检索结果: {recall_results}") + if not recall_results: + search_results, search_resources, recall_results = milvus_db.embedding_search( + collection_name=collection_name, + query_vector=query_vector, + database_name=request.database_name, + top_k=request.top_k + ) + logger.info(f"文本纯向量检索结果: {search_results}") + + for recall_result in recall_results: + text_1 = recall_result["text"] + text_2 = query + score = OpenaiAPI.embedding_cosine_similarity(text_1, text_2) + recall_result["score"] = score + # recall_results = sorted(recall_results, key=lambda x: x["score"], reverse=True) + # for idx, item in enumerate(recall_results, start=1): + # item["index"] = idx + logger.info("------------------------------------") + logger.info(f"第一轮精排结果: {recall_results}") + recall_results = rerank_text(query, recall_results) + recall_results = sorted(recall_results, key=lambda x: x["score"], reverse=True) + for idx, item in enumerate(recall_results, start=1): + item["index"] = idx + threshold = 0.2 + recall_results = [item for item in recall_results if item.get('score', 0) > threshold] + logger.info("------------------------------------") + logger.info(f"第二轮精排结果: {recall_results}") + + return {"code": 200, "message": "success", "data": recall_results, "query_vector": query_vector} + +# 图谱检索服务地址(可通过环境变量覆盖) +GRAPH_SEARCH_URL = os.getenv("GRAPH_SEARCH_URL", "http://192.168.0.46:59085/search_graph") + + +async def call_graph_search(query: str, top_k: int = 10, graph_timeout: float = 30.0): + """ + 异步调用图谱检索接口,并解析返回的 data.results + """ + if not query: + return [] + + try: + # 使用较长超时时间,避免复杂图谱查询被过早中断 + async with httpx.AsyncClient(timeout=graph_timeout) as client: + resp = await client.post( + GRAPH_SEARCH_URL, + json={ + "query": query, + "top_k": top_k, + "graph_timeout": graph_timeout, + # 如需入口节点可在这里扩展: "entry_nodes": ... + }, + ) + resp.raise_for_status() + result = resp.json() + except httpx.RequestError as e: + # 打印更详细的错误信息,便于排查(连接失败 / 读超时等) + logger.error( + f"[call_graph_search] 请求图谱检索服务失败: {e.__class__.__name__} - {e}", + exc_info=True + ) + return [] + except httpx.HTTPStatusError as e: + logger.error(f"[call_graph_search] 图谱检索服务返回异常状态码: {e.response.status_code}, body={e.response.text}") + return [] + except Exception as e: + logger.error(f"[call_graph_search] 解析图谱检索结果失败: {e}", exc_info=True) + return [] + + # 按照约定结构提取 data.results + try: + data = result.get("data", {}) + if isinstance(data, dict): + graph_results = data.get("results", []) + else: + graph_results = [] + if not isinstance(graph_results, list): + graph_results = [] + return graph_results + except Exception as e: + logger.error(f"[call_graph_search] 提取 data.results 失败: {e}", exc_info=True) + return [] + + + +""" + reranker_result_list = OpenaiAPI.rerank_query( + query=query, + documents=search_results, + top_n=request.top_k + ) + # print("###########") + # print("reranker_result_list:",reranker_result_list) + + + for res in reranker_result_list: + index = res["index"] + resource,img_path = search_resources[index]["resource"],search_resources[index]["img_path"] + res["resource"] = resource + res["img_path"] = img_path + + #内容去重 + # 基于text字段去重 + seen_texts = set() + unique_results = [] + for res in reranker_result_list: + if res["text"] not in seen_texts: + seen_texts.add(res["text"]) + unique_results.append(res) + milvus_db.close() + return {"code": 200, "message": "success", "data": unique_results} +""" +class SearchBatchRequest(BaseModel): + queries: Optional[List[str]] = None # 新增:支持批量文本 + query_vectors: Optional[List[List[float]]] = None # 新增:支持批量向量 + top_k: Optional[int] = 5 + database_name: Optional[str] = "XIAN" + collection_name: Optional[str] = "RAGTest" + +@app.post("/search_batch") +async def search_source(request: SearchBatchRequest): + """ + 搜索与给定查询最相关的 Markdown 文档 + """ + # ✅ 修复:使用 request.queries 而不是 request.query + logger.info(f"Received search queries: {request.queries}, collection_name: {request.collection_name}") + + milvus_db = Milvus_Database( + user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), + uri=os.getenv("Milvus_URI") + ) + + # 处理文本或向量输入 + if request.queries: + query_texts = request.queries + try: + result = OpenaiAPI.batch_embeddings(query_texts) + query_vector = [item['embedding'] for item in result] + except Exception as e: + logger.error(f"Embedding failed: {e}") + raise HTTPException(status_code=500, detail="Failed to generate embeddings") + elif request.query_vectors: + query_texts = request.queries # 可能为空 + query_vector = request.query_vectors + else: + raise HTTPException(status_code=400, detail="You must provide either 'queries' or 'query_vectors'") + + # 执行混合搜索 + search_results, search_resources, recall_results = milvus_db.hybrid_search_batch( + collection_name=request.collection_name, + database_name=request.database_name, + query_vectors=query_vector, + top_k=request.top_k, + queries=query_texts, # 可为 None + embedding_rate=0.1 + ) + logger.info(f"3D 模型混合检索结果: {recall_results}") + + return {"code": 200, "message": "success", "data": recall_results} + +class Search3DtextRequest(BaseModel): + content : str + search3d_result : list + top_k: Optional[int] = 5 + database_name: Optional[str] = "XIAN" + collection_name: Optional[str] = "b9d47d5a6d66cbe2cd44a8ea4ad021fc" + + +@app.post("/search_3Dtext") +async def search_source(request: Search3DtextRequest): + content = request.content + search3d_result = request.search3d_result + model = HanLPmodel + allowed_resources = list(set([item['resource'] for item in search3d_result])) + SCORE_THRESHOLD = 0.3 + logger.info(f"Received search content: {content}, collection_name: {request.collection_name}") + + milvus_db = Milvus_Database( + user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), + uri=os.getenv("Milvus_URI") + ) + # 处理文本或向量输入 + if content: + query_texts = extract_unique_nouns_from_file(content,model=model) + try: + result = OpenaiAPI.batch_embeddings(query_texts) + query_vector = [item['embedding'] for item in result] + except Exception as e: + logger.error(f"Embedding failed: {e}") + raise HTTPException(status_code=500, detail="Failed to generate embeddings") + else: + raise HTTPException(status_code=400, detail="You must provide either 'content' ") + + # 执行混合搜索 + search_results, search_resources, recall_results = milvus_db.hybrid_search_batch( + collection_name=request.collection_name, + database_name=request.database_name, + query_vectors=query_vector, + top_k=request.top_k, + queries=query_texts, # 可为 None + embedding_rate=0.1 + ) + search_result = [] + for query_results in recall_results: + filtered_query_results = [ + item for item in query_results + if item["score"] >= SCORE_THRESHOLD and item["resource"] in allowed_resources + ] + search_result.append(filtered_query_results) + search_result = [sublist for sublist in search_result if sublist] + # for item in search_result[0]: + # if item["score"] >= 0.9: + # continue + # else: + # item["score"] += 0.1 + if search_result: + for item in search_result[0]: + if item["score"] < 0.9: + item["score"] += 0.1 + + logger.info(f"大模型生成内容零部件3D检索召回:{search_result}") + if search_result: + return {"code": 200, "message": "success", "data": search_result} + else: + return {"code": 200, "message": "success", "data": []} + +@app.post("/search_3D") +async def search_3D(request: SearchRequest): + """ + 搜索与给定查询最相关的 Markdown 文档 + """ + logger.info(f"Received search query: {request.query},collection_name: {request.collection_name}") + # 初始化 Milvus 数据库 + milvus_db = Milvus_Database( + user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), + uri=os.getenv("Milvus_URI") + ) + + # 获取查询的向量表示 + # query = query_rewrite(request.query) + if request.query: + query = request.query + # query_vector = OpenaiAPI.get_embeddings(list(query)) + # else: + # query_vector = request.query_vector + if request.query_vector: + query_vector = request.query_vector + else: + query_vector = OpenaiAPI.get_embeddings(list(query)) + + # 检查数据库是否存在 + # exist_database = milvus_db.list_databases() + # if request.database_name not in exist_database: + # logger.error(f"database {request.database_name} not exist, please create it first") + # raise HTTPException(400, f" {request.database_name} not exist, please create it first") + + # 使用指定数据库 + # milvus_db.using_database(database_name=request.database_name) + # collection_name = sanitize_collection_name(request.collection_name) + collection_name = request.collection_name + search_results, search_resources, recall_results = milvus_db.hybrid_search( + collection_name=collection_name, + database_name=request.database_name, + query_vector=query_vector, + top_k=request.top_k, + query=request.query, + embedding_rate=0.1 + ) + logger.info(f"3D 模型混合检索结果: {recall_results}") + + threshold = 0.2 + logger.info(f"阈值:{threshold}") + + search_result = [item for item in recall_results if item.get('score', 0) > threshold] + logger.info(f"精排召回第一轮:{search_result}") + search_result = rerank_3d(query, search_result) + search_result = [item for item in search_result if item.get('score', 0) > threshold] + logger.info(f"精排召回第二轮:{search_result}") + if search_result: + return {"code": 200, "message": "success", "data": search_result} + else: + return {"code": 200, "message": "success", "data": []} + + +class SearchChunkRequest(BaseModel): + resource: str + database_name: str + collection_name: str + + +@app.post("/search_chunk") +async def search_chunk(request: SearchChunkRequest): + milvus_db = Milvus_Database(user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), uri=os.getenv("Milvus_URI")) + results = milvus_db.get_chunk_by_resource(collection_name=request.collection_name, + database_name=request.database_name, resource=request.resource) + return {"code": 200, "message": "success", "data": results} + + +@app.post("/search") +async def search_markdown(request: Request, query: str, top_k: Optional[int] = 5, + database_name: Optional[str] = "JXTest", collection_name: Optional[str] = "RAGTest"): + """ + 搜索与给定查询最相关的 Markdown 文档 + """ + logger.info(f"Received search query: {query}") + # 在这里实现搜索逻辑,例如使用 Milvus 进行向量搜索 + milvus_db = Milvus_Database(user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), uri=os.getenv("Milvus_URI")) + query_vector = OpenaiAPI.get_embeddings(list(query)) + exist_database = milvus_db.list_databases() + if database_name not in exist_database: + logger.error(f"database {database_name} not exist, please create it first") + raise HTTPException(400, f" {database_name} not exist, please create it first") + # 混搜部分 + search_results = milvus_db.hybrid_search(query_vector=query_vector, query=query, top_k=top_k, + collection_name=collection_name, database_name=database_name) + reranker_result_list, relevance_scores = OpenaiAPI.rerank_query(query=query, documents=search_results, top_n=top_k) + rag_prompt = prepare_rag_prompt(query=query, documents=reranker_result_list) + return StreamingResponse(OpenaiAPI.open_api_chat_stream(query=rag_prompt), media_type="text/plain") + + +@app.post("/search_context_resource") +def search_context_resource(request: SearchRequest): + logger.info(f"Received search query: {request.query},collection_name: {request.collection_name}") + + # 初始化 Milvus 数据库 + milvus_db = Milvus_Database( + user=os.getenv("Milvus_USER", "user"), + password=os.getenv("Milvus_PASSWORD", "password"), + uri=os.getenv("Milvus_URI") + ) + + # 获取查询的向量表示 + # query = query_rewrite(request.query) + query = request.query + query_vector = OpenaiAPI.get_embeddings(list(query)) + + # 检查数据库是否存在 + # exist_database = milvus_db.list_databases() + # if request.database_name not in exist_database: + # logger.error(f"database {request.database_name} not exist, please create it first") + # raise HTTPException(400, f" {request.database_name} not exist, please create it first") + + # 使用指定数据库 + # milvus_db.using_database(database_name=request.database_name) + # collection_name = sanitize_collection_name(request.collection_name) + collection_name = request.collection_name + final_results = [] + # 搜索相关文档 + search_results, search_resources, recall_results = milvus_db.hierarchical_search( + collection_name=collection_name, + database_name=request.database_name, + query_vector=query_vector, + top_k=request.top_k, + query=query + ) + logger.info(f"文本混合检索结果: {recall_results}") + + if not recall_results: + search_results, search_resources, recall_results = milvus_db.embedding_search( + collection_name=collection_name, + query_vector=query_vector, + database_name=request.database_name, + top_k=request.top_k + ) + logger.info(f"文本纯向量检索结果: {search_results}") + + logger.info(f"recall_results: {recall_results}") + return {"code": 200, "message": "success", "data": recall_results, "query_vector": query_vector} + + +class HightLightRequest(BaseModel): + markdown_content: str + chunk: str + + +@app.post("/get_highlight_markdown") +async def get_hightlight(request: HightLightRequest): + logger.info(f"Received chunk :{request.chunk}") + + def find_best_match(text, chunk, threshold=10): + """返回得分最高的单个匹配位置及得分""" + normalized_text = text + normalized_chunk = chunk + + # 使用滑动窗口确保找到全局最佳匹配 + best_match = None + best_score = 0 + + # 窗口大小设为待匹配文本长度的2倍 + window_size = min(len(normalized_chunk), len(normalized_text)) + step = len(normalized_chunk) # 滑动步长 + + for i in range(1, len(normalized_text) - len(normalized_chunk), step): + window = normalized_text[i:i + window_size] + + # 使用多种匹配策略组合 + current_score = 0 + current_score += fuzz.ratio(normalized_chunk, window) * 0.3 + current_score += fuzz.partial_ratio(normalized_chunk, window) * 0.4 + current_score += fuzz.token_sort_ratio(normalized_chunk, window) * 0.3 + + if current_score > best_score: + best_score = current_score + # 记录在原始文本中的位置(而非预处理后的位置) + raw_start = text.find(window[i:i + len(normalized_chunk)]) + raw_end = raw_start + len(normalized_chunk) + best_match = (raw_start, raw_end, best_score) + + # 仅返回超过阈值的匹配 + return best_match if best_score >= threshold else None + + def make_flexible_pattern(chunk): + """生成允许换行符和空格数量不一致的正则模式""" + # 转义特殊字符(保留 \n 和空格) + escaped = re.escape(chunk) + + # 将 \n 替换为 \s*(匹配任意空白,包括 \n 和空格) + flexible_pattern = escaped.replace(r"\n", r"\s+") # \s+ 确保至少一个空白 + + # 进一步优化:如果原文本有连续空格,允许匹配变体 + flexible_pattern = re.sub(r"\\ ", r"\\s+", flexible_pattern) + + # 完整模式:必须完整匹配整个chunk(避免部分匹配) + return re.compile(rf"\b{flexible_pattern}\b", flags=re.DOTALL) + + def highlight_markdown(text, chunk): + """在文本中找到最相似的部分并高亮""" + logger.info(f"chunk length: {len(chunk)}") + # 把换行符变成可选匹配(\s* 匹配任意空白) + # pattern = re.compile(re.escape(clean_chunk)) + pattern = make_flexible_pattern(chunk) + match = pattern.search(text) + + if match: + matched_text = match.group() + return text.replace(matched_text, f'{matched_text}') + else: + logger.info("无法匹配,尝试调整换行符...") + chunk_0 = chunk.split(";")[0] + chunk_1 = chunk.split("\n")[0] + if chunk_0 in text: + start = text.find(chunk_0) + return text[ + :start] + f'{text[start:start + len(chunk)]}' + text[ + start + len( + chunk):] + elif chunk_1 in text: + start = text.find(chunk_1) + return text[ + :start] + f'{text[start:start + len(chunk)]}' + text[ + start + len( + chunk):] + + first_line = chunk.split('\n')[0].split(";")[0] # 获取首行内容 + if first_line and first_line in text: + # 找到首行位置 + start = text.find(first_line) + # 找到chunk在原文中的结束位置(可能跨越多行) + end = start + for line in chunk.split('\n'): + line_end = text.find(line, end) + if line_end == -1: + break + end = line_end + len(line) + + # 确保至少匹配了首行 + if end > start: + return text[:start] + f'{text[start:end]}' + text[ + end:] + else: + logger.warning("仍然无法匹配!,采用模糊匹配") + result = find_best_match(text, chunk) + if not result: + return text + + start, end, score = result + logger.info(f"最佳匹配得分: {score}") + + # 确保不重复高亮(处理嵌套匹配) + if '{text[start:end]}' + \ + text[end:] + return text + + highlighted = highlight_markdown( + # markdown_content, + request.markdown_content, + # all_content, + request.chunk + ) + # logger.info(f"hightlighted text :{hightlighted_text}") + return {"code": 200, "message": "success", "data": [{"highlighted_markdown": highlighted}]} + + +import shutil +from fastapi.staticfiles import StaticFiles +app.mount("/converted_pdfs", StaticFiles(directory="converted_pdfs"), name="converted_pdfs") +@app.post("/word_to_pdf") +async def get_markdown(file: UploadFile = File(...)): + filename = file.filename + file_ext = os.path.splitext(filename)[1].lower() + file_name = os.path.splitext(filename)[0].lower() + pdf_url = None + + if file_ext == ".docx" or file_ext == ".doc": + converted_path = await convert_docx_to_pdf( + os.getenv("CONVERT_DOC_URL", "http://192.168.0.46:59070"), file + ) + + try: + output_dir = "converted_pdfs" + os.makedirs(output_dir, exist_ok=True) + + pdf_filename = f"{file_name}_{uuid.uuid4().hex[:8]}.pdf" + persistent_pdf_path = os.path.join(output_dir, pdf_filename) + shutil.copy2(converted_path, persistent_pdf_path) + + # 构造可访问的 HTTP URL + base_url = os.getenv("BASE_URL", "http://192.168.0.46:59079") + pdf_url = f"{base_url}/converted_pdfs/{pdf_filename}" + logger.info(f"DOCX converted to PDF, accessible at: {pdf_url}") + + except Exception as e: + logger.error(f"Failed to save PDF file: {e}") + raise HTTPException(status_code=500, detail="Failed to process and save PDF.") + + else: + raise HTTPException( + status_code=400, + detail="Unsupported file type. Only DOC and DOCX are supported." + ) + + return { + "message": "success", + "code": 200, + "data": { + "pdf_url": pdf_url, # 返回完整可下载链接 + } + } + + +class hightlightboxRequest(BaseModel): + split_chunk: List[dict] = [] + content_middle: List[dict] = [] + + +@app.post("/get_highlight_bbox") +async def get_hightlight(request: hightlightboxRequest): + split_chunk = request.split_chunk + content_middle = request.content_middle + + + def sort_by_page_idx_frequency(data): + + page_idx_counts = Counter(item['page_idx'] for item in data) + + # 获取出现频率最高的前三个 page_idx(如果有并列,取前三个) + top_three_page_idxs = {page_idx for page_idx, count in page_idx_counts.most_common(3)} + + # 筛选出所有属于前三高频 page_idx 的原始记录 + filtered_data = [item for item in data if item['page_idx'] in top_three_page_idxs] + + # 在这些高频记录中找出最大的 page_idx + max_page_idx = max(top_three_page_idxs) # 因为 top_three_page_idxs 是前三高频的键 + + return filtered_data, max_page_idx + + def find_and_filter_records(record_list, text): + # 尝试找到第一个“content”作为text前缀的记录的索引 + start_index = next((i for i, record in enumerate(record_list) if + record.get('content', '').strip() and text.startswith(record['content'])), None) + # 如果找到了这样的记录,返回从这条记录开始到最后的所有记录 + if start_index is not None: + record_list = record_list[start_index:] + + # 如果没有找到以“content”开头的记录,则尝试找到第一个“content”作为text后缀的记录的索引 + end_index = next((i for i, record in enumerate(record_list) if + record.get('content', '').strip() and text.endswith(record['content'])), None) + # + # # 如果找到了这样的记录,返回从这条记录开始到最后的所有记录 + if end_index is not None: + record_list = record_list[:end_index+1] + + # 如果既没有找到匹配的前缀也没有找到匹配的后缀,则返回原list + return record_list + + + + def getbbox(result_devide, content_middle): + for idx, item in enumerate(content_middle): + item['id'] = idx + 1 # 从1开始编号 + + # for item in content_middle: + # print(item) + resource = result_devide[0]['resource'] + for re in result_devide: + if 'chunklist' not in re: + re['chunklist'] = [] + temp_chunk_list = [] + + for record in content_middle: + if record['type'] == 'text': + if record['content'] in re['text']: + temp_chunk_list.append(record) + elif record['type'] == 'image': + if record['image_path'] in re['text']: + temp_chunk_list.append(record) + elif record['type'] == 'table': + if record['html'] in re['text']: + temp_chunk_list.append(record) + re['chunklist'] = temp_chunk_list + result_devide = [item for item in result_devide if item['chunklist']] + + length_result_devide = len(result_devide) + result = {} + + for i in range(length_result_devide): + temp_uuid = str(uuid.uuid4()) + result[temp_uuid] = [] + chunk = result_devide[i]['text'] + result_devide[i]["id"] = temp_uuid + + # 假设输入数据存储在名为data的列表中 + data = result_devide[i]['chunklist'] # 您的数据列表 + + sorted_data = sorted(data, key=lambda x: x['id']) + + # 步骤2:使用 groupby 找出连续 id 的组 + groups = [] + current_group = [] + + for item in sorted_data: + if not current_group: + current_group.append(item) + else: + # 检查当前 id 是否与前一个连续 + if item['id'] == current_group[-1]['id'] + 1: + current_group.append(item) + else: + # 不连续,保存当前组并开始新组 + if len(current_group) >= 1: # 可设最小长度过滤 + groups.append(current_group) + current_group = [item] + + # 别忘了最后一个组 + if current_group: + groups.append(current_group) + + # 按组的长度从大到小排序 + sorted_groups = sorted(groups, key=len, reverse=True) + + sorted_data, most_common_page_idx1 = sort_by_page_idx_frequency(sorted_groups[0]) + sorted_filtered_items = sorted( + (item for sublist in sorted_groups for item in sublist if + most_common_page_idx1 - 1 <= item['page_idx'] <= most_common_page_idx1 + 1), + key=lambda x: x['id'] + ) + sorted_filtered_items = find_and_filter_records(sorted_filtered_items, chunk) + if not sorted_filtered_items : + most_common_page_idx = 0 + else: + most_common_page_idx = sorted_filtered_items[0]['page_idx'] + + for chunk in sorted_filtered_items: + chunk['resource'] = resource + result[temp_uuid].append(chunk) + result_devide[i]['page_idx'] = most_common_page_idx + # result[temp_uuid] =sorted_data + # + data = [] + for ins in result_devide: + data.append( + { + 'id': ins['id'], + 'Header_1': ins['Header_1'], + 'Header_2': ins['Header_2'], + 'Header_3': ins['Header_3'], + 'text': ins['text'], + 'resource': resource, + 'img_path': ins['img_path'], + 'origin_text': ins['origin_text'], + 'page': None, + 'page_idx': ins['page_idx'] + } + + ) + return data, result + + data, result = getbbox(split_chunk, content_middle) + if not data or not result: + return {"code": 200, "message": "success", "data": []} + else: + return {"code": 200, "message": "success", "data": [{"data": data, "result": result}]} + + +if __name__ == "__main__": + import uvicorn + + uvicorn.run(app, host="0.0.0.0", port=9079) diff --git a/app_pkg/ceshi.py b/app_pkg/ceshi.py new file mode 100644 index 0000000..5872484 --- /dev/null +++ b/app_pkg/ceshi.py @@ -0,0 +1,62 @@ +from phrasetree.tree import Tree +import hanlp +import requests +content = """ +汽车底盘主要包括以下几个部分: +1. **车架**:作为汽车的基础骨架,支撑着发动机、车身和其它部件。 +2. **悬架系统**:包括弹簧和减震器等,用于缓冲路面不平带来的震动。 +3. **转向系统**:使汽车能够按照驾驶员的意愿改变行驶方向。 +4. **制动系统**:用于减速或停车,包括制动踏板、制动总泵、制动片等。 +5. **传动系统**:将发动机的动力传递给车轮,包括离合器、变速器、驱动轴等。 +例如,陕汽德龙X5000 重卡的底盘采用了高强度轻量化设计的车架及悬架系统,通过低碳合金钢和 CAE 模拟优化设计,等宽直大梁车架结构和少片变截面钢板弹簧结构设计,屈服强度提高近 $50\%$,承载力、稳定性、平顺性远优于国内同级车型。底盘应用大量轻量化材料及工艺,整车轻量化水平行业领先。 +相关图示:![汽车底盘](http://192.168.0.46:9988/output/images/950efc3ec46e98cf719e76c672bc7a59ba23ea5184276b2cad1a28f763e8b3ce.jpg) +""" +print("正在加载 HanLP 模型...") +HanLPmodel = hanlp.load(hanlp.pretrained.mtl.CLOSE_TOK_POS_NER_SRL_DEP_SDP_CON_ELECTRA_SMALL_ZH) + +def extract_unique_nouns_from_file(content, model): + """ + 从指定的文本文件中提取所有唯一的名词(NN),去除 '**' 并去重,保持首次出现顺序。 + + 参数: + file_path (str): 输入文本文件的路径。 + model: HanLP 预训练模型实例(可选)。如果未提供,则自动加载默认模型。 + + 返回: + list: 提取到的唯一名词字符串列表,如 ['转向节', '螺栓', ...] + """ + + # 1. 使用 HanLP 进行句法分析,获取成分句法树(con) + doc = model(content) + + # 2. 定义递归函数提取所有叶子节点为字符串的 NN 节点 + def extract_nn(tree): + res = [] + if isinstance(tree, Tree): + if tree.label() == 'NN' and len(tree) == 1 and isinstance(tree[0], str): + res.append(['NN', [tree[0]]]) + else: + for child in tree: + res.extend(extract_nn(child)) + return res + + # 3. 提取所有 NN 节点 + nn_list = extract_nn(doc['con']) + print(f'共提取到 NN 节点:{len(nn_list)}') + + # 4. 过滤掉词为 '**' 的项 + filtered = [rec for rec in nn_list if rec[1][0] != '**'] + + # 5. 去重,保持顺序 + seen = set() + unique_nn = [] + for rec in filtered: + key = (rec[0], rec[1][0]) # 使用 (标签, 词语) 作为唯一键 + if key not in seen: + seen.add(key) + unique_nn.append(rec[1][0]) + + print(f'共提取到 NN 节点(去重并过滤 ** 后):{len(unique_nn)}') + return unique_nn +fenci_word = extract_unique_nouns_from_file(content,model=HanLPmodel) +print(fenci_word) diff --git a/app_pkg/contentprocess/contentprocess.py b/app_pkg/contentprocess/contentprocess.py new file mode 100644 index 0000000..fce9007 --- /dev/null +++ b/app_pkg/contentprocess/contentprocess.py @@ -0,0 +1,48 @@ +from phrasetree.tree import Tree +import hanlp + +def extract_unique_nouns_from_file(content, model): + """ + 从指定的文本文件中提取所有唯一的名词(NN),去除 '**' 并去重,保持首次出现顺序。 + + 参数: + file_path (str): 输入文本文件的路径。 + model: HanLP 预训练模型实例(可选)。如果未提供,则自动加载默认模型。 + + 返回: + list: 提取到的唯一名词字符串列表,如 ['转向节', '螺栓', ...] + """ + + # 1. 使用 HanLP 进行句法分析,获取成分句法树(con) + doc = model(content) + + # 2. 定义递归函数提取所有叶子节点为字符串的 NN 节点 + def extract_nn(tree): + res = [] + if isinstance(tree, Tree): + if tree.label() == 'NN' and len(tree) == 1 and isinstance(tree[0], str): + res.append(['NN', [tree[0]]]) + else: + for child in tree: + res.extend(extract_nn(child)) + return res + + # 3. 提取所有 NN 节点 + nn_list = extract_nn(doc['con']) + # print(f'共提取到 NN 节点:{len(nn_list)}') + + # 4. 过滤掉词为 '**' 的项 + filtered = [rec for rec in nn_list if rec[1][0] != '**'] + + # 5. 去重,保持顺序 + seen = set() + unique_nn = [] + for rec in filtered: + key = (rec[0], rec[1][0]) # 使用 (标签, 词语) 作为唯一键 + if key not in seen: + seen.add(key) + unique_nn.append(rec[1][0]) + + print(f'共提取到 (去重并过滤后)关键词:{len(unique_nn)}') + print(f'输出提取到的关键词:{unique_nn}') + return unique_nn diff --git a/app_pkg/converted_pdfs/122-06a0014-b01001_发动机-图解目录_0f8631ec.pdf b/app_pkg/converted_pdfs/122-06a0014-b01001_发动机-图解目录_0f8631ec.pdf new file mode 100644 index 0000000..bff41ca Binary files /dev/null and b/app_pkg/converted_pdfs/122-06a0014-b01001_发动机-图解目录_0f8631ec.pdf differ diff --git a/app_pkg/converted_pdfs/122-06a0014-b01001_发动机-图解目录_5b08bbf4.pdf b/app_pkg/converted_pdfs/122-06a0014-b01001_发动机-图解目录_5b08bbf4.pdf new file mode 100644 index 0000000..f7fbf9e Binary files /dev/null and b/app_pkg/converted_pdfs/122-06a0014-b01001_发动机-图解目录_5b08bbf4.pdf differ diff --git a/app_pkg/converted_pdfs/122-06a0014-b01001_发动机-图解目录_7105b60e.pdf b/app_pkg/converted_pdfs/122-06a0014-b01001_发动机-图解目录_7105b60e.pdf new file mode 100644 index 0000000..37816e1 Binary files /dev/null and b/app_pkg/converted_pdfs/122-06a0014-b01001_发动机-图解目录_7105b60e.pdf differ diff --git a/app_pkg/converted_pdfs/122-06a0014-b01001_发动机-图解目录_c70d577c.pdf b/app_pkg/converted_pdfs/122-06a0014-b01001_发动机-图解目录_c70d577c.pdf new file mode 100644 index 0000000..f5d7556 Binary files /dev/null and b/app_pkg/converted_pdfs/122-06a0014-b01001_发动机-图解目录_c70d577c.pdf differ diff --git a/app_pkg/converted_pdfs/122-06a0014-b01001_发动机-图解目录_dc1d1aa0.pdf b/app_pkg/converted_pdfs/122-06a0014-b01001_发动机-图解目录_dc1d1aa0.pdf new file mode 100644 index 0000000..3592ecb Binary files /dev/null and b/app_pkg/converted_pdfs/122-06a0014-b01001_发动机-图解目录_dc1d1aa0.pdf differ diff --git a/app_pkg/converted_pdfs/图查询界面接口说明_ded8f0cc.pdf b/app_pkg/converted_pdfs/图查询界面接口说明_ded8f0cc.pdf new file mode 100644 index 0000000..e14ec2f Binary files /dev/null and b/app_pkg/converted_pdfs/图查询界面接口说明_ded8f0cc.pdf differ diff --git a/app_pkg/database/__init__.py b/app_pkg/database/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app_pkg/database/milvus_api.py b/app_pkg/database/milvus_api.py new file mode 100644 index 0000000..040dbef --- /dev/null +++ b/app_pkg/database/milvus_api.py @@ -0,0 +1,860 @@ +import json +import os +from pymilvus import ( + connections, + utility, + FieldSchema, + CollectionSchema, + DataType, + Collection, + MilvusClient, + db, + Function, + FunctionType, + AnnSearchRequest, + WeightedRanker +) +from typing import List, Dict, Union, Optional, Any +from pypinyin import lazy_pinyin +from typing import List, Dict, Tuple, Optional + + +class Milvus_Database: + def __init__(self, user=os.getenv("Milvus_USER", "root"), password=os.getenv("Milvus_PASSWORD", "Milvus"), + uri=os.getenv("Milvus_URI")): + self.client = MilvusClient( + uri=uri, + token=f"{user}:{password}" + ) + # self.conn = connections.connect(host="172.18.127.124",port=19530,user=user,password=password) + + # database = db.create_database(database_name) + # self.client.list_databases() + + def create_database(self, database_name) -> List[str]: + database = self.client.create_database(database_name) + return self.client.list_databases() + + def list_databases(self) -> List[str]: + return self.client.list_databases() + + def using_database(self, database_name): + self.client.use_database(database_name) + + def create_hierarchical_collection(self, collection_name, database_name): + self.client.use_database(database_name) + schema = MilvusClient.create_schema( + auto_id=True, + enable_dynamic_field=True, + ) + + analyzer_params_custom = { + "tokenizer": "jieba", + "type": "chinese", + "filter": ["cnalphanumonly"] + } + schema.add_field(field_name="id", datatype=DataType.INT64, is_primary=True) + # 层次召回中的摘要部分 + schema.add_field(field_name="text", datatype=DataType.VARCHAR, max_length=65535, enable_analyzer=True, + analyzer_params=analyzer_params_custom) + # 层次召回中的完整文档 + schema.add_field(field_name="origin_text", datatype=DataType.VARCHAR, max_length=65535, enable_analyzer=True, + analyzer_params=analyzer_params_custom) + schema.add_field(field_name="bm_25", datatype=DataType.SPARSE_FLOAT_VECTOR) + # Qwen3-8B-Embedding 维度4096 + schema.add_field(field_name="vector", datatype=DataType.FLOAT_VECTOR, dim=4096, ) + schema.add_field(field_name="resource", datatype=DataType.VARCHAR, max_length=1024, default_value='EMPTY'), + schema.add_field(field_name="img_path", datatype=DataType.VARCHAR, max_length=4096, default_value="EMPTY") + schema.add_field(field_name="page_idx", datatype=DataType.INT64, default_value=0) + schema.add_field(field_name="origin_id", datatype=DataType.VARCHAR, max_length=256, default_value="EMPTY") + # schema.add_field(field_name="img_information",datatype=DataType.Json,default_value="EMPTY") + schema.add_field(field_name="header_1", datatype=DataType.VARCHAR, max_length=1024, default_value='EMPTY') + schema.add_field(field_name="header_2", datatype=DataType.VARCHAR, max_length=1024, default_value='EMPTY') + schema.add_field(field_name="header_3", datatype=DataType.VARCHAR, max_length=1024, default_value='EMPTY') + + bm25_function = Function( + name="bm25_emb", # Function name + input_field_names=["text"], # Name of the VARCHAR field containing raw text data + output_field_names=["bm_25"], + # Name of the SPARSE_FLOAT_VECTOR field reserved to store generated embeddings + function_type=FunctionType.BM25, + ) + schema.add_function(bm25_function) + index_params = self.client.prepare_index_params() + # Add indexes + index_params.add_index( + field_name="vector", + index_name="vector_index", + index_type="HNSW", # "IVF_FLAT". AUTOINDEX + metric_type="IP", # COSINE + # params={"nlist": 128}, + ) + + index_params.add_index( + field_name="bm_25", + index_name="bm_25_index", + index_type="SPARSE_INVERTED_INDEX", # Index type for sparse vectors + metric_type="BM25", # Set to `BM25` when using function to generate sparse vectors + params={"inverted_index_algo": "DAAT_MAXSCORE"}, + # The ratio of small vector values to be dropped during indexing + ) + + self.client.create_collection( + collection_name=collection_name, + schema=schema, + index_params=index_params + ) + self.release_collection(collection_name) + return "collections created" + + def create_hybrid_collection(self, collection_name, database_name: str, save_title: bool = True): + """ + 中文专用混合检索 表 + """ + self.client.use_database(database_name) + schema = MilvusClient.create_schema( + auto_id=True, + enable_dynamic_field=True, + ) + + analyzer_params_custom = { + "tokenizer": "jieba", + "type": "chinese", + "filter": ["cnalphanumonly"] + } + schema.add_field(field_name="id", datatype=DataType.INT64, is_primary=True) + schema.add_field(field_name="text", datatype=DataType.VARCHAR, max_length=65535, enable_analyzer=True, + analyzer_params=analyzer_params_custom) + schema.add_field(field_name="origin_text", datatype=DataType.VARCHAR, max_length=65535, default_value="EMPTY") + schema.add_field(field_name="bm_25", datatype=DataType.SPARSE_FLOAT_VECTOR) + schema.add_field(field_name="vector", datatype=DataType.FLOAT_VECTOR, dim=1024, ) + schema.add_field(field_name="resource", datatype=DataType.VARCHAR, max_length=1024, default_value='EMPTY') + schema.add_field(field_name="img_path", datatype=DataType.VARCHAR, max_length=4096, default_value="EMPTY") + schema.add_field(field_name="page_idx", datatype=DataType.INT64, default_value=0) + schema.add_field(field_name="origin_id", datatype=DataType.VARCHAR, max_length=256, default_value="EMPTY") + # schema.add_field(field_name="img_information",datatype=DataType.Json,default_value="EMPTY") + if save_title: + schema.add_field(field_name="header_1", datatype=DataType.VARCHAR, max_length=1024, default_value='EMPTY') + schema.add_field(field_name="header_2", datatype=DataType.VARCHAR, max_length=1024, default_value='EMPTY') + schema.add_field(field_name="header_3", datatype=DataType.VARCHAR, max_length=1024, default_value='EMPTY') + + bm25_function = Function( + name="bm25_emb", # Function name + input_field_names=["text"], # Name of the VARCHAR field containing raw text data + output_field_names=["bm_25"], + # Name of the SPARSE_FLOAT_VECTOR field reserved to store generated embeddings + function_type=FunctionType.BM25, + ) + schema.add_function(bm25_function) + index_params = self.client.prepare_index_params() + # Add indexes + index_params.add_index( + field_name="vector", + index_name="vector_index", + index_type="HNSW", # "IVF_FLAT". AUTOINDEX + metric_type="IP", # COSINE + # params={"nlist": 128}, + ) + + index_params.add_index( + field_name="bm_25", + index_name="bm_25_index", + index_type="SPARSE_INVERTED_INDEX", # Index type for sparse vectors + metric_type="BM25", # Set to `BM25` when using function to generate sparse vectors + params={"inverted_index_algo": "DAAT_MAXSCORE"}, + # The ratio of small vector values to be dropped during indexing + ) + + self.client.create_collection( + collection_name=collection_name, + schema=schema, + index_params=index_params + ) + self.release_collection(collection_name) + return "collections created" + + def drop_collection(self, collection_name, database_name: str): + self.client.use_database(database_name) + self.load_collection(collection_name=collection_name) + self.client.drop_collection(collection_name) + + def load_collection(self, collection_name): + self.client.load_collection(collection_name=collection_name) + res = self.client.get_load_state( + collection_name=collection_name + ) + return res + + def release_collection(self, collection_name): + self.client.release_collection(collection_name=collection_name) + res = self.client.get_load_state( + collection_name=collection_name + ) + return res + + def delete_resource(self, collection_name, resource, database_name): + self.client.use_database(database_name) + self.load_collection(collection_name) + res = self.client.delete( + collection_name=collection_name, + filter="resource == '{}'".format(resource), + ) + return res + + def has_collection(self, collection_name, database_name): + """ + Before using list collection, You need to using using_database method first + """ + self.using_database(database_name=database_name) + return self.client.has_collection(collection_name) + + def list_collections(self, database_name): + """ + Before using list collection, You need to using using_database method first + """ + self.client.use_database(database_name) + return self.client.list_collections() + + def hierarchical_insert(self, params, collection_name: str, database_name: str): + try: + self.client.use_database(database_name) + self.load_collection(collection_name) + res = self.client.insert( + collection_name=collection_name, + data=params + ) + return res + finally: + try: + self.client.release_collection(collection_name) + except Exception as e: + print(f"释放集合失败: {e}") + + def hybrid_insert(self, params, collection_name: str, database_name: str): + try: + self.client.use_database(database_name) + self.load_collection(collection_name) + res = self.client.insert( + collection_name=collection_name, + data=params + ) + return res + finally: + try: + self.client.release_collection(collection_name) + except Exception as e: + print(f"释放集合失败: {e}") + + # def insert(self, params,collection_name:str = "MarkdownTest",database_name:str = "JXTest"): + # """ + # params: List[List] + # 例子: [[id, header_1, header_2, header_3, text, vector]] + # """ + # # self.client.insert(collection_name=collection_name, data=params) + # db.using_database(database_name) + # collection = Collection(collection_name) + # mr = collection.insert(params) + # return mr + def get_all_chunk_by_resource(self, collection_name, database_name, resource): + """ + return List : + """ + try: + self.client.using_database(db_name=database_name) + if not self.client.has_collection(collection_name): + return [] + else: + self.client.load_collection(collection_name) + iterator = self.client.query_iterator( + collection_name=collection_name, + batch_size=5, + filter=f"resource like \"{resource}\"", + output_fields=["id", "text", "resource", "Header_1", "Header_2", "Header_3"], + ) + + results = [] + + while True: + result = iterator.next() + if not result: + iterator.close() + break + results += result + return results + finally: + # 3. 无论成功还是失败,最终释放集合 + try: + self.client.release_collection(collection_name) + except Exception as e: + print(f"释放集合失败: {e}") + + def get_chunk_by_resource(self, collection_name, database_name, resource): + """ + return List : + """ + try: + self.client.using_database(db_name=database_name) + if not self.client.has_collection(collection_name): + return [] + else: + self.client.load_collection(collection_name) + iterator = self.client.query_iterator( + collection_name=collection_name, + batch_size=5, + filter=f"resource like \"{resource}\"", + output_fields=["id", "text", "resource"], + ) + + results = [] + + while True: + result = iterator.next() + if not result: + iterator.close() + break + results += result + return results + finally: + # 3. 无论成功还是失败,最终释放集合 + try: + self.client.release_collection(collection_name) + except Exception as e: + print(f"释放集合失败: {e}") + + def get_chunk_by_id(self, collection_name, database_name, id): + """ + return List : + """ + try: + self.client.using_database(db_name=database_name) + if not self.client.has_collection(collection_name): + return [] + else: + self.client.load_collection(collection_name) + iterator = self.client.query_iterator( + collection_name=collection_name, + batch_size=5, + filter=f"id=={id + 1}", + output_fields=["id", "text", "resource"], + ) + + results = [] + + while True: + result = iterator.next() + if not result: + iterator.close() + break + results += result + return results + finally: + # 3. 无论成功还是失败,最终释放集合 + try: + self.client.release_collection(collection_name) + except Exception as e: + print(f"释放集合失败: {e}") + + def get_text_by_resource(self, collection_name, database_name, resource, logger): + """ + return List : + """ + + # def prepare_milvus_filter( resource): + # """安全构造 Milvus 过滤条件""" + # escaped_resource = json.dumps(resource)[1:-1] + # return f'resource="{escaped_resource}"' + def prepare_milvus_filter(resource): + """安全构造 Milvus 过滤条件""" + # 替换资源名称中的双引号 + safe_resource = resource.replace('"', '\\"') + return f'resource == "{safe_resource}"' + + self.client.using_database(db_name=database_name) + + # 检查集合是否存在 + if not self.client.has_collection(collection_name): + logger.info(f"集合 {collection_name} 不存在") + return [] + else: + self.client.load_collection(collection_name) + try: + # 2. 执行查询 + filter_expr = prepare_milvus_filter(resource) + iterator = self.client.query_iterator( + collection_name=collection_name, + batch_size=5, + filter=filter_expr, + output_fields=["id", "resource", "text"], + ) + + results = [] + while True: + try: + result = iterator.next() + if not result: + break + results.extend(result) + except StopIteration: + break + except Exception as e: + print(f"查询迭代出错: {e}") + break + + return results + + except Exception as e: + print(f"查询失败: {e}") + return [] + + finally: + # 3. 无论成功还是失败,最终释放集合 + try: + self.client.release_collection(collection_name) + except Exception as e: + print(f"释放集合失败: {e}") + + def embedding_search(self, query_vector: List, top_k=3, collection_name: str = "MarkdownTest", + database_name: str = "JXTest") -> List[dict | str]: + """ + 纯向量检索 + """ + self.client.use_database(database_name) + self.load_collection(collection_name) + res = self.client.search( + collection_name=collection_name, + anns_field="vector", + limit=top_k, + data=[query_vector], + search_params={ + "metric_type": "IP", # COSINE + "params": {"ef": 64} # "params": {"nprobe": 10} + }, + output_fields=["id", "Header_1", "Header_2", "Header_3", "text", "resource", "img_path", "page_idx", + "origin_id", "*"]) + search_results = [] + search_resources = [] + recall_results = [] + try: + for i, hits in enumerate(res): + for j, hit in enumerate(hits): + id = hit["entity"].get("id") + search_result_text = hit["entity"].get("text") + distance = hit["distance"] + page_idx = hit["entity"].get("page_idx") + search_result_header_1 = hit["entity"].get("header_1") + search_result_header_2 = hit["entity"].get("header_2") + search_result_header_3 = hit["entity"].get("header_3") + search_result_resource = hit["entity"].get("resource") + search_result_img_path = hit["entity"].get("img_path") + origin_id = hit["entity"].get("origin_id") + dynamic_field_name = hit["entity"].get_properties() + # search_score = hit["entity"].get("score") + # search_result_img_information = hit["entity"].get("img_information") + + if search_result_header_1 is None: + search_result_header_2 = "" + else: + search_result_header_1 = f"#{search_result_header_1}" + if search_result_header_2 is None: + search_result_header_2 = "" + else: + search_result_header_2 = f"##{search_result_header_2}" + if search_result_header_3 is None: + search_result_header_3 = "" + else: + search_result_header_3 = f"###{search_result_header_3}" + # search_result = f"#{search_result_header_1}\n{search_result_header_2}\n{search_result_header_3}\n\n{search_result_text}" + search_result = search_result_text + search_results.append(search_result) + search_resources.append({"resource": search_result_resource, "img_path": search_result_img_path}) + # search_resources.append({"resource":search_result_resource,"img_path":search_result_img_path,"img_information":search_result_img_imformation}) + recall_results.append( + {"id": origin_id, "index": i + j + 1, "text": search_result, "resource": search_result_resource, + "img_path": search_result_img_path, "score": distance, "page_idx": page_idx, + "dynamic_field_name": dynamic_field_name}) + # recall_results.append({"index":i+j+1,"text":search_result,"resource":search_result_resource,"img_path":search_result_img_path,"img_information":search_result_img_imformation}) + return search_results, search_resources, recall_results + finally: + # 3. 无论成功还是失败,最终释放集合 + try: + self.client.release_collection(collection_name) + except Exception as e: + print(f"释放集合失败: {e}") + + def hierarchical_search(self, query_vector: List, query, top_k=3, collection_name: str = "MarkdownTest", + database_name: str = "JXTest") -> List[dict | str]: + """ + 层级检索 + """ + try: + self.client.use_database(database_name) + self.load_collection(collection_name) + search_param_1 = { + "data": [query_vector], + "anns_field": "vector", + "param": { + "metric_type": "IP", # COSINE + "params": {"ef": 64} # "params": {"nprobe": 10} + }, + "limit": top_k + } + request_1 = AnnSearchRequest(**search_param_1) + + search_param_2 = { + "data": [query], + "anns_field": "bm_25", + "param": { + "metric_type": "BM25", + }, + "limit": top_k + } + request_2 = AnnSearchRequest(**search_param_2) + + reqs = [request_1, request_2] + ranker = WeightedRanker(0.3, 0.7) + res = self.client.hybrid_search( + collection_name=collection_name, + reqs=reqs, + ranker=ranker, + limit=top_k, + output_fields=["id", "Header_1", "Header_2", "Header_3", "text", "resource", "img_path", "page_idx", + "origin_id"] + # output_fields=["Header_1","Header_2","Header_3","text","resource","img_path","img_information"] + ) + + search_results = [] + search_resources = [] + recall_results = [] + for i, hits in enumerate(res): + for j, hit in enumerate(hits): + id = hit["entity"].get("id") + search_result_text = hit["entity"].get("text") + distance = hit["distance"] + page_idx = hit["entity"].get("page_idx") + text = hit["entity"].get("text") + search_result_header_1 = hit["entity"].get("header_1") + search_result_header_2 = hit["entity"].get("header_2") + search_result_header_3 = hit["entity"].get("header_3") + search_result_resource = hit["entity"].get("resource") + search_result_img_path = hit["entity"].get("img_path") + origin_id = hit["entity"].get("origin_id") + origin_text = hit["entity".get("origin_text")] + # search_result_img_information = hit["entity"].get("img_information") + + if search_result_header_1 is None: + search_result_header_2 = "" + else: + search_result_header_1 = f"#{search_result_header_1}" + if search_result_header_2 is None: + search_result_header_2 = "" + else: + search_result_header_2 = f"##{search_result_header_2}" + if search_result_header_3 is None: + search_result_header_3 = "" + else: + search_result_header_3 = f"###{search_result_header_3}" + # search_result = f"#{search_result_header_1}\n{search_result_header_2}\n{search_result_header_3}\n\n{search_result_text}" + search_result = search_result_text + search_results.append(search_result) + search_resources.append({"resource": search_result_resource, "img_path": search_result_img_path}) + # search_resources.append({"resource":search_result_resource,"img_path":search_result_img_path,"img_information":search_result_img_imformation}) + # recall_results.append({"index":i+j+1,"id":origin_id,"text":origin_text,"resource":search_result_resource,"img_path":search_result_img_path,"score":distance,"page_idx":page_idx}) + recall_results.append( + {"index": i + j + 1, "id": origin_id, "text": text, "resource": search_result_resource, + "img_path": search_result_img_path, "score": distance, "page_idx": page_idx}) + self.release_collection(collection_name) + return search_results, search_resources, recall_results + finally: + try: + self.client.release_collection(collection_name) + except Exception as e: + print(f"释放集合失败: {e}") + + def hybrid_search(self, query_vector: List, query, top_k=3, collection_name: str = "MarkdownTest", + database_name: str = "JXTest", embedding_rate=0.3) -> List[dict | str]: + """ + + """ + try: + self.client.use_database(database_name) + self.load_collection(collection_name) + search_param_1 = { + "data": [query_vector], + "anns_field": "vector", + "param": { + "metric_type": "IP", # COSINE + "params": {"ef": 64} # "params": {"nprobe": 10} + }, + "limit": top_k + } + request_1 = AnnSearchRequest(**search_param_1) + + search_param_2 = { + "data": [query], + "anns_field": "bm_25", + "param": { + "metric_type": "BM25", + }, + "limit": top_k + } + request_2 = AnnSearchRequest(**search_param_2) + + reqs = [request_1, request_2] + ranker = WeightedRanker(float(embedding_rate), 1 - float(embedding_rate)) + res = self.client.hybrid_search( + collection_name=collection_name, + reqs=reqs, + ranker=ranker, + limit=top_k, + output_fields=["id", "Header_1", "Header_2", "Header_3", "text", "resource", "img_path", "page_idx", + "origin_id", "origin_text"] + # output_fields=["Header_1","Header_2","Header_3","text","resource","img_path","img_information"] + ) + + search_results = [] + search_resources = [] + recall_results = [] + for i, hits in enumerate(res): + for j, hit in enumerate(hits): + id = hit["entity"].get("id") + search_result_text = hit["entity"].get("text") + distance = hit["distance"] + page_idx = hit["entity"].get("page_idx") + search_result_header_1 = hit["entity"].get("Header_1") + search_result_header_2 = hit["entity"].get("Header_2") + search_result_header_3 = hit["entity"].get("Header_3") + search_result_resource = hit["entity"].get("resource") + search_result_img_path = hit["entity"].get("img_path") + origin_id = hit["entity"].get("origin_id") + header_1_num = len(search_result_header_1) if search_result_header_1 else 0 + header_2_num = len(search_result_header_2) if search_result_header_2 else 0 + header_3_num = len(search_result_header_3) if search_result_header_3 else 0 + origin_text = hit["entity"].get("origin_text") + # search_result_img_information = hit["entity"].get("img_information") + + if search_result_header_1 is None: + search_result_header_2 = "" + else: + search_result_header_1 = f"#{search_result_header_1}" + if search_result_header_2 is None: + search_result_header_2 = "" + else: + search_result_header_2 = f"##{search_result_header_2}" + if search_result_header_3 is None: + search_result_header_3 = "" + else: + search_result_header_3 = f"###{search_result_header_3}" + # search_result = f"#{search_result_header_1}\n{search_result_header_2}\n{search_result_header_3}\n\n{search_result_text}" + search_result = search_result_text + origin_text = search_result[header_1_num + header_2_num + header_3_num + 3:] + search_results.append(search_result) + search_resources.append({"resource": search_result_resource, "img_path": search_result_img_path}) + + # 获取片段的下文,并且拼接 + # next_chunk = self.get_chunk_by_id(collection_name=collection_name,database_name=database_name,id =id) + + # next_text = next_chunk[0].get("text") + + # search_result += next_text + # origin_text += next_text + # search_resources.append({"resource":search_result_resource,"img_path":search_result_img_path,"img_information":search_result_img_imformation}) + recall_results.append( + {"index": i + j + 1, "id": origin_id, "text": search_result, "resource": search_result_resource, + "img_path": search_result_img_path, "score": distance, "page_idx": page_idx, + "origin_text": origin_text}) + # recall_results.append({"index":i+j+1,"text":search_result,"resource":search_result_resource,"img_path":search_result_img_path,"img_information":search_result_img_imformation}) + self.release_collection(collection_name) + return search_results, search_resources, recall_results + finally: + try: + self.client.release_collection(collection_name) + except Exception as e: + print(f"释放集合失败: {e}") + + # return search_results + + def hybrid_search_batch( + self, + query_vectors: List[List[float]], + queries: List[str], + top_k: int = 3, + collection_name: str = "MarkdownTest", + database_name: str = "JXTest", + embedding_rate: float = 0.3 + ) -> Tuple[List[List[Dict]], List[List[Dict]], List[List[Dict]]]: + """ + 执行批量混合检索(稠密向量 + BM25 稀疏检索),对每个查询分别进行 hybrid search。 + + Args: + query_vectors (List[List[float]]): 每个查询对应的稠密向量列表,形状为 [N, dim] + queries (List[str]): 原始文本查询列表,长度为 N + top_k (int): 返回每个查询的 top-k 结果 + collection_name (str): 集合名称 + database_name (str): 数据库名称 + embedding_rate (float): 稠密向量检索结果的权重(BM25 权重 = 1 - embedding_rate) + + Returns: + Tuple[ + List[List[str]]: 每个查询对应的结果文本列表(外层 list 是 query 数量,内层是 top-k 结果), + List[List[dict]]: 每个查询对应的资源信息列表 , + List[List[dict]]: 每个查询对应的完整召回详情列表(含 score、id、origin_text 等) + ] + """ + if len(query_vectors) != len(queries): + raise ValueError("query_vectors 和 queries 的数量必须一致") + + try: + self.client.use_database(database_name) + self.load_collection(collection_name) + + all_search_results = [] # [[res1_q1, res2_q1], [res1_q2, ...]] + all_search_resources = [] + all_recall_results = [] + + for i, (vec, text) in enumerate(zip(query_vectors, queries)): + try: + # 构建稠密向量请求 + req1 = AnnSearchRequest( + data=[vec], + anns_field="vector", + param={"metric_type": "IP", "params": {"ef": 64}}, + limit=top_k + ) + + # 构建稀疏向量请求(BM25) + req2 = AnnSearchRequest( + data=[text], + anns_field="bm_25", + param={"metric_type": "BM25"}, + limit=top_k + ) + + # 混合搜索 + ranker = WeightedRanker(embedding_rate, 1 - embedding_rate) + res = self.client.hybrid_search( + collection_name=collection_name, + reqs=[req1, req2], + ranker=ranker, + limit=top_k, + output_fields=[ + "id", "Header_1", "Header_2", "Header_3", "text", "resource", + "img_path", "page_idx", "origin_id", "origin_text" + ], + timeout=30 + ) + + # 解析单个查询的结果 + search_results = [] + search_resources = [] + recall_results = [] + + for j, hit in enumerate(res[0]): # res 是 List[List[Hit]], res[0] 对应第一个 request 的 hits + entity = hit["entity"] + id_val = entity.get("id") + origin_id = entity.get("origin_id") + text_val = entity.get("text") or "" + header_1 = entity.get("Header_1") or "" + header_2 = entity.get("Header_2") or "" + header_3 = entity.get("Header_3") or "" + resource = entity.get("resource") + img_path = entity.get("img_path") + page_idx = entity.get("page_idx") + distance = hit["distance"] + origin_text = entity.get("origin_text") or text_val + + # 格式化标题 + header_1 = f"#{header_1}" if header_1 else "" + header_2 = f"##{header_2}" if header_2 else "" + header_3 = f"###{header_3}" if header_3 else "" + + # 组合内容(可根据需要调整) + combined_text = "\n".join(filter(None, [header_1, header_2, header_3, text_val])).strip() + + search_results.append(combined_text) + search_resources.append({"resource": resource, "img_path": img_path}) + + recall_results.append({ + "keyword": text, + "index": j + 1, + "id": origin_id, + "text": combined_text, + "resource": resource, + "img_path": img_path, + "score": distance, + "page_idx": page_idx, + "origin_text": origin_text + }) + + all_search_results.append(search_results) + all_search_resources.append(search_resources) + all_recall_results.append(recall_results) + + except Exception as e: + print(f"第 {i + 1} 个查询 '{text}' 检索失败: {e}") + # 失败时返回空列表占位 + all_search_results.append([]) + all_search_resources.append([]) + all_recall_results.append([]) + + return all_search_results, all_search_resources, all_recall_results + + except Exception as e: + print(f"批量混合检索整体失败: {e}") + raise + + finally: + try: + self.client.release_collection(collection_name) + except Exception as e: + print(f"释放集合失败: {e}") + # return search_results + + def close(self): + self.client.close() + + +def sanitize_collection_name(name: str) -> str: + """ + 中文转换为拼音 + """ + + def is_valid_milvus_collection_name(name: str) -> bool: + """检查名称是否符合 Milvus 集合命名规则""" + import re + pattern = r'^[a-zA-Z_][a-zA-Z0-9_]*$' # 首字符必须是字母或_,后续可以是字母、数字、_ + return bool(re.fullmatch(pattern, name)) + + if is_valid_milvus_collection_name(name): + return name + pinyin = "_".join(lazy_pinyin(name)) + # 确保首字符是字母或下划线 + if not pinyin[0].isalpha() and pinyin[0] != "_": + pinyin = f"_{pinyin}" + return pinyin + + +##应用示例 +# if __name__ == '__main__': +# #创建collection +# database = Milvus_Database("XIAN") + +# result = database.create_connection("MarkdownTest",drop_=False) +# print(result) +# print(database.list_partitions("MarkdownTest")) + + + # 创建db + # from pymilvus import connections, db + # # + # conn = Milvus_Database(user='root', + # password='Milvus', + # uri="http://192.168.0.46:19530") + # print(conn.list_collections("XIAN")) + +# conn = connections.connect(user='root', +# password='Milvus', +# uri="http://172.18.30.165:19530") + +# database = db.create_database("JXTest") +# db.using_database("JXTest") + diff --git a/app_pkg/examples/__init__.py b/app_pkg/examples/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app_pkg/examples/convert_word_pdf.py b/app_pkg/examples/convert_word_pdf.py new file mode 100644 index 0000000..b1df1c6 --- /dev/null +++ b/app_pkg/examples/convert_word_pdf.py @@ -0,0 +1,177 @@ +from fastapi import UploadFile +import os +from typing import Optional +import tempfile +import requests +import time +from tqdm import tqdm +from pathlib import Path + +class ProgressFileReader: + def __init__(self, file_path, progress_bar): + self.file = open(file_path, 'rb') + self.progress_bar = progress_bar + + def read(self, size=-1): + data = self.file.read(size) + if data: + self.progress_bar.update(len(data)) + return data + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + self.file.close() +async def convert_doc_to_pdf(api_url: str, file: UploadFile, timeout: int = 300) -> Optional[str]: + """ + 将DOC文件转换为pdf + + 参数: + api_url: 转换服务的URL (如 "http://172.18.127.124:8000") + file: 要转换的UploadFile对象 + timeout: 请求超时时间(秒) + """ + try: + with tempfile.NamedTemporaryFile(delete=False, suffix=".doc") as tmp_doc: + content = await file.read() + tmp_doc.write(content) + tmp_path = tmp_doc.name + + file_name = file.filename + file_size = os.path.getsize(tmp_path) + output_name = Path(file_name).stem + ".pdf" + + with tqdm(total=file_size, unit='B', unit_scale=True, desc="上传进度") as pbar: + with ProgressFileReader(tmp_path, pbar) as file_reader: + files = {'file': (file_name, file_reader)} + params = {'src': 'doc', 'to': 'pdf'} + + response = requests.post( + f"{api_url}/transfer", + files=files, + params=params, + timeout=timeout + ) + + if response.status_code == 200: + with tempfile.NamedTemporaryFile(delete=False, suffix=".pdf") as tmp_docx: + tmp_docx.write(response.content) + output_path = tmp_docx.name + + os.unlink(tmp_path) + + return output_path + else: + raise Exception(f"转换失败: {response.text}") + + except requests.exceptions.Timeout: + raise Exception(f"请求超时(超过{timeout}秒)") + except requests.exceptions.RequestException as e: + raise Exception(f"请求错误: {str(e)}") + except Exception as e: + # 确保临时文件被清理 + if 'tmp_path' in locals() and os.path.exists(tmp_path): + os.unlink(tmp_path) + if 'output_path' in locals() and os.path.exists(output_path): + os.unlink(output_path) + raise Exception(f"转换过程中出错: {str(e)}") + +async def convert_docx_to_pdf(api_url: str, file: UploadFile, timeout: int = 300) -> Optional[str]: + """ + 将DOCX文件转换为PDF(解决中文缺失问题) + + 参数: + api_url: 转换服务的URL (如 "http://172.18.127.124:8000") + file: 要转换的UploadFile对象 + timeout: 请求超时时间(秒) + """ + try: + # 创建临时文件保存上传的DOCX + with tempfile.NamedTemporaryFile(delete=False, suffix=".docx") as tmp_docx: + content = await file.read() + tmp_docx.write(content) + tmp_path = tmp_docx.name + + # 获取文件信息 + file_name = file.filename + file_size = os.path.getsize(tmp_path) + output_name = Path(file_name).stem + ".pdf" + + print(f"正在转换: {file_name} ({file_size/1024:.1f} KB) -> PDF") + start_time = time.time() + + # 使用带进度条的文件读取器 + with tqdm(total=file_size, unit='B', unit_scale=True, desc="上传进度") as pbar: + with ProgressFileReader(tmp_path, pbar) as file_reader: + files = {'file': (file_name, file_reader)} + params = { + 'src': 'docx', + 'to': 'pdf', + 'font': 'SimSun', + 'encoding': 'utf-8' + } + + response = requests.post( + f"{api_url}/transfer", + files=files, + params=params, + timeout=timeout + ) + + # 处理响应 + if response.status_code == 200: + + with tempfile.NamedTemporaryFile(delete=False, suffix=".pdf") as tmp_pdf: + tmp_pdf.write(response.content) + output_path = tmp_pdf.name + + + if os.path.getsize(output_path) < 1024: # 如果PDF文件过小 + raise Exception("生成的PDF可能不包含有效内容") + + elapsed = time.time() - start_time + print(f"\n转换成功! 保存为: {output_path}") + print(f"总耗时: {elapsed:.2f}秒") + + os.unlink(tmp_path) + + return output_path + else: + raise Exception(f"转换失败: {response.text}") + + except requests.exceptions.Timeout: + raise Exception(f"请求超时(超过{timeout}秒)") + except requests.exceptions.RequestException as e: + raise Exception(f"请求错误: {str(e)}") + except Exception as e: + # 确保临时文件被清理 + if 'tmp_path' in locals() and os.path.exists(tmp_path): + os.unlink(tmp_path) + if 'output_path' in locals() and os.path.exists(output_path): + os.unlink(output_path) + raise Exception(f"转换过程中出错: {str(e)}") + + + +#调用示例: +async def split_result(file: UploadFile = File(...), + chunk_type: str = Form("01"), + chunk_size: int = Form(256), + chunk_overlap: int = Form(50), + max_level: Optional[int]=Form(3)): + """ + 拆分结果 + """ + filename = file.filename + file_ext = os.path.splitext(filename)[1] + + if file_ext == ".docx": + # 处理DOCX文件 + converted_path = await convert_docx_to_pdf(os.getenv("CONVERT_DOC_URL","http://172.18.127.124:8000"), file) + + # 读取转换后的DOCX文件 + with open(converted_path, 'rb') as f: + converted_file = UploadFile(filename=f"{PATH(filename).stem}.pdf", file=f,headers=headers) + #调用Mineru + md_content = await process_pdf_logic(converted_file) \ No newline at end of file diff --git a/app_pkg/examples/create_collections.py b/app_pkg/examples/create_collections.py new file mode 100644 index 0000000..f7e3f56 --- /dev/null +++ b/app_pkg/examples/create_collections.py @@ -0,0 +1,28 @@ +from pymilvus import CollectionSchema, FieldSchema, DataType +from pymilvus import Collection, db, connections,utility + +def create_collections(collections_name,database_name : str ="JXTest"): + db.using_database(database_name) + + id = FieldSchema(name="id", dtype=DataType.INT64, is_primary=True) + text = FieldSchema(name="text", dtype=DataType.VARCHAR, max_length=4096) + header_1 = FieldSchema(name="header_1", dtype=DataType.VARCHAR, max_length=256, default_value='EMPTY') + header_2 = FieldSchema(name="header_2", dtype=DataType.VARCHAR, max_length=256, default_value='EMPTY') + header_3 = FieldSchema(name="header_3", dtype=DataType.VARCHAR, max_length=256, default_value='EMPTY') + vector = FieldSchema(name="vector", dtype=DataType.FLOAT_VECTOR, dim=1024,) + + schema = CollectionSchema( + fields=[id, header_1, header_2, header_3, text, vector], + auto_id=True, + enable_dynamic_field=True + ) + index_params = { + "metric_type": "L2", + "index_type": "IVF_FLAT", #FLAT + "params": {"nlist": 128} + } + collection = Collection(name=collections_name, schema=schema, using='default', shards_num=2) + collection.create_index(field_name="vector", index_params=index_params) + + utility.index_building_progress("word_vector") + return "collections created" \ No newline at end of file diff --git a/app_pkg/examples/create_database.py b/app_pkg/examples/create_database.py new file mode 100644 index 0000000..36d0b23 --- /dev/null +++ b/app_pkg/examples/create_database.py @@ -0,0 +1,58 @@ +# from pymilvus import Collection, utility, connections, db +# from pymilvus import CollectionSchema, FieldSchema, DataType +# from pymilvus import Collection, db, connections + +# conn = connections.connect(host="172.18.127.124", port=19530) +# # database = db.create_database("sample_db") +# print(db.list_database()) + +# db.using_database("sample_db") + +# # m_id = FieldSchema(name="m_id", dtype=DataType.INT64, is_primary=True,) +# # embeding = FieldSchema(name="embeding", dtype=DataType.FLOAT_VECTOR, dim=768,) +# # count = FieldSchema(name="count", dtype=DataType.INT64,) +# # desc = FieldSchema(name="desc", dtype=DataType.VARCHAR, max_length=256,) +# # schema = CollectionSchema( +# # fields=[m_id, embeding, desc, count], +# # description="Test embeding search", +# # enable_dynamic_field=True +# # ) + +# # collection_name = "word_vector" +# # collection = Collection(name=collection_name, schema=schema, using='default', shards_num=2) + +# index_params = { +# "metric_type": "IP", +# "index_type": "IVF_FLAT", +# "params": {"nlist": 1024} +# } + +# collection = Collection("word_vector") +# collection.create_index( +# field_name="embeding", +# index_params=index_params +# ) + +# utility.index_building_progress("word_vector") + + +from pymilvus import Collection, db, connections +import numpy as np + +conn = connections.connect(host="172.18.107.78", port=19530) +database = db.create_database("XIAN") +print(db.list_database()) +# db.using_database("sample_db") +# coll_name = 'word_vector' + +# mids, embedings, counts, descs = [], [], [], [] +# data_num = 100 +# for idx in range(0, data_num): +# mids.append(idx) +# embedings.append(np.random.normal(0, 0.1, 768).tolist()) +# descs.append(f'random num {idx}') +# counts.append(idx) + +# collection = Collection(coll_name) +# mr = collection.insert([mids, embedings, descs, counts]) +# print(mr) \ No newline at end of file diff --git a/app_pkg/examples/create_hybrid_collection.py b/app_pkg/examples/create_hybrid_collection.py new file mode 100644 index 0000000..8657c26 --- /dev/null +++ b/app_pkg/examples/create_hybrid_collection.py @@ -0,0 +1,118 @@ +from pymilvus import CollectionSchema, FieldSchema, DataType,client +from pymilvus import Collection, db, connections,utility,Function,FunctionType +from pymilvus import ( + MilvusClient, DataType +) + +def new_create_coll(): + client = MilvusClient( + uri="http://172.18.107.78:19530", + token="root:Milvus" + ) + client.use_database("JXTest") + + schema = MilvusClient.create_schema( + auto_id=True, + enable_dynamic_field=True, + ) + + analyzer_params_custom = { + "tokenizer": "jieba", + "type": "chinese", + "filter": ["cnalphanumonly"] +} + + schema.add_field(field_name="id", datatype=DataType.INT64, is_primary=True) + schema.add_field(field_name="text", datatype=DataType.VARCHAR, max_length=1000,enable_analyzer=True,analyzer_params=analyzer_params_custom) + schema.add_field(field_name="sparse", datatype=DataType.SPARSE_FLOAT_VECTOR) + schema.add_field(field_name="dense", datatype=DataType.FLOAT_VECTOR, dim=5) + + bm25_function = Function( + name="text_bm25_emb", # Function name + input_field_names=["text"], # Name of the VARCHAR field containing raw text data + output_field_names=["sparse"], # Name of the SPARSE_FLOAT_VECTOR field reserved to store generated embeddings + function_type=FunctionType.BM25, + ) + + schema.add_function(bm25_function) + + index_params = client.prepare_index_params() + + # Add indexes + index_params.add_index( + field_name="dense", + index_name="dense_index", + index_type="AUTOINDEX",#"IVF_FLAT" + metric_type="COSINE", #L2 + params={"nlist": 128}, + ) + + index_params.add_index( + field_name="sparse", + index_name="sparse_index", + index_type="SPARSE_INVERTED_INDEX", # Index type for sparse vectors + metric_type="BM25", # Set to `BM25` when using function to generate sparse vectors + params={"inverted_index_algo": "DAAT_MAXSCORE"}, # The ratio of small vector values to be dropped during indexing + ) + + client.create_collection( + collection_name="hybrid_search_collection", + schema=schema, + index_params=index_params + ) + return "Sucessful" + + + +def create_collections(collections_name,database_name : str ="JXTest"): + db.using_database(database_name) + + id = FieldSchema(name="id", dtype=DataType.INT64, is_primary=True) + text = FieldSchema(name="text", dtype=DataType.VARCHAR, max_length=4096,enable_analyzer=True) + header_1 = FieldSchema(name="header_1", dtype=DataType.VARCHAR, max_length=256, default_value='EMPTY') + header_2 = FieldSchema(name="header_2", dtype=DataType.VARCHAR, max_length=256, default_value='EMPTY') + header_3 = FieldSchema(name="header_3", dtype=DataType.VARCHAR, max_length=256, default_value='EMPTY') + vector = FieldSchema(name="vector", dtype=DataType.FLOAT_VECTOR, dim=1024,) + sparse = FieldSchema(name="sparse_bm25", dtype=DataType.SPARSE_FLOAT_VECTOR) + schema = CollectionSchema( + fields=[id, header_1, header_2, header_3, text, vector,sparse], + auto_id=True, + enable_dynamic_field=True + ) + index_params = { + "field_name": "vector", + "index_name": "vector_index", + "metric_type": "L2", + "index_type": "IVF_FLAT", #FLAT + "params": {"nlist": 128}, + "field_name":"sparse_bm25", + "index_name":"sparse_bm25_index", + "index_type":"SPARSE_WAND", + "metric_type":"BM25", + "params":{ + "inverted_index_algo": "DAAT_MAXSCORE", # Algorithm for building and querying the index. Valid values: DAAT_MAXSCORE, DAAT_WAND, TAAT_NAIVE. + "bm25_k1": 1.2, + "bm25_b": 0.75 + } + + } + bm25_function = Function( + name="bm25", + function_type=FunctionType.BM25, + input_field_names=["text"], + output_field_names="sparse_bm25", + ) + schema.add_function(bm25_function) + + collection = Collection(name=collections_name, schema=schema, using='default', shards_num=2) + collection.create_index(field_name="vector", index_params=index_params) + + utility.index_building_progress("Hybrid") + return "collections created" + + +if __name__ == "__main__": + # conn = connections.connect(host="172.18.107.78",port=19530,user="user",password="Milvus") + # res = create_collections("HybirdTest","JXTest") + # print(res) + res = new_create_coll() \ No newline at end of file diff --git a/app_pkg/examples/create_index.py b/app_pkg/examples/create_index.py new file mode 100644 index 0000000..af54198 --- /dev/null +++ b/app_pkg/examples/create_index.py @@ -0,0 +1,18 @@ +from pymilvus import Collection, utility, connections, db + +conn = connections.connect(host="192.168.1.156", port=19530) +db.using_database("sample_db") + +index_params = { + "metric_type": "IP", + "index_type": "IVF_FLAT", + "params": {"nlist": 1024} +} + +collection = Collection("word_vector") +collection.create_index( + field_name="embeding", + index_params=index_params +) + +utility.index_building_progress("word_vector") \ No newline at end of file diff --git a/app_pkg/examples/embedding_score.py b/app_pkg/examples/embedding_score.py new file mode 100644 index 0000000..675cb37 --- /dev/null +++ b/app_pkg/examples/embedding_score.py @@ -0,0 +1,27 @@ +import json +import requests +def embedding_cosine_similarity(text_1, text_2): + # 请求头 + headers = { + 'Content-Type': 'application/json', + 'Authorization': f'Bearer gpustack_dee9ca823290886c_5edfc86aeeeceb1e9ee5162941cb2cb5' + } + + # 请求体 + data = { + "text_1": text_1, + "text_2": text_2, + "model": "bge-rerank" + } + + # 发送 POST 请求 + response = requests.post("http://172.18.30.122:9500/v1" + "/score", headers=headers, data=json.dumps(data)) + if response.status_code == 200: + result_json= response.json() + # print(result_json) + score = result_json["data"][0]["score"] + return score + else: + raise Exception(f"Error: {response.status_code}\n{response.text}") # 抛出异常 + +print(embedding_cosine_similarity("你好","Hello")) \ No newline at end of file diff --git a/app_pkg/examples/embedding_text.py b/app_pkg/examples/embedding_text.py new file mode 100644 index 0000000..8347e94 --- /dev/null +++ b/app_pkg/examples/embedding_text.py @@ -0,0 +1,15 @@ +from typing import List +from openai import OpenAI +import os +def get_embeddings(embedding_texts: List[str]): + response = OpenAI( + api_key=os.getenv("OPENAI_API_KEY","EMPTY"), + base_url=os.getenv("OPENAI_API_EMBEDDING_BASE","http://172.18.30.122:40060/v1"), + ).embeddings.create( + model=os.getenv("OPENAI_EMBEDDING_MODEL","bge-m3"), + input=embedding_texts, + ) + emebdding_list = response.data[0].embedding + return emebdding_list + +print(get_embeddings(["你好","世界"])) \ No newline at end of file diff --git a/app_pkg/examples/get_3D.py b/app_pkg/examples/get_3D.py new file mode 100644 index 0000000..630ab26 --- /dev/null +++ b/app_pkg/examples/get_3D.py @@ -0,0 +1,46 @@ +import os +import json +from typing import List +import httpx +import requests + + +def get_embeddings(embedding_texts: List[str]): + base_url=os.getenv("OPENAI_API_EMBEDDING_BASE","http://172.18.30.122:40060/v1") + embedding_base_url = os.path.join(base_url, "embeddings") + with httpx.Client(timeout=60) as client: + response = client.post( + embedding_base_url, + json={"model": "bge-m3", "input": embedding_texts}, + headers={"Authorization": os.getenv("OPENAI_API_KEY","EMPTY")}, + ) + embedding_list = response.json()["data"][0]["embedding"] + return embedding_list +# 1. 组装请求体(与 SearchRequest 一一对应) + + +payload = { # 若不提供 query,可改为传 query_vector + "top_k": 3, + "database_name": "XIAN", + "collection_name": "b9d47d5a6d66cbe2cd44a8ea4ad021fc", + "query_vector": get_embeddings(["和尚"]) # 如果本地已算好向量,可直接把 list[float] 写进来 +} + +# 2. 发送 POST 请求 +url = "http://172.18.30.122:9079/search_3D" +headers = {"Content-Type": "application/json"} + +resp = requests.post(url, data=json.dumps(payload), headers=headers, timeout=30) + +# 3. 处理返回 +if resp.status_code == 200: + data = resp.json() + if data.get("code") == 200: + print("检索成功:") + for item in data.get("data", []): + print("score:", item["score"]) + print("text :", item["text"][:200], "...") + else: + print("业务逻辑异常:", data.get("message")) +else: + print("HTTP 异常:", resp.status_code, resp.text) \ No newline at end of file diff --git a/app_pkg/examples/get_chunk.py b/app_pkg/examples/get_chunk.py new file mode 100644 index 0000000..b1af3ed --- /dev/null +++ b/app_pkg/examples/get_chunk.py @@ -0,0 +1,53 @@ +import os +from pymilvus import ( + connections, + utility, + FieldSchema, + CollectionSchema, + DataType, + Collection, + MilvusClient, + db, + Function, + FunctionType, + AnnSearchRequest, + WeightedRanker +) + +class Milvus_Database: + def __init__(self,user=os.getenv("Milvus_USER","root"),password=os.getenv("Milvus_PASSWORD","Milvus"),uri="http://172.18.30.165:19530"): + self.client = MilvusClient( + uri="http://172.18.30.165:19530", + token="root:Milvus" + ) + def get_chunk_by_resource(self, collection_name, database_name,resource): + """ + return List : + """ + self.client.using_database(db_name=database_name) + iterator = self.client.query_iterator( + collection_name=collection_name, + batch_size=5, + filter=f"resource like \"{resource}\"", + output_fields=["id","resource"], + ) + + results = [] + + while True: + result = iterator.next() + if not result: + iterator.close() + break + results += result + return results + +def get_chunk(collection_name,database_name,resource): + milvus_db=Milvus_Database() + results = milvus_db.get_chunk_by_resource(collection_name=collection_name,database_name=database_name,resource=resource) + + return {"code": 200, "message": "success", "data": results} + +if __name__ == "__main__": + result = get_chunk(database_name="XIAN",collection_name="ce_shi_2_4dde68",resource="经桡动脉和股动脉穿刺行支架...治疗颅内动脉狭窄的效果比较_邱茜茜(1).pdf") + print(result) \ No newline at end of file diff --git a/app_pkg/examples/get_content_list.py b/app_pkg/examples/get_content_list.py new file mode 100644 index 0000000..bc4cffa --- /dev/null +++ b/app_pkg/examples/get_content_list.py @@ -0,0 +1,85 @@ +import json +import os +import httpx + + +async def process_pdf_logic(pdf_file): + """ + 接收 PDF 文件并转发到解析服务 + """ + # 验证文件类型 + if not pdf_file.content_type.startswith("application/pdf"): + raise Exception(400, "仅支持 PDF 文件") + + try: + # 读取文件内容 + # file_content = await pdf_file.read() + # 配置目标接口参数 + target_url = os.getenv("Mineru_URL","http://172.18.30.122:9988") + target_url = target_url + "/analyze-pdf" + # target_url = os.getenv("Mineru_URL","http://172.18.127.124:9088/pdf_parse") + # target_url = "http://172.18.30.122:8998/pdf_parse" + # params = { + # "parse_method": "auto", + # "is_json_md_dump": "true", + # "output_dir": "output" + # } + + # 构建文件上传格式 + files = { + "file": (pdf_file.filename, pdf_file.file, "application/pdf") + # "pdf_file": (pdf_file.filename, pdf_file.file, "application/pdf") + } + + # 发送请求到解析服务 + async with httpx.AsyncClient(timeout=1200.0) as client: + response = await client.post( + target_url, + # params=params, + files=files, + headers={"Accept": "application/json"} + ) + response.raise_for_status() + result = response.json() + + full_content = result.get("data", {}).get("full_content", "") + content_list = result.get("data", {}).get("content_list", []) + # markdown_content ="" + # for content in content_list: + # text = content["text"] + + return full_content,content_list + + except httpx.RequestError as e: + raise Exception(503, f"无法连接到解析服务: {str(e)}") + except Exception as e: + raise Exception(500, f"服务器内部错误: {str(e)}") + +import asyncio +from pathlib import Path + +async def test_request(path): + pdf_path = Path(path) + async with httpx.AsyncClient() as client: + with open(pdf_path, "rb") as f: + files = {"file": (pdf_path.name, f, "application/pdf")} + response = await client.post( + "http://172.18.30.122:9988/analyze-pdf", + files=files, + timeout=120 + ) + result = response.json() + + full_content = result.get("data", {}).get("full_content", "") + content_list = result.get("data", {}).get("content_list", []) + combined_json = ''.join(content_list) + content_data = json.loads(combined_json) + for item in content_data: + if isinstance(item, dict): # 确保是字典类型 + text = item.get("text", "") + page_idx = item.get("page_idx", -1) # 默认值 -1 表示缺失 + print(f"Text: {text}\nPage Index: {page_idx}\n{'-'*50}") + +if __name__ == "__main__": + # asyncio.run(test_request("/Users/lijinxuan/PycharmProjects/Sea/AutoRag/src/examples/邱茜茜.pdf")) + asyncio.run(test_request("/Users/lijinxuan/PycharmProjects/Sea/AutoRag/src/examples/邱茜茜.pdf")) diff --git a/app_pkg/examples/has_collection.py b/app_pkg/examples/has_collection.py new file mode 100644 index 0000000..72f5668 --- /dev/null +++ b/app_pkg/examples/has_collection.py @@ -0,0 +1,31 @@ +from pymilvus import ( + connections, + utility, + FieldSchema, + CollectionSchema, + DataType, + Collection, + MilvusClient, + db, + Function, + FunctionType, + AnnSearchRequest, + WeightedRanker +) +import os +class Milvus_Database: + def __init__(self,user=os.getenv("Milvus_USER","root"),password=os.getenv("Milvus_PASSWORD","Milvus"),uri=os.getenv("Milvus_URI")): + self.client = MilvusClient( + uri=uri, + token=f"{user}:{password}" + ) + def has_collection(self,collection_name,database_name): + """ + Before using list collection, You need to using using_database method first + """ + self.client.using_database(db_name=database_name) + return self.client.has_collection(collection_name) + +if __name__ == "__main__": + db=Milvus_Database(uri="http://172.18.30.165:19530") + print(db.has_collection("test","XIAN")) \ No newline at end of file diff --git a/app_pkg/examples/hubrid_insert_search.py b/app_pkg/examples/hubrid_insert_search.py new file mode 100644 index 0000000..c1e3810 --- /dev/null +++ b/app_pkg/examples/hubrid_insert_search.py @@ -0,0 +1,164 @@ +from pymilvus import ( + MilvusClient, + AnnSearchRequest, + WeightedRanker +) +import os +from openai import OpenAI +from typing import List +def insert(): + + docs = [ + "Artificial intelligence was founded as an academic discipline in 1956.", + "Alan Turing was the first person to conduct substantial research in AI.", + "Born in Maida Vale, London, Turing was raised in southern England.", + ] + + data = [ + {"text": docs[0], "dense": [2.7242085933685303, 6.021071434020996, 0.4754035174846649, 9.358858108520508, 5.173221111297607]}, + {"text": docs[1], "dense": [8.584294319152832, 2.7640628814697266, 9.558855056762695, 2.584272861480713, 4.705013275146484]}, + {"text": docs[2], "dense": [2.5525057315826416, 3.8815805912017822, 9.343480110168457, 7.888997554779053, 4.500918388366699]}, + ] + + client = MilvusClient( + uri="http://172.18.107.78:19530", + token="root:Milvus" + ) + client.use_database("JXTest") + res = client.insert( + collection_name="hybrid_search_collection", + data=data + ) + return res + +def search(): + from pymilvus import AnnSearchRequest + client = MilvusClient( + uri="http://172.18.127.124:19530", + token="root:Milvus" + ) + search_param_1 = { + "data": [[0.7425515055656433, 7.774101734161377, 0.7397570610046387, 2.429982900619507, 3.8253049850463867]], + "anns_field": "dense", + "param": { + "metric_type": "L2", + "params": {"nprobe": 10} + }, + "limit": 2 + } + request_1 = AnnSearchRequest(**search_param_1) + + search_param_2 = { + "data": ['Who started AI research'], + "anns_field": "sparse", + "param": { + "metric_type": "BM25", + }, + "limit": 2 + } + request_2 = AnnSearchRequest(**search_param_2) + + reqs = [request_1, request_2] + return reqs + +openai_embedding_api_base = os.getenv("OPENAI_API_EMBEDDING_BASE","http://172.18.127.124:40697/v1") +openai_api_key = os.getenv("OPENAI_API_KEY", "gpustack_dee9ca823290886c_5edfc86aeeeceb1e9ee5162941cb2cb5") + +embedding_client = OpenAI( +api_key=openai_api_key, +base_url=openai_embedding_api_base, +) +def get_embeddings(embedding_texts: List[str]): + response = embedding_client.embeddings.create( + model="bge-m3", + input=embedding_texts, + ) + emebdding_list = response.data[0].embedding + return emebdding_list + +def test(): + from pymilvus import AnnSearchRequest + client = MilvusClient( + uri="http://172.18.127.124:19530", + token="root:Milvus" + ) + client.use_database("JXTest") + query_vector = get_embeddings(["焦煤谜团中央医院收治了多少名颅内动脉狭窄患者?"]) + search_param_1 = { + "data": [query_vector], + "anns_field": "vector", + "param": { + "metric_type": "COSINE", + "params": {"nprobe": 10} + }, + "limit": 3 +} + request_1 = AnnSearchRequest(**search_param_1) + + search_param_2 = { + "data": ["焦煤谜团中央医院收治了多少名颅内动脉狭窄患者?"], + "anns_field": "bm_25", + "param": { + "metric_type": "BM25", + }, + "limit": 3 + } + request_2 = AnnSearchRequest(**search_param_2) + + reqs = [request_1, request_2] + ranker = WeightedRanker(0.5, 0.5) + res = client.hybrid_search( + collection_name="XianTest", + reqs=reqs, + ranker=ranker, + limit=3, + output_fields=["Header_1","Header_2","Header_3","text","resource","img_path"] + ) + search_results = [] + search_resources = [] + for hits in res: + for hit in hits: + search_result_text = hit["entity"].get("text") + + search_result_resource = hit["entity"].get("resource") + search_result_img_path = hit["entity"].get("img_path") + search_results.append(search_result_text) + search_resources.append({"resource":search_result_resource,"img_path":search_result_img_path}) + client.close() + return search_results,search_resources + +if __name__ == '__main__': + search_results,search_resources=test() + print(search_results) + print(search_resources) + + + + # insert_res = insert() + # print(insert_res) + # reqs = search() + # client = MilvusClient( + # uri = "http://172.18.127.124:19530", + # # uri="http://172.18.107.78:19530", + # token="root:Milvus" + # ) + # client.use_database("JXTest") + # print(client.list_collections()) + + # from pymilvus import WeightedRanker + + # ranker = WeightedRanker(0.5, 0.5) + # res = client.hybrid_search( + # collection_name="hybrid_search_collection", + # reqs=reqs, + # ranker=ranker, + # limit=2, + # output_fields=["text"] + # ) + # for hits in res: + # print("TopK results:") + # for hit in hits: + # print(hit) + # Ouput : + #{'id': 457020197413365373, 'distance': 0.3451843857765198, 'entity': {'text': 'Alan Turing was the first person to conduct substantial research in AI.'}} + #{'id': 457020197413365372, 'distance': 0.005594015121459961, 'entity': {'text': 'Artificial intelligence was founded as an academic discipline in 1956.'}} \ No newline at end of file diff --git a/app_pkg/examples/insert_data.py b/app_pkg/examples/insert_data.py new file mode 100644 index 0000000..2a18904 --- /dev/null +++ b/app_pkg/examples/insert_data.py @@ -0,0 +1,18 @@ +from pymilvus import Collection, db, connections +import numpy as np + +conn = connections.connect(host="192.168.1.156", port=19530) +db.using_database("sample_db") +coll_name = 'word_vector' + +mids, embedings, counts, descs = [], [], [], [] +data_num = 100 +for idx in range(0, data_num): + mids.append(idx) + embedings.append(np.random.normal(0, 0.1, 768).tolist()) + descs.append(f'random num {idx}') + counts.append(idx) + +collection = Collection(coll_name) +mr = collection.insert([mids, embedings, descs, counts]) +print(mr) \ No newline at end of file diff --git a/app_pkg/examples/list_connection.py b/app_pkg/examples/list_connection.py new file mode 100644 index 0000000..4b501e5 --- /dev/null +++ b/app_pkg/examples/list_connection.py @@ -0,0 +1,30 @@ +# from pymilvus import Collection, db, connections +# from pymilvus import utility +# conn = connections.connect(host="172.18.30.165", port=19530) +# db.using_database("XIAN") +# # result = utility.has_collection("RAGTest") +# # print(result) +# print(utility.list_collections()) + + +from pymilvus import MilvusClient, DataType + +client = MilvusClient( + uri="http://172.18.30.165:19530", + token="root:Milvus" +) +client.using_database("XIAN") + +res = client.list_collections() +search_params = { + "metric_type": "IP", # 距离度量类型,如 L2/IP等 + "params": {"nprobe": 10} +} +res = client.describe_collection( + collection_name="ce_shi_zhi_shi_ku_1_449853" +) + +for hits in res: + print(hits) + # print(f"ID: {hit.id}, Distance: {hit.distance}, Vector: {hit.entity.get('vector_field_name')}") + diff --git a/app_pkg/examples/markdown_splits.py b/app_pkg/examples/markdown_splits.py new file mode 100644 index 0000000..0f16ec7 --- /dev/null +++ b/app_pkg/examples/markdown_splits.py @@ -0,0 +1,177 @@ +from langchain.text_splitter import MarkdownTextSplitter,MarkdownHeaderTextSplitter,RecursiveCharacterTextSplitter +from md_header_convert import convert_numbered_headings +import re +import json +text_splitter = RecursiveCharacterTextSplitter( + chunk_size=256, + chunk_overlap=50, + length_function=len, + separators=[" "] +) +headers_to_split_on = [("#", "Header_1"), ("##", "Header_2"), ("###", "Header_3")] + +markdown_splitter = MarkdownHeaderTextSplitter(headers_to_split_on=headers_to_split_on) + + +def parse_markdown(md_text): + md_text = convert_numbered_headings(md_text) + lines = md_text.strip().split("\n") + results = [] + current_h1, current_h2, current_h3 = None, None, None + current_text = [] + + def add_entry(): + if current_h1 or current_h2 or current_h3: + results.append({ + "Header_1": current_h1, + "Header_2": current_h2, + "Header_3": current_h3, + "text": "\n".join(current_text).strip() + }) + current_text.clear() + + for line in lines: + line = line.strip() + header_match = re.match(r'^(#{1,3})\s*(.*)', line) + + if header_match: + add_entry() + level = len(header_match.group(1)) + title = header_match.group(2).strip() + + if level == 1: + current_h1, current_h2, current_h3 = title, None, None + elif level == 2: + current_h2, current_h3 = title, None + elif level == 3: + current_h3 = title + else: + current_text.append(line) + + add_entry() + return results + # return json.dumps(results, indent=4, ensure_ascii=False) + +def header_postprocess(md_header_json): + for md in md_header_json: + # print(md) + if not md["Header_2"] and not md["Header_3"]: + if md["text"]: + continue + else: + md["text"] = md["Header_1"] + if md["Header_2"] and not md["Header_3"]: + if md["text"]: + md["text"] = md["Header_2"] + md["text"] + md["Header_2"] = None + else: + md["text"] = md["Header_2"] + md["Header_2"] = None + if md["Header_2"] and md["Header_3"]: + if not md["text"]: + md["text"] = md["Header_3"] + md["Header_3"] = None + else: + md["text"] = md["Header_3"] + md["text"] + md["Header_3"] = None + return md_header_json + +# text_splitter = MarkdownTextSplitter(chunk_size=512,chunk_overlap=128) + + +# print(text) +# print("####################") + +def langchain_split(text): + text = convert_numbered_headings(text) + # print(text) + md_header_splits = markdown_splitter.split_text(text) + results = [] + for i, doc in enumerate(md_header_splits): + print("-------------------------------------------------------") + print(f"Document {i+1}:") + print("text") + print(doc.page_content) + + if doc.metadata: + header_1 = doc.metadata["Header_1"] if "Header_1" in doc.metadata.keys() else None + header_2 = doc.metadata["Header_2"] if "Header_2" in doc.metadata.keys() else None + header_3 = doc.metadata["Header_3"] if "Header_3" in doc.metadata.keys() else None + text_ = doc.page_content + # print("Header_1:",header_1) + # print("Header_2:",header_2) + # print("Header_3:",header_3) + results.append({"Header_1":header_1,"Header_2":header_2,"Header_3":header_3,"text":text_}) + # print("\n") + return results + +# md_header_json = header_postprocess(results) +# for md in md_header_json: +# print(md) +# print("======================================") + +def split_regular(text): +#自定义分解 + md_header_json = parse_markdown(text) + # print(md_header_json) + #合并处理 + md_header_json = header_postprocess(md_header_json) + # print(md_header_json) + + results = [] + for i ,md in enumerate(md_header_json): + if md["text"]: + header_1 = md["Header_1"] + header_2 = md["Header_2"] + header_3 = md["Header_3"] + text = md["text"] + # print("Header_1:",header_1) + # print("Header_2:",header_2) + # print("Header_3:",header_3) + # print("text:",text_) + # print("======================================") + texts = text_splitter.split_text(text) + for j,txt in enumerate(texts): + # print(j) + # print(texts) + # print("======================================") + results.append({"id":j+i+1,"Header_1":header_1,"Header_2":header_2,"Header_3":header_3,"text":txt}) + return results + + + + + + +# results = [] +# for _, i in enumerate(md_header_splits): + # if i.metadata: + # header_1 = i.metadata["Header_1"] if "Header_1" in i.metadata.keys() else None + # header_2 = i.metadata["Header_2"] if "Header_2" in i.metadata.keys() else None + # header_3 = i.metadata["Header_3"] if "Header_3" in i.metadata.keys() else None + # text_ = i.page_content + # print("Header_1:",header_1) + # print("Header_2:",header_2) + # print("Header_3:",header_3) +# # texts = text_splitter.split_text(text) +# # for j in texts: +# # print(j) +# # print(texts) +# print("======================================") +# # results.append({"id":i,"content":texts}) + +# for res in results: +# print(res["id"]) +# print(res["content"]) +# print("======================================") + +if __name__ == "__main__": + with open("邱茜茜.md","r",encoding="utf-8") as f: + text = f.read() + results = split_regular(text) + for res in results: + print("======================================") + for key, value in res.items(): + print(f"{key}: {value}") + print("\n") + \ No newline at end of file diff --git a/app_pkg/examples/md_header_convert.py b/app_pkg/examples/md_header_convert.py new file mode 100644 index 0000000..bf526d0 --- /dev/null +++ b/app_pkg/examples/md_header_convert.py @@ -0,0 +1,48 @@ +import re + +def convert_numbered_headings(text): + """ + 将编号转换为对应的Markdown标题: + - `1.2` → `## 1.2` + - `1.2.1` → `### 1.2.1` + - `1. 3. 1` → `### 1.3.1`(去掉空格) + """ + # 替换全角 `.` 为半角 `.` + text = text.replace('.', '.') + + # 遍历每一行,处理标题 + lines = text.split('\n') + + for i in range(len(lines)): + line = lines[i].strip() + if not line: + continue + + # 只匹配 `1.2` 或 `1.2.1` 形式的编号,允许 `1. 3. 1` 这种格式 + match = re.match(r'^(#*\s*)(\d+(?:\s*\.\s*\d+)+)', line) + if match: + prefix, num = match.groups() + level = num.count('.') # `.` 的个数决定层级 + new_prefix = '#' * (level + 1) # 1.2 → ##, 1.2.1 → ### + + # 去掉数字和 `.` 之间的空格 + clean_num = re.sub(r'\s*\.\s*', '.', num) + + # 替换标题 + lines[i] = f"{new_prefix} {clean_num}{line[match.end():]}" + + return '\n'.join(lines) + + +# # 示例文本 +# text = """ +# # 1资料与方法 + +# 1.1一般资料选取2019年12月至2021年1月焦煤集团中央医院收治的60例... + +# # 1.2选取标准 + +# 1.2.1纳入标准(1)经CT、MRI检查确诊为颅内动脉狭窄... +# """ + +# print(convert_numbered_headings(text)) \ No newline at end of file diff --git a/app_pkg/examples/pdf_md.py b/app_pkg/examples/pdf_md.py new file mode 100644 index 0000000..0b4df93 --- /dev/null +++ b/app_pkg/examples/pdf_md.py @@ -0,0 +1,62 @@ +import httpx +import os + + +async def process_pdf_logic(pdf_file): + """ + 接收 PDF 文件并转发到解析服务 + """ + # 验证文件类型 + if not pdf_file.content_type.startswith("application/pdf"): + raise Exception(400, "仅支持 PDF 文件") + + try: + # 读取文件内容 + # file_content = await pdf_file.read() + + # 配置目标接口参数 + target_url = os.getenv("Mineru_URL","http://172.18.30.122:9988") + target_url = target_url + "/analyze-pdf" + # target_url = os.getenv("Mineru_URL","http://172.18.127.124:9088/pdf_parse") + # target_url = "http://172.18.30.122:8998/pdf_parse" + # params = { + # "parse_method": "auto", + # "is_json_md_dump": "true", + # "output_dir": "output" + # } + + # 构建文件上传格式 + files = { + "file": (pdf_file.filename, pdf_file.file, "application/pdf") + # "pdf_file": (pdf_file.filename, pdf_file.file, "application/pdf") + } + + # 发送请求到解析服务 + async with httpx.AsyncClient(timeout=120.0) as client: + response = await client.post( + target_url, + # params=params, + files=files, + headers={"Accept": "application/json"} + ) + response.raise_for_status() + result = response.json() + + content_list = result["data"]["full_content"] + # markdown_content ="" + # for content in content_list: + # text = content["text"] + + return content_list + + except httpx.RequestError as e: + raise Exception(503, f"无法连接到解析服务: {str(e)}") + except Exception as e: + raise Exception(500, f"服务器内部错误: {str(e)}") + +if __name__ == "__main__": + # 测试:传入 PDF 文件路径 + result = process_pdf_logic("邱茜茜.pdf") + print(result) + # with open("邱茜茜.md", "w", encoding="utf-8") as f: + # f.write(result) \ No newline at end of file diff --git a/app_pkg/examples/search.py b/app_pkg/examples/search.py new file mode 100644 index 0000000..e79df63 --- /dev/null +++ b/app_pkg/examples/search.py @@ -0,0 +1,158 @@ +from pymilvus import Collection, db, connections, +import numpy as np +from typing import List +from openai import OpenAI +import os + +openai_embedding_api_base = os.getenv("OPENAI_API_EMBEDDING_BASE","http://172.18.127.124:40483/v1") +openai_chat_api_base = os.getenv("OPENAI_API_BASE","http://172.18.127.124:40159/v1") +openai_api_key = os.getenv("OPENAI_API_KEY", "gpustack_dee9ca823290886c_5edfc86aeeeceb1e9ee5162941cb2cb5") + +embedding_client = OpenAI( +api_key=openai_api_key, +base_url=openai_embedding_api_base, +) +def get_embeddings(embedding_texts: List[str]): + response = embedding_client.embeddings.create( + model="bge-m3", + input=embedding_texts, + ) + emebdding_list = response.data[0].embedding + return emebdding_list + +conn = connections.connect(host="172.18.127.124", port=19530) +db.using_database("JXTest") +coll_name = 'RAGTest' + +search_params = { + "metric_type": 'L2', + "offset": 0, + "ignore_growing": False, + "params": {"nprobe": 16} +} + +collection = Collection(coll_name) +collection.load() +query = "手术成功率是多少?" +embeddings = get_embeddings([query]) +results = collection.search( + data=[embeddings], + anns_field="vector", + param=search_params, + limit=16, + expr=None, + # output_fields=['m_id', 'embeding', 'desc', 'count'], + output_fields=["text","header_1"], + consistency_level="Strong" +) +collection.release() +# print(results[0].ids) +# print(results[0].distances) +# hit = results[0][0] +# print(hit.entity.get('text')) +print(results) + + + +class Milvus_Database: + def __init__(self,user=os.getenv("Milvus_USER","root"),password=os.getenv("Milvus_PASSWORD","Milvus"),uri=os.getenv("Milvus_URI")): + self.client = MilvusClient( + uri=uri, + token=f"{user}:{password}" + ) + + def hybrid_search(self,query_vector:List,query,top_k=3,collection_name:str = "MarkdownTest",database_name:str = "JXTest",embedding_rate=0.1)-> List[dict|str]: + """ + + """ + try: + self.client.use_database(database_name) + self.load_collection(collection_name) + search_param_1 = { + "data": [query_vector], + "anns_field": "vector", + "param": { + "metric_type": "IP", #COSINE + "params":{"ef":64}#"params": {"nprobe": 10} + }, + "limit": top_k + } + request_1 = AnnSearchRequest(**search_param_1) + + search_param_2 = { + "data": [query], + "anns_field": "bm_25", + "param": { + "metric_type": "BM25", + }, + "limit": top_k + } + request_2 = AnnSearchRequest(**search_param_2) + + reqs = [request_1, request_2] + ranker = WeightedRanker(float(embedding_rate), 1-float(embedding_rate)) + res = self.client.hybrid_search( + collection_name=collection_name, + reqs=reqs, + ranker=ranker, + limit=top_k, + output_fields=["id","Header_1","Header_2","Header_3","text","resource","img_path","page_idx","origin_id","*"] + #output_fields=["Header_1","Header_2","Header_3","text","resource","img_path","img_information"] + ) + + search_results = [] + search_resources = [] + recall_results = [] + for i,hits in enumerate(res): + for j,hit in enumerate(hits): + id = hit["entity"].get("id") + search_result_text = hit["entity"].get("text") + distance = hit["distance"] + page_idx = hit["entity"].get("page_idx") + search_result_header_1 = hit["entity"].get("Header_1") + search_result_header_2 = hit["entity"].get("Header_2") + search_result_header_3 = hit["entity"].get("Header_3") + search_result_resource = hit["entity"].get("resource") + search_result_img_path = hit["entity"].get("img_path") + origin_id = hit["entity"].get("origin_id") + header_1_num = len(search_result_header_1) if search_result_header_1 else 0 + header_2_num = len(search_result_header_2) if search_result_header_2 else 0 + header_3_num = len(search_result_header_3) if search_result_header_3 else 0 + + #search_result_img_information = hit["entity"].get("img_information") + + if search_result_header_1 is None: + search_result_header_2 = "" + else: + search_result_header_1 = f"#{search_result_header_1}" + if search_result_header_2 is None: + search_result_header_2 = "" + else: + search_result_header_2 = f"##{search_result_header_2}" + if search_result_header_3 is None: + search_result_header_3 = "" + else: + search_result_header_3 = f"###{search_result_header_3}" + # search_result = f"#{search_result_header_1}\n{search_result_header_2}\n{search_result_header_3}\n\n{search_result_text}" + search_result = search_result_text + origin_text = search_result[header_1_num+header_2_num+header_3_num+3:] + search_results.append(search_result) + search_resources.append({"resource":search_result_resource,"img_path":search_result_img_path}) + + #获取片段的下文,并且拼接 + next_chunk = self.get_chunk_by_id(collection_name=collection_name,database_name=database_name,id =id) + + next_text = next_chunk[0].get("text") + + search_result += next_text + origin_text += next_text + # search_resources.append({"resource":search_result_resource,"img_path":search_result_img_path,"img_information":search_result_img_imformation}) + recall_results.append({"index":i+j+1,"id":origin_id,"text":search_result,"resource":search_result_resource,"img_path":search_result_img_path,"score":distance,"page_idx":page_idx,"origin_text":origin_text}) + #recall_results.append({"index":i+j+1,"text":search_result,"resource":search_result_resource,"img_path":search_result_img_path,"img_information":search_result_img_imformation}) + self.release_collection(collection_name) + return search_results, search_resources,recall_results + finally: + try: + self.client.release_collection(collection_name) + except Exception as e: + print(f"释放集合失败: {e}") \ No newline at end of file diff --git a/app_pkg/examples/search_text.py b/app_pkg/examples/search_text.py new file mode 100644 index 0000000..fcb0976 --- /dev/null +++ b/app_pkg/examples/search_text.py @@ -0,0 +1,87 @@ +import os +from pymilvus import ( + connections, + utility, + FieldSchema, + CollectionSchema, + DataType, + Collection, + MilvusClient, + db, + Function, + FunctionType, + AnnSearchRequest, + WeightedRanker +) + +class Milvus_Database: + def __init__(self,user=os.getenv("Milvus_USER","root"),password=os.getenv("Milvus_PASSWORD","Milvus"),uri="http://172.18.30.165:19530"): + self.client = MilvusClient( + uri="http://172.18.30.165:19530", + token="root:Milvus" + ) + def get_text_by_resource(self, collection_name, database_name,resource,text): + """ + return List : + """ + self.client.using_database(db_name=database_name) + iterator = self.client.query_iterator( + collection_name=collection_name, + batch_size=5, + filter=f"text like \"{text}\" and resource like \"{resource}\"", + output_fields=["id","resource","text"], + ) + + results = [] + + while True: + result = iterator.next() + if not result: + iterator.close() + break + results += result + return results + def get_chunk_by_id(self, collection_name, database_name,id): + """ + return List : + """ + try: + self.client.using_database(db_name=database_name) + if not self.client.has_collection(collection_name): + return [] + else: + self.client.load_collection(collection_name) + iterator = self.client.query_iterator( + collection_name=collection_name, + batch_size=5, + filter=f"id=={id}", + output_fields=["id","text","resource"], + ) + + results = [] + + while True: + result = iterator.next() + if not result: + iterator.close() + break + results += result + return results + finally: + # 3. 无论成功还是失败,最终释放集合 + try: + self.client.release_collection(collection_name) + except Exception as e: + print(f"释放集合失败: {e}") + +def get_chunk(collection_name,database_name,resource,text,id): + milvus_db=Milvus_Database() + # results = milvus_db.get_text_by_resource(collection_name=collection_name,database_name=database_name,resource=resource,text=text) + results = milvus_db.get_chunk_by_id(collection_name=collection_name,database_name=database_name,id=id) + return {"code": 200, "message": "success", "data": results} + +if __name__ == "__main__": + text = "你好" + # text = "应,进一步放大风险的危害,而传播环境的深刻变革对触发和放大生成式人工智 能传播风险也具有重要影响。生成式人工智能传播风险打破了独立、单层、定向的风险路径, 通过机内交互、人机交互与人人交互的复杂网络结构形成了联动、多层、多向的风险路径, 极易形成多领域共振传导。" + result = get_chunk(database_name="XIAN",collection_name="ye85a36d295a199730340c5c755c1e2b",id="459963917155397121",text=text,resource="test.md") + print(result) \ No newline at end of file diff --git a/app_pkg/examples/search_vector.py b/app_pkg/examples/search_vector.py new file mode 100644 index 0000000..f9278f6 --- /dev/null +++ b/app_pkg/examples/search_vector.py @@ -0,0 +1,76 @@ +from pymilvus import connections, Collection, db +import pandas as pd +from openpyxl import Workbook + +# 连接 Milvus +connections.connect( + uri="http://172.18.30.165:19530", + token="root:Milvus" +) + +# 使用数据库 +db.using_database("XIAN") + +# 获取集合 +collection = Collection("ce_shi_3_an_zi_duan_token_fen_a1da59") +collection.load() # 确保集合已加载 + +# 创建查询迭代器 +iterator = collection.query_iterator( + batch_size=10, # 可以调整批量大小以提高效率 + expr="id > 0", + output_fields=["*"] # 指定要获取的字段 +) + +results = [] + +# 遍历所有结果 +try: + while True: + # 获取下一批结果 + res = iterator.next() + # print(res) + + # 如果没有更多结果,退出循环 + if not res: + break + + # 将结果添加到列表中 + results.extend(res) + print(f"已获取 {len(results)} 条记录") + +finally: + # 确保迭代器被关闭 + iterator.close() +# 将结果转换为DataFrame +df = pd.DataFrame(results) + +# 检查是否有数据 +if not df.empty: + # 写入Excel文件 + excel_file = "milvus_query_results.xlsx" + + # 使用openpyxl引擎以获得更好的格式控制 + with pd.ExcelWriter(excel_file, engine='openpyxl') as writer: + df.to_excel(writer, index=False, sheet_name='查询结果') + + # 获取工作簿和工作表对象以进行格式设置 + workbook = writer.book + worksheet = writer.sheets['查询结果'] + + # 设置列宽 + for column in worksheet.columns: + max_length = 0 + column_letter = column[0].column_letter + for cell in column: + try: + if len(str(cell.value)) > max_length: + max_length = len(cell.value) + except: + pass + adjusted_width = (max_length + 2) * 1.2 + worksheet.column_dimensions[column_letter].width = adjusted_width + + print(f"结果已成功写入 {excel_file}") +else: + print("没有查询到任何结果") \ No newline at end of file diff --git a/app_pkg/examples/str2url.py b/app_pkg/examples/str2url.py new file mode 100644 index 0000000..05a929c --- /dev/null +++ b/app_pkg/examples/str2url.py @@ -0,0 +1,4 @@ +import urllib.parse +resource = "邱茜茜.pdf" +encoded_resource = urllib.parse.quote(resource) +print(encoded_resource) \ No newline at end of file diff --git a/app_pkg/examples/text_match.py b/app_pkg/examples/text_match.py new file mode 100644 index 0000000..f6cedae --- /dev/null +++ b/app_pkg/examples/text_match.py @@ -0,0 +1,57 @@ +from pymilvus import ( + connections, + utility, + FieldSchema, + CollectionSchema, + DataType, + Collection, + MilvusClient, + db, + Function, + FunctionType, + AnnSearchRequest, + WeightedRanker +) +import os + +class Milvus_Database: + def __init__(self, user=os.getenv("Milvus_USER", "root"), password=os.getenv("Milvus_PASSWORD", "Milvus"), uri=os.getenv("Milvus_URI")): + self.client = MilvusClient( + uri="http://172.18.30.165:19530", + token=f"{user}:{password}" + ) + + def search_resource(self, collection_name, database_name,resource): + self.client.using_database(db_name=database_name) + iterator = self.client.query_iterator( + collection_name=collection_name, + batch_size=5, + filter=f"resource like \"{resource}\"", + output_fields=["text","resource"], + ) + + results = [] + + while True: + result = iterator.next() + if not result: + iterator.close() + break + + print(result) + results += result + return results + # res = self.client.query( + # collection_name=collection_name, + # filter=f"resource like \"{resource}\"", + # output_fields=["resource"], + # limit=None # 先限制数量测试 + # ) + # return res + +if __name__ == "__main__": + db = Milvus_Database() + res = db.search_resource("DockerTest", database_name="XIAN",resource="测试.pdf") + for i,re in enumerate(res): + print(i) + # print(res) \ No newline at end of file diff --git a/app_pkg/examples/text_split_markdown.py b/app_pkg/examples/text_split_markdown.py new file mode 100644 index 0000000..fc043b6 --- /dev/null +++ b/app_pkg/examples/text_split_markdown.py @@ -0,0 +1,76 @@ + +from langchain_text_splitters import CharacterTextSplitter,TokenTextSplitter,RecursiveCharacterTextSplitter +from markdown_splits import convert_numbered_headings,parse_markdown,header_postprocess + +def split_01(md_Document,chunk_length=256,chunk_overlap=50): + md_header_json = parse_markdown(md_Document) + # print(md_header_json) + #合并处理 + md_header_list = header_postprocess(md_header_json) + for i ,md in enumerate(md_header_list): + if md["text"]: + header_1 = md["Header_1"] + header_2 = md["Header_2"] + header_3 = md["Header_3"] + text = md["text"] + text_splitter = RecursiveCharacterTextSplitter( + chunk_size=chunk_length, + chunk_overlap=chunk_overlap, + length_function=len, + separators=[" "] + ) + texts = text_splitter.split_text(text) + for txt in texts: + print("Header_1:",header_1) + print("Header_2:",header_2) + print("Header_3:",header_3) + print("text:",txt) + print("======================================") + return md_header_list + + +def split_02(md_Document,chunk_length=256,chunk_overlap=50): + md_header_json = parse_markdown(md_Document) + # print(md_header_json) + #合并处理 + md_header_list = header_postprocess(md_header_json) + for i ,md in enumerate(md_header_list): + if md["text"]: + header_1 = md["Header_1"] + header_2 = md["Header_2"] + header_3 = md["Header_3"] + text = md["text"] + print("Header_1:",header_1) + print("Header_2:",header_2) + print("Header_3:",header_3) + print("text:",text) + print("======================================") + return md_header_list + +def split_03(md_Document,chunk_length=256,chunk_overlap=50): +# text_splitter = text_splitter = CharacterTextSplitter( +# separator="\n\n", +# chunk_size=chunk_length, +# chunk_overlap=chunk_overlap, +# length_function=len, +# is_separator_regex=False, +# ) + text_splitter = TokenTextSplitter(chunk_size=chunk_length, chunk_overlap=chunk_overlap) + # text_splitter = RecursiveCharacterTextSplitter( + # chunk_size=chunk_length, + # chunk_overlap=chunk_overlap, + # length_function=len, + # separators=[""] + # ) + texts = text_splitter.split_text(md_Document) + return texts + +if __name__ == "__main__": + with open("邱茜茜.md","r",encoding="utf-8") as f: + md_Document = f.read() + # texts = split_03(md_Document) + # for text in texts: + # print("______________") + # print(text) + # split_02(md_Document) + split_01(md_Document) \ No newline at end of file diff --git a/app_pkg/examples/毕设.md b/app_pkg/examples/毕设.md new file mode 100644 index 0000000..533c897 --- /dev/null +++ b/app_pkg/examples/毕设.md @@ -0,0 +1 @@ +"中图分类号:学校代号:11845UDC : 密级: 学 号: 2112114024 \n\n广东工业大学硕士学位论文 \n\n(理学硕士) \n\n# 基于预处理张量分裂方法求解张量方程组的研 \n\n究 \n\n利锦轩 \n\n指导教师姓名、职称:邓秀勤教授学科(专业)或领域名称:数学学生所属学院:数学与统计学院答辩委员会主席:教授论文答辩日期:2024 年5 月25 日 \n\nA Dissertation Submitted to Guangdong University of Technology in Partial Fulfillment of the Requirement for the Degree of Master of Science \n\n# Research on solving tensor equations based on preconditioned tensor splitting method \n\nCandidate: Li Jinxuan Supervisor: Prof. Deng Xiuqin \n\n# 学位论文独创性声明 \n\n本人郑重声明:所呈交的学位论文是我个人在导师的指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明,并表示了谢意。本人依法享有和承担由此论文所产生的权利和责任。 \n\n论文作者签名:日期: \n\n# 学位论文版权使用授权声明 \n\n本学位论文作者完全了解学校有关保存、使用学位论文的规定:“研究生在广东工业大学学习和工作期间参与广东工业大学研究项目或承担广东工业大学安排的任务所完成的发明创造及其他技术成果,除另有协议外,归广东工业大学享有或特有”。同意授权广东工业大学保留并向国家有关部门或机构送交该论文的印刷本和电子版本,允许该论文被查阅和借阅。同意授权广东工业大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印、扫描或数字化等其他复制手段保存和汇编本学位论文。保密论文在解密后遵守此规定。 \n\n论文作者签名:日期:指导教师签名:日期: \n\n# 摘要 \n\n矩阵代数理论及其相关算法已成为科学与工程计算领域中最基本的数学工具之一。然而,随着科技的快速发展,矩阵模型已无法满足现代科学的需求,这促使人们探索能够描述高阶多维变量的类矩阵数学模型——张量。 \n\n张量作为矩阵在更高维空间的自然延伸(多维数组),能更有效地处理高维数据。张量的阶数表示其旨在描述的特征数量,其维度表示支持每一类特征的元素数量。因此,张量的阶数越高,所表达的特征的样本数据信息越丰富,能够更全面、细致和准确地描述物体的内部信息。此外,张量元素之间的相互作用和关联使得张量模型在保留物体内部信息方面具有优势。因此,与使用矩阵模型相比,张量模型在保留研究问题的内部特征和接近实际问题的属性方面表现更佳。为了解决由于结构复杂、计算难度大而导致的张量方程求解效率低下的问题,本文提出了一种新的预处理算子,并将其应用于张量分裂迭代算法中,同时,基于现有的预处理张量迭代算法与普通张量迭代算法的比较定理,提出了不同预处理张量迭代算法之间的比较定理,论文的主要研究工作总结如下: \n\n首先,本文讨论了张量方程的理论知识和数据特点,概述了张量方程求解技术的发展历程和当前状态,并阐明了这一课题的研究背景和意义。 \n\n接着,本文总结了解决张量方程组的相关理论和实现过程,简要描述了张量分裂方法,为本文提出的算法奠定了理论基础,并简要介绍了几种传统的常用解决张量方程组的方法。 \n\n为了提高张量方程组求解的效率,本研究基于预处理分裂方法解张量方程的框架,提出了一种新的预处理算子。其中,张量分裂方法将现有张量拆分为多个稀疏张量的和,从而免除了复杂的梯度计算过程,达到了提升求解效率的目标。本研究在张量分裂技术的基础上融合了预处理算子,并在理论及实验层面验证了预处理算子的加入不仅保留了张量的原始特性,还能显著增强求解张量方程组的效率。 \n\n最后,本文将新提出的预处理张量分裂迭代算法与以往常见的张量分裂算法在多个例子上进行了比较,从理论上和数值实验上都证明了新的预处理张量分裂迭代算法在求解效率上具有更好的表现。 \n\n关键词:张量方程;张量分裂算法;预处理算法;迭代算法 \n\n# ABSTRACT \n\nMatrix algebra theory and its associated algorithms have become one of the most fundamental mathematical tools in the domain of scientific and engineering computation. However, with the rapid development of technology, matrix models no longer meet the demands of modern science, leading to the exploration of mathematical models akin to matrices that can characterize higher-order, multidimensional variables — tensors. \n\nTensors, as a natural extension of matrices higher-dimensional spaces (multidimensional arrays), offer a more efficient means for handling high-dimensional data compared to matrices. The order of a tensor indicates the number of characteristics it aims to depict, while its dimensions represent the elements supporting each characteristic category. Therefore, the higher the order of a tensor, the richer the sample data information on a certain characteristic, enabling a more comprehensive, detailed, and accurate depiction of the internal information of objects. Moreover, the interaction and correlation among tensor elements make the tensor model advantageous in preserving the internal information of objects. Consequently, compared to using matrix models, tensor models are better at retaining the internal characteristics and attributes closely to real-world problems. To address the challenges posed by the complex structure and computational difficulty of solving tensor equations, this thesis introduces a novel preconditioning operator and applies it to the tensor splitting iterative algorithm, with the main research efforts summarized as follows: \n\nInitially, the thesis discusses the theoretical knowledge and data characteristics of tensor equations, outlines the development and current state of tensor equation-solving techniques, and elucidates the research background and significance of this topic. \n\nSubsequently, we summarize the relevant theories and implementation processes for solving systems of tensor equations, briefly describe the tensor splitting method to lay the theoretical foundation for the algorithms presented in this thesis, and briefly introduce several traditional methods commonly used for solving systems of tensor equations. \n\nTo enhance the efficiency of solving systems of tensor equations, we propose a new preconditioning operator based on the preprocessing splitting method for solving tensor equations. The tensor splitting method involves decomposing existing tensors into a sum of multiple sparse tensors, thereby avoiding the cumbersome process of gradient calculation and achieving an efficiency improvement in solution. \n\nFinally, the newly proposed preconditioned tensor splitting iterative algorithm is compared with previous common tensor splitting algorithms in some samples, demonstrating both theoretically and numerically that the new preconditioned tensor splitting iterative algorithm offers superior solving efficiency. \n\nKey words: tensor equation; tensor splitting; preprocessing algorithm; iterative algorithm \n\n# 物理量名称及符号表 \n\n
符号含义
Rrm.m 阶n 维张量的集合
R+非负实数域
T张量分裂法的迭代张量
M(8)-1F迭代张量
p谱半径
M(A)张量 A的主导矩阵
1特征值
Xkk 模矩阵乘积
x零向量
0零矩阵
0零张量
\n\n# 目录 \n\n摘要 ......................................................................................................................... I ABSTRACT .............................................................................................................. III 物理量名称及符号表................................................................................................ V目录 ......................................................................................................................... VI CONTENTS .............................................................................................................VIII \n\n# 第一章绪论.............................................................................................................1 \n\n1.1 本课题研究背景及研究意义.................................................................................11.2 张量方程组求解方法的国内外研究现状.............................................................21.3 论文研究目标和主要研究内容.............................................................................51.4 论文组织结构.........................................................................................................51.5 本章小结 ................................................................................................................. 6 \n\n# 第二章多线性张量方程组求解理论基础.................................................................7 \n\n2.1 多线性张量方程组理论基础 ................................................................................. 7 2.2 张量多线性方程的求解方法.................................................................................92.3 本章小结 ................................................................................................................. 11 \n\n# 第三章基于预处理张量分裂方法求解张量方程组................................................... 12 \n\n3.1 预处理张量分裂算法 ............................................................................................. 12 3.1.1 张量分裂算法 .............................................................................................. 12 3.1.2 基于预处理算子的张量分裂算法.............................................................. 143.2 数值实验 ................................................................................................................. 18 3.3 本章小结 ................................................................................................................. 26 \n\n# 第四章多线性张量方程分裂迭代算法的比较.......................................................... 27 \n\n4.1 分裂迭代算法现有比较定理 ................................................................................. 27 4.2 不同预处理分裂迭代算法的比较定理................................................................. 284.3 数值实验 ................................................................................................................. 31 4.4 本章小结 ................................................................................................................. 35 \n\n# 第五章结论与展望.................................................................................................. 36 \n\n参考文献 .................................................................................................................. 38 攻读学位期间取得与学位论文相关的成果 ................................................................ 45 \n\n# CONTENTS \n\nABSTRACT(IN CHINESE) ....................................................................................... I ABSTRACT(IN ENGLISH) ....................................................................................... III TABLE OF PHYSICAL QUANTITY NAMES AND SYMBOLS ................................. V CONTENTS(IN CHINESE) ...................................................................................... VI CONTENTS(IN ENGLISH) ......................................................................................VIII \n\nChapter 1 Introduction ............................................................................................. 1 \n\n1.1 Background and significance of research ................................................................. 1 1.2 Domestic and international research status on tensor equation group solving methods ..................................................................................................................... 2 1.3 Thesis research objectives and main research content ............................................. 5 1.4 Thesis organizational structure ................................................................................ 5 1.5 Chapter summary ..................................................................................................... 6 \n\nChapter 2 Theoretical foundation of solving multilinear tensor equation systems ... 7 \n\n2.1 Theoretical foundations of multilinear tensor equation systems .............................. 7 2.2 Solution methods for tensor multilinear equations .................................................. 9 2.3 Chapter summary ..................................................................................................... 11 \n\nChapter 3 Solving Tensor Equation Systems Based on Preconditioned Tensor Splitting Method ............................................................................................ 12 3.1 Preconditioned tensor splitting algorithm ................................................................ 12 3.1.1 Tensor splitting algorithm ............................................................................. 12 3.1.2 Tensor splitting algorithm based on preconditioned operators ..................... 14 3.2 Numerical experiments ............................................................................................ 18 3.3 Chapter summary ..................................................................................................... 26 \n\nChapter 4 Comparison of multilinear tensor equation splitting iterative algorithms . 27 \n\n4.1 The existing comparison theorems for splitting iterative algorithms ...................... 27 4.2 Comparison theorems for different preconditioned splitting iterative algorithms ... 28 4.3 Numerical experiments ............................................................................................ 31 \n\n4.4 Chapter summary ..................................................................................................... 35 \n\nChapter 5 Conclusion and prospect ........................................................................ 36 \n\nReferences .............................................................................................................. 38 \n\nPublication and patents during study ....................................................................... 45 \n\nAcknowledgements ................................................................................................. 46 \n\n# 第一章绪论 \n\n# 1.1 本课题研究背景及研究意义 \n\n矩阵代数理论及其相关算法己成为科学与工程计算领域最重要的数学基础工具之一。随着科技的迅猛发展,矩阵模型己不能满足现代科学的需求,故希望寻求类似于矩阵且可刻画高阶多维变量的数学模型——张量。张量[1] 是由Gauss,Riemann 和Christoffel 等人于十九世纪在研究微分几何时首次提出,随后经Ricci 和Levi-Civita[2]等人的努力,张量分析及其相关计算逐渐发展为计算数学领域的重要研究课题之一。张量本质上是一种多重线性映射,它建立在向量空间及其对偶空间的笛卡尔积之上。在这一数学构造中,张量的坐标体现为一个在n 维空间中的实体,该实体具有n 个分量,且每一个分量均为坐标变量的函数。当坐标系发生变换时,依据特定的线性变换规律,这些分量也会相应地进行线性变换。张量[3] 作为高维空间中矩阵的自然延伸(即多维数组),在处理高维数据方面相较于传统的矩阵更为高效。张量的阶数描述了要表达的事物特征的多样性,而其维度则反映了每个特征类别能够支持的元素数量。因此,张量的维度越高,就能更全面地展现事物的各项特征。同样,随着张量的阶数增加,能 够丰富地表达某类特征指标的样本数据信息,从而使得张量模型能够全面、细致且准确地描绘事物的内部信息。张量元素间的相互作用和联系,使得采用张量模型描述事物时,内部信息的损失得到有效控制。因此,相比利用矩阵模型,张量模型在保留研究问题内在特性和贴近实际情境属性方面具有明显优势。 \n\n张量的应用场景多样。张量可应用于信息恢复[4],信息通常由时间、位置和内容三种指标构成,一个三阶张量便能够描述信息的这三个维度。机器学习[5] [6] 领域,张量模型可以视为一个探索未知系统或映射的工具,它接收输入信息,基于特定的映射关系,产生目标输出。特别是,神经网络作为机器学习中的核心模型之一,更是诞生了与张量模型结合的“张量网络机器学习”。其核心在于通过张量网络建立机器学习模型的映射关系,并通过张量网络算法进行参数更新,以实现理想的输出。此外,张量模型也在脑部医学影像识别[7] 等领域显示出巨大的潜力。它通过构造三维空间的庞大数据集,精确捕捉人脑结构的复杂性,同时保持图像的本质组织特征不受损害。因此,张量模型特别强调在求解高阶张量方程的理论与算法研究中,对那些在传统矩阵模型中容易被忽略的邻域信息的保存。这种方法在提取脑部图像特征和提升分类准确性方 \n\n面,相较于传统的矩阵模型,显示了优越的性能。因此,张量模型的研究不仅具有理论上的重要价值,也对实际应用领域有着深远的意义。张量方程,作为在高维空间中矩阵方程的延伸,继承了诸多矩阵理论的特性。例如,矩阵与标量的数乘操作(即将矩阵的每个元素乘以一个标量k) 在张量中同样适用,结果是一个与原张量阶数和维度相同的新张量。同样,矩阵作用于向量可以实现如旋转、缩放和剪切等几何变换,三阶或更低阶的张量与向量的相互作用也能产生相似的效果。然而,当张量的阶数超过三时,它们与向量的作用便能描述更为复杂的多维空间变换。这一特性使得张量方程在计算机视觉 [ 8 ] [ 9 ] [ 10 ] 、机器学习 [ 11 ] [ 12 ] 、神经科学 [ 13 ] 、信号处理 [ 14 ] [ 15 ] 、介质力学 [ 16 ] 、有限 差分 [ 17 ] [ 18 ] 、控制论 [ 19 ] [ 20 ] [ 21 ] 、高维偏微分方程 [ 22 ] [ 23 ] 等众多领域得到广泛应用,成为 数值代数领域的研究焦点之一。尽管张量的高阶多维数据表示能力是其一大优势,求解张量方程的复杂性和计算挑战也随之增加,近年来引起了众多学者的关注。研究人员们致力于融合数值分析与最优化理论,发展高效的迭代算法以求得其数值解。本文将重点讨论具有特殊结构的 $\\mathcal{M}$ -张量,并利用其独有的性质和特征,在求解张量方程过程中开发更加适用于高维度张量的求解方法和预处理技术。 \n\n# 1.2 张量方程组求解方法的国内外研究现状 \n\n对线性方程的研究近些年成为热门,Ding 等[24] 提出当 $\\mathcal{A}=(a_{i i_{2}\\cdots i_{m}})\\in\\mathbb{R}^{[m,n]}$ 是一个 $\\mathrm{m}$ 阶 $\\mathbf{n}$ 维的张量。Qi 等[3] 在此基础上给出张量-向量积的定义: \n\n$$\n(\\mathcal{A}\\mathbf{x}^{m-1})_{i}=\\sum_{i_{2}\\cdots i_{m}}^{n}a_{i i_{2}\\cdots i_{m}}x_{i_{2}}\\cdots x_{i_{m}},\\qquad i=1,2,\\cdots n,\n$$ \n\n其中 $x_{i}$ 是 $\\mathbf{X}$ 的第 $\\mathrm{i}$ 个元素。当 $\\mathbf{b}\\in\\mathbb{R}^{n}$ 和 $\\mathbf{x}\\in\\mathbb{R}^{n}$ 是有理数域内的向量时, \n\n$$\n\\mathcal{A}\\mathbf{x}^{m-1}=\\mathbf{b}\n$$ \n\n(1.2) \n\n方程(1.2)称为线性张量方程。此外,若非对角元素 $\\mathcal{A}$ 是非正的张量,则称为 $Z.$ -张量。当Z-张量 $\\begin{array}{r}{\\mathcal{A}=\\eta I_{m}-\\mathcal{B},}\\end{array}$ , 且 $\\eta\\geq\\rho({\\mathcal{B}})$ 时,该张量被称为 $\\mathcal{M}$ -张量。Xie 等[25] 提出了一个新的秩一张量来近似张量,使得张量方程的求解速度加快。 $\\mathrm{Ham}^{[26]}$ 在给出非奇异 $\\mathcal{M}\\cdot$ -张量和正向量 $\\mathbf{b}$ 时,提出了求解 $\\mathcal{M}\\cdot$ -张量多线性系统的唯一解的同伦方法。然而,同伦方法是否具有超线性收敛性是不清楚的。He 等[27] 在由不具有对称性质的张量 $\\mathcal{A}$ 所构成的多线性系统(1.2)中提出了一种全局收敛的牛顿型方法,并且证明了该方法对于随机合成的例子是稳定和具有局部二次收敛的。Ding 等[24] 研究了如何求解一些结构化的多线性系统(1.2),他们证明了如果 $\\mathcal{A}$ 是一个非奇异 $\\mathcal{M}\\cdot$ -张量, $\\mathbf{b}$ 是一个正向量,系统(1.2)有一个唯一的正解,他们还推广了线性系统的Jacobi 和Gauss-seidel 方法来寻找多线性系统(1.2)的唯一正解。当非奇异 $\\mathcal{M}\\cdot$ -张量 $\\mathcal{A}$ 是对称的时候,他们也提出了牛顿法,数值实验表明牛顿法比其他方法要快得多。 \n\n在张量方程的求解中常用到如下方法: \n\n# (1) 连续时间神经网络 \n\n神经网络的并行处理和信号处理能力已经通过各种学习能力强的神经动力学模型得到验证[13] [19]。它们的核心在于最小化一个非负的能量函数,从而形成了一个可以视为人工神经网络的动态系统。这些系统一般通过一阶常微分方程(ODE)来描述。对于特定的初始条件,ODE 会趋向于其稳定点,即底层优化问题的解。关键在于,随着ODE 解的接近稳定点,能量函数必须单调递减。为了克服时变条件下,因缺乏对时变系数速度补偿而导致的误差矩阵的Frobenius 范数无法在无限时间内降至零的问题,Wang 等[28] 在2019 年提出了一种基于不确定误差检测函数的动态设计方法,利用连续时间神经网络来求解张量方程组。 \n\n# (2) 阻尼Gauss-seidel 方法 \n\nLi 等[29] 将求解线性方程组的Jacobi、Gauss-seidel 和SOR 等迭代方法扩展到张量方程(1.2)。这些方法不同于Ding 等[24] 的方法。他们使用一步Jacobi(或Gauss-seidel 或SOR) 迭代在每次迭代中求解张量方程的近似值,并证明这些方法在局部是 $r$ 线性收敛的。他们采用一些直线搜索的方法发展了一种阻尼Gauss-seidel方法,并证明了阻尼Gauss-seidel 方法在适当条件下是全局收敛的。 \n\n# (3) Levenberg-Marquardt 算法 \n\n在工程学和科学计算领域,Levenberg-Marquardt 算法(简称LMA 或LM)是解决非线性最小二乘问题的一种关键工具。此算法于1944 年由Levenberg[30] 和1963年由Marquardt[31] 分别提出。众所周知,LM 方法在雅可比矩阵在解附近保持Lipschitz 连续且非奇异的条件下,可以达到与牛顿方法相同的二次收敛速率。但是,雅可比矩阵的非奇异性是一个较为严格的条件。Yamashita 等[32] 以及Fan[33]和Yuan 等[34] 发现并证明,当选取适当的LM 参数时,Levenberg-Marquardt 方法 \n\n能够在更宽松的局部误差界限下维持其二次收敛速率。 Lv 等 [ 35 ] 基于交替方向乘 子法(ADMM),提出了一种用于解决半对称张量方程的LM 算法。为了进一步提升算法的计算效率,他们还利用张量列分解,成功推导出一个免受维数诅咒影响的高效算法,并证实了该算法具有全局收敛和局部二次收敛的性能。 \n\n(4) 直接法 \n\n最经典的张量方程求解方法就是将其作为多项式方程的代数系统,用消去定理进行求解[36]。直接法的核心目标是通过一系列有限的步骤精确地计算出方程组的解。其中,广泛应用的技术包括高斯消元法(Gaussian Elimination)、高斯-约当消元法(Gauss-Jordan Elimination)、以及LU 分解等。这类方法适合于处理规模较小且对解的精确度有高要求的方程组。原因在于直接法需要处理和储存高维度矩阵,这导致了较高的计算复杂度及显著的资源和时间消耗。虽然在一些情境下,直接法的收敛速度可能较慢,甚至可能遇到无法收敛的情况,但它们在求解精确解方面仍然具有不可替代的优势。此外,Drexler 等[37] 和Garcia 等[38] 分别独立地提出了用同伦延列在数值上求多项式系统的完整孤立零集的定理,其主要工作是通过连续的同伦变换,将简单的多项式方程组的解沿着定义好的同伦路径移动,最终到达复杂的多项式方程组。在此过程中利用包括牛顿迭代在内的多种数值方法进行路径追踪,避免数值不稳定和路径发散。这种方法已经发展成为逼近多项式系统所有孤立零的一种可靠、高效的数值算法。 \n\n# (5) 迭代法 \n\n牛顿法依赖于函数的泰勒级数前几项来寻找其零点,通过迭代逼近方程的根。Ding 等[24] 提出了一种结合牛顿法快速收敛性和迭代法计算效率的混合算法,用于解决 $\\mathcal{M}\\cdot$ -张量方程问题。这种算法通过引入加速参数,优化了算法的性能。随后进一步扩展经典的迭代求解方法,提出一种针对对角线元素非零的线性方程组的张量分裂迭代方法,如jacobi 法、Gauss-seidel 法和SOR 法。另一方面,Li 等[29] 提出了一个基于张量分裂的方法来求解张量多线性系统,并证实该方法在处理高阶马尔可夫链模型时显示出良好的效果。Liu 等[39] 进一步将分裂方法应用于 $\\mathcal{M}\\cdot$ -张量方程的求解,提出了改进的雅可比(Jacobi method)、高斯-塞尔德(Gauss-seidelmethod)以及超松弛算法(SOR method)。在迭代算法的研究中,Li 等[40] 提出了一种名为TSI(Tensor Splitting Iterative)的分裂迭代算法,并详细讨论了不同分裂形式对应的算法实现。 \n\n为了提升张量方程求解的效率,Li 等[40] 在TSI 算法的基础上,引入了预处理算子的概念,发展出PTSI(Preconditioned Tensor Splitting Iterative)算法,该算法通过将张量方程转化为 $P\\mathbf{\\mathcal{A}}x^{m-1}=P\\mathbf{\\mathfrak{b}}$ 的形式,从而改进了迭代求解过程。这一改进不仅简化了迭代 式的形式,而且明确了TSI 与PTSI 算法的步骤,这将在文中3.1.1 节详细描述。在预处理方法方面,Liu 等[39] 提出了预处理算子 $P_{\\alpha}$ ,为分裂法引入了新的维度。继之,Cui等[41] 引入了预处理算子 $P=I+S_{m a x}$ ,而Li 等[40] 基于SOR 算法进一步提出了一种新的预处理算子 $P=I+G_{\\alpha}$ ,有效提升了算法的迭代效率和步骤效率。 \n\n因此,使用预处理的张量分裂法求解张量方程组,不仅可以避免直接计算梯度,还可以加快迭代速度,减少迭代次数,并获得更精确的结果。这种方法在处理工程和科研中遇到的张量方程计算问题时,具有重要的研究和应用价值。 \n\n# 1.3 论文研究目标和主要研究内容 \n\n在探索解决 $\\mathcal{M}\\cdot$ -张量方程组的过程中,虽然当前方法在简单场景下能迅速找到解,但面对复杂的高阶及高维问题时效果却不佳。因此,本研究引入了一种创新的张量分裂预处理算子,旨在加速高维场景下使用雅可比、高斯-塞尔达和超松弛等迭代方法的速度,并减少迭代次数。此外,基于现有的张量比较理论,本文还提出了一系列不同预处理算子的比较定理,以期为解决高维张量方程提供更有效的策略。 \n\n# 1.4 论文组织结构 \n\n本文针对张量多线性方程的求解,以张量分裂迭代算法为基础提出了改进算法。首先,提出一种新的预处理算子,使得该预处理张量分裂迭代算法的求解步骤和耗费时间都更少。其次,在现有的张量分裂迭代算法比较定理的基础上,提出了不同预处理张量分裂迭代算法的比较定理。第一章绪论主要包括三个方面,首先,对张量多线性方程的研究背景进行了分析,阐明了本文的研究意义,然后介绍了张量多线性方程及国内外的研究现状,并阐述了本文的主要研究内容。 \n\n第二章介绍了张量多线性方程求解的理论基础,首先介绍了张量多线性方程的基础知识,然后介绍了张量多线性方程的求解方法,主要是张量分裂方法,为本文的算法奠定了基础。 \n\n第三章先介绍现有的张量分裂算法TSI 主要的几种形式和算法步骤,接着介绍应用了预处理算子的张量分裂算法PTSI 的迭代式和算法步骤。最后提出了一种新的预处理算子 $P_{R}$ ,并通过现有理论证明预处理算子的可靠性和通过数值实验证明该预处理算子在合适的参数下可以有效的提高张量多线性方程的求解效率。 \n\n第四章首先介绍现有多线性张量方程分裂迭代算法的比较定理,重点在于预处理与未预处理张量方程之间的差异。接着,以Li 等[39] 提出的预处理算子 $P_{\\alpha}$ 和本文新提出的预处理算子 $P_{R}$ 为例,探讨了不同预处理算子之间的比较定理。通过多个数值示例阐述了这些比较定理,并进一步证实了它们的有效性和实用性。 \n\n最后简要总结本文全部工作,并针对研究内容存在的问题提出新的拓展方向。 \n\n# 1.5 本章小结 \n\n本章首先介绍了张量方程组的发展、应用和数据特点等,阐述了张量方程组求解的研究现状,对目前的求解ℳ-张量方程组面临的主要问题进行了分析,并指出了目前的 $\\mathcal{M}\\cdot$ -张量方程组求解方法存在的问题。 \n\n# 第二章多线性张量方程组求解理论基础 \n\n本章介绍全文所需要的基本概念和基础知识,涵盖了关于常见张量方程的定义以及现有的研究成果。 \n\n# 2.1 多线性张量方程组理论基础 \n\n作为矩阵在高维空间的推广,张量 $\\mathcal{A}$ 是由实数域中 $n_{1}\\times\\cdots\\times n_{m}$ 个分量组成: \n\n$$\n\\mathcal{A}=(a_{i i_{2}\\cdots i_{m}})\\,,\\,\\,\\,a_{i i_{2}\\cdots i_{m}}\\in\\mathbb{R}\\,,\\,\\,\\,i_{j}\\in,j=1,\\cdots,m\n$$ \n\n其中 $\\mathbf{n}$ 为正整数,且 ${<}\\mathsf{n}{>}$ 表示的是集合 $1,\\cdots,n$ 。特别地,当 $n_{1}=\\cdots=n_{m}=n$ 时, $\\mathcal{A}$ 是 $\\mathrm{m}$ 阶 $\\mathbf{n}$ 维张量。记全体 $\\mathrm{m}$ 阶 $\\mathbf{n}$ 维张量的集合为 $\\mathbb{R}^{[m,n]}$ , 例如,当 $\\mathrm{m}{=}2$ 时, $\\mathbb{R}^{[2,n]}$ 就表示为全体实数矩阵的集合。同样地当 $\\mathrm{m}{=}1$ 时, $\\mathbb{R}^{[1,n]}$ 可以简化为 $\\mathbb{R}^{[n]}$ ,表示所有 $\\mathbf{n}$ 维实向量的集合。同样,上述概念也可以推广到复数域 $\\mathbb{C}$ 。设 $\\mathbb{R}_{+}$ 为非负实数域。如果 $\\mathcal{A}$ 的每一项都是非负的,则称 $\\mathcal{A}$ 为非负张量,所有 $\\mathrm{m}$ 维的 $\\mathbf{n}$ 个非负张量的集合用 $\\mathbb{R}_{+}^{[m,n]}$ +表示。称形如(1.2)的方程组为多线性张量方程组,定义如下: \n\n定义2.1:给定两个张量 $\\mathcal{A}$ 和 $\\mathcal{B}$ ,当 $\\mathcal{A}$ 和 $\\mathcal{B}$ 具有相同的阶数和相同的维度,且张量 $\\mathcal{A}$ 的每一个元素都不小于张量 $\\mathcal{B}$ 中对应的元素时,可以称 $\\mathcal{A}\\ge\\mathcal{B}$ ,特别地,当张量 $\\mathcal{A}$ 的每个元素都大于张量 $\\mathcal{B}$ 中的对应元素,则 $\\mathcal{A}>\\mathcal{B}$ 。 \n\n下面给出矩阵-张量乘积运算的定义: \n\n定义2.2:当 $\\mathcal{A}\\in\\mathbb{R}^{[2,n]}$ , $\\boldsymbol{B}\\in\\mathbb{R}^{[k,n]}$ ,矩阵-张量积 $\\boldsymbol{C}=\\mathcal{A}\\boldsymbol{B}\\in\\mathbb{R}^{[k,n]}$ 的计算公式为: \n\n$$\n\\begin{array}{r}{c_{j i_{2}\\cdots i_{k}}=\\sum_{j_{2}=1}^{n}a_{j j_{2}}b_{j_{2}i_{2}\\cdots i_{k}}.}\\end{array}\n$$ \n\n特别地,当 $c_{(1)}$ 和 $\\mathcal{B}_{(1)}$ 是 $c$ 和 $\\mathcal{B}$ 沿着第一维度进行铺平得到的矩阵的时候,也可以写成 $\\boldsymbol{C}_{(1)}=(\\boldsymbol{\\mathcal{A}}\\boldsymbol{\\mathcal{B}})_{(1)}=\\boldsymbol{\\mathcal{A}}\\boldsymbol{\\mathcal{B}}_{(1)}{}^{[42]}$ ,例如张量 $\\mathcal{B}=(b_{i j k})\\in\\mathcal{C}^{[3,n]}$ ,则铺平得到的矩阵为: \n\n$$\n\\mathcal{B}_{(1)}=\\left[\\begin{array}{c c c c c c c c}{b_{111}}&{\\cdots}&{b_{1n1}}&{b_{112}}&{\\cdots}&{b_{1n2}}&{\\cdots}&{b_{11n}}&{\\cdots}&{b_{1n n}}\\\\ {b_{211}}&{\\cdots}&{b_{2n1}}&{b_{212}}&{\\cdots}&{b_{2n2}}&{\\cdots}&{b_{21n}}&{\\cdots}&{b_{2n n}}\\\\ {\\vdots}&{\\ddots}&{\\vdots}&{\\vdots}&{\\ddots}&{\\vdots}&{\\vdots}&{\\vdots}&{\\vdots}&{\\vdots}\\\\ {b_{n11}}&{\\cdots}&{b_{n n1}}&{b_{n12}}&{\\cdots}&{b_{n n2}}&{\\cdots}&{b_{n1n}}&{\\cdots}&{b_{n n n}}\\end{array}\\right].\n$$ \n\n而张量-矩阵乘积 $\\mathcal{A}\\mathbf{x}^{m-1}$ 定义在(1.1) 中。通过反转计算得到以下矩阵-向量积的形式: \n\n$$\n\\mathcal{A}\\mathbf{x}^{m-1}=\\mathcal{A}_{(1)}(\\underbrace{\\mathbf{x}\\otimes\\dots\\otimes\\mathbf{x}}_{m-1})\n$$ \n\n其中 $\\otimes$ 表示Kronecker 积。 \n\n另外,与矩阵类似,张量也存在特征值和特征向量。 \n\n定义2.3:[3] [43] 设 $\\mathcal{A}\\in\\mathbb{R}^{[m,n]}$ , 如果有一对 $(\\lambda,x)\\in\\mathbb{C}\\times(\\mathbb{C}^{n}\\mid0)$ 满足如下等式: \n\n$$\n\\mathcal{A}\\boldsymbol{x}^{m-1}=\\lambda\\boldsymbol{x}^{[m-1]}\\mathrm{~.~}\n$$ \n\n其中 $x^{[m-1]}=(x_{1}^{m-1},\\cdots,x_{n}^{m-1})^{T}$ 1,则称 $\\lambda$ 是张量 $\\mathcal{A}$ 的特征值, $\\mathbf{X}$ 是其特征向量。同时,如果 $\\lambda$ 和 $\\mathbf{X}$ 都是实数,则称 $(\\lambda,x)$ 为特征对。 \n\n定义2.4:令 $\\sigma(A)$ 是张量 $\\mathcal{A}$ 中所有元素特征值的集合,则 $\\begin{array}{r l}{\\rho(\\mathcal{A})}&{{}=}\\end{array}$ $m a x\\left\\{\\left|\\lambda\\right|\\left|\\lambda\\in\\rho(\\mathcal{A})\\right\\}$ 是张量 $\\mathcal{A}$ 的谱半径。 \n\n此外,对于正整数 $k$ ,当 $k\\geq2$ 时,单位张量 $\\mathcal{I}_{k}=(\\delta_{i_{1}\\cdots\\,i_{k}})\\in\\mathbb{C}^{[k,n]}$ 可以表示为: \n\n$$\n\\delta_{i_{1}\\cdots\\i_{k}}={\\left\\{\\begin{array}{l l}{1,}&{i_{1}=\\cdots=i_{k}}\\\\ {0,}&{e l s e}\\end{array}\\right.}\n$$ \n\n同时,对于任意的 $i\\in$ , $a_{i i\\cdots i}$ 是张量 $\\mathcal{A}=(a_{i_{1}\\cdots i_{m}})\\in\\mathbb{R}^{[m,n]}$ 。因此,当张量 $\\mathcal{A}$ 只有对角元素非零时,称它为对角张量。 $\\mathrm{Lin}^{[43]}$ 进一步将不可约矩阵的定义推广到不可约张量。 \n\n定义2.5:[43] 如果存在一个非空的非全体索引的子集 $\\mathbb{I}\\subseteq{1,2,\\cdots,n}$ ,使得 \n\n$$\na_{i_{1}i_{2}\\cdots i_{m}}=0,\\forall i_{1}\\in\\mathbb{I},\\forall i_{2},\\cdots,i_{m}\\notin\\mathbb{I}\n$$ \n\n则称 $\\mathcal{A}\\in\\mathbb{C}^{[m,n]}$ 是可约的。相反,如果 $\\mathcal{A}$ 不是可约的,则称其为不可约张量。 \n\n下面,将介绍几种常用的张量和一些张量的性质。 \n\n定义2.6:[44] [45] 如果张量 $\\mathcal{A}\\in\\mathbb{R}^{[m,n]}$ ,且它的非对角元素是非正的,那么 $\\mathcal{A}$ 被称为Z-张量。如果存在一个非负张量 $\\mathcal{B}$ 和一个大于等于 $\\mathcal{B}$ 谱半径 $\\rho(B)$ 的正实数 $\\eta$ ,使得 $\\mathcal{A}=\\eta\\mathcal{I}_{m}-\\mathcal{B}$ ,那么就称 $\\mathcal{A}$ 为 $\\mathcal{M}\\cdot$ -张量。如果 $\\eta>\\rho({\\mathcal{B}})$ , $\\mathcal{A}$ 就是强 $\\mathcal{M}\\cdot$ -张量。 \n\n引理2.1:[46] 一个Z-张量是强 $\\mathcal{M}$ -张量当且仅当它是半正定的。 \n\n定义2.7:[47] 令 $\\mathcal{A}\\in\\mathbb{C}^{[m,n]}$ ,那么张量 $\\mathcal{A}$ 的主导矩阵 $M({\\mathcal{A}})$ 就是一个 $n\\times n$ 的矩阵,其元素为: \n\n$$\nM(\\mathcal{A})_{i j}=a_{i,j,\\cdots,j}\n$$ \n\n其中 $i,j=1,\\cdots,n\\,.$ \n\n引理2.2:[39] 一个 $Z\\cdot$ -张量 $\\mathcal{A}$ 是半正定的当且仅当 $\\mathcal{M}(\\mathcal{A})$ 是一个非奇异 $\\mathcal{M}$ -矩阵,并且存在一个正的对角矩阵 $D$ 使得 $\\mathcal{A}D^{m-1}$ 是严格对角占优的。 \n\n引理2.3:[46] 如果 $\\mathcal{A}$ 是一个 $Z.$ -矩阵,那么以下三个条件是等价的: \n\n1. $\\mathcal{A}$ 是一个非奇异 $\\mathcal{M}\\cdot$ -矩阵。 \n\n2.是逆正矩阵。 \n\n3. 存在一个逆正 $Z.$ -矩阵 $B$ 和一个非奇异 $\\mathcal{M}\\cdot$ -矩阵 $C$ ,使得 $\\mathcal{A}=B C$ 。 \n\n引理2.4:[44] 一个Z-张量 $\\mathcal{A}$ 是半正定的当且仅当 $\\mathcal{A}$ 的所有对角线元素都是正的,并且存在一个正的对角矩阵 $D$ 使得 $\\mathcal{A}D^{m-1}$ 严格对角占优,其中 $\\mathcal{A}D^{m-1}$ 表示 $\\mathcal{A}$ 和 $D$ 的 $k$ 模矩阵乘积, $\\mathcal{A}\\times_{k}B\\,,\\,\\,k=1,2,\\hdots,m$ 且 $\\b{B}\\in\\mathbb{C}^{n\\times n}$ 被称为 $k$ 模乘积(参见[48]),由下式表示 \n\n$$\n(\\mathcal{A}\\times_{k}B)_{i_{1}\\ldots j_{k}\\ldots i_{m}}=\\sum_{i_{k}=1}^{n}a_{i_{1}\\ldots j_{k}\\ldots i_{m}}b_{j_{k}i_{k}}.\n$$ \n\n引理2.5:[24] 设 $\\mathcal{A}\\in\\mathbb{C}^{[m,n]}$ ,则当且仅当 $\\mathcal{A}=M(\\mathcal{A})\\mathcal{I}_{m}$ 时,称 $\\mathcal{A}$ 是行对角的。 \n\n定理2.1:[39] 如果 $\\mathcal{A}$ 是一个强 $\\mathcal{M}$ -张量,且 $\\mathbf{M}(\\mathcal{A})$ 是一个Z-矩阵,则 $M({\\mathcal{A}})$ 是一个非奇异 $\\mathcal{M}$ -矩阵。 \n\n定义2.8:[39] 对于 $\\mathcal{A}\\in\\mathbb{R}^{[m,n]}$ ,如果 $M({\\mathcal{A}})$ 是一个非奇异矩阵且 $\\mathcal{A}=M(\\mathcal{A})\\mathcal{I}_{m}$ ,称 $M(\\mathcal{A})^{-1}$ 是张量 $\\mathcal{A}$ 的2 阶左逆矩阵。 \n\n# 2.2 张量多线性方程的求解方法 \n\n求解张量多线性方程的方法有很多,例如不动点迭代法[49],其迭代式为 \n\n$$\nx_{k+1}=T_{s,\\mathcal{B},\\boldsymbol{b}}(x_{k}):=(s^{-1}\\mathcal{B}x_{k}^{m-1}+s^{-1}\\mathbf{b})^{[\\frac{1}{m-1}]}\n$$ \n\n其中 $\\mathbf{v}^{[\\alpha]}=[v_{1}^{\\alpha},v_{2}^{\\alpha},\\cdots,v_{n}^{\\alpha}]^{T}$ 1, 𝑣, ⋯, 𝑣]表示向量的分量幂。其次是张量分裂的方法[50],受到对任意非奇异矩阵 $E\\in\\mathbb{R}^{n\\times n}$ 和任意非零标量 $\\alpha$ 都存在等式 $x=(I+\\alpha E^{-1}\\mathcal{A}x^{m-2})x-\\alpha E^{-1}\\mathbf{b}$ 的启发,对形如 $\\mathcal{A}\\boldsymbol{x}-\\mathbf{b}=0$ 的线性张量方程进行分裂: $\\mathcal{A}=\\mathcal{M}-\\mathcal{V}$ 。则该分裂方法的迭代式为 \n\n$$\n\\boldsymbol{x}_{k+1}=\\mathcal{M}^{-1}\\mathcal{V}\\boldsymbol{x}_{k}+\\mathcal{M}^{-1}\\boldsymbol{\\mathbf{b}}=(I-\\mathcal{M}^{-1}\\mathcal{A})\\boldsymbol{x}_{k}+\\mathcal{M}^{-1}\\boldsymbol{\\mathbf{b}},\n$$ \n\n并且,当 $\\mathcal{M}=D$ 是 $\\mathcal{A}$ 的对角张量时,称其为Jacobi 算法;当 $\\mathcal{M}=\\mathcal{L}$ 是 $\\mathcal{A}$ 的下三角张量的时候,称为Gauss-Seidel 算法,简称G-S 算法。除此之外,Liu 等[39] 提出了一种张量的分裂形式: $\\mathcal{A}=\\mathcal{E}-\\mathcal{F}$ ,并且给出了依据此张量分裂形式的求解(1.2)的张量迭代算法:对于一个初始的向量 $x_{0}$ , \n\n$$\nx_{k}=[M(\\mathcal{E})^{-1}\\mathcal{F}x_{k-1}^{m-1}+M(\\mathcal{E})^{-1}\\mathbf{b}]^{[\\frac{1}{m-1}]},k=1,2,\\cdots\n$$ \n\n其中 $M(\\mathcal{E})^{-1}\\mathcal{F}$ 是分裂算法的迭代张量。同时,他们提出用谱半径 $\\rho(M(\\mathcal{E}^{-1}\\mathcal{F}))$ 作为迭代算法(2.1)的近似收敛速率。在此基础上,给出如下结论:对于任何迭代方法,如果其展现出较快的收敛速率,则可以推断该方法的迭代矩阵具有较小的谱半径。依据定义2.8,下面是关于左非奇异张量的定义以及张量分裂的定义: \n\n定义2.9:[39] 令 $\\mathcal{A}\\in\\mathbb{R}^{[m,n]}$ ,如果 $\\mathcal{A}$ 具有二阶左逆,则称 $\\mathcal{A}$ 为左可逆张量或左非奇异张量。 \n\n定义2.10:[39] 令 $\\mathcal{A},\\mathcal{E},\\mathcal{F}\\in\\mathbb{R}^{[m,n]}$ ,如果 $\\mathcal{E}$ 是左非奇异的,那么就称 $\\mathcal{A}=\\mathcal{E}-\\mathcal{F}$ 这种分解为张量 $\\mathcal{A}$ 的分裂;如果 $\\mathcal{E}$ 是左非奇异的且 $M(\\mathcal{E})^{-1}\\geq O,\\mathcal{F}\\geq O$ ,那么该分解就是张量 $\\mathcal{A}$ 的正则分裂;如果 $\\mathcal{E}$ 是左非奇异的且 $M(\\mathcal{E})^{-1}\\geq O,M(\\mathcal{E})^{-1}\\mathcal{F}\\geq O$ ,那么就称其为张量 $\\mathcal{A}$ 的弱正则分裂;如果 $\\rho(M(\\mathcal{E}^{-1})\\mathcal{F}<1)$ ,那么称该分裂是一个收敛分裂。 \n\n基于张量分裂的定义,存在一些等价的条件。 \n\n引理2.6:[39] 如果 $\\mathcal{A}$ 是一个Z-张量,那么以下条件是等价的: \n\n(1) $\\mathcal{A}$ 是一个强 $\\mathcal{M}$ -张量。(2) 存在一个逆正Z-矩阵 $B$ 和一个半正定Z-张量 $c$ ,使得 $\\mathcal{A}=B C$ 。(3) $\\mathcal{A}$ 有一个收敛(弱)正则分裂。(4) $\\mathcal{A}$ 的所有的(弱)正则分裂都是收敛的。 \n\n引理 2.7 : [ 51 ] [ 52 ] 假设 $\\mathcal{A}\\in\\mathbb{R}_{+}^{[m,n]}$ 那么 \n\n$$\n\\begin{array}{r}{\\rho(A)=\\operatorname*{max}_{{\\bf x}\\ge0,x_{i}\\neq0}\\operatorname*{min}_{x_{i}>0}\\frac{(\\mathcal{A}{\\bf x}^{m-1})_{i}}{x_{i}^{m-1}}.}\\end{array}\n$$ \n\n引理2.8:[40] 设 $\\mathcal{A}\\in\\mathbb{R}^{[m,n]}$ 是一个强 $\\mathcal{M}\\cdot$ -张量,并且 $\\mathcal{A}=\\mathcal{E}_{1}-\\mathcal{F}_{1}=\\mathcal{E}_{2}-\\mathcal{F}_{2}$ 是两个弱正则分裂,满足 $M(\\mathcal{E}_{2})\\geq M(\\mathcal{E}_{1})$ 。如果 $\\mathbf{X}$ 是 $M(\\mathcal{E}_{2})^{-1}\\mathcal{F}_{2}$ 最大特征值对应的一个正特征向量,同时满足 $\\mathcal{A}\\mathbf{x}^{m-1}\\geq\\mathbf{0}$ ,则 $\\begin{array}{r}{\\rho(M(\\mathscr{E}_{2})^{-1}\\mathcal{F}_{2})\\leq\\rho(M(\\mathscr{E}_{1})^{-1}\\mathcal{F}_{1}).}\\end{array}$ 。 \n\n定理2.2:[40] 设 $\\mathcal{A}\\in\\mathbb{R}^{[m,n]}$ 是一个强 $\\mathcal{M}\\cdot$ -张量, $\\mathcal{T}_{\\alpha}=M(\\mathcal{E}_{\\alpha})^{-1}\\mathcal{F}_{\\alpha}$ 是张量分解算法的迭代式。如果 $\\alpha_{1},\\alpha_{2}\\in[0,1],i=1,\\ldots,n-1$ 且 $\\alpha_{2}\\leq\\alpha_{1}$ ,则 $\\rho(T_{\\alpha_{1}})\\leq\\rho(\\mathcal{T}_{\\alpha_{2}})$ 。 \n\n对于多线性方程(1.2), 存在解的唯一性引理如下: \n\n引理2.9:[24] 如果 $\\mathcal{A}$ 是一个强 $\\mathcal{M}$ -张量,那么对于每个正向量 $\\mathbf{b}$ 来说,多线性方程 $\\mathcal{A}\\boldsymbol{x}^{m-1}=\\mathbf{b}$ 都有一个唯一的正解。 \n\n# 2.3 本章小结 \n\n本章首先明确了张量的概念,并介绍了矩阵与张量乘积的运算规则,从而引入了张量方程的概念。紧接着,详细讨论了ℳ-张量的定义、相关定理及引理。进一步,本章还概述了解决多线性张量方程的现有方法,并对张量分裂迭代算法进行了定义和理论阐述,为后续的理论研究和推导打下了坚实的基础。 \n\n# 第三章基于预处理张量分裂方法求解张量方程组 \n\n本章详细介绍基于-张量的预处理张量分裂方法。首先,本章介绍现有张量分裂算法的具体步骤,然后详细阐述预处理张量分裂算法。进一步,提出了一种新的预处理算子,并在理论上证明了该预处理算法保持了ℳ-张量方程的特有性质。最终,通过数值实验来验证新算法的有效性和性能。 \n\n# 3.1 预处理张量分裂算法 \n\n# 3.1.1 张量分裂算法 \n\n为了求解由 $\\mathcal{M}$ - 张量构成的形如 (1.2) 的多线性张量方程,本文引入了 TSI ( Tensor Splitting Iterative)方法。此方法的具体步骤详见表3-1。 \n\n表3-1中的步骤3 可以写成 $\\mathcal{E}x_{k+1}^{m-1}=\\mathcal{F}x_{k}^{m-1}\\mathbf{+b}$ 𝑘+1 ,这可以转换成矩阵系统 $\\begin{array}{r l}{\\lefteqn{M(\\mathscr{E}){\\mathbf{z}}_{k+1}=}}\\end{array}$ $\\mathbf{b}_{k}$ ,其中 $\\mathbf{z}_{k+1}=\\mathbf{x}_{k+1}^{[m-1]}$ 和 $\\mathbf{b}_{k}=\\mathcal{F}\\mathbf{x}_{k}^{m-1}+\\mathbf{b}$ 𝑘+。在此基础上Liu 等[39] 提出,对于非奇异矩阵 $P$ ,存在强 $\\mathcal{M}$ -张量 $\\mathcal{A}$ ,使得 $P\\mathbf{\\mathcal{A}}\\mathbf{x}^{m-1}=P\\mathbf{\\mathfrak{b}}$ 等价于式子(1.2),此时称非奇异矩阵 $P$ 为式子(1.2)的预处理算子。随后Liu 等[39] 提出当 $P\\mathcal{A}=\\mathcal{E}_{p}-\\mathcal{F}_{p}$ 是 $P\\mathcal A$ 的分裂时,存在如表3-3的PTSI(Preconditioned Tensor Splitting Iterative)算法。 \n\n定义符号 $D,\\,L$ 、和 $U$ 分别代表对角张量、严格下三角行张量和上三角行张量。定义张量 $\\mathcal{A}=\\mathcal{E}-\\mathcal{F}$ ,通过选择不同的 $\\mathcal{E}$ ,可以实现经典的迭代求解方法。例如,选择 $\\mathcal{E}=D$ 时,得到Jacobi 方法;选择 $\\mathcal{E}=\\mathcal{D}-\\mathcal{L}$ 时,获得Gauss-seidel 方法(G-S 方法);ℰ= 1 而当 $\\begin{array}{r}{\\mathcal{E}=\\frac{1}{\\omega}(D-\\omega\\mathcal{L})}\\end{array}$ 时,则对应于SOR 方法。此外,若 $\\mathcal{E}=E\\varUpsilon_{m}$ ,其中 $E$ 是一个可逆矩阵,这表示了FULLM 方法。这些方法都总结在表3-2。 \n\n另外,SOR 方法的迭代式可以写成: \n\n$$\nx_{k+1}=\\left(\\mathcal{E}-\\varepsilon\\varPi_{m}\\right)_{++}^{-1}\\left(\\left(F-\\varepsilon\\varPi_{m}\\right)\\mathbf{x}_{k}^{m-1}+\\mathbf{b}\\right)^{\\left[\\frac{1}{m-1}\\right]}\n$$ \n\n其中 $A_{++}^{-1}\\mathbf{b}$ ++ 被定义为所有多线性张量方程(1.2) 的正解集,也就是说 $\\left(\\mathcal{E}-\\varepsilon\\mathcal{I}_{m}\\right)_{++}^{-1}$ 并不是张量的逆。同样地,也存在基于张量逆的SOR 方法来加速算法 $T S I$ 的收敛性: \n\n$$\nx_{k+1}=\\left({\\mathcal{E}}-\\varepsilon I_{m}\\right)^{-1}\\left(\\left({\\mathcal{F}}-\\varepsilon I_{m}\\right)\\mathbf{x}_{k}^{m-1}+\\mathbf{b}\\right)^{\\left[{\\frac{1}{m-1}}\\right]}\n$$ \n\n其中, $\\left(\\mathcal{E}-\\varepsilon\\mathcal{I}_{m}\\right)^{-1}$ 是 $\\mathcal{E}-\\varepsilon T_{m}$ 的左逆。 \n\n表3-1 TSI 方法求解张量方程组Table 3-1 Solving Tensor Equation Systems with the TSI Method \n\n
TSI算法
1)给定一个正向量 b,一个存在(弱)正则分裂A=-F 的强
M-张量A,一个最大迭代次数kmax,一个可接受的最大误差 ε
和一个正的初始向量xo.初始化k=1.
2) 当 k< kmax
3)
4)如果 IlAxk-1-bll2<ε,则跳出循环并且输出 Xk
5)
\n\n表3-2 基于强 $M$ -张量的不同迭代方法Table 3-2 Different iterative methods based on strong M-tensors \n\n
迭代方法8
Jacobi方法ε=D
G-S 方法=D-L
SOR方法&= (D-OL)
FULLM方法
\n\n# 表3-3 PTSI 方法求解张量方程组 \n\nTable 3-3 Solving Tensor Equation Systems with the PTSI Method \n\n# PTSI 算法 \n\n
1)裂 PA=&,-F,的强 M-张量 A,,一个最大迭代次数 kmax,一给定一个正向量 b,一个预处理算子 P一个存在(弱)正则分裂 PA=&,-F,的强 M-张量 A,,一个最大迭代次数 kmax,一
2)当 kXk = (M(e,)-I F,Xk-1 + M(,)-1 b)[言 ]个可接受的最大误差ε和一个正的初始向量 Xo.初始化k= 1.
3)4)个可接受的最大误差ε和一个正的初始向量 Xo.初始化k= 1.个可接受的最大误差ε和一个正的初始向量 Xo.初始化k= 1.
5)k = k + 1,跳到步骤 2.个可接受的最大误差ε和一个正的初始向量 Xo.初始化k= 1.个可接受的最大误差ε和一个正的初始向量 Xo.初始化k= 1.
\n\n# 3.1.2 基于预处理算子的张量分裂算法 \n\n正如第二章提到的,在求解张量方程的时候,添加合适的预处理算子可以进一步的提高张量分裂算法求解张量方程的效率和准确度。在本节中,预处理方法 \n\n# $P\\mathbf{\\mathcal{A}}x^{m-1}=P\\mathbf{\\mathfrak{b}}$ \n\n被用来解决张量方程(1.2)。根据表3-1, 当预处理张量经过分裂 $P\\mathcal{A}=\\mathcal{E}_{p}-\\mathcal{F}_{p}$ 后,预处理张量分裂算法的迭代式可以表示为 \n\n$$\n\\mathbf{x}_{k}=(\\mathbf{M}(\\mathcal{E}_{\\mathbf{p}})^{-1}\\mathcal{F}_{\\mathbf{p}}\\mathbf{x}_{k-1}+\\mathbf{M}(\\mathcal{E}_{\\mathbf{p}})^{-1}\\mathbf{b})^{[\\frac{1}{m-1}]}\n$$ \n\n当系数矩阵是M-矩阵时,有很多有效的预处理器用于解决这些系统。然而,对于多线性系统,迄今为止这些研究还很少。基于这个动机,本文建立了一些有效的预处理器并给出了理论分析。在研究中,假设张量 $\\mathcal{A}$ 在张量方程 $\\mathcal{A}\\boldsymbol{x}^{m-1}=\\mathbf{b}$ 中的所有对角元素都是1。同时在本研究中,考虑一个新的预处理算子 $P_{R}=I+R_{\\theta}$ ,其中 \n\n$$\nR_{\\theta}=\\left[\\begin{array}{c c c c c}{0}&{0}&{\\cdots}&{0}&{0}\\\\ {0}&{0}&{\\cdots}&{0}&{0}\\\\ {\\vdots}&{\\vdots}&{\\ddots}&{\\vdots}&{0}\\\\ {0}&{0}&{\\cdots}&{0}&{0}\\\\ {-\\theta_{1}a_{n,1,1,\\ldots,1}}&{-\\theta_{2}a_{n,2,2,\\ldots,2}}&{\\cdots}&{-\\theta_{n-1}a_{n,n-1,n-1,\\ldots,n-1}}&{0}\\end{array}\\right]\n$$ \n\n而 $\\theta_{j}\\in\\mathbb{R}$ , $j=1,\\cdots,n$ 是参数。经过该预处理器,张量多线性方程将变成 $P_{R}\\mathcal{A}x^{m-1}=$ $P_{R}\\mathbf{b},$ , 其中 $P_{R}\\mathcal{A}=\\hat{\\mathcal{A}}_{\\theta}=\\mathcal{E}_{\\theta}-\\mathcal{F}_{\\theta}$ 𝒜𝜃= ℰ𝜃−ℱ𝜃 \n\n通过取 $\\begin{array}{r}{\\mathcal{E}=\\frac{1}{\\tau}(I_{m}-\\tau L)}\\end{array}$ 解方程(1.2)的SOR 方法的张量分裂算法迭代式如下: \n\n$$\n\\boldsymbol{x}_{k}=(T(\\tau)\\boldsymbol{x}_{k-1}^{m-1}+\\tau M(I_{m}-\\tau\\mathcal{L})^{-1}\\mathbf{b})^{[\\frac{1}{m-1}]},\n$$ \n\n其中 $T(\\tau)=M(\\pmb{I}_{m}-\\tau\\mathcal{L})^{-1}((1-\\tau\\pmb{I}_{m})+\\tau\\mathcal{F})$ 。该算法迭代式可进一步简化为: \n\n$$\nx_{k}=(T_{\\theta}(\\tau)x_{k-1}^{m-1}+q_{\\tau})^{[\\frac{1}{m-1}]},\n$$ \n\n其中 $T_{\\theta}(\\tau)$ 和 $q_{\\tau}$ 给出如下: \n\n$$\n\\boldsymbol{T_{\\theta}}(\\tau)=\\boldsymbol{M}(\\mathcal{E}_{\\theta}(\\tau))^{-1}\\boldsymbol{\\mathcal{F}}_{\\theta}(\\tau),\\quad\\boldsymbol{q_{\\tau}}=\\boldsymbol{M}(\\mathcal{E}_{\\theta}(\\tau))^{-1}(\\boldsymbol{I}+\\boldsymbol{C}_{\\theta})\\boldsymbol{\\mathsf{b}},\n$$ \n\n和 \n\n$$\n\\mathcal{E}_{\\theta}(\\tau)=\\frac{1}{\\tau}(\\mathcal{D}^{\\prime\\prime}-\\tau\\mathcal{L}^{\\prime\\prime}),\\mathcal{F}_{\\theta}(\\tau)=\\frac{1}{\\tau}((1-\\tau)\\mathcal{D}^{\\prime\\prime}+\\tau\\mathcal{F}^{\\prime\\prime}).\n$$ \n\n下面将给出新预处理张量分裂算法的理论证明。 \n\n命题3.1:设 $A\\in\\mathbb{R}^{[m,n]}$ 。如果 $\\mathcal{A}$ 是一个强 $\\mathcal{M}\\cdot$ -张量并且 $A=\\mathscr{I}_{m}-\\mathscr{L}-\\mathscr{F}$ ,其中\n\n ${\\mathcal{L}}=L\\varLambda_{m}$ , $-L$ 是 $M({\\mathcal{A}})$ 的严格下三角部分,那么对于所有 $\\theta_{i}\\in[0,1]$ , $i=1,2,\\dots,n-1\n\n$ $\\hat{\\mathcal{A}}_{\\theta}=(I+R_{0})\\mathcal{A}$ 是一个强 $\\mathcal{M}\\cdot$ -张量。 \n\n证明:由于张量 $\\mathcal{A}$ 的对角线元素为1,并且 \n\n$$\n\\begin{array}{r}{\\tilde{a}_{j,i_{2},\\ldots,i_{m}}=\\left\\{\\begin{array}{l l}{a_{j,i_{2},\\ldots,i_{m}},}&{j0$ 。因为 $(I+R_{0}{\\mathcal{A}})\\geq0$ ,有 $(I+R_{0})\\mathcal{A}x^{m-1}>0$ 。因此, $\\hat{\\mathcal{A}}_{0}$ 是一个强 $\\mathcal{M}$ -张量。 \n\n命题3.2:对于 $P_{R}=I+R_{\\theta}$ 与任意的 $\\theta_{i}\\in\\left[0,1\\right],\\;i=1,2,\\ldots,n-1$ ,存在 $\\hat{\\mathbf{b}}\\geq\\mathbf{b}>0$ 由引理2.9和命题3.1,可以得到多线性张量方程 $P_{R}\\mathcal{A}\\mathbf{x}^{m-1}=P_{R}\\mathbf{b}$ 与 $\\mathcal{A}\\mathbf{x}^{m-1}=\\mathbf{b}$ 有相同的唯一正解。 \n\n引理3.1:如果 $\\hat{\\mathcal{A}}_{\\theta}$ 是一个强 $\\mathcal{M}$ -张量,则 $M(\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}})$ 是一个非奇异的 $\\mathcal{M}\\cdot$ -矩阵。 \n\n证明:由引理2.1,一个强 $\\mathcal{M}$ -张量 $\\hat{\\mathcal{A}}_{\\theta}$ 是半正定的。那么存在一个向量 $\\mathbf{x}>0$ 使得 $\\hat{\\mathcal{A}}_{\\theta}\\mathbf{x}^{m-1}>0$ 。因此,对所有 $i=1,2,\\dots,n$ ,有 \n\n$$\n:\\!\\!\\sum_{i_{2},\\ldots,i_{m}=1}^{n}a_{i i_{2}\\ldots i_{m}}x_{i_{2}}\\ldots x_{i_{m}}=\\sum_{j=1}^{n}a_{i j\\ldots j}x_{j}^{m-1}+\\sum_{i_{2},\\ldots,i_{m}=1\\atop i_{2},\\ldots,i_{m}\\neq0}^{n}a_{i i_{2}\\ldots i_{m}}x_{i_{2}}\\ldots x_{i_{m}}\\leq\\sum_{j=1}^{n}a_{i j\\ldots j}x_{j}^{m-1}.\n$$ \n\n因此 $M(\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}})\\mathbf{x}^{m-1}>0$ 𝜃。由于 $\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}}$ 是一个 $\\mathcal{M}$ -张量, $M(\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}})$ 𝜃 是一个 $Z.$ -矩阵。根据定理2.1 $M(\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}})$ 𝒜𝜃) 是一个非奇异 $\\mathcal{M}$ -矩阵。 \n\n引理3.2:设 $\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}}\\in\\mathbb{R}^{[m,n]}$ , $\\mathcal{E}_{\\theta}=M(\\hat{\\mathcal{A}}_{\\theta})\\mathcal{I}_{m}$ 𝜃𝑚且 $\\mathcal{F}_{\\theta}=\\mathcal{F}_{\\theta}-\\hat{\\mathcal{A}}_{\\theta}$ 𝜃。如果 $\\hat{\\mathcal{A}}_{\\theta}$ 是一个强 $\\mathcal{M}\\cdot$ -张量,那么分裂 $\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}}=\\mathcal{E}_{\\boldsymbol{\\theta}}-\\mathcal{F}_{\\boldsymbol{\\theta}}$ 是 $\\hat{\\mathcal{A}}_{\\theta}$ 的一个正则分裂。 \n\n证明:由定理2.1, $M(\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}})$ 𝜃 是一个非奇异 $\\mathcal{M}\\cdot$ -矩阵,因此 $M(\\mathcal{E}_{\\theta})=M(\\hat{\\mathcal{A}}_{\\theta})$ 𝜃 是一个非奇异M-矩阵,且 $M(\\mathcal{E}_{\\theta})^{-1}\\geq0$ 。此外, $\\mathcal{F}_{\\theta}=M(\\hat{\\mathcal{A}}_{\\theta})\\mathcal{I}_{m}\\!-\\!\\hat{\\mathcal{A}}_{\\theta}\\geq0$ 𝒜𝜃)ℐ𝑚−𝒜𝜃≥0,因此,分裂 $\\hat{\\mathcal{A}}_{\\theta}=\\mathcal{E}_{\\theta}\\!-\\!\\mathcal{F}_{\\theta}$ 是 $A$ 的一个正则分裂。 \n\n引理3.3:一个Z-张量 $\\hat{\\mathcal{A}}_{\\theta}$ 是半正定的,当且仅当存在一个可逆正定 $Z$ -矩阵 $B_{\\theta}$ 和一个半正定Z-张量 $c_{\\theta}$ 使得 $\\mathcal{A}=B C$ 。 \n\n证明: $\\leftrightsquigarrow$ : 假设 $\\hat{\\mathcal{A}}_{\\theta}$ 是半正定的 $Z.$ -张量。那么根据引理2.1, $\\hat{\\mathcal{A}}_{\\theta}$ 是一个强 $\\mathcal{M}\\cdot$ -张量。设 $\\mathcal{F}_{\\theta}=M(\\hat{\\mathcal{A}}_{\\theta})\\mathcal{I}_{m}-\\hat{\\mathcal{A}}_{\\theta}$ 𝜃𝑚𝜃且 $B_{\\theta}=M(\\hat{\\mathcal{A}}_{\\theta})$ 𝜃。由公式(3.3), $B_{\\theta}$ 是一个非奇异 $\\mathcal{M}$ -矩阵。𝒜 = ℐ −𝑀( 𝒜 ) −1 ℱ 令 $\\begin{array}{r}{C_{\\theta}=B^{-1}\\hat{\\mathcal{A}}_{\\theta}=I_{m}-M(\\hat{\\mathcal{A}}_{\\theta})^{-1}\\mathcal{F}_{\\theta}}\\end{array}$ 𝜃𝑚𝜃𝜃。由引理3.2, $C_{\\theta}$ 是一个 $Z.$ -张量。因为 $\\hat{\\mathcal{A}}_{\\theta}$ 是半正定𝒜 𝑚−1 ) 的,存在一个向量 $\\mathbf{x}>0$ 使得 $\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}}\\mathbf{x}^{m-1}>0$ 。因此,向量 $C_{\\theta}\\mathbf{x}^{m-1}=B^{-1}(\\hat{\\mathcal{A}}_{\\theta}\\mathbf{x}^{m-1})$ 𝜃 也是正的。故 $c_{\\theta}$ 也是半正定的。 \n\n$\\leftrightharpoons$ : 设 $C_{\\theta}=(c_{i,j,\\dots,i_{m}})$ 并且 $\\hat{\\mathcal{A}}_{\\theta}=(a_{i,j,\\dots,i_{m}})$ 。假设 $c_{\\theta}$ 是半正定的 $Z.$ -张量,从引理2.4 可知存在一个正定的对角矩阵 $D_{\\theta}=\\mathrm{diag}(d_{1},d_{2},\\ldots,d_{n})$ ,使得 $c_{\\theta}D_{\\theta}^{m-1}$ 𝜃是严格对角占优的,因此 \n\n$$\nc_{i i\\ldots i}d_{i}^{m-1}>-\\sum_{(i_{2},i_{3},\\ldots,i_{m})\\neq(i,i,\\ldots,i)}^{n}c_{i i_{2}\\ldots i_{m}}d_{i_{2}}d_{i_{3}}\\ldots d_{i_{m}}.\n$$ \n\n接下来,证明 \n\n$$\na_{i i\\ldots i}d_{i}^{m-1}>-\\sum_{(i_{2},i_{3},\\ldots,i_{m})\\neq(i,i,\\ldots,i)}^{n}a_{i i_{2}\\ldots i_{m}}d_{i_{2}}d_{i_{3}}\\ldots d_{i_{m}}.\n$$ \n\n假设 $\\hat{\\mathcal{A}}_{\\theta}=B_{\\theta}C_{\\theta}$ ,此时 $\\begin{array}{r}{a_{i i\\ldots i}=\\sum_{j=1}^{n}b_{i j}c_{j i\\ldots i}}\\end{array}$ 𝑗=1𝑖𝑗𝑗𝑖…𝑖和 \n\n$$\na_{i i_{2}\\ldots i_{m}}=\\sum_{j=1}^{n}b_{i j}c_{j i_{2}\\ldots i_{m}},\\quad i=1,2,\\ldots,n,\\quad(i_{2},i_{3},\\ldots,i_{m})\\neq(i,i,\\ldots,i),\n$$ \n\n然后 \n\n$$\na_{i i\\ldots i}d_{i}^{m-1}=\\sum_{j=1}^{n}b_{i j}c_{j i\\ldots i}d_{i}^{m-1}=b_{i i}c_{i i\\ldots i}d_{i}^{m-1}+\\sum_{j\\ne i}^{n}b_{i j}c_{j i\\ldots i}d_{i}^{m-1},\n$$ \n\n和 \n\n$$\na_{i i_{2}\\ldots i_{m}}d_{i_{2}}\\ldots d_{i_{m}}=\\sum_{j=1}^{n}b_{i j}c_{j i_{2}\\ldots i_{m}}d_{i_{2}}\\ldots d_{i_{m}}.\n$$ \n\n因此, \n\n$$\na_{i i\\ldots i}d_{i}^{m-1}+\\sum_{(i_{2},i_{3},\\ldots,i_{m})\\neq(i,i,\\ldots,i)}^{n}a_{i i_{2}\\ldots i_{m}}d_{i_{2}}\\ldots d_{i_{m}}\n$$ \n\n$$\n\\begin{array}{l}{{=b_{i i}c_{i\\dots i}d_{i}^{m-1}+\\displaystyle\\sum_{j\\neq i}^{n}b_{i j}c_{j\\dots i}d_{i}^{m-1}+\\displaystyle\\sum_{j=1}^{n}\\displaystyle\\sum_{(i_{2},\\dots,i_{m})\\neq(i,\\dots)}b_{i j}c_{j_{2}\\dots i_{m}}d_{i_{2}}\\dots d_{i_{m}}}}\\\\ {{=b_{i i}c_{i\\dots i}d_{i}^{m-1}+\\displaystyle\\sum_{j\\neq i}^{n}b_{i j}c_{j\\dots i}d_{i}^{m-1}+b_{i i}\\displaystyle\\sum_{(i_{2},\\dots,i_{m})\\neq(i,\\dots)}^{n}c_{i_{2}i,\\dots i_{m}}d_{i_{2}}\\dots d_{i_{m}}}}\\\\ {{\\phantom{=}+\\displaystyle\\sum_{j\\neq i}^{n}\\displaystyle\\sum_{(i_{2},\\dots,i_{m})\\neq(i,\\dots)}^{n}b_{i i}c_{j_{2}\\dots i_{m}}d_{i_{2}}\\dots d_{i_{m}}}}\\\\ {{=b_{i i}(c_{i\\dots i}d_{i}^{m-1}+\\displaystyle\\sum_{(i_{2},\\dots,i_{m})\\neq(i,\\dots)}c_{i_{2}i,\\dots i_{m}}d_{i_{2}}\\dots d_{i_{m}})}}\\\\ {{\\phantom{=}+\\displaystyle\\left(\\sum_{j\\neq i}^{n}b_{i j}c_{j\\dots i}d_{i}^{m-1}+\\displaystyle\\sum_{(i_{2},\\dots,i_{m})\\neq(i,\\dots)}c_{i_{2}i,\\dots i_{m}}d_{i_{2}}\\dots d_{i_{m}}\\right).}}\\end{array}\n$$ \n\n根据引理2.1 和引理2.3, $C_{\\theta}$ 是一个强 $\\mathcal{M}$ -张量,并且 $B_{\\theta}$ 是一个强 $\\mathcal{M}$ -矩阵。因此由式子(3.1),可以知道公式(3.3) 的最后一项是一个正数。因此式子(3.2) 成立。 \n\n注意到 $(\\hat{\\mathcal{A}}_{\\theta})_{(1)}=B_{\\theta}(C_{\\theta})_{(1)}$ 𝜃(1)𝜃𝜃(1),因此 $M(\\hat{\\mathcal{A}}_{\\theta})=B_{\\theta}M(C_{\\theta})$ 𝜃𝜃𝜃。根据引理3.1和引理2.3,可以得出 $M(\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}})$ 𝒜𝜃) 是一个 $\\mathcal{M}$ -矩阵。然后结论由引理2.2得出。证明完成。 \n\n引理3.4:设 $\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}}$ 是一个 $Z.$ -张量,则 $\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}}$ 是半正定的当且仅当 $\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}}$ 有一个正则分裂 $\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}}=\\mathcal{E}_{\\boldsymbol{\\theta}}-\\mathcal{F}_{\\boldsymbol{\\theta}}$ ,并且存在 $\\mathbf{x}>0$ 使得 $M(\\mathcal{E}_{\\theta})^{-1}\\mathcal{F}_{\\theta}\\mathbf{x}^{m-1}<\\mathbf{x}^{[m-1]}$ 。 \n\n证明: $\\leftrightsquigarrow$ ”:根据引理3.2, $\\hat{\\mathcal{A}}_{\\theta}\\,=\\,\\mathcal{E}_{\\theta}-\\mathcal{F}_{\\theta}$ 是一个正则分裂。假设 $\\hat{\\mathcal{A}}_{\\theta}$ 是半正定的,存在 $\\mathbf{x}\\,>\\,0$ 使得 $\\hat{\\mathcal{A}}_{\\theta}\\mathbf{x}^{m-1}\\,>\\,0$ 。因为 $M(\\mathcal{E}_{\\theta})^{-1}\\,\\geq\\,O$ ,且 $\\mathcal{F}_{\\theta}\\,=\\,\\mathcal{E}_{\\theta}-\\hat{\\mathcal{A}}_{\\theta}$ 𝒜𝜃,此时 $M(\\mathcal{E}_{\\theta})^{-1}\\mathcal{F}_{\\theta}\\mathbf{x}^{m-1}\\,<\\,M(\\mathcal{E})^{-1}\\mathcal{E}_{\\theta}\\mathbf{x}^{m-1}$ 。由于 $M(\\mathcal{E}_{\\theta})^{-1}\\mathcal{E}_{\\theta}\\,=\\,M(\\mathcal{E}_{\\theta})^{-1}M(\\mathcal{E})\\mathcal{I}_{m}\\,=\\,\\mathcal{I}_{m}$ ,因此 $M(\\mathcal{E}_{\\theta})^{-1}\\mathcal{F}_{\\theta}\\mathbf{x}^{m-1}<\\mathbf{x}^{[m-1]}\\,_{\\mathrm{c}}$ 。 \n\n$\\Lleftarrow,$ :假设 $\\hat{\\mathcal{A}}_{\\theta}\\,=\\,\\mathcal{E}_{\\theta}\\,-\\,\\mathcal{F}_{\\theta}$ 是一个正则分裂, $M(\\mathcal{E}_{\\theta})^{-1}\\,\\geq\\,O$ 并且 $\\mathcal{F}_{\\boldsymbol{\\theta}}\\,\\geq\\,O$ 。设 ${\\mathcal{C}}={\\mathcal{I}}_{m}-M({\\mathcal{E}}_{\\theta})^{-1}{\\mathcal{F}}_{\\theta}$ 。通过假设,存在 $\\mathbf{x}>0$ 使得 $M(\\mathcal{E}_{\\theta})^{-1}\\mathcal{F}_{\\theta}\\mathbf{x}^{m-1}<\\mathbf{x}^{m-1}=\\mathcal{I}_{m}\\mathbf{x}^{m-1}$ ,即 $C{\\mathbf{x}}^{m-1}>0$ 。因此 $c$ 是一个半正定的Z-张量。此时 $\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}}=M(\\mathcal{E}_{\\boldsymbol{\\theta}})^{-1}(\\mathcal{I}_{m}-M(\\mathcal{E}_{\\boldsymbol{\\theta}})^{-1}\\mathcal{F}_{\\boldsymbol{\\theta}})=$ $M(\\mathcal{E}_{\\theta})^{-1}c$ 。由引理3.3,得出 $\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}}$ 是半正定的。 \n\n引理3.5:一个Z-张量 $\\hat{\\mathcal{A}}_{\\theta}$ 是半正定的当且仅当 $\\hat{\\mathcal{A}}_{\\theta}$ 有一个收敛的正则分裂。 \n\n证明: $\\leftrightsquigarrow$ :假设 $\\hat{\\mathcal{A}}_{\\theta}$ 是半正定的。那么根据引理3.4, $\\hat{\\mathcal{A}}_{\\theta}$ 有一个正则分裂 $\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}}=\\mathcal{E}_{\\boldsymbol{\\theta}}-\\mathcal{F}_{\\boldsymbol{\\theta}}$ ,并且存在 $\\mathbf{x}>\\mathbf{0}$ 使得 $M(\\mathcal{E}_{\\theta})^{-1}\\mathcal{F}_{\\theta}\\mathbf{x}^{m-1}<\\mathbf{x}^{m-1}$ 。因此 $\\rho(M(\\mathcal{E}_{\\theta})^{-1}\\mathcal{F}_{\\theta})<1$ 这意味着分裂是收敛的。 \n\n$\\leftrightharpoons$ :如果 $\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}}$ 有一个收敛的正则分裂 $\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}}=\\mathcal{E}_{\\boldsymbol{\\theta}}-\\mathcal{F}_{\\boldsymbol{\\theta}}$ ,则 $M(\\mathcal{E}_{\\theta})^{-1}>O$ , $\\mathcal{F}_{\\theta}\\geq\\mathcal{O}$ 并𝒜 = ℐ −𝑀(ℰ ) −1 ℱ 且 $\\rho(M(\\mathcal{E}_{\\theta})^{-1}\\mathcal{F}_{\\theta})<1$ 。这意味着 $M(\\mathcal{E}_{\\theta})^{-1}\\hat{\\mathcal{A}}_{\\theta}=I_{m}-M(\\mathcal{E}_{\\theta})^{-1}\\mathcal{F}_{\\theta}$ 𝜃𝑚𝜃𝜃是一个强 $\\mathcal{M}\\cdot$ -张量。然后有 $\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}}=M(\\mathcal{E}_{\\boldsymbol{\\theta}})\\mathcal{C}$ 。根据引理3.3, $\\hat{\\mathcal{A}}_{\\theta}$ 是一个强 $\\mathcal{M}\\cdot$ -张量。此外,根据引理2.1, $\\hat{\\mathcal{A}}_{\\theta}$ 是半正定的。 \n\n由引理2.9,可以得到如下引理: \n\n引理3.6:如果 $\\hat{\\mathcal{A}}_{\\theta}$ 是强 $\\mathcal{M}\\cdot$ -张量,那么对于任意正向量b 来说,多线性方程 $\\hat{\\mathcal{A}}_{\\theta}\\mathbf{x}^{m-1}=\\mathbf{b}$ 都有一个唯一的正解。 \n\n# 3.2 数值实验 \n\n在本小节中,本文将通过数值实验对表3-2中列出的算法在求解多线性方程 \n\n$$\nP_{R}\\mathcal{A}\\mathbf{x}^{m-1}=P_{R}\\mathbf{b}\n$$ \n\n的性能进行比较分析。所有测试使用MATLAB R2014a 并配备以下配置执行:Intel(R)Core(TM) i7-6700HQ CPU 2.60GHz 和8.0G RAM。在以下示例中,给出了两个方面来检查所提算法的效率:迭代步数(用(IT 表示),CPU 时间(秒)(用CPU(s)) 表示)。− ‖ < 𝜀= 10 −11 所有实验最大迭代次数设置为1000,停止准则为 $\\left\\|\\mathcal{A}\\mathbf{x}_{N}^{m-1}-\\mathbf{b}\\right\\|_{2}<\\varepsilon=10^{-11}$ 𝑁2。对于所有张量迭代方法, $P_{R}$ 的所有优化参数都是通过数值实验选择的。 \n\n例3.1:考虑一个3 阶5 维的非奇异 $\\mathcal{M}$ -张量 $\\mathcal{A}=s\\mathcal{I}_{m}\\!-\\!\\mathcal{B}$ , 其中 $\\mathcal{B}$ 是通过MATLAB使用rand 函数随机生成的。 $\\begin{array}{r}{s=(1+\\epsilon)\\operatorname*{max}_{i=1,2,\\dots,n}({\\mathcal{B}}\\mathbf{e}^{2})_{i}}\\end{array}$ , $\\epsilon>0$ 并且 $\\mathbf{e}=(1,1,...,1)^{T}$ 。此处 $B\\mathbf{e}^{2}$ 是模态积, ${\\bf e}^{2}$ 是 $\\mathbf{e}$ 与自身的逐元素乘积。取 $\\epsilon=1$ ,初始值 $\\mathbf{b}=\\mathbf{x}_{0}=\\mathbf{e}$ ,在表3-5列出了基于预处理算法的数值结果。 \n\n例3.2:设 $\\mathcal{A}\\in\\mathbb{R}^{3\\times n}$ 且 $\\mathbf{b}\\in\\mathbb{R}^{n\\times n}$ ,其中 \n\n$$\n\\left\\{\\begin{array}{r l}{a_{111}=1,}&{{}}\\\\ {a_{i i i}=2,\\quad}&{{}i=2,3,\\ldots,n-1,}\\\\ {a_{i,i-1,i}=-\\frac{1}{2},\\quad}&{{}i=2,3,\\ldots,n-1,}\\\\ {a_{i,i-1,i-1}=-\\frac{1}{2},\\quad}&{{}i=2,3,\\ldots,n-1,}\\\\ {a_{i,i+1,i+1}=-\\frac{1}{2},\\quad}&{{}i=2,3,\\ldots,n-1,}\\\\ {a_{n n n}=1}\\end{array}\\right.\n$$ \n\n以及 \n\n$$\n\\left\\{b_{1}=c_{0}^{2},\\right.\\quad~\\left.i=2,3,\\ldots,n-1,\\right.\n$$ \n\n其中, $\\mathbf{X}$ 是由相应迭代方法给出的 $\\mathcal{A}_{\\theta}\\mathbf{x}^{m-1}=P\\mathbf{b}$ 的解。 \n\n表3-4 预处理迭代方法的缩写及其对应的分裂表达式Table 3-4 The abbreviations of preconditioned iterative methods and their corresponding splitting \n\n
预处理迭代方法&e
PrJacobi&=D
PRGS&=D-L
PRSOR= (D-L)
\n\n表3-5 例3.1不同迭代方法在不同 $\\theta$ 取值时的结果 \n\n
0迭代方法ITCPU(s)p(8m-2)-1Fxm-2)p(M=l l = F)l = F)
0.5Jacobi300.00380.36370.3642
0.6300.00320.35110.3520
0.7 29 0.00260.34770.3493
0.8280.00210.33760.3401
0.928 0.00250.34120.3423
1.029 0.00310.34680.3486
0.5G-S29 0.00350.34120.3407
0.628 0.00290.33670.3375
0.727 0.00230.32940.3288
0.8260.00180.32130.3234
0.9260.00200.32490.3251
1.0 270.00260.33120.3318
0.5FULLM280.00510.34170.3425
0.627 0.00480.33560.3363
0.7260.00420.32870.3293
0.825 0.00380.31950.3199
0.924 0.00360.30780.3086
1.025 0.00410.31680.3172
\n\n非负张量的谱半径是由幂方法计算的。从表3-5可以看出,收敛速率的值逼近 $\\rho(M(\\mathcal{E}_{\\theta})^{-1}F_{\\theta})$ 。取 $\\hat{\\mathcal{A}}_{\\theta}=P_{R}\\mathcal{A}=(I+R_{\\theta})\\mathcal{A}$ ,相应的预处理迭代算法由表3-4给出。 \n\n![](images/1a4b6fce1dec19d7a1a8aced4570d156b8f59c6ac53ecd13be0a746f98faf9e4.jpg) \n图3-1 Jacobi 方法求解例3.2时迭代步数与 $\\theta$ 的关系Figure 3-1 The relationship between the number of iterations and $\\theta$ in the Jacobi method for Example 3.2 \n\n![](images/b6c0b56506a918362364674cb216c4f137031a1dd37766e81ffb26625094e39f.jpg) \n图 ${\\bf3–2\\,G–S}$ 方法求解例3.2时迭代步数与 $\\theta$ 的关系 \n\nFigure 3-2 The relationship between the number of iterations and $\\theta$ in the G-S method for Example 3.2 表3-6 SOR 方法在例3.2中给定 $\\theta$ 对不同 $\\omega$ 取值的结果 \n\n
00ITCPU (s)p(&xm-2)-1Fxm-2)
1.000.9130.0029820.387157
0.9930.0021740.241656
1.0030.0019370.248515
1.0140.0018200.242161
1.2340.0017620.237533
1.501.822 0.0016810.234257
1.8420.0030280.229794
1.852 0.0015740.225582
1.8630.0016380.225148
2.002.4630.0016230.225443
2.4830.0015510.230518
2.49 40.0014340.233893
2.402.9020.0015650.203108
2.9420.0015790.215557
2.952 0.0015260.218485
2.602.9730.0018300.237636
2.9930.0017540.234742
3.0740.0017240.228414
2.902.9830.0030280.314411
2.9930.0020320.310717
3.0040.0020410.309419
3.002.9730.0024190.342717
2.9940.0026740.334183
3.0040.0024680.331671
\n\n# 表3-7 SOR 方法在例子3.2中给定 $\\omega$ 值不同 $\\theta$ 取值的结果 \n\nTable 3-7 The results of the SOR method with different values of $\\theta$ for a given $\\omega$ in Example 3.2 \n\n
00ITCPU (s)p(&xm-2)-1Fx-2)
0.400.322 0.0012670.281230
0.332 0.0026770.252516
1.2050.0115680.825423
1.3060.037950.785226
0.800.6340.0017330.287109
0.6440.0017140.261338
1.2550.0016550.271493
1.5060.0046030.587669
1.8050.0067650.840047
1.000.792 0.0016410.272592
0.802 0.0016080.256247
1.2030.0017160.238389
1.5040.0036770.485387
1.8040.0050290.584190
1.601.202 0.0016540.242480
1.292 0.0016970.234479
1.302 0.0016610.22187
1.312 0.0017780.237625
1.801.442 0.0016640.244839
1.452 0.0016380.242216
1.462 0.0016590.227611
1.472 0.0017690.228245
2.201.772 0.0016150.238531
1.782 0.0018450.234160
1.792 0.0016320.226679
1.802 0.0016220.217545
2.401.942 0.0015640.232882
1.952 0.0015370.226857
1.962 0.0017010.220097
1.9720.0015530.213802
2.902.3830.0015010.213320
2.3930.0014750.207138
2.4030.0014950.204198
2.4130.0015380.201045
3.002.4630.0014740.214501
2.4730.0015380.210568
\n\n![](images/a0995dd2558ad83fb146b808fcb45aad77ef4e24173f218f0d0ba72175352f68.jpg) \n图3-3 FULLM 方法求解例3.2时迭代步数与 $\\theta$ 的关系 \n\n图3-1-3-3和表3-6-3-7分别展示了不同 $\\theta$ 在例3.2的数值结果。由图3-1-3-3,可以看出当参数 $\\theta$ 取0.75、0.82 和0.83 时,Jacobi 方法、G-S 方法和FULLM 方法迭代步数最少。对于SOR 类型方法,本节在0.9 到3 的范围内搜索参数 $\\omega$ ,并在0.3 到2.5 的范围内搜索参数 $\\theta$ 。本文在表3-6和表3-7中报告了数值结果。 \n\n例3.3:设 $\\boldsymbol{B}\\in\\mathbb{R}^{[3,5]}$ 是一个非负张量,其元素 $b_{i_{1}i_{2}i_{3}}=|\\tan(i_{1}+i_{2}+i_{3})|$ 。可以计算 $\\rho(B)=364.4895$ 。 $\\mathcal{A}=864.4895\\varOmega_{m}-\\mathcal{B}$ 是一个强 $\\mathcal{M}$ -张量。 \n\n在例3.3中,通过图3-4,可以观察到采用预处理算法的Jacobi 算法与未采用预处理算法的Jacobi 算法在CPU 时间(秒)消耗与参数 $\\theta$ 之间关系的差异。图3-5展示了预处理算法对Gauss-seidel 算法性能的影响,对比了采用与未采用预处理算法下Gauss-seidel算法的CPU 时间(秒)与 $\\theta$ 的关系。最后,图3-6对比了采用预处理算法的SOR 算法和未采用预处理算法的SOR 算法之间,CPU 时间(秒)消耗与 $\\theta$ 之间的联系。图中的CPU(s) 采用的是以10 为底的对数表示。通过表3-8展示 $\\theta$ 与经过预处理迭代算法之间的迭代步骤(IT)和CPU(s) 之间的关系,黑体数值代表该算法在例3.3中的最短CPU耗时。 \n\n![](images/cba79f346a1c06fd0d7a35974ed2efc5efa7af83929f1648feb65fbc80eb6148.jpg) \n图3-4 例3.3中Jacobi 方法中CPU(s) 与 $\\theta$ 的关系 \n\nFigure 3-4 The relationship between CPU(s) and $\\theta$ in the Jacobi method for Example 3.3 \n\n![](images/cac55c75fbfc6e98b14c1d74aa0b1099f1fecb63752fbcaa454fbb32f9fdb5f0.jpg) \n图3-5 例3.3中G-S 方法中CPU(s) 与 $\\theta$ 的关系 \n\nFigure 3-5 The relationship between CPU(s) and $\\theta$ in the G-S method for Example 3.3 \n\n表3-8 例3.3中预处理张量分裂方法的数值结果Table 3-8 Numerical results of the preprocessed tensor splitting method in the example 3.3 \n\n
0P JacobiPR GSPR SOR
CPU(s)ITCPU(s)ITCPU(s)IT
0.000.002511820 0.0047273200.001584819
0.010.002313320 0.004823120 0.001597219
0.100.0019696190.004987219 0.001536819
0.200.002079190.004964319 0.001551818
0.300.001984190.005011819 0.001437518
0.400.00195118 0.004826318 0.001343717
0.500.00190118 0.004800218 0.00131817
0.600.001841170.004871717 0.00130716
0.700.001923160.0048664160.00125815
0.800.00190416 0.004814816 0.00122415
0.900.001854160.0048036160.001176914
1.000.00182115 0.004787915 0.00112213
1.100.00179314 0.004736514 0.001105313
1.200.0017378130.004788213 0.000978412
1.300.00178313 0.004745313 0.000906712
1.400.00180212 0.004708912 0.000923311
1.410.001851110.0047816110.000933811
1.420.00195611 0.0046763110.000937010
1.430.00199411 0.004563111 0.000926211
1.440.00201411 0.0045035110.000904910
1.450.002047110.0044486110.000893110
1.460.00210312 0.004332512 0.000888212
1.470.00218412 0.0043942130.00872112
1.480.00221012 0.004224913 0.000861413
1.490.002257120.004238714 0.000854513
1.500.00227812 0.004145615 0.000831714
1.550.00230312 0.004102015 0.000933214
1.600.00235413 0.004187715 0.000936115
1.700.00239713 0.0042311160.000939515
1.800.00234613 0.0042368160.00135616
1.900.002413130.004238717 0.00137616
2.000.00247514 0.0042657180.00147917
\n\n![](images/69bea43dcbeaf51174b02b9d4289655cfa6b5658fdda638938d30dce14d22f2d.jpg) \n图3-6 例3.3中SOR 方法中CPU(s) 与 $\\theta$ 的关系 \n\nFigure 3-6 The relationship between CPU(s) and $\\theta$ in the SOR method for Example 3.3 \n\n# 3.3 本章小结 \n\n本章重点介绍了张量分裂迭代算法TSI 和基于预处理算子的张量分裂迭代算法PTSI, 并且提出了一种新的预处理算子 $P_{R}$ 。通过理论证明新的预处理算子 $P_{R}$ 不会破坏由强 $\\mathcal{M}$ -张量构成的张量方程,同时通过多个示例的数值实验,证明该预处理张量分裂迭代算法要优于张量分裂迭代算法。 \n\n# 第四章多线性张量方程分裂迭代算法的比较 \n\n本章将新提出的预处理分裂迭代算法与现有的分裂迭代算法进行比较,并证明若张量 $\\mathcal{A}$ 经过不同的预处理算子可以分别变为 $P_{1}\\mathcal{A}\\,=\\,\\mathcal{E}_{1}-\\mathcal{F}_{1}$ 和 $P_{2}\\mathcal{A}\\,=\\,\\mathcal{E}_{2}-\\mathcal{F}_{2}$ ,当 $M(\\mathcal{E}_{1})$ 的逆大于 $M(\\mathcal{E}_{2})$ , $P_{1}\\mathcal{A}$ 的谱半径更小。 \n\n# 4.1 分裂迭代算法现有比较定理 \n\n对于张量分裂算法,存在以下引理: \n\n引理4.1:[40] 设 $\\mathcal{A}\\in\\mathbb{R}^{[m,n]}$ 且 $\\mathcal{A}=\\mathcal{E}_{1}-\\mathcal{F}_{1}=\\mathcal{E}_{2}-\\mathcal{F}_{2}$ ,其中 $\\mathcal{E}_{1}-\\mathcal{F}_{1}$ 是一个弱正则分裂, $\\mathcal{E}_{2}-\\mathcal{F}_{2}$ 是一个正则分裂。如果 $\\mathcal{F}_{2}\\leq\\mathcal{F}_{1}$ , $\\mathcal{F}_{2}\\neq\\mathbf{0}$ ,则下列之一成立: \n\n$\\begin{array}{r}{\\rho(M(\\mathcal{E}_{2})^{-1}\\mathcal{F}_{2})\\leq\\rho(M(\\mathcal{E}_{1})^{-1}\\mathcal{F}_{1})<1\\,.}\\end{array}$ \n\n2. $\\rho(M(\\mathcal{E}_{2})^{-1}\\mathcal{F}_{2})\\ge\\rho(M(\\mathcal{E}_{1})^{-1}\\mathcal{F}_{1})\\ge1$ 。如果 $\\mathcal{F}_{2}<\\mathcal{F}_{1}$ , $\\mathcal{F}_{2}\\neq\\mathbf{0}$ 且 $\\rho(M(\\mathcal{E}_{1})^{-1}\\mathcal{F}_{1})>1$ 则第一个不等式是严格的。 \n\n引理4.2:[40] 设 $\\mathcal{A}\\in\\mathbb{R}^{[m,n]}$ 为一个强 $\\mathcal{M}\\cdot$ -张量,并且设 $\\mathcal{A}=\\mathcal{E}_{1}-\\mathcal{F}_{1}=\\mathcal{E}_{2}-\\mathcal{F}_{2}$ 为两个弱规则分裂,满足 $M(\\mathcal{E}_{2})\\geq M(\\mathcal{E}_{1})$ 。如果 $\\mathbf{X}$ 是 $M(\\mathcal{E}_{2})^{-1}\\mathcal{F}_{2}$ 最大特征值对应的一个正特征向量,满足 $\\mathcal{A}\\mathbf{x}^{m-1}\\geq\\mathbf{0}$ ,则有 \n\n$$\n\\begin{array}{r}{\\rho(M(\\mathscr{E}_{2})^{-1}\\mathcal{F}_{2})\\leq\\rho(M(\\mathscr{E}_{1})^{-1}\\mathcal{F}_{1}).}\\end{array}\n$$ \n\nLi 等[53] 给出了一个预处理子 $P_{\\alpha}=I+S_{\\alpha}$ 用以改善张量分裂方法,其中 \n\n$$\nS_{\\alpha}=\\left[\\begin{array}{c c c c c}{0}&{-\\alpha_{1}a_{1,2,\\dots}}&{0}&{\\cdots}&{0}\\\\ {0}&{0}&{-\\alpha_{2}a_{2,3,\\dots}}&{\\cdots}&{0}\\\\ {\\vdots}&{\\vdots}&{\\vdots}&{\\ddots}&{\\vdots}\\\\ {0}&{0}&{0}&{\\cdots}&{-\\alpha_{n-1}a_{n-1,n,\\dots,n}}\\\\ {0}&{0}&{0}&{\\cdots}&{0}\\end{array}\\right]\n$$ \n\n令 $\\mathcal{T}_{\\alpha}$ 表示通过取 $P=P_{\\alpha}$ 获得预处理方法的迭代张量。接下来的引理将用于提出方法的理论分析。 \n\n引理4.3:[40] 设 $\\mathcal{A}\\in\\mathbb{R}^{[m,n]}$ 是一个强 $\\mathcal{M}\\cdot$ -张量。如果 $\\alpha_{i}\\in[0,1]$ , $i=1,2,\\dots,n-1$ 并且 $(\\rho_{\\alpha},x_{\\alpha})$ 是 $\\mathcal{T}_{\\alpha}$ 最大实特征值和对应所有分量都为正的特征向量所组成的特征对,则 $\\mathcal{A}\\mathbf{x}_{\\alpha}^{m-1}\\geq0$ 𝛼≥0。 \n\n引理4.4:[53] 设 $\\mathcal{A}\\in\\mathbb{R}^{[m,n]}$ 是一个强 $\\mathcal{M}\\cdot$ -张量。如果 $\\mathcal{A}_{\\alpha}=P_{\\alpha}\\mathcal{A}=\\mathcal{E}_{\\alpha}-\\mathcal{F}_{\\alpha}$ 是一个收敛的规则分裂,则以下不等式成立: \n\n其中 $\\tau$ 表示不用预处理算法的张量分裂算法的迭代张量。 \n\n引理4.5:[40] 设 $\\mathcal{A}\\in\\mathbb{R}^{[m,n]}$ 是一个强 $\\mathcal{M}\\cdot$ -张量。如果 $\\alpha_{1},\\alpha_{2}\\in[0,1],i=1,\\ldots,n-1$ 且 $\\alpha_{2}\\leq\\alpha_{1}$ , 那么 $\\rho(\\mathcal{T}_{\\alpha_{1}})\\leq\\rho(\\mathcal{T}_{\\alpha_{2}})$ 。 \n\n引理4.6:[40] [54] 对于 $\\mathcal{A}\\in\\mathbb{R}_{+}^{[m,n]}$ ,存在 \n\n$$\n\\mu\\mathbf{x}^{[m-1]}\\leq(<)\\mathcal{A}\\mathbf{x}^{[m-1]},\\mathbf{x}\\geq\\mathbf{0}\n$$ \n\n其中 \n\n并且当 \n\n可以得到 \n\n# 4.2 不同预处理分裂迭代算法的比较定理 \n\n在本节中,将会给出预处理算子 $R_{\\theta}$ 与 $S_{\\alpha}$ 的比较定理。令 $\\hat{\\mathcal{A}}_{\\theta}=P_{R}\\mathcal{A}=(I+R_{\\theta})\\mathcal{A}$ $\\mathcal{A}_{\\alpha}=P_{\\alpha}\\mathcal{A}=(I+S_{\\alpha})\\mathcal{A}$ ,并且设 \n\n$$\n\\hat{\\mathcal{A}}_{\\theta}=(I+R_{\\theta})\\mathcal{A}=I_{m}-\\mathcal{L}-\\mathcal{L}^{\\prime\\prime}-\\mathcal{D}^{\\prime\\prime}-(\\mathcal{F}+R_{\\theta}\\mathcal{F}-R_{\\theta}I_{m}+\\mathcal{F}^{\\prime\\prime})\n$$ \n\n和 \n\n$$\n\\mathcal{E}_{\\theta}=I_{m}-\\mathcal{L}-\\mathcal{L}^{\\prime\\prime}-D^{\\prime\\prime},\n$$ \n\n$$\n\\mathcal{F}_{\\theta}=\\mathcal{F}+R_{\\theta}\\mathcal{F}-R_{\\theta}I_{m}+\\mathcal{F}^{\\prime\\prime}\n$$ \n\n其中 $D^{\\prime\\prime}=D^{\\prime}\\varGamma_{m}$ , $\\mathcal{L}^{\\prime\\prime}=L^{\\prime}\\varGamma_{m}$ , $\\mathcal{F}^{\\prime\\prime}=F^{\\prime}\\mathcal{I}_{m}$ , $D^{\\prime}$ , $L^{\\prime}$ , $F^{\\prime}$ 分别是 $M(R_{\\theta}{\\mathcal{L}})$ 的对角部分,严格下三角部分和严格上三角部分。 \n\n引理4.7:设 $\\mathcal{A}\\in\\mathbb{R}^{[n,n]}$ 是一个强 $\\mathcal{M}\\cdot$ -张量,并且 $\\hat{\\mathcal{A}}_{\\boldsymbol{\\theta}}=\\mathcal{E}_{\\boldsymbol{\\theta}}-\\mathcal{F}_{\\boldsymbol{\\theta}}$ 和 $\\mathcal{A}_{\\alpha}=\\mathcal{E}_{\\alpha}\\!-\\!\\mathcal{F}_{\\alpha}$ 都是(弱)正则分裂。如果对所有 $1\\leq i\\leq n\\!-\\!1$ , $k_{i}>i$ 且 $j\\leq i$ ,有 $0<\\alpha_{i}a_{i,i+1,...,i+1}a_{i+1,j,...,j}\\leq$ $a_{i,k_{i},\\ldots,k_{i}}a_{k_{i},j,\\ldots,j}<1$ ,则 $M(\\mathcal{E}_{\\theta})^{-1}\\geq M(\\mathcal{E}_{\\alpha})^{-1}$ 。 \n\n证明:设 $\\mathbf{\\mathcal{D}^{\\prime}}$ 和 $\\mathcal{L}^{\\prime}$ 是 $M(S_{\\alpha}{\\mathcal{L}})$ 的对角部分和严格下三角部分。根据Cui 等[55] 的结论,可以得到 \n\n$$\n\\begin{array}{r l}&{M(\\mathcal{E}_{\\alpha})^{-1}=\\left(I+(I-D^{\\prime})^{-1}(L+L^{\\prime})+(I-D^{\\prime})^{-1}(L+L^{\\prime})^{2}+\\cdots\\right.}\\\\ &{\\quad\\quad\\quad\\left.+\\left((I-D^{\\prime})^{-1}(L+L^{\\prime})\\right)^{n-1}\\right)(I-D^{\\prime})^{-1}\\geq0.}\\end{array}\n$$ \n\n由于 $\\mathcal{E}_{\\theta}=I_{m}-\\mathcal{L}-\\mathcal{L}^{\\prime\\prime}-D^{\\prime\\prime}$ , $M(\\mathcal{E}_{\\theta})=I-L-L^{\\prime\\prime}-D^{\\prime\\prime}$ 。根据Neumann 级数,很容易得到以下不等式成立: \n\n$$\n\\begin{array}{r l}&{M(\\mathcal{E}_{\\theta})^{-1}=(I-L-L^{\\prime\\prime}-D^{\\prime\\prime})^{-1}}\\\\ &{\\qquad\\qquad=(I-(I-D^{\\prime\\prime})^{-1}(L+L^{\\prime\\prime}))^{-1}}\\\\ &{\\qquad\\qquad=\\left(I+(I-D^{\\prime\\prime})^{-1}(L+L^{\\prime\\prime})+\\left((I-D^{\\prime\\prime})^{-1}(L+L^{\\prime\\prime})\\right)^{2}+\\cdots+\\right.}\\\\ &{\\qquad\\qquad\\left.\\left((I-D^{\\prime\\prime})^{-1}(L+L^{\\prime\\prime})\\right)^{n-1}\\right)(I-D^{\\prime\\prime})^{-1}\\geq0.}\\end{array}\n$$ \n\n考虑到对所有 $1\\;\\leq\\;i\\;\\leq\\;n\\,-\\,1$ , $k_{i}\\;>\\;i$ 且 $j~\\leq~i$ ,有 $0~<~a_{i,i+1,...,i+1}a_{i+1,j,...,j}~\\leqq$ $a_{i,k_{i},\\ldots,k_{i}}a_{k_{i},j,\\ldots,j}<1$ ,并且 $D^{\\prime\\prime}$ 是 $M(R_{\\theta}{\\mathcal{L}})$ 的对角部分,可以得到 \n\n$$\n(I-D^{\\prime\\prime})^{-1}=I+D^{\\prime\\prime}+\\cdots+(D^{\\prime\\prime})^{n-1}\\geq I.\n$$ \n\n注意 $L^{\\prime\\prime}$ 是 $M(R_{\\theta}{\\mathcal{L}})$ 的严格下三角部分。根据假设,可以得到 $D^{\\prime\\prime}\\geq D^{\\prime},L^{\\prime\\prime}\\geq L^{\\prime}$ 。因此, $(I-D^{\\prime\\prime})^{-1}\\geq(I-D^{\\prime})^{-1}$ 并且 $L+L^{\\prime\\prime}\\ge L+L^{\\prime}\\ge0$ 。根据不等式(4.1)和(4.2),可以得到 $M(\\mathcal{E}_{\\alpha})^{-1}\\geq M(\\mathcal{E}_{\\theta})^{-1}$ 。 \n\n引理4.8:设 $\\mathcal{A}\\in\\mathbb{R}^{[m,n]}$ 是一个强 $\\mathcal{M}\\cdot$ -张量。如果 $\\theta_{i}\\in[0,1]$ ,且 $i=1,2,\\dots,n-1$ 并且 $(\\rho_{\\theta},\\mathbf{x}_{\\theta})$ 是 $\\tau_{\\theta}$ 最大特征值和对应特征向量组成的的特征对,那么 $\\mathcal{A}\\mathbf{x}_{\\theta}^{m-1}\\geq\\mathbf{0}$ 𝜃≥。 \n\n证明:由于 $\\hat{\\mathcal{A}}_{\\theta}=P_{R}\\mathcal{A}=\\mathcal{E}_{\\theta}-\\mathcal{F}_{\\theta}$ , $P_{R}$ 是一个可逆矩阵, $\\mathcal{A}=P_{R}^{-1}\\mathcal{E}_{\\theta}-P_{R}^{-1}\\mathcal{F}_{\\theta}$ 𝑅𝜃𝑅𝜃。根据不等式(4.2),存在 \n\n$M\\left(P_{R}^{-1}\\mathcal{E}_{\\theta}\\right)^{-1}=M(\\mathcal{E}_{\\theta})^{-1}P_{R}\\geq O,\\quad M\\left(P_{R}^{-1}\\mathcal{E}_{\\theta}\\right)^{-1}P_{R}^{-1}\\mathcal{F}_{\\theta}=M(\\mathcal{E}_{\\theta})^{-1}\\mathcal{F}_{\\theta}\\geq\\mathcal{O}$ (4.3) ℰ −𝑃 −1 ℱ ℰ , ℱ 则 $\\mathcal{A}=P_{R}^{-1}\\mathcal{E}_{\\theta}-P_{R}^{-1}\\mathcal{F}_{\\theta}$ 𝑅𝜃𝑅𝜃是一个弱正则分裂。记 $\\mathcal{E}_{P_{R}}=P_{R}^{-1}\\mathcal{E}_{\\theta}$ 𝑅𝜃 $\\mathcal{F}_{P_{R}}=P_{R}^{-1}\\mathcal{F}_{\\theta}$ 𝑅𝜃,则 \n\n$$\nM(\\mathcal{E}_{P_{R}})^{-1}\\mathcal{F}_{P_{R}}=M\\left(P_{R}^{-1}\\mathcal{E}_{\\theta}\\right)^{-1}P_{R}^{-1}\\mathcal{F}_{\\theta}=\\mathcal{T}_{\\theta}\\ge\\mathcal{O}.\n$$ \n\n由于 $(\\rho_{\\theta},\\mathbf{x}_{\\theta})$ 是 $\\tau_{\\theta}$ 最大特征值和对应特征向量组成的的特征对,并且根据(4.4),可以得到 \n\n$$\n\\rho_{\\theta}M(\\mathcal{E}_{P_{R}}\\mathbf{x}_{\\theta}^{m-1})=\\mathcal{F}_{P_{R}}\\mathbf{x}_{\\theta}^{m-1}.\n$$ \n\n此时, $P_{R}^{-1}=(I+R_{\\theta})^{-1}=(I-R_{\\theta}^{2})^{-1}(I-R_{\\theta})=(I+R_{\\theta}^{2}(I-R_{\\theta}^{2}))^{-1}(I-R_{\\theta})$ 𝑅𝜃𝜃𝜃,可以得到 \n\n$\\mathcal{E}_{P_{R}}=(I+R_{\\theta}^{2}(I-R_{\\theta}^{2}))^{-1}(I-R_{\\theta})I_{m}-\\mathcal{L},\\quad\\mathcal{F}_{P_{R}}=\\mathcal{F}-R_{\\theta}I_{m}+R_{\\theta}^{2}(I-R_{\\theta}^{2})^{-1}(I-R_{\\theta})I_{m}.$ (4.6) 因为 $\\mathcal{F}\\geq R_{\\theta}I_{m},\\mathbf{x}_{\\theta}\\geq\\mathbf{0}$ ,并且 $\\mathcal{L}\\geq\\mathcal{O}$ ,通过(4.5) 和(4.6),得到 \n\n$$\n\\rho_{\\theta}(I+Q_{\\theta})(I-R_{\\theta})\\mathbf{x}_{\\theta}^{[m-1]}\\geq Q_{\\theta}(I-R_{\\theta})\\mathbf{x}_{\\theta}^{[m-1]}\n$$ \n\n其中 $Q_{\\theta}=R_{\\theta}^{2}(I-R_{\\theta}^{2})^{-1}$ 。此外, \n\n$$\n\\rho_{\\theta}\\left(I-\\frac{1-\\rho_{\\theta}}{\\rho_{\\theta}}Q_{\\theta}\\right)(I-R_{\\theta})\\mathbf{x}_{\\theta}^{[m-1]}\\geq\\mathbf{0}\n$$ \n\n通过 $(I-R_{\\theta}^{2})^{-1}=I+Q_{\\theta}$ 𝜃𝜃,很容易验证 $Q_{\\theta}$ 是一个严格下三角矩阵,结合 $0<\\rho_{\\theta}<1$ 可知 $\\begin{array}{r}{I-\\frac{1-\\rho_{\\theta}}{\\rho_{\\theta}}Q_{\\theta}}\\end{array}$ 𝑄是一个非奇异 $\\mathcal{M}$ -矩阵。因此, $(I-R_{\\theta})\\mathbf{x}_{\\theta}^{[m-1]}\\geq\\mathbf{0}$ 𝜃≥。由(4.5)得到, \n\n$$\n\\begin{array}{l}{\\displaystyle\\mathcal{A}\\mathbf{x}_{\\theta}^{m-1}=\\frac{1-\\rho_{\\theta}}{\\rho_{\\theta}}\\mathcal{F}_{P R}\\mathbf{x}_{\\theta}^{m-1}}\\\\ {\\displaystyle~~~~~~~~~=(F-R_{0}I_{m})x_{0}^{m-1}+R_{0}^{2}(I-R_{0}^{2})^{-1}(I-R_{0})I_{m}x_{0}^{m-1}\\geq0}\\end{array}\n$$ \n\n证明完成。 \n\n定理4.1:设 $\\mathcal{A}\\in\\mathbb{R}^{[m,n]}$ 是一个强 $\\mathcal{M}\\cdot$ -张量。对于 $\\hat{\\mathcal{A}}_{\\theta}=P_{R}\\mathcal{A}=\\mathcal{E}_{\\theta}-\\mathcal{F}_{\\theta}$ 和 $\\mathcal{A}_{\\alpha}=$ $P_{\\alpha}\\mathcal{A}=\\mathcal{E}_{\\alpha}-\\mathcal{F}_{\\alpha}$ 两个收敛的正则分裂,以下不等式成立: \n\n$$\n\\rho(\\hat{\\mathcal{T}}_{\\theta})\\leq\\rho(\\mathcal{T}_{\\alpha})<1.\n$$ \n\n证明:根据不等式(4.2) 和(4.4), $\\mathcal{A}=P_{R}^{-1}\\mathcal{E}_{\\theta}-P_{R}^{-1}\\mathcal{F}_{\\theta}$ 𝑅𝜃𝑅𝜃是一个弱正则分裂。用 $\\hat{\\mathcal{T}}$ 表ℰ −𝑃 −1 ℱ 示 $\\mathcal{A}$ 的迭代张量,即 $\\hat{\\mathcal{T}}=P_{R}^{-1}\\mathcal{E}_{\\theta}-P_{R}^{-1}\\mathcal{F}_{\\theta}$ 𝑅𝜃𝑅𝜃。如果 $(\\hat{\\rho},\\hat{\\bf x})$ 是 $\\hat{\\mathcal{T}}$ 的最大特征值和对应特征向量组成的的特征对,从引理4.8中,可以得到 $\\mathcal{A}\\mathbf{x}^{m-1}\\geq\\mathbf{0}$ 。此时 \n\n$$\nM(P_{R}^{-1}{\\mathcal E}_{\\theta})^{-1}=M({\\mathcal E}_{\\theta})^{-1}P_{R}\\geq M({\\mathcal E}_{\\theta})^{-1},\n$$ \n\n并且 \n\n$$\n\\rho(\\hat{\\mathcal{T}})=\\rho(M(P_{R}^{-1}\\mathcal{E}_{\\theta})^{-1}P_{R}^{-1}\\mathcal{F}_{\\theta})=\\rho(M(\\mathcal{E}_{\\theta})^{-1}\\mathcal{F}_{\\theta})=\\rho(\\hat{\\mathcal{T}}_{0}).\n$$ \n\n从引理2.9 和引理4.7 中,得出 $M(\\mathcal{E}_{\\theta})^{-1}\\geq M(\\mathcal{E}_{\\alpha})^{-1}$ ,那么 $\\rho(\\hat{\\mathcal{T}})=\\rho(\\hat{\\mathcal{T}}_{\\theta})\\leq\\rho(\\mathcal{T}_{\\alpha})<$ 1。 \n\n因此,结合定理4.1和引理4.7,可以得到不同预处理算法的比较定理 \n\n定理4.2:设 $\\mathcal{A}\\in\\mathbb{R}^{[n,n]}$ 是一个强 $\\mathcal{M}\\cdot$ -张量,并且 $P_{1}\\mathcal{A}=\\mathcal{E}_{1}-\\mathcal{F}_{1}$ 和 $P_{2}\\mathcal{A}=\\mathcal{E}_{2}-\\mathcal{F}_{2}$ 都是(弱)正则分裂。如果存在 $M(\\mathcal{E}_{1})^{-1}\\geq M(\\mathcal{E}_{2})^{-1}$ ,则 $\\rho(\\mathcal{T}_{1})\\leq\\rho(\\mathcal{T}_{2})$ 。 \n\n设 $\\theta_{1}=(\\theta_{1,i})$ 和 $\\theta_{2}=(\\theta_{2,i})$ 。然后,可以得出以下定理。 \n\n定理4.3:设 $\\mathcal{A}\\in\\mathbb{R}^{[m,n]}$ 是一个强 $\\mathcal{M}\\cdot$ -张量。如果 $\\theta_{1,i},\\theta_{2,i}\\in[0,1],i=1,\\ldots,n-1$ 且 $\\theta_{2}\\leq\\theta_{1}$ ,则 $\\rho(\\mathcal{T}_{\\theta_{1}})\\leq\\rho(\\mathcal{T}_{\\theta_{2}})$ 。 \n\n证明:因为 $\\theta_{1,i},\\theta_{2,i}\\,\\in\\,[0,1],i\\,=\\,1,\\ldots,n-1$ 且 $\\theta_{2}\\,\\leq\\,\\theta_{1}$ ,则有 $P_{R_{\\theta_{2}}}\\,\\leq\\,P_{R_{\\theta_{1}}}$ 。因为 $\\mathcal{E}_{\\theta_{1}}\\,\\leq\\,\\mathcal{E}_{\\theta_{2}}$ 并且 $M(\\mathcal{E}_{\\theta_{1}}),M(\\mathcal{E}_{\\theta_{2}})$ 都是非奇异 $\\mathcal{M}\\cdot$ -矩阵,故 $M(\\mathcal{E}_{\\theta_{1}})\\;\\geq\\;M(\\mathcal{E}_{\\theta_{2}})$ ,然后 $M(\\mathcal{E}_{P_{R_{\\theta_{1}}}})^{-1}\\geq M(\\mathcal{E}_{P_{R_{\\theta_{2}}}})^{-1}$ 。如果 $(\\rho(T_{\\theta_{1}}),\\mathbf{x}_{1})$ 是 $T_{\\theta_{1}}$ 的特征对,根据引理4.8,有 $\\mathcal{A}\\mathbf{x}_{1}^{m-1}\\geq\\mathbf{0}$ 1≥。进一步,根据命题3.1和定理2.2,得到 $\\rho(T_{\\theta_{1}})\\leq\\rho(T_{\\theta_{2}})$ 。 \n\n# 4.3 数值实验 \n\n本节将通过数值例子来比较预处理器 $P_{R}$ 和其他预处理器的效率。在接下来的例子中,CPU 时间以秒为单位给出。迭代步骤的数量(用IT 表示)被用来衡量所提出算法的效率。迭代的最大次数N 设为1000。所有的优化参数都是通过数值实验确定的。如果 \n\n$$\n\\left\\|\\mathcal{A}\\mathbf{x}_{N}^{m-1}-\\mathbf{b}\\right\\|_{2}<\\varepsilon,\n$$ \n\n测试将会停止。所有数值结果分别经过 10 次实验后取均值,并且 CPU 保留小数点后 7 位显示在表4-1 和表4-2 中。在这些例子中的 $\\mathcal{A}$ 是强 $\\mathcal{M}\\cdot$ -张量,并且方程(1.2) 右边的元素 $\\mathbf{b}$ 是1。 \n\n例4-1:设 $\\boldsymbol{B}\\in\\mathbb{R}^{[3,n]}$ 是一个非负张量,其中 $M({\\mathcal{B}})=\\operatorname{rand}(n,n)$ ,这里rand 是一个MATLAB 函数,该函数的作用是对于 $i=2,3,\\ldots,n\\,.$ , $b_{i i}=b_{i-1,i-1}=b_{i+1,i}=b_{i,i+1}=1$ $b_{i,i+1}=1/6$ ,其余元素为零。设 $\\mathscr{A}=n^{2}\\mathscr{I}_{m}-0.01\\mathscr{B}.$ 。 \n\n例4-2:设 $\\mathcal{A}\\in\\mathbb{R}^{[3,n]}$ 并且 $\\mathcal{B}\\in\\mathbb{R}^{n}$ 有 \n\n$$\n\\left\\{\\begin{array}{l l}{\\begin{array}{r l}{a_{i i i}=1,}&{{}\\quad i=1,2,\\ldots,n,}\\\\ {a_{1i i}=-\\frac{1}{2},}&{{}\\quad i=2,3,\\ldots,n-1,}\\\\ {a_{i,i,i-1}=-\\frac{1}{2},}&{{}\\quad i=2,3,\\ldots,n-1,}\\\\ {a_{i,i-1,i-1}=-\\frac{1}{4},}&{{}\\quad i=2,3,\\ldots,n-1,}\\\\ {a_{i,i+1,i+1}=-\\frac{1}{2},}&{{}\\quad i=2,3,\\ldots,n-1,}\\\\ {a_{i n n}=-\\frac{1}{2},}&{{}\\quad i=2,3,\\ldots,n-3,}\\\\ {a_{n i}=-\\frac{1}{2},}&{{}\\quad i=2,3,\\ldots,n-1,}\\\\ {a_{i,i,i+1}=-\\frac{1}{4},}&{{}\\quad i=2,3,\\ldots,n-1,}\\end{array}}\\end{array}\\right.\n$$ \n\n和 \n\n$$\nb_{i}={\\left\\{\\!\\!\\begin{array}{l l}{(1/2)^{2},}&{i=1,}\\\\ {2/(n-1)^{2},}&{i=2,3,\\ldots,n-1,}\\\\ {(1/3)^{2},}&{i=n}\\end{array}\\!\\!\\right.}\n$$ \n\n在例子4-1和4-2中,取初始值 $\\mathbf{x}_{0}=[1,1,\\ldots,1]^{T}$ 并设置 $n=200$ 和 $n=250$ 。在本节的数值实验中,停止的最大误差为 $\\varepsilon=10^{-12}$ 。示例测试了使用预处理器 $P_{R}$ 、DTNN算法[28] 和牛顿方法的预处理技术。半对称化张量 $\\mathcal{A}$ 在多线性张量方程中的系数的计算使用了tensor toolbox 2.6 包中的symmetrize 函数。在文献[28] 中,作者展示了DTNN算法在示例测试中的误差方差,并指出当参数 $h$ 设置为0.45 时,DTNN 算法达到最佳求解效果。 \n\n表4-1 不同预处理算子在例子4-1中的运行时间(CPU) 和迭代步数(IT)Table 4-1 The running times (CPU) and iteration counts (IT) of different preconditioning operators in \n\n
n算法 JacobianG-SSOR
CPUITCPUITCPUIT
CPUITCPUITCPUIT
200Sa0.07234291360.07038331360.0595548108
200Re0.06643671360.06831291360.0592787108
2000.07033821360.07123581360.056116108
200Smax0.06783231360.06856141360.0586666108
200Rp + Sα0.07188581360.07396281360.0644478108
250S.0.38047071300.36618271300.0795675104
250Re0.09979541300.10130391300.0786205104
250G.0.10021841300.10275521300.0791688104
250Smax0.10174431300.10332181300.0802965104
250Rp+ Ss0.10560841300.1030721300.0804213104
\n\n本文将新提出的预处理算子与现有的预处理算子 $S_{\\alpha}$ 、 $G_{\\alpha}$ [56]、 $S_{m a x}$ [41]、 $R_{\\beta}+S_{\\alpha}$ [57]通过数值实验进行对比。其中 \n\n$$\nG_{\\alpha}=\\left[\\begin{array}{c c c c c}{0}&{0}&{0}&{\\cdots}&{0}\\\\ {-\\alpha_{2}\\alpha_{2}1\\cdots1}&{0}&{0}&{\\cdots}&{0}\\\\ {-\\alpha_{3}\\alpha_{31\\cdots1}}&{0}&{0}&{\\cdots}&{0}\\\\ {\\vdots}&{\\vdots}&{\\vdots}&{\\ddots}&{\\vdots}\\\\ {-\\alpha_{n}\\alpha_{n1\\cdots1}}&{0}&{0}&{\\cdots}&{0}\\end{array}\\right],\n$$ \n\n$$\nS_{\\operatorname*{max}}=(s_{i,k_{i}}^{m})=\\left\\{\\!\\!\\!\\begin{array}{l l}{\\!-a_{i,k_{i},\\ldots,k_{i}},}&{\\mathrm{if}\\;i=1,\\ldots,n-1,k_{i}>i}\\\\ {\\!0,}&{\\mathrm{otherwise},}\\end{array}\\!\\!\\right.\n$$ \n\n$$\nR_{\\beta}=\\left[\\begin{array}{c c c c c}{0}&{-\\beta_{1}a_{1,2,\\dots,2}}&{-\\beta_{2}a_{1,3,\\dots,3}}&{\\cdots}&{-\\beta_{n-1}a_{1,n,\\dots,n}}\\\\ {0}&{0}&{0}&{\\cdots}&{0}\\\\ {\\vdots}&{\\vdots}&{\\vdots}&{\\ddots}&{\\vdots}\\\\ {0}&{0}&{0}&{\\cdots}&{0}\\end{array}\\right].\n$$ \n\n表4-2 不同预处理算子在例子4-2中的运行时间(CPU) 和迭代步数(IT)Table 4-2 The running times (CPU) and iteration counts (IT) of different preconditioning operators in \n\n
n算法 JacobianG-SSOR
CPUITCPUITCPUIT
200Ss0.06216421330.06434911320.0595548102
200Re0.06043671330.06031241320.0512787102
200Ga0.06054731330.06132471320.052317102
200Smax0.06371631330.06430581320.054806102
200Rp + Sa0.06178321330.06341871320.0565457102
250Ss0.24400471280.25911471260.079942596
250Re0.08969921280.09149891280.064978596
250G.0.09247491280.09641281260.068698896
250Smax0.09112271280.09701241280.070179696
250Rp + Ss0.09472751280.0981431280.070014696
\n\n![](images/a46727f1032503c10be1c8745739791870884b6796fa07a99db795b7dbd10d2f.jpg) \n图4-1 预处理算法与其他方法的比较 \n\nFigure 4-1 Comparison of preprocessing algorithms with other methods \n\n![](images/4cbc38ef4d0a968011ecba945efe9381eae73c211446a61716dd141addbad7f2.jpg) \n图4-2 不同预处理算法的迭代步骤与运行时间比较 \n\nFigure 4-2 Comparison of iterative steps and running time of different preprocessing algorithms \n\n从表4-1,表4-2 和图4-2 中可以看出,本文提出的预处理方法在处理 $\\mathsf{n}\\!\\!=\\!\\!200$ 和 $\\mathtt{n{=}250}$ 的高维张量方程时,展现了比其他算法更短的执行时间。此外,根据图4-1,以 $R_{\\theta}$ 构成的预处理算法的速度比牛顿法和DTNN 算法所需迭代步数更少,执行时间更短,收敛速度更快。这说明本文提出的预处理技术能有效提高高维张量方程求解的效率和速度。 \n\n# 4.4 本章小结 \n\n本章重点介绍了张量分裂迭代算法的比较定理,并且以预处理算子 $S_{\\alpha}$ 为例,提出了不同预处理算子的张量分裂迭代算法的比较定理。最后通过数值实验证明本文提出的预处理张量分裂迭代算法比之前的预处理张量迭代算法求解效率要高。 \n\n# 第五章结论与展望 \n\n# 研究结论 \n\n随着科技的迅猛进步,传统的矩阵模型已不能满足现代科学研究的复杂需求。张量,作为矩阵在更高维度空间的扩展,通过其多维数组的形式,为处理和分析高维数据提供了一种更有效的方式。张量的阶数和维度分别代表了它能描述的特征数量和每个特征的数据量,因此张量能够更丰富、精细和准确地反映实体的内部属性。由于张量元素间的复杂相互作用,张量模型在维护数据内在联系方面展现出其独特优势,特别是在保留研究对象的深层特征和更接近实际情况的属性上,相较于矩阵模型,展现了更优的效果。然而,张量方程求解的高复杂度和计算挑战仍是亟待解决的问题。本文旨在通过设计高效的预处理算子和探索基于此算子的张量分裂迭代方法,以减少迭代次数和缩短求解时间,从而提高张量方程求解的效率。 \n\n本文还基于现有的张量分裂迭代比较定理,结合新提出的预处理算子,证明了不同预处理算子处理后的张量方程求解效果的比较定理。具体贡献可以概括为:1. 本文综述了张量方程的理论基础、数据特性、求解技术的演进及其研究的背景与重要性。2. 本文汇总了解决张量方程组的相关理论和算法,包括张量分裂方法及其理论基础,以及Jacobi、Gauss-seidel、SOR 等传统求解方法。3. 本文提出了一种新的预处理算子,旨在提升张量分裂迭代算法解决张量方程的效率。通过比较验证,证实了该预处理方法相比未使用预处理的算法有显著的效率提升。4. 本文通过理论分析和实例比较,提出了不同预处理算子之间的比较定理,通过数值实验说明本研究提出的预处理算子在效率上超越其他常用预处理方法。 \n\n# 未来研究展望 \n\n本文提出的预处理张量迭代算法,在求解张量方程方面展示了显著的效率提升,还通过比较定理展示了不同预处理算法之间的效果对比。针对算法的未来优化和研究,计划主要从以下两方面入手: \n\n1. 尽管本研究通过引入预处理算子显著提高了求解效率,实验结果也揭示了参数选择对计算时间和迭代次数的重要影响。目前,为简化实验流程,采用了统一的参数 \n\n设置。为了进一步提升算法性能,未来研究应当深入探讨并测试不同参数组合的效果,以确定最优参数配置。 \n\n2. 本文的数值实验主要聚焦于维度为200 和250 的 $\\mathcal{M}$ -张量方程求解。鉴于高维数据的普遍性和重要性,未来工作将扩展到更高维度的 $\\mathcal{M}$ -张量方程求解,探索本算法在处理更复杂、更高维度问题时的有效性和可行性。 \n\n# 参考文献 \n\n[1] CONREY J B. The riemann hypothesis[J]. Notices of the AMS, 2003, 50(3): 341-353. [2] BOOTHBY W M. An introduction to differentiable manifolds and riemannian geometry [M]. Academic press, 1986. [3] QI L. Eigenvalues of a real supersymmetric tensor[J]. Journal of Symbolic Computation, 2005, 40(6): 1302-1324. [4] LI X, NG M K. Solving sparse non-negative tensor equations: algorithms and applications[J]. Frontiers of Mathematics in China, 2015, 10: 649-680. [5] SIDIROPOULOS N D, DE LATHAUWER L, FU X, et al. Tensor decomposition for signal processing and machine learning[J]. IEEE Transactions on signal processing, 2017, 65(13): 3551-3582. [6] MISCUGLIO M, SORGER V J. Photonic tensor cores for machine learning[J]. Applied Physics Reviews, 2020, 7(3). [7] ESTIENNE F, MATTHIJS N, MASSART D, et al. Multi-way modeling of high-dimensionality electroencephalograph ic data[J]. Chemometrics and Intelligent Laboratory Systems, 2001, 58(1): 59-72. [8] QI L. Symmetric nonnegative tensors and copositive tensors[J]. Linear Algebra and its Applications, 2013, 439(1): 228-238. [9] QI L, SUN W, WANG Y. Numerical multilinear algebra and its applications[J]. Frontiers of Mathematics in China, 2007, 2: 501-526.\n\n [10] VASILESCU M A O, TERZOPOULOS D. Multilinear subspace analysis of image ensembles[C]//2003 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2003. Proceedings.: Vol. 2. IEEE, 2003: II-93.\n\n [11] MORTON J, LIM L H. Principal cumulant component analysis[J]. preprint, 2009.\n\n [12] SAVAS B, LIM L H. Quasi-newton methods on grassmannians and multilinear approximations of tensors[J]. SIAM Journal on Scientific Computing, 2010, 32(6): 3352- 3393. \n\n[13] MØRUP M, HANSEN L K, ARNFRED S M. Erpwavelab: A toolbox for multi- channel analysis of time–frequency transformed event related potentials[J]. Journal of \n\nneuroscience methods, 2007, 161(2): 361-368.\n\n [14] DE LATHAUWER L. Signal processing based on multilinear algebra[M]. Katholieke Universiteit Leuven Leuven, 1997.\n\n [15] COMON P, MOURRAIN B. Decomposition of quantics in sums of powers of linear forms[J]. Signal Processing, 1996, 53(2-3): 93-107.\n\n [16] DE LATHAUWER L, VANDEWALLE J. Dimensionality reduction in higher-order signal processing and rank- $(\\mathrm{r}1,\\;\\mathrm{r}2,\\cdots,\\;\\mathrm{r}\\mathrm{n})$ reduction in multilinear algebra[J]. Linear Algebra and its Applications, 2004, 391: 31-55.\n\n [17] BALLANI J, GRASEDYCK L. A projection method to solve linear systems in tensor format[J]. Numerical linear algebra with applications, 2013, 20(1): 27-43.\n\n [18] CHEN Z, LU L. A projection method and kronecker product preconditioner for solving sylvester tensor equations[J]. Science China Mathematics, 2012, 55: 1281-1292.\n\n [19] KOFIDIS E, REGALIA P A. Tensor approximation and signal processing applications [J]. Contemporary Mathematics, 2001, 280: 103-134.\n\n [20] LI B W, TIAN S, SUN Y S, et al. Schur-decomposition for 3d matrix equations and its application in solving radiative discrete ordinates equations discretized by chebyshev collocation spectral method[J]. Journal of Computational Physics, 2010, 229(4): 1198- 1212.\n\n [21] MALEK A, BOJDI Z K, GOLBARG P N N. Solving fully three-dimensional microscale dual phase lag problem using mixed-collocation, finite difference discretization[Z]. 2012.\n\n [22] MOMENI-MASULEH S, PHILLIPS T N. Viscoelastic flow in an undulating tube using spectral methods[J]. Computers & fluids, 2004, 33(8): 1075-1095.\n\n [23] MALEK A, MOMENI-MASULEH S H. A mixed collocation–finite difference method for 3d microscopic heat transport problems[J]. Journal of Computational and Applied Mathematics, 2008, 217(1): 137-147.\n\n [24] DING W, WEI Y. Solving multi-linear systems with m-tensors[J]. Journal of Scientific Computing, 2016, 68(2): 689-715. \n\n[25] XIE Z J, JIN X Q, WEI Y M. Tensor methods for solving symmetric m-tensor systems [J]. Journal of Scientific Computing, 2018, 74(1): 412-425.\n\n [26] HAN L. A homotopy method for solving multilinear systems with m-tensors[J]. Applied Mathematics Letters, 2017, 69: 49-54.\n\n [27] HE H, LING C, QI L, et al. A globally and quadratically convergent algorithm for solving multilinear systems with m-tensors[J]. Journal of Scientific Computing, 2018, 76(3): 1718-1741.\n\n [28] WANG X, CHE M, WEI Y. Neural networks based approach solving multi-linear systems with m-tensors[J]. Neurocomputing, 2019, 351: 33-42.\n\n [29] LI D H, XIE S, XU H R. Splitting methods for tensor equations[J]. Numerical Linear Algebra with Applications, 2017, 24(5): e2102.\n\n [30] LEVENBERG K. A method for the solution of certain non-linear problems in least squares[J]. Quarterly of applied mathematics, 1944, 2(2): 164-168.\n\n [31] MARQUARDT D W. An algorithm for least-squares estimation of nonlinear parameters [J]. Journal of the society for Industrial and Applied Mathematics, 1963, 11(2): 431-441.\n\n [32] YAMASHITA N, FUKUSHIMA M. On the rate of convergence of the levenberg- marquardt method[C]//Topics in Numerical Analysis: With Special Emphasis on Nonlinear Problems. Springer, 2001: 239-249.\n\n [33] FAN J. The modified levenberg-marquardt method for nonlinear equations with cubic convergence[J]. Mathematics of Computation, 2012, 81(277): 447-466.\n\n [34] FAN J Y, YUAN Y X. On the quadratic convergence of the levenberg-marquardt method without nonsingularity assumption[J]. Computing, 2005, 74: 23-39.\n\n [35] LV C Q, MA C F. A levenberg–marquardt method for solving semi-symmetric tensor equations[J]. Journal of Computational and Applied Mathematics, 2018, 332: 13-25.\n\n [36] BOSE N, BOSE N. Gröbner bases: An algorithmic method in polynomial ideal theory [M]. Springer, 1995.\n\n [37] DREXLER F J. Eine methode zur berechnung sämtlicher lösungen von polynomgleichungssystemen[J]. Numerische Mathematik, 1977, 29(1): 45-58. \n\n[38] GARCIA C B, ZANGWILL W I. Finding all solutions to polynomial systems and other systems of equations[J]. Mathematical Programming, 1979, 16(1): 159-176.\n\n [39] LIU D, LI W, VONG S W. The tensor splitting with application to solve multi-linear systems[J]. Journal of Computational and Applied Mathematics, 2018, 330: 75-94.\n\n [40] LI W, LIU D, VONG S W. Comparison results for splitting iterations for solving multi- linear systems[J]. Applied Numerical Mathematics, 2018, 134: 105-121.\n\n [41] CUI L B, LI M H, SONG Y. Preconditioned tensor splitting iterations method for solving multi-linear systems[J]. Applied Mathematics Letters, 2019, 96: 89-94.\n\n [42] KOLDA T G. Multilinear operators for higher-order decompositions.[R]. Sandia National Laboratories (SNL), Albuquerque, NM, and Livermore, CA (United States), 2006.\n\n [43] LIM L H. Singular values and eigenvalues of tensors: a variational approach[C]//1st IEEE International Workshop on Computational Advances in Multi-Sensor Adaptive Processing, 2005. IEEE, 2005: 129-132.\n\n [44] DING W, QI L, WEI Y. M-tensors and nonsingular m-tensors[J]. Linear Algebra and Its Applications, 2013, 439(10): 3264-3278.\n\n [45] ZHANG L, QI L, ZHOU G. M-tensors and some applications[J]. SIAM Journal on Matrix Analysis and Applications, 2014, 35(2): 437-452.\n\n [46] BERMAN A, PLEMMONS R J. Nonnegative matrices in the mathematical sciences[M]. SIAM, 1994.\n\n [47] VARGA R S. Basic iterative methods and comparison theorems[M]//Matrix Iterative Analysis. Springer, 2009: 63-110.\n\n [48] KOLDA T G, BADER B W. Tensor decompositions and applications[J]. SIAM review, 2009, 51(3): 455-500.\n\n [49] HARDER A M. Fixed point theory and stability results for fixed point iteration procedures.[Z]. 1988.\n\n [50] VARGA R S. Iterative analysis[J]. New Jersey, 1962, 322.\n\n [51] YANG Y, YANG Q. Further results for perron–frobenius theorem for nonnegative tensors [J]. SIAM Journal on Matrix Analysis and Applications, 2010, 31(5): 2517-2530. \n\n[52] YANG Y, YANG Q. A study on eigenvalues of higher-order tensors and related polynomial optimization problems[M]//Beijing: Science Press. 2015.\n\n [53] LIU D, LI W, VONG S W. A new preconditioned sor method for solving multi-linear systems with an m-tensor[J]. Calcolo, 2020, 57(2): 15.\n\n [54] QI L, LUO Z. Tensor analysis: spectral theory and special tensors[M]. SIAM, 2017.\n\n [55] CUI L B, LIAN G G, YUAN J Y. Existence and uniqueness of positive solution for multilinear systems with generalized strong m-tensor[J]. Applied Mathematics Letters, 2022, 133: 108262.\n\n [56] ZHANG Y, LIU Q, CHEN Z. Preconditioned jacobi type method for solving multi-linear systems with m-tensors[J]. Applied Mathematics Letters, 2020, 104: 106287.\n\n [57] CUI L B, ZHANG X Q, WU S L. A new preconditioner of the tensor splitting iterative method for solving multi-linear systems with m-tensors[J]. Computational and applied mathematics, 2020, 39(3): 173.\n\n [58] BADER B W, KOLDA T G. Algorithm 862: Matlab tensor classes for fast algorithm prototyping[J]. ACM Transactions on Mathematical Software (TOMS), 2006, 32(4): 635-653.\n\n [59] CUI L B, CHEN C, LI W, et al. An eigenvalue problem for even order tensors with its applications[J]. Linear and Multilinear Algebra, 2016, 64(4): 602-621.\n\n [60] CUI L B, LI W, NG M K. Primitive tensors and directed hypergraphs[J]. Linear Algebra and its Applications, 2015, 471: 96-108.\n\n [61] WEI Y, DING W. Theory and computation of tensors: multi-dimensional arrays[M]. Academic Press, 2016.\n\n [62] HADJIDIMOS A, NOUTSOS D, TZOUMAS M. More on modifications and improvements of classical iterative schemes for m-matrices[J]. Linear algebra and its applications, 2003, 364: 253-279.\n\n [63] KOTAKEMORI H, HARADA K, MORIMOTO M, et al. A comparison theorem for the iterative method with the preconditioner $\\mathrm{i}+$ smax)[J]. Journal of Computational and Applied Mathematics, 2002, 145(2): 373-378. \n\n[64] LIANG M, ZHENG B, ZHENG Y, et al. A two-step accelerated levenberg– marquardt method for solving multilinear systems in tensor-train format[J]. Journal of Computational and Applied Mathematics, 2021, 382: 113069.\n\n [65] LIU D, LI W, VONG S W. Tensor complementarity problems: the gus-property and an algorithm[J]. Linear and Multilinear Algebra, 2018, 66(9): 1726-1749.\n\n [66] LIU D, LI W, VONG S W. Relaxation methods for solving the tensor equation arising from the higher-order markov chains[J]. Numerical Linear Algebra with Applications, 2019, 26(5): e2260.\n\n [67] LIU W, LI W. On the inverse of a tensor[J]. Linear Algebra and its Applications, 2016, 495: 199-205.\n\n [68] MILASZEWICZ J P. Improving jacobi and gauss-seidel iterations[J]. Linear Algebra and Its Applications, 1987, 93: 161-170.\n\n [69] NEUMANN M, PLEMMONS R J. Convergence of parallel multisplitting iterative methods for m-matrices[J]. Linear algebra and its applications, 1987, 88: 559-573.\n\n [70] NI Q, QI L. A quadratically convergent algorithm for finding the largest eigenvalue of a nonnegative homogeneous polynomial map[J]. Journal of Global Optimization, 2015, 61(4): 627-641.\n\n [71] SHAO J, YOU L. On some properties of three different types of triangular blocked tensors [J]. Linear Algebra and its Applications, 2016, 511: 110-140.\n\n [72] WANG X, CHE M, WEI Y. Existence and uniqueness of positive solution for $\\mathrm{h}+$ -tensor equations[J]. Applied Mathematics Letters, 2019, 98: 191-198.\n\n [73] WANG X, MO C, CHE M, et al. Accelerated dynamical approaches for finding the unique positive solution of ks-tensor equations[J]. Numerical Algorithms, 2021, 88(4): 1787-1810.\n\n [74] YAN J C, XU Y, HUANG Z H. A homotopy method for solving multilinear systems with strong completely positive tensors[J]. Applied Mathematics Letters, 2022, 124: 107636.\n\n [75] YANG J H, ZHAO X L, JI T Y, et al. Low-rank tensor train for tensor robust principal component analysis[J]. Applied Mathematics and Computation, 2020, 367: 124783. \n\n[76] YANG J H, ZHAO X L, MEI J J, et al. Total variation and high-order total variation adaptive model for restoring blurred images with cauchy noise[J]. Computers & Mathematics with Applications, 2019, 77(5): 1255-1272.\n\n [77] LIANG M, ZHENG B, ZHAO R. Alternating iterative methods for solving tensor equations with applications[J]. Numerical Algorithms, 2019, 80(4): 1437-1465.\n\n [78] ZHENG B, MIAO S X. Two new modified gauss–seidel methods for linear system with m-matrices[J]. Journal of computational and applied mathematics, 2009, 233(4): 922- 930. \n\n# 攻读学位期间取得与学位论文相关的成果 \n\n# 发表和投稿与学位论文相关学术论文 \n\n[1] Li J , Deng X.A preconditioned splitting iterative method for solving multi-linear systems with M-tensor.Southeast Asian Bulletin of Mathematics(已录用) \n\n# 致谢 \n\n时光飞逝,岁月如梭,在广东工业大学的学生生涯即将画上句号之际,我满怀感慨。回想八年前,我初次踏入这所校园,心中充满对未来的憧憬;四年前,面对考研失 败的挫折与不甘,我的心情是多么复杂;三年前,当我终于考研成功,那份喜悦与对研究生生活的期待是难以言喻的。 \n\n首先,我要衷心感谢我的导师,邓秀勤教授。刚步入研究生院门时,虽然我满腔热忱,却也感到迷茫。正是邓老师及时的指导和建议,使我能够迅速地适应并投身于新的学习阶段。此外,在我小论文和毕业论文写作完成过程中,从开题、中期、初稿、第一版终稿、第二版终稿、第三版终稿和最终的定稿,邓秀勤老师都给予了我重要的帮助与指导。 \n\n我还要特别感谢刘冬冬副教授,不仅在小论文的选题和方向上给予了宝贵的指导,而且在论文撰写和实验过程中提供了极大的帮助。在我的整个研究生学习过程中,两位老师不只是用他们的专业知识为我指路,更以耐心和智慧鼓励我面对各种研究挑战, 他们对我的学术探索和个人成长给予了无私的支持和鼓舞,这对我完成学业至关重要。 \n\n特别感谢常静雅老师对我的毕业论文的悉心指导。在我撰写毕业论文的过程中,您不仅以严谨的态度进行审核,还提供了宝贵的纠错指导,这对我完成论文具有不可估量的帮助。,让我深刻理解到学术研究的严谨 性和专业性。感谢您在这段重要旅程中给予我的帮助和支持。 \n\n此外,我还要感谢刘威师兄和丽萍师姐,他们慷慨分享自己的科研经验和面对挑战的策略,对我们帮助巨大。同时,感谢实验室所有的同门,尤其是唐舒婷,我们在遇到研究难题和写作困境时相互鼓励、互相支持。 \n\n我还要对我的室友们表达特别的感谢,在研究生生活的点点滴滴中,他们给予了我巨大的帮助和支持,这段艰难而难忘的经历我将永远铭记。 \n\n最重要的,我要向我的家人表达最深的感激。他们无条件的爱、理解和鼓励是我完成这段艰苦旅程的坚强支柱。他们的爱和牺牲无法用语言全然表达,没有他们的支持,我无法走到今天。 \n\n最后,我对所有直接或间接帮助我完成硕士学位的个人和机构致以最诚挚的谢意。感谢你们的陪伴和支持,使我能够顺利完成我的学术之旅。 " diff --git a/app_pkg/examples/邱茜茜.md b/app_pkg/examples/邱茜茜.md new file mode 100644 index 0000000..76925a6 --- /dev/null +++ b/app_pkg/examples/邱茜茜.md @@ -0,0 +1,98 @@ +# 经挠动脉和股动脉穿刺行支架置入术治疗颅内动脉狭窄的效果比较 + +邱茜茜 蔡直铎 徐晓敏(焦煤集团中央医院 神经内科 河南 焦作454000) + +摘要:目的比较经桡动脉和股动脉穿刺行支架置入术治疗颅内动脉狭窄的效果。方法选取2019 年12月至2021年1月焦煤集团中央医院收治的60例颅内动脉狭窄患者作为研究对象根据治疗方式分为桡动脉穿刺组(30例)和股动脉穿刺组(30例)。挠动脉穿刺组接受经挠动脉穿刺行支架植入术股动脉穿刺组接受经股动脉穿刺行支架植入术。比较两组患者手术指标(手术时间、肢体制动时间、止血包扎时间、鞘管置入时间、手术成功率及穿刺成功率)以及并发症发生情况。结果桡动脉穿刺组肢体制动时间、止血包扎时间短于股动脉穿刺组鞘管置入时间、手术时间长于股动脉穿刺组( $P<0.\ 05)$ )。两组患者手术成功率及穿刺成功率比较差异无统计学意义( $P>0.\,05)$ 。股动脉穿刺组肺栓塞、术后尿留、动脉闭塞、穿刺部位血肿、动脉痉挛等并发症发生率高于动脉穿刺组( $P<0.\;05`$ )。结论经桡动脉穿刺行支架植入术治疗颅内动脉狭窄可优化手术指标 降低并发症发生率。 + +R615 doi 10. 3969 /j. issn. 1004 - 437X. 2021. 34. 039 + +# Comparison of Stenting Through Radial Artery and Femoral Artery in the Treatment of Intracranial Artery Stenosis + +QIU Xixi CAI Zhiduo XU Xiaomin + +Department of Neurology the Coking Coal Group Central Hospital Jiaozuo 454000 China + +Abstract Objective To compare the effect of stent implantation through radial artery and femoral artery in the treatment of intracranial artery stenosis. Methods A total of 60 patients with intracranial artery stenosis treated in the Coking Coal Group Central Hospital from December 2019 to January 2021 were selected as the research objects. According to the treatment methods they were divided into radial artery puncture group 30 cases and femoral artery puncture group 30 cases . The radial artery puncture group received stent implantation through radial artery puncture and the femoral artery puncture group received stent implantation through femoral artery puncture. The operation indexes operation time limb braking time hemostatic dressing time sheath insertion time operation success rate and puncture success rate and complications were compared between the two groups. Results Compared with the radial artery puncture group the limb braking time hemostasis and bandage time were shorter in the femoral artery puncture group and the sheath insertion time and operation time were longer in the femoral artery puncture group $P<0.\;05)$ . There was no statistical significance in the success rate of operation and puncture between the two groups $P>0.\,05$ . The incidence of complications such as pulmonary embolism postoperative urinary retention arterial occlusion puncture site hematoma and arterial spasm in femoral artery puncture group were higher than those in radial artery puncture group $P<0.\,05)$ . Conclusion Stent implantation through radial artery puncture in the treatment of intracranial artery stenosis can optimize the surgical indexes and reduce the incidence of complications. + +nial artery stenosis stent implantation radial artery puncture femoral artery + +目前经股动脉穿刺支架植入术为临床治疗血管狭窄的传统术式[-2]。但是部分患者存在主动脉钙化严重、主动脉弓迁曲、股动脉闭塞等情况,影响治疗[3]。经桡动脉穿刺较为安全且患者痛苦小,易于接受,已成为实施血管造影技术的常用方式[4-6]。但是经挠动脉穿刺行支架置入术治疗颅内动脉狭窄的相关研究较少本研究旨在比较经桡动脉和股动脉穿刺行支架置入术治疗颅内动脉狭窄的效果。 + +# 1 资料与方法 + +1. 1 2019 12 2021 1煤集团中央医院收治的60例颅内动脉狭窄患者作为研究对象根据治疗方式分为桡动脉穿刺组(30例)和30 。 16 1445 ~ 68 $55.\,46\pm4.\,12)$ 岁;疾病类型基底动脉狭窄5例,椎动脉狭窄12例,颈内动脉狭窄13 body mass index BMI 20. 78 ~ + +$24.\,01\,\mathrm{\kg\cdot{m}^{\mathrm{~-~}2}}$ ,平均 $(\ 22.\ 47\ \pm2.\ 56)\ \mathrm{kg}\ ^{\bullet}\ \mathrm{m}\,^{-2}$ 。股动脉穿刺组男18例,女12例;年龄 $42\,\sim70\$ 岁,平均$56.\,11\pm4.\,16)$ 岁;疾病类型基底动脉狭窄6例,椎动14 10 BMI 20. 41 ~$24.\:32\:\mathrm{~kg~}\cdot\mathrm{m~}^{-2}$ 平均 $(~22.~76~\pm~2.~62)~\mathrm{kg}~\cdot~\mathrm{m}^{\mathrm{~-~2~}}$ 。两组患者一般资料比较,差异无统计学意义( $P>0.\;05\,)$ 。本研究经焦煤集团中央医院医学伦理委员会审核批准。患者对本研究内容知情自愿签署知情同意书。 + +# 1. 2 + +1. 2. 1 1 CT、MRI动脉狭窄;(2)无手术禁忌证;(3)临床资料完整;4 。 + +1. 2. 2 1 、病;(2)肝、肾功能异常;(3)合并血管瘤、恶性肿瘤。 + +1. 3 + +1.3.1桡动脉穿刺组术前口服氯吡格雷和阿司匹林 ${\geqslant}5$ d Seldinger入术[7-8]。患者取仰卧位,垫高腕部,平伸外展手臂,选取桡骨茎突上 $1.\,0\sim2.\,0\,\,\mathrm{{cm}}$ 动脉搏动最强处穿刺;TERUMO 6 F 1 F周长 $1\ \mathrm{mm}$ CORDIS 6 F持一致的 $30^{\circ}$ 方向进针。穿刺成功后将 $50~\mathrm{U}\cdot\mathrm{kg}^{\mathrm{~-~}1}$ 普通肝素经鞘管注入,若手术时间 $>\,1\,\mathrm{~h~}$ ,再追加$1\ 000\ \mathrm{U}\cdot\mathrm{h}^{\mathrm{~-~}1}$ 。穿刺成功后给予全身麻醉经桡动脉鞘将引l导管引|进远端动脉,使用购自美国BostonSci-entiufic Winspan Gateway导管或购自微创医疗器械上海有限公司的Apollo球囊扩张式支架系统重建狭窄段血管。术后通过动脉造影评估手术效果将导引导管撤出至锁骨下动脉通过造影检查颅内动脉入路是否受损。 + +1.3.2股动脉穿刺组术前口服氯吡格雷和阿司匹林 ${\geqslant}5\mathrm{~d~}$ 通过Seldinger穿刺法经股动脉穿刺行支架植入术。常规消毒腹股沟部位,置入 $8\,\mathrm{~F~}$ 动脉鞘,并将$50~\mathrm{U}\cdot\mathrm{kg}^{\mathrm{~-~}1}$ 普通肝素注入鞘内,后续步骤同桡动脉穿刺组。 + +1. 3. 3 1 TERUMO挠动脉压迫器进行止血,以既能扪及远端挠动脉搏动又能止血为佳术后 $2\,\,\mathrm{h}$ 减压1次,术后 $8\sim12\,\mathrm{~h~}$ 解除压迫器。(2)股动脉穿刺组于术后 $4~\mathrm{{h}}$ 拔除鞘管局部压迫 $15\sim30\,\mathrm{\min}$ 后加压包扎,局部制动 $\mathcal{J}4\,\mathrm{~h~}$ 后可下床活动。(3)术后严密监测两组患者生命体征连续3 d 4 000 U $12\,\mathrm{~h~}$ 注射1次;口服$75~\mathrm{mg}$ 氯吡格雷、 $100~\mathrm{{mg}}$ 阿司匹林。 + +1.4手术成功标准(1)入路动脉无急性血栓形成、血管穿破及血管夹层等并发症;(2)术前血管造影检查显示患者血管狭窄率达 $70\%$ ,术后残余狭窄率不足$20\%$ ,且患者溶栓血流分级达3 级[3]。 + +1.5观察指标(1)手术指标。手术时间、肢体制动时间、止血包扎时间、鞘管置入时间、手术成功率及穿刺成功率。(2)并发症发生情况。肺栓塞、术后尿潴留、动脉闭塞、穿刺部位血肿、动脉痉挛。 + +1. 6 SPSS 22. 0据。手术时间、肢体制动时间、止血包扎时间、鞘管置入时间等计量资料,以均数 $\pm$ 标准差( $\bar{\boldsymbol{x}}\pm\boldsymbol{s})$ 表示采用$t$ 检验比较;并发症发生率、手术成功率及穿刺成功率为计数资料,以频数 $\left(\begin{array}{l}{n}\end{array}\right)$ 和率 $(\,\%\,)$ )表示,采用 $\chi^{2}$ 检验比较。 $P<0.\ 05$ 为差异有统计学意义。 + +# 2 结果 + +2.1手术指标桡动脉穿刺组手术成功率为90. $00\%$ 27 /30 $93.\,33\%$ 28 /30动脉穿刺组手术成功率为 $96.\ 67\%\ (\ 29\,/30)$ 穿刺成功率为 $100.\:00\%\:(\:30\,/\,30)$ 。两组患者手术成功率和穿刺成功率比较,差异无统计学意义( $P>0.\,05)$ 。桡动脉穿刺组肢体制动时间、止血包扎时间短于股动脉穿刺组鞘管置入时间、手术时间长于股动脉穿刺组( $P<$ 0. 05 。 1。 + +表1两组手术指标比较( $\bar{\boldsymbol{x}}\pm\boldsymbol{s})$ + + +
组别例数手术时间/ min肢体制动 时间/h止血包扎 时间/min鞘管置入 时间/min
桡动脉穿刺组3045.67 ±4.214.78 ±1.231.57 ±0.566.01 ±1.57
股动脉穿刺组3034.68 ±3.5122.46 ±2.7820.64 ±2.464.23 ±1.21
t/x210.98231.85541. 4004.919
P<0.001<0.001<0.001<0.001
+ +2.2并发症发生情况股动脉穿刺组肺栓塞、术后尿潴留、动脉闭塞、穿刺部位血肿、动脉痉挛等并发症发生率高于桡动脉穿刺组( $P<0.\,05)$ 。 2。 + +表2两组术后并发症发生情况比较 + + +
组别例数肺栓塞术后 尿潴留动脉 闭塞穿刺部位动脉 痉挛总发生率/
桡动脉穿刺组3000001% 3.33
股动脉穿刺组301213126.67
4.706
x² P0.030
+ +# 3 讨论 + +经股动脉穿刺为介入治疗的传统途径[9-10]。但是由于股动脉解剖部位较深,穿刺具有局限性特别是接受抗凝治疗、强化抗血小板治疗及肥胖等患者术后局部压迫止血较为困难,可诱发尿潴留、动静脉瘘、体位性低血压、心动过缓、血肿及出血等并发症。支架置入术后患者出现严重迷走反射可引发血栓形成,严重 + +11 - 12 。肺栓塞、深静脉血栓形成等。刘宇凡[1} 研究结果显示经挠动脉穿刺支架置入术效果较好。 + +目前经股、桡动脉穿刺技术已趋于成熟。经桡动脉穿刺优点:(1)适于平卧患者:(2)恢复快可有效减少护理量;(3)手术后不需要肢体制动;(4)血管表浅,易止血。经挠动脉穿刺缺点:挠动脉血管管径较小操作较为困难。经股动脉穿刺优点:(1)可通过股动脉穿刺检测患者血流动力学指标;(2)穿刺部位易处理;(3)可耐受较长时间的手术操作;(4)导管及鞘管摆放较为容易:(5)穿刺成功率较高;(6)股动脉血管较粗大有利于器械操作。经股动脉穿刺缺点:(1)可引发腹膜后血肿等严重并发症;(2)术后需长时间下肢制动;(3)术后需人工按压穿刺点耗费手术时间影响14 。 + +Ha 等[15] 研究显示 1 例颈内动脉夹层患者由于腹主动脉闭塞而接受经挠动脉入路行支架形成术,但效。Montorsi 16动脉内支架成形术较为安全、可靠,可减少血管并发症。Daou 等[1"报道,经桡动脉入路治疗脑血管病变、 。 Mendiz 18研究中分别经股动脉入路、桡动脉入路行颈内动脉支架形成术均取得成功,且心血管事件发生率比较差异无统计学意义。本研究结果显示,桡动脉穿刺组肢体制动时间、止血包扎时间短于股动脉穿刺组鞘管置入时间、手术时间长于股动脉穿刺组。两组患者手术成功率和穿刺成功率比较差异无统计学意义。以上结果说明经桡动脉穿刺治疗效果更好,与 Daou 等[17]研究结果基本一致。 + +动脉痉挛为介入术中的一项常见并发症,其发生与术中是否使用扩血管药物、鞘管直径及挠动脉直径有关。本研究结果显示股动脉穿刺组肺栓塞、术后尿潴留、动脉闭塞、穿刺部位血肿、动脉痉挛等并发症发生率高于动脉穿刺组,说明经桡动脉穿刺行支架植入术治疗颅内动脉狭窄可有效减少并发症的发生。动脉痉挛发生率降低可能与术中操作轻柔、术前通过宣教减轻患者紧张情绪有关。动脉闭塞的发生可能与长时间阻断动脉血流、局部血栓形成率增加有关。有研究提出,保持动脉血流在术后压迫止血时顺畅可有效预防动脉闭塞[2},但是本研究中股动脉穿刺点局部压迫时间较长易影响局部血流通畅,而经桡动脉穿刺对桡动脉损伤较小压迫止血时间较短且能够保持动脉通畅。 + +综上所述经桡动脉穿刺行支架置入术治疗颅内动脉狭窄可优化手术指标,降低并发症发生率。本研究还需增加样本量、延长随访时间,以探究经桡动脉穿刺行支架植入术的长期疗效验证研究结果可信度,为临床提供更多参考。 + +# 参考文献 + +1 . Angio - seal置与手工压迫的短期并发症比较[J].心血管康复医学杂志,2020 29 5 575 - 578. +[2]莫伟,向华 阳秀春 等.股动脉穿刺介入术后制动时间的循证证J . 2019 28 1 85 - 88. +[3]刘恋高峰 莫大鹏 等.经动脉入路支架成形术治疗颅内椎-基底动脉狭窄[J].中华神经外科杂志 $2015\ 31(\,9):899\,-902.$ +[4]王辉 彭文近,刘艳红 等.老年患者经远端桡动脉与经典桡动脉行冠状动脉诊疗的临床疗效及安全性比较[J].中华老年心脑血2020 22 4 47 - 50. +[5]孔杰,占大权.经股动脉入路和经桡动脉入路行全脑血管造影术J . 2020 15 10 26 - 28. +[6]冯文勇,罗宁 高春萍 等.两种导管在经桡动脉入路脑血管造影J . 2020 17 11641 - 647. +[7]臧君仁侯国锐,成瑞博 等.经桡动脉入路冠状动脉造影及支架植入术治疗老年冠心病患者的效果[J].河南医学研究,2019,28 23 4260 - 4261. +[8]李五记.经桡动脉冠状动脉造影后即行支架植入应用于老年冠心病心绞痛的效果[J].现代临床医学 $2020\ A6(\ 1):13-14$ . +9 NOORI V J JENS E J. A systematic review of vascular closure devicesfor femoral artery puncture sites J . J Vasc Surg 2018 68 3 887 -899. +[10]敬子洋.经超声引导下股动脉穿刺建立介入治疗入路的临床应用分析[J].影像研究与医学应用 $2020\ {\cal A}(\ 24):205-206$ . +[11] 庞猛.脑血管介入术后股动脉压迫止血致迷走神经反射的相关因J . 2019 19 A2 46. +[12] 丁翔,王志权 ,朱启明 等.经动脉和股动脉途径行冠状动脉介932 J . 2015 31 7742 - 745. +[13]刘宇凡.经桡动脉穿刺进行椎动脉狭窄支架成形术的有效性和安J . 2020 39 6 85 - 87. +[14]梁珂,黄志志 李绍发 等.经桡动脉入路弓上动脉内支架成形术J . 2018 27 3 207 - 210. +15 HA J H KIM H PARK I S et al. Trans - radial carotid artery steningin a patient with abdominal aortic occlusion J . J Cerebrovasc Endo-vasc Neurosurg 2016 18 2 129 - 134. +16 MONTORSI P GALLI S RAVAGNANI P M et al. Carotid ArteryStenting With Proximal Embolic Protection via a Transradial or Trans-brachial Approach Pushing the Boundaries of the Technique WhileMaintaining Safety and Efficacy J . J Endovasc Ther 2016 23 4549 - 560. +17 DAOU B CHALOUHI N TJOUMAKARIS S et al. Altenmative ac-cess for endovascular treatment of cerebrpvascular diseases J . ClinNeurol Neurosurg 2016 145 251 89 - 95. +18 MENDIZ O A FAVA C LEV G et al. Transradial Versus TransfemoralCarotid Artery Stenting A 16 - Year Single - Center Experience J . JInterv Cardiol 2016 29 6 588 - 593. + +2021 - 06 - 18 \ No newline at end of file diff --git a/app_pkg/examples/邱茜茜.pdf b/app_pkg/examples/邱茜茜.pdf new file mode 100644 index 0000000..960d500 Binary files /dev/null and b/app_pkg/examples/邱茜茜.pdf differ diff --git a/app_pkg/flow/__init__.py b/app_pkg/flow/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app_pkg/flow/main.py b/app_pkg/flow/main.py new file mode 100644 index 0000000..e58e934 --- /dev/null +++ b/app_pkg/flow/main.py @@ -0,0 +1,15 @@ +from database.milvus_api import Milvus_Database +from modelsAPI.model_api import get_embeddings + +async def autorag_flow(query,milvus_db,collection_name,top_k=5): + query_vector = get_embeddings(list(query)) + search_results = milvus_db.search(collection_name=collection_name,query_vector=query_vector, top_k=top_k) + + search_prompt="""你作为一个由中科院的资深文档问答专家,请你从以下文本信息中选取与用户问题相关的内容作为参考: + ----- + 文本信息:{context} + ----- + 请你仔细思考后用中文回答用户的问题,如果文本中没有关于问题的答案,则直接回答 文档中没有相关内容 + 用户提问:{query} + 你的回答:""" + \ No newline at end of file diff --git a/app_pkg/markdown_process/__init__.py b/app_pkg/markdown_process/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app_pkg/markdown_process/breakdown_txt.py b/app_pkg/markdown_process/breakdown_txt.py new file mode 100644 index 0000000..a95d363 --- /dev/null +++ b/app_pkg/markdown_process/breakdown_txt.py @@ -0,0 +1,119 @@ + +def force_breakdown(txt, limit, get_token_fn): + """ 当无法用标点、空行分割时,我们用最暴力的方法切割 + """ + for i in reversed(range(len(txt))): + if get_token_fn(txt[:i]) < limit: + return txt[:i], txt[i:] + return "Tiktoken未知错误", "Tiktoken未知错误" + + +def maintain_storage(remain_txt_to_cut, remain_txt_to_cut_storage): + """ 为了加速计算,我们采样一个特殊的手段。当 remain_txt_to_cut > `_max` 时, 我们把 _max 后的文字转存至 remain_txt_to_cut_storage + 当 remain_txt_to_cut < `_min` 时,我们再把 remain_txt_to_cut_storage 中的部分文字取出 + """ + _min = int(5e4) + _max = int(1e5) + # print(len(remain_txt_to_cut), len(remain_txt_to_cut_storage)) + if len(remain_txt_to_cut) < _min and len(remain_txt_to_cut_storage) > 0: + remain_txt_to_cut = remain_txt_to_cut + remain_txt_to_cut_storage + remain_txt_to_cut_storage = "" + if len(remain_txt_to_cut) > _max: + remain_txt_to_cut_storage = remain_txt_to_cut[_max:] + remain_txt_to_cut_storage + remain_txt_to_cut = remain_txt_to_cut[:_max] + return remain_txt_to_cut, remain_txt_to_cut_storage + + +def cut(limit, get_token_fn, txt_tocut, must_break_at_empty_line, break_anyway=False): + """ 文本切分 + """ + res = [] + total_len = len(txt_tocut) + fin_len = 0 + remain_txt_to_cut = txt_tocut + remain_txt_to_cut_storage = "" + # 为了加速计算,我们采样一个特殊的手段。当 remain_txt_to_cut > `_max` 时, 我们把 _max 后的文字转存至 remain_txt_to_cut_storage + remain_txt_to_cut, remain_txt_to_cut_storage = maintain_storage(remain_txt_to_cut, remain_txt_to_cut_storage) + + while True: + if get_token_fn(remain_txt_to_cut) <= limit: + # 如果剩余文本的token数小于限制,那么就不用切了 + res.append(remain_txt_to_cut); + fin_len += len(remain_txt_to_cut) + break + else: + # 如果剩余文本的token数大于限制,那么就切 + lines = remain_txt_to_cut.split('\n') + + # 估计一个切分点 + estimated_line_cut = limit / get_token_fn(remain_txt_to_cut) * len(lines) + estimated_line_cut = int(estimated_line_cut) + + # 开始查找合适切分点的偏移(cnt) + cnt = 0 + for cnt in reversed(range(estimated_line_cut)): + if must_break_at_empty_line: + # 首先尝试用双空行(\n\n)作为切分点 + if lines[cnt] != "": + continue + prev = "\n".join(lines[:cnt]) + post = "\n".join(lines[cnt:]) + if get_token_fn(prev) < limit: + break + + if cnt == 0: + # 如果没有找到合适的切分点 + if break_anyway: + # 是否允许暴力切分 + prev, post = force_breakdown(remain_txt_to_cut, limit, get_token_fn) + else: + # 不允许直接报错 + raise RuntimeError(f"存在一行极长的文本!{remain_txt_to_cut}") + + # 追加列表 + res.append(prev); + fin_len += len(prev) + # 准备下一次迭代 + remain_txt_to_cut = post + remain_txt_to_cut, remain_txt_to_cut_storage = maintain_storage(remain_txt_to_cut, + remain_txt_to_cut_storage) + process = fin_len / total_len + # print(f'正在文本切分 {int(process * 100)}%') + if len(remain_txt_to_cut.strip()) == 0: + break + return res + +def breakdown_text_to_satisfy_token_limit(txt, limit, llm_model="gpt-3.5-turbo"): + """ 使用多种方式尝试切分文本,以满足 token 限制 + """ + # from tools.bridge_all import LazyloadTiktoken + from transformers import AutoTokenizer + + + # tokenizer_gpt35 = LazyloadTiktoken("gpt-3.5-turbo") + tokenizer_gpt35 = AutoTokenizer.from_pretrained('./pretrained_models/chinese-llama-2-7b-64k') + + #enc = model_info[llm_model]['tokenizer'] + enc = tokenizer_gpt35 + def get_token_fn(txt): + return len(enc.encode(txt)) + try: + # 第1次尝试,将双空行(\n\n)作为切分点 + return cut(limit, get_token_fn, txt, must_break_at_empty_line=True) + except RuntimeError: + try: + # 第2次尝试,将单空行(\n)作为切分点 + return cut(limit, get_token_fn, txt, must_break_at_empty_line=False) + except RuntimeError: + try: + # 第3次尝试,将英文句号(.)作为切分点 + res = cut(limit, get_token_fn, txt.replace('.', '。\n'), must_break_at_empty_line=False) # 这个中文的句号是故意的,作为一个标识而存在 + return [r.replace('。\n', '.') for r in res] + except RuntimeError as e: + try: + # 第4次尝试,将中文句号(。)作为切分点 + res = cut(limit, get_token_fn, txt.replace('。', '。。\n'), must_break_at_empty_line=False) + return [r.replace('。。\n', '。') for r in res] + except RuntimeError as e: + # 第5次尝试,没办法了,随便切一下吧 + return cut(limit, get_token_fn, txt, must_break_at_empty_line=False, break_anyway=True) diff --git a/app_pkg/markdown_process/chunk_postprocess.py b/app_pkg/markdown_process/chunk_postprocess.py new file mode 100644 index 0000000..a1cf162 --- /dev/null +++ b/app_pkg/markdown_process/chunk_postprocess.py @@ -0,0 +1,63 @@ +from modelsAPI.model_api import OpenaiAPI +import os +def context_chunk_process(markdown_context,chunks): + def prepare_chunk(WHOLE_DOCUMENT,CHUNK_CONTENT): + prompt = f""" + + {WHOLE_DOCUMENT} + + Here is the chunk we want to situate within the whole document + + {CHUNK_CONTENT} + + Please give a short succinct context to situate this chunk within the overall document for the purposes of improving search retrieval of the chunk. Answer only with the succinct context and nothing else. + """ + chinese_prompt = f""" + <文档> + {WHOLE_DOCUMENT} + + 以下是需要定位到整体文档中的片段 + <片段> + {CHUNK_CONTENT} + + 请简要说明该片段在整体文档中的上下文关系,以提升片段搜索效果。只需给出简洁的上下文说明,无需其他内容。 + """ + return chinese_prompt + for chunk in chunks: + text = chunk.get("text","") + CONTEXT_CHUNK = prepare_chunk(markdown_context,text) + NEW_CHUNK = OpenaiAPI().open_api_caht_without_thinking(query=CONTEXT_CHUNK,model=os.getenv("OPENAI_MODEL","qwen3-32b")) + chunk["text"] = NEW_CHUNK + text + chunk["origin_text"] = text + return chunks + +def abstract_chunk(markdown_context,chunks): + def prepare_chunk(WHOLE_DOCUMENT,CHUNK_CONTENT): + prompt = f""" + + {WHOLE_DOCUMENT} + + Here is the chunk we want to situate within the whole document + + {CHUNK_CONTENT} + + Please give a short succinct context to situate this chunk within the overall document for the purposes of improving search retrieval of the chunk. Answer only with the succinct context and nothing else. + """ + chinese_prompt = f""" + <文档> + {WHOLE_DOCUMENT} + + 以下是需要定位到整体文档中的片段 + <片段> + {CHUNK_CONTENT} + + 请简要说明该片段在整体文档中的上下文关系,以提升片段搜索效果。只需给出简洁的上下文说明,无需其他内容。 + """ + return chinese_prompt + for chunk in chunks: + text = chunk.get("text","") + CONTEXT_CHUNK = prepare_chunk(markdown_context,text) + NEW_CHUNK = OpenaiAPI().open_api_caht_without_thinking(query=CONTEXT_CHUNK,model=os.getenv("OPENAI_MODEL","qwen3-32b")) + chunk["text"] = NEW_CHUNK + chunk["origin_text"] = NEW_CHUNK + text + return chunks \ No newline at end of file diff --git a/app_pkg/markdown_process/convert_header.py b/app_pkg/markdown_process/convert_header.py new file mode 100644 index 0000000..4d10261 --- /dev/null +++ b/app_pkg/markdown_process/convert_header.py @@ -0,0 +1,326 @@ +import copy +import re + +def convert_numbered_headings(text): + """ + 将编号转换为对应的Markdown标题: + - `1.2` → `## 1.2` + - `1.2.1` → `### 1.2.1` + - `1. 3. 1` → `### 1.3.1`(去掉空格) + """ + # 替换全角 `.` 为半角 `.` + text = text.replace('.', '.') + + # 遍历每一行,处理标题 + lines = text.split('\n') + + for i in range(len(lines)): + line = lines[i].strip() + if not line: + continue + + # 只匹配 `1.2` 或 `1.2.1` 形式的编号,允许 `1. 3. 1` 这种格式 + match = re.match(r'^(#*\s*)(\d+(?:\s*\.\s*\d+)+)', line) + if match: + prefix, num = match.groups() + level = num.count('.') # `.` 的个数决定层级 + new_prefix = '#' * (level + 1) # 1.2 → ##, 1.2.1 → ### + + # 去掉数字和 `.` 之间的空格 + clean_num = re.sub(r'\s*\.\s*', '.', num) + + # 替换标题 + lines[i] = f"{new_prefix} {clean_num}{line[match.end():]}" + + return '\n'.join(lines) + + + +def custom_convert_numbered_headings(text, max_level=9): + """ + 将编号转换为对应的Markdown标题,支持自定义最大分级层数: + - `1.2` → `## 1.2` (当max_level>=2) + - `1.2.1` → `### 1.2.1` (当max_level>=3) + - `1. 3. 1` → `### 1.3.1`(去掉空格) + + 参数: + text: 要处理的文本 + max_level: 最大支持的分级层数(默认为3) + """ + # 替换全角 `.` 为半角 `.` + text = text.replace('.', '.') + + # 遍历每一行,处理标题 + lines = text.split('\n') + + for i in range(len(lines)): + line = lines[i].strip() + if not line: + continue + + # 只匹配 `1.2` 或 `1.2.1` 形式的编号,允许 `1. 3. 1` 这种格式 + match = re.match(r'^(#*\s*)(\d+(?:\s*\.\s*\d+)+)', line) + if match: + prefix, num = match.groups() + level = num.count('.') # `.` 的个数决定层级 + + # 只处理不超过max_level的标题 + if level <= max_level: + new_prefix = '#' * (level + 1) # 1.2 → ##, 1.2.1 → ### + + # 去掉数字和 `.` 之间的空格 + clean_num = re.sub(r'\s*\.\s*', '.', num) + + # 替换标题 + lines[i] = f"{new_prefix} {clean_num}{line[match.end():]}" + else: + # 超过max_level的标题保持不变 + lines[i] = line + + return lines #'\n'.join(lines) + +def parse_markdown(md_text, max_level=6): + # md_text = convert_numbered_headings(md_text) + md_text = custom_convert_numbered_headings(md_text, max_level=max_level) + # lines = md_text.strip().split("\n") + lines = md_text + results = [] + current_headers = [None] * max_level # 动态存储各级标题(索引0=H1,1=H2...) + current_text = [] + + def add_entry(): + nonlocal current_text + if current_text or any(current_headers): + # 拼接有效标题到 text 中(跳过 None) + full_text = [] + for level in range(max_level): + if current_headers[level] is not None: + full_text.append(f"{'#' * (level + 1)} {current_headers[level]}") + full_text.extend(current_text) + + # 生成结果(动态分配 Header_1, Header_2...) + entry = {"text": "".join(full_text)} + for level in range(max_level): + entry[f"Header_{level + 1}"] = current_headers[level] + results.append(entry) + current_text = [] + + # 动态生成正则表达式,匹配 1 到 max_level 个 # + header_pattern = re.compile(r'^(#{1,%d})\s*(.*)' % max_level) + + for line in lines: + line = line + header_match = header_pattern.match(line) + + if header_match: + add_entry() + level = len(header_match.group(1)) - 1 # 转换为 0-based 索引 + title = header_match.group(2) + + if level < max_level: + # 更新当前标题,并清空更低层级的标题 + current_headers[level] = title + for l in range(level + 1, max_level): + current_headers[l] = None + elif line: + current_text.append(line) + + add_entry() + return results + +# def parse_markdown(md_text,max_level=3): +# # md_text = convert_numbered_headings(md_text) +# md_text = custom_convert_numbered_headings(md_text,max_level=max_level) +# lines = md_text.strip().split("\n") +# results = [] +# current_h1, current_h2, current_h3 = None, None, None +# current_text = [] + +# def add_entry(): +# if current_h1 or current_h2 or current_h3: +# results.append({ +# "Header_1": current_h1, +# "Header_2": current_h2, +# "Header_3": current_h3, +# "text": "\n".join(current_text).strip() +# }) +# current_text.clear() + +# for line in lines: +# line = line.strip() +# header_match = re.match(r'^(#{1,3})\s*(.*)', line) + +# if header_match: +# add_entry() +# level = len(header_match.group(1)) +# title = header_match.group(2).strip() + +# if level == 1: +# current_h1, current_h2, current_h3 = title, None, None +# elif level == 2: +# current_h2, current_h3 = title, None +# elif level == 3: +# current_h3 = title +# else: +# current_text.append(line) + +# add_entry() +# return results + +def header_postprocess(md_header_json): + processed_results = [] + buffer_entry = None + + for md in md_header_json: + headers = {k: md.get(k) for k in md if k.startswith("Header_")} + text = md.get("text", "") + + md["origin_text"] = copy.deepcopy(text) # 确保完全独立 + + # 修复后的判断逻辑 + is_header_only = ( + not text.strip() or + any(text.strip() == headers.get(f"Header_{i}", "") for i in range(1, 5) + )) + + if is_header_only: + if buffer_entry is None: + buffer_entry = md.copy() + else: + # 合并标题,保留最高级标题 + for level in range(1, 5): + key = f"Header_{level}" + if key in md and md[key] is not None: + buffer_entry[key] = md[key] + else: + if buffer_entry is not None: + # 合并缓存的标题和当前内容 + new_text = [] + for level in range(1, 5): + key = f"Header_{level}" + if buffer_entry.get(key): + new_text.append(f"{'#' * level} {buffer_entry[key]}") + new_text.append(text) + md["text"] = "".join(new_text) + + for level in range(1, 5): + key = f"Header_{level}" + md[key] = buffer_entry.get(key) + + buffer_entry = None + processed_results.append(md) + + if buffer_entry is not None: + processed_results.append(buffer_entry) + + return processed_results + +def postprocess_chunks(chunks): + """合并被分割的原型图上下文(适配_process_chunk生成的结构)""" + new_chunks = [] + i = 0 + + # 修正后的图片匹配正则表达式(确保括号配对) + image_pattern = re.compile( + r'(!\[.*?\]\(.*?\))|' # Markdown图片 ![alt](url) + r'()|' # HTML 标签 + r'(\[.*?\]\(.*?\))|' # Markdown链接 [text](url) + r'(https?://\S+\.(?:jpe?g|png|gif|bmp|svg|webp)(?:\?\S*)?)', # 纯图片URL + re.IGNORECASE + ) + + # 修正后的标题匹配正则表达式 + title_pattern = re.compile( + r'(#\s*[0-9一二三四五六七八九十]+[\..、::]?\s*[原形图圖示示])|' + r'(prototype|diagram|screenshot|界面图)', + re.IGNORECASE + ) + + while i < len(chunks): + current_chunk = chunks[i] + current_text = current_chunk.get("text", "") + + # 检查是否是原型图标题块 + is_prototype_title = title_pattern.search(current_text) + + # 情况1:当前是原型图标题但未包含图片 + if is_prototype_title and not image_pattern.search(current_text): + # 向后查找最多3个块寻找图片 + for j in range(i+1, min(i+4, len(chunks))): + next_chunk = chunks[j] + next_text = next_chunk.get("text", "") + + if image_pattern.search(next_text): + # 合并元数据 + merged_chunk = { + "id": current_chunk["id"], + "Header_1": current_chunk.get("Header_1", "") or next_chunk.get("Header_1", ""), + "Header_2": current_chunk.get("Header_2", "") or next_chunk.get("Header_2", ""), + "Header_3": current_chunk.get("Header_3", "") or next_chunk.get("Header_3", ""), + "text": current_text + next_text, + "resource": current_chunk["resource"], + "img_path": ",".join(filter(None, [ + current_chunk.get("img_path", ""), + next_chunk.get("img_path", "") + ])) or None + } + new_chunks.append(merged_chunk) + i = j + 1 # 跳过已合并的块 + break + else: + # 没找到图片则保留原块 + new_chunks.append(current_chunk) + i += 1 + else: + # 情况2:普通块处理 + new_chunks.append(current_chunk) + i += 1 + + return new_chunks + +# def header_postprocess(md_header_json): +# processed_results = [] +# buffer_entry = None + +# for md in md_header_json: +# header_1 = md.get("Header_1") +# header_2 = md.get("Header_2") +# header_3 = md.get("Header_3") +# text = md.get("text", "") + +# # 如果当前条目只有标题没有正文,则缓存起来 +# if not text.strip() or text.strip() == header_1 or text.strip() == header_2 or text.strip() == header_3: +# if buffer_entry is None: +# buffer_entry = md.copy() +# else: +# # 合并标题 +# for level in range(1, 4): +# key = f"Header_{level}" +# if key in md and md[key] is not None: +# buffer_entry[key] = md[key] +# else: +# # 如果有正文内容,检查是否有缓存的标题 +# if buffer_entry is not None: +# # 合并缓存的标题和当前内容 +# new_text = [] +# for level in range(1, 4): +# key = f"Header_{level}" +# if buffer_entry.get(key): +# new_text.append(f"{'#' * level} {buffer_entry[key]}") +# new_text.append(text) +# md["text"] = "\n".join(new_text) + +# # 更新标题信息 +# for level in range(1, 4): +# key = f"Header_{level}" +# md[key] = buffer_entry.get(key) + +# buffer_entry = None +# processed_results.append(md) + +# # 处理最后可能剩余的缓存条目 +# if buffer_entry is not None: +# # 如果最后只剩下标题没有正文,单独作为一个条目 +# processed_results.append(buffer_entry) + +# return processed_results diff --git a/app_pkg/markdown_process/markdown_preprocess.py b/app_pkg/markdown_process/markdown_preprocess.py new file mode 100644 index 0000000..fb31d10 --- /dev/null +++ b/app_pkg/markdown_process/markdown_preprocess.py @@ -0,0 +1,297 @@ +from fastapi import UploadFile +import httpx +import os +from typing import Optional +import tempfile +import requests +import time +from tqdm import tqdm +from pathlib import Path +import json +from io import BytesIO +from urllib.parse import urljoin + + +async def process_pdf_logic(pdf_file): + """ + 接收 PDF 文件并转发到解析服务 + """ + # 验证文件类型 + if not pdf_file.content_type.startswith("application/pdf"): + raise Exception(400, "仅支持 PDF 文件") + + try: + # 读取文件内容 + # file_content = await pdf_file.read() + # 配置目标接口参数 + target_url = os.getenv("Mineru_URL", "http://172.18.30.122:9988") + target_url = target_url + "/analyze-pdf" + # target_url = os.getenv("Mineru_URL","http://172.18.127.124:9088/pdf_parse") + # target_url = "http://172.18.30.122:8998/pdf_parse" + # params = { + # "parse_method": "auto", + # "is_json_md_dump": "true", + # "output_dir": "output" + # } + + # 构建文件上传格式 + files = { + "file": (pdf_file.filename, pdf_file.file, "application/pdf") + # "pdf_file": (pdf_file.filename, pdf_file.file, "application/pdf") + } + + # 发送请求到解析服务 + async with httpx.AsyncClient(timeout=1200.0) as client: + response = await client.post( + target_url, + # params=params, + files=files, + headers={"Accept": "application/json"} + ) + response.raise_for_status() + result = response.json() + + content_chunk_list = [] + full_content = result.get("data", {}).get("full_content", "") + content_list = result.get("data", {}).get("content_list", []) + content_chunk_list = result.get("data", {}).get("content_middle", []) + print(content_chunk_list) + # combined_json = ''.join(content_list) + # content_data = json.loads(combined_json) + # for idx, item in enumerate(content_data): + # if isinstance(item, dict): # 确保是字典类型 + # text_type = item.get("type", "") + # text_level = item.get("text_level", "") + # text = item.get("text", "") + # page_idx = item.get("page_idx", -1) # 默认值 -1 表示缺失 + # table_caption = item.get("table_caption", "") + # table_body = item.get("table_body", "") + # image_path = item.get("img_path", "") + # full_url = "" + # if image_path: + # base_url = os.getenv("HOST_IP", "http://172.18.30.122:9988") # 基础URL(不带/outputs) + # outputs_url = urljoin(base_url + "/", "output/") + # full_url = urljoin(outputs_url, image_path) # 最终拼接image_path + # if not text and not table_body and not image_path: + # continue + # image_caption = item.get("img_caption", "") + # content_chunk_list.append( + # {"id": idx, "type": text_type, "text_level": text_level, "text": text, "page_idx": page_idx, + # "table_caption": table_caption, "table_body": table_body, "image_path": full_url, + # "image_caption": image_caption}) + # markdown_content ="" + # for content in content_list: + # text = content["text"] + + return full_content, content_chunk_list + + except httpx.RequestError as e: + raise Exception(503, f"无法连接到解析服务: {str(e)}") + except Exception as e: + raise Exception(500, f"服务器内部错误: {str(e)}") + + +async def process_doc_logic(doc_file): + """ + 接收Word文档(doc/docx)并转发到解析服务 + """ + # 验证文件类型 + allowed_extensions = {'.doc', '.docx'} + file_ext = os.path.splitext(doc_file.filename)[1].lower() + + if file_ext not in allowed_extensions: + raise Exception(400, "仅支持doc或docx格式文件") + + try: + # 配置目标接口参数 + target_url = os.getenv("MINERU_URL", "http://172.18.30.122:9988") + target_url = target_url + "/analyze-doc" + # 根据文件类型设置正确的MIME类型 + mime_type = "application/msword" if file_ext == '.doc' else "application/vnd.openxmlformats-officedocument.wordprocessingml.document" + + # 构建文件上传格式 + files = { + "file": (doc_file.filename, doc_file.file, mime_type) + } + + # 发送请求到解析服务 + async with httpx.AsyncClient(timeout=120.0) as client: + response = await client.post( + target_url, + files=files, + headers={"Accept": "application/json"} + ) + response.raise_for_status() + result = response.json() + + # 假设返回数据结构与PDF不同,需要相应调整 + # 这里根据实际API返回结构调整 + + return result["data"]["full_content"] + + + except httpx.HTTPStatusError as e: + raise Exception(e.response.status_code, f"文档解析服务返回错误: {str(e)}") + except httpx.RequestError as e: + raise Exception(503, f"无法连接到解析服务: {str(e)}") + except Exception as e: + raise Exception(500, f"服务器内部错误: {str(e)}") + + +class ProgressFileReader: + """带有进度条的文件读取器""" + + def __init__(self, file_path, progress_bar): + self.file = open(file_path, 'rb') + self.progress_bar = progress_bar + + def read(self, size=-1): + data = self.file.read(size) + if data: + self.progress_bar.update(len(data)) + return data + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + self.file.close() + + +async def convert_doc_to_pdf(api_url: str, file: UploadFile, timeout: int = 300) -> Optional[str]: + """ + 将DOC文件转换为pdf + + 参数: + api_url: 转换服务的URL (如 "http://172.18.127.124:8000") + file: 要转换的UploadFile对象 + timeout: 请求超时时间(秒) + """ + try: + # 创建临时文件保存上传的DOC + with tempfile.NamedTemporaryFile(delete=False, suffix=".doc") as tmp_doc: + content = await file.read() + tmp_doc.write(content) + tmp_path = tmp_doc.name + + # 获取文件信息 + file_name = file.filename + file_size = os.path.getsize(tmp_path) + output_name = Path(file_name).stem + ".pdf" + + # 使用带进度条的文件读取器 + with tqdm(total=file_size, unit='B', unit_scale=True, desc="上传进度") as pbar: + with ProgressFileReader(tmp_path, pbar) as file_reader: + files = {'file': (file_name, file_reader)} + params = {'src': 'doc', 'to': 'pdf'} + + response = requests.post( + f"{api_url}/transfer", + files=files, + params=params, + timeout=timeout + ) + + # 处理响应 + if response.status_code == 200: + # 创建临时文件保存转换后的DOCX + with tempfile.NamedTemporaryFile(delete=False, suffix=".pdf") as tmp_docx: + tmp_docx.write(response.content) + output_path = tmp_docx.name + + # 清理临时文件 + os.unlink(tmp_path) + + return output_path + else: + raise Exception(f"转换失败: {response.text}") + + except requests.exceptions.Timeout: + raise Exception(f"请求超时(超过{timeout}秒)") + except requests.exceptions.RequestException as e: + raise Exception(f"请求错误: {str(e)}") + except Exception as e: + # 确保临时文件被清理 + if 'tmp_path' in locals() and os.path.exists(tmp_path): + os.unlink(tmp_path) + if 'output_path' in locals() and os.path.exists(output_path): + os.unlink(output_path) + raise Exception(f"转换过程中出错: {str(e)}") + + +async def convert_docx_to_pdf(api_url: str, file: UploadFile, timeout: int = 300) -> Optional[str]: + """ + 将DOCX文件转换为PDF(解决中文缺失问题) + + 参数: + api_url: 转换服务的URL (如 "http://172.18.127.124:8000") + file: 要转换的UploadFile对象 + timeout: 请求超时时间(秒) + """ + try: + # 创建临时文件保存上传的DOCX + with tempfile.NamedTemporaryFile(delete=False, suffix=".docx") as tmp_docx: + content = await file.read() + tmp_docx.write(content) + tmp_path = tmp_docx.name + + # 获取文件信息 + file_name = file.filename + file_size = os.path.getsize(tmp_path) + output_name = Path(file_name).stem + ".pdf" + + print(f"正在转换: {file_name} ({file_size / 1024:.1f} KB) -> PDF") + start_time = time.time() + + # 使用带进度条的文件读取器 + with tqdm(total=file_size, unit='B', unit_scale=True, desc="上传进度") as pbar: + with ProgressFileReader(tmp_path, pbar) as file_reader: + files = {'file': (file_name, file_reader)} + params = { + 'src': 'docx', + 'to': 'pdf', + 'font': 'SimSun', # 指定中文字体 + 'encoding': 'utf-8' # 明确编码 + } + + response = requests.post( + f"{api_url}/transfer", + files=files, + params=params, + timeout=timeout + ) + + # 处理响应 + if response.status_code == 200: + # 创建临时文件保存转换后的PDF + with tempfile.NamedTemporaryFile(delete=False, suffix=".pdf") as tmp_pdf: + tmp_pdf.write(response.content) + output_path = tmp_pdf.name + + # 验证PDF是否包含文字 + if os.path.getsize(output_path) < 1024: # 如果PDF文件过小 + raise Exception("生成的PDF可能不包含有效内容") + + elapsed = time.time() - start_time + print(f"\n转换成功! 保存为: {output_path}") + print(f"总耗时: {elapsed:.2f}秒") + + # 清理临时文件 + os.unlink(tmp_path) + + return output_path + else: + raise Exception(f"转换失败: {response.text}") + + except requests.exceptions.Timeout: + raise Exception(f"请求超时(超过{timeout}秒)") + except requests.exceptions.RequestException as e: + raise Exception(f"请求错误: {str(e)}") + except Exception as e: + # 确保临时文件被清理 + if 'tmp_path' in locals() and os.path.exists(tmp_path): + os.unlink(tmp_path) + if 'output_path' in locals() and os.path.exists(output_path): + os.unlink(output_path) + raise Exception(f"转换过程中出错: {str(e)}") + diff --git a/app_pkg/markdown_process/save_markdown.py b/app_pkg/markdown_process/save_markdown.py new file mode 100644 index 0000000..d0818cf --- /dev/null +++ b/app_pkg/markdown_process/save_markdown.py @@ -0,0 +1,20 @@ +from database.milvus_api import Milvus_Database +import os + +class Save_Markdown_to_Milvus(): + def __init__(self,database_name, collection_name): + self.database_name = database_name + self.collection_name = collection_name + # self.milvus_database = Milvus_Database(database_name=self.database_name).client + self.milvus_database = Milvus_Database(uri=os.getenv("Milvus_URI")) + def save_md(self,data): + # milvus_database = Milvus_Database("JXTest") + self.milvus_database.using_database(self.database_name) + result = self.milvus_database.insert(collection_name=self.collection_name,params=data) + return result + def save_hybrid_md(self,data): + self.milvus_database.using_database(self.database_name) + result = self.milvus_database.hybrid_insert(collection_name=self.collection_name,params=data,database_name=self.database_name) + return result + def close(self): + self.milvus_database.close() \ No newline at end of file diff --git a/app_pkg/markdown_process/split_markdown.py b/app_pkg/markdown_process/split_markdown.py new file mode 100644 index 0000000..dffc6aa --- /dev/null +++ b/app_pkg/markdown_process/split_markdown.py @@ -0,0 +1,717 @@ +import json +import re +from typing import Dict, List +from langchain_text_splitters import CharacterTextSplitter, MarkdownHeaderTextSplitter,MarkdownTextSplitter,TokenTextSplitter,RecursiveCharacterTextSplitter +from modelsAPI.model_api import OpenaiAPI +from markdown_process.save_markdown import Save_Markdown_to_Milvus +from markdown_process.convert_header import convert_numbered_headings, custom_convert_numbered_headings,parse_markdown,header_postprocess,postprocess_chunks +from markdown_it import MarkdownIt +from markdown_it.tree import SyntaxTreeNode +def reset_chunk(chunks): + id_list = [] + for res in chunks: + if res['Header_1'] == res['text']: + id = res['id'] + id_list.append(id) + # print(id_list) + for iditem in id_list: + result = [item for item in chunks if item['id'] == iditem][0] + result_ = [item for item in chunks if item['id'] == iditem + 1][0] + result_['Header_2'] = result_['Header_1'] + result_['Header_1'] = result['Header_1'] + result_['text'] = result['text'] + '\n' + result_['text'] + result_devide = [record for record in chunks if not record['Header_1'] == record['text']] + for index, item in enumerate(result_devide): + item['id'] = index + 1 + return result_devide +def remove_markdown_images(text): + """ + 移除Markdown格式的图像链接 + + 参数: + text: 包含Markdown图像链接的原始字符串 + + 返回: + 移除图像链接后的文本 + """ + # 匹配 ![](path) 或 [](path) 格式 + pattern = r'!?\[\]\(/root/output/[^/]+/images/[a-f0-9]+\.(?:jpg|png|gif|bmp)\)' + return re.sub(pattern, '', text) +def remove_markdown_images(text): + """ + 移除Markdown格式的图像链接 + + 参数: + text: 包含Markdown图像链接的原始字符串 + + 返回: + 移除图像链接后的文本 + """ + # 匹配 ![](path) 或 [](path) 格式 + pattern = r'http://\d{0,9}\.\d{0,9}\.\d{0,9}\.\d{0,9}:\d+/[^\s\'"<>]+' + return re.sub(pattern, '', text) + +def extract_urls(text): + # 定义匹配 URL 的正则表达式模式 + pattern = r'http://\d{0,9}\.\d{0,9}\.\d{0,9}\.\d{0,9}:\d{0,9}/output/images/[a-f0-9]+\.(?:jpg|jpeg|png|gif)' + + # 查找所有匹配的 URL + urls = re.findall(pattern, text) + + # # 可选:过滤只保留特定扩展名的文件(如.jpg, .png等) + # image_urls = [url for url in urls if url.lower().endswith(('.jpg', '.jpeg', '.png', '.gif'))] + + return urls + +def extract_and_convert_image_paths(text): + """ + 从字符串中提取图像路径并转换为新格式 + + 参数: + text: 包含图像路径的原始字符串 + + 返回: + 包含原始路径和转换后路径的字典列表 + """ + # 正则表达式匹配图像路径 + pattern = r'(/root/output/[^/]+/images/[a-f0-9]+\.(?:jpg|png|gif|bmp))' + matches = re.findall(pattern, text) + + converted_paths = [] + + for original_path in matches: + # 分解原始路径 + path_parts = original_path.split('/') + + # 提取关键部分 + # 格式: /root/output/<文件夹>/images/<图片名> + folder_name = path_parts[3] # 获取"生成式人工智能传播风险:理论内涵、形成机理与治理策略_景奎"这部分 + image_name = path_parts[-1] # 获取图片文件名 + + # 构建新路径 + new_path = f"mineru/{folder_name}/images/{image_name}" + + converted_paths.append({ + 'original_path': original_path, + 'converted_path': new_path + }) + + return converted_paths + +class MarkdownAwareTextSplitter(RecursiveCharacterTextSplitter): + def __init__(self, **kwargs): + # 优先用Markdown的分隔符 + separators = [ + # 保持表格完整 (匹配Markdown表格) + r'\n\s*\|', # 表格行 + r'\n#+\s+', # 标题 + r'\n\*\*\s+', # 分隔线 + r'\n\n', # 双换行 + r'\n', # 单换行 + r'\.\s+', # 句号+空格 + r'\s+', # 任意空白 + ] + super().__init__(separators=separators, **kwargs) + + def split_text(self, text: str) -> List[str]: + # 预处理:保护表格结构 + protected_tables = [] + def _protect_tables(match): + protected_tables.append(match.group(0)) + return f"__TABLE_{len(protected_tables)-1}__" + + # 用临时标记替换表格 + table_pattern = r'(\n\|.+\|.+\n(\|.+\|.+\n)+)' + text_with_protected_tables = re.sub( + table_pattern, + _protect_tables, + text, + flags=re.MULTILINE + ) + + # 常规切分 + chunks = super().split_text(text_with_protected_tables) + + # 恢复表格 + final_chunks = [] + for chunk in chunks: + for i, table in enumerate(protected_tables): + chunk = chunk.replace(f"__TABLE_{i}__", table) + final_chunks.append(chunk) + + return final_chunks + +def split_regular(resource,mdDocs,logger,database_name,collection_name,chunk_type,chunk_size,chunk_overlap=50,max_level=3): + + if chunk_type =="03": + text_splitter =TokenTextSplitter(chunk_size=chunk_size, chunk_overlap=chunk_overlap) + texts = text_splitter.split_text(mdDocs) + milvus = Save_Markdown_to_Milvus(database_name=database_name,collection_name=collection_name) + for text in texts: + convert_path_list=extract_and_convert_image_paths(text) + text = remove_markdown_images(text) + if convert_path_list: + img_path = ",".join(convert_path_list) + vector = OpenaiAPI.get_embeddings(text) + data = [[text],[vector],[resource],[img_path]] + milvus.save_hybrid_md(data=data) + results.append({"id":j+i+1,"text":text,"resource":resource,"img_path":img_path}) + milvus.close() + else: + #自定义分解 + md_header_json = parse_markdown(mdDocs,max_level=max_level) + # print(md_header_json) + #合并处理 + md_header_list = header_postprocess(md_header_json) + logger.info("markdown splitting...") + + milvus = Save_Markdown_to_Milvus(database_name=database_name,collection_name=collection_name) + results = [] + for i ,md in enumerate(md_header_list): + if md["text"]: + header_1 = md["Header_1"] + header_2 = md["Header_2"] + header_3 = md["Header_3"] + text = md["text"] + + # print("Header_1:",header_1) + # print("Header_2:",header_2) + # print("Header_3:",header_3) + # print("text:",text_) + # print("======================================") + if chunk_type =="01": + text_splitter = RecursiveCharacterTextSplitter( + chunk_size=chunk_size, + chunk_overlap=chunk_overlap, + length_function=len, + separators=[" ","\n\n"] + ) + texts = text_splitter.split_text(text) + for j,txt in enumerate(texts): + img_list = extract_urls(txt) + txt = remove_markdown_images(txt) + if img_list: + img_path = ",".join(img_list) + # convert_path_list=extract_and_convert_image_paths(text) + # text = remove_markdown_images(text) + # if convert_path_list: + # img_path = ",".join(convert_path_list) + # print(j) + # print(texts) + # print("======================================") + vector = OpenaiAPI.get_embeddings(txt) + data = [[header_1],[header_2],[header_3],[txt],[vector],[resource],[img_path]] + # milvus.save_md(data=data) + milvus.save_hybrid_md(data=data) + results.append({"id":j+i+1,"Header_1":header_1,"Header_2":header_2,"Header_3":header_3,"text":txt,"resource":resource,"img_path":img_path}) + + else: + img_list = extract_urls(txt) + txt = remove_markdown_images(txt) + if img_list: + img_path = ",".join(img_list) + # convert_path_list=extract_and_convert_image_paths(text) + # text = remove_markdown_images(text) + # if convert_path_list: + # img_path = ",".join(convert_path_list) + vector = OpenaiAPI.get_embeddings(text) + data = [[header_1],[header_2],[header_3],[text],[vector],[resource],[img_path]] + milvus.save_hybrid_md(data=data) + results.append({"id":i+1,"Header_1":header_1,"Header_2":header_2,"Header_3":header_3,"text":txt,"resource":resource,"img_path":img_path}) + milvus.close() + + return results + +def split_text(resource, mdDocs, logger, chunk_type, chunk_size, chunk_overlap=50,max_level=3): + """ + 拆分文本的函数 + + Args: + resource: 资源标识 + mdDocs: Markdown文档内容 + logger: 日志记录器 + chunk_type: 拆分类型("01"或"03") + "01": 智能分割(基于递归字符分割) + "03": 按字符分割(基于token分割) + chunk_size: 块长度 + chunk_overlap: 块重叠大小(默认为50) + + Returns: + list: 拆分后的文本块列表,每个元素是包含文本和元数据的字典 + """ + #print(2222222222222222222222222222222222) + if chunk_type == "03": + logger.info(f"chunk size: {chunk_size},chunk_overlap: {chunk_overlap},chunk_type: {chunk_type}") + return _split_by_token(resource, mdDocs, logger, chunk_size, chunk_overlap) + else: + return _split_custom(resource, mdDocs, logger, chunk_type, chunk_size, chunk_overlap,max_level) + +def split_page_chunk(resource,content_chunk_list,chunk_size,chunk_overlap,logger,max_level,chunk_type): + def process_content_list(parsed_data: List[Dict],max_level) -> List[Dict]: + """ + 处理 parsed_data: + 1. 将 text_level=1/2 的标题添加到后续无 text_level 的文本前 + 2. 合并 type=image 的项到前一个 chunk + """ + processed_data = [] + current_titles = {level: "" for level in range(1, max_level + 1)} # 各级标题缓存 + + if isinstance(max_level, str): + try: + max_level = int(max_level) + except ValueError: + max_level = 3 # 默认值 + + for item in parsed_data: + if not isinstance(item, dict): + continue + + raw_text_level = item.get("text_level") + text_level = None + if raw_text_level is not None: + if isinstance(raw_text_level, str): + try: + text_level = int(raw_text_level.strip()) if raw_text_level.strip() else None + except ValueError: + text_level = None + elif isinstance(raw_text_level, int): + text_level = raw_text_level + + item_type = item.get("type", "text") + text = item.get("text", "") + page_idx = item.get("page_idx", -1) + id = item.get("id") + + if text_level is not None and 1 <= text_level <= max_level: + # 更新当前层级及更低层级的标题(例如:遇到2级标题会清除3级的缓存) + for level in range(text_level, max_level + 1): + current_titles[level] = text + "\n" if level == text_level else "" + continue # 标题本身不单独生成 chunk + + # 合并图片逻辑 + if item_type == "image": + image_path = item.get("image_path","") + image_caption = item.get("image_caption","") + if image_path: + text = f"![{image_caption}]({image_path})" + if processed_data: + processed_data[-1]["text"] += f"![{image_caption}]({image_path})" + continue + elif item_type =="table": + table_caption = "".join(item.get("table_caption", "")) + table_body = item.get("table_body", "") + text = table_caption + "\n" + table_body + # 普通文本:添加当前所有层级的标题(从高到低) + combined_title = "".join( + current_titles[level] + for level in range(1, max_level + 1) + if current_titles[level] + ) + full_text = combined_title + text + + # 添加到结果(仅当有内容时) + if full_text.strip(): + processed_data.append({ + "id":id, + "text": full_text, + "page_idx": page_idx+1, + "type": item_type, + "image_path":image_path if item_type == "image" else "" + }) + + return processed_data + results = [] + processed_data = process_content_list(content_chunk_list,max_level=max_level) + for i,data in enumerate(processed_data): + if chunk_type == "01" or "02": + chunks = _split_recursively(data["text"], chunk_size, chunk_overlap) + else: + chunks = _split_by_token(resource=resource,md_text=data.get["text"],logger=logger,chunk_size=chunk_size,chunk_overlap=chunk_overlap) + for j, chunk in enumerate(chunks): + result = _process_chunk(chunk, resource, {}, str(data.get("id")) +f"-{j}", logger,page_idx=data.get("page_idx")) + results.append(result) + print(111111111111111111) + return results + +def _split_by_token(resource, md_text,logger, chunk_size, chunk_overlap): + """ + 使用markdown解析器保持结构完整的切分方法,支持chunk重叠 + + 参数: + resource: 关联的资源标识 + md_text: 要切分的Markdown文本 + chunk_size: 每个chunk的目标大小 + chunk_overlap: chunk之间的重叠大小 + + 返回: + 包含text和resource字段的字典列表 + """ + logger.info("开始按字符分片") + if chunk_overlap >= chunk_size: + raise ValueError("chunk_overlap必须小于chunk_size") + + md = MarkdownIt() + tokens = md.parse(md_text) + root = SyntaxTreeNode(tokens) + if chunk_size >= 8192: + raise ValueError("chunk_size不能大于4096") + chunks = [] + current_chunk = "" + overlap_buffer = "" + + def get_node_text(node): + """递归获取节点的完整文本内容""" + if node.type == "text": + return node.content + elif node.type == "inline" and node.children: + return "".join(get_node_text(child) for child in node.children) + elif node.children: + # 对于块级元素,添加适当的换行 + contents = [] + for child in node.children: + content = get_node_text(child) + if content: + contents.append(content) + return "\n".join(contents) + return "" + + def process_node(node): + nonlocal current_chunk, overlap_buffer + content = get_node_text(node) + + # 处理当前内容 + remaining_content = content + while remaining_content: + # 计算还能添加到当前chunk的内容量 + remaining_space = chunk_size - len(current_chunk) + + if remaining_space <= 0: + # 当前chunk已满,保存并准备重叠部分 + chunks.append(current_chunk) + overlap_buffer = current_chunk[-chunk_overlap:] if chunk_overlap > 0 else "" + current_chunk = overlap_buffer + remaining_content[:remaining_space] + remaining_content = remaining_content[remaining_space:] + else: + # 添加到当前chunk + add_content = remaining_content[:remaining_space] + current_chunk += add_content + remaining_content = remaining_content[remaining_space:] + + # 处理所有节点 + for child in root.children: + process_node(child) + + # 添加最后一个chunk + if current_chunk: + chunks.append(current_chunk) + + # 过滤空chunk并添加resource信息 + return [{"text": text.strip(), "resource": resource} + for text in chunks if text.strip()] + +# def _split_by_token(resource, text, logger, chunk_size, chunk_overlap): +# """按token分割文本""" +# logger.info("开始按字符分割") +# text_splitter = TokenTextSplitter(chunk_size=1024, chunk_overlap=100) +# texts = text_splitter.split_text(text) +# return [{"text": text, "resource": resource} for text in texts] + + +def _split_custom(resource, mdDocs, logger, chunk_type, chunk_size, chunk_overlap,max_level): + """自定义分割处理""" + logger.info("开始按自定义分割") + results = [] + # if chunk_type=="02": + if chunk_type=="02" or chunk_type=="01": + # md_text = custom_convert_numbered_headings(mdDocs, max_level) + # md_text = '\n'.join(md_text) + chunks = _split_markdown(mdDocs,max_level) + # chunks = _split_markdown(md_text,max_level) + for idx, doc in enumerate(chunks, start=1): + # 确保所有Header字段都存在 + headers = {f"Header_{i}": doc.metadata.get(f"Header_{i}", "") + for i in range(1, max_level + 1)} + # if headers.get("Header_1") =="目 录" or headers.get("Header_1") =="目录" or headers.get("Header_1") =="目 录": + # continue + result = _process_chunk(doc.page_content, resource, headers, idx, logger) + results.append(result) + results = reset_chunk(results) + + return results + + +def _split_markdown(text,max_level,chunk_size=2048,chunk_overlap=50): + """ + 根据 max_level 动态生成 headers_to_split_on 配置 + 规则: + - max_level=1 → 只按 # 分割 + - max_level=2 → 按 # 和 ## 分割 + - 以此类推 + """ + # 动态生成 headers_to_split_on 配置 + headers_to_split_on = [ + (f"{'#' * i}", f"Header_{i}") for i in range(1, max_level + 1) + ] + + # 初始化分割器 + splitter = MarkdownHeaderTextSplitter( + headers_to_split_on=headers_to_split_on, + strip_headers=False # 废弃标题文本 + ) + chunks = splitter.split_text(text) + char_splitter = CharacterTextSplitter( + chunk_size=chunk_size, + chunk_overlap=chunk_overlap, + length_function=len, + separator="" # 优先按段落分割 + ) + # 检查并处理过大的分块 + + final_chunks = [] + header_chunks = [] + for chunk in chunks: + # content = chunk.page_content # 只获取文本内容,忽略metadata + if len(chunk.page_content) <=8000: + final_chunks.append(chunk) + header_chunks.append(chunk.metadata) #dict + else: + # 直接分割文本内容 + split_texts = char_splitter.split_documents([chunk]) + final_chunks.extend(split_texts) + + return final_chunks + + # 执行分割 + # return splitter.split_text(text) + +def _split_recursively(text, chunk_size, chunk_overlap): + """递归字符分割""" + text_splitter = RecursiveCharacterTextSplitter( + chunk_size=1024, + chunk_overlap=100, + length_function=len, + # separators=["\n\n\n","(? List[Dict[str, Any]]: + """同步调用入口""" + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + try: + result = loop.run_until_complete( + batch_chunk_process(markdown_context, chunks) + ) + finally: + loop.close() + return result + + +async def batch_chunk_process( + markdown_context: str, + chunks: List[Dict[str, Any]], + batch_size: int = 5, + timeout: int = 30 +) -> List[Dict[str, Any]]: + """ + 批量处理文档块(异步并发) + + Args: + markdown_context: 完整文档内容 + chunks: 文档块列表,每个块需包含"text"键 + batch_size: 并发请求数 (默认5) + timeout: 单个请求超时时间(秒) + + Returns: + 处理后的文档块列表 + """ + # 初始化参数 + api_key = os.getenv("OPENAI_API_KEY") + base_url = os.getenv("OPENAI_API_BASE") + model = os.getenv("OPENAI_MODEL", "qwen3-32b") + + if not api_key or not base_url: + raise ValueError("Missing OpenAI API configuration") + + async def process_single_chunk( + session: aiohttp.ClientSession, + chunk: Dict[str, Any], + semaphore: asyncio.Semaphore + ) -> Dict[str, Any]: + """处理单个chunk的异步函数""" + async with semaphore: + text = chunk.get("text", "").strip() + if not text: + return chunk + + prompt = f""" + {markdown_context} + {text} + Please provide a succinct context for this chunk within the document. + Respond ONLY with the context text, no additional commentary. + """ + chinese_prompt = f""" + <文档> + {markdown_context} + + 以下是需要定位到整体文档中的片段 + <片段> + {text} + + 请简要说明该片段在整体文档中的上下文关系,以提升片段搜索效果。只需给出简洁的上下文说明,无需其他内容。 + """ + + try: + async with session.post( + f"{base_url}/chat/completions", + headers={"Authorization": f"Bearer {api_key}"}, + json={ + "model": model, + "messages": [ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": chinese_prompt} + ], + "temperature": 0.1, + "extra_body": {"chat_template_kwargs": {"enable_thinking": False}} + }, + timeout=timeout + ) as response: + if response.status == 200: + data = await response.json() + if data.get("choices"): + chunk["text"] = data["choices"][0]["message"]["content"].strip() + else: + print(f"API error for chunk: {await response.text()}") + except Exception as e: + print(f"Error processing chunk: {e}") + + return chunk + + # 创建信号量控制并发数 + semaphore = asyncio.Semaphore(batch_size) + + # 异步处理所有chunks + async with aiohttp.ClientSession() as session: + tasks = [ + process_single_chunk(session, chunk, semaphore) + for chunk in chunks + ] + + # 使用tqdm显示进度(可选) + processed_chunks = [] + for future in tqdm(asyncio.as_completed(tasks), total=len(tasks)): + processed_chunks.append(await future) + + return processed_chunks + + +def prepare_rag_prompt(query, documents): + docs = "" + for i, doc in enumerate(documents): + docs += f"文本信息{i + 1}:{doc}\n" + return f"""你作为一个文档检索问答专家,请你从以下文本信息中选取有用的内容作为参考,仔细思考后用中文回答用户的问题,如果文本中没有关于问题的答案,则回答不知道: + ----- + {docs} + ----- + 用户提问:{query} + 你的回答:""" + + +def query_rewrite(query): + prompt = f""" + 你是一个专业的搜索查询优化助手。你的任务是根据用户输入的原始查询,生成更清晰、更易被搜索引擎理解的改写版本。请遵循以下规则: + + 1. **保持原意**:改写后的查询必须与用户意图一致,不能曲解原意。 + 2. **简洁清晰**:去掉冗余词,优化表达,但不要过度缩写。 + 3. **结构化**:如果查询适合拆解,可以适当结构化(如添加隐含的限定条件)。 + 4. **自然语言**:确保改写后的查询仍然符合自然语言习惯。 + 5. **多语言支持**:如果查询是中文,优先用中文改写;如果是英文,用英文优化。 + + 请改写以下查询,直接返回优化后的内容,不要额外解释: + 【用户查询开始】 + {query} + 【用户查询结束】 + """ + return OpenaiAPI.open_api_chat(prompt) + + +def RAG_PROMPT(QUERY, CONTEXT): + PROMPT = f""" +### Task: +Respond to the user query using the provided context, incorporating inline citations in the format [source_id] **only when the tag is explicitly provided** in the context. + +### Guidelines: +- If you don't know the answer, clearly state that. +- If uncertain, ask the user for clarification. +- Respond in the same language as the user's query. +- If the context is unreadable or of poor quality, inform the user and provide the best possible answer. +- If the answer isn't present in the context but you possess the knowledge, explain this to the user and provide the answer using your own understanding. +- When you find corresponding content in the provided sources, try to quote it verbatim as much as possible. +- When quoting from sources, reproduce the original text verbatim—do not omit, paraphrase, or add content. +- **Only include inline citations using [source_id] (e.g., [1], [2]) when a `` tag is explicitly provided in the context.** +- If the source file has a .glb extension, directly mark the corresponding content with the source_id in the relevant position. +- Do not cite if the or tag is not provided in the context. +- Do not use XML tags in your response. +- **If none of the provided sources contain relevant information to answer the question, respond only with: "没有找到相关来源" (No relevant sources found). Do not add any other content. +- Ensure citations are concise and directly related to the information provided. + +### Example of Citation: +If the user asks about a specific topic and the information is found in "whitepaper.pdf" with a provided , the response should include the citation like so: +* "According to the study, the proposed method increases efficiency by 20% [whitepaper.pdf]." +If no is present, the response should omit the citation. + +### Output: +Provide a clear and direct response to the user's query, including inline citations in the format [source_id] only when the tag is present in the context. + + +{CONTEXT} + + + +{QUERY} + +""" + return PROMPT + +# for chunk in response: +# content = chunk.choices[0].delta.content +# if content: +# print(content, end='', flush=True) +# print('\n') +# return response +def split_by_period(text): + sentences = re.split('(?<=。)', text) + sentences = [sentence.strip() for sentence in sentences if sentence.strip()] + return sentences + + +def rerank_text(query,data): + for datainfo in data: + splitdata = split_by_period(datainfo['text']) + current_score = datainfo['score'] + text_1 = query + url = os.getenv("OPENAI_API_RERANKER_BASE") + "/score" + headers = { + 'Authorization': 'Bearer 123456', + 'Content-Type': 'application/json' + } + + parse_data = { + "model": "bge-rerank", + "text_1": text_1, + "text_2": splitdata + } + response = requests.post(url, headers=headers, json=parse_data) + parseresult = response.json() + scores = [item['score'] for item in parseresult['data'] if 'score' in item] + + max_score = max(scores) + socore = 0.1 * current_score + 0.9 * max_score + datainfo['score'] = socore + return data + +def rerank_3d(query,data): + for recall_result in data: + text_2 = recall_result["text"] + current_score = recall_result["score"] + text_1 = query + url = os.getenv("OPENAI_API_RERANKER_BASE") + "/score" + headers = { + 'Authorization': 'Bearer 123456', + 'Content-Type': 'application/json' + } + + parse_data = { + "model": "bge-rerank", + "text_1": text_1, + "text_2": text_2 + } + response = requests.post(url, headers=headers, json=parse_data) + parseresult = response.json() + rerank_score = parseresult['data'][0]['score'] + score = current_score * 0.2 + rerank_score * 0.8 + recall_result["score"] = score + result_dict = {} + for item in data: + resource = item['resource'] + # 如果该 resource 不存在,或当前 score 更高,则替换 + if resource not in result_dict or item['score'] > result_dict[resource]['score']: + result_dict[resource] = item + + # 转换为列表 + filtered_result = list(result_dict.values()) + for new_index, item in enumerate(filtered_result, start=1): + item['index'] = new_index + + return filtered_result + + +class OPENAIAPI: + @staticmethod + def openai_chat(url,query, model): + """调用OpenAI API""" + try: + client = OpenAI( + api_key="none", + base_url=url, + ) + + response = client.chat.completions.create( + model=model, + messages=[ + {"role": "system", + "content": "你是一个专业的武器类查询改写助手,将用户问题改写为一个容易理解、且明确的查询。"}, + {"role": "user", "content": query}, + ], + temperature=0.1, + stream=False, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + except Exception as e: + print(f"调用OpenAI API时出错: {e}") + return None +prompt = """ +你是一个查询重写工具。请将以下用户查询改写为一个清晰、具体、完整、无歧义的自然语言问题。 +要求: +- 保留原始意图,不添加未提及的假设; +- 若查询模糊(如缩写、代词、片段),基于常识明确实体和领域(例如“AR50”应理解为“AR-50狙击步枪”); +- 使用完整陈述句,聚焦信息需求(如定义等); +- **仅输出改写后的问题本身,不要任何其他文字、标点前缀、问候、反问或说明。** +- 不要进行任何思考,直接输出改写后查询 +- 请按照下述示例进行改写 +原始查询:ar50 +改写后查询:AR-50狙击步枪是什么? + +原始查询:变速器? +改写后查询:变速器是什么? + +原始查询:{user_query} +""" +def resetQuery(query:str): + url = os.getenv("OPENAI_API_MODEL_BASE"+"/v1","http://192.168.0.46:59800/v1") + model = os.getenv("MODEL_NAME","Qwen3-32B") + query_prompt = prompt.replace("{user_query}",query) + answer = OPENAIAPI.openai_chat(url,query_prompt, model) + return answer + diff --git a/app_pkg/modelsAPI/model_api.py11 b/app_pkg/modelsAPI/model_api.py11 new file mode 100644 index 0000000..27f170a --- /dev/null +++ b/app_pkg/modelsAPI/model_api.py11 @@ -0,0 +1,475 @@ +import httpx +from openai import OpenAI +import os +import requests +import json +import asyncio +import aiohttp +from typing import List, Dict, Any +from tqdm import tqdm # 进度条支持(可选) +import re + +class OpenaiAPI: + # def __init__(self): + # self.openai_embedding_api_base = os.getenv("OPENAI_API_EMBEDDING_BASE") + # self.openai_embedding_model = os.getenv("OPENAI_EMBEDDING_MODEL") + # self.openai_chat_api_base = os.getenv("OPENAI_API_BASE") + # self.openai_chat_model = os.getenv("OPENAI_MODEL") + # self.openai_api_key = os.getenv("OPENAI_API_KEY") + # self.openai_reranker_api_base = os.getenv("OPENAI_API_RERANKER_BASE") + # self.openai_reranker_model = os.getenv("OPENAI_RERANKER_MODEL") + + # self.embedding_client = OpenAI( + # api_key=self.openai_api_key, + # base_url=self.openai_embedding_api_base, + # ) + # self.chat_client = OpenAI( + # api_key=self.openai_api_key, + # base_url=self.openai_chat_api_base, + # ) + # self.rerank_client = OpenAI( + # api_key=self.openai_api_key, + # base_url=self.openai_reranker_api_base, + # ) + @staticmethod + def get_embeddings(embedding_texts: List[str]): + base_url = os.getenv("OPENAI_API_EMBEDDING_BASE") + embedding_base_url = os.path.join(base_url, "embeddings") + with httpx.Client(timeout=60) as client: + response = client.post( + embedding_base_url, + json={"model": "bge-m3", "input": embedding_texts}, + headers={"Authorization": os.getenv("OPENAI_API_KEY")}, + ) + embedding_list = response.json()["data"][0]["embedding"] + # response = OpenAI( + # api_key=os.getenv("OPENAI_API_KEY","EMPTY"), + # base_url=os.getenv("OPENAI_API_EMBEDDING_BASE","http://172.18.30.122:40052/v1"), + # ).embeddings.create( + # model=os.getenv("OPENAI_EMBEDDING_MODEL","bge-m3"), + # input=embedding_texts, + # ) + # embedding_list = response.data[0].embedding + return embedding_list + + @staticmethod + def batch_embeddings(embedding_texts: List[str]): + base_url = os.getenv("OPENAI_API_EMBEDDING_BASE") + embedding_base_url = os.path.join(base_url, "embeddings") + with httpx.Client(timeout=60) as client: + response = client.post( + embedding_base_url, + json={"model": "bge-m3", "input": embedding_texts}, + headers={"Authorization": os.getenv("OPENAI_API_KEY")}, + ) + embedding_list = response.json()["data"] + + return embedding_list + + @staticmethod + def rerank_query(query: str, documents: List[str], top_n: str = 3): + """ + 发送重排序请求到 GPUStack API。 + + :param query: 查询字符串 + :param documents: 文档列表(字符串列表) + :param top_n: 返回的文档数量 + :param model: 使用的模型名称 + :param api_key: API 密钥 + :param server_url: API 服务器地址 + :return: API 的响应结果(JSON 格式) + + return : + { + "id": "rerank-1446b27f0d8642288578ee26707253a1", + "model": "bge-reranker-v2-m3", + "usage": { + "total_tokens": 53 + }, + "results": [ + { + "index": 2, + "document": { + "text": "I have a dog named Dollor" + }, + "relevance_score": 0.297119140625 + }, + { + "index": 1, + "document": { + "text": "hi" + }, + "relevance_score": 0.0009255409240722656 + }, + { + "index": 0, + "document": { + "text": "what is panda?" + }, + "relevance_score": 0.0008897781372070312 + } + ] + } + """ + + # 请求头 + headers = { + 'Content-Type': 'application/json', + 'Authorization': f'Bearer {os.getenv("OPENAI_API_KEY")}' + } + + # 请求体 + data = { + "model": os.getenv("OPENAI_RERANKER_MODEL"), + "query": query, + "top_n": top_n, + "documents": documents + } + + # 发送 POST 请求 + response = requests.post(os.getenv("OPENAI_API_RERANKER_BASE") + "/rerank", headers=headers, + data=json.dumps(data)) + results_list = [] + + # 检查响应状态码 + if response.status_code == 200: + result_json = response.json() # 返回解析后的 JSON 数据 + for result in result_json["results"]: + results_list.append( + {"index": result["index"], "text": result["document"]["text"], "scores": result["relevance_score"]}) + # results_list.append(result["document"]["text"]) + # relevance_scores.append(result["relevance_score"]) + return results_list + + else: + raise Exception(f"Error: {response.status_code}\n{response.text}") # 抛出异常 + + @staticmethod + def embedding_cosine_similarity(text_1, text_2): + # 请求头 + headers = { + 'Content-Type': 'application/json', + 'Authorization': f'Bearer {os.getenv("OPENAI_API_KEY")}' + } + + # 请求体 + data = { + "text_1": text_1, + "text_2": text_2, + "model": "bge-rerank" + } + + # # 发送 POST 请求 + # response = requests.post(os.getenv("OPENAI_API_EMBEDDING_BASE") + "/score", headers=headers, data=json.dumps(data)) + response = requests.post(os.getenv("OPENAI_API_RERANKER_BASE") + "/score", headers=headers, + data=json.dumps(data)) + if response.status_code == 200: + result_json = response.json() + score = result_json["data"][0]["score"] + return score + else: + raise Exception(f"Error: {response.status_code}\n{response.text}") # 抛出异常 + + @staticmethod + def open_api_chat(query: str, model: str): + response = OpenAI( + api_key=os.getenv("OPENAI_API_KEY"), + base_url=os.getenv("OPENAI_API_BASE"), + ).chat.completions.create( + model=model, + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": query}, + ], + temperature=0.6, + stream=False + ) + return response.choices[0].message.content + + @staticmethod + def open_api_caht_without_thinking(query: str, model: str): + response = OpenAI( + api_key=os.getenv("OPENAI_API_KEY"), + base_url=os.getenv("OPENAI_API_BASE"), + ).chat.completions.create( + model=model, + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": query}, ], + + temperature=0.1, + stream=False, + extra_body={"chat_template_kwargs": {"enable_thinking": False}}) + return response.choices[0].message.content + + @staticmethod + def open_api_chat_stream(query: str, model: str): + response = OpenAI( + api_key=os.getenv("OPENAI_API_KEY"), + base_url=os.getenv("OPENAI_API_BASE"), + ).chat.completions.create( + model=model, + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": query}, + ], + temperature=0.6, + stream=True + ) + for chunk in response: + content = chunk.choices[0].delta.content + if content: + yield content.encode('utf-8') + + @staticmethod + def context_chunk_process(markdown_context: str, chunks: List[Dict[str, Any]]) -> List[Dict[str, Any]]: + """同步调用入口""" + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + try: + result = loop.run_until_complete( + batch_chunk_process(markdown_context, chunks) + ) + finally: + loop.close() + return result + + +async def batch_chunk_process( + markdown_context: str, + chunks: List[Dict[str, Any]], + batch_size: int = 5, + timeout: int = 30 +) -> List[Dict[str, Any]]: + """ + 批量处理文档块(异步并发) + + Args: + markdown_context: 完整文档内容 + chunks: 文档块列表,每个块需包含"text"键 + batch_size: 并发请求数 (默认5) + timeout: 单个请求超时时间(秒) + + Returns: + 处理后的文档块列表 + """ + # 初始化参数 + api_key = os.getenv("OPENAI_API_KEY") + base_url = os.getenv("OPENAI_API_BASE") + model = os.getenv("OPENAI_MODEL", "qwen3-32b") + + if not api_key or not base_url: + raise ValueError("Missing OpenAI API configuration") + + async def process_single_chunk( + session: aiohttp.ClientSession, + chunk: Dict[str, Any], + semaphore: asyncio.Semaphore + ) -> Dict[str, Any]: + """处理单个chunk的异步函数""" + async with semaphore: + text = chunk.get("text", "").strip() + if not text: + return chunk + + prompt = f""" + {markdown_context} + {text} + Please provide a succinct context for this chunk within the document. + Respond ONLY with the context text, no additional commentary. + """ + chinese_prompt = f""" + <文档> + {markdown_context} + + 以下是需要定位到整体文档中的片段 + <片段> + {text} + + 请简要说明该片段在整体文档中的上下文关系,以提升片段搜索效果。只需给出简洁的上下文说明,无需其他内容。 + """ + + try: + async with session.post( + f"{base_url}/chat/completions", + headers={"Authorization": f"Bearer {api_key}"}, + json={ + "model": model, + "messages": [ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": chinese_prompt} + ], + "temperature": 0.1, + "extra_body": {"chat_template_kwargs": {"enable_thinking": False}} + }, + timeout=timeout + ) as response: + if response.status == 200: + data = await response.json() + if data.get("choices"): + chunk["text"] = data["choices"][0]["message"]["content"].strip() + else: + print(f"API error for chunk: {await response.text()}") + except Exception as e: + print(f"Error processing chunk: {e}") + + return chunk + + # 创建信号量控制并发数 + semaphore = asyncio.Semaphore(batch_size) + + # 异步处理所有chunks + async with aiohttp.ClientSession() as session: + tasks = [ + process_single_chunk(session, chunk, semaphore) + for chunk in chunks + ] + + # 使用tqdm显示进度(可选) + processed_chunks = [] + for future in tqdm(asyncio.as_completed(tasks), total=len(tasks)): + processed_chunks.append(await future) + + return processed_chunks + + +def prepare_rag_prompt(query, documents): + docs = "" + for i, doc in enumerate(documents): + docs += f"文本信息{i + 1}:{doc}\n" + return f"""你作为一个文档检索问答专家,请你从以下文本信息中选取有用的内容作为参考,仔细思考后用中文回答用户的问题,如果文本中没有关于问题的答案,则回答不知道: + ----- + {docs} + ----- + 用户提问:{query} + 你的回答:""" + + +def query_rewrite(query): + prompt = f""" + 你是一个专业的搜索查询优化助手。你的任务是根据用户输入的原始查询,生成更清晰、更易被搜索引擎理解的改写版本。请遵循以下规则: + + 1. **保持原意**:改写后的查询必须与用户意图一致,不能曲解原意。 + 2. **简洁清晰**:去掉冗余词,优化表达,但不要过度缩写。 + 3. **结构化**:如果查询适合拆解,可以适当结构化(如添加隐含的限定条件)。 + 4. **自然语言**:确保改写后的查询仍然符合自然语言习惯。 + 5. **多语言支持**:如果查询是中文,优先用中文改写;如果是英文,用英文优化。 + + 请改写以下查询,直接返回优化后的内容,不要额外解释: + 【用户查询开始】 + {query} + 【用户查询结束】 + """ + return OpenaiAPI.open_api_chat(prompt) + + +def RAG_PROMPT(QUERY, CONTEXT): + PROMPT = f""" +### Task: +Respond to the user query using the provided context, incorporating inline citations in the format [source_id] **only when the tag is explicitly provided** in the context. + +### Guidelines: +- If you don't know the answer, clearly state that. +- If uncertain, ask the user for clarification. +- Respond in the same language as the user's query. +- If the context is unreadable or of poor quality, inform the user and provide the best possible answer. +- If the answer isn't present in the context but you possess the knowledge, explain this to the user and provide the answer using your own understanding. +- When you find corresponding content in the provided sources, try to quote it verbatim as much as possible. +- When quoting from sources, reproduce the original text verbatim—do not omit, paraphrase, or add content. +- **Only include inline citations using [source_id] (e.g., [1], [2]) when a `` tag is explicitly provided in the context.** +- If the source file has a .glb extension, directly mark the corresponding content with the source_id in the relevant position. +- Do not cite if the or tag is not provided in the context. +- Do not use XML tags in your response. +- **If none of the provided sources contain relevant information to answer the question, respond only with: "没有找到相关来源" (No relevant sources found). Do not add any other content. +- Ensure citations are concise and directly related to the information provided. + +### Example of Citation: +If the user asks about a specific topic and the information is found in "whitepaper.pdf" with a provided , the response should include the citation like so: +* "According to the study, the proposed method increases efficiency by 20% [whitepaper.pdf]." +If no is present, the response should omit the citation. + +### Output: +Provide a clear and direct response to the user's query, including inline citations in the format [source_id] only when the tag is present in the context. + + +{CONTEXT} + + + +{QUERY} + +""" + return PROMPT + +# for chunk in response: +# content = chunk.choices[0].delta.content +# if content: +# print(content, end='', flush=True) +# print('\n') +# return response +def split_by_period(text): + sentences = re.split('(?<=。)', text) + sentences = [sentence.strip() for sentence in sentences if sentence.strip()] + return sentences + + +def rerank_text(query,data): + for datainfo in data: + splitdata = split_by_period(datainfo['text']) + current_score = datainfo['score'] + text_1 = query + url = os.getenv("OPENAI_API_RERANKER_BASE") + "/score" + headers = { + 'Authorization': 'Bearer 123456', + 'Content-Type': 'application/json' + } + + parse_data = { + "model": "bge-rerank", + "text_1": text_1, + "text_2": splitdata + } + response = requests.post(url, headers=headers, json=parse_data) + parseresult = response.json() + scores = [item['score'] for item in parseresult['data'] if 'score' in item] + + max_score = max(scores) + socore = 0.1 * current_score + 0.9 * max_score + datainfo['score'] = socore + return data + +def rerank_3d(query,data): + for recall_result in data: + text_2 = recall_result["text"] + current_score = recall_result["score"] + text_1 = query + url = os.getenv("OPENAI_API_RERANKER_BASE") + "/score" + headers = { + 'Authorization': 'Bearer 123456', + 'Content-Type': 'application/json' + } + + parse_data = { + "model": "bge-rerank", + "text_1": text_1, + "text_2": text_2 + } + response = requests.post(url, headers=headers, json=parse_data) + parseresult = response.json() + rerank_score = parseresult['data'][0]['score'] + score = current_score * 0.2 + rerank_score * 0.8 + recall_result["score"] = score + result_dict = {} + for item in data: + resource = item['resource'] + # 如果该 resource 不存在,或当前 score 更高,则替换 + if resource not in result_dict or item['score'] > result_dict[resource]['score']: + result_dict[resource] = item + + # 转换为列表 + filtered_result = list(result_dict.values()) + for new_index, item in enumerate(filtered_result, start=1): + item['index'] = new_index + + return filtered_result + diff --git a/app_pkg/pdf/test.pdf b/app_pkg/pdf/test.pdf new file mode 100644 index 0000000..38f12ea Binary files /dev/null and b/app_pkg/pdf/test.pdf differ diff --git a/app_pkg/requirements.txt b/app_pkg/requirements.txt new file mode 100644 index 0000000..3975b1b --- /dev/null +++ b/app_pkg/requirements.txt @@ -0,0 +1,17 @@ +openai +fastapi +aiohttp +uvicorn +python-multipart +langchain +httpx +pymilvus +pypinyin +python-dotenv +tiktoken +pdfplumber +python-docx +markitdown[all] +markdown-it-py +fuzzywuzzy +python-Levenshtein \ No newline at end of file diff --git a/app_pkg/test.py b/app_pkg/test.py new file mode 100644 index 0000000..35af5c2 --- /dev/null +++ b/app_pkg/test.py @@ -0,0 +1,19 @@ +import subprocess +import os + +def excel_to_pdf(excel_path, output_dir): + os.makedirs(output_dir, exist_ok=True) + + subprocess.run( + [ + "soffice", + "--headless", + "--convert-to", "pdf", + excel_path, + "--outdir", output_dir + ], + check=True + ) + +excel_to_pdf("test.xlsx", "./pdf") + diff --git a/app_pkg/test.xlsx b/app_pkg/test.xlsx new file mode 100644 index 0000000..47ea432 Binary files /dev/null and b/app_pkg/test.xlsx differ diff --git a/batch_kg_build.py b/batch_kg_build.py new file mode 100644 index 0000000..a30d5d5 --- /dev/null +++ b/batch_kg_build.py @@ -0,0 +1,465 @@ +#!/usr/bin/env python3 +""" +批量知识图谱构建脚本 —— 三阶段 ETL + +阶段1 (extract): 对文件夹内所有文件做实体抽取,每个文件结果存为 JSON +阶段2 (merge): 汇总所有 JSON,去重,生成 embedding,写入 Neo4j + +用法: + # 只跑抽取(4个容器各跑各的文件夹) + python batch_kg_build.py --folder /app/files --output_dir /app/kg_output --phase extract --workers 4 + + # 只跑入库(所有容器跑完后,跑一次) + python batch_kg_build.py --output_dir /app/kg_output --phase merge + + #抽取好的实体关系直接进行存储 + python batch_kg_build.py --phase load_snapshot --snapshot_path /path/to/my_custom_snapshot.json + + # 全流程一次跑完 + python batch_kg_build.py --folder /app/files --output_dir /app/kg_output --phase all --workers 4 +""" + +from default_ontology_config import ( + ONTOLOGY as _BASE_ONTOLOGY, + ONTOLOGY_DESCRIPTION as _BASE_ONTOLOGY_DESC, + NODE_TYPES as _BASE_NODE_TYPES, + RELATIONSHIPS as RELATIONSHIPS, + RELATIONSHIP_TYPES as RELATIONSHIP_TYPES, +) +import entity_registry as _entity_registry +import importlib +from modelsAPI.model_api import OpenaiAPI +from kg_build.kg_save import MilitaryKnowledgeGraph +from kg_build.filter_node_relation import filter_node_relationship +from filename_proceess_and_kgquery import get_entity +from kg_build.extract_filtertext import get_filtertext_node_relation +from extract_text_node_relation import process_file_content, check_filename_ocr +import os +import json +import logging +import argparse +import asyncio +import traceback +import time +from datetime import datetime +from multiprocessing import Process, Queue +from concurrent.futures import ThreadPoolExecutor +from typing import List, Dict, Tuple, Any, Optional + +EXTRACT_TIMEOUT = 600 # 单文件抽取超时秒数 +EMBED_WORKERS = 8 # Embedding 并发线程数 +FAULT_DIR = "/app/fault_wenjian" + + +def _record_fault(file_name: str): + """将超时文件名追加到 /app/fault_wenjian/timeout_YYYYMMDD.txt""" + os.makedirs(FAULT_DIR, exist_ok=True) + date_str = datetime.now().strftime("%Y%m%d") + fault_path = os.path.join(FAULT_DIR, f"timeout_{date_str}.txt") + with open(fault_path, "a", encoding="utf-8") as f: + f.write(file_name + "\n") + logger.warning(f"[FAULT] 已记录超时文件: {fault_path}") + + +# ── 项目内模块 ────────────────────────────────────────────────────────────── + + +def _build_ontology_config(): + """ + 与 app.py build_kg_config 保持一致: + default_ontology_config 的静态配置 + entity_registry.json 动态注册的实体类型合并。 + """ + importlib.reload(_entity_registry) + reg_list = _entity_registry.get_ontology_list() + reg_desc = _entity_registry.get_ontology_description() + reg_nodes = _entity_registry.get_node_types() + + # 合并:静态配置优先(手写配置不被覆盖) + ontology = list(dict.fromkeys(_BASE_ONTOLOGY + reg_list)) # 去重保序 + ontology_desc = {**reg_desc, **_BASE_ONTOLOGY_DESC} + node_types = {**reg_nodes, **_BASE_NODE_TYPES} + return ontology, ontology_desc, node_types + + +# 模块加载时构建一次(抽取阶段开始前已有 registry 内容) +ONTOLOGY, ONTOLOGY_DESC, NODE_TYPES = _build_ontology_config() + +# ── 配置(与 app.py 保持一致,按需修改) ──────────────────────────────────── +NEO4J_URI = os.getenv("NEO4J_URI", "bolt://192.168.2.12:57687") +NEO4J_USER = os.getenv("NEO4J_USER", "neo4j") +NEO4J_PASSWORD = os.getenv("NEO4J_PASSWORD", "zdht123@") +MINERU_INSTANCES = [ + # ("http://192.168.0.64:18000/analyze-pdf"), + #("http://192.168.0.111:9977/analyze-pdf/"), + # ("http://192.168.0.111:9979/analyze-pdf"), + ("http://192.168.2.12:59988/analyze-pdf/"), +] +PREFIX_URL = os.getenv("PREFIX_URL", "http://192.168.2.12:59085") + +SUPPORTED_EXT = {".pdf", ".md", ".docx", ".xlsx"} + +# ── 日志 ──────────────────────────────────────────────────────────────────── +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s [%(levelname)s] %(message)s", + handlers=[ + logging.StreamHandler(), + logging.FileHandler("batch_kg_build.log", encoding="utf-8"), + ], +) +logger = logging.getLogger(__name__) + + +# ════════════════════════════════════════════════════════════════════════════ +# 阶段 1:单文件抽取 +# ════════════════════════════════════════════════════════════════════════════ + + +def extract_single_file(file_path: str, output_dir: str, api_url: str = MINERU_INSTANCES[0]) -> Dict: + """ + 对单个文件做实体/关系抽取,结果保存到 output_dir/.json。 + 已存在 JSON 则跳过(断点续跑)。 + 返回 {"file": ..., "status": "ok"/"skip"/"error", "entity_count": ..., "rel_count": ...} + """ + logger.info(f'[api_url] {api_url}') + file_name = os.path.basename(file_path) + ext = os.path.splitext(file_name)[1].lower() + out_path = os.path.join(output_dir, file_name + ".json") + + # ── 断点续跑:已有结果直接跳过 ────────────────────────────────────────── + if os.path.exists(out_path): + logger.info(f"[SKIP] 已有结果,跳过: {file_name}") + return {"file": file_name, "status": "skip"} + + if ext not in SUPPORTED_EXT: + logger.warning(f"[SKIP] 不支持的文件类型: {file_name}") + return {"file": file_name, "status": "skip"} + + t0 = time.time() + entities: List[Dict] = [] + relations: List[Dict] = [] + lower_entity_device: Optional[str] = None + lower_entity_type: Optional[str] = None + + try: + # ── 1. 文件名实体提取 ──────────────────────────────────────────────── + try: + fn_result = get_entity(file_name) + fn_entities = fn_result.get("entities", []) + fn_relations = fn_result.get("relationships", []) + lower_entity = fn_result.get("low_level") + for e in fn_entities: + if e.get("properties", {}).get("名称") == lower_entity: + lower_entity_device = e["properties"].get("名称") + lower_entity_type = e.get("type") + break + except Exception as e: + logger.warning(f"[{file_name}] 文件名实体提取失败: {e}") + fn_entities, fn_relations = [], [] + + # ── 2. 正文实体抽取 ────────────────────────────────────────────────── + check = check_filename_ocr(file_name) + + if check == "ocr_true": + entities, relations = process_file_content( + file_name=file_name, + file_path=file_path, + task_id="batch", + data_dir=os.path.dirname(file_path), + ontology=ONTOLOGY, + ontology_desc=ONTOLOGY_DESC, + relationships=RELATIONSHIPS, + node_types=NODE_TYPES, + relationship_types=RELATIONSHIP_TYPES, + prefix_url=PREFIX_URL, + api_url=api_url, + check_cancelled_callback=lambda: False, + device=lower_entity_device, + device_type=lower_entity_type, + ) + + elif check == "ocr_false": + async def _run_filtertext(): + return await get_filtertext_node_relation( + input_pdf_path=file_path, + data=[], + prefix_url=PREFIX_URL, + device=lower_entity_device, + ) + + result = asyncio.run(_run_filtertext()) + if isinstance(result, tuple) and len(result) >= 2: + entities, relations = result[0], result[1] + else: + entities, relations = [], [] + logger.info("无需进行ocr解析,直接构建实体") + else: + logger.warning(f"[{file_name}] check_filename_ocr 返回 None,跳过正文抽取") + + # ── 3. 合并文件名实体 ──────────────────────────────────────────────── + all_entities = entities + fn_entities + all_relations = relations + fn_relations + # 过滤掉没有名称的实体 + all_entities = [e for e in all_entities if e.get("properties", {}).get("名称")] + + # ── 4. 保存 JSON ───────────────────────────────────────────────────── + os.makedirs(output_dir, exist_ok=True) + payload = {"entities": all_entities, "relationships": all_relations} + with open(out_path, "w", encoding="utf-8") as f: + json.dump(payload, f, ensure_ascii=False, indent=2) + + cost = time.time() - t0 + logger.info(f"[OK] {file_name} 实体:{len(all_entities)} 关系:{len(all_relations)} 耗时:{cost:.1f}s") + return { + "file": file_name, + "status": "ok", + "entity_count": len(all_entities), + "rel_count": len(all_relations), + } + + except Exception as e: + logger.error(f"[ERROR] {file_name}: {e}\n{traceback.format_exc()}") + return {"file": file_name, "status": "error", "error": str(e)} + + +def _extract_worker(file_path: str, output_dir: str, result_queue: Queue, api_url: str = MINERU_INSTANCES[0]): + """子进程入口:抽取单文件,结果放入队列""" + try: + result = extract_single_file(file_path, output_dir, api_url) + result_queue.put(result) + except Exception as e: + result_queue.put({"file": os.path.basename(file_path), "status": "error", "error": str(e)}) + + +def _run_file_with_timeout(args: Tuple) -> Dict: + """在线程中启动子进程并监控超时,实现滚动窗口并发。""" + fp, output_dir, inst = args + file_name = os.path.basename(fp) + q = Queue() + p = Process(target=_extract_worker, args=(fp, output_dir, q, inst)) + p.start() + p.join(timeout=EXTRACT_TIMEOUT) + if p.is_alive(): + p.kill() + p.join() + logger.warning(f"[TIMEOUT] {file_name} 超过 {EXTRACT_TIMEOUT}s,已跳过") + _record_fault(file_name) + return {"file": file_name, "status": "timeout"} + try: + return q.get_nowait() + except Exception: + return {"file": file_name, "status": "error"} + + +def phase_extract(folder: str, output_dir: str, workers: int): + """阶段1:滚动窗口多进程抽取,每完成一个立即补充下一个。""" + files = [ + os.path.join(folder, f) + for f in os.listdir(folder) + if os.path.isfile(os.path.join(folder, f)) + and os.path.splitext(f)[1].lower() in SUPPORTED_EXT + ] + logger.info(f"发现 {len(files)} 个文件,并发数: {workers}") + os.makedirs(output_dir, exist_ok=True) + + tasks = [ + (fp, output_dir, MINERU_INSTANCES[i % len(MINERU_INSTANCES)]) + for i, fp in enumerate(files) + ] + + with ThreadPoolExecutor(max_workers=workers) as executor: + results = list(executor.map(_run_file_with_timeout, tasks)) + + ok = sum(1 for r in results if r["status"] == "ok") + skip = sum(1 for r in results if r["status"] == "skip") + error = sum(1 for r in results if r["status"] == "error") + timeout = sum(1 for r in results if r["status"] == "timeout") + logger.info(f"抽取完成 成功:{ok} 跳过:{skip} 失败:{error} 超时:{timeout}") + return results + + +# ════════════════════════════════════════════════════════════════════════════ +# 阶段 2:汇总 → 去重 → Embedding → 写 Neo4j +# ════════════════════════════════════════════════════════════════════════════ + + +def phase_merge(output_dir: str): + """阶段2:读所有 JSON → 去重 → 向量化 → 写 Neo4j""" + + # ── 1. 读取所有抽取结果 ────────────────────────────────────────────────── + all_entities: List[Dict] = [] + all_relations: List[Dict] = [] + + json_files = [f for f in os.listdir(output_dir) if f.endswith(".json")] + logger.info(f"读取 {len(json_files)} 个抽取结果文件") + + for fname in json_files: + fpath = os.path.join(output_dir, fname) + try: + with open(fpath, "r", encoding="utf-8") as f: + data = json.load(f) + all_entities.extend(data.get("entities", [])) + all_relations.extend(data.get("relationships", [])) + except Exception as e: + logger.warning(f"读取失败 {fname}: {e}") + + logger.info(f"汇总: 实体 {len(all_entities)} 关系 {len(all_relations)}") + + # ── 2. 去重(filter_node_relationship 只跑这一次) ─────────────────────── + merged_input = {"entities": all_entities, "relationships": all_relations} + logger.info("开始全局去重(filter_node_relationship)...") + t0 = time.time() + try: + filter_data = filter_node_relationship( + URI=NEO4J_URI, + USERNAME=NEO4J_USER, + PASSWORD=NEO4J_PASSWORD, + merged_output_data=merged_input, + ) + except Exception as e: + logger.error(f"去重失败,使用原始数据: {e}") + filter_data = merged_input + logger.info(f"去重完成 实体:{len(filter_data['entities'])} 关系:{len(filter_data['relationships'])} 耗时:{time.time() - t0:.1f}s") + + # ── 3. 生成 Embedding(并行) ──────────────────────────────────────────── + logger.info(f"生成 Embedding(并发 {EMBED_WORKERS} 线程)...") + t0 = time.time() + + def _embed_one(entity: Dict) -> int: + name = str(entity.get("properties", {}).get("名称", "") or "") + if not name or "未知" in name: + return 0 + try: + entity["properties"]["embedding"] = OpenaiAPI.generate_embedding(name) + return 1 + except Exception as e: + logger.warning(f"Embedding 失败 [{name}]: {e}") + return 0 + + with ThreadPoolExecutor(max_workers=EMBED_WORKERS) as executor: + embedded = sum(executor.map(_embed_one, filter_data["entities"])) + logger.info(f"Embedding 完成 {embedded} 个实体 耗时:{time.time() - t0:.1f}s") + + # ── 3.5 本地保存带 Embedding 的实体关系 ────────────────────────────────── + snapshot_path = os.path.join(os.path.dirname(output_dir) if output_dir != "/" else "/app", "kg_snapshot.json") + try: + with open(snapshot_path, "w", encoding="utf-8") as f: + json.dump(filter_data, f, ensure_ascii=False, indent=2) + logger.info(f"本地快照已保存: {snapshot_path} 实体:{len(filter_data['entities'])} 关系:{len(filter_data['relationships'])}") + except Exception as e: + logger.warning(f"本地快照保存失败: {e}") + + # ── 4. 写入 Neo4j ───────────────────────────────────────────────────────── + logger.info("写入 Neo4j...") + # ontology, ontology_desc, node_types = _build_ontology_config() + + # 从实体数据中提取动态类型,追加到静态 ontology 末尾(静态配置优先,数据类型补充) + data_types = list(dict.fromkeys( + e["type"] for e in filter_data["entities"] if e.get("type") + )) + merged_ontology = list(dict.fromkeys( data_types)) + # new_types = [t for t in data_types if t not in set(ontology)] + # if new_types: + # logger.info(f"从实体数据补充新类型 {len(new_types)} 个: {new_types}") + + t0 = time.time() + kg = MilitaryKnowledgeGraph( + uri=NEO4J_URI, + auth=(NEO4J_USER, NEO4J_PASSWORD), + Ontology=merged_ontology, + ) + try: + entity_count, rel_count = kg.process_data(filter_data) + logger.info(f"Neo4j 写入完成 实体:{entity_count} 关系:{rel_count} 耗时:{time.time() - t0:.1f}s") + finally: + kg.close() + + +def phase_load_snapshot(snapshot_path: str): + """ + Directly read kg_snapshot.json and store entities/relations into Neo4j. + Skips extraction and embedding generation steps. + """ + if not os.path.exists(snapshot_path): + logger.error(f"Snapshot file not found: {snapshot_path}") + return + + logger.info(f"Loading snapshot from: {snapshot_path}") + t0 = time.time() + + try: + with open(snapshot_path, "r", encoding="utf-8") as f: + filter_data = json.load(f) + + entities = filter_data.get("entities", []) + relations = filter_data.get("relationships", []) + logger.info(f"Loaded snapshot: {len(entities)} entities, {len(relations)} relations") + + if not entities and not relations: + logger.warning("Snapshot contains no data to load.") + return + + # Extract dynamic types from entities to ensure Ontology coverage + data_types = list(dict.fromkeys( + e["type"] for e in entities if e.get("type") + )) + merged_ontology = list(dict.fromkeys(data_types)) + + logger.info(f"Initializing MilitaryKnowledgeGraph with ontology types: {merged_ontology[:5]}...") # Log first few for brevity + + kg = MilitaryKnowledgeGraph( + uri=NEO4J_URI, + auth=(NEO4J_USER, NEO4J_PASSWORD), + Ontology=merged_ontology, + ) + + try: + entity_count, rel_count = kg.process_data(filter_data) + elapsed = time.time() - t0 + logger.info(f"Neo4j write completed from snapshot. Entities: {entity_count}, Relations: {rel_count}. Time: {elapsed:.1f}s") + finally: + kg.close() + + except json.JSONDecodeError: + logger.error(f"Failed to decode JSON from {snapshot_path}") + except Exception as e: + logger.error(f"Error loading snapshot: {e}", exc_info=True) + +# ════════════════════════════════════════════════════════════════════════════ +# 入口 +# ════════════════════════════════════════════════════════════════════════════ + + +def main(): + parser = argparse.ArgumentParser(description="批量知识图谱构建") + parser.add_argument("--folder", default="", help="待处理文件夹(阶段1必填)") + parser.add_argument("--output_dir", default="/app/kg_output", help="JSON 输出/读取目录") + # Update choices to include 'load_snapshot' + parser.add_argument("--phase", default="all", choices=["extract", "merge", "load_snapshot", "all"], + help="extract=只抽取 merge=只入库(含抽取结果汇总) load_snapshot=直接加载快照 all=全流程") + parser.add_argument("--workers", type=int, default=1, help="阶段1并发线程数") + parser.add_argument("--snapshot_path", default="", help="快照文件路径 (用于 load_snapshot 阶段)") + args = parser.parse_args() + + # Determine default snapshot path if not provided and phase is load_snapshot + if args.phase == "load_snapshot" and not args.snapshot_path: + # Default to the location where phase_merge saves it + args.snapshot_path = os.path.join(os.path.dirname(args.output_dir) if args.output_dir != "/" else "/app", "kg_snapshot.json") + + if args.phase in ("extract", "all"): + if not args.folder: + parser.error("--phase extract/all 需要指定 --folder") + phase_extract(args.folder, args.output_dir, args.workers) + + if args.phase in ("merge", "all"): + phase_merge(args.output_dir) + + if args.phase == "load_snapshot": + phase_load_snapshot(args.snapshot_path) + + +if __name__ == "__main__": + main() +# ontology, ontology_desc, node_types = _build_ontology_config() +# print(ontology) + diff --git a/batch_kg_build_timeout.py b/batch_kg_build_timeout.py new file mode 100644 index 0000000..151c746 --- /dev/null +++ b/batch_kg_build_timeout.py @@ -0,0 +1,422 @@ +#!/usr/bin/env python3 +""" +批量知识图谱构建脚本 —— 三阶段 ETL + +阶段1 (extract): 对文件夹内所有文件做实体抽取,每个文件结果存为 JSON +阶段2 (merge): 汇总所有 JSON,去重,生成 embedding,写入 Neo4j + +用法: + # 只跑抽取(4个容器各跑各的文件夹) + python batch_kg_build.py --folder /app/files --output_dir /app/kg_output --phase extract --workers 4 + + # 只跑入库(所有容器跑完后,跑一次) + python batch_kg_build.py --output_dir /app/kg_output --phase merge + + # 全流程一次跑完 + python batch_kg_build.py --folder /app/files --output_dir /app/kg_output --phase all --workers 4 +""" + +import os +import json +import logging +import argparse +import asyncio +import traceback +import time +from datetime import datetime +from multiprocessing import Process, Queue +from typing import List, Dict, Tuple, Any, Optional + +EXTRACT_TIMEOUT = 600 # 单文件抽取超时秒数 +FAULT_DIR = "/app/fault_wenjian" + + +def _record_fault(file_name: str): + """将超时文件名追加到 /app/fault_wenjian/timeout_YYYYMMDD.txt""" + os.makedirs(FAULT_DIR, exist_ok=True) + date_str = datetime.now().strftime("%Y%m%d") + fault_path = os.path.join(FAULT_DIR, f"timeout_{date_str}.txt") + with open(fault_path, "a", encoding="utf-8") as f: + f.write(file_name + "\n") + logger.warning(f"[FAULT] 已记录超时文件: {fault_path}") + +# ── 项目内模块 ────────────────────────────────────────────────────────────── +from extract_text_node_relation import process_file_content, check_filename_ocr +from kg_build.extract_filtertext import get_filtertext_node_relation +from filename_proceess_and_kgquery import get_entity +from kg_build.filter_node_relation import filter_node_relationship +from kg_build.kg_save import MilitaryKnowledgeGraph +from modelsAPI.model_api import OpenaiAPI +import importlib +import entity_registry as _entity_registry +from default_ontology_config import ( + ONTOLOGY as _BASE_ONTOLOGY, + ONTOLOGY_DESCRIPTION as _BASE_ONTOLOGY_DESC, + NODE_TYPES as _BASE_NODE_TYPES, + RELATIONSHIPS as RELATIONSHIPS, + RELATIONSHIP_TYPES as RELATIONSHIP_TYPES, +) + + +def _build_ontology_config(): + """ + 与 app.py build_kg_config 保持一致: + default_ontology_config 的静态配置 + entity_registry.json 动态注册的实体类型合并。 + """ + importlib.reload(_entity_registry) + reg_list = _entity_registry.get_ontology_list() + reg_desc = _entity_registry.get_ontology_description() + reg_nodes = _entity_registry.get_node_types() + + # 合并:静态配置优先(手写配置不被覆盖) + ontology = list(dict.fromkeys(_BASE_ONTOLOGY + reg_list)) # 去重保序 + ontology_desc = {**reg_desc, **_BASE_ONTOLOGY_DESC} + node_types = {**reg_nodes, **_BASE_NODE_TYPES} + return ontology, ontology_desc, node_types + + +# 模块加载时构建一次(抽取阶段开始前已有 registry 内容) +ONTOLOGY, ONTOLOGY_DESC, NODE_TYPES = _build_ontology_config() + +# ── 配置(与 app.py 保持一致,按需修改) ──────────────────────────────────── +NEO4J_URI = os.getenv("NEO4J_URI", "bolt://localhost:7687") +NEO4J_USER = os.getenv("NEO4J_USER", "neo4j") +NEO4J_PASSWORD = os.getenv("NEO4J_PASSWORD", "zdht123@") +MINERU_ANALYZE = os.getenv("MINERU_ANALYZE", "http://192.168.1.64:18000/analyze-pdf") +MINERU_CACHE = os.getenv("MINERU_CACHE", "http://192.168.1.64:18000/get_content_list") +PREFIX_URL = os.getenv("PREFIX_URL", "http://192.168.1.64:9085") + +SUPPORTED_EXT = {".pdf", ".md", ".docx", ".xlsx"} + +# ── 日志 ──────────────────────────────────────────────────────────────────── +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s [%(levelname)s] %(message)s", + handlers=[ + logging.StreamHandler(), + logging.FileHandler("batch_kg_build.log", encoding="utf-8"), + ], +) +logger = logging.getLogger(__name__) + + +# ════════════════════════════════════════════════════════════════════════════ +# 阶段 1:单文件抽取 +# ════════════════════════════════════════════════════════════════════════════ + +def extract_single_file(file_path: str, output_dir: str) -> Dict: + """ + 对单个文件做实体/关系抽取,结果保存到 output_dir/.json。 + 已存在 JSON 则跳过(断点续跑)。 + 返回 {"file": ..., "status": "ok"/"skip"/"error", "entity_count": ..., "rel_count": ...} + """ + file_name = os.path.basename(file_path) + ext = os.path.splitext(file_name)[1].lower() + out_path = os.path.join(output_dir, file_name + ".json") + + # ── 断点续跑:已有结果直接跳过 ────────────────────────────────────────── + if os.path.exists(out_path): + logger.info(f"[SKIP] 已有结果,跳过: {file_name}") + return {"file": file_name, "status": "skip"} + + if ext not in SUPPORTED_EXT: + logger.warning(f"[SKIP] 不支持的文件类型: {file_name}") + return {"file": file_name, "status": "skip"} + + t0 = time.time() + entities: List[Dict] = [] + relations: List[Dict] = [] + lower_entity_device: Optional[str] = None + lower_entity_type: Optional[str] = None + + try: + # ── 1. 文件名实体提取 ──────────────────────────────────────────────── + try: + fn_result = get_entity(file_name) + fn_entities = fn_result.get("entities", []) + fn_relations = fn_result.get("relationships", []) + lower_entity = fn_result.get("low_level") + for e in fn_entities: + if e.get("properties", {}).get("名称") == lower_entity: + lower_entity_device = e["properties"].get("名称") + lower_entity_type = e.get("type") + break + except Exception as e: + logger.warning(f"[{file_name}] 文件名实体提取失败: {e}") + fn_entities, fn_relations = [], [] + + # ── 2. 正文实体抽取 ────────────────────────────────────────────────── + check = check_filename_ocr(file_name) + + if check == "ocr_true": + entities, relations = process_file_content( + file_name = file_name, + file_path = file_path, + task_id = "batch", + data_dir = os.path.dirname(file_path), + ontology = ONTOLOGY, + ontology_desc = ONTOLOGY_DESC, + relationships = RELATIONSHIPS, + node_types = NODE_TYPES, + relationship_types = RELATIONSHIP_TYPES, + prefix_url = PREFIX_URL, + api_url = MINERU_ANALYZE, + check_cancelled_callback = lambda: False, + device = lower_entity_device, + device_type = lower_entity_type, + get_contentlist_url = MINERU_CACHE, + ) + + elif check == "ocr_false": + async def _run_filtertext(): + return await get_filtertext_node_relation( + input_pdf_path = file_path, + data = [], + prefix_url = PREFIX_URL, + device = lower_entity_device, + ) + result = asyncio.run(_run_filtertext()) + if isinstance(result, tuple) and len(result) >= 2: + entities, relations = result[0], result[1] + else: + entities, relations = [], [] + + else: + logger.warning(f"[{file_name}] check_filename_ocr 返回 None,跳过正文抽取") + + # ── 3. 合并文件名实体 ──────────────────────────────────────────────── + all_entities = entities + fn_entities + all_relations = relations + fn_relations + # 过滤掉没有名称的实体 + all_entities = [e for e in all_entities if e.get("properties", {}).get("名称")] + + # ── 4. 保存 JSON ───────────────────────────────────────────────────── + os.makedirs(output_dir, exist_ok=True) + payload = {"entities": all_entities, "relationships": all_relations} + with open(out_path, "w", encoding="utf-8") as f: + json.dump(payload, f, ensure_ascii=False, indent=2) + + cost = time.time() - t0 + logger.info( + f"[OK] {file_name} 实体:{len(all_entities)} 关系:{len(all_relations)} 耗时:{cost:.1f}s" + ) + return { + "file": file_name, + "status": "ok", + "entity_count": len(all_entities), + "rel_count": len(all_relations), + } + + except Exception as e: + logger.error(f"[ERROR] {file_name}: {e}\n{traceback.format_exc()}") + return {"file": file_name, "status": "error", "error": str(e)} + + +def _extract_worker(file_path: str, output_dir: str, result_queue: Queue): + """子进程入口:抽取单文件,结果放入队列""" + try: + result = extract_single_file(file_path, output_dir) + result_queue.put(result) + except Exception as e: + result_queue.put({"file": os.path.basename(file_path), "status": "error", "error": str(e)}) + + +def phase_extract(folder: str, output_dir: str, workers: int): + """阶段1:多进程抽取,每个文件独立进程,超时后真正 kill""" + files = [ + os.path.join(folder, f) + for f in os.listdir(folder) + if os.path.isfile(os.path.join(folder, f)) + and os.path.splitext(f)[1].lower() in SUPPORTED_EXT + ] + logger.info(f"发现 {len(files)} 个文件,并发数: {workers}") + + results = [] + # 按 workers 大小分批,每批同时跑 workers 个进程 + for i in range(0, len(files), workers): + batch = files[i:i + workers] + procs = [] + for fp in batch: + q = Queue() + p = Process(target=_extract_worker, args=(fp, output_dir, q)) + p.start() + procs.append((p, fp, q)) + + for p, fp, q in procs: + file_name = os.path.basename(fp) + p.join(timeout=EXTRACT_TIMEOUT) + if p.is_alive(): + p.kill() + p.join() + logger.warning(f"[TIMEOUT] {file_name} 超过 {EXTRACT_TIMEOUT}s,已跳过") + _record_fault(file_name) + results.append({"file": file_name, "status": "timeout"}) + else: + try: + results.append(q.get_nowait()) + except Exception: + results.append({"file": file_name, "status": "error"}) + + ok = sum(1 for r in results if r["status"] == "ok") + skip = sum(1 for r in results if r["status"] == "skip") + error = sum(1 for r in results if r["status"] == "error") + timeout = sum(1 for r in results if r["status"] == "timeout") + logger.info(f"抽取完成 成功:{ok} 跳过:{skip} 失败:{error} 超时:{timeout}") + return results + + +# ════════════════════════════════════════════════════════════════════════════ +# 阶段 2:汇总 → 去重 → Embedding → 写 Neo4j +# ════════════════════════════════════════════════════════════════════════════ + +def phase_merge(output_dir: str): + """阶段2:读所有 JSON → 去重 → 向量化 → 写 Neo4j""" + + # ── 1. 读取所有抽取结果 ────────────────────────────────────────────────── + all_entities: List[Dict] = [] + all_relations: List[Dict] = [] + + json_files = [f for f in os.listdir(output_dir) if f.endswith(".json")] + logger.info(f"读取 {len(json_files)} 个抽取结果文件") + + for fname in json_files: + fpath = os.path.join(output_dir, fname) + try: + with open(fpath, "r", encoding="utf-8") as f: + data = json.load(f) + all_entities.extend(data.get("entities", [])) + all_relations.extend(data.get("relationships", [])) + except Exception as e: + logger.warning(f"读取失败 {fname}: {e}") + + logger.info(f"汇总: 实体 {len(all_entities)} 关系 {len(all_relations)}") + + # ── 2. 去重(filter_node_relationship 只跑这一次) ─────────────────────── + merged_input = {"entities": all_entities, "relationships": all_relations} + logger.info("开始全局去重(filter_node_relationship)...") + t0 = time.time() + try: + filter_data = filter_node_relationship( + URI = NEO4J_URI, + USERNAME = NEO4J_USER, + PASSWORD = NEO4J_PASSWORD, + merged_output_data = merged_input, + ) + except Exception as e: + logger.error(f"去重失败,使用原始数据: {e}") + filter_data = merged_input + logger.info(f"去重完成 实体:{len(filter_data['entities'])} 关系:{len(filter_data['relationships'])} 耗时:{time.time()-t0:.1f}s") + + # ── 3. 生成 Embedding ──────────────────────────────────────────────────── + logger.info("生成 Embedding...") + t0 = time.time() + embedded = 0 + for entity in filter_data["entities"]: + name = entity.get("properties", {}).get("名称", "") + if not name or "未知" in name: + continue + try: + entity["properties"]["embedding"] = OpenaiAPI.generate_embedding(name) + embedded += 1 + except Exception as e: + logger.warning(f"Embedding 失败 [{name}]: {e}") + logger.info(f"Embedding 完成 {embedded} 个实体 耗时:{time.time()-t0:.1f}s") + + # ── 4. 写入 Neo4j ───────────────────────────────────────────────────────── + logger.info("写入 Neo4j...") + t0 = time.time() + kg = MilitaryKnowledgeGraph( + uri = NEO4J_URI, + auth = (NEO4J_USER, NEO4J_PASSWORD), + Ontology = ONTOLOGY, + ) + try: + entity_count, rel_count = kg.process_data(filter_data) + logger.info( + f"Neo4j 写入完成 实体:{entity_count} 关系:{rel_count} 耗时:{time.time()-t0:.1f}s" + ) + finally: + kg.close() + + +# ════════════════════════════════════════════════════════════════════════════ +# 入口 +# ════════════════════════════════════════════════════════════════════════════ + +def main(): + parser = argparse.ArgumentParser(description="批量知识图谱构建") + parser.add_argument("--folder", default="", help="待处理文件夹(阶段1必填)") + parser.add_argument("--output_dir", default="/app/kg_output", help="JSON 输出/读取目录") + parser.add_argument("--phase", default="all", choices=["extract", "merge", "all"], + help="extract=只抽取 merge=只入库 all=全流程") + parser.add_argument("--workers", type=int, default=1, help="阶段1并发线程数") + args = parser.parse_args() + + if args.phase in ("extract", "all"): + if not args.folder: + parser.error("--phase extract/all 需要指定 --folder") + phase_extract(args.folder, args.output_dir, args.workers) + + if args.phase in ("merge", "all"): + phase_merge(args.output_dir) + + +def _fake_worker(file_path: str, output_dir: str, result_queue: Queue): + """测试用子进程:file_B 睡 20s 模拟超时,其余 2s""" + file_name = os.path.basename(file_path) + sleep_time = 20 if file_name == "file_B" else 2 + time.sleep(sleep_time) + out_path = os.path.join(output_dir, file_name + ".json") + with open(out_path, "w", encoding="utf-8") as f: + json.dump({"file": file_name}, f) + result_queue.put({"file": file_name, "status": "ok"}) + + +def _test_timeout(): + """ + 模拟超时跳过逻辑,验证完删掉此函数及 _fake_worker、下面的调用。 + file_A 正常(2s),file_B 超时(20s),file_C 正常(2s) + 期望总耗时约 TIMEOUT+2s,file_B 不写 JSON + """ + import tempfile + + global EXTRACT_TIMEOUT + EXTRACT_TIMEOUT = 5 # 测试用 5 秒 + + output_dir = tempfile.mkdtemp() + logger.info(f"测试输出目录: {output_dir}") + + files = ["file_A", "file_B", "file_C"] + results = [] + t_start = time.time() + + for i in range(0, len(files), 2): + batch = files[i:i + 2] + procs = [] + for f in batch: + q = Queue() + p = Process(target=_fake_worker, args=(f, output_dir, q)) + p.start() + procs.append((p, f, q)) + + for p, f, q in procs: + p.join(timeout=EXTRACT_TIMEOUT) + if p.is_alive(): + p.kill() + p.join() + logger.warning(f"[TIMEOUT] {f} 超时,进程已 kill,不写 JSON") + _record_fault(f) + results.append({"file": f, "status": "timeout"}) + else: + results.append(q.get_nowait()) + + logger.info(f"总耗时: {time.time()-t_start:.1f}s") + logger.info(f"结果: {results}") + logger.info(f"output_dir 中的文件: {os.listdir(output_dir)}") + + +if __name__ == "__main__": + _test_timeout() + # main() + + diff --git a/chunk_text.py b/chunk_text.py new file mode 100644 index 0000000..4e84a9f --- /dev/null +++ b/chunk_text.py @@ -0,0 +1,1654 @@ +import json +import fitz # PyMuPDF +import os +from collections import Counter +import uuid +from openai import OpenAI +import re +from typing import List, Dict, Optional, Union, Any, Tuple +# 指定 JSON 文件路径 +# file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/122-06A0014-B01001_发动机-维修手册_content_list.json' +try: + from filename_proceess_and_kgquery import get_entity +except ImportError: + get_entity = None +from pathlib import PurePath, PurePosixPath, Path as PathLib +from fastapi import FastAPI, File, Path, UploadFile, HTTPException, Form, Request, Header, Body +from fileparse_util import process_document +from generate_summary import generate_summaries +from io import BytesIO +from urllib.parse import unquote, urlparse +import asyncio +import base64 +import binascii +import threading +import aiofiles +import httpx +import logging +from resetlevel import reset_textlevel +from rapidocr_onnxruntime import RapidOCR +from PIL import Image, ImageOps, UnidentifiedImageError +from config import ( + API_URLS, + IMAGE_DIR, + MAX_SPLIT_IMAGE_BASE64_CHARS, + MAX_SPLIT_IMAGE_BYTES, + MAX_SPLIT_IMAGE_INPUT_BYTES, + OCR_CONCURRENCY, + SPLIT_IMAGE_COMPRESS_THRESHOLD_BYTES, + SPLIT_IMAGE_JPEG_QUALITY, + SPLIT_IMAGE_MAX_DIMENSION, +) +try: + from config import SHIP_MODEL_NAME +except ImportError: + SHIP_MODEL_NAME = "" +logger = logging.getLogger(__name__) + +SUMMARY_GENERATION_TIMEOUT_SECONDS = 60 + + +def get_text_level_summary_fallback(content_list) -> str: + summary_parts = [] + for record in content_list: + if not isinstance(record, dict): + continue + + text_level = record.get("text_level") + if text_level is None or text_level == "": + continue + + text = record.get("text") + if text: + summary_parts.append(str(text).strip()) + + return "\n".join(summary_parts) + + +async def generate_summary_from_md(md_content: Optional[str],content_list) -> str: + if not md_content or not str(md_content).strip(): + return get_text_level_summary_fallback(content_list) + try: + summaries = await asyncio.wait_for( + generate_summaries([str(md_content)]), + timeout=SUMMARY_GENERATION_TIMEOUT_SECONDS, + ) + summary = summaries[0] if summaries else "" + if summary: + return summary + logger.warning("生成文档摘要为空,使用 content_list text_level 兜底摘要") + except Exception as exc: + logger.error(f"生成文档摘要失败,使用 content_list text_level 兜底摘要: {exc}", exc_info=True) + return get_text_level_summary_fallback(content_list) + + +ocr_engine = RapidOCR() +OCR_SEMAPHORE = asyncio.Semaphore(max(1, OCR_CONCURRENCY)) +_ocr_thread_lock = threading.Lock() +_image_ocr_cache: Dict[str, str] = {} +_image_ocr_cache_lock = threading.Lock() +_api_url_inflight = [0] * len(API_URLS) +_api_url_lock = threading.Lock() +IMAGE_OCR_PREFIX = "图片中文本内容为:" +IMAGE_OCR_PREFIXES = (IMAGE_OCR_PREFIX, "图片包含的文字内容为:") + + +def _image_mime_type(suffix: str) -> str: + return { + ".jpg": "image/jpeg", + ".jpeg": "image/jpeg", + ".png": "image/png", + ".bmp": "image/bmp", + ".webp": "image/webp", + ".gif": "image/gif", + ".tif": "image/tiff", + ".tiff": "image/tiff", + }.get((suffix or "").lower(), "image/png") + + +def _image_save_format(suffix: str) -> tuple[str, dict]: + suffix = (suffix or "").lower() + if suffix in {".jpg", ".jpeg"}: + return "JPEG", {"quality": SPLIT_IMAGE_JPEG_QUALITY, "optimize": True} + if suffix == ".webp": + return "WEBP", {"quality": SPLIT_IMAGE_JPEG_QUALITY, "method": 6} + if suffix == ".png": + return "PNG", {"optimize": True, "compress_level": 9} + if suffix in {".tif", ".tiff"}: + return "TIFF", {"compression": "tiff_lzw"} + if suffix == ".gif": + return "GIF", {"optimize": True} + if suffix == ".bmp": + return "BMP", {} + return "PNG", {"optimize": True, "compress_level": 9} + + +def _compression_suffix(suffix: str) -> str: + suffix = (suffix or "").lower() + if suffix in {".jpg", ".jpeg", ".png", ".webp"}: + return suffix + if suffix in {".bmp", ".gif", ".tif", ".tiff"}: + return ".png" + return ".png" + + +def _save_image_to_bytes(img: Image.Image, suffix: str) -> bytes: + image_format, save_options = _image_save_format(suffix) + if image_format in {"JPEG", "WEBP", "BMP"} and img.mode not in {"RGB", "L"}: + img = img.convert("RGB") + elif image_format in {"PNG", "TIFF", "GIF"} and img.mode not in {"RGB", "RGBA", "L", "P"}: + img = img.convert("RGBA") + + output = BytesIO() + img.save(output, format=image_format, **save_options) + return output.getvalue() + + +def _save_image_as_jpeg(img: Image.Image) -> bytes: + if img.mode not in {"RGB", "L"}: + img = img.convert("RGB") + last_bytes = b"" + for quality in (SPLIT_IMAGE_JPEG_QUALITY, 82, 74): + output = BytesIO() + img.save(output, format="JPEG", quality=quality, optimize=True) + last_bytes = output.getvalue() + if len(last_bytes) <= MAX_SPLIT_IMAGE_BYTES: + break + return last_bytes + + +def compress_image_bytes(image_bytes: bytes, suffix: str = "") -> tuple[bytes, str]: + if not image_bytes: + raise HTTPException(status_code=400, detail="decoded image is empty") + if len(image_bytes) > MAX_SPLIT_IMAGE_INPUT_BYTES: + raise HTTPException(status_code=413, detail="image input is too large") + + suffix = (suffix or "").lower() + try: + with Image.open(BytesIO(image_bytes)) as img: + img = ImageOps.exif_transpose(img) + max_side = max(img.size) + should_resize = SPLIT_IMAGE_MAX_DIMENSION > 0 and max_side > SPLIT_IMAGE_MAX_DIMENSION + should_reencode = len(image_bytes) > SPLIT_IMAGE_COMPRESS_THRESHOLD_BYTES + + if not should_resize and not should_reencode: + if len(image_bytes) > MAX_SPLIT_IMAGE_BYTES: + raise HTTPException(status_code=413, detail="image is too large") + return image_bytes, suffix + + if should_resize: + scale = SPLIT_IMAGE_MAX_DIMENSION / max_side + new_size = ( + max(1, int(img.width * scale)), + max(1, int(img.height * scale)), + ) + resample = getattr(getattr(Image, "Resampling", Image), "LANCZOS") + img = img.resize(new_size, resample) + + compressed_suffix = _compression_suffix(suffix) + compressed_bytes = _save_image_to_bytes(img, compressed_suffix) + + if len(compressed_bytes) > MAX_SPLIT_IMAGE_BYTES: + compressed_bytes = _save_image_as_jpeg(img) + compressed_suffix = ".jpg" + except UnidentifiedImageError as exc: + raise HTTPException(status_code=400, detail="image content is not a supported image") from exc + except HTTPException: + raise + except Exception as exc: + logger.warning(f"Failed to compress image, using original bytes: {exc}") + compressed_bytes = image_bytes + compressed_suffix = suffix + + if len(compressed_bytes) >= len(image_bytes) and len(image_bytes) <= MAX_SPLIT_IMAGE_BYTES: + return image_bytes, suffix + if len(compressed_bytes) > MAX_SPLIT_IMAGE_BYTES: + raise HTTPException(status_code=413, detail="image is too large after compression") + return compressed_bytes, compressed_suffix + + +def prepare_split_image(image_base64: str, suffix: str = "") -> tuple[bytes, str]: + raw = (image_base64 or "").strip() + if not raw: + raise HTTPException(status_code=400, detail="image_base64 is empty") + + if "," in raw and raw.split(",", 1)[0].lower().startswith("data:image"): + raw = raw.split(",", 1)[1] + + raw = "".join(raw.split()) + if len(raw) > MAX_SPLIT_IMAGE_BASE64_CHARS: + raise HTTPException(status_code=413, detail="image_base64 is too large") + + try: + image_bytes = base64.b64decode(raw, validate=True) + except (binascii.Error, ValueError) as exc: + raise HTTPException(status_code=400, detail="image_base64 is not valid base64") from exc + + return compress_image_bytes(image_bytes, suffix) + + +def decode_base64_image(image_base64: str, suffix: str = "") -> bytes: + image_bytes, _ = prepare_split_image(image_base64, suffix) + return image_bytes + + +def safe_original_filename(filename: str) -> str: + name = os.path.basename((filename or "").strip()) + if not name: + raise HTTPException(status_code=400, detail="filename is empty") + safe_name = re.sub(r"[^\w.\-\u4e00-\u9fff]+", "_", name).strip("._") + if not safe_name: + raise HTTPException(status_code=400, detail="filename is invalid") + return safe_name + + +def _strip_markdown_image_path(img_path: str) -> str: + value = (img_path or "").strip() + match = re.match(r"!\[[^\]]*\]\((.*?)\)", value) + return match.group(1).strip() if match else value + + +def resolve_local_image_path(img_path: str) -> Optional[PathLib]: + value = _strip_markdown_image_path(str(img_path or "")) + if not value: + return None + + parsed_path = unquote(urlparse(value).path or value) + marker = "/images/" + if marker in parsed_path: + relative_path = parsed_path.split(marker, 1)[1] + else: + normalized = parsed_path.replace("\\", "/").lstrip("/") + if normalized.startswith("images/"): + relative_path = normalized.split("/", 1)[1] + else: + relative_path = normalized + + relative_path = relative_path.replace("\\", "/").lstrip("/") + if not relative_path: + return None + + image_root = PathLib(IMAGE_DIR).resolve() + local_path = (image_root / PurePosixPath(relative_path)).resolve() + try: + local_path.relative_to(image_root) + except ValueError: + logger.warning(f"Image path is outside IMAGE_DIR and will be ignored: {img_path}") + return None + + return local_path if local_path.is_file() else None + + +def extract_image_text_sync(image_path: Union[str, PathLib]) -> dict: + resolved_path = str(PathLib(image_path).resolve()) + with _image_ocr_cache_lock: + cached_text = _image_ocr_cache.get(resolved_path) + if cached_text is not None: + return {"texts": [], "full_text": cached_text, "elapse": None} + + with _ocr_thread_lock: + ocr_result, elapse = ocr_engine(resolved_path) + + texts = [item[1] for item in (ocr_result or [])] + full_text = IMAGE_OCR_PREFIX + ",".join(texts) if texts else "" + with _image_ocr_cache_lock: + _image_ocr_cache[resolved_path] = full_text + return { + "texts": texts, + "full_text": full_text, + "elapse": elapse, + } + + + + +async def get_image_ocr_text(local_image_path: Optional[PathLib]) -> str: + if not local_image_path: + return "" + + try: + ocr_data = await extract_image_text(local_image_path) + except Exception as exc: + logger.warning(f"Failed to OCR local image {local_image_path}: {exc}") + return "" + + return (ocr_data.get("full_text") or "").strip() + + +def stringify_content_field(value: Any) -> str: + if value is None: + return "" + if isinstance(value, list): + return "\n".join(str(item) for item in value if str(item).strip()) + if isinstance(value, dict): + return json.dumps(value, ensure_ascii=False) + return str(value) + + +def clean_table_body(table_body: Any) -> str: + table_body = stringify_content_field(table_body) + for pattern in [' colspan="1"', ' rowspan="1"', " colspan='1'", " rowspan='1'", " colspan=1", " rowspan=1"]: + table_body = table_body.replace(pattern, "") + return table_body + + +def join_nonempty_parts(*parts: Any) -> str: + return "\n".join(part for part in (stringify_content_field(part).strip() for part in parts) if part) + + +def strip_image_ocr_prefix(text: Any) -> str: + text = stringify_content_field(text).strip() + for prefix in IMAGE_OCR_PREFIXES: + if text.startswith(prefix): + return text[len(prefix):].strip() + return text + + +def normalize_image_ocr_text(value: Any) -> str: + return "\n".join( + line + for line in (strip_image_ocr_prefix(line) for line in stringify_content_field(value).splitlines()) + if line + ) + + +def split_image_caption_and_ocr(caption: Any) -> Tuple[str, str]: + if isinstance(caption, list): + raw_items = caption + else: + raw_items = [caption] + + caption_parts = [] + ocr_parts = [] + for item in raw_items: + for line in stringify_content_field(item).splitlines(): + line = line.strip() + if not line: + continue + ocr_line = strip_image_ocr_prefix(line) + if ocr_line != line: + ocr_parts.append(ocr_line) + else: + caption_parts.append(line) + + return "\n".join(caption_parts), "\n".join(ocr_parts) + +def record_to_chunk_text(ins: Dict[str, Any]) -> str: + record_type = ins.get("type") + ocr_text = ins.get("ocr_text", "") + + if record_type == "text": + text = stringify_content_field(ins.get("text", "")) + level = ins.get("text_level") + if level is not None and isinstance(level, int) and level > 0: + text = "#" * min(level, 6) + " " + text + return join_nonempty_parts(ocr_text, text) + + if record_type == "table": + return join_nonempty_parts( + ins.get("table_caption"), + clean_table_body(ins.get("table_body", "")), + ins.get("table_footnote"), + ) + + if record_type == "image": + imagecontent = '' + image_caption, caption_ocr_text = split_image_caption_and_ocr(ins.get("image_caption")) + image_caption = image_caption +"如下所示:" + img_path = stringify_content_field(ins.get("img_path")).strip() + if caption_ocr_text: + imagecontent = image_caption + "\n" + img_path + "\n" + f"备注:图片中包含的内容为{caption_ocr_text}" + else: + imagecontent = image_caption + "\n" + img_path + return imagecontent + + if record_type == "chart": + return join_nonempty_parts( + ins.get("chart_caption"), + ins.get("content"), + ins.get("img_path"), + ins.get("chart_footnote"), + ) + + if record_type == "equation": + return join_nonempty_parts( + ins.get("text"), + ) + + if record_type == "code": + return join_nonempty_parts( + ins.get("code_caption"), + ins.get("code_body"), + ins.get("code_footnote"), + ) + + if record_type == "list": + return join_nonempty_parts(ins.get("list_items")) + + if record_type in {"discarded", "header", "footer", "page_number"}: + return join_nonempty_parts(ins.get("text")) + + return join_nonempty_parts(ins.get("text")) + + +def is_supported_chunk_record(ins: Dict[str, Any]) -> bool: + return ins.get("type") in { + "text", + "table", + "image", + "chart", + "equation", + "code", + "list", + "discarded", + "header", + "footer", + "page_number", + } + + +def append_caption_ocr(ins: Dict[str, Any], ocr_texts: List[str]) -> None: + caption_field = { + "image": "ocr_text", + "table": "table_caption", + "chart": "chart_caption", + "code": "code_caption", + }.get(ins.get("type")) + if not caption_field: + caption_field = "ocr_text" + + caption = ins.get(caption_field, []) + existing_text = stringify_content_field(caption) + if ins.get("type") == "image": + existing_text = join_nonempty_parts(existing_text, ins.get("image_caption")) + elif caption_field == "ocr_text": + existing_text = join_nonempty_parts(existing_text, ins.get("text")) + + additions = [] + for text in ocr_texts: + text = (text or "").strip() + text_without_prefix = text + for prefix in IMAGE_OCR_PREFIXES: + if text_without_prefix.startswith(prefix): + text_without_prefix = text_without_prefix[len(prefix):].strip() + break + + if ( + text + and text not in existing_text + and text_without_prefix not in existing_text + and text not in additions + ): + additions.append(text) + + if not additions: + return + + if caption_field == "ocr_text": + ins[caption_field] = join_nonempty_parts(additions, caption) + return + + if isinstance(caption, list): + ins[caption_field] = additions + caption + elif caption is None or not str(caption).strip(): + ins[caption_field] = additions + else: + ins[caption_field] = "\n".join(additions) + "\n" + str(caption).lstrip() + + +def build_image_markdown(markdown_or_path: str, prefix: str) -> Tuple[str, Optional[PathLib]]: + img_path = str(markdown_or_path).strip() + if not img_path: + return "", None + + if img_path.strip().startswith("!["): + return img_path, resolve_local_image_path(img_path) + + p = PurePosixPath(img_path) + if p.parts and p.parts[0] == "images": + relative_path = str(PurePosixPath(*p.parts[1:])) + return f"![图片]({prefix}{relative_path})", resolve_local_image_path(relative_path) + + return f"![图片]({prefix}{img_path})", resolve_local_image_path(img_path) + + +def image_base64_to_data_url(image_base64: Union[str, bytes], suffix: str) -> str: + if isinstance(image_base64, bytes): + raw = base64.b64encode(image_base64).decode("ascii") + else: + raw = (image_base64 or "").strip() + if "," in raw and raw.split(",", 1)[0].lower().startswith("data:image"): + raw = raw.split(",", 1)[1] + raw = "".join(raw.split()) + + mime_type = _image_mime_type(suffix) + return f"data:{mime_type};base64,{raw}" + + +async def extract_image_text(image_path: PathLib) -> dict: + async with OCR_SEMAPHORE: + return await asyncio.to_thread(extract_image_text_sync, image_path) + +def format_entity_text(data): + # 1. 定义实体类型与属性的映射关系 + # 格式: '实体类型': [ ('前缀1', '属性1'), ('前缀2', '属性2') ] + type_mapping = { + '舰艇': [('舰艇为', '名称'), (',舷号', '舷号')], + '系统': [(',系统:', '名称')], + '子系统': [(',子系统:', '名称')], + '设备': [(',设备:', '名称')] + } + + text_parts = [] + + # 2. 遍历 entities 列表 + for entity in data.get('entities', []): + entity_type = entity.get('type') + + properties = entity.get('properties', {}) + + # 3. 如果当前实体类型在映射表中,则进行拼接 + if entity_type in type_mapping: + entity_str = "" + # 遍历该实体需要提取的所有属性 + for prefix, attr_key in type_mapping[entity_type]: + value = str(properties.get(attr_key, '')) + entity_str += f"{prefix}{value}" + text_parts.append(entity_str) + + # 4. 将所有部分拼接成一段完整的文本 + # 注意:因为前缀中已经包含了逗号,这里直接拼接即可 + return ''.join(text_parts) + +def get_api_url(task_id: str = "") -> tuple: + """返回 (analyze_url, contentlist_url),选当前 inflight 最少的实例。""" + with _api_url_lock: + idx = _api_url_inflight.index(min(_api_url_inflight)) + _api_url_inflight[idx] += 1 + base = API_URLS[idx] + return base + + +def release_api_url(url: str): + with _api_url_lock: + if url in API_URLS: + idx = API_URLS.index(url) + _api_url_inflight[idx] = max(0, _api_url_inflight[idx] - 1) +def extract_text_from_first_tr(html: str) -> str: + """提取 HTML 表格中第一个 内的文本(去除标签)""" + if not isinstance(html, str): + return "" + match = re.search(r']*>(.*?)', html, re.IGNORECASE | re.DOTALL) + if not match: + return "" + first_tr_content = match.group(1) + # 去除所有 HTML 标签 + text = re.sub(r'<[^>]+>', '', first_tr_content) + return text.strip() + + +def matches_any_pattern(text: str, patterns: List[List[str]]) -> bool: + """检查文本是否包含任意一组关键词(全部命中)""" + if not text: + return False + text_lower = text.lower() + for pattern in patterns: + if all(keyword in text_lower for keyword in pattern): + return True + return False + + +def is_maintenance_table(table_body: str, patterns: List[List[str]]) -> bool: + """判断是否为维修项目表格:仅检查第一个 是否匹配任一模式""" + first_tr_text = extract_text_from_first_tr(table_body) + return matches_any_pattern(first_tr_text, patterns) + + +# ============================== +# 维修项目表格的关键词模式(可按需扩展) +# ============================== + +MAINTENANCE_TABLE_PATTERNS: List[List[str]] = [ + ["维修项目编号", "组成编码", "名称", "维修项目", "维修间隔期"], + ["维修项目编号", "维修级别", "名称"], + ["项目编号", "编码", "维修内容", "周期"], + ["序号", "维修项", "标准", "频次"], # 示例:可继续添加业务变体 +] + + +# ============================== +# 主函数:提取维修项目表格及其后续内容组 +# ============================== + +def extract_maintenance_groups_and_remaining( + records: List[Dict[str, Any]], + patterns: List[List[str]] = MAINTENANCE_TABLE_PATTERNS, + max_following_for_last: int | None = None +) -> Tuple[List[List[Dict]], List[Dict]]: + groups = [] + current_group = None + used_ids = set() + + # 标记是否已经遇到第一个维修表格(用于跳过) + skipped_first = False + + for record in records: + is_start = ( + record.get("type") == "table" and + is_maintenance_table(record.get("table_body", ""), patterns) + ) + + if is_start: + # 如果是第一个维修表,跳过(不加入 groups,也不标记 used_ids) + if not skipped_first: + skipped_first = True + # 注意:这里不清空 current_group,因为前面不可能有 group(第一个 start) + current_group = None # 确保不会把之前的非 start 内容误加 + continue # 跳过这个 record,不加入任何 group + + # 从第二个维修表开始,才正常分组 + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + current_group = [record] + else: + if current_group is not None: + current_group.append(record) + + # 处理最后一个 group(仅当有有效 group 时) + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + # 限制最后一个 group 长度 + if groups and max_following_for_last is not None: + last_group = groups[-1] + max_len = max_following_for_last + 1 + if len(last_group) > max_len: + truncated = last_group[:max_len] + removed_ids = {r["id"] for r in last_group[max_len:]} + used_ids -= removed_ids + groups[-1] = truncated + + # remaining_records 包含所有未被 used_ids 标记的记录 + # 由于第一个 group 没有加入 used_ids,所以会保留在 remaining_records 中 + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + + +def is_operation_table_by_first_tr(table_body: str) -> bool: + """ + 判断 table_body 是否为操作项目表,依据是第一行 中是否包含 '项目编号' 和 '操作项目' + """ + if not isinstance(table_body, str): + return False + + # 非贪婪匹配第一个 ... + match = re.search(r']*>(.*?)', table_body, re.IGNORECASE | re.DOTALL) + if not match: + return False + + first_tr_html = match.group(1) + + # 去除所有 HTML 标签,提取纯文本 + text_in_first_tr = re.sub(r'<[^>]+>', '', first_tr_html) + + # 转为小写(中文无所谓大小写,但统一处理更安全) + text_clean = text_in_first_tr.strip() + + # 检查是否同时包含两个关键词 + has_code = "项目编号" in text_clean + has_item = "操作项目" in text_clean + return has_code and has_item + +def extract_operation_groups_and_remaining(records, max_following_for_last=23): + """ + 通过语义判断表格是否为操作项目表(基于第一行内容),并分组。 + 注意:第一个识别到的操作项目表及其后续记录组成的 group 会被跳过(不加入 groups), + 但这些记录仍保留在 remaining_records 中。 + + 普通起始标记:组 = [start, ..., next_start - 1] + 最后一个起始标记:组 = [start, ..., start + max_following_for_last] (若指定) + """ + groups = [] + current_group = None + used_ids = set() + first_group_skipped = False # 标记是否已跳过第一个 group + + for record in records: + is_start = ( + record.get("type") == "table" + and is_operation_table_by_first_tr(record.get("table_body", "")) + ) + + if is_start: + if current_group is not None: + # 决定是否保留当前积累的 group + if not first_group_skipped: + # 跳过第一个 group:不清空 current_group,也不加入 groups 或 used_ids + first_group_skipped = True + # 注意:这里不把 current_group 加入 groups,也不更新 used_ids + else: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + # 开启新 group + current_group = [record] + else: + # 第一个起始点 + current_group = [record] + else: + if current_group is not None: + current_group.append(record) + + # 处理最后一个 group(如果存在) + if current_group is not None: + if not first_group_skipped: + # 整个数据中只有一个 group,且是第一个 → 跳过它 + pass # 不加入 groups,也不加 id 到 used_ids + else: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + # —————— 后处理:截断最后一个 group(如果需要) —————— + if groups and max_following_for_last is not None: + last_group = groups[-1] + if len(last_group) > max_following_for_last + 1: # +1 是起始记录本身 + truncated = last_group[:max_following_for_last + 1] + removed_ids = {r["id"] for r in last_group[max_following_for_last + 1:]} + used_ids -= removed_ids + groups[-1] = truncated + + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + + +def extract_wxanli(records): + keywords = [ + "一、故障现象", + "单位:", + "故障名称:", + "一、基本情况", + "故障现象及原因:", + "故障名称:", + "实例故障" + ] + + # 存储切片 + slices = [] + # 标记已处理的记录索引 + processed_indices = set() + + # 查找所有包含关键词的记录位置 + keyword_positions = [] + for i, record in enumerate(records): + if record.get("type") == "text": + text = record.get("text", "") + # 检查是否包含任一关键词 + if any(keyword in text for keyword in keywords): + keyword_positions.append(i) + + # 为每个关键词位置创建切片 + for idx, start_pos in enumerate(keyword_positions): + # 确定切片结束位置 + if idx + 1 < len(keyword_positions): + end_pos = keyword_positions[idx + 1] + else: + end_pos = len(records) + + # 收集当前切片 + slice_records = [] + + # 添加前2个记录(如果存在且未超出边界) + for offset in [2, 1]: + prev_idx = start_pos - offset + if prev_idx >= 0: + slice_records.append(records[prev_idx]) + processed_indices.add(prev_idx) + + # 添加从关键词位置到下一个关键词位置的所有记录 + for i in range(start_pos, end_pos): + slice_records.append(records[i]) + processed_indices.add(i) + + slices.append(slice_records) + + # 收集未处理的剩余记录 + remaining_records = [ + records[i] for i in range(len(records)) + if i not in processed_indices + ] + + return slices, remaining_records + +def split_content_bbox(data, max_length=8000): + contents = [] + highlight_lists = [] + + current_content = "" + current_highlights = [] + + for ins in data: + if "type" not in ins: + continue + is_parent_context = ins.get("_is_parent_context", False) + if not ins.get("bbox") and not is_parent_context: + continue + # 提取通用字段 + bbox = ins.get("bbox") + page_idx = ins.get("page_idx", -1) + + if not is_supported_chunk_record(ins): + continue + + new_text = record_to_chunk_text(ins) + if new_text.strip(): + new_text += "\n" + # 父章节只作为子章节的文本上下文,不重复写入其 page_idx/bbox。 + should_record_highlight = not is_parent_context + + # --- 关键:即使 new_text 为空,只要 should_record_highlight 为 True,就要处理 chunk 切分和 highlight 记录 --- + + # 构造 highlight 项(即使 new_text 为空) + highlight_item = {"page_idx": page_idx, "bbox": bbox} + + if not new_text.strip() and not should_record_highlight: + continue # 完全跳过 + + # 检查是否需要切分(仅当 new_text 非空时才影响长度) + would_exceed = len(current_content) + len(new_text) > max_length + + # 如果 new_text 非空 且 会导致超长,则先保存当前 chunk + if new_text.strip() and would_exceed: + if current_content or current_highlights: + contents.append(current_content.rstrip('\n')) + highlight_lists.append(current_highlights) + current_content = new_text + current_highlights = [highlight_item] if should_record_highlight else [] + else: + # 追加内容(如果 new_text 非空) + if new_text.strip(): + current_content += new_text + # 无论如何,只要 should_record_highlight,就加 highlight + if should_record_highlight: + current_highlights.append(highlight_item) + + # 保存最后一段 + if current_content or current_highlights: + contents.append(current_content.rstrip('\n')) + highlight_lists.append(current_highlights) + + return contents, highlight_lists + + + +def _group_records_without_parent_context(records): + result = [] + current_group = [] + + for i, ins in enumerate(records): + if 'text_level' in ins and ins['text_level']: + # 当遇到新的text_level时,如果current_group非空,则先将其添加到结果中 + if current_group: + result.append(current_group) + current_group = [] # 开始新一组 + current_group.append(ins) + else: + # 如果当前记录没有text_level或其值为空,则继续添加到当前组 + current_group.append(ins) + + # 别忘了将最后一个组添加到结果中 + if current_group: + result.append(current_group) + + return result + + +def _get_group_level(group): + if not group: + return None + + level = group[0].get("text_level") + if isinstance(level, int) and level > 0: + return level + return None + + +def group_records(records): + """ + Split records by text_level, then prepend ancestor section content. + + For example, a text_level=2 section will include the nearest text_level=1 + group content before its own content. A text_level=3 section will include + the nearest level 1 and level 2 group content before its own content. + """ + base_groups = _group_records_without_parent_context(records) + result = [] + section_stack = [] # [(level, merged_group)] + + for group in base_groups: + level = _get_group_level(group) + if level is None: + result.append(group) + continue + + while section_stack and section_stack[-1][0] >= level: + section_stack.pop() + + parent_group = section_stack[-1][1] if section_stack else [] + parent_context = [ + {**record, "_is_parent_context": True} + for record in parent_group + ] + merged_group = parent_context + group + result.append(merged_group) + section_stack.append((level, merged_group)) + + return result + + +def get_chunk_bbox_otherfile(data, max_length=8000): + """ + 处理没有 bbox 信息的文件数据。 + 每条支持的记录作为一个独立切片,不与其他记录拼接。 + + - 单个 table 内容超过 max_length 时,调用 chunk_reset 在 处安全切分, + 切分后的多个 chunk 共享同一组 positions + - 清理冗余 colspan="1" / rowspan="1" 属性 + - bbox 缺失时填充空列表 [] + + 返回结构与 get_chunk_bbox 一致:[{"content": str, "positions": [...]}] + """ + slices = [] + + for ins in data: + if not is_supported_chunk_record(ins): + continue + + page_idx = ins.get("page_idx", -1) + bbox = ins.get("bbox", []) + content = record_to_chunk_text(ins) + if not content.strip(): + continue + positions = [{"page_idx": page_idx, "bbox": bbox}] + + # 单表超长 → 在 处切分,多个 chunk 共享 positions + if len(content) > max_length: + sub_chunks = chunk_reset(content, max_length) + for sub in sub_chunks: + slices.append({ + "content": sub.rstrip('\n'), + "positions": positions + }) + else: + slices.append({ + "content": content.rstrip('\n'), + "positions": positions + }) + + # 按 page_idx 排序,与 get_chunk_bbox 风格一致 + valid_slices = [ + item for item in slices + if item.get("positions") + and isinstance(item["positions"], list) + and len(item["positions"]) > 0 + and "page_idx" in item["positions"][0] + ] + valid_slices.sort(key=lambda item: item["positions"][-1]["page_idx"]) + + return valid_slices + +def get_chunk_bbox(data): + for idx, item in enumerate(data, start=1): + item["id"] = idx + repair_data, clean_repair_records = extract_maintenance_groups_and_remaining(data,max_following_for_last=23) + operation_data, clean_operation_records = extract_operation_groups_and_remaining(data,max_following_for_last=23) + wxanli_data, clean_wxanli_data = extract_wxanli(data) + slices = [] + if len(repair_data) > 0 : + for ins in repair_data: + content, highlight_list = split_content_bbox(ins) + for i, (content, h_list) in enumerate(zip(content, highlight_list)): + slices.append({ + "content" : content, + "positions":h_list + }) + groups = group_records(clean_repair_records) + for ins in groups: + content, highlight_list = split_content_bbox(ins) + for i, (content, h_list) in enumerate(zip(content, highlight_list)): + slices.append({ + "content" : content, + "positions":h_list + }) + + valid_slices = [ + item for item in slices + if item.get('positions') + and isinstance(item['positions'], list) + and len(item['positions']) > 0 + and 'page_idx' in item['positions'][0] + ] + slices = sorted(valid_slices, key=lambda item: item['positions'][-1]['page_idx']) + elif len(operation_data) > 0: + for ins in operation_data: + content, highlight_list = split_content_bbox(ins) + for i, (content, h_list) in enumerate(zip(content, highlight_list)): + slices.append({ + "content" : content, + "positions":h_list + }) + groups = group_records(clean_operation_records) + for ins in groups: + content, highlight_list = split_content_bbox(ins) + for i, (content, h_list) in enumerate(zip(content, highlight_list)): + slices.append({ + "content" : content, + "positions":h_list + }) + valid_slices = [ + item for item in slices + if item.get('positions') + and isinstance(item['positions'], list) + and len(item['positions']) > 0 + and 'page_idx' in item['positions'][0] + ] + slices = sorted(valid_slices, key=lambda item: item['positions'][-1]['page_idx']) + + elif len(wxanli_data) > 0: + for ins in wxanli_data: + content, highlight_list = split_content_bbox(ins) + for i, (content, h_list) in enumerate(zip(content, highlight_list)): + slices.append({ + "content" : content, + "positions":h_list + }) + for ins in clean_wxanli_data: + if not ins.get("bbox"): + continue + page_idx = ins.get("page_idx", 0) + bbox = ins["bbox"] + positions = [{"page_idx": page_idx, "bbox": bbox}] + + if not is_supported_chunk_record(ins): + continue + + content = record_to_chunk_text(ins) + if not content.strip(): + continue + + slices.append({"content": content, "positions": positions}) + + + valid_slices = [ + item for item in slices + if item.get('positions') + and isinstance(item['positions'], list) + and len(item['positions']) > 0 + and 'page_idx' in item['positions'][0] + ] + slices = sorted(valid_slices, key=lambda item: item['positions'][-1]['page_idx']) + else: + groups = group_records(data) + for ins in groups: + content, highlight_list = split_content_bbox(ins) + for i, (content, h_list) in enumerate(zip(content, highlight_list)): + slices.append({ + "content" : content, + "positions":h_list + }) + valid_slices = [ + item for item in slices + if item.get('positions') + and isinstance(item['positions'], list) + and len(item['positions']) > 0 + and 'page_idx' in item['positions'][0] + ] + valid_slices = [ + item for item in slices + if item.get('positions') + and isinstance(item['positions'], list) + and len(item['positions']) > 0 + and 'page_idx' in item['positions'][0] + ] + slices = sorted(valid_slices, key=lambda item: item['positions'][-1]['page_idx']) + return slices + +def split_text_preserve_sentences(text, max_length=7500): + if len(text) <= max_length: + return [text] + + # 按句子分割,保留标点 + parts = re.split(r'([。!?;!?])', text) + sentences = [] + for i in range(0, len(parts), 2): + s = parts[i] + (parts[i+1] if i+1 < len(parts) else '') + sentences.append(s) + + chunks = [] + current = "" + + for sent in sentences: + if len(current) + len(sent) <= max_length: + current += sent + else: + if current: + chunks.append(current) + else: + # 单句超长,硬切(极端情况) + chunks.append(sent[:max_length]) + sent = sent[max_length:] + current = sent + + if current: + chunks.append(current) + + return chunks + +async def data_replace(data, prefix): + """ + 遍历 data 列表,若元素包含 'img_path' 字段,则移除前缀 'images/' 并拼接新前缀。 + 使用 pathlib 安全处理路径。 + """ + for ins in data: + if isinstance(ins, dict) and ins.get("type") == "equation": + continue + if isinstance(ins, dict) and "img_path" in ins: + img_path = ins["img_path"] + local_image_paths = [] + if isinstance(img_path, list): + markdown_images = [] + for item in img_path: + if not str(item).strip(): + continue + markdown_image, local_image_path = build_image_markdown(str(item), prefix) + markdown_images.append(markdown_image) + if local_image_path: + local_image_paths.append(local_image_path) + ins["img_path"] = "\n".join(markdown_images) + else: + markdown_image, local_image_path = build_image_markdown(str(img_path), prefix) + ins["img_path"] = markdown_image + if local_image_path: + local_image_paths.append(local_image_path) + + ocr_texts = await asyncio.gather( + *(get_image_ocr_text(path) for path in local_image_paths) + ) + append_caption_ocr(ins, ocr_texts) + return data + +def filter_content_bbox(data, max_length=3000): + """ + 将 data 中的 text/table/image 内容按字符长度分块(每块不超过 max_length), + 返回 [{"content": str, "highlight_list": list}, ...] + """ + chunks = [] + current_content = "" + current_highlight_list = [] + + def _flush_chunk(): + """内部函数:将当前内容打包进 chunks,并重置""" + if current_content or current_highlight_list: + chunks.append({ + "content": current_content, + "highlight_list": current_highlight_list.copy() + }) + + for ins in data: + if "type" not in ins: + continue + + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + + if not is_supported_chunk_record(ins): + continue + + added_content = record_to_chunk_text(ins) + if added_content.strip(): + added_content += "\n" + else: + continue + + # 检查加上 added_content 后是否超限 + if len(current_content) + len(added_content) > max_length: + # 如果当前块非空,先 flush + if current_content: + _flush_chunk() + current_content = "" + current_highlight_list = [] + + # 如果单个 added_content 超过 max_length,仍需保留(避免丢弃) + if len(added_content) > max_length: + # 强制截断或直接放入(这里选择直接放入,避免信息丢失) + current_content = added_content[:max_length] + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + _flush_chunk() + # 剩余部分?此处简化处理:忽略超长部分(或可递归拆分,但复杂) + continue + else: + current_content = added_content + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + else: + current_content += added_content + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + + # 处理最后一块 + if current_content or current_highlight_list: + chunks.append({ + "content": current_content, + "highlight_list": current_highlight_list + }) + + return chunks + +def chunk_reset(content,MAX_length=8000): + chunks = [] + start = 0 + while start < len(content): + end = start + MAX_length + if end >= len(content): + chunks.append(content[start:]) + break + # 尽量在 后面切分 + snippet = content[start:end] + last_tr_end = snippet.rfind("") + if last_tr_end != -1: + end = start + last_tr_end + len("") + else: + # 如果找不到 ,退回到最近的换行或空白 + last_newline = snippet.rfind("\n") + if last_newline != -1: + end = start + last_newline + else: + # 实在不行就硬切 + pass + chunks.append(content[start:end]) + start = end + return chunks +def chunk_check(data,MAX_length=8000): + slice_reset = [] + for ins in data: + content = ins["content"] + positions = ins["positions"] + if len(content) <= 8000: + slice_reset.append(ins) + else: + # 使用你的 chunk_reset 函数切分 content + chunks = chunk_reset(content, MAX_length) + for chunk in chunks: + slice_reset.append({ + "content": chunk, + "positions": positions # 共享原始位置信息 + }) + return slice_reset + +def find_ship_info_by_hull(json_file_path, data): + """ + 从NER结果中提取舷号,再从JSON文件中查找对应的舰船信息 + :param json_file_path: JSON文件路径 + :param data: get_entity() 返回的NER结果字典 + :return: 包含 model_name 和 ship_name 的字典,未找到返回 None + """ + # 1. 提取舷号 + hulls = [ + entity['properties']['舷号'] + for entity in data.get('entities', []) + if 'properties' in entity and '舷号' in entity['properties'] + ] + if not hulls: + return None + + target_hull = hulls[0] + + # 2. 根据舷号查找舰船信息 + try: + with open(json_file_path, 'r', encoding='utf-8') as f: + ship_data = json.load(f) + + for item in ship_data: + if str(item.get('hull_number')) == str(target_hull): + return { + "model_name": item.get('model_name'), + "ship_name": item.get('ship_name') + } + + return None + + except FileNotFoundError: + print(f"错误:找不到文件 {json_file_path}") + return None + except json.JSONDecodeError: + print("错误:JSON 文件格式不正确") + return None + +def content_starts_with_same_lines(content: str, prefix: str) -> bool: + prefix_lines = [line.strip() for line in (prefix or "").splitlines() if line.strip()] + content_lines = [line.strip() for line in (content or "").splitlines() if line.strip()] + return bool(prefix_lines) and content_lines[:len(prefix_lines)] == prefix_lines + + +def content_ends_with_same_lines(content: str, suffix: str) -> bool: + suffix_lines = [line.strip() for line in (suffix or "").splitlines() if line.strip()] + content_lines = [line.strip() for line in (content or "").splitlines() if line.strip()] + return bool(suffix_lines) and content_lines[-len(suffix_lines):] == suffix_lines + + +def is_heading_only_content(content: str) -> bool: + lines = [ + line.strip() + for line in (content or "").splitlines() + if line.strip() + ] + meaningful_lines = [ + line + for line in lines + if not line.startswith("#文件名为:") and not re.fullmatch(r"\d+", line) + ] + return bool(meaningful_lines) and all(line.startswith("#") for line in meaningful_lines) + + +def merge_prefix_content(merged_prefix: str, content: str, pending_positions: list, positions: list): + prefix_lines = [line.strip() for line in (merged_prefix or "").splitlines() if line.strip()] + content_lines = [line.strip() for line in (content or "").splitlines() if line.strip()] + + duplicate_count = 0 + for prefix_line, content_line in zip(prefix_lines, content_lines): + if prefix_line != content_line: + break + duplicate_count += 1 + + if duplicate_count == len(prefix_lines): + return content, positions + + content_lines_raw = (content or "").splitlines() + content_without_duplicates = "\n".join(content_lines_raw[duplicate_count:]).lstrip("\n") + merged_content = merged_prefix + ("\n" if merged_prefix and content_without_duplicates else "") + content_without_duplicates + merged_positions = pending_positions + positions[duplicate_count:] + return merged_content, merged_positions + + +def merge_short_slices(slices, min_length=30, filename="122-06A0014-B01003_雷达-使用说明书.pdf"): + """ + 合并过短的切片: + - 如果某切片 content 长度 <= min_length,则将其合并到下一个切片的开头 + - 若处于末尾无下一个切片,则反向合并到上一个切片末尾 + - content 用换行拼接,positions 顺序拼接 + + Args: + slices: [{"content": str, "positions": [...]}] + min_length: 短切片的字符长度阈值(含) + filename: 用于实体提取的文件名 + + Returns: + 合并后的 slices 列表 + """ + if not slices: + return slices + + result = [] + pending_contents = [] # 缓存等待合并到"下一个"的短切片 content + pending_positions = [] # 缓存对应的 positions + + for ins in slices: + content = ins.get("content", "") or "" + positions = ins.get("positions", []) or [] + + if len(content) <= min_length or is_heading_only_content(content): + # 暂存,等到下一个正常长度的切片再合并 + if pending_contents: + merged_prefix = "\n".join(pending_contents) + if content_starts_with_same_lines(content, merged_prefix): + pending_contents = [content] + pending_positions = positions + else: + pending_contents.append(content) + pending_positions.extend(positions) + else: + pending_contents.append(content) + pending_positions.extend(positions) + else: + # 正常切片:把暂存的短切片合并到它的开头 + if pending_contents: + merged_prefix = "\n".join(pending_contents) + content, positions = merge_prefix_content( + merged_prefix, + content, + pending_positions, + positions, + ) + pending_contents = [] + pending_positions = [] + + result.append({ + "content": content, + "positions": positions + }) + + # 收尾:如果末尾还有未合并的短切片(后面没有正常切片可合并) + # 则反向合并到上一个切片末尾 + if pending_contents: + merged_suffix = "\n".join(pending_contents) + if result: + last = result[-1] + if not content_ends_with_same_lines(last.get("content", ""), merged_suffix): + last["content"] = (last["content"] or "") + ("\n" if last["content"] else "") + merged_suffix + last["positions"] = (last["positions"] or []) + pending_positions + else: + # 极端情况:所有切片都很短,整体作为一个切片返回 + result.append({ + "content": merged_suffix, + "positions": pending_positions + }) + + try: + final_result = get_entity(filename) + xinghao = find_ship_info_by_hull(SHIP_MODEL_NAME, final_result) + if xinghao is None: # 确保 xinghao 为 None 时不会报错 + xinghao = {"model_name": "", "ship_name": ""} + print("未找到匹配的舰船信息") + + # 安全处理 xinghao 为 None 的情况 + model_name = "" + if xinghao and 'model_name' in xinghao: + model_name = xinghao['model_name'] + + other_data = format_entity_text(final_result) + logger.info(f"文件名实体提取成功: {other_data}") + except Exception as e: + logger.warning(f"文件名实体提取失败: {e}") + other_data = "" + model_name = "" # 确保异常时 model_name 有定义 + + # 将提取的信息(如舰艇名、型号)注入到每个切片的开头 + for ins in result: + content = ins['content'] + # 如果没有提取到有效数据,则跳过注入 + + newline_idx = content.find('\n') + info = other_data + if model_name: + info += f',型号为{model_name}' + + # ===== 修改部分:拼接文件名 + 实体信息 ===== + # 构建前缀:#文件名为:xxx.pdf(实体信息) + filename_prefix = f"#文件名为:{filename}" + if info: + filename_prefix += f"({info})" + # 注意:这里使用全角右括号")"以匹配你的示例,如需半角请改为 ")" + + # 将前缀插入到 content 的最开头 + if content: + ins['content'] = filename_prefix + "\n" + content + else: + ins['content'] = filename_prefix + # ========================================== + + return result +def find_and_read_content_list(directory, original_filename, encoding='utf-8'): + """ + 根据原始文件名,在指定目录及其子目录下查找对应的 _content_list.json 文件并返回内容。 + """ + # 1. 去除原始文件的后缀,并拼接新的后缀 + # 加上 只获取不带后缀的文件名部分 + base_name = os.path.splitext(original_filename) + file_name = base_name[0] + target_filename = f"{file_name}_content_list.json" + + print(f"正在查找文件: {target_filename}") + + # 2. 使用 os.walk 递归遍历目录 + for root, dirs, files in os.walk(directory): + if target_filename in files: + file_path = os.path.join(root, target_filename) + + try: + with open(file_path, 'r', encoding=encoding) as f: + json_data = json.load(f) + return json_data + except json.JSONDecodeError: + print(f"文件 {file_path} 不是有效的 JSON 格式。") + return None + except Exception as e: + print(f"读取文件 {file_path} 时发生错误: {e}") + return None + + return None + +async def process_pdf_file(pdf_path: Path, image_prefix: str,filename:str) -> Optional[Dict[str, Any]]: + """异步调用 PDF 分析服务并处理响应""" + doc_result = await process_document(filename) + if doc_result is not None: + content_list, images, md_content = doc_result + if content_list and images: + replaced_content_textlevel = reset_textlevel(content_list) + replaced_content_list = await data_replace(replaced_content_textlevel, image_prefix) + slices = get_chunk_bbox(replaced_content_list) + slices_check = chunk_check(slices, 8000) + slices_check = merge_short_slices(slices_check, min_length=30,filename=filename) + summary = await generate_summary_from_md(md_content,content_list) + summary = f"文件名:{filename}\n" + summary + return {"slices": slices_check, "images": images, "summary": summary} + + api_url = get_api_url() + try: + async with aiofiles.open(pdf_path, "rb") as f: + file_content = await f.read() + files = {"file": (filename, file_content, "application/pdf")} + + async with httpx.AsyncClient(timeout=60 * 20) as client: + response = await client.post(api_url, files=files) + + if response.status_code != 200: + logger.error(f"❌ API 请求失败,状态码: {response.status_code}, 响应: {response.text}") + return None + + result = response.json() + data = result.get("data", {}) + content_list = data.get("content_list", []) + images = data.get("images", {}) + md_content = data.get("full_content", "") + replaced_content_textlevel = reset_textlevel(content_list) + replaced_content_list = await data_replace(replaced_content_textlevel, image_prefix) + slices = get_chunk_bbox(replaced_content_list) + slices_check = chunk_check(slices, 8000) + slices_check = merge_short_slices(slices_check, min_length=30,filename=filename) + summary = await generate_summary_from_md(md_content,content_list) + summary = f"文件名:{filename}\n" + summary + return {"slices": slices_check, "images": images, "summary": summary} + + except json.JSONDecodeError: + logger.error("❌ 响应不是有效的 JSON 格式") + logger.debug(response.text) + return {"slices": [], "images": {}, "summary": ""} + except Exception as e: + logger.error(f"处理 PDF 文件时出错: {e}", exc_info=True) + return None + finally: + release_api_url(api_url) + +async def process_other_file(pdf_path: Path, image_prefix: str, filename: str) -> Optional[Dict[str, Any]]: + """异步调用 Office 文件分析服务并处理响应""" + # 优先尝试走本地/缓存处理(保持与你原逻辑一致) + doc_result = await process_document(filename) + if doc_result is not None: + content_list, images, md_content = doc_result + if content_list and images: + replaced_content_textlevel = reset_textlevel(content_list) + replaced_content_list = await data_replace(replaced_content_textlevel, image_prefix) + slices = get_chunk_bbox(replaced_content_list) + slices_check = chunk_check(slices, 8000) + summary = await generate_summary_from_md(md_content,content_list) + summary = f"文件名:{filename}\n" + summary + return {"slices": slices_check, "images": images, "summary": summary} + + api_url = get_api_url() + analyze_other_url = api_url.replace("/analyze-pdf", "/analyze-otherfile") + + mime_type, _ = mimetypes.guess_type(pdf_path.name) + content_type = mime_type or "application/octet-stream" + + try: + async with aiofiles.open(pdf_path, "rb") as f: + file_content = await f.read() + + files = {"file": (pdf_path.name, file_content, content_type)} + + async with httpx.AsyncClient(timeout=60 * 20) as client: + response = await client.post(analyze_other_url, files=files) + + if response.status_code != 200: + logger.error(f"❌ Office 文件 API 请求失败,状态码: {response.status_code}, 响应: {response.text}") + return None + + result = response.json() + data = result.get("data", {}) + content_list = data.get("content_list", []) + images = data.get("images", {}) + md_content = data.get("full_content", "") + # 后续的数据替换与切片处理逻辑 + replaced_content_textlevel = reset_textlevel(content_list) + replaced_content_list = await data_replace(replaced_content_textlevel, image_prefix) + slices = get_chunk_bbox(replaced_content_list) + slices_check = chunk_check(slices, 8000) + + summary = await generate_summary_from_md(md_content,content_list) + summary = f"文件名:{filename}\n" + summary + return {"slices": slices_check, "images": images, "summary": summary} + + except json.JSONDecodeError: + error_text = response.text if 'response' in locals() else "请求未到达服务器" + logger.error(f"❌ 响应不是有效的 JSON 格式: {error_text}") + return {"slices": [], "images": {}, "summary": ""} + except Exception as e: + logger.error(f"处理 Office 文件时出错: {e}", exc_info=True) + return None + finally: + release_api_url(api_url) + +if __name__ == "__main__": + + filepath = r"E:\ZKYNLP\Hjunproject\kgrag\app\信号与系统_第三版_郑君里_上_content_list.json" + try: + with open(filepath, 'r', encoding='utf-8') as file: + data = json.load(file) + except Exception as e: + print(f"读取 JSON 文件时出错:{e}") + data = [] + # print(len(data)) + start_chars = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "第", "十", + "一", "二", "三", "四", "五", "六", "七", "八", "九"] + replaced_content_textlevel = reset_textlevel(data) + data = asyncio.run(data_replace(data=replaced_content_textlevel,prefix="/api/v1/knowledge/files/images/")) + slices = get_chunk_bbox(data=data) + slices_1 =chunk_check(slices, 8000) + slices_2 = merge_short_slices(slices_1, min_length=30) # ← 新增这一行 + + + for ins in slices_2: + # if any( + # position.get("page_idx") == 60 + # for position in ins.get("positions", []) + # ): + print(ins) + diff --git a/chunkincreas.py b/chunkincreas.py new file mode 100644 index 0000000..d1fbe52 --- /dev/null +++ b/chunkincreas.py @@ -0,0 +1,250 @@ +import asyncio +import aiohttp +import json +import traceback +from filename_proceess_and_kgquery import get_entity +from config import SHIP_MODEL_NAME + +# --- 配置区 --- +BASE_URL = "https://htknow.zkzdht.com/api/v1/knowledge" +ERROR_LOG_FILE = "error_log.txt" + +HEADERS = { + "accept": "application/json", + "x-role": "admin", + "x-user-id": "1", + "x-user-name": "testuser" +} + +# 全局 Semaphore,用于限制并发连接数,防止对服务器造成过大压力 +# 根据实际情况调整数值 +CONCURRENT_LIMIT = 10 +semaphore = asyncio.Semaphore(CONCURRENT_LIMIT) + +async def log_error(kb_id, file_id, error_msg): + """ + 将错误信息追加写入日志文件 + 注意:文件 I/O 在 asyncio 中是阻塞的,如果日志量极大,可以考虑使用线程池执行器 + """ + # 对于少量的日志写入,直接使用 await asyncio.to_thread 或直接同步写入通常足够 + # 这里为了简化,直接使用同步写入(在日志量不大时影响较小) + # 如果需要完全异步,可以使用 aiofiles 库 + try: + with open(ERROR_LOG_FILE, "a", encoding="utf-8") as f: + f.write(f"[ERROR] KnowledgeBaseID: {kb_id}, FileID: {file_id}, Message: {error_msg}\n") + except Exception as e: + print(f"写入错误日志时发生异常: {e}") + +async def find_ship_info_by_hull(json_file_path, data): + """从NER结果中提取舷号,再从JSON文件中查找对应的舰船信息""" + try: + # 同步文件读取,如果文件很大或数量很多,可以使用 aiofiles + with open(json_file_path, 'r', encoding='utf-8') as f: + ship_data = json.load(f) + + hulls = [ + entity['properties']['舷号'] + for entity in data.get('entities', []) + if 'properties' in entity and '舷号' in entity['properties'] + ] + if not hulls: + return None + + target_hull = hulls[0] + + for item in ship_data: + if str(item.get('hull_number')) == str(target_hull): + return { + "model_name": item.get('model_name'), + "ship_name": item.get('ship_name') + } + return None + except Exception as e: + print(f"查找舰船信息时发生错误: {e}") + return None + +def format_entity_text(data): + """格式化实体文本 (纯计算逻辑,保持同步)""" + type_mapping = { + '舰艇': [('舰艇为', '名称'), (',舷号', '舷号')], + '系统': [(',系统:', '名称')], + '子系统': [(',子系统:', '名称')], + '设备': [(',设备:', '名称')] + } + + text_parts = [] + for entity in data.get('entities', []): + entity_type = entity.get('type') + properties = entity.get('properties', {}) + + if entity_type in type_mapping: + entity_str = "" + for prefix, attr_key in type_mapping[entity_type]: + value = str(properties.get(attr_key, '')) + entity_str += f"{prefix}{value}" + text_parts.append(entity_str) + + return ''.join(text_parts) + +async def get_knowledge_base_files(session, kb_id): + """ + 获取指定知识库的文件列表 + """ + url = f"{BASE_URL}/knowledge_base/{kb_id}" + try: + async with session.get(url, headers=HEADERS, timeout=120) as response: + response.raise_for_status() + data = await response.json() + + if 'files' in data and isinstance(data['files'], list): + return data['files'] + else: + print(f"警告: 知识库 {kb_id} 中未找到 'files' 字段。") + return [] + + except Exception as e: + error_msg = f"获取知识库详情失败: {str(e)} | Traceback: {traceback.format_exc()}" + print(error_msg) + await log_error(kb_id, "N/A", error_msg) + return [] + +async def get_file_slices(session, file_id): + """获取文件所有切片""" + url = f"{BASE_URL}/files/{file_id}/slices" + try: + async with session.get(url, headers=HEADERS, timeout=120) as response: + response.raise_for_status() + return await response.json() + except Exception as e: + error_msg = f"获取文件切片失败: {str(e)}" + print(error_msg) + # 错误会在调用处记录 + raise Exception(error_msg) + +async def update_slices(session, slices_data, file_id): + """更新切片""" + url = f"{BASE_URL}/files/{file_id}/slices" + headers = { + **HEADERS, + "content-type": "application/json" + } + payload = {"slices": slices_data} + try: + async with session.put(url, headers=headers, json=payload, timeout=120) as response: + response.raise_for_status() + return await response.json() + except Exception as e: + error_msg = f"更新切片失败: {str(e)}" + print(error_msg) + raise Exception(error_msg) + +async def process_single_file(session, kb_id, file): + """ + 处理单个文件的逻辑,用于并发执行 + """ + file_id = file.get('id') + filename = file.get('filename', 'Unknown') + + print(f" 处理文件: {filename} (ID: {file_id})") + + try: + # --- 步骤 A: 提取实体信息 --- + final_result = get_entity(filename) + + # 处理舰船型号 + xinghao = await find_ship_info_by_hull(SHIP_MODEL_NAME, final_result) + model_name = xinghao.get('model_name', '') if xinghao else '' + + # 格式化其他实体文本 + other_data = format_entity_text(final_result) + + # --- 步骤 B: 获取切片 --- + slices = await get_file_slices(session, file_id) + + # --- 步骤 C: 处理切片内容 --- + slices_v2 = [] + info_suffix = f"({other_data},型号为{model_name})" if model_name and other_data else "" + for ins in slices: + ins_id = ins.get('id') + content = ins.get('content', '') + + # 查找第一行的结尾(换行符位置) + newline_idx = content.find('\n') + + # 拼接新内容 + if newline_idx == -1: + # 内容中没有换行符,直接在末尾添加 + new_content = content + info_suffix + else: + # 在第一行末尾插入 + new_content = content[:newline_idx] + info_suffix + content[newline_idx:] + + slices_v2.append({"id": ins_id, "content": new_content}) + + # --- 步骤 D: 更新切片 --- + await update_slices(session, slices_v2, file_id) + print(f" 成功更新文件: {filename}") + + except Exception as e: + # 捕获当前文件处理过程中的所有异常 + error_msg = f"处理文件失败: {str(e)}" + print(error_msg) + # 记录错误日志 + await log_error(kb_id, file_id, error_msg) + # 跳过当前文件 + return False + return True + +async def process_files_in_knowledge_base(session, kb_id): + """ + 处理单个知识库中的所有文件 + """ + print(f"\n=== 开始处理知识库 ID: {kb_id} ===") + + # 1. 获取文件列表 + files = await get_knowledge_base_files(session, kb_id) + if not files: + print(f"知识库 {kb_id} 中没有文件或获取文件列表失败,跳过。") + return + + # 2. 并发处理每个文件 + # 使用 asyncio.gather 来并发处理所有文件 + # 如果文件数量巨大,可以分批处理以避免内存溢出 + file_tasks = [ + process_single_file(session, kb_id, file) + for file in files + ] + + # 并发执行所有文件任务 + # return_exceptions=True 会捕获任务内部的异常并作为结果返回,而不是中断整个 gather + results = await asyncio.gather(*file_tasks, return_exceptions=True) + + # 统计结果 + success_count = sum(1 for r in results if r is True) + failed_count = len(results) - success_count + print(f"知识库 {kb_id} 处理完成。成功: {success_count}, 失败: {failed_count}") + +async def main(): + KNOWLEDGE_BASE_IDS = ['8'] + print(f"开始批量处理 {len(KNOWLEDGE_BASE_IDS)} 个知识库...") + + # 创建一个全局的 TCP 连接器,复用连接 + connector = aiohttp.TCPConnector(limit=CONCURRENT_LIMIT, limit_per_host=5) + + async with aiohttp.ClientSession(connector=connector) as session: + # 遍历所有知识库ID,并发处理 + # 如果知识库数量很多,也可以在这里使用 asyncio.gather + for kb_id in KNOWLEDGE_BASE_IDS: + try: + await process_files_in_knowledge_base(session, kb_id) + except Exception as e: + error_msg = f"处理知识库顶层异常: {str(e)}" + print(error_msg) + await log_error(kb_id, "N/A", error_msg) + continue + + print("所有知识库处理完成。") + +if __name__ == "__main__": + # 运行异步主函数 + asyncio.run(main()) diff --git a/cleardatabase.py b/cleardatabase.py new file mode 100644 index 0000000..bd280b7 --- /dev/null +++ b/cleardatabase.py @@ -0,0 +1,41 @@ +import re +from langchain_community.graphs.graph_document import GraphDocument, Node, Relationship +from langchain_core.documents import Document + +from langchain_community.graphs import Neo4jGraph +from langchain_core.documents import Document +import os +os.environ["NEO4J_URI"] = "bolt://192.168.0.46:57687" +os.environ["NEO4J_USERNAME"] = "neo4j" +os.environ["NEO4J_PASSWORD"] = "zdht123@" + +graph = Neo4jGraph(refresh_schema=False) + + +#清空数据库内容 +graph.query("MATCH (n) DETACH DELETE n") + + + +#查询某个节点的相关节点 +# selectsql = """ +# MATCH (e:__Entity__ {id: "进气系统"})-[r]-(related) +# RETURN related, type(r) AS relationship_type +# """ +# results = graph.query(selectsql) +# # +# # # 打印结果 +# print(f"共找到 {len(results)} 个关联节点:\n") +# for i, record in enumerate(results, 1): +# related_node = record["related"] +# rel_type = record["relationship_type"] + +# # 提取 related 节点的 id(或其他属性) +# node_id = related_node.get("id", "N/A") +# labels = related_node.get("labels", []) # 注意:LangChain 返回的节点可能包含 labels + +# print(f"{i}. 关联节点 ID: {node_id}") +# print(f" 标签: {labels}") +# print(f" 关系类型: {rel_type}") +# print(f" 完整节点数据: {related_node}") +# print("-" * 50) diff --git a/config.py b/config.py new file mode 100644 index 0000000..eb5c867 --- /dev/null +++ b/config.py @@ -0,0 +1,91 @@ +# app/model_config.py + +import os + +# ==================== 大模型配置 ==================== +LLM_CONFIG = { + "model": "46-qwen3.6-35B", + "base_url": "http://192.168.2.12:59800/v1", + "api_key": "gpustack_dee9ca823290886c_5edfc86aeeeceb1e9ee5162941cb2cb5", + "temperature": 0.1, + "max_tokens": 25096, + "timeout": 30 +} + +# ==================== 嵌入模型配置 ==================== +EMBEDDING_CONFIG = { + "model": "bge-m3", + "base_url": "http://192.168.2.12:59700/v1/embeddings", + "api_key": "gpustack_dee9ca823290886c_5edfc86aeeeceb1e9ee5162941cb2cb5", +} + +# ==================== Neo4j 图数据库配置 ==================== +NEO4J_CONFIG = { + # 优先读取环境变量,如果没有则使用默认值 + # 注意:本地开发通常用 localhost,部署时用服务名 neo4j + "uri": "neo4j://192.168.2.12:57687", + "username": "neo4j", + "password": "zdht123@", + "database": "neo4j", # 新增 database 配置 +} + +# ==================== 检索与索引配置 ==================== +SEARCH_CONFIG = { + "name_property": "名称", + "fulltext_property": "fulltext", + "embedding_property": "embedding", + "search_label": "Searchable", + "vector_index_name": "global_searchable_embedding", + "fulltext_index_name": "global_searchable_content_search", + "fulltext_field_index_name": "global_searchable_fulltext_search", + "global_entity_embedding" : "global_entity_embedding", + "global_entity_content_search": "global_entity_content_search", + "excluded_business_labels": [ + "Entity", "Chunk", "Document", "_Bloom_Perspective_", "Searchable" + ], + "vector_dimension": 1024, + "jieba_pos_whitelist": ["n", "nr", "ns", "nt", "nz", "vn", "eng"], + "embed_batch_size" : 64, + "embed_thread_num" : 4, + "node_fetch_page" : 10000, +} + +INDEXING_ULR = "http://192.168.2.12:59085/neo4j_indexing" + +URL = { + "indexing_url" : "http://192.168.2.12:59085/neo4j_indexing", + "prefix_url" : "http://192.168.2.12:59085", +} + +API_URLS = [ + "http://192.168.2.12:59988/analyze-pdf", + # "http://192.168.0.111:9977/analyze-pdf", + # "http://192.168.0.111:9978/analyze-pdf", + #"http://192.168.0.111:9979/analyze-pdf", + #"http://192.168.0.111:9980/analyze-pdf", + # "http://192.168.0.111:9975/analyze-pdf", +] +API_OTHER_URLS = [ + "http://192.168.2.12:59988/analyze-otherfile", + # "http://192.168.0.111:9977/analyze-otherfile", + # "http://192.168.0.111:9978/analyze-otherfile", + #"http://192.168.0.111:9979/analyze-otherfile", + #"http://192.168.0.111:9980/analyze-otherfile", + # "http://192.168.0.111:9975/analyze-otherfile", +] + +# ==================== 切片图片处理配置 ==================== +MAX_SPLIT_IMAGE_INPUT_BYTES = 50 * 1024 * 1024 +MAX_SPLIT_IMAGE_BYTES = 10 * 1024 * 1024 +MAX_SPLIT_IMAGE_BASE64_CHARS = (MAX_SPLIT_IMAGE_INPUT_BYTES * 4 // 3) + 4096 +SPLIT_IMAGE_COMPRESS_THRESHOLD_BYTES = MAX_SPLIT_IMAGE_BYTES +SPLIT_IMAGE_MAX_DIMENSION = 4096 +SPLIT_IMAGE_JPEG_QUALITY = 88 +OCR_CONCURRENCY = 1 +VLM_CONCURRENCY = 2 + +SHIP_MODEL_NAME = "/app/ship_xinghao.json" +TREE_JSON_PATH = "/app/tree_data.json" +# ==================== mineru和kgrag目录映射地址 ==================== +SEARCH_DIR ="/app/mineru_output" +IMAGE_DIR = "/app/mineru_output/images" diff --git a/databaseconnect.py b/databaseconnect.py new file mode 100644 index 0000000..e60343a --- /dev/null +++ b/databaseconnect.py @@ -0,0 +1,46 @@ +import json + +def find_ship_info(json_file_path, target_hull): + """ + 从JSON文件中根据舷号查找舰船信息 + :param json_file_path: JSON文件路径 + :param target_hull: 目标舷号 (字符串或数字) + :return: 包含 model_name 和 ship_name 的字典,未找到返回 None + """ + try: + # 1. 打开并读取JSON文件 + with open(json_file_path, 'r', encoding='utf-8') as f: + data = json.load(f) + + # 2. 遍历列表查找匹配项 + # 注意:这里使用 str() 转换是为了兼容 JSON 中 hull_number 可能是数字(163)或字符串("163")的情况 + for item in data: + if str(item.get('hull_number')) == str(target_hull): + return { + "model_name": item.get('model_name'), + "ship_name": item.get('ship_name') + } + + # 如果遍历结束仍未找到 + return None + + except FileNotFoundError: + print(f"错误:找不到文件 {json_file_path}") + return None + except json.JSONDecodeError: + print("错误:JSON 文件格式不正确") + return None + +# --- 使用示例 --- +if __name__ == "__main__": + file_path = "E:\ZKYNLP\Hjunproject\project0506\kgrag\ship_xinghao.json" # 替换为你的实际文件名 + search_hull = "163" # 你要查询的舷号 + + result = find_ship_info(file_path, search_hull) + + if result: + print(f"查询成功!") + print(f"型号: {result['model_name']}") + print(f"舰名: {result['ship_name']}") + else: + print(f"未找到舷号为 {search_hull} 的记录") \ No newline at end of file diff --git a/dataprocess.py b/dataprocess.py new file mode 100644 index 0000000..9d5fdbe --- /dev/null +++ b/dataprocess.py @@ -0,0 +1,137 @@ +from langchain_text_splitters import MarkdownHeaderTextSplitter, CharacterTextSplitter +import requests +import json + +from openai import OpenAI + +def _split_markdown(text, chunk_size=2048, chunk_overlap=50): + """ + 根据 max_level 动态生成 headers_to_split_on 配置 + 规则: + - max_level=1 → 只按 # 分割 + - max_level=2 → 按 # 和 ## 分割 + - 以此类推 + """ + # 动态生成 headers_to_split_on 配置(目前固定为 Header_1) + headers_to_split_on = [("#", "Header_1")] + + # 初始化分割器 + splitter = MarkdownHeaderTextSplitter( + headers_to_split_on=headers_to_split_on, + strip_headers=True + ) + chunks = splitter.split_text(text) + + char_splitter = CharacterTextSplitter( + chunk_size=chunk_size, + chunk_overlap=chunk_overlap, + length_function=len, + separator="\n\n" # 更合理的分隔符 + ) + + final_chunks = [] + start_chars = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "第", "十", + "一", "二", "三", "四", "五", "六", "七", "八", "九"] + new_header = [] + + # 提取所有 Header_1 并筛选出“有效标题” + for chunk in chunks: + header_1 = chunk.metadata.get('Header_1', '') + if header_1 and header_1[0] in start_chars: + new_header.append(header_1) + + new_header_set = set(new_header) + + # 构建带标题前缀的 final_chunks + for chunk in chunks: + header_1 = chunk.metadata.get('Header_1', '') + content = chunk.page_content + if len(content) <= 20000: + chunk_with_header = f"{header_1}\n{content}" if header_1 else content + final_chunks.append(chunk_with_header) + else: + split_texts = char_splitter.split_documents([chunk]) + for split_chunk in split_texts: + chunk_with_header = f"{header_1}\n{split_chunk.page_content}" if header_1 else split_chunk.page_content + final_chunks.append(chunk_with_header) + + # ===== 重新分组,并记录每个组的 header ===== + rechunked = [] + rechunked_headers = [] # 新增:每个 rechunked 块对应的 header + current = "" + current_header = "" # 当前正在构建的块所属的标题 + + for chunk in final_chunks: + is_new_section = False + matched_header = "" + + # 检查是否以某个 new_header 开头 + for h in new_header_set: + if chunk.startswith(h + "\n"): + is_new_section = True + matched_header = h + break + + if is_new_section: + # 保存上一段 + if current: + rechunked.append(current) + rechunked_headers.append(current_header) + # 开启新段 + current = chunk + current_header = matched_header + else: + # 合并到当前段 + if current: + current += "\n" + chunk + else: + current = chunk + current_header = "" # 如果开头无标题,则 header 为空 + + # 添加最后一段 + if current: + rechunked.append(current) + rechunked_headers.append(current_header) + + return rechunked, rechunked_headers + +def read_markdown_file(file_path): + """ + 读取 Markdown 文件并返回其全部内容作为字符串。 + + 参数: + file_path (str): Markdown 文件的路径(支持相对或绝对路径) + + 返回: + str 或 None: 成功时返回文件内容;出错时返回 None + """ + try: + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + return content + except FileNotFoundError: + print(f"错误:文件未找到 - {file_path}") + except PermissionError: + print(f"错误:没有权限读取文件 - {file_path}") + except UnicodeDecodeError: + print(f"错误:文件编码不是 UTF-8,无法读取 - {file_path}") + except Exception as e: + print(f"读取文件时发生未知错误: {e}") + return None + + + + + + +# if __name__ == "__main__": + + +# # 测试代码 +# file_path = "F:\zklnlp\HJ\code\output.md" # 替换为你的 Markdown 文件路径 +# markdown_content = read_markdown_file(file_path) +# content, headers = _split_markdown(markdown_content, chunk_size=3000, chunk_overlap=100) +# for ins in content: +# print(ins) +# print(1111111111111111111111111) + diff --git a/default_ontology_config.py b/default_ontology_config.py new file mode 100644 index 0000000..ba55854 --- /dev/null +++ b/default_ontology_config.py @@ -0,0 +1,152 @@ + +# ========== 1. 本体类列表 ========== +ONTOLOGY = [ + "舰艇", "系统", "子系统", "设备", "维修项目", "维修工作", "操作项目", + "故障模式", "安全警告", "工作原理", + "组成", "技术指标参数", "布置情况", "保障设施保障设备工具信息汇总表", + "消耗材料信息汇总表", "维修安全防护及注意事项汇总表", "图册", "安全使用操作", + "调试", "维护保养", "常见问题分析及排除", "功能", "接口", + "性能指标", "操作使用","环境条件","设计单位","操作程序" +] + +# ========== 2. 本体描述 ========== +ONTOLOGY_DESCRIPTION = { + "舰艇": ["代表一艘完整海上作战或保障平台的实体,是所有系统、设备和零部件的最高层级载体。区别于“系统”或“设备”,舰艇具有独立的型号、弦号和部队归属,不可作为其他舰艇的组成部分。"], + "系统": ["舰艇中实现某一类综合功能(如动力、导航、通信)的集成化功能单元,由多个子系统或设备协同组成。与“设备”不同,系统本身侧重于逻辑/功能层面的集合与统筹;与“舰艇”不同,系统不具备独立航行能力或部队归属。"], + "子系统": ["系统内部为实现特定子功能而划分的独立功能模块,是系统的直接组成部分。子系统既具备相对独立的功能完整性(可单独测试或隔离),又必须依赖所属系统才能发挥最终战术效能,是连接系统逻辑与物理设备的中间层级。"], + "设备": ["构成子系统或直接隶属于系统的具有独立物理形态和功能的具体装置。设备是执行具体战术动作或保障任务的最小功能实体(如雷达天线座、柴油发电机、水泵),由多个部件组装而成,可直接进行整体拆装和替换。"], + "维修项目": ["针对特定装备或系统设定的标准化维护任务类别,定义了“需要做什么”(如定期更换滤芯、年度校准、预防性检查)。维修项目是制定维修计划和工单的依据,侧重于周期性和预防性,不直接包含具体的执行步骤细节。"], + "维修工作": ["执行具体“维修项目”时实际开展的一系列技术操作过程的总和。维修工作包含了从故障诊断、部件拆卸、修理/更换、到重新安装测试的全流程实际操作,是维修人员消耗工时和资源的直接体现,侧重于“正在做”的过程。"], + "操作项目": ["舰员在日常使用、值更或训练过程中,对装备执行的具体动作指令或检查任务(如启动、切换模式、参数读取、日常擦拭)。操作项目侧重于装备的正确使用与状态监控,区别于以修复或深度维护为目的的“维修工作”。"], + "故障模式": ["对舰艇装备在运行过程中表现出的异常状态、性能退化或功能丧失现象的标准化描述。故障模式明确了“发生了什么错误”(如断裂、短路、泄漏、卡滞),是关联故障现象与维修方案的桥梁,不包含原因分析或解决措施。"], + "安全警告": ["针对发动机及相关设备在操作、维修过程中的人身安全防护、设备损坏风险及应急处置的强制性规范和提醒。"], + "工作原理": ["阐述设备或系统如何通过能量转换、机械运动或逻辑控制实现其预定功能的动态过程描述。"], + "组成": ["定义设备的物理或逻辑构成,包括系统、子系统及零部件之间的层级隶属关系。"], + "技术指标参数": ["设备的额定功率、转速、尺寸、重量等可量化的物理性能参数。"], + "布置情况": ["描述设备及其各组成部分在船体或机舱内的安装位置与空间分布。"], + "保障设施保障设备工具信息汇总表": ["执行维修或保障任务时所需的专用或通用工具、测量仪器及辅助设施清单。"], + "消耗材料信息汇总表": ["执行维修或保障任务时所需消耗的物料,包括润滑油、密封件、清洗剂等耗材清单。"], + "维修安全防护及注意事项汇总表": ["在执行具体维修项目时,为确保作业安全而必须遵守的防护措施、注意事项及环境要求汇总。"], + "图册": ["图录是对舰艇及其系统、设备的图片资料进行分类、描述和索引的集合。图录中的每个条目通常包含图片文件、名称、描述、拍摄角度、相关系统或设备的关联信息等。图录的核心作用在于提供直观的视觉参考,辅助理解设备结构、维修步骤和操作方法等内容,是维修手册和操作指南的重要补充。"], + "安全使用操作": ["安全手册主要描述设备主要安全防护、安装方法、启动及运行过程中的操作、注意事项及防范措施等的基本操作规范"], + "调试": ["描述设备的安装调试内容"], + "维护保养": ["描述设备的维护保养步骤以及流程"], + "常见问题分析及排除": ["描述设备的常见问题分析及排除流程"], + "接口": ["描述设备的接口"], + "性能指标": ["描述设备的性能指标"], + "操作使用": ["主要描述设备主要安装方法、启动及运行过程中的操作、注意事项及防范措施等的基本操作规范"], + "功能": ["主要描述设备使用功能"], + "环境条件": ["主要描述设备运行的环境条件"], + "器材保障" : ["设备的器材保障"], + "设计单位" : ["设备来源设计单位设计"], + "操作程序" : ["设备的操作使用程序"] +} + +# ========== 3. 节点类型属性定义 ========== +NODE_TYPES = { + "舰艇": ["名称", "型号", "弦号", "设计单位", "总装工厂", "所属部队"], + "系统": ["名称", "型号", "生产单位", "等级", "功能"], + "子系统": ["名称", "型号", "生产单位", "等级", "功能"], + "维修工作": ["名称", "故障原因", "故障影响", "故障类型", "发生时间", "处置情况", "修复情况", "维修方案"], + "故障模式": ["名称", "故障原因", "故障影响", "故障类型", "发生时间", "处置情况", "修复情况", "维修方案"], + "维修项目": ["名称", "维修项目编号", "维修间隔期", "安全注意事项", "保障设备(工具)", "备品备件", "消耗材料", "人力人员","修前判据", "修理步骤及工艺", "验收标准"], + "操作项目": ["名称", "操作项目编号", "安全防护", "注意事项", "保障设施、保障设备(工具)", "人力人员", "操作步骤"], + "安全警告": ["名称", "警告", "注意", "原文"], + "工作原理": [ + "名称", "主发动机工作原理", "机座与机架组件", "曲柄连杆机构", + "燃烧室部件", "排气阀驱动系统", "燃油喷射系统", "扫气与增压系统", "原文" + ], + "组成": ["名称", "描述", "原文"], + "技术指标参数": ["名称", "功能特性", "能力限制", "额定输出", "环境特性", "重量", "其它指标", "原文"], + "布置情况": ["名称", "描述", "原文"], + "保障设施保障设备工具信息汇总表": [ + "名称", "房号", "规格/型号", "生产单位", "通用/专用", "重量", + "参考价(元)", "存放位置", "备注", "原文" + ], + "消耗材料信息汇总表": ["名称", "牌号/品级/规格", "生产单位", "备注", "原文"], + "维修安全防护及注意事项汇总表": ["名称", "安全防护", "注意事项", "原文"], + "图册": ["名称", "描述", "相关系统或设备", "拍摄角度", "原文"], + "安全使用操作": ["名称", "内容", "使用前的准备和检查"], + "调试": ["名称", "内容", "原文"], + "维护保养": ["名称", "内容", "原文"], + "常见问题分析及排除": ["名称", "内容", "原文"], + "接口": ["名称", "内容", "原文"], + "性能指标": ["名称", "内容", "原文"], + "操作使用": ["名称", "内容", "原文"], + "功能": ["名称", "内容", "原文"], + "环境条件": ["名称", "内容", "原文"], + "设计单位": ["名称", "内容", "原文"], + "操作程序": ["名称", "内容", "原文"], + +} + +# ========== 4. 关系类型列表 ========== +RELATIONSHIPS = [ + "包含", "维修工作中包含故障的描述", "发生故障使用维修工作", "操作时使用", + "维修时使用", "指导", "需求", "导致", "描述", "具有","配备","包含故障","实现","适用","配套","调试","支持操作","依赖","安全警告","设计","使用" +] + +# ========== 5. 关系类型定义 ========== +RELATIONSHIP_TYPES = { + "包含": [ + "舰艇包含系统", "系统包含子系统", "子系统包含设备","设备包含组成" + ], + "维修工作中包含故障的描述": ["维修工作中包含故障的描述"], + "维修时使用": ["设备维修时使用维修项目"], + "发生故障使用维修工作": ["设备发生故障使用维修工作指导"], + "操作时使用": ["操作程序操作时使用操作项目"], + "指导": ["安全警告指导维修安全防护及注意事项汇总表", "工作原理指导基本情况"], + "导致": ["非正常运行条件导致故障后果"], + "需求": [ + "维修安全防护及注意事项汇总表需求保障设施保障设备工具信息汇总表", + "维修安全防护及注意事项汇总表需求消耗材料信息汇总表" + ], + "具有": [ + "设备具有常见问题分析及排除", + "设备具有工作原理","设备具有技术指标参数" + ], + "包含故障" : ["维修工作包含故障"], + "配备" : ["设备配备接口"], + "实现" : ["设备实现功能"], + "适用" : ["设备适用环境条件"], + "配套" : ["设备配套图录"], + "调试" : ["设备调试"], + "安全警告" : ["设备安全警告"], + "支持操作" : ["设备支持操作使用"], + "依赖" : ["设备依赖器材保障"], + "设计" : ["设计单位设计设备"], + "使用" : ["操作使用操作程序"] +} + +# ========== 6. 便捷函数:获取完整配置 ========== +def get_ontology_config(): + """返回完整的本体配置字典""" + return { + "ontology": ONTOLOGY, + "ontology_description": ONTOLOGY_DESCRIPTION, + "node_types": NODE_TYPES, + "relationships": RELATIONSHIPS, + "relationship_types": RELATIONSHIP_TYPES + } + +def get_ontology_list(): + """获取本体类列表""" + return ONTOLOGY.copy() + +def get_ontology_description(): + """获取本体描述字典""" + return ONTOLOGY_DESCRIPTION.copy() + +def get_node_types(): + """获取节点类型定义""" + return NODE_TYPES.copy() + +def get_relationships(): + """获取关系类型列表""" + return RELATIONSHIPS.copy() + +def get_relationship_types(): + """获取关系类型定义""" + return RELATIONSHIP_TYPES.copy() + + diff --git a/doc2pdf.py b/doc2pdf.py new file mode 100644 index 0000000..011c25a --- /dev/null +++ b/doc2pdf.py @@ -0,0 +1,263 @@ +#!/usr/bin/env python3 +""" +文档转 PDF 工具 +使用 LibreOffice 将各种文档格式转换为 PDF + +支持格式: +- Word: .doc, .docx, .rtf +- Excel: .xls, .xlsx +- PowerPoint: .ppt, .pptx +- OpenDocument: .odt, .ods, .odp +- 文本: .txt, .csv +- 图片: .jpg, .png (会嵌入PDF) +""" + +import subprocess +import os +import sys +from pathlib import Path +from typing import Optional, List +import concurrent.futures + + +class Doc2PDF: + """文档转 PDF 转换器""" + + SUPPORTED_FORMATS = { + # 文档 + '.doc', '.docx', '.rtf', '.odt', '.txt', + # 表格 + '.xls', '.xlsx', '.ods', '.csv', + # 演示文稿 + '.ppt', '.pptx', '.odp', + # 图片 + '.jpg', '.jpeg', '.png', '.bmp', '.gif', + # 其他 + '.html', '.htm', '.xml' + } + + def __init__(self, libreoffice_path: str = 'libreoffice'): + self.libreoffice_path = libreoffice_path + self._verify_libreoffice() + + def _verify_libreoffice(self): + """验证 LibreOffice 是否可用""" + try: + result = subprocess.run( + [self.libreoffice_path, '--version'], + capture_output=True, text=True + ) + if result.returncode != 0: + raise RuntimeError("LibreOffice 不可用") + print(f"✓ 检测到 {result.stdout.strip().split(chr(10))[0]}") + except FileNotFoundError: + raise RuntimeError("未找到 LibreOffice,请先安装") + + def convert( + self, + input_file: str, + output_dir: Optional[str] = None, + timeout: int = 120 + ) -> str: + """ + 转换单个文件为 PDF + + Args: + input_file: 输入文件路径 + output_dir: 输出目录(默认为输入文件所在目录) + timeout: 超时时间(秒) + + Returns: + 生成的 PDF 文件路径 + """ + input_path = Path(input_file).resolve() + + if not input_path.exists(): + raise FileNotFoundError(f"文件不存在: {input_file}") + + suffix = input_path.suffix.lower() + if suffix not in self.SUPPORTED_FORMATS: + raise ValueError(f"不支持的格式: {suffix}") + + if output_dir is None: + output_dir = str(input_path.parent) + else: + output_dir = str(Path(output_dir).resolve()) + os.makedirs(output_dir, exist_ok=True) + + cmd = [ + self.libreoffice_path, + '--headless', + '--invisible', + '--nologo', + '--nofirststartwizard', + '--convert-to', 'pdf', + '--outdir', output_dir, + str(input_path) + ] + + print(f" 转换中: {input_path.name} ...", end=' ', flush=True) + + try: + result = subprocess.run( + cmd, + capture_output=True, + text=True, + timeout=timeout + ) + + if result.returncode != 0: + print("✗") + raise RuntimeError(f"转换失败: {result.stderr}") + + output_file = os.path.join(output_dir, f"{input_path.stem}.pdf") + + if os.path.exists(output_file): + print("✓") + return output_file + else: + print("✗") + raise RuntimeError("转换完成但未找到输出文件") + + except subprocess.TimeoutExpired: + print("✗ (超时)") + raise RuntimeError(f"转换超时 ({timeout}秒)") + + def convert_batch( + self, + input_files: List[str], + output_dir: Optional[str] = None, + max_workers: int = 1 # LibreOffice 并发可能有问题,建议设为1 + ) -> List[dict]: + """ + 批量转换文件 + + Args: + input_files: 输入文件列表 + output_dir: 输出目录 + max_workers: 并发数 + + Returns: + 转换结果列表 + """ + results = [] + + print(f"\n开始批量转换 {len(input_files)} 个文件...\n") + + for i, input_file in enumerate(input_files, 1): + print(f"[{i}/{len(input_files)}]", end='') + try: + output_file = self.convert(input_file, output_dir) + results.append({ + 'input': input_file, + 'output': output_file, + 'success': True, + 'error': None + }) + except Exception as e: + results.append({ + 'input': input_file, + 'output': None, + 'success': False, + 'error': str(e) + }) + + # 打印统计 + success_count = sum(1 for r in results if r['success']) + print(f"\n转换完成: {success_count}/{len(results)} 成功") + + return results + + def convert_directory( + self, + input_dir: str, + output_dir: Optional[str] = None, + recursive: bool = False + ) -> List[dict]: + """ + 转换目录中的所有支持文件 + + Args: + input_dir: 输入目录 + output_dir: 输出目录 + recursive: 是否递归处理子目录 + """ + input_path = Path(input_dir) + + if not input_path.is_dir(): + raise NotADirectoryError(f"不是目录: {input_dir}") + + # 收集所有支持的文件 + files = [] + pattern = '**/*' if recursive else '*' + + for file_path in input_path.glob(pattern): + if file_path.is_file() and file_path.suffix.lower() in self.SUPPORTED_FORMATS: + files.append(str(file_path)) + + if not files: + print("未找到支持的文件") + return [] + + return self.convert_batch(files, output_dir) + + +def main(): + """命令行入口""" + import argparse + + parser = argparse.ArgumentParser( + description='使用 LibreOffice 将文档转换为 PDF', + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=''' +示例: + python doc2pdf.py document.docx + python doc2pdf.py document.xlsx -o ./output + python doc2pdf.py ./documents/ -o ./pdfs -r + ''' + ) + + parser.add_argument('input', help='输入文件或目录') + parser.add_argument('-o', '--output', help='输出目录') + parser.add_argument('-r', '--recursive', action='store_true', + help='递归处理子目录') + parser.add_argument('-t', '--timeout', type=int, default=120, + help='单个文件转换超时时间(秒)') + + args = parser.parse_args() + + converter = Doc2PDF() + + input_path = Path(args.input) + + if input_path.is_file(): + # 单文件转换 + try: + output = converter.convert(args.input, args.output, args.timeout) + print(f"\n输出文件: {output}") + except Exception as e: + print(f"\n错误: {e}") + sys.exit(1) + + elif input_path.is_dir(): + # 目录转换 + results = converter.convert_directory( + args.input, + args.output, + args.recursive + ) + + # 显示失败的文件 + failures = [r for r in results if not r['success']] + if failures: + print("\n失败的文件:") + for f in failures: + print(f" - {f['input']}: {f['error']}") + + else: + print(f"错误: 路径不存在 - {args.input}") + sys.exit(1) + + +if __name__ == '__main__': + main() diff --git a/docker-images/kgrag_arm64.docker-save.tar.gz b/docker-images/kgrag_arm64.docker-save.tar.gz new file mode 100644 index 0000000..7739221 --- /dev/null +++ b/docker-images/kgrag_arm64.docker-save.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72ab33c07f8e2220414c3df1e79d0944e98af1cedb5c1e4e139f4ddc249e4a0f +size 678405668 diff --git a/entity_registry.json b/entity_registry.json new file mode 100644 index 0000000..b1d29d7 --- /dev/null +++ b/entity_registry.json @@ -0,0 +1,129 @@ +{ + "安全警告": { + "description": "", + "properties": [ + "名称", + "概述", + "警告", + "注意", + "内容", + "knowledge_source" + ] + }, + "基本情况": { + "description": "", + "properties": [ + "名称", + "主要功能", + "工作条件", + "内容", + "knowledge_source" + ] + }, + "组成": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "工作原理": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "技术指标": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "接口关系": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "布置情况": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "器材保障": { + "description": "", + "properties": [ + "名称", + "保障设施、保障设备(工具)信息汇总表", + "消耗材料信息汇总表", + "内容", + "knowledge_source" + ] + }, + "维修安全防护及注意事项汇总表": { + "description": "", + "properties": [ + "名称", + "概述", + "安全防护", + "注意事项", + "内容", + "knowledge_source" + ] + }, + "接口情况": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "操作使用": { + "description": "", + "properties": [ + "名称", + "操作使用项目索引表", + "操作程序", + "战位操作表", + "内容", + "knowledge_source" + ] + }, + "使用期间安全防护及注意事项": { + "description": "", + "properties": [ + "名称", + "安全防护", + "注意事项", + "内容", + "knowledge_source" + ] + }, + "技术指标参数": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "接口": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + } +} \ No newline at end of file diff --git a/entity_registry.py b/entity_registry.py new file mode 100644 index 0000000..2a1ef55 --- /dev/null +++ b/entity_registry.py @@ -0,0 +1,74 @@ +""" +entity_registry.py +实体类型注册中心。 + +- extract_filtertext_v8.py 在生成实体时调用 register() 写入 +- app.py 启动时调用 get_ontology_description() / get_node_types() 合并进配置 +- 注册信息持久化到 entity_registry.json,跨进程保留 +""" + +import json +import os + +_REGISTRY_DIR = os.path.join(os.path.dirname(__file__), "registry") +_REGISTRY_FILE = os.path.join(_REGISTRY_DIR, "entity_registry.json") + +os.makedirs(_REGISTRY_DIR, exist_ok=True) + +# 内存缓存,避免每次读文件 +_cache: dict = {} + + +def _load(): + global _cache + if _cache: + return + if os.path.exists(_REGISTRY_FILE): + with open(_REGISTRY_FILE, encoding="utf-8") as f: + _cache = json.load(f) + else: + _cache = {} + + +def _save(): + with open(_REGISTRY_FILE, "w", encoding="utf-8") as f: + json.dump(_cache, f, ensure_ascii=False, indent=2) + + +def register(entity_type: str, description: str = "", properties: list = None): + """ + 注册一个实体类型。已存在则跳过,不覆盖。 + + 参数: + entity_type: 实体类型名,如 "维修工作指导" + description: 对该类型的描述(可为空) + properties: 该类型的属性列表,如 ["名称", "内容", "knowledge_source"] + """ + _load() + if entity_type in _cache: + return # 已注册,不覆盖 + _cache[entity_type] = { + "description": description, + "properties": properties or ["名称", "内容", "knowledge_source"] + } + _save() + print(f" [registry] 注册新实体类型: 【{entity_type}】") + + +def get_ontology_description() -> dict: + """返回 {type: [description]} 格式,可直接合并进 Ontology_DESCRIPTION。""" + _load() + return {k: [v["description"]] for k, v in _cache.items()} + + +def get_node_types() -> dict: + """返回 {type: [properties]} 格式,可直接合并进 node_types。""" + _load() + return {k: v["properties"] for k, v in _cache.items()} + + +def get_ontology_list() -> list: + """返回所有已注册的实体类型名列表,可合并进 ontology。""" + _load() + return list(_cache.keys()) + diff --git a/error_log.txt b/error_log.txt new file mode 100644 index 0000000..a7a3d6c --- /dev/null +++ b/error_log.txt @@ -0,0 +1,41 @@ +[ERROR] KnowledgeBaseID: 1789, FileID: 3974, Message: 处理文件失败: 更新切片失败: HTTPSConnectionPool(host='htknow.zkzdht.com', port=443): Read timed out. (read timeout=10) +[ERROR] KnowledgeBaseID: 1789, FileID: 3962, Message: 处理文件 163-06A0014-B01001_发动机-维修手册.pdf 的切片批次 3 时出错: 更新切片批次失败: +[ERROR] KnowledgeBaseID: 1789, FileID: 3974, Message: 处理文件 163-06A0016-B01003_雷达-维修手册.pdf 的切片批次 3 时出错: 更新切片批次失败: +[ERROR] KnowledgeBaseID: 1789, FileID: 3961, Message: 处理文件 163-06A0016-B01003_雷达-操作使用手册(1).pdf 的切片批次 4 时出错: 更新切片批次失败: +[ERROR] KnowledgeBaseID: 1789, FileID: 3974, Message: 处理文件 163-06A0016-B01003_雷达-维修手册.pdf 的切片批次 4 时出错: 更新切片批次失败: 500, message='Internal Server Error', url='https://htknow.zkzdht.com/api/v1/knowledge/files/3974/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 299, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/299/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 296, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/296/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 319, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/319/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 315, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/315/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 311, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/311/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 307, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/307/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 291, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/291/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 283, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/283/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 293, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/293/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 295, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/295/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 286, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/286/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 290, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/290/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 287, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/287/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 278, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/278/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 284, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/284/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 282, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/282/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 40, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/40/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 275, Message: 处理文件失败: 更新切片失败: 400, message='Bad Request', url='https://htknow.zkzdht.com/api/v1/knowledge/files/275/slices' +[ERROR] KnowledgeBaseID: 8, FileID: 299, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/299/slices +[ERROR] KnowledgeBaseID: 8, FileID: 319, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/319/slices +[ERROR] KnowledgeBaseID: 8, FileID: 315, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/315/slices +[ERROR] KnowledgeBaseID: 8, FileID: 311, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/311/slices +[ERROR] KnowledgeBaseID: 8, FileID: 307, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/307/slices +[ERROR] KnowledgeBaseID: 8, FileID: 296, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/296/slices +[ERROR] KnowledgeBaseID: 8, FileID: 283, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/283/slices +[ERROR] KnowledgeBaseID: 8, FileID: 291, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/291/slices +[ERROR] KnowledgeBaseID: 8, FileID: 293, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/293/slices +[ERROR] KnowledgeBaseID: 8, FileID: 295, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/295/slices +[ERROR] KnowledgeBaseID: 8, FileID: 286, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/286/slices +[ERROR] KnowledgeBaseID: 8, FileID: 287, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/287/slices +[ERROR] KnowledgeBaseID: 8, FileID: 290, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/290/slices +[ERROR] KnowledgeBaseID: 8, FileID: 278, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/278/slices +[ERROR] KnowledgeBaseID: 8, FileID: 284, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/284/slices +[ERROR] KnowledgeBaseID: 8, FileID: 40, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/40/slices +[ERROR] KnowledgeBaseID: 8, FileID: 282, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/282/slices +[ERROR] KnowledgeBaseID: 8, FileID: 275, Message: 处理文件失败: 更新切片失败: 400 Client Error: Bad Request for url: https://htknow.zkzdht.com/api/v1/knowledge/files/275/slices diff --git a/excel_process.py b/excel_process.py new file mode 100644 index 0000000..876668c --- /dev/null +++ b/excel_process.py @@ -0,0 +1,658 @@ + +from collections import defaultdict +import re +from typing import Optional +import traceback +import logging +import pandas as pd +from openpyxl import load_workbook +import json +import os +# import xlrd +# ===================================================== +# 行类型判断 +# ===================================================== + +logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' +) +logger = logging.getLogger(__name__) + +def is_data_row(row): + """ + 判断是否为数据行 + 数据行的特征:第1列包含数字 + + Args: + row (dict): 包含行数据的字典,格式为 {"content": {"列号": "值", ...}} + + Returns: + bool: 如果是数据行返回True,否则返回False + """ + try: + v = row["content"].get("1", "") + result = isinstance(v, str) and v.strip().isdigit() + logger.debug(f"is_data_row: value='{v}', result={result}") + return result + except Exception as e: + logger.error(f"Error in is_data_row: {e}, row: {row}") + return False + + +def is_field_row(row): + """ + 判断是否为字段行 + 字段行的特征:至少有5个值,且超过90%的值不是数字,根据环境处理 + + Args: + row (dict): 包含行数据的字典 + + Returns: + bool: 如果是字段行返回True,否则返回False + """ + try: + values = list(row["content"].values()) + if len(values) < 5: + logger.debug(f"is_field_row: less than 5 values, returning False") + return False + non_digit = sum(1 for v in values if isinstance(v, str) and not v.strip().isdigit()) + result = non_digit / len(values) > 0.9 + logger.debug(f"is_field_row: non_digit_ratio={non_digit / len(values)}, result={result}") + return result + except Exception as e: + logger.error(f"Error in is_field_row: {e}, row: {row}") + return False + + +def is_header_row(row): + """ + 判断是否为表头行 + 表头行的特征:列数不超过4个,且不是字段行或数据行,根据环境处理 + + Args: + row (dict): 包含行数据的字典 + + Returns: + bool: 如果是表头行返回True,否则返回False + """ + try: + content_len = len(row["content"]) + field_result = is_field_row(row) + data_result = is_data_row(row) + + result = content_len <= 4 and not field_result and not data_result + logger.debug(f"is_header_row: content_len={content_len}, is_field={field_result}, is_data={data_result}, result={result}") + return result + except Exception as e: + logger.error(f"Error in is_header_row: {e}, row: {row}") + return False + +# ===================================================== +# 多级表头 +# ===================================================== + +def collect_field_rows(rows, start_idx): + """ + 从指定索引开始收集连续的字段行 + + Args: + rows (list): 行数据列表 + start_idx (int): 开始收集的索引 + + Returns: + tuple: (字段行列表, 下一个非字段行的索引) + """ + try: + field_rows = [] + i = start_idx + initial_i = start_idx + while i < len(rows) and is_field_row(rows[i]): + field_rows.append(rows[i]["content"]) + i += 1 + logger.info(f"collect_field_rows: collected {len(field_rows)} field rows from index {initial_i} to {i}") + return field_rows, i + except Exception as e: + logger.error(f"Error in collect_field_rows: {e}") + return [], start_idx + +def dedup_path(path): + """ + 去除路径中的重复元素,保持顺序 + + Args: + path (list): 路径列表 + + Returns: + list: 去重后的路径列表 + """ + try: + new_path = [] + for p in path: + if p and (not new_path or new_path[-1] != p): + new_path.append(p) + logger.debug(f"dedup_path: original={path}, deduplicated={new_path}") + return new_path + except Exception as e: + logger.error(f"Error in dedup_path: {e}, path: {path}") + return [] + +def build_field_paths(field_rows): + """ + 构建字段路径映射,将列号映射到字段路径 + + Args: + field_rows (list): 字段行列表 + + Returns: + defaultdict: 列号到字段路径的映射 + """ + try: + field_paths = defaultdict(list) + for row_idx, row in enumerate(field_rows): + for col, name in row.items(): + if name: + field_paths[col].append(name) + + for col in field_paths: + field_paths[col] = dedup_path(field_paths[col]) + + logger.info(f"build_field_paths: processed {len(field_paths)} columns from {len(field_rows)} rows") + return field_paths + except Exception as e: + logger.error(f"Error in build_field_paths: {e}") + return defaultdict(list) + + +# ===================================================== +# 值 & 结构处理 +# ===================================================== + +def normalize_value(value): + """ + 标准化值,将特殊值转换为对应格式 + + Args: + value: 待处理的值 + + Returns: + 处理后的值 + """ + try: + if value == "√": + logger.debug(f"normalize_value: converting '√' to True") + return True + if value in ("", None): + logger.debug(f"normalize_value: empty value converted to empty string") + return "" + logger.debug(f"normalize_value: value={value} unchanged") + return value + except Exception as e: + logger.error(f"Error in normalize_value: {e}, value: {value}") + return "" + + +def insert_by_path(target, path, value): + """ + 根据路径在目标对象中插入值 + + Args: + target (dict): 目标字典 + path (list): 插入路径 + value: 待插入的值 + """ + try: + if not path: + logger.warning("insert_by_path: empty path provided") + return + + cur = target + for key in path[:-1]: + cur = cur.setdefault(key, {}) + cur[path[-1]] = value + logger.debug(f"insert_by_path: inserted value '{value}' at path {path}") + except Exception as e: + logger.error(f"Error in insert_by_path: {e}, target: {target}, path: {path}, value: {value}") + + +def flatten_singleton_dict(obj): + """ + 扁平化单元素字典,如果字典只有一个键且键名与值中的键名相同,则合并 + + Args: + obj: 待处理的对象 + + Returns: + 处理后的对象 + """ + try: + if not isinstance(obj, dict): + return obj + + for k in list(obj.keys()): + v = obj[k] + if isinstance(v, dict): + v = flatten_singleton_dict(v) + if len(v) == 1 and k in v: + obj[k] = v[k] + logger.debug(f"flatten_singleton_dict: flattened singleton dict for key '{k}'") + else: + obj[k] = v + return obj + except Exception as e: + logger.error(f"Error in flatten_singleton_dict: {e}, obj: {obj}") + return obj + + +# def build_content(field_paths, row_content): + +# try: +# result = {} +# for col, path in field_paths.items(): +# value = normalize_value(row_content.get(col, "")) +# insert_by_path(result, path, value) + +# flatten_singleton_dict(result) +# logger.debug(f"build_content: built content with {len(result)} top-level keys") +# return result +# except Exception as e: +# logger.error(f"Error in build_content: {e}, field_paths: {field_paths}, row_content: {row_content}") +# return {} + + + + + +def flatten_dict(d, parent_key='', sep='_'): + """ + 将 {"A": {"B": "1"}} 转换为 {"A_B": "1"} + """ + items = [] + for k, v in d.items(): + new_key = f"{parent_key}{sep}{k}" if parent_key else k + if isinstance(v, dict): + # 递归展开 + items.extend(flatten_dict(v, new_key, sep=sep).items()) + else: + items.append((new_key, v)) + return dict(items) + +def build_content(field_paths, row_content): + """ + 根据字段路径构建内容结构 + + Args: + field_paths (dict): 字段路径映射 + row_content (dict): 行内容数据 + + Returns: + dict: 构建的内容结构 + """ + result = {} + + for col, path in field_paths.items(): + value = normalize_value(row_content.get(col, "")) + insert_by_path(result, path, value) + + # 1. 先执行你原有的单级压缩 (解决 A -> {A: x}) + flatten_singleton_dict(result) + + # 2. 执行深度展平 (将嵌套字典转为 "键_子键" 格式) + # 我们遍历第一层,如果值是字典,则展开它 + final_result = {} + for k, v in result.items(): + if isinstance(v, dict): + # 展开子字典,并带上父级的键名作为前缀 + flattened_sub = flatten_dict(v, parent_key=k, sep='_') + final_result.update(flattened_sub) + else: + final_result[k] = v + + return final_result + + +# ===================================================== +# 主解析逻辑 +# ===================================================== + +def transform_excel_json(rows): + """ + 将Excel行数据转换为JSON格式 + + Args: + rows (list): 行数据列表 + + Returns: + list: 转换后的JSON数据列表 + """ + try: + logger.info(f"Starting transform_excel_json with {len(rows)} rows") + output = [] + i = 0 + processed_count = 0 + + while i < len(rows): + row = rows[i] + row_type = None + + if is_header_row(row): + output.append({"header": row["content"]}) + row_type = "header" + i += 1 + elif is_field_row(row): + field_rows, next_idx = collect_field_rows(rows, i) + field_paths = build_field_paths(field_rows) + i = next_idx + row_type = "field" + + while i < len(rows) and is_data_row(rows[i]): + content = build_content(field_paths, rows[i]["content"]) + output.append({"content": content}) + i += 1 + processed_count += 1 + else: + i += 1 + continue # Skip non-header, non-field, non-data rows + + logger.debug(f"Processed row {i-1}, type: {row_type}") + + logger.info(f"Completed transform_excel_json: {len(output)} items, {processed_count} data rows processed") + return output + except Exception as e: + logger.error(f"Error in transform_excel_json: {e}") + logger.error(traceback.format_exc()) + raise + + +# ===================================================== +# Excel 读取(含合并单元格) +# ===================================================== + +def read_excel_with_merged_cells(file_path: str, sheet_name: Optional[str] = None): + """ + 读取Excel文件,包括合并单元格的处理 + + Args: + file_path (str): Excel文件路径 + sheet_name (Optional[str]): 工作表名称,如果为None则使用默认表 + + Returns: + pd.DataFrame: 包含Excel数据的DataFrame + """ + try: + _, ext = os.path.splitext(file_path) + ext = ext.lower() + if ext == ".xlsx": + logger.info(f"Reading Excel file: {file_path}, sheet: {sheet_name}") + wb = load_workbook(file_path, data_only=True) + ws = wb[sheet_name] if sheet_name else wb.active + + max_row, max_col = ws.max_row, ws.max_column + logger.info(f"Excel sheet dimensions: {max_row} rows x {max_col} columns") + + data = [["" for _ in range(max_col)] for _ in range(max_row)] + + for r in range(1, max_row + 1): + for c in range(1, max_col + 1): + val = ws.cell(row=r, column=c).value + data[r - 1][c - 1] = "" if val is None else str(val).strip() + + # 处理合并单元格 + merged_count = 0 + for merged in ws.merged_cells.ranges: + tl = data[merged.min_row - 1][merged.min_col - 1] + for r in range(merged.min_row - 1, merged.max_row): + for c in range(merged.min_col - 1, merged.max_col): + data[r][c] = tl + merged_count += 1 + + logger.info(f"Processed {merged_count} merged cell ranges") + df = pd.DataFrame(data) + logger.info(f"Created DataFrame with shape {df.shape}") + return df + + else: + raise ValueError("Unsupported file format") + + except Exception as e: + logger.error(f"Error in read_excel_with_merged_cells: {e}") + logger.error(traceback.format_exc()) + raise + + + +def dataframe_to_row_json(df: pd.DataFrame): + """ + 将DataFrame转换为行JSON格式 + + Args: + df (pd.DataFrame): 源DataFrame + + Returns: + list: 行JSON格式的列表 + """ + try: + logger.info(f"Converting DataFrame to row JSON, shape: {df.shape}") + rows = [] + for idx, row in df.iterrows(): + content = { + str(col_idx + 1): val + for col_idx, val in enumerate(row) + if isinstance(val, str) and val != "" + } + if content: + rows.append({ + "row_index": idx + 1, + "content": content + }) + + logger.info(f"Converted DataFrame to {len(rows)} JSON rows") + return rows + except Exception as e: + logger.error(f"Error in dataframe_to_row_json: {e}") + logger.error(traceback.format_exc()) + raise + + + + + + + + + + + +# ===================================================== +# Markdown 转换 +# ===================================================== + +# def json_to_markdown(data): +# markdown_output = [] + +# for item in data: +# # 处理标题行 (Header) +# if "header" in item: +# # 提取 header 中的描述信息 +# header_vals = item["header"].values() +# title = " ".join([v for v in header_vals if ";" in v or v.startswith("CPP") or "清单" in v]) +# # 如果 header 中包含设备名称和型号,进行拼接 +# if not title: +# title = " ".join(header_vals) + +# markdown_output.append(f"\n## {title.replace(';', ' ')}\n") + +# # 处理内容行 (Content) +# elif "content" in item: +# content = item["content"] +# # 如果是该表格的第一行,生成表头 +# if not any("|" in line for line in markdown_output[-2:]): +# columns = list(content.keys()) +# header_row = "| " + " | ".join(columns) + " |" +# separator_row = "| " + " | ".join(["---"] * len(columns)) + " |" +# markdown_output.append(header_row) +# markdown_output.append(separator_row) + +# # 生成数据行 +# values = [str(v) if v is not None else "" for v in content.values()] +# # 处理布尔值显示 +# values = ["是" if v == "True" else "否" if v == "False" else v for v in values] +# markdown_output.append("| " + " | ".join(values) + " |") + +# return "\n".join(markdown_output) + + + + + +import json + +def json_to_markdown(json_data): + markdown_lines = [] + current_table_data = [] + + for entry in json_data: + # 1. 处理标题行 (Header) + if "header" in entry: + # 如果之前已经有累积的数据,先输出旧表格(防止连续多个表格的情况) + if current_table_data: + markdown_lines.extend(build_table(current_table_data)) + current_table_data = [] + + # 提取 Header 内容并格式化为标题 + header_dict = entry["header"] + # 按照您的要求,处理设备名称和型号的拼接显示 + title_parts = [v.replace(';', ' ') for v in header_dict.values()] + title = " ".join(title_parts) + markdown_lines.append(f"\n## {title}\n") + + # 2. 处理内容行 (Content) + elif "content" in entry: + current_table_data.append(entry["content"]) + + # 3. 输出最后一个表格 + if current_table_data: + markdown_lines.extend(build_table(current_table_data)) + + return "\n".join(markdown_lines) + +def build_table(data_list): + """将字典列表转换为 Markdown 表格字符串""" + if not data_list: + return [] + + lines = [] + # 提取所有键作为表头 + headers = list(data_list[0].keys()) + + # 构造表头行 + header_line = "| " + " | ".join(headers) + " |" + # 构造分割行 + separator_line = "| " + " | ".join(["---"] * len(headers)) + " |" + + lines.append(header_line) + lines.append(separator_line) + + # 构造数据行 + for item in data_list: + row_values = [] + for h in headers: + val = item.get(h, "") + # 转换布尔值为中文,处理 None 值 + if val is True: val = "是" + elif val is False or val == "": val = " " + row_values.append(str(val).replace("\n", " ")) # 避免数据内换行破坏表格结构 + + lines.append("| " + " | ".join(row_values) + " |") + + return lines + +# --------------------------------------------------------- +# 执行转换 +# --------------------------------------------------------- +# 假设 source_json 是您提供的那段原始数据 +try: + # 这里的 source_json 代表您贴出的完整 JSON 列表 + # md_output = json_to_markdown_tables(source_json) + # print(md_output) + pass +except Exception as e: + print(f"解析错误: {e}") + + + + + + +# def flatten_dict(d, parent_key='', sep='(', end_sep=')'): +# """ +# 递归扁平化嵌套字典,生成 '父字段(子字段)(孙字段)' 格式的键。 +# 支持任意深度嵌套。 +# """ +# items = [] +# for k, v in d.items(): +# new_key = f"{parent_key}{sep}{k}{end_sep}" if parent_key else k +# if isinstance(v, dict): +# items.extend(flatten_dict(v, new_key, sep, end_sep).items()) +# else: +# items.append((new_key, v)) +# return dict(items) + +# def extract_all_content_records(data): +# """ +# 从任意结构的 JSON 数据中提取所有顶层包含 "content" 键的对象。 +# 假设数据是一个列表,每个元素可能是 header 或 content。 +# 如果不是列表,也尝试遍历。 +# """ +# records = [] + +# def recurse(obj): +# if isinstance(obj, list): +# for item in obj: +# recurse(item) +# elif isinstance(obj, dict): +# if "content" in obj and isinstance(obj["content"], dict): +# records.append(obj["content"]) +# else: +# for value in obj.values(): +# recurse(value) + +# recurse(data) +# return records + +# def build_markdown_table(records): +# if not records: +# return "> 未找到任何 content 记录。\n" + +# flat_records = [flatten_dict(record) for record in records] + +# # 收集所有字段(保持顺序) +# all_keys = {} +# for fr in flat_records: +# for k in fr: +# all_keys[k] = None +# all_keys = list(all_keys.keys()) + +# # 构建表格 +# header = "| " + " | ".join(all_keys) + " |" +# separator = "| " + " | ".join(["---"] * len(all_keys)) + " |" +# rows = [ +# "| " + " | ".join(str(fr.get(k, "")) for k in all_keys) + " |" +# for fr in flat_records +# ] + +# return "\n".join([header, separator] + rows) + +# def json_to_markdown(json_data): +# """ +# 将任意 JSON 文件中所有 'content' 对象转换为 Markdown 表格。 +# """ + + +# records = extract_all_content_records(json_data) +# md_table = build_markdown_table(records) +# return md_table + + + + diff --git a/excel_to_json.py b/excel_to_json.py new file mode 100644 index 0000000..292110b --- /dev/null +++ b/excel_to_json.py @@ -0,0 +1,521 @@ +import json +import logging +from datetime import datetime +from typing import Optional +import requests +from collections import defaultdict + +import traceback +import logging +import pandas as pd +from openpyxl import load_workbook +import json +import os +# ====================== +# 日志 +# ====================== +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + +from openai import OpenAI + +import re + +logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' +) +logger = logging.getLogger(__name__) + +def is_data_row(row): + """ + 判断是否为数据行 + 数据行的特征:第1列包含数字 + + Args: + row (dict): 包含行数据的字典,格式为 {"content": {"列号": "值", ...}} + + Returns: + bool: 如果是数据行返回True,否则返回False + """ + try: + v = row["content"].get("1", "") + result = isinstance(v, str) and v.strip().isdigit() + logger.debug(f"is_data_row: value='{v}', result={result}") + return result + except Exception as e: + logger.error(f"Error in is_data_row: {e}, row: {row}") + return False + + +def is_field_row(row): + """ + 判断是否为字段行 + 字段行的特征:至少有5个值,且超过90%的值不是数字,根据环境处理 + + Args: + row (dict): 包含行数据的字典 + + Returns: + bool: 如果是字段行返回True,否则返回False + """ + try: + values = list(row["content"].values()) + if len(values) < 5: + logger.debug(f"is_field_row: less than 5 values, returning False") + return False + non_digit = sum(1 for v in values if isinstance(v, str) and not v.strip().isdigit()) + result = non_digit / len(values) > 0.9 + logger.debug(f"is_field_row: non_digit_ratio={non_digit / len(values)}, result={result}") + return result + except Exception as e: + logger.error(f"Error in is_field_row: {e}, row: {row}") + return False + + +def is_header_row(row): + """ + 判断是否为表头行 + 表头行的特征:列数不超过4个,且不是字段行或数据行,根据环境处理 + + Args: + row (dict): 包含行数据的字典 + + Returns: + bool: 如果是表头行返回True,否则返回False + """ + try: + content_len = len(row["content"]) + field_result = is_field_row(row) + data_result = is_data_row(row) + + result = content_len <= 4 and not field_result and not data_result + logger.debug(f"is_header_row: content_len={content_len}, is_field={field_result}, is_data={data_result}, result={result}") + return result + except Exception as e: + logger.error(f"Error in is_header_row: {e}, row: {row}") + return False + +# ===================================================== +# 多级表头 +# ===================================================== + +def collect_field_rows(rows, start_idx): + """ + 从指定索引开始收集连续的字段行 + + Args: + rows (list): 行数据列表 + start_idx (int): 开始收集的索引 + + Returns: + tuple: (字段行列表, 下一个非字段行的索引) + """ + try: + field_rows = [] + i = start_idx + initial_i = start_idx + while i < len(rows) and is_field_row(rows[i]): + field_rows.append(rows[i]["content"]) + i += 1 + logger.info(f"collect_field_rows: collected {len(field_rows)} field rows from index {initial_i} to {i}") + return field_rows, i + except Exception as e: + logger.error(f"Error in collect_field_rows: {e}") + return [], start_idx + +def dedup_path(path): + """ + 去除路径中的重复元素,保持顺序 + + Args: + path (list): 路径列表 + + Returns: + list: 去重后的路径列表 + """ + try: + new_path = [] + for p in path: + if p and (not new_path or new_path[-1] != p): + new_path.append(p) + logger.debug(f"dedup_path: original={path}, deduplicated={new_path}") + return new_path + except Exception as e: + logger.error(f"Error in dedup_path: {e}, path: {path}") + return [] + +def build_field_paths(field_rows): + """ + 构建字段路径映射,将列号映射到字段路径 + + Args: + field_rows (list): 字段行列表 + + Returns: + defaultdict: 列号到字段路径的映射 + """ + try: + field_paths = defaultdict(list) + for row_idx, row in enumerate(field_rows): + for col, name in row.items(): + if name: + field_paths[col].append(name) + + for col in field_paths: + field_paths[col] = dedup_path(field_paths[col]) + + logger.info(f"build_field_paths: processed {len(field_paths)} columns from {len(field_rows)} rows") + return field_paths + except Exception as e: + logger.error(f"Error in build_field_paths: {e}") + return defaultdict(list) + + +# ===================================================== +# 值 & 结构处理 +# ===================================================== + +def normalize_value(value): + """ + 标准化值,将特殊值转换为对应格式 + + Args: + value: 待处理的值 + + Returns: + 处理后的值 + """ + try: + if value == "√": + logger.debug(f"normalize_value: converting '√' to True") + return True + if value in ("", None): + logger.debug(f"normalize_value: empty value converted to empty string") + return "" + logger.debug(f"normalize_value: value={value} unchanged") + return value + except Exception as e: + logger.error(f"Error in normalize_value: {e}, value: {value}") + return "" + + +def insert_by_path(target, path, value): + """ + 根据路径在目标对象中插入值 + + Args: + target (dict): 目标字典 + path (list): 插入路径 + value: 待插入的值 + """ + try: + if not path: + logger.warning("insert_by_path: empty path provided") + return + + cur = target + for key in path[:-1]: + cur = cur.setdefault(key, {}) + cur[path[-1]] = value + logger.debug(f"insert_by_path: inserted value '{value}' at path {path}") + except Exception as e: + logger.error(f"Error in insert_by_path: {e}, target: {target}, path: {path}, value: {value}") + + +def flatten_singleton_dict(obj): + """ + 扁平化单元素字典,如果字典只有一个键且键名与值中的键名相同,则合并 + + Args: + obj: 待处理的对象 + + Returns: + 处理后的对象 + """ + try: + if not isinstance(obj, dict): + return obj + + for k in list(obj.keys()): + v = obj[k] + if isinstance(v, dict): + v = flatten_singleton_dict(v) + if len(v) == 1 and k in v: + obj[k] = v[k] + logger.debug(f"flatten_singleton_dict: flattened singleton dict for key '{k}'") + else: + obj[k] = v + return obj + except Exception as e: + logger.error(f"Error in flatten_singleton_dict: {e}, obj: {obj}") + return obj + + + + +def flatten_dict(d, parent_key='', sep='_'): + """ + 将 {"A": {"B": "1"}} 转换为 {"A_B": "1"} + """ + items = [] + for k, v in d.items(): + new_key = f"{parent_key}{sep}{k}" if parent_key else k + if isinstance(v, dict): + # 递归展开 + items.extend(flatten_dict(v, new_key, sep=sep).items()) + else: + items.append((new_key, v)) + return dict(items) + +def build_content(field_paths, row_content): + """ + 根据字段路径构建内容结构 + + Args: + field_paths (dict): 字段路径映射 + row_content (dict): 行内容数据 + + Returns: + dict: 构建的内容结构 + """ + result = {} + + for col, path in field_paths.items(): + value = normalize_value(row_content.get(col, "")) + insert_by_path(result, path, value) + + # 1. 先执行你原有的单级压缩 (解决 A -> {A: x}) + flatten_singleton_dict(result) + + # 2. 执行深度展平 (将嵌套字典转为 "键_子键" 格式) + # 我们遍历第一层,如果值是字典,则展开它 + final_result = {} + for k, v in result.items(): + if isinstance(v, dict): + # 展开子字典,并带上父级的键名作为前缀 + flattened_sub = flatten_dict(v, parent_key=k, sep='_') + final_result.update(flattened_sub) + else: + final_result[k] = v + + return final_result + + +# ===================================================== +# 主解析逻辑 +# ===================================================== + +def transform_excel_json(rows): + """ + 将Excel行数据转换为JSON格式 + + Args: + rows (list): 行数据列表 + + Returns: + list: 转换后的JSON数据列表 + """ + try: + logger.info(f"Starting transform_excel_json with {len(rows)} rows") + output = [] + i = 0 + processed_count = 0 + + while i < len(rows): + row = rows[i] + row_type = None + + if is_header_row(row): + output.append({"header": row["content"]}) + row_type = "header" + i += 1 + elif is_field_row(row): + field_rows, next_idx = collect_field_rows(rows, i) + field_paths = build_field_paths(field_rows) + i = next_idx + row_type = "field" + + while i < len(rows) and is_data_row(rows[i]): + content = build_content(field_paths, rows[i]["content"]) + output.append({"content": content}) + i += 1 + processed_count += 1 + else: + i += 1 + continue # Skip non-header, non-field, non-data rows + + logger.debug(f"Processed row {i-1}, type: {row_type}") + + logger.info(f"Completed transform_excel_json: {len(output)} items, {processed_count} data rows processed") + return output + except Exception as e: + logger.error(f"Error in transform_excel_json: {e}") + logger.error(traceback.format_exc()) + raise + + +# ===================================================== +# Excel 读取(含合并单元格) +# ===================================================== + +def read_excel_with_merged_cells(file_path: str, sheet_name: Optional[str] = None): + """ + 读取Excel文件,包括合并单元格的处理 + + Args: + file_path (str): Excel文件路径 + sheet_name (Optional[str]): 工作表名称,如果为None则使用默认表 + + Returns: + pd.DataFrame: 包含Excel数据的DataFrame + """ + try: + _, ext = os.path.splitext(file_path) + ext = ext.lower() + if ext == ".xlsx": + logger.info(f"Reading Excel file: {file_path}, sheet: {sheet_name}") + wb = load_workbook(file_path, data_only=True) + ws = wb[sheet_name] if sheet_name else wb.active + + max_row, max_col = ws.max_row, ws.max_column + logger.info(f"Excel sheet dimensions: {max_row} rows x {max_col} columns") + + data = [["" for _ in range(max_col)] for _ in range(max_row)] + + for r in range(1, max_row + 1): + for c in range(1, max_col + 1): + val = ws.cell(row=r, column=c).value + data[r - 1][c - 1] = "" if val is None else str(val).strip() + + # 处理合并单元格 + merged_count = 0 + for merged in ws.merged_cells.ranges: + tl = data[merged.min_row - 1][merged.min_col - 1] + for r in range(merged.min_row - 1, merged.max_row): + for c in range(merged.min_col - 1, merged.max_col): + data[r][c] = tl + merged_count += 1 + + logger.info(f"Processed {merged_count} merged cell ranges") + df = pd.DataFrame(data) + logger.info(f"Created DataFrame with shape {df.shape}") + return df + + else: + raise ValueError("Unsupported file format") + + except Exception as e: + logger.error(f"Error in read_excel_with_merged_cells: {e}") + logger.error(traceback.format_exc()) + raise + + + +def dataframe_to_row_json(df: pd.DataFrame): + """ + 将DataFrame转换为行JSON格式 + + Args: + df (pd.DataFrame): 源DataFrame + + Returns: + list: 行JSON格式的列表 + """ + try: + logger.info(f"Converting DataFrame to row JSON, shape: {df.shape}") + rows = [] + for idx, row in df.iterrows(): + content = { + str(col_idx + 1): val + for col_idx, val in enumerate(row) + if isinstance(val, str) and val != "" + } + if content: + rows.append({ + "row_index": idx + 1, + "content": content + }) + + logger.info(f"Converted DataFrame to {len(rows)} JSON rows") + return rows + except Exception as e: + logger.error(f"Error in dataframe_to_row_json: {e}") + logger.error(traceback.format_exc()) + raise + + +def json_to_markdown(json_data): + markdown_lines = [] + current_table_data = [] + + for entry in json_data: + # 1. 处理标题行 (Header) + if "header" in entry: + # 如果之前已经有累积的数据,先输出旧表格(防止连续多个表格的情况) + if current_table_data: + markdown_lines.extend(build_table(current_table_data)) + current_table_data = [] + + # 提取 Header 内容并格式化为标题 + header_dict = entry["header"] + # 按照您的要求,处理设备名称和型号的拼接显示 + title_parts = [v.replace(';', ' ') for v in header_dict.values()] + title = " ".join(title_parts) + markdown_lines.append(f"\n## {title}\n") + + # 2. 处理内容行 (Content) + elif "content" in entry: + current_table_data.append(entry["content"]) + + # 3. 输出最后一个表格 + if current_table_data: + markdown_lines.extend(build_table(current_table_data)) + + return "\n".join(markdown_lines) + +def build_table(data_list): + """将字典列表转换为 Markdown 表格字符串""" + if not data_list: + return [] + + lines = [] + # 提取所有键作为表头 + headers = list(data_list[0].keys()) + + # 构造表头行 + header_line = "| " + " | ".join(headers) + " |" + # 构造分割行 + separator_line = "| " + " | ".join(["---"] * len(headers)) + " |" + + lines.append(header_line) + lines.append(separator_line) + + # 构造数据行 + for item in data_list: + row_values = [] + for h in headers: + val = item.get(h, "") + # 转换布尔值为中文,处理 None 值 + if val is True: val = "是" + elif val is False or val == "": val = " " + row_values.append(str(val).replace("\n", " ")) # 避免数据内换行破坏表格结构 + + lines.append("| " + " | ".join(row_values) + " |") + + return lines + + +def excel_to_jsondata(excel_path: str,sheet_name: Optional[str] = None): + + logger.info(f"Reading Excel: {excel_path}") + df = read_excel_with_merged_cells(excel_path, sheet_name) + + rows = dataframe_to_row_json(df) + table_json = transform_excel_json(rows) + return table_json + + + + + diff --git a/extract_excel_node_relation.py b/extract_excel_node_relation.py new file mode 100644 index 0000000..6e346fe --- /dev/null +++ b/extract_excel_node_relation.py @@ -0,0 +1,605 @@ +from kg_build_v2.excel_to_json import excel_to_jsondata +import json +import logging +from datetime import datetime +from typing import Optional,Dict +import requests +from collections import defaultdict + +import traceback +import logging +import pandas as pd +from openpyxl import load_workbook +import json +import os +from kg_build_v2.Prompt_excel import prompt_beipinbeijian,prompt_type_excel,prompt_guzhanghuizong +from openai import OpenAI +import re +import time + +# ====================== +# 日志 +# ====================== +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) +System_Name_Replace_Dict={ + "00": { + "code": "00", + "name": "总体及综合保障", + "level": 1, + "description":None, + "children": None + }, + + "01": { + "code": "01", + "name": "船体结构", + "level": 1, + "description": "由各种结构类型组成的JC船体,包括船体壳体、舱壁、甲板、平台、上层建筑、舷台、专用结构、复合材料结构、基座及船体附体等。", + "children": [ + { "code": "00", "name": "总论", "level": 2,"description": "通用要求"}, + { "code": "10", "name": "主船体壳体结构", "level": 2,"description": "构成水面JC主船体的壳体结构和潜艇的耐压壳体、非耐压壳体结构" }, + { "code": "20", "name": "船体舱壁结构", "level": 2,"description": "构成水面JC船体的主横舱壁、主纵舱壁、围壁、轴隧、围井及其他专用舱壁等船体舱壁结构。" }, + { "code": "30", "name": "船体甲板及平台结构", "level": 2,"description": "将水面JC主船体分为若干层的连续甲板结构(包括甲板板和骨架)及非连续甲板结构(包括平台板和骨架)。" }, + { "code": "40", "name": "上层建筑(或甲板室)结构", "level": 2,"description": "水面JC主船体l甲板以上的各层上层建筑(或甲板室)结构以及潜艇上层建筑、围壳结构等。" }, + { "code": "50", "name": "舷台结构", "level": 2,"description": "大型水面JC为扩展甲板面积而在主船体两舷外侧设置的特殊结构,以主船体外板为边界,包括与主船体相对应而又相对独立的多层甲板、舱壁及外板等结构。" }, + { "code": "60", "name": "专用结构", "level": 2,"description": "安装在主船体或上层建筑上为特殊用途设置的各种结构。" }, + { "code": "70", "name": "复合材料结构", "level": 2,"description": "应用复合材料代替金属材料的船体局部结构或全艇体结构。"}, + { "code": "80", "name": "基座结构", "level": 2,"description": "装焊于JC上用于安装和支承各种设备的底座结构。其中包括基座减振的弹性连接件。不包括随设备的弹性连接件、紧固件以及设备或机组的机架"} + ] + }, + + "02": { + "code": "02", + "name": "推进系统", + "level": 1, + "description":"为JC推进提供动力的系统,包括能源发生系统(含H能和非H能)、动力机组及推进装置、功率传递系统和推进器、推进保障系统、推进监测和控制系统。", + "children": [ + { "code": "00", "name": "总论", "level": 2,"description": "通用要求" }, + { "code": "10", "name": "H能源发生系统", "level": 2,"description": "通过反应堆的可控H反应产生H能,并将其转化为热能的系统。包括反应堆系统、蒸汽发生器、反应堆中间回路系统、反应堆冷却剂系统、反应堆专设安全设施、反应堆保障系统、辐射监测系统及屏蔽等。"}, + { "code": "20", "name": "非H能源发生系统", "level": 2,"description": "H能源以外的JC推进用能源发生系统。包括常压锅炉、增压锅炉等。"}, + { "code": "30", "name": "动力机组及推进装置", "level": 2,"description": "为JC提供推进动力或为发电机提供原动力的动力机组或装置。包括蒸汽轮机、柴油机、燃气轮机、主电力推进装置、辅助电力推进装置、潜艇应急推进装置、联合推进装置等。"}, + { "code": "40", "name": "功率传递系统和推进器", "level": 2,"description": "将推进机组发出的功率传递到推进器推动JCHX的系统及设备。包括齿轮传动装置、离合器和联轴器、轴、轴承和轴封、推进器等。" }, + { "code": "50", "name": "推进保障系统", "level": 2,"description": "推进系统中为主锅炉、推进机组、功率传递系统服务的系统、机械设备及附件。包括日用燃油系统、滑油系统、蒸汽系统、凝水和给水系统、循环水和冷却水系统、起动系统、进排气系统、锅炉鼓风系统和排污系统、燃气轮机引气和清洗系统等。" }, + { "code": "60", "name": "推进监测和控制系统", "level": 2,"description": "对各种推进动力装置及其保障系统实施手动或自动控制(含集中控制或机旁控制)并进行显示、报警、安全保护等项目" } + ] + }, + + "03": { + "code": "03", + "name": "电力系统", + "level": 1, + "children": [ + { "code": "00", "name": "总论", "level": 2,"description": "通用要求" }, + { "code": "10", "name": "供电系统", "level": 2,"description": "电力系统中提供各种电能的系统。包括柴油发电机组、蒸汽轮机发电机组、燃气轮机发电机组、热气机发电机组、电池组及其附属设备、变电设备等。" }, + { "code": "20", "name": "配电系统", "level": 2,"description": "电力系统中对电源设备产生的电能进行分配、检测,以向负载供电的系统。包括主配电系统、应急配电系统、事故配电系统、专用配电系统和接岸电设施等。" }, + { "code": "30", "name": "照明系统", "level": 2,"description": "由各种灯具、照明配电板、配电和控制电路构成的用于JC照明的系统。包括主照明系统、应急照明系统、低照度照明系统和专用灯照明系统等。" }, + { "code": "40", "name": "电气监测和控制系统", "level": 2,"description": "对JC电站、电气传动设备等实施监测和控制的系统。包括电站、电气传动、配电系统、照明系统和电池等的监测和控制。" }, + { "code": "50", "name": "发电机组保障系统", "level": 2,"description": "对JC发电机组的正常运行起保障作用的设备和动力管路系统的设计、制造、布置、安装、材料和试验验收等。包括柴油发电机组、蒸汽轮机发电机组、燃气轮机发电机组和热气机发电机组等的保障系统。" }, + { "code": "60", "name": "电缆敷设", "level": 2,"description": "包括全船电力电缆、信号电缆、控制电缆的敷设。不包括消磁电缆的敷设。" }, + { "code": "70", "name": "综合电缆系统", "level": 2,"description": "JC发电、变电、配电、监控、照明、储能、电气传动及电力推进等部分综合集成的电力系统,它可实现艇电力推进与日常负载之间能量的灵活调配。包括供电系统、配电系统、电力推进系统、能量管理系统及储能系统等。" }, + { "code": "80", "name": "电场、磁场防护系统", "level": 2,"description": "通过对JC磁场、电场的监测、控制和管理,确保JC电磁场隐身性能的系统。包括消磁系统和电场防护系统。" }, + { "code": "90", "name": "专用项目", "level": 2,"description": "包括避雷装置、日用生活电器、电力系统工作液体、电力系统备品备件和专用工具。" } + ] + }, + + "04": { + "code": "04", + "name": "ZZ系统", + "level": 1, + "children": [ + { "code": "00", "name": "总论", "level": 2,"description": "通用要求" }, + { "code": "10", "name": "信息感知", "level": 2,"description": "JC上用于获取目标信息,对信息进行综合分析和处理,概略测定其位置和判定其敌我属性的设备。包括射频前端设备、光频前端设备、声频设备等。" }, + { "code": "20", "name": "本JZZ指挥控制", "level": 2,"description": "用于实现单J(艇)ZZ指挥控制功能的系统、设备、模块等的总称。本组按照ZZ任务不同,主要包括ZZ态势生成,综合ZZ指挥控制,对空、对海、对水下、对陆方面ZZ综合控制,两栖ZZ、航空兵ZZ指挥控制,航空管制,无人ZBZZ控制等功能组成。" }, + { "code": "30", "name": "编队ZZ指挥", "level": 2,"description": "用于基于情报处理功能,指挥员根据分配的任务对不同任务编队实施ZZ指挥所必需的设备、软件和人员的总称。包括编队ZZ筹划、编队情报保障、编队协同ZZ指挥和编队ZZ保障等。" }, + { "code": "40", "name": "WQ控制及保障", "level": 2,"description": "主要包括雷弹发射装置,控制WQ对目标进行GJ的火力控制系统以及雷弹转运与贮存、保障系统和有关设施。" }, + { "code": "50", "name": "综合通信", "level": 2,"description": "用于实现JC内部和外部信息传输的各类通信系统以及配套的设备、设施等。具体包括内部通信保障设备、通信控制管理设备、无线通信设备、数据链设备、全J综合视频JS设备、应急遇险救生通信设备等。" }, + { "code": "60", "name": "综合导航", "level": 2,"description": "引导和保障JC平台按ZZ要求HX并提供JC运动状态信息支援的JZ系统、设备和器材的统称" }, + { "code": "70", "name": "大气海洋环境探测", "level": 2,"description": "探测、测量温度、湿度、气压、风速、海水温度、盐度、密度,以及云、降水、海雾、冰雹、雷电、浪涌等大气海洋环境要素和现象的设备,并对大气海洋环境信息接收、处理及提供相应保障服务的设备。包括大气环境探测设备、海洋环境探测设备、大气海洋环境信息接收设备、大气海洋环境信息处理及服务设备等。" }, + { "code": "80", "name": "基础保障", "level": 2,"description": "包括公共计算服务设备、密码BM设备、信息安全设备和对准保障设备等。" }, + { "code": "90", "name": "专用项目", "level": 2,"description": "包括电子试验、检测与监控设备、保障管理系统(政工保障和后勤保障)以及ZZ系统备品备件和专用工具等。" } + ] + }, + + "05": { + "code": "05", + "name": "船舶保障系统", + "level": 1, + "description": "为JC控制、安全、供应和居住所要求的系统,包括舱室大气环境控制、消防系统、日用水系统、HSH防护系统、日用压缩空气和其他流体系统、生活保障系统、环境污染控制系统、损害管制监测与控制系统、综合平台管理系统、JC姿态控制系统等。", + "children": [ + { "code": "00", "name": "总论", "level": 2,"description": "通用要求" }, + { "code": "10", "name": "舱室大气环境控制系统", "level": 2,"description": "指控制舱室温度、湿度和净化空气、改善舱室环境的系统,包括日用蒸汽和供暖系统、通风系统、空气调节系统、空气再生与净化系统、冷藏系统及空气分析系统等。" }, + { "code": "20", "name": "消防系统", "level": 2,"description": "包括水消防系统、气体灭火系统、泡沫灭火系统、防爆系统及消防用品等。" }, + { "code": "30", "name": "日用水系统", "level": 2,"description": "提供JY生活或设备正常工作的海水和淡水系统,包括饮用水和洗涤水系统、甲板排水系统、日用海水系统、海水淡化装置及其系统、淡水冷却系统、机械和管路的泄水系统及舱底水系统等。" }, + { "code": "40", "name": "HSH防护系统", "level": 2,"description": "为保证HSHZZ条件下JY和ZB的ZZ能力而设置的综合防御系统,能够对HWQ、化学WQ、生物WQ等自身、载体及次生造成的危害,进行探测、防护和洗消,包括HSH监控系统、集体防护系统、水幕洗消系统和其他防护器材。" }, + { "code": "50", "name": "日用压缩空气和其他流体系统", "level": 2,"description": "包括日用压缩空气系统、其他压缩气体系统、气幕降噪系统、液压系统和专用管路系统等。" }, + { "code": "60", "name": "生活保障系统", "level": 2,"description": "为保障JY工作、生活需要而设置的居住、卫生、物品贮藏、膳食保障、休息活动以及医疗保障的舱室和设施,包括居住设施、膳食设施、服务设施、医疗设施和工作舱室设施。本组还包括船用家具和JC上小五金用品的基本要求。" }, + { "code": "70", "name": "环境污染控制系统", "level": 2,"description": "为防止海洋污染而设置的对油污水、生活污水、生活垃圾、医疗垃圾、餐厨垃圾、压载水进行处理的综合控制系统,包括油污水处理系统、生活污水处理系统、固体垃圾处理系统、餐厨垃圾处理系统、潜艇废物抛出装置和压载水处理系统。" }, + { "code": "80", "name": "损害管制监测与控制系统", "level": 2,"description": "包括对重要舱室的状态、舱室浸水、失火、通风及其他辅机进行集中监测、报警和控制。由损害管制控制台、综合报警器以及各种传感器等组成。" }, + { "code": "90", "name": "综合平台管理系统", "level": 2,"description": "ZB于JC,将平台上系统和设备的监测、控制、管理及辅助决策等功能集成为一个整体,形成的监控与管理信息系统,一般包括推进监控设备、电力监控设备、损管综合监控设备、综合J桥设备、综合保障管理系统、状态监测及维护维修设备、综合管理与决策设备以及系统共用基础设施等。" }, + { "code": "A0", "name": "JC姿态控制系统", "level": 2,"description": "利用JC上ZB的系统、设备,在JC破损、非破损状态下,为JC、JZ机及J上其他系统、ZB的正常使用提供姿态保障、提供舷侧防护及保证JC基本浮性稳性的系统,一般包括水面JC的纵倾平衡系统、横倾平衡系统、应急排水系统、压载水系统,以及潜艇潜浮系统、均衡系统、深度控制系统和操纵控制系统。" }, + { "code": "B0", "name": "专用项目", "level": 2,"description": "包括船舶保障系统工作液体、船舶保障系统备品备件和专用工具。" } + ] + }, + + "06": { + "code": "06", + "name": "航空保障系统", + "level": 1, + "description": "JC上用于保障各型JZ机实现高效出动、安全回收、塔台飞行指挥、J面调运、油气电液供给、DY贮运加挂、维修任务支援等各类航空作业,保障JZ机安全上J并形成出动回收能力的系统,包括航空保障指挥管理系统,起飞和着J引导系统,JZ机放飞、回收及贮运系统,机载WQ保障系统,喷气燃料系统,航空电源系统,航空供气系统,JZ机辅助保障设施、JZ机维修及任务支援系统等。", + "children": [ + { "code": "00", "name": "总论", "level": 2,"description": "通用要求" }, + { "code": "10", "name": "航空保障指挥管理系统", "level": 2,"description": "为航空保障作业提供塔台飞行指挥、机务勤务综合指挥调度、飞行作训管理航空ZB和航空保障ZB信息管理、综合态势服务等指挥管理功能的系统。包括塔台飞行指挥设施、机务勤务综合指挥调度设施、飞行作训管理设施、航空ZB及资源信息管理设施、航空保障综合态势服务设施、航空保障作业能力评估设施等。" }, + { "code": "20", "name": "起飞和着J引导系统", "level": 2,"description": "用于指挥引导JZ机在JC上起飞和着J的系统,其采用光学、惯性、卫星等技术手段为JZ机提供位置、角度及目视引导信息,实现JZ机的安全起飞和着J。包括起飞和着J引导指挥设施、 雷达着J引导设备、光学助降设备、起降电视JS设备、微波着J引导设备、光电着J引导设备、卫星着J引导设备、甲板灯光设施等。" }, + { "code": "30", "name": "JZ机放飞系统", "level": 2,"description": "JC上保障JZ机起飞的系统。包括电磁弹射装置、飞机止动装置、喷气偏流板装置等。" }, + { "code": "40", "name": "JZ机回收系统", "level": 2,"description": "JC上保障JZ机回收的系统。包括电磁阻拦装置、液压阻拦装置、阻拦网设施、格栅装置、集成抓曳装置等。" }, + { "code": "50", "name": "JZ机贮运系统", "level": 2,"description": "用于JZ机在JC上贮存和转运的系统。包括贮运指挥设施、JZ机升降机、机库大门、 牵引设施、系留设施、调向转盘等。" }, + { "code": "60", "name": "机载WQ保障系统", "level": 2,"description": "JC上用于完成机载WQ管理、调度、贮存、转运、装配、维护等保障功能的设备与设施统称。包括机载WQ管理调度设施、机载WQ贮存装置、机载WQ转运设备、机载WQ挂卸设备、机载WQ装配维护设备等。" }, + { "code": "70", "name": "喷气燃料系统", "level": 2,"description": "为JZ机提供喷气燃料保障的系统。包括喷气燃料动力设施、喷气燃料监控设施、集成加油装置、喷气燃料安全保障设施、喷气燃料维护保障设施等。" }, + { "code": "80", "name": "航空电源系统", "level": 2,"description": "为JZ机提供航空电源保障的系统。包括航空电源供电设施、航空电源辅助保障设备、航空电源监控设施等。" }, + { "code": "90", "name": "航空供气系统", "level": 2,"description": "为JZ机提供航空氧气、氮气、压缩空气以及空调通风气体等各种气体保障的系统。包括航空气体制备设施、航空气体储用设施、压缩空气设备、航空TZ空调装置、航空供气监控设施等。" }, + { "code": "A0", "name": "JZ机辅助保障设施", "level": 2,"description": "为JZ机提供液压、冲洗、应急救援、人员保障、跑道保障等辅助保障作业的设施。包括液压保障设施、液冷保障设施、冲洗保障设施、JZ机应急救援设施、航空人员专用保障设施、跑道保障设施以及其它保障设施等。" }, + { "code": "B0", "name": "JZ机维修及任务支援系统", "level": 2,"description": "为JZ机在JC上的使用、维护、修理、训练以及数据分析、处理等各项作业提供直接保障的软、硬件设备的总称。包括维修保障设备、J基训练系统、远程维修支援系统、任务规划支持系统等。" } + ] + }, + + "07": { + "code": "07", + "name": "TZ保障系统", + "level": 1, + "description":"JC为了保障履行陆特Z、补给、救捞、医疗卫勤、维修、海洋测量、ZC等TZ任务而配置的系统,包括陆特ZZB保障系统、无人ZB保障系统、海上补给与接收系统、救援和打捞系统、卫生勤务保障系统、维修系统、海洋测量系统、ZC系统等。", + "children": [ + { "code": "00", "name": "总论", "level": 2,"description": "通用要求" }, + { "code": "10", "name": "陆特ZZB保障系统", "level": 2,"description": "为登陆和TZZZZB提供ZZ支援保障的系统。包括陆特ZZB保障任务规划及指挥管理系统、陆特ZZB收放贮运系统、陆特ZZB辅助引导系统、陆特ZZB资源供应保障系统、陆特ZZB维护保障系统、陆特ZZBDY保障系统、陆特ZZB保障作业支持系统等。" }, + { "code": "20", "name": "无人ZB保障系统", "level": 2,"description": "为JZ无人ZB(JZ无人机保障见6组)提供ZZ支援保障的系统。包括无人ZB保障指挥调度及驻J管理系统、无人ZB收放贮运系统、无人ZB勤务保障系统、无人ZBDY保障系统、无人ZB辅助保障设施等。" }, + { "code": "30", "name": "海上补给与接收系统", "level": 2,"description": "JC海上HX时的补给和接收系统。包括JC之间的横向、纵向、靠帮补给和接收系统、直升机与JC之间的垂直补给系统、JC上的干货、液货存储转运系统,以及补给船的补给作业指挥管理系统。" }, + { "code": "40", "name": "救援和打捞系统", "level": 2,"description": "救生JC对水面事故(ZS)JC、ZB及落水人员等进行搜寻救助,减少其损失及伤害;对水下事故潜艇进行搜索探测,为艇员提供生命支持,协助艇员离艇脱险;对沉没于水中的JC、ZB或货物等进行打捞处置的系统。包括救援指挥管理系统、水面救助系统、水下救援系统和打捞系统等。" }, + { "code": "50", "name": "卫生勤务保障系统", "level": 2,"description": "指JC上执行本J及海上人员平时诊疗、Z时救治、转运等卫生勤务保障任务的系统。包括医疗信息管理系统、伤病员换乘系统、常规医疗系统、特勤医疗系统、JC防疫与防护设施和医疗保障系统等。" }, + { "code": "60", "name": "维修系统", "level": 2,"description": "JC上配置的对目标JC执行修理抢修操作,阻止其损害,恢复部分系统功能和HX能力的保障任务系统。" }, + { "code": "70", "name": "海洋测量系统", "level": 2,"description": "对海洋气象水文、潮汐洋流、地形地貌、温盐密度等进行测量记录JS的系统。包括海洋测量指挥管理系统、海洋测量设备及其收放贮运、资源供应、信息保障、维护保障等系统。" }, + { "code": "80", "name": "ZC系统", "level": 2,"description": "利用JC上配置的专用通信、雷达、光电、水声等ZC手段对外界目标环境等进行ZC,并对ZC得到的情报进行综合分析处理的系统。包括通信ZC系统、雷达ZC系统、光电ZC系统、水声ZC系统、情报综合处理系统和综合管理系统等。" }, + { "code": "90", "name": "专用项目", "level": 2,"description": "TZ保障系统备品备件和专用工具。" } + ] + }, + + "08": { + "code": "08", + "name": "船舶装置", + "level": 1, + "description":"包括JC运动控制系统,机械式转运系统,门、窗、梯、盖等船体属具,舱室分隔和表面覆盖,防腐蚀与防污损和其他专用项目。", + "children": [ + { "code": "00", "name": "总论", "level": 2,"description": "通用要求" }, + { "code": "10", "name": "JC运动控制系统", "level": 2,"description": "为控制JC运动而设置的系统,包括操舵控制系统及操舵装置、舵、综合J桥设备、减摇系统、动力定位系统、主动转向装置、水翼收放控制装置和艉板可调装置等。" }, + { "code": "20", "name": "机械式转运系统", "level": 2,"description": "采用机械设施进行转运、操纵的系统。包括锚及其存放与操纵系统、系泊和拖曳系统、小艇及其收放系统、升降装置及其附属系统、货物转运系统等。" }, + { "code": "30", "name": "船体属具", "level": 2,"description": "JC上主要供人员通行又未列入其他各系统的门、窗、梯、盖、桅和桅樯信号,以及为保证人员安全、生活或JC运行所必需的索具和帆布制品、号型和号旗、彩旗、彩灯悬挂装置、栏杆、扶手和天幕装置等。" }, + { "code": "40", "name": "舱室分隔和表面覆盖", "level": 2,"description": "作为舱室分隔的非结构性舱壁,活动铺板和格栅,除涂料和金属镀层外的一切敷盖在船体和上层建筑舱室内用作隔热绝缘、防火、减振和隐身用的材料等。" }, + { "code": "50", "name": "防腐蚀与防污损", "level": 2,"description": "以防腐蚀为目的的涂料保护、金属涂层和电化保护,以及防止海洋生物附着于船体外表面造成污底的防污损。" }, + { "code": "60", "name": "专用项目", "level": 2,"description": "包括船体标识和标志、吃水标志、锁、钥匙和标签、防鼠和防害虫、救生设施、抗沉堵漏器材、拖曳体收放装置、浮筏及隔振装置、船舶装置工作液体、船舶装置备品备件和专用工具。" } + ] + }, + + "09": { + "code": "09", + "name": "专用ZB系统", + "level": 1, + "description":"提供TZ任务能力的系统或设备。", + "children": [ + { "code": "00", "name": "总论", "level": 2,"description": "通用要求" }, + { "code": "10", "name": "TZ类型设备", "level": 2,"description": "为实现某个TZ任务能力配置的TZ设备" }, + { "code": "20", "name": "TZ修复设备", "level": 2,"description": "用来恢复设备性能的TZ修复设备(硬件/软件),包括起重机和牵引支架设备等" }, + { "code": "30", "name": "TZ用途设备", "level": 2,"description": "系统中与JCZB相配合,以实现特殊任务目的的部分" } + ] + }, + + "10": { + "code": "10", + "name": "训练系统", + "level": 1, + "description":"提供训练功能的系统或设备。", + "children": [ + { "code": "00", "name": "总论", "level": 2,"description": "通用要求" }, + { "code": "10", "name": "装置/附件/帮助", "level": 2,"description": "用来使培训人员获得足够的知识和技能,从而能够以最大的效率操作和维护系统的那些可交付使用的训练装置/附件/帮助。" }, + { "code": "20", "name": "设备", "level": 2,"description": "用来使培训人员获得足够的知识和技能,从而能够以最大的效率操作和维护系统的那些可交付使用的训练设备。" }, + { "code": "30", "name": "设施", "level": 2,"description": "用来使培训人员获得足够的知识和技能,从而能够以最大的效率操作和维护系统的那些可交付使用的训练设施。" } + ] + }, + + "11": { + "code": "11", + "name": "维修、测试和保障系统", + "level": 1, + "description":"用于ZB监测、维护保养和维修的保障系统、设备或设施。", + "children": [ + { "code": "00", "name": "总论", "level": 2,"description": "通用要求" }, + { "code": "10", "name": "通用维修设备", "level": 2,"description": "用于使系统恢复到可使用状态的设施。" }, + { "code": "20", "name": "通用保障设备", "level": 2,"description": "用来保障和维护系统或子系统正常运行而不直接参与执行任务的设备。" }, + { "code": "30", "name": "测试和测量设备", "level": 2,"description": "实施特殊诊断、筛选或质量保证工作的过程中用来评估系统或设备的运行状态的通用测试和测量设备" }, + { "code": "40", "name": "保障和装卸设备", "level": 2,"description": "用于保障任务系统的可交付使用的工具和装卸设备" } + ] + } +} + +_LEVEL2_NAME_MAP: Dict[str, Dict[str, str]] = { + level1_code: {c["code"]: c["name"] for c in (level1.get("children") or [])} + for level1_code, level1 in System_Name_Replace_Dict.items() +} + + +File_Dict={ + "A": { + "name": "全船性完工文件", + "files": { + "01": "全船性完工文件目录", + "02": "图样和图表", + "03": "说明书", + "04": "计算书", + "05": "供应品清单", + "06": "备品备件、工具等清单", + "07": "履历簿", + "08": "培训教材", + "09": "多媒体", + "10": "试验类文件", + "11": "使用保养规程建议稿", + "12": "质量证明类", + "13": "其他文件" + } + }, + "B": { + "name": "系统设备随机文件", + "files": { + "01": "随机文件目录", + "02": "技术说明书", + "03": "操作使用手册", + "04": "BD级维修手册", + "05": "零部件图解目录", + "06": "图样及图表", + "07": "备品备件、工具等清单", + "08": "试验类文件", + "09": "履历簿(书)", + "10": "质量证明类", + "11": "软件用户手册", + "12": "成套设备汇总表", + "13": "元器件明细表(包括自制及外购)", + "14": "精度检查表", + "15": "培训教材", + "16": "多媒体", + "17": "其他文件" + } + }, + "C": { + "name": "JD级技术资料", + "files": { + "01": "预防性维修大纲", + "02": "等级修理基准工程单", + "03": "JD级维修手册", + "04": "修理技术要求", + "05": "修理原则工艺", + "06": "关键件及寿命件检查方案及更换标准", + "07": "计量校准保障方案", + "08": "调试细则", + "09": "大型设备出舱技术方案", + "10": "修理结构方案", + "11": "其他文件" + } + }, + "D": { + "name": "非随装技术资料", + "files": { + "01": "ZB性能底数报告", + "02": "ZB效能底数报告", + "03": "ZB使用保养规程", + "04": "ZB故障案例", + "05": "ZBZZ使用手册" + } + } +} + +def openai_chat(query: str, model="Qwen3.5-35B-A3B"): + """调用OpenAI API""" + try: + client = OpenAI( + api_key="none", + base_url="http://192.168.0.46:59800/v1" + ) + + response = client.chat.completions.create( + model=model, + messages=[ + {"role": "user", "content": query}, + ], + temperature=0.1, + stream=False, + response_format={"type": "json_object"}, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + except Exception as e: + print(f"调用OpenAI API时出错: {e}") + return None + + +def safe_json_loads(s: str): + try: + return json.loads(s) + except json.JSONDecodeError as e: + # 尝试修复常见问题 + s = s.replace("\\n", "\\\n").replace("\r", "\\r").replace("\t", "\\t") + # 或者直接清理非法字符 + s = re.sub(r'[\x00-\x1f\x7f]', '', s) # 移除控制字符 + try: + return json.loads(s) + except: + raise e + + + +def extract_entity_rela(prompt= str) -> dict: + content = openai_chat(prompt) + try: + cleaned = content.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = safe_json_loads(cleaned) + + return json_result + except Exception as e: + return [] + + +# def get_excel_node_relation( +# excel_path: str, +# sheet_name: Optional[str] = None, +# batch_size: int = 3): +# """从Excel提取实体和关系""" +# all_entities = [] +# all_relationships = [] + +# try: +# # 1. 读取Excel数据 +# table_json = excel_to_jsondata(excel_path=excel_path, sheet_name=sheet_name) +# if not table_json: +# logger.warning("Excel文件为空") +# return all_entities, all_relationships + +# # 2. 判断表格类型 +# data = json.dumps(table_json, ensure_ascii=False, indent=2) +# prompt_type = prompt_type_excel.replace("{text}", data) +# typeresult = openai_chat(prompt_type) + +# if not typeresult: +# logger.error("类型判断失败") +# return all_entities, all_relationships + +# # 3. 解析类型 +# try: +# cleaned = typeresult.strip() +# if cleaned.startswith("```json"): +# cleaned = cleaned[7:].lstrip() +# if cleaned.endswith("```"): +# cleaned = cleaned[:-3].rstrip() + +# json_result = safe_json_loads(cleaned) +# table_type = json_result.get("type", "") + +# if not table_type: +# logger.error("类型字段缺失") +# return all_entities, all_relationships + +# except Exception as e: +# logger.error(f"解析类型失败: {e}") +# return all_entities, all_relationships + +# # 4. 根据类型处理 +# if table_type == "备品备件": +# logger.info("提取备品备件...") +# print(data) +# prompt = prompt_beipinbeijian.replace("text", data) + +# try: +# result = extract_entity_rela(prompt) + +# if not result or not isinstance(result, dict): +# return all_entities, all_relationships + +# entities = result.get("entities", []) +# relationships = result.get("relationships", []) + +# for entity in entities: +# if "properties" not in entity: +# entity["properties"] = {} +# if isinstance(entity["properties"], dict): +# entity["properties"]["切片"] = data + +# all_entities.extend(entities) +# all_relationships.extend(relationships) +# logger.info(f"完成: {len(entities)}实体, {len(relationships)}关系") + +# except Exception as e: +# logger.error(f"备品备件提取出错: {e}") + +# elif table_type == "故障汇总": +# logger.info(f"提取故障汇总 (共{len(table_json)}条, 批量{batch_size})...") + +# for batch_idx in range(0, len(table_json), batch_size): +# batch = table_json[batch_idx:batch_idx + batch_size] + +# try: +# batch_data = json.dumps(batch, ensure_ascii=False, indent=2) +# prompt = prompt_guzhanghuizong.replace("text", batch_data) + +# result = extract_entity_rela(prompt) + +# if not result or not isinstance(result, dict): +# continue + +# entities = result.get("entities", []) +# relationships = result.get("relationships", []) + +# for entity in entities: +# if "properties" not in entity: +# entity["properties"] = {} +# if isinstance(entity["properties"], dict): +# entity["properties"]["切片"] = batch_data + +# all_entities.extend(entities) +# all_relationships.extend(relationships) + +# except Exception as e: +# logger.error(f"批次{batch_idx//batch_size + 1}出错: {e}") +# continue + +# logger.info(f"完成: {len(all_entities)}实体, {len(all_relationships)}关系") + +# else: +# logger.warning(f"未知类型: {table_type}") + +# except Exception as e: +# logger.error(f"执行失败: {e}") + +# return all_entities, all_relationships + + +def get_excel_node_relation( + excel_path: str, + sheet_name: Optional[str] = None, + batch_size: int = 3): + """从Excel提取实体和关系""" + all_entities = [] + all_relationships = [] + + try: + # 1. 读取Excel数据 + table_json = excel_to_jsondata(excel_path=excel_path, sheet_name=sheet_name) + if not table_json: + logger.warning("Excel文件为空") + return all_entities, all_relationships + + # 2. 判断表格类型 + data = json.dumps(table_json, ensure_ascii=False, indent=2) + prompt_type = prompt_type_excel.replace("{text}", data) + typeresult = openai_chat(prompt_type) + + if not typeresult: + logger.error("类型判断失败") + return all_entities, all_relationships + + # 3. 解析类型 + try: + cleaned = typeresult.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = safe_json_loads(cleaned) + table_type = json_result.get("type", "") + + if not table_type: + logger.error("类型字段缺失") + return all_entities, all_relationships + + except Exception as e: + logger.error(f"解析类型失败: {e}") + return all_entities, all_relationships + + # 4. 根据类型处理 + if table_type == "备品备件": + logger.info("提取备品备件...") + + total_batches = (len(table_json) + batch_size - 1) // batch_size + + for batch_idx in range(0, len(table_json), batch_size): + batch = table_json[batch_idx:batch_idx + batch_size] + current_batch_num = batch_idx // batch_size + 1 + + try: + # 将当前批次转为JSON字符串 + batch_data = json.dumps(batch, ensure_ascii=False, indent=2) + + # 使用对应类型的prompt模板 + prompt = prompt = prompt_beipinbeijian.replace("text", data) + + # 调用实体关系提取 + result = extract_entity_rela(prompt) + + if not result or not isinstance(result, dict): + logger.warning(f"批次{current_batch_num}/{total_batches}未返回有效结果") + continue + + entities = result.get("entities", []) + relationships = result.get("relationships", []) + + # 为每个实体添加切片属性 + for entity in entities: + if "properties" not in entity: + entity["properties"] = {} + if isinstance(entity["properties"], dict): + entity["properties"]["切片"] = batch_data + + # 累加到总结果中 + all_entities.extend(entities) + all_relationships.extend(relationships) + + logger.info( + f"批次{current_batch_num}/{total_batches}完成: " + f"{len(entities)}实体, {len(relationships)}关系" + ) + + except Exception as e: + logger.error(f"批次{current_batch_num}/{total_batches}出错: {e}") + continue + + elif table_type == "故障汇总": + logger.info(f"提取故障汇总 (共{len(table_json)}条, 批量{batch_size})...") + + for batch_idx in range(0, len(table_json), batch_size): + batch = table_json[batch_idx:batch_idx + batch_size] + + try: + batch_data = json.dumps(batch, ensure_ascii=False, indent=2) + prompt = prompt_guzhanghuizong.replace("text", batch_data) + + result = extract_entity_rela(prompt) + + if not result or not isinstance(result, dict): + continue + + entities = result.get("entities", []) + relationships = result.get("relationships", []) + + for entity in entities: + if "properties" not in entity: + entity["properties"] = {} + if isinstance(entity["properties"], dict): + entity["properties"]["切片"] = batch_data + + all_entities.extend(entities) + all_relationships.extend(relationships) + + except Exception as e: + logger.error(f"批次{batch_idx//batch_size + 1}出错: {e}") + continue + + logger.info(f"完成: {len(all_entities)}实体, {len(all_relationships)}关系") + + else: + logger.warning(f"未知类型: {table_type}") + + except Exception as e: + logger.error(f"执行失败: {e}") + + return all_entities, all_relationships + + +# if __name__ == "__main__": +# strat_time = time.time() +# excel_file = "F:\zklnlp\HJ\hj_kg_code\kgrag\extract_excel\螺旋桨-备品备件.xlsx" # ← 你的 Excel +# all_entities, all_relationships = get_excel_node_relation(excel_file) +# end_time = time.time() +# print(len(all_entities)) +# print(len(all_relationships)) +# print(end_time-strat_time) + diff --git a/extract_text_node_relation.py b/extract_text_node_relation.py new file mode 100644 index 0000000..0288ba9 --- /dev/null +++ b/extract_text_node_relation.py @@ -0,0 +1,518 @@ +import os +import json +from typing import List, Tuple, Dict, Any, Optional +import re +from kg_build.extract_compose_table import get_compose_node_relation +from kg_build.extract_compose_tujie_table import get_tujiecompose_node_relation +from kg_build.extract_guzhang_table import get_guzhang_node_relation +from kg_build.extract_operation_table import get_operation_node_relation +from kg_build.extract_repair_table import get_repair_node_relation +from kg_build.extract_wxanli_table import get_wxanli_node_relation +from kg_build.get_text_node_reala import extract_text_node_relationship +from kg_build.extract_beipinbeijian_table import get_beipinbeijian_node_relation +from kg_build.extract_filtertext import get_filtertext_node_relation +import requests +from doc2pdf import Doc2PDF +import traceback +from extract_excel_node_relation import get_excel_node_relation + +import logging +import asyncio # ← 新增导入 +import time +# --- 日志配置 --- +logger = logging.getLogger(__name__) +if not logger.handlers: + handler = logging.StreamHandler() + fmt = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + handler.setFormatter(fmt) + logger.addHandler(handler) +logger.setLevel(logging.INFO) + +converter = Doc2PDF() + +def build_repair_relationships(entities: List[Dict]) -> Tuple[List[Dict], List[Dict]]: + """ + 根据维修项目编号 OR 名称在故障维修方案中的出现情况,建立“修理”关系。 + 匹配规则:只要编号或名称任意一个出现在维修方案文本中,即视为匹配。 + """ + # 1. 数据分类:分离故障模式和维修项目 + faults = [e for e in entities if e.get("type") == "故障模式"] + maintenances = [e for e in entities if e.get("type") == "维修项目"] + devices = [e for e in entities if e.get("type") == "设备"] + + + relationships = [] + entitys = [] + # 2. 遍历每一个维修项目 + for mt in maintenances: + props = mt.get("properties", {}) + mt_code = props.get("编号") + mt_name = props.get("名称") + + # 如果连名称和编号都没有,无法进行任何匹配,直接跳过 + if not mt_code and not mt_name: + continue + + # 3. 遍历每一个故障模式 + for fault in faults: + f_props = fault.get("properties", {}) + fault_name = f_props.get("名称") + repair_text = f_props.get("维修方案", "") + + if not fault_name or not repair_text: + continue + + # 4. 核心匹配逻辑修改 (OR 关系) + match_by_code = mt_code in repair_text if mt_code else False + match_by_name = mt_name in repair_text if mt_name else False + + # 只要满足任一条件,即建立关系 + if match_by_code or match_by_name: + relationships.append({ + "type": "修理", + "from_entity": mt_name, # 关系起点:维修项目名称 + "to_entity": fault_name # 关系终点:故障名称 + }) + for mt in devices: + props = mt.get("properties", {}) + mt_code = props.get("维修项目名称") + mt_name = props.get("维修项目编号") + devicename = props.get("名称") + # 如果连名称和编号都没有,无法进行任何匹配,直接跳过 + if not mt_code and not mt_name: + continue + + # 3. 遍历每一个故障模式 + for fault in faults: + f_props = fault.get("properties", {}) + fault_name = f_props.get("名称") + repair_text = f_props.get("维修方案", "") + + if not fault_name or not repair_text: + continue + + # 4. 核心匹配逻辑修改 (OR 关系) + match_by_code = mt_code in repair_text if mt_code else False + match_by_name = mt_name in repair_text if mt_name else False + + # 只要满足任一条件,即建立关系 + if match_by_code or match_by_name: + entitys.append({ + "type": "维修工作", + "properties": {"名称": f"{devicename}的维修工作"} + }) + relationships.append({ + "type": "发生故障使用维修工作", + "from_entity": devicename, + "to_entity": f"{devicename}的维修工作" + }) + relationships.append({ + "type": "包含故障", + "from_entity": f"{devicename}的维修工作", + "to_entity": fault_name + }) + relationships.append({ + "type": "修理", + "from_entity": mt_name, # 关系起点:维修项目名称 + "to_entity": fault_name + }) + + + + return entitys,relationships + +async def get_md_node_relation( + content_list: str, + input_pdf_path:str, + Ontology: List[str], + Ontology_DESCRIPTION: Dict[str, List[str]], + Relationships: List[str], + RELATIONSHIP_TYPES: Dict[str, List[str]], + NODE_TYPES: Dict[str, List[str]], + PREFIX_URL : str = "http://192.168.0.111:9085", + device : str = "", + device_type : str = "" +) -> Tuple[List[Dict], List[Dict]]: + """ + 核心函数:协调各模块完成知识抽取、清洗、向量化。 + """ + start_time = time.time() + final_all_entity = [] + final_all_relation = [] + + if not content_list: + logger.error("输入的 Markdown 内容为空") + return [], [] + if "维修手册" in input_pdf_path or "维修说明书" in input_pdf_path or "培训手册" in input_pdf_path: + t = time.time() + all_entity_results_guzhang ,all_relation_results_guzhang =await get_guzhang_node_relation(input_pdf_path=input_pdf_path,data=content_list,prefix_url=PREFIX_URL,device=device) + length_entity_guzhang = len(all_entity_results_guzhang) + length_relation_guzhang = len(all_relation_results_guzhang) + logger.info(f"故障抽取 - 实体: {length_entity_guzhang}, 关系: {length_relation_guzhang}, 耗时: {time.time()-t:.2f}s") + if length_entity_guzhang > 0 : + final_all_entity.extend(all_entity_results_guzhang) + if length_relation_guzhang > 0: + final_all_relation.extend(all_relation_results_guzhang) + + t = time.time() + all_entity_results_repair ,all_relation_results_repair =await get_repair_node_relation(input_pdf_path=input_pdf_path,data=content_list,prefix_url=PREFIX_URL) + length_entity_repair = len(all_entity_results_repair) + length_relation_repair = len(all_relation_results_repair) + logger.info(f"维修项目表抽取 - 实体: {length_entity_repair}, 关系: {length_relation_repair}, 耗时: {time.time()-t:.2f}s") + if length_entity_repair > 0 : + final_all_entity.extend(all_entity_results_repair) + if length_relation_repair > 0: + final_all_relation.extend(all_relation_results_repair) + + t = time.time() + all_entity_results_text ,all_relation_results_text =await get_filtertext_node_relation(input_pdf_path=input_pdf_path,data=content_list,prefix_url=PREFIX_URL,device= device) + length_entity_text= len(all_entity_results_text) + length_relation_text = len(all_relation_results_text) + logger.info(f"文本抽取 - 实体: {length_entity_text}, 关系: {length_relation_text}, 耗时: {time.time()-t:.2f}s") + if length_entity_text > 0 : + final_all_entity.extend(all_entity_results_text) + if length_relation_text > 0: + final_all_relation.extend(all_relation_results_text) + elif "图解目录" in input_pdf_path: + # 2. 处理图解组成表 + t = time.time() + all_entity_results_tujiecompose ,all_relation_results_tujiecompose =await get_tujiecompose_node_relation(input_pdf_path=input_pdf_path,data=content_list,prefix_url=PREFIX_URL,device=device,lower_entity_type=device_type) + length_entity_tujiecompose = len(all_entity_results_tujiecompose) + length_relation_tujiecompose = len(all_relation_results_tujiecompose) + logger.info(f"图解组成表抽取 - 实体: {length_entity_tujiecompose}, 关系: {length_relation_tujiecompose}, 耗时: {time.time()-t:.2f}s") + if length_entity_tujiecompose > 0 : + final_all_entity.extend(all_entity_results_tujiecompose) + if length_relation_tujiecompose > 0: + final_all_relation.extend(all_relation_results_tujiecompose) + + elif "操作使用手册" in input_pdf_path: + # 6. 处理操作项目表 + t = time.time() + all_entity_results_operation ,all_relation_results_goperation =await get_operation_node_relation(input_pdf_path=input_pdf_path,data=content_list,prefix_url=PREFIX_URL,device=device) + length_entity_operation= len(all_entity_results_operation) + length_relation_goperation = len(all_relation_results_goperation) + logger.info(f"操作项目表抽取 - 实体: {length_entity_operation}, 关系: {length_relation_goperation}, 耗时: {time.time()-t:.2f}s") + if length_entity_operation > 0 : + final_all_entity.extend(all_entity_results_operation) + if length_relation_goperation > 0: + final_all_relation.extend(all_relation_results_goperation) + + t = time.time() + all_entity_results_text ,all_relation_results_text =await get_filtertext_node_relation(input_pdf_path=input_pdf_path,data=content_list,prefix_url=PREFIX_URL,device= device) + length_entity_text= len(all_entity_results_text) + length_relation_text = len(all_relation_results_text) + logger.info(f"文本抽取 - 实体: {length_entity_text}, 关系: {length_relation_text}, 耗时: {time.time()-t:.2f}s") + if length_entity_text > 0 : + final_all_entity.extend(all_entity_results_text) + if length_relation_text > 0: + final_all_relation.extend(all_relation_results_text) + + elif "备品备件" in input_pdf_path: + # 5. 处理备品备件表 + t = time.time() + all_entity_results_beipinbeijian ,all_relation_results_beipinbeijian =await get_filtertext_node_relation(input_pdf_path=input_pdf_path,data=content_list,prefix_url=PREFIX_URL,device=device) + length_entity_beipinbeijian= len(all_entity_results_beipinbeijian) + length_relation_beipinbeijian = len(all_relation_results_beipinbeijian) + logger.info(f"备品备件表抽取 - 实体: {length_entity_beipinbeijian}, 关系: {length_relation_beipinbeijian}, 耗时: {time.time()-t:.2f}s") + if length_entity_beipinbeijian > 0 : + final_all_entity.extend(all_entity_results_beipinbeijian) + if length_relation_beipinbeijian > 0: + final_all_relation.extend(all_relation_results_beipinbeijian) + elif "故障案例" in input_pdf_path: + + # 7. 处理维修案例 + t = time.time() + all_entity_results_wxanli ,all_relation_results_wxanli =await get_wxanli_node_relation(input_pdf_path=input_pdf_path,data=content_list,prefix_url=PREFIX_URL) + length_entity_wxanli= len(all_entity_results_wxanli) + length_relation_wxanli = len(all_relation_results_wxanli) + logger.info(f"维修案例抽取 - 实体: {length_entity_wxanli}, 关系: {length_relation_wxanli}, 耗时: {time.time()-t:.2f}s") + if length_entity_wxanli > 0 : + final_all_entity.extend(all_entity_results_wxanli) + if length_relation_wxanli > 0: + final_all_relation.extend(all_relation_results_wxanli) + else: + logger.warning("未识别的文档类型,默认进行文本抽取") + t = time.time() + all_entity_results_text ,all_relation_results_text =await get_filtertext_node_relation(input_pdf_path=input_pdf_path,data=content_list,prefix_url=PREFIX_URL,device= device) + length_entity_text= len(all_entity_results_text) + length_relation_text = len(all_relation_results_text) + logger.info(f"文本抽取 - 实体: {length_entity_text}, 关系: {length_relation_text}, 耗时: {time.time()-t:.2f}s") + if length_entity_text > 0 : + final_all_entity.extend(all_entity_results_text) + if length_relation_text > 0: + final_all_relation.extend(all_relation_results_text) + + + # 8. 建立修复关系 + reparientitys,repair_relations = build_repair_relationships(final_all_entity) + final_all_entity.extend(reparientitys) + final_all_relation.extend(repair_relations) + logger.info(f"构建故障修复实体数量: {len(reparientitys)}") + logger.info(f"构建故障修复关系数量: {len(repair_relations)}") + + + + logger.info(f"总实体: {len(final_all_entity)}, 总关系: {len(final_all_relation)}") + result = { + "entities": final_all_entity, + "relations": final_all_relation + } + output_json_path= "/app/wxproject.json" + # 保存为 JSON 文件 + try: + with open(output_json_path, 'w', encoding='utf-8') as f: + json.dump(result, f, ensure_ascii=False, indent=4) + print(f"结果已保存至:{output_json_path}") + except Exception as e: + print(f"保存 JSON 文件时出错:{e}") + end_time = time.time() + print(f"总耗时: {end_time - start_time:.2f} 秒") + return final_all_entity, final_all_relation + +def get_content_list_json(filename, folder_path): + """ + 根据传入的文件名,在指定文件夹下查找对应的 _content_list.json 文件并读取内容。 + + 参数: + filename (str): 原始文件名,例如 "163-06A0015-B01001_发动机-操作使用手册.pdf" + folder_path (str): 目标文件夹路径 + + 返回: + dict or None: 如果找到文件则返回 JSON 内容字典,否则返回 None + """ + # 提取文件名主体(去掉扩展名) + base_name = os.path.splitext(filename)[0] + + # 构造目标 JSON 文件名 + target_json_filename = f"{base_name}_content_list.json" + + # 构造完整路径 + target_path = os.path.join(folder_path, target_json_filename) + + # 检查文件是否存在 + if not os.path.exists(target_path): + print(f"未找到文件: {target_path}") + return None + + # 读取并解析 JSON + try: + with open(target_path, 'r', encoding='utf-8') as f: + data = json.load(f) + return data + except json.JSONDecodeError as e: + print(f"JSON 解析错误: {e}") + return None + except Exception as e: + print(f"读取文件时发生错误: {e}") + return None + + +def process_file_content( + file_name: str, + file_path: str, + task_id: str, + data_dir: str, + ontology: Any, + ontology_desc: str, + relationships: List, + node_types: List, + relationship_types: List, + prefix_url: str, + api_url: str, + check_cancelled_callback: callable, + device : str, + device_type : str, +) -> Tuple[List[Dict], List[Dict]]: + """ + 根据文件类型解析内容并抽取实体和关系。 + + Returns: + tuple: (entities, relationships) + """ + file_extension = os.path.splitext(file_name)[1].lower() + merged_output_data = {"entities": [], "relationships": []} + from fileparse_util import process_document + + # --- 处理 PDF 和 MD --- + if file_extension in ['.pdf', '.md']: + async def _run_process_doc(): + return await process_document(file_name) + doc_result = asyncio.run(_run_process_doc()) + if doc_result is not None: + content_list, images_dict, md_content= doc_result + + else: + if not os.path.exists(file_path): + raise FileNotFoundError(f"文件未找到: {file_path}") + + with open(file_path, "rb") as f: + files = {"file": (os.path.basename(file_path), f, "application/pdf")} + logger.info(file_path) + response = requests.post(api_url, files=files, timeout=12000) + + if response.status_code != 200: + logger.error(f"❌ API 请求失败,状态码: {response.status_code}, 响应: {response.text}") + raise Exception(f"PDF/MD 解析 API 失败: {response.status_code}") + + result = response.json() + data = result.get("data", {}) + content_list = data.get("content_list") + + logger.info(f"[{task_id}] 开始文件 {file_name} 的实体和关系抽取") + if check_cancelled_callback(): + raise InterruptedError("任务已取消") + + async def run_extraction(): + return await get_md_node_relation( + content_list=content_list, + input_pdf_path=file_path, + Ontology=ontology, + Ontology_DESCRIPTION=ontology_desc, + Relationships=relationships, + RELATIONSHIP_TYPES=relationship_types, + NODE_TYPES=node_types, + PREFIX_URL=prefix_url, + device = device, + device_type = device_type + ) + + final_all_entity, final_all_relation = asyncio.run(run_extraction()) + merged_output_data = {"entities": final_all_entity, "relationships": final_all_relation} + + # --- 处理 DOCX --- + elif file_extension in ['.docx']: + base_name = os.path.splitext(file_name)[0] + pdf_filename = f"{base_name}.pdf" + pdf_path = os.path.join(data_dir, pdf_filename) + + logger.info(f"[{task_id}] 转换 DOCX -> PDF: {file_name}") + + try: + converter.convert(file_path, output_dir=data_dir) + + if not os.path.exists(pdf_path): + raise FileNotFoundError(f"PDF 转换失败: {pdf_path}") + + # 与 PDF 分支保持一致:先尝试 process_document,失败则上传 API + async def _run_process_doc_docx(): + return await process_document(pdf_filename) + doc_result = asyncio.run(_run_process_doc_docx()) + if doc_result is not None: + content_list, _ = doc_result + else: + with open(pdf_path, "rb") as f: + files = {"file": (pdf_filename, f, "application/pdf")} + logger.info(pdf_path) + response = requests.post(api_url, files=files, timeout=12000) + + if response.status_code != 200: + logger.error(f"❌ API 请求失败,状态码: {response.status_code}, 响应: {response.text}") + raise Exception(f"PDF 解析 API 失败: {response.status_code}") + + result = response.json() + data = result.get("data", {}) + content_list = data.get("content_list") + + logger.info(f"[{task_id}] 开始文件 {file_name} 的实体和关系抽取") + if check_cancelled_callback(): + raise InterruptedError("任务已取消") + + async def run_extraction_docx(): + return await get_md_node_relation( + content_list=content_list, + input_pdf_path=pdf_path, + Ontology=ontology, + Ontology_DESCRIPTION=ontology_desc, + Relationships=relationships, + RELATIONSHIP_TYPES=relationship_types, + NODE_TYPES=node_types, + PREFIX_URL=prefix_url, + device=device, + device_type=device_type, + ) + + final_all_entity, final_all_relation = asyncio.run(run_extraction_docx()) + merged_output_data = {"entities": final_all_entity, "relationships": final_all_relation} + + except Exception as e: + logger.error(f"[{task_id}] DOCX 处理失败: {str(e)}") + logger.error(traceback.format_exc()) + raise + finally: + pass + + # --- 处理 XLSX --- + elif file_extension in ['.xlsx']: + base_name = os.path.splitext(file_name)[0] + pdf_filename = f"{base_name}.pdf" + logger.info(f"[{task_id}] 转换 xlsx -> PDF (仅生成索引引用): {file_name}") + # 注意:原代码中这里也调用了 converter,但后续逻辑主要依赖 Excel 解析 + try: + converter.convert(file_path, output_dir=os.path.join(data_dir, "uploads_v1")) + except Exception as e: + logger.warning(f"Excel 转 PDF 失败,但不影响数据提取: {e}") + + all_entities, all_relationships = get_excel_node_relation(file_path, sheet_name="Sheet1") + + # 补充知识源信息 + for entity in all_entities: + knowledge_source = [] + qiepian = entity["properties"].get("切片") + url = f"{prefix_url}/files/uploads/{pdf_filename}" + knowledge_source.append({ + "filename": file_name, + "info": qiepian, + "url": url + }) + entity["properties"]["knowledge_source"] = knowledge_source + + merged_output_data = {"entities": all_entities, "relationships": all_relationships} + + else: + raise ValueError(f"不支持的文件类型: {file_extension}") + + # 统一取消检查 + if check_cancelled_callback(): + raise InterruptedError("任务已取消") + + # 保存缓存 (可选,保持原有逻辑) + try: + safe_fname = file_name.replace(os.sep, "_").replace(" ", "_") + cache_dir = os.path.join(data_dir, "kg_cache") + os.makedirs(cache_dir, exist_ok=True) + cache_path = os.path.join(cache_dir, f"merged_output_{task_id}_{safe_fname}.json") + with open(cache_path, "w", encoding="utf-8") as cf: + json.dump(merged_output_data, cf, ensure_ascii=False, indent=2) + logger.info(f"[{task_id}] Saved merged_output_data cache: {cache_path}") + except Exception as e: + logger.warning(f"[{task_id}] Failed to save merged_output_data cache: {e}") + + return merged_output_data["entities"], merged_output_data["relationships"] + +def check_filename_ocr(filename: str) -> Optional[str]: + """ + 根据文件名关键词判断是否需要 OCR。 + + Returns: + "ocr_true" — 文件名包含维修/操作类关键词 + "ocr_false" — 文件名包含原理/接线/总图类关键词 + None — 未命中任何关键词 + """ + #ocr_true_keywords = ["维修手册", "维修说明书", "操作使用手册", "图解目录","培训手册",""] + # ocr_false_keywords = ["原理图", "接线图", "总图","随机文件目录","安装说明书","芯线表","链接图","备品备件及工具清单"] + ocr_false_keywords = ["原理图", "接线图", "总图","连接图","线图","布置图","安装图","曲线图","标志图","综合图","结构图","基座图","型线图","展开图","编号图","剖面图","吊装图","总装图","曲线图","代号图","视界图","射角图","管路图","周界图","外形图","关系图","装配图","覆盖图","尺寸图","完工图","芯线表","明细表","接线表","编制表","值表册","线路表","矩阵表","汇总表","信息表","连接表","随机文件目录", "随机文件","备品备件","图解目录","电流图","接线图和芯线表","外形图","外形图、外部接线图、安装图","设备总图", "线路图"] + + # for kw in ocr_true_keywords: + # if kw in filename: + # return "ocr_true" + + for kw in ocr_false_keywords: + if kw in filename: + return "ocr_false" +# else: + # return "ocr_true" + + #return None + return "ocr_true" + + diff --git a/extract_util.py b/extract_util.py new file mode 100644 index 0000000..4ad138e --- /dev/null +++ b/extract_util.py @@ -0,0 +1,154 @@ + +import json +import fitz # PyMuPDF +import os +import fitz +from collections import Counter +import uuid +import re +def safe_json_loads(s: str): + try: + return json.loads(s) + except json.JSONDecodeError as e: + # 尝试修复常见问题 + s = s.replace("\\n", "\\\n").replace("\r", "\\r").replace("\t", "\\t") + # 或者直接清理非法字符 + s = re.sub(r'[\x00-\x1f\x7f]', '', s) # 移除控制字符 + try: + return json.loads(s) + except: + raise e + +def highlight_pdf_file(input_pdf_path, highlights, color=(1, 1, 0)): + """ + 在单个 PDF 文件的多个位置添加高亮注释,并返回处理后路径及最常出现的 page_idx。 + + :param input_pdf_path: 输入 PDF 文件路径(字符串) + :param highlights: 高亮区域列表,每个元素为 dict,格式: + {"page_idx": int, "bbox": [x0, y0, x1, y1]} + :param output_dir: 输出目录路径。若为 None,则使用输入文件所在目录。 + :param color: 高亮颜色,RGB 元组,范围 0~1,例如黄色 (1, 1, 0) + :return: tuple (output_pdf_path: str, most_common_page: int or None) + """ + unique_id = uuid.uuid4() + + if not highlights: + print("⚠️ 无高亮区域,跳过处理。") + return input_pdf_path, None,None + + # 提取所有有效的 page_idx 用于统计 + valid_page_indices = [] + + # 打开 PDF + doc = fitz.open(input_pdf_path) + + for item in highlights: + page_idx = item.get("page_idx") + bbox = item.get("bbox") + + # 基本校验 + if page_idx is None or bbox is None: + print(f"⚠️ 跳过高亮项(缺少 page_idx 或 bbox): {item}") + continue + if not (0 <= page_idx < doc.page_count): + print(f"⚠️ 页面索引 {page_idx} 超出范围(总页数: {doc.page_count}),跳过。") + continue + if len(bbox) != 4: + print(f"⚠️ bbox 格式错误(需 [x0,y0,x1,y1]): {bbox},跳过。") + continue + + try: + page = doc[page_idx] + highlight_annot = page.add_highlight_annot(bbox) + highlight_annot.set_colors(stroke=color) + highlight_annot.update() + valid_page_indices.append(page_idx) # 记录成功处理的 page_idx + except Exception as e: + print(f"❌ 在 page={page_idx}, bbox={bbox} 添加高亮失败: {e}") + + # 确定输出路径 + filename = os.path.basename(input_pdf_path) + base, ext = os.path.splitext(filename) + output_dir = "/app/files/uploads_v1" + + output_pdf_path = os.path.join(output_dir, f"{base}_{unique_id}{ext}") + highlight_filename = f"{base}_{unique_id}{ext}" + # 保存 PDF + doc.save(output_pdf_path, garbage=3, deflate=True) + doc.close() + + print(f"✅ 高亮完成!已保存至: {output_pdf_path}") + + # 统计最常出现的 page_idx + most_common_page = None + if valid_page_indices: + counter = Counter(valid_page_indices) + most_common_page, _ = counter.most_common(1)[0] + + return highlight_filename, most_common_page,filename + + +def get_content_bbox(data): + content = "" + highlight_list = [] + for ins in data: + if "type" not in ins: + continue + + if ins["type"] == "text": + text_content = ins.get("text", "") + content += text_content + "\n" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + highlight_list.append({ + "page_idx": page_idx, + "bbox": bbox + }) + + elif ins["type"] == "table": + table_caption = ins.get("table_caption") + table_body = ins.get("table_body") + + # 处理 table_caption:可能是 list 或 str + caption_str = "" + if table_caption: + if isinstance(table_caption, list): + caption_str = "\n".join(str(c) for c in table_caption) + else: + caption_str = str(table_caption) + + content += caption_str + "\n" + (table_body or "") + "\n" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + highlight_list.append({ + "page_idx": page_idx, + "bbox": bbox + }) + + elif ins["type"] == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + + # 关键修复:处理 image_caption 可能是 list 的情况 + if isinstance(image_caption, list): + image_caption = "\n".join(str(item) for item in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + + if image_caption or img_path: + content += image_caption + "\n" + img_path + "\n" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + highlight_list.append({ + "page_idx": page_idx, + "bbox": bbox + }) + else: + continue + + return content, highlight_list diff --git a/fault_wenjian/timeout_20260331.txt b/fault_wenjian/timeout_20260331.txt new file mode 100644 index 0000000..e02977b --- /dev/null +++ b/fault_wenjian/timeout_20260331.txt @@ -0,0 +1,4 @@ +test_超时文件.pdf +test_超时文件.pdf +file_B +file_B diff --git a/fault_wenjian/timeout_20260401.txt b/fault_wenjian/timeout_20260401.txt new file mode 100644 index 0000000..d75eebb --- /dev/null +++ b/fault_wenjian/timeout_20260401.txt @@ -0,0 +1,3 @@ +test_超时文件.pdf +122-06A0014-B01001_燃油发动马自达-维修手册.pdf +122-06A0014-B01001_燃油发动马自达-维修手册.pdf diff --git a/fault_wenjian/timeout_20260610.txt b/fault_wenjian/timeout_20260610.txt new file mode 100644 index 0000000..9d4dcd4 --- /dev/null +++ b/fault_wenjian/timeout_20260610.txt @@ -0,0 +1 @@ +163-06A0016-B01003_雷达-操作使用手册.pdf diff --git a/filename_proceess_and_kgquery.py b/filename_proceess_and_kgquery.py new file mode 100644 index 0000000..8d8c1e6 --- /dev/null +++ b/filename_proceess_and_kgquery.py @@ -0,0 +1,861 @@ +""" +PDF 用户上传接口(FastAPI) +- 处理文件名和其对应关系 +""" + +from typing import Dict, Tuple +import os +import re +from typing import Dict +from fastapi import FastAPI, HTTPException +import logging +import json +from modelsAPI.model_api import OpenaiAPI +from openai import OpenAI +from typing import Dict, List, Any + +app = FastAPI(title="PDF Upload Service") +logging.basicConfig(level=logging.INFO, format="%(asctime)s | %(levelname)s | %(name)s | %(message)s") +logger = logging.getLogger("filename_neo4j_process") + + +# ========================= +# 图方法 +# ========================= + + +def node_to_json(node): + props = dict(node) + # ks_raw = props.get("knowledge_source") + # knowledge_source = json.loads(ks_raw) if ks_raw else [] + + ks_raw = props.get("knowledge_source") + knowledge_source = [] + + if ks_raw and isinstance(ks_raw, str): + try: + ks_list = json.loads(ks_raw) + if isinstance(ks_list, list): + for ks in ks_list: + if isinstance(ks, dict): + ks.pop("info", None) + knowledge_source.append(ks) + except (json.JSONDecodeError, TypeError): + # 解析失败或类型错误时,保持 knowledge_source 为空列表 + pass + + name = props.get("名称") + props.pop("embedding", None) + props.pop("knowledge_source", None) + props.pop("name", None) # 现在安全地移除 + props.pop("fulltext", None) + if "last_updated" in props: + props["最后更新时间"] = props.pop("last_updated") + + if "created_at" in props: + props["创建时间"] = props.pop("created_at") + return { + "id": node.element_id, + "name": name, # 使用提前保存的值 + "labels": list(node.labels), + "knowledge_source": knowledge_source, + "properties": props, + } + + +def rel_to_json(rel): + props = dict(rel) + props.pop("embedding", None) + props.pop("fact_timeline", None) + return {"id": rel.element_id, "label": rel.type, "source": rel.start_node.element_id, "target": rel.end_node.element_id, "properties": props} + + +def is_simple_path(path): + """ + 判断是否为无环路径(simple path) + """ + seen = set() + for n in path.nodes: + nid = n.element_id + if nid in seen: + return False + seen.add(nid) + return True + +def build_tree(nodes: List[Dict], links: List[Dict]) -> List[Dict]: + """ + 按照固定层级构建树:舰船(根) -> 舰艇 -> 系统 -> 子系统 + 不再依赖 links 的连线,直接根据 labels 归类,彻底避免环状数据导致的死循环。 + 默认只展开第一艘舰艇的系统/子系统,其它舰艇 children 置空(前端可点击按需加载)。 + """ + # 1. 辅助函数:判断标签是否包含关键字 + def has_label(node, keyword): + labels = node.get("labels", []) + if isinstance(labels, list): + return any(keyword in lbl for lbl in labels) + return False + + # 2. 辅助函数:构建标准的树节点格式 + def make_node(node_data): + return { + "id": node_data["id"], + "name": node_data.get("name", ""), + "labels": node_data.get("labels", []), + + "properties": node_data.get("properties", {}), + "color": node_data.get("color"), + "size": node_data.get("size"), + "children": [] + } + + # 3. 将节点按层级分类存储到字典中,方便快速查找 + fleet_roots = {} # 第零层:舰船/舰号(父根节点) + ships = {} # 第一层:舰艇 + systems = {} # 第二层:系统(不含子系统) + sub_systems = {} # 第三层:子系统 + + for node in nodes: + # 注意:判断逻辑要互斥,防止"子系统"被误判为"系统" + if has_label(node, "舰船") or has_label(node, "舰号"): + fleet_roots[node["id"]] = make_node(node) + elif has_label(node, "舰艇"): + ships[node["id"]] = make_node(node) + elif has_label(node, "子系统"): + sub_systems[node["id"]] = make_node(node) + elif has_label(node, "系统"): + systems[node["id"]] = make_node(node) + else: + pass + + # 4. 组装系统 -> 子系统、舰艇 -> 系统 关系(先把完整子树挂好) + for link in links: + if link.get("label") != "包含": + continue + + src_id = link["source"] + tgt_id = link["target"] + + if src_id in ships and tgt_id in systems: + ships[src_id]["children"].append(systems[tgt_id]) + elif src_id in systems and tgt_id in sub_systems: + systems[src_id]["children"].append(sub_systems[tgt_id]) + elif src_id in ships and tgt_id in sub_systems: + ships[src_id]["children"].append(sub_systems[tgt_id]) + + # 5. 所有舰艇 children 全部保留,仅用 collapsed 标记默认折叠状态。 + # 前端读取 collapsed=False 的舰艇默认展开,其它折叠; + # 用户点击折叠的舰艇时,前端切换 collapsed 即可展示子树。 + # 只保留名称包含 "122" 的舰艇(隐藏 JZ贱 等其它分支) + #sorted_ships = sorted( + # (s for s in ships.values() if "122" in s.get("name", "")), + # key=lambda s: s.get("name", ""), + #) + sorted_ships = sorted(ships.values(), key=lambda s: s.get("name", "")) + for idx, ship in enumerate(sorted_ships): + ship["collapsed"] = (idx != 0) + + # 6. 挂载到舰船根节点;如果数据里没有舰船根,就创建一个虚拟根 + if fleet_roots: + # 取第一个舰船根节点作为父(一般场景下只有一个) + root = next(iter(fleet_roots.values())) + root["children"] = sorted_ships + return [root] + else: + virtual_root = { + "id": "__fleet_root__", + "name": "舰号", + "labels": ["舰船"], + "properties": {}, + "color": None, + "size": None, + "children": sorted_ships, + } + return [virtual_root] +def build_tree1(nodes: List[Dict], links: List[Dict]) -> List[Dict]: + """ + 从 nodes + links 构建树结构。 + - 根节点:label 包含 '舰艇' 的节点 + - 父子关系:links 中 label == '包含' 的边 (source -> target) + - 支持多棵树(多个舰艇根节点) + """ + + # 1. 建立 id -> node 的映射 + node_map: Dict[str, Dict] = {n["id"]: n for n in nodes} + + # 2. 建立 父id -> [子id列表] 的邻接表(只处理"包含"关系) + children_map: Dict[str, List[str]] = {n["id"]: [] for n in nodes} + parent_map: Dict[str, str] = {} # 子id -> 父id,用于识别根节点 + + for link in links: + if link.get("label") == "包含": + src = link["source"] + tgt = link["target"] + if src in children_map: + children_map[src].append(tgt) + if tgt not in parent_map: + parent_map[tgt] = src + + # 3. 递归构建子树 + def build_subtree(node_id: str, ancestors: set = None) -> Dict[str, Any]: + if ancestors is None: + ancestors = set() + if node_id in ancestors: + return None + ancestors.add(node_id) + node = node_map[node_id] + subtree = {"id": node_id, "name": node.get("name", ""), "labels": node.get("labels", []), "properties": node.get("properties", {}), "color": node.get("color"), "size": node.get("size"), "children": []} + current_ancestors = ancestors | {node_id} + for child_id in children_map.get(node_id, []): + child = build_subtree(child_id, current_ancestors) + if child is not None: + subtree["children"].append(child) + return subtree + + # def build_subtree(node_id: str) -> Dict[str, Any]: + # node = node_map[node_id] + # subtree = { + # "id": node_id, + # "name": node.get("name", ""), + # "labels": node.get("labels", []), + # "properties": node.get("properties", {}), + # "color": node.get("color"), + # "size": node.get("size"), + # "children": [] + # } + # for child_id in children_map.get(node_id, []): + # subtree["children"].append(build_subtree(child_id)) + # return subtree + + # 4. 找出所有根节点:label 包含 '舰艇',且没有父节点 + roots = [n["id"] for n in nodes if "舰艇" in n.get("labels", []) and n["id"] not in parent_map] + + # 5. 为每棵树构建结构,并打上树编号 + forest = [] + for i, root_id in enumerate(roots): + tree = build_subtree(root_id) + tree["tree_index"] = i # 区分不同树 + forest.append(tree) + + return forest + + +def _filter_searchable(graph: dict) -> dict: + """剥掉节点的 Searchable 标签;若剥完后 labels 为空则整体移除该节点及其关联边""" + for n in graph["nodes"]: + n["labels"] = [l for l in n.get("labels", []) if l != "Searchable"] + valid_ids = {n["id"] for n in graph["nodes"] if n["labels"]} + return { + "nodes": [n for n in graph["nodes"] if n["id"] in valid_ids], + "links": [ + l for l in graph["links"] + if l["source"] in valid_ids and l["target"] in valid_ids + ], + } + + +def build_graph_from_paths(paths): + """ + 核心公共方法 + 从 Neo4j 路径结果构建 graphData + """ + node_map: Dict[str, dict] = {} + link_map: Dict[str, dict] = {} + + def add_edge(rel): + s = rel.start_node + t = rel.end_node + + if s.element_id not in node_map: + node_map[s.element_id] = node_to_json(s) + + if t.element_id not in node_map: + node_map[t.element_id] = node_to_json(t) + + if rel.element_id not in link_map: + link_map[rel.element_id] = rel_to_json(rel) + + for record in paths: + p = record["p"] + + if not is_simple_path(p): + continue + + for r in p.relationships: + add_edge(r) + + return _filter_searchable({"nodes": list(node_map.values()), "links": list(link_map.values())}) + + +# def fetch_graph_sample(driver,limit: int = 200): +# """提取采样逻辑为可复用函数""" +# with driver.session() as session: +# result = session.run(""" +# MATCH (n) +# WITH n +# ORDER BY elementId(n) ASC +# LIMIT $limit +# MATCH (n)-[rel]->(m) +# RETURN n, rel, m +# """, limit=limit) + +# node_map, link_map = {}, {} +# for rec in result: +# n, r, m = rec["n"], rec["rel"], rec["m"] +# node_map[n.element_id] = node_to_json(n) +# node_map[m.element_id] = node_to_json(m) +# link_map[r.element_id] = rel_to_json(r) + +# return { +# "nodes": list(node_map.values()), +# "links": list(link_map.values()) +# } + +# def fetch_graph_sample(driver, limit: int = 200): +# """ +# 获取采样数据: +# 1. 选取前 $limit 个种子节点(Level 0 或 1,取决于业务定义,这里定义种子为 Level 0)。 +# 2. 对每个节点向下探索最多 3 跳。 +# 3. 每个节点对象中增加 level 字段,表示其距离种子节点的深度。 +# """ +# with driver.session() as session: +# # Cypher 逻辑: +# # - 选出种子节点 n +# # - 匹配 1-3 跳路径 +# # - 返回种子节点 n,路径 path,以及该路径的长度(即层级) +# result = session.run(""" +# MATCH (n) +# WITH n ORDER BY elementId(n) ASC LIMIT $limit +# OPTIONAL MATCH path = (n)-[*1..3]-(m) +# UNWIND nodes(path) AS x +# WITH n, path, m, COUNT(DISTINCT x) AS nodeCount +# WHERE path IS NULL OR nodeCount = LENGTH(path) + 1 +# RETURN n, path, LENGTH(path) AS depth +# """, limit=limit) + +# node_map, link_map = {}, {} + +# for rec in result: +# seed_node = rec["n"] +# path = rec["path"] +# depth = rec["depth"] or 0 # 如果没有路径,深度为 0 + +# # 1. 处理种子节点 (Level 0) +# if seed_node.element_id not in node_map: +# node_data = node_to_json(seed_node) +# node_data["level"] = 0 # 种子节点设为 0 层 +# node_map[seed_node.element_id] = node_data + +# # 2. 如果存在路径,解析路径中的所有节点和关系 +# if path: +# # 路径中的节点处理 +# # path.nodes 包含了从起始到终点的所有节点 +# for i, node in enumerate(path.nodes): +# if node.element_id not in node_map: +# node_data = node_to_json(node) +# # 层级即为该节点在当前路径中的索引 +# node_data["level"] = i +# node_map[node.element_id] = node_data +# else: +# # 如果节点已存在,保留最小的 level (即最靠近种子的距离) +# node_map[node.element_id]["level"] = min(node_map[node.element_id].get("level", 3), i) + +# # 路径中的关系处理 +# for rel in path.relationships: +# if rel.element_id not in link_map: +# link_map[rel.element_id] = rel_to_json(rel) + +# return { +# "nodes": list(node_map.values()), +# "links": list(link_map.values()) +# } + + +# def fetch_graph_sample(driver, limit=200, max_depth=3): +# with driver.session() as session: +# result = session.run(""" +# MATCH (c) +# WITH c ORDER BY elementId(c) ASC LIMIT $limit + +# MATCH path = (c)-[*0..3]-(n) +# WITH n, MIN(length(path)) AS dist +# OPTIONAL MATCH (n)-[r]-(m) + +# RETURN n, dist, r, m +# """, limit=limit) + +# node_map, link_map = {}, {} + +# for rec in result: +# n = rec["n"] +# dist = rec["dist"] +# r = rec["r"] +# m = rec["m"] + +# # ---- 节点 ---- +# nid = n.element_id +# if nid not in node_map: +# node_data = node_to_json(n) +# node_data["level"] = min(dist, 3) if dist is not None else 0 +# node_map[nid] = node_data + +# # ---- 边 ---- +# if r and m: +# mid = m.element_id +# if mid not in node_map: +# node_map[mid] = node_to_json(m) + +# link_map.setdefault(r.element_id, rel_to_json(r)) + +# return { +# "nodes": list(node_map.values()), +# "links": list(link_map.values()) +# } + +def fetch_graph_sample(driver): + """ + 查询所有舰艇及其关联的系统和子系统 + 路径结构:(舰艇) -> (系统) -> (子系统) + """ + + with driver.session() as session: + # ========================= + # 统一查询:舰艇 -> 系统 -> 子系统 + # ========================= + # 逻辑说明: + # 1. MATCH (ship:舰艇):选中所有舰艇 + # 2. -[*1..3]->(target):查找深度为 1 到 3 的路径 + # - 深度 1:舰艇 -> 系统 + # - 深度 2:舰艇 -> 系统 -> 子系统 + # 3. WHERE target:系统 OR target:子系统:确保终点是我们关心的节点类型 + # (防止查询出其他无关的深层节点) + + query = """ + MATCH path = (ship:舰艇)-[*1..3]->(target) + WHERE target:系统 OR target:子系统 + RETURN path + """ + + result = session.run(query) + + # ========================= + # 解析 paths + # ========================= + all_nodes = {} + all_links = {} + + for record in result: + path = record["path"] + + # 解析节点 + for node in path.nodes: + # 兼容 ID 获取 + node_key = node.element_id if hasattr(node, 'element_id') else node.id + if node_key not in all_nodes: + all_nodes[node_key] = node_to_json(node) + + # 解析关系 + for rel in path.relationships: + rel_key = rel.element_id if hasattr(rel, 'element_id') else rel.id + if rel_key not in all_links: + all_links[rel_key] = rel_to_json(rel) + + return _filter_searchable({ + "nodes": list(all_nodes.values()), + "links": list(all_links.values()) + }) +def fetch_graph_sample1(driver): + """ + 查找路径: + 1. 优先:舰艇 -> 子系统 + 2. fallback:舰艇 -> 系统 + + 注意:根据数据库实际结构,使用 Label (:舰艇, :子系统) 进行匹配, + 而不是 WHERE category = '...' + """ + + # 定义采样数量 + SAMPLE_LIMIT = 400 + + with driver.session() as session: + # ========================= + # 第一阶段:舰艇 -> 子系统 + # ========================= + # 修改点:直接使用 (:舰艇) 和 (:子系统) 标签匹配,去掉 WHERE 子句 + result = session.run( + """ + MATCH (ship:舰艇) + WITH ship LIMIT $limit + + MATCH path = (ship)-[*1..3]->(sub:子系统) + RETURN path + """, + limit=SAMPLE_LIMIT, + ) + + paths = [record["path"] for record in result] + + # ========================= + # fallback:舰艇 -> 系统 + # ========================= + if not paths: + # 修改点:直接使用 (:舰艇) 和 (:系统) 标签匹配 + result = session.run( + """ + MATCH (ship:舰艇) + WITH ship LIMIT $limit + + MATCH path = (ship)-[*1..2]->(sys:系统) + RETURN path + """, + limit=SAMPLE_LIMIT, + ) + + paths = [record["path"] for record in result] + + # ========================= + # 解析 paths + # ========================= + all_nodes = {} + all_links = {} + + for path in paths: + # 节点 + for node in path.nodes: + # 兼容 Neo4j 5.x (element_id) 和 4.x (id) + node_key = node.element_id if hasattr(node, "element_id") else node.id + if node_key not in all_nodes: + all_nodes[node_key] = node_to_json(node) + + # 关系 + for rel in path.relationships: + rel_key = rel.element_id if hasattr(rel, "element_id") else rel.id + if rel_key not in all_links: + all_links[rel_key] = rel_to_json(rel) + + return {"nodes": list(all_nodes.values()), "links": list(all_links.values())} + + +# ============================= +# 文件名处理方法 +# ============================= + +BASE_DIR = os.path.dirname(os.path.abspath(__file__)) +TREE_JSON_PATH = os.path.join(BASE_DIR, "tree_data.json") + + +def _load_tree_data() -> Dict: + # 注意:实际运行时请确保 result.json 存在,此处仅为代码结构展示 + if not os.path.exists(TREE_JSON_PATH): + return {} + with open(TREE_JSON_PATH, "r", encoding="utf-8") as f: + return json.load(f) + + +def _resolve_ship_root(data: Dict, ship_code: str) -> Dict: + raw = data.get(ship_code) + if not isinstance(raw, dict): + return {} + + # 结构 1:直接是节点 {"code","name","children"} + if {"code", "name", "children"}.issubset(raw.keys()): + return raw + + # 结构 2:包装层 {"101": {...root node...}} + if ship_code in raw and isinstance(raw[ship_code], dict): + node = raw[ship_code] + if {"code", "name", "children"}.issubset(node.keys()): + return node + + # 兜底:取第一个 node-like 值 + for value in raw.values(): + if isinstance(value, dict) and {"code", "name", "children"}.issubset(value.keys()): + return value + + return {} + + +def _longest_common_substring_len(a: str, b: str) -> int: + if not a or not b: + return 0 + # 优化:确保 a 是较短的字符串以节省空间(可选),原逻辑保持不动也没问题 + dp = [0] * (len(b) + 1) + best = 0 + for i in range(1, len(a) + 1): + prev = 0 + for j in range(1, len(b) + 1): + temp = dp[j] + if a[i - 1] == b[j - 1]: + dp[j] = prev + 1 + if dp[j] > best: + best = dp[j] + else: + dp[j] = 0 + prev = temp + return best + + +def _match_level4_tool(filename_text: str, device_node: Dict) -> Tuple[str, str]: + """ + 匹配 Level 4 零件。 + 规则:如果文件名与 Level 3 (设备名) 的最大共同字符串长度 >= 与任何 Level 4 (零件名) 的长度, + 则只匹配到 Level 3,返回空。 + 只有当 Level 4 的匹配度严格高于 Level 3 时,才返回 Level 4 信息。 + """ + children = device_node.get("children") or {} + + # 1. 计算文件名与当前设备 (Level 3) 名称的匹配度 + device_name = str(device_node.get("name") or "") + level3_score = _longest_common_substring_len(filename_text, device_name) + + best_name = "" + best_code = "" + best_score = 0 # 记录 Level 4 中的最佳得分 + + # 2. 遍历 Level 4 子节点 + for child in children.values(): + tool_name = str(child.get("name") or "") + tool_code = str(child.get("code") or "") + + score = _longest_common_substring_len(filename_text, tool_name) + + # 关键修改:只有当 Level 4 的得分严格大于 Level 3 的得分时,才视为有效匹配 + # 并且要比当前找到的其他 Level 4 更好 + if score > level3_score and score > best_score: + best_score = score + best_name = tool_name + best_code = tool_code + + # 如果没有找到比 Level 3 匹配度更高的 Level 4,则返回空 + if best_score <= level3_score: + return "", "" + + return best_name, best_code + + +def process_filename(filename: str) -> Dict[str, str]: + name, _ = os.path.splitext(os.path.basename(filename)) + parts = re.split(r"[_-]", name) + + xian_number = "" + level_1_system_name = "" + level_2_system_name = "" + device_name = "" + tool_name = "" + tool_code = "" + + if not parts: + return {} + + xian_number_code = parts[0].strip() + level1_code = "" + level2_code = "" + device_code = "" + + if len(parts) > 1: + part = parts[1].strip() + # 防止索引越界 + if len(part) < 2: + return {} + + level1_code = part[:2] + level2_code = part[2:4] if len(part) > 2 else "" + device_code = part[4:] if len(part) > 4 else "" + # 若 parts[2] 存在,则用 parts[2] 作为 device_code(支持 122-06A0014-B01001_发动机 格式) + if len(parts) > 2: + device_code_alt = parts[2].strip() + if device_code_alt: + device_code = device_code_alt + + data = _load_tree_data() + root = _resolve_ship_root(data, xian_number_code) + if not root: + return {} + + xian_number = root.get("name", "") + + # 一级 + s1 = root.get("children", {}).get(level1_code) + if s1: + level_1_system_name = s1.get("name", "") + + # 二级 + s2 = s1.get("children", {}).get(level2_code) + if s2: + level_2_system_name = s2.get("name", "") + + # 三级设备 + device = s2.get("children", {}).get(device_code) + if device: + device_name = device.get("name", "") + # 若存在 level4,匹配与文件名最大相同字符串的零件 + # 内部已包含逻辑:如果设备名匹配度更高,则不返回零件 + tool_name, tool_code = _match_level4_tool(name, device) + + return { + "Xian_Number": xian_number, + "Xian_Number_code": xian_number_code, + "Level_1_System_Name": level_1_system_name, + "level1_code": level1_code, + "Level_2_System_Name": level_2_system_name, + "level2_code": level2_code, + "Device_Name": device_name, + "device_code": device_code, + "tool_name": tool_name, + "tool_code": tool_code, + } + + +def get_entity(filename): + result = process_filename(filename) + entities = [] + relationships = [] + low_level = "" + + if result: + xian_number = result.get("Xian_Number") + xian_number_code = result.get("Xian_Number_code") + level_1_system_name = result.get("Level_1_System_Name") + level1_code = result.get("level1_code") + level_2_system_name = result.get("Level_2_System_Name") + level2_code = result.get("level2_code") + device_name = result.get("Device_Name") + device_code = result.get("device_code") + tool_name = result.get("tool_name") + tool_code = result.get("tool_code") + + if xian_number: + entities.append( + { + "type": "舰艇", + "properties": { + "名称": xian_number, + "舷号": xian_number_code, + }, + } + ) + low_level = xian_number + + if level_1_system_name: + entities.append( + { + "type": "系统", + "properties": { + "名称": level_1_system_name, + "系统编码": level1_code, + }, + } + ) + low_level = level_1_system_name + + if xian_number and level_1_system_name: + relationships.append( + { + "type": "包含", + "from_entity": xian_number, + "to_entity": level_1_system_name, + } + ) + + if level_2_system_name: + entities.append( + { + "type": "子系统", + "properties": { + "名称": level_2_system_name, + "子系统编码": level2_code, + }, + } + ) + low_level = level_2_system_name + + if level_1_system_name and level_2_system_name: + relationships.append( + { + "type": "包含", + "from_entity": level_1_system_name, + "to_entity": level_2_system_name, + } + ) + + if device_name: + entities.append( + { + "type": "设备", + "properties": { + "名称": device_name, + "设备编码": device_code, + }, + } + ) + low_level = device_name + + if level_2_system_name and device_name: + relationships.append( + { + "type": "包含", + "from_entity": level_2_system_name, + "to_entity": device_name, + } + ) + + if tool_name: + entities.append( + { + "type": "零件", + "properties": { + "名称": tool_name, + "零件编码": tool_code, + }, + } + ) + low_level = tool_name + + if device_name and tool_name: + relationships.append( + { + "type": "包含", + "from_entity": device_name, + "to_entity": tool_name, + } + ) + + final_result = { + "entities": entities, + "relationships": relationships, + "low_level": low_level, + } + + return final_result + + +# 示例测试逻辑(非必须,仅供验证) +if __name__ == "__main__": + # 阀控蓄电池脉冲式快速充电装置 + test_list = [ + "777-11A1014-B01001_发动机-维修手册.pdf", + + ] + for i in test_list: + result = get_entity(i) + lower_entity = result.get("low_level") + print(result) + print(lower_entity) + #from neo4j import GraphDatabase + + #NEO4J_URI = "bolt://192.168.0.111:7687" + #NEO4J_USER = os.getenv("NEO4J_USER", "neo4j") + #NEO4J_PASSWORD = os.getenv("NEO4J_PASSWORD","zdht123@") # 不设默认值,强制要求提供 + #NEO4J_DATABASE = os.getenv("NEO4J_DATABASE", "neo4j") + #driver = GraphDatabase.driver( + # NEO4J_URI, + # auth=(NEO4J_USER, NEO4J_PASSWORD), + # database=NEO4J_DATABASE + #) + #res = fetch_graph_sample(driver) + #print(res) + + + + + + diff --git a/fileparse_util.py b/fileparse_util.py new file mode 100644 index 0000000..38c9efb --- /dev/null +++ b/fileparse_util.py @@ -0,0 +1,268 @@ +import os +import json +import base64 +import asyncio +import logging +from typing import Any, Optional, Tuple, Dict +import aiofiles # pip install aiofiles +from config import SEARCH_DIR,IMAGE_DIR +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + + +async def find_and_read_content_list( + directory: str, + original_filename: str, + encoding: str = 'utf-8' +) -> Tuple[Optional[list], Optional[str]]: + """根据原始文件名查找并读取对应的 _content_list.json 文件。""" + file_name, _ = os.path.splitext(os.path.basename(original_filename)) + target_filename = f"{file_name}_content_list.json" + logger.info(f"正在查找文件: {target_filename}") + + # os.walk 没有原生 async 版本,放到线程里执行避免阻塞事件循环 + def _walk_for_file(): + for root, _, files in os.walk(directory): + if target_filename in files: + return os.path.join(root, target_filename) + return None + + file_path = await asyncio.to_thread(_walk_for_file) + if file_path is None: + return None, None + + try: + async with aiofiles.open(file_path, 'r', encoding=encoding) as f: + text = await f.read() + # JSON 解析是 CPU 操作,大文件可考虑放线程 + return json.loads(text), file_path + except json.JSONDecodeError: + logger.error(f"文件 {file_path} 不是有效的 JSON 格式。") + return None, None + except Exception as e: + logger.error(f"读取文件 {file_path} 时发生错误: {e}") + return None, None + + +def find_image_record(content_list: Any, image_filename: str) -> Optional[dict]: + """Find an image record by the basename stored in ``img_path``.""" + if not isinstance(content_list, list) or not image_filename: + return None + + target_name = os.path.basename(str(image_filename).strip().replace('\\', '/')) + if not target_name: + return None + + for item in content_list: + if not isinstance(item, dict) or item.get('type') != 'image': + continue + + img_path = item.get('img_path') + if isinstance(img_path, str): + path_name = os.path.basename(img_path.strip().replace('\\', '/')) + if path_name == target_name: + return item + + + return None + + +async def find_image_record_by_pdf( + directory: str, + pdf_filename: str, + image_filename: str, + encoding: str = 'utf-8', +) -> Optional[dict]: + """Find an image record from the content list matching a PDF filename.""" + content_list, _ = await find_and_read_content_list( + directory, pdf_filename, encoding=encoding + ) + return find_image_record(content_list, image_filename) + + +async def extract_image_caption( + search_directory: str, + pdf_filename: str, + image_filename: str, +) -> list[str]: + """?? PDF ??????????? image_caption?""" + image_record = await find_image_record_by_pdf( + directory=search_directory, + pdf_filename=pdf_filename, + image_filename=image_filename, + ) + + if not image_record: + return [] + + image_caption = image_record.get("image_caption", []) + if isinstance(image_caption, str): + return [image_caption] if image_caption.strip() else [] + if isinstance(image_caption, list): + return [str(item).strip() for item in image_caption if str(item).strip()] + return [] + + +async def find_and_read_md_file( + directory: str, + original_filename: str, + encoding: str = 'utf-8' +) -> Tuple[Optional[str], Optional[str]]: + """Find and read the Markdown file matching the uploaded document basename.""" + file_name, _ = os.path.splitext(original_filename) + target_filename = f"{file_name}.md" + logger.info(f"正在查找 Markdown 文件: {target_filename}") + + def _walk_for_file(): + for root, _, files in os.walk(directory): + if target_filename in files: + return os.path.join(root, target_filename) + return None + + file_path = await asyncio.to_thread(_walk_for_file) + if file_path is None: + return None, None + + try: + async with aiofiles.open(file_path, 'r', encoding=encoding, errors='ignore') as f: + return await f.read(), file_path + except Exception as e: + logger.error(f"读取 Markdown 文件 {file_path} 时发生错误: {e}") + return None, None + + +def extract_all_jpg_filenames(doc_data: list) -> set: + """从文档数据中提取所有 .jpg 图片的纯文件名。纯 CPU 操作,不需要 async。""" + result_set = set() + for item in doc_data: + if 'img_path' in item and item['img_path']: + img_path = item['img_path'] + if img_path.endswith('.jpg'): + result_set.add(os.path.basename(img_path)) + return result_set + + +async def _encode_one_image( + img_file: str, + local_image_dir: str, + mime_map: dict, +) -> Tuple[str, Optional[str]]: + """编码单张图片,返回 (文件名, data_uri 或 None)。""" + img_path = os.path.join(local_image_dir, img_file) + if not os.path.isfile(img_path): + logger.warning(f"图片不存在: {img_path}") + return img_file, None + + try: + async with aiofiles.open(img_path, "rb") as f: + img_bytes = await f.read() + # base64 编码是 CPU 操作,小文件直接做即可;大文件可放线程 + img_base64 = base64.b64encode(img_bytes).decode('utf-8') + ext = img_file.lower().rsplit('.', 1)[-1] + mime_type = f"image/{mime_map.get(ext, 'png')}" + return img_file, f"data:{mime_type};base64,{img_base64}" + except Exception as e: + logger.error(f"编码图片失败 {img_file}: {str(e)}") + return img_file, None + + +async def encode_images_to_base64( + local_image_dir: str, + referenced_images: set, + concurrency: int = 32, +) -> Dict[str, str]: + """并发将引用的图片编码为 base64。""" + if not os.path.exists(local_image_dir) or not referenced_images: + return {} + + mime_map = {'jpg': 'jpeg', 'jpeg': 'jpeg', 'png': 'png', 'gif': 'gif', 'webp': 'webp'} + + # 用 Semaphore 限制并发数,避免一次性打开几百个文件句柄 + sem = asyncio.Semaphore(concurrency) + + async def _bounded(img_file: str): + async with sem: + return await _encode_one_image(img_file, local_image_dir, mime_map) + + results = await asyncio.gather(*(_bounded(f) for f in referenced_images)) + return {name: data for name, data in results if data is not None} + + +async def process_document( + input_file_name: str, + local_image_dir: Optional[str] = None, + concurrency: int = 32, +) -> Optional[Tuple[list, Dict[str, str], Optional[str]]]: + """ + 异步处理文档:查找 content_list.json,提取图片引用,并发编码为 base64。 + + Args: + input_file_name: 原始文件名(如 "xxx.pdf") + search_dir: 搜索 _content_list.json 的根目录 + local_image_dir: 图片所在目录,None 则自动推断 + concurrency: 图片编码的并发数上限,默认 32 + + Returns: + 成功: (content_list, images_dict, md_content) + 失败: None + """ + search_dir = SEARCH_DIR + content, content_path = await find_and_read_content_list(search_dir, input_file_name) + if content is None: + logger.error("❌ 未找到指定的 _content_list.json 文件。") + return None + + logger.info(f"✅ 找到文件: {content_path}") + logger.info(f"内容类型: {type(content).__name__}, 长度: {len(str(content))}") + + md_content, md_path = await find_and_read_md_file(search_dir, input_file_name) + if md_content is None: + logger.info("未找到对应的 Markdown 文件。") + else: + logger.info(f"找到 Markdown 文件: {md_path}") + logger.info(f"Markdown 内容长度: {len(md_content)}") + + if local_image_dir is None: + local_image_dir = os.path.join(os.path.dirname(content_path), "images") + logger.info(f"图片目录: {local_image_dir}") + + referenced_images = extract_all_jpg_filenames(content) + logger.info(f"引用图片数量: {len(referenced_images)}") + + images_dict = await encode_images_to_base64( + local_image_dir, referenced_images, concurrency=concurrency + ) + logger.info(f"成功编码 {len(images_dict)} 张图片") + + return content, images_dict, md_content + + +async def main(): + result = await process_document( + input_file_name="163-06A0014-B01001_发动机-维修手册.pdf", + concurrency=32, + ) + + if result is None: + return 1 + + content, images_dict, md_content = result + print(f"\n=== 处理完成 ===") + print(f"文档段落数: {len(content)}") + print(f"图片数量: {len(images_dict)}") + if images_dict: + first_key = next(iter(images_dict)) + print(f"示例图片 [{first_key}]: {images_dict[first_key][:80]}...") + return 0 + + +if __name__ == "__main__": + result = asyncio.run( + extract_image_caption( + r"E:\ZKYNLP\Hjunproject\project0506\kgrag", + "163-06A0014-B01001_发动机-维修手册.pdf", + "23fa41fea5e5b5458d6f7df3f8e7e8033b6665bd23203946646651c3e56c2da7.jpg", + ) + ) + print(result) + diff --git a/flow/__init__.py b/flow/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/flow/main.py b/flow/main.py new file mode 100644 index 0000000..e58e934 --- /dev/null +++ b/flow/main.py @@ -0,0 +1,15 @@ +from database.milvus_api import Milvus_Database +from modelsAPI.model_api import get_embeddings + +async def autorag_flow(query,milvus_db,collection_name,top_k=5): + query_vector = get_embeddings(list(query)) + search_results = milvus_db.search(collection_name=collection_name,query_vector=query_vector, top_k=top_k) + + search_prompt="""你作为一个由中科院的资深文档问答专家,请你从以下文本信息中选取与用户问题相关的内容作为参考: + ----- + 文本信息:{context} + ----- + 请你仔细思考后用中文回答用户的问题,如果文本中没有关于问题的答案,则直接回答 文档中没有相关内容 + 用户提问:{query} + 你的回答:""" + \ No newline at end of file diff --git a/font/DejaVuMathTeXGyre.ttf b/font/DejaVuMathTeXGyre.ttf new file mode 100644 index 0000000..8e32ceb Binary files /dev/null and b/font/DejaVuMathTeXGyre.ttf differ diff --git a/font/DejaVuSans-Bold.ttf b/font/DejaVuSans-Bold.ttf new file mode 100644 index 0000000..06db62c Binary files /dev/null and b/font/DejaVuSans-Bold.ttf differ diff --git a/font/DejaVuSans-BoldOblique.ttf b/font/DejaVuSans-BoldOblique.ttf new file mode 100644 index 0000000..802137f Binary files /dev/null and b/font/DejaVuSans-BoldOblique.ttf differ diff --git a/font/DejaVuSans-ExtraLight.ttf b/font/DejaVuSans-ExtraLight.ttf new file mode 100644 index 0000000..0c92b97 Binary files /dev/null and b/font/DejaVuSans-ExtraLight.ttf differ diff --git a/font/DejaVuSans-Oblique.ttf b/font/DejaVuSans-Oblique.ttf new file mode 100644 index 0000000..6c5e38a Binary files /dev/null and b/font/DejaVuSans-Oblique.ttf differ diff --git a/font/DejaVuSans.ttf b/font/DejaVuSans.ttf new file mode 100644 index 0000000..2fbbe69 Binary files /dev/null and b/font/DejaVuSans.ttf differ diff --git a/font/DejaVuSansCondensed-Bold.ttf b/font/DejaVuSansCondensed-Bold.ttf new file mode 100644 index 0000000..41955a1 Binary files /dev/null and b/font/DejaVuSansCondensed-Bold.ttf differ diff --git a/font/DejaVuSansCondensed-BoldOblique.ttf b/font/DejaVuSansCondensed-BoldOblique.ttf new file mode 100644 index 0000000..f1101e2 Binary files /dev/null and b/font/DejaVuSansCondensed-BoldOblique.ttf differ diff --git a/font/DejaVuSansCondensed-Oblique.ttf b/font/DejaVuSansCondensed-Oblique.ttf new file mode 100644 index 0000000..a61b0f9 Binary files /dev/null and b/font/DejaVuSansCondensed-Oblique.ttf differ diff --git a/font/DejaVuSansCondensed.ttf b/font/DejaVuSansCondensed.ttf new file mode 100644 index 0000000..49226d9 Binary files /dev/null and b/font/DejaVuSansCondensed.ttf differ diff --git a/font/DejaVuSansMono-Bold.ttf b/font/DejaVuSansMono-Bold.ttf new file mode 100644 index 0000000..b210eb5 Binary files /dev/null and b/font/DejaVuSansMono-Bold.ttf differ diff --git a/font/DejaVuSansMono-BoldOblique.ttf b/font/DejaVuSansMono-BoldOblique.ttf new file mode 100644 index 0000000..3211064 Binary files /dev/null and b/font/DejaVuSansMono-BoldOblique.ttf differ diff --git a/font/DejaVuSansMono-Oblique.ttf b/font/DejaVuSansMono-Oblique.ttf new file mode 100644 index 0000000..ff83b15 Binary files /dev/null and b/font/DejaVuSansMono-Oblique.ttf differ diff --git a/font/DejaVuSansMono.ttf b/font/DejaVuSansMono.ttf new file mode 100644 index 0000000..041cffc Binary files /dev/null and b/font/DejaVuSansMono.ttf differ diff --git a/font/DejaVuSerif-Bold.ttf b/font/DejaVuSerif-Bold.ttf new file mode 100644 index 0000000..8162112 Binary files /dev/null and b/font/DejaVuSerif-Bold.ttf differ diff --git a/font/DejaVuSerif-BoldItalic.ttf b/font/DejaVuSerif-BoldItalic.ttf new file mode 100644 index 0000000..3cb7fce Binary files /dev/null and b/font/DejaVuSerif-BoldItalic.ttf differ diff --git a/font/DejaVuSerif-Italic.ttf b/font/DejaVuSerif-Italic.ttf new file mode 100644 index 0000000..a05e0cb Binary files /dev/null and b/font/DejaVuSerif-Italic.ttf differ diff --git a/font/DejaVuSerif.ttf b/font/DejaVuSerif.ttf new file mode 100644 index 0000000..1b62977 Binary files /dev/null and b/font/DejaVuSerif.ttf differ diff --git a/font/DejaVuSerifCondensed-Bold.ttf b/font/DejaVuSerifCondensed-Bold.ttf new file mode 100644 index 0000000..2b0c285 Binary files /dev/null and b/font/DejaVuSerifCondensed-Bold.ttf differ diff --git a/font/DejaVuSerifCondensed-BoldItalic.ttf b/font/DejaVuSerifCondensed-BoldItalic.ttf new file mode 100644 index 0000000..00d9035 Binary files /dev/null and b/font/DejaVuSerifCondensed-BoldItalic.ttf differ diff --git a/font/DejaVuSerifCondensed-Italic.ttf b/font/DejaVuSerifCondensed-Italic.ttf new file mode 100644 index 0000000..6860297 Binary files /dev/null and b/font/DejaVuSerifCondensed-Italic.ttf differ diff --git a/font/DejaVuSerifCondensed.ttf b/font/DejaVuSerifCondensed.ttf new file mode 100644 index 0000000..321c8b9 Binary files /dev/null and b/font/DejaVuSerifCondensed.ttf differ diff --git a/font/simsun.ttf b/font/simsun.ttf new file mode 100644 index 0000000..e0115ab Binary files /dev/null and b/font/simsun.ttf differ diff --git a/generate_summary.py b/generate_summary.py new file mode 100644 index 0000000..5e00026 --- /dev/null +++ b/generate_summary.py @@ -0,0 +1,142 @@ +""" +文件概述生成工具 +把 wiki_engine 的文档概述能力独立出来 +输入:markdown 格式的文件内容 +输出:文件概述(SUMMARY 行 + markdown 正文) +支持并发 +""" +import asyncio +from typing import List, Optional +from config import LLM_CONFIG +from openai import AsyncOpenAI + + +# ==================== 配置 ==================== +_MAX_CONCURRENCY = 8 # 最大并发数 + +_client: Optional[AsyncOpenAI] = None +_semaphore: Optional[asyncio.Semaphore] = None + + +def _get_client() -> AsyncOpenAI: + """获取或创建 AsyncOpenAI 单例客户端""" + global _client + if _client is None: + _client = AsyncOpenAI(api_key=LLM_CONFIG['api_key'], base_url=LLM_CONFIG['base_url']) + return _client + + +def _get_semaphore() -> asyncio.Semaphore: + """获取或创建并发信号量""" + global _semaphore + if _semaphore is None: + _semaphore = asyncio.Semaphore(_MAX_CONCURRENCY) + return _semaphore + + +# ==================== Prompt(与 wiki_builder.py 的 WIKI_SUMMARY_PROMPT 一致,仅去掉 extracted_slugs 相关部分) ==================== +SUMMARY_PROMPT = """You are a wiki editor. Given the following document content, create a structured wiki summary page in Markdown format. + + + +{content} + + + + +1. The FIRST line of your output MUST be: SUMMARY: {{one sentence, 15-40 words, describing what this document is about for wiki index listing}} +2. Create a concise but useful document-level summary. +3. Include the document's main subject, scope, important procedures, standards, systems, equipment, tables, fields. +4. Do NOT invent facts. Stay grounded in the document content. +5. Write in Chinese. +6. If the content is empty or has no substantive information, output exactly: "SUMMARY: No textual content was extractable from this document." followed by a brief note. + + +Output the SUMMARY line first, then the Markdown content. Do not include any other preamble.""" + + +async def generate_summary(content: str) -> str: + """ + 从 markdown 内容生成文件概述 + + Args: + content: markdown 格式的文件内容 + + Returns: + 文件概述(SUMMARY 行 + markdown 正文) + """ + if not content or not content.strip(): + return "" + + prompt = SUMMARY_PROMPT.format(content=content) + client = _get_client() + + async with _get_semaphore(): + try: + response = await client.chat.completions.create( + model=LLM_CONFIG['model'], + messages=[ + {"role": "system", "content": "You are a grounded wiki editor. Do not invent facts."}, + {"role": "user", "content": prompt}, + ], + temperature=0.1, + max_tokens=LLM_CONFIG['max_tokens'], + stream=False, + extra_body={"chat_template_kwargs": {"enable_thinking": False}}, + ) + return (response.choices[0].message.content or "").strip() + except Exception as exc: + print(f"[generate_summary] 概述生成失败: {exc}") + return "" + + +async def generate_summaries(contents: List[str]) -> List[str]: + """ + 并发生成多个文件的概述 + + Args: + contents: markdown 格式的文件内容列表 + + Returns: + 文件概述列表,顺序与输入一致 + """ + return await asyncio.gather(*(generate_summary(c) for c in contents)) + + +if __name__ == "__main__": +# import sys + from pathlib import Path + +# if len(sys.argv) > 1: +# with open(sys.argv[1], "r", encoding="utf-8") as f: +# test_content = f.read() +# else: +# test_content = """ +# # 船舶动力系统维护规程 + +# ## 概述 +# 本文档详细介绍了船舶动力系统的日常维护和故障处理流程。 + +# ## 发动机日常检查 +# - 润滑油位检查:每日检查发动机润滑油位,保持在标尺正常范围 +# - 冷却液位检查:确保冷却系统液位正常,无泄漏 +# - 皮带张紧度:检查传动皮带张紧度,过松或过紧均需调整 + +# ## 冷却系统维护 +# 定期清洗热交换器,检查水泵密封性,更换老化管路。 + +# ## 故障诊断流程 +# 1. 现象观察:记录故障现象和发生条件 +# 2. 数据采集:收集运行参数和报警信息 +# 3. 原因分析:对照标准参数分析故障原因 +# 4. 处理方案:制定维修方案并执行 + +# ## 安全注意事项 +# 所有维护操作必须在停机状态下进行,操作人员需佩戴防护装备。 +# """ + md_path = Path(r"E:\ZKYNLP\Hjunproject\project0506\kgrag\船舶主机燃油泵自动控制系统故障树分析.md") + with open(md_path, "r", encoding="utf-8") as f: + test_content = f.read() + + result = asyncio.run(generate_summary(test_content)) + print(result) diff --git a/get_node_relationship.py b/get_node_relationship.py new file mode 100644 index 0000000..fd22817 --- /dev/null +++ b/get_node_relationship.py @@ -0,0 +1,1171 @@ +from modelsAPI.model_api import OpenaiAPI +import fitz +import uuid +from collections import defaultdict,Counter +from openai import OpenAI +from typing import List, Dict +import json +from langchain_text_splitters import MarkdownHeaderTextSplitter, CharacterTextSplitter + +#表格类实体、关系抽取 +def get_nodes_relation_table(data): + + all_entity_records = [] + relationships = [] + for ins in data: + sr = ins.get("structured_result") + + # ✅ 关键修复:跳过 structured_result 为 None 或非 dict 的项 + if not isinstance(sr, dict): + print(f"⚠️ 跳过无效结构化结果(chunk_index={ins.get('chunk_index')}): {sr}") + continue + if ins["structured_result"]["table_type"] == "组成表": + entity_type = "设备" + entity = ins["structured_result"].get("related_entity", "").strip() + cow = ins["structured_result"].get("rows", []) + + if not entity: + print(f"⚠️ 跳过:父设备名称为空,切片: {ins['input_snippet'][:100]}") + continue + + # 生成父设备 embedding(可选:失败则跳过或设为 None) + embedding = OpenaiAPI.generate_embedding(entity) + if embedding is None: + part_embedding = "" + + # === 1. 创建设备实体 === + device_record = { + "type": entity_type, + "name": entity, + "properties": { + "名称": entity, + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "", + "切片": ins["input_snippet"], + "embedding": embedding # 可能为 None,需下游兼容 + } + } + all_entity_records.append(device_record) + + # === 2. 处理零部件 === + for row in cow: + if not isinstance(row, dict): + print(f"⚠️ 跳过非字典行: {repr(row)}") + continue + + entity_name = ( + row.get("设备名称", "").strip() or + row.get("组成部分", "").strip() or + row.get("名称", "").strip() + ) + if not entity_name: + continue + + # 生成零部件 embedding + part_embedding = OpenaiAPI.generate_embedding(entity_name) + if part_embedding is None: + part_embedding = "" + + attributes = { + "名称": entity_name, + "型号": "", + "技术责任单位": "", + "生产单位": "", + "切片": ins["input_snippet"], + "embedding": part_embedding + } + + # 补充其他字段 + for key, value in row.items(): + if key in ("设备名称", "组成部分", "名称"): + continue + clean_value = value.strip() if isinstance(value, str) else value + attributes[key] = clean_value + + part_record = { + "type": "零部件", + "name": entity_name, + "properties": attributes + } + all_entity_records.append(part_record) + + # ✅ 修正关系方向:父设备 → 包含 → 零部件 + relationships.append({ + "type": "包含", + "from_entity": entity, # 父设备 + "to_entity": entity_name # 零部件 + }) + elif ins["structured_result"]["table_type"] == "维修项目表" : + entity_type = "维修项目" + relationentity = ins["structured_result"]["related_entity"] # 父设备名,如 "通信风冷设备" + merger = [] + + if relationentity == "无": + merger = ins["structured_result"]["rows"] + else: + input_snippet = ins["input_snippet"] + # for row in ins["structured_result"]["rows"]: + merged = {} + + for row in ins["structured_result"]["rows"]: + for key, value in row.items(): + # 如果值是字符串且看起来像 JSON 列表(以 '[' 开头),尝试解析 + if isinstance(value, str) and value.strip().startswith('['): + try: + merged[key] = json.loads(value) + except json.JSONDecodeError: + # 如果解析失败,保留原字符串(可选) + merged[key] = value + else: + merged[key] = value + merged["切片"] = input_snippet + + if "维修项目编号" in merged: + wxnumber = merged["维修项目编号"] + # 后续处理... + else: + # 处理键不存在的情况 + continue # 或者设置默认值 + if "维修级别" in ins and "组成编码" in ins: + for ins in merger: + # print(ins) + # print(11111111111111111) + if ins["维修级别"] and ins["组成编码"]: + if wxnumber == ins['维修级别']: + merged['维修级别'] = ins['维修级别'] + else: + continue + # === 1. 创建设备实体 === + wxproject_record = { + "type": entity_type, + "name": merged["维修项目"], + "properties": merged + } + + embedding = OpenaiAPI.generate_embedding(merged["名称"]) + merged["embedding"] = embedding + all_entity_records.append(wxproject_record) + relationships.append({ + "type": "包含", + "from_entity": merged["名称"], # 父设备 + "to_entity": merged["维修项目"] # 当前零部件 + }) + + + + for item in data: # 改名:避免冲突 + wxproject = item.get("维修项目", "") # 统一提前获取,避免未定义 + input_snippet = item["input_snippet"] + + if item["structured_result"]["table_type"] == "常见故障表": + entity_type = "故障" + relaentity = item["structured_result"]["related_entity"] + + # 注意:'故障现象' 和 '故障原因' 不在 item 顶层,而在 rows 的每个元素中 + # 所以不需要在外层做 if "故障现象" in item 这种判断! + + rows = item["structured_result"].get("rows", []) + gzproject_record = {} + + + for row in rows: # 使用新变量名 row + # 确保 row 包含所需字段 + if "故障现象" in row and "故障原因" in row: + guzhangxianx = row["故障现象"] + embedding = OpenaiAPI.generate_embedding(guzhangxianx) + guzhangreason = row["故障原因"] + wxproject = row["维修项目"] + gzproject_record = { + "type": entity_type, + "name": guzhangxianx, + "properties": { + "名称": guzhangxianx, + "故障原因": guzhangreason, + "故障影响": "", + "故障类型": "", + "发生时间": "", + "处置情况": "", + "修复情况": "", + "切片" : input_snippet, + "embedding" : embedding, + } + } + all_entity_records.append(gzproject_record) + + relationships.append({ + "type": "具有", + "from_entity": relaentity, # 父设备 + "to_entity": guzhangxianx # 当前零部件 + }) + + for ins in all_entity_records: + if ins["type"] == "维修项目": + wxindex = ins['properties']['维修项目编号'] + + if wxindex in wxproject: + relationships.append({ + "type": "解决", + "from_entity": ins["name"], # 父设备 + "to_entity": guzhangxianx # 当前零部件 + }) + + + + elif "故障" in row and "可能产生的后果(对其他设备的影响)" in row: + guzhangxianx = row["故障"] + guzhanginflect = row["可能产生的后果(对其他设备的影响)"] + embedding = OpenaiAPI.generate_embedding(guzhangxianx) + gzproject_record = { + "type": entity_type, + "name": guzhangxianx, + "properties": { + "名称": guzhangxianx, + "故障原因": "", + "故障影响": guzhanginflect, + "故障类型": "", + "发生时间": "", + "处置情况": "", + "修复情况": "", + "切片" : input_snippet, + "embedding" : embedding + } + } + all_entity_records.append(gzproject_record) + relationships.append({ + "type": "具有", + "from_entity": relaentity, # 父设备 + "to_entity": guzhangxianx # 当前零部件 + }) + + for ins in all_entity_records: + if ins["type"] == "维修项目": + wxindex = ins['properties']['维修项目编号'] + + if wxindex in wxproject: + relationships.append({ + "type": "解决", + "from_entity": ins["name"], # 父设备 + "to_entity": guzhangxianx # 当前零部件 + }) + + for ins in data: + input_snippet = item["input_snippet"] + structured = ins.get("structured_result", {}) + if structured.get("table_type") in ["操作使用项目表", "应急操作表"]: + entity_type = "操作项目" + relationentity = structured.get("related_entity") + if not relationentity: + continue # 如果没有 related_entity,跳过? + + for row in structured.get("rows", []): + # 安全提取工具/设备字段 + tool = ( + row.get("保障设施、保障设备(工具)") or + row.get("保障设施、保障设备(工具)") or + row.get("保障设备") or + row.get("保障设施") or + "" + ) + + # 必须字段:项目编号 和 操作项目 + bianhao = row.get("项目编号") + caozuo_xiangmu = row.get("操作项目") + if not bianhao or not caozuo_xiangmu: + continue # 缺少必要字段,跳过 + embedding = OpenaiAPI.generate_embedding(caozuo_xiangmu) + step = row.get("操作步骤", "") + renli = row.get("人力人员", "") + + gzproject_record = { + "type": entity_type, + "name": caozuo_xiangmu, # 注意:这个变量是否定义?作用域是否正确? + "properties": { + "名称": caozuo_xiangmu, + "操作项目编号": bianhao, + "安全防护": "", + "注意事项": "", + "工具": tool, + "保障设施、保障设备(工具)": tool, + "人力人员": renli, + "操作步骤": step, + "切片" :input_snippet, + "embedding" : embedding + } + } + all_entity_records.append(gzproject_record) + relationships.append( { + "type": "使用", + "from_entity": relationentity, + "to_entity": caozuo_xiangmu + }) + + + + all_entity_records = deplicate(all_entity_records=all_entity_records) + + return all_entity_records,relationships + +def deplicate(all_entity_records): + seen = set() + deduplicated_records = [] + + for record in all_entity_records: + # 构造唯一键:(type, name) + key = (record["type"], record["name"]) + + if key not in seen: + seen.add(key) + deduplicated_records.append(record) + # 替换原列表 + return deduplicated_records + + +#文本类实体、关系抽取的提示词获取 + +def create_extraction_prompt( + text: str, + ontology: List[str], + Ontology_DESCRIPTION : Dict[str, List[str]], + relationships: List[str], + node_types: Dict[str, List[str]], + relationship_types: Dict[str, List[str]] +) -> str: + # 构建实体属性描述 + entity_attr_descriptions = [] + for etype in ontology: + clean_etype = etype.strip() + if clean_etype in node_types: + attrs = node_types[clean_etype] + attr_list = ", ".join(attrs) + entity_attr_descriptions.append(f"- {clean_etype}:必须包含属性 [{attr_list}]") + else: + entity_attr_descriptions.append(f"- {clean_etype}:无预定义属性") + + # 构建关系语义描述(用于理解,非强制属性) + rel_examples = [] + for rtype, examples in relationship_types.items(): + for ex in examples[:1]: # 取一个例子 + rel_examples.append(f" - {ex}") + ontology_def_descriptions = [] + for etype in ontology: + clean_etype = etype.strip() + if clean_etype in Ontology_DESCRIPTION: + desc = ";".join(Ontology_DESCRIPTION[clean_etype]) + ontology_def_descriptions.append(f"- {clean_etype}:{desc}") + else: + ontology_def_descriptions.append(f"- {clean_etype}:无明确定义") + + + prompt = f""" +请从以下文本中严格抽取实体和关系信息(不要抽取表格内容信息,表格内容仅供理解): + +文本内容:"{text}" + +### 本体类型定义(符合下述定义的本体才可以抽取为对应的实体): +{chr(10).join(ontology_def_descriptions)} + + +### 实体抽取要求: +识别以下类型的本体,并为每种类型强制包含其预定义属性(即使文本未提及,也请保留属性名,值可为空字符串 ""): +{chr(10).join(entity_attr_descriptions)} + + +每个实体必须包含: +- "type":实体类型(必须是以下之一:{', '.join(ontology)}) +- "name":实体名称(必须与原文一致) +- "properties":字典,包含该类型所有预定义属性,值从文本中提取;若未提及,设为 "" + +### 关系抽取要求: +识别以下类型的关系,并为每种类型强制包含其预定义属性(即使文本未提及,也请保留属性名,值可为空字符串 ""): +{chr(10).join(node_types)} + +其中,已定义本体中已存在的关系如下: +{chr(10).join(relationship_types)} + +每个关系必须包含: +- "type":关系类型(必须是以下之一:{', '.join(relationships)}) +- "from_entity":起始实体名称(必须与实体"name"完全一致) +- "to_entity":目标实体名称(必须与实体"name"完全一致) + +### 输出格式要求: +只输出纯JSON,不要任何其他文本、解释或Markdown。结构如下: + +{{ + "entities": [ + {{ + "type": "设备", + "name": "通信风冷设备", + "properties": {{ + "名称": "通信风冷设备", + "型号": "FL-2000", + "技术责任单位": "701所", + "生产单位": "沪东重机", + "技术状态": "正常", + "生产日期": "2021-08", + "启用时间": "2022-01", + "运行时间": "5000小时", + "运行条件": "舱内通风良好,无腐蚀性气体" + }} + }}, + {{ + "type": "设备", + "name": "风冷装置", + "properties": {{ + "名称": "风冷装置", + "型号": "FZ-100", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + }} + }}, + {{ + "type": "故障", + "name": "风冷装置过热", + "properties": {{ + "故障现象": "设备表面温度超过80℃", + "故障原因": "散热风扇停转", + "故障影响": "导致通信设备降频", + "故障类型": "硬件故障", + "发生时间": "2024-11-15", + "处置情况": "切换备用风机", + "修复情况": "更换风扇电机" + }} + }} + ], + "relationships": [ + {{ + "type": "包含", + "from_entity": "通信风冷设备", + "to_entity": "风冷装置" + }}, + {{ + "type": "具有", + "from_entity": "风冷装置", + "to_entity": "风冷装置过热" + }} + ] +}} + +### ❌ 错误示例(绝对禁止): +- 使用 "子设备" 类型 +- 缺少 properties 字段 +- 使用 "subject"/"object" 字段 +- 输出 ```json ... ``` +- 添加额外字段如 "id"、"description" + +### 抽取要求: +- 请不要对表格内容进行抽取(即HMTL源码表示的表格内容),只需要抽取纯文本内容,表格用于提供上下文理解 +现在,请严格按照上述规则,输出符合要求的纯JSON: + +示例1: +输入文本: +# 1)螺旋桨本体 + +功能与特性:能量转换的核心。它将主机的旋转动能转化为水流的反作用力(推力)。其特性由材料(如镍铝青铜、锰青铜)、桨叶数(3-6叶)、盘面比、螺距比等决定,直接影响效率、空泡和振动性能。 + +相互关系:直接安装在尾轴(螺旋桨轴) 末端,其扭矩由尾轴传递,其推力通过推力轴承传递给船体。 + +2)轴系 + +功能与特性:动力传递的桥梁。包括: + +推力轴及推力轴承:承受螺旋桨产生的巨大轴向推力,并将其传递给船体结构,是决定船舶能否前进、后退的关键。 + +中间轴:连接主机输出端与推力轴/尾轴。 + +尾轴(螺旋桨轴):穿过尾轴管,末端安装螺旋桨,工作环境恶劣(浸没海水中),通常需包覆铜套防腐。 + +相互关系:将主机的旋转输出与螺旋桨本体刚性连接,形成一个完整的动力传递链。推力轴承是轴系与船体结构之间的关键受力界面。 + +3)尾轴管与密封系统功能与特性: + +尾轴管:固定于船体尾端,支撑尾轴并形成从船内(机舱)到船外(海水)的通道。 + +密封系统(首尾密封):绝对关键的安全设备。防止海水沿尾轴流入机舱(尾密封),同时防止润滑油泄漏(首尾密封均有此功能)。通常采用唇式密封或面式密封,材料耐磨、耐腐蚀。 + +相互关系:为尾轴提供支撑和润滑(油润滑或水润滑),其密封系统直接保护尾轴并确保机舱安全,与轴系和船体结构紧密集成。 + +4)毂帽与导流罩功能与特性: + +毂帽:安装在螺旋桨毂后端,呈流线型,用于减少桨毂后部产生的涡流阻力,提高效率。 + +导流罩(如桨毂涡流消除器):安装在桨毂前方,改善流入桨叶的水流状态,尤其适用于肥大船型,能提升效率、减少振动。 + +相互关系:直接安装在螺旋桨本体的毂上,是其水动力性能的优化附件。 + +系统相互关系总结: + +主机驱动轴系旋转,轴系末端的尾轴带动螺旋桨本体旋转。螺旋桨产生的推力通过尾轴传递至推力轴承,最终作用在船体上使其运动。尾轴管及密封系统为这一旋转运动提供支撑、润滑和至关重要的水密保障。毂帽和导流罩则作为螺旋桨本体的附件,优化其水动力性能。所有子设备协同工作的核心目标,是确保主机功率被高效、平稳、可靠地转化为推进船舶前进的有效推力。 任何一环失效(如密封泄漏、轴承损坏)都将导致整个推进系统瘫痪。 + +思考过程: +首先,我需要仔细阅读用户的查询,理解任务要求。用户要求我从提供的文本中严格抽取实体和关系信息,不能抽取表格内容,表格仅用于上下文理解。文本是关于船舶推进系统的描述,包括螺旋桨本体、轴系、尾轴管等部分。 + +接下来,我要根据给定的本体类型定义来识别实体。用户指定了九种类型:舰艇、系统、设备、零部件、故障、修理、维修项目、操作项目、保养。我必须确保只抽取这些类型,并且每个实体必须包含预定义的属性,未提及的设为空字符串。 + +现在,分析文本内容: + +文本描述了螺旋桨本体、轴系、尾轴管与密封系统、毂帽与导流罩等。 +检查每个部分是否符合实体类型定义: +"螺旋桨本体":描述为"能量转换的核心",是设备的一部分。根据定义,设备是"具有独立型号和运行状态的物理装置"。这里螺旋桨本体似乎是设备,但文本中没有提到型号、技术状态等属性。所以它应该被抽取为"设备"类型。 +"轴系":包括推力轴、中间轴、尾轴。轴系作为一个整体,是"动力传递的桥梁",可能被视为系统或设备。但定义中,系统是"逻辑/功能层面的集合",而轴系是物理装置。文本说"轴系",可能是一个设备。需要确认:轴系通常由多个部件组成,但这里作为整体描述,可能被当作设备。 +"尾轴管与密封系统":描述为"尾轴管"和"密封系统",密封系统是"绝对关键的安全设备",可能被视为设备。 +"毂帽与导流罩":是螺旋桨本体的附件,属于零部件,因为它们是"不可再拆分的基础物理元件"。 +根据本体定义: + +舰艇:文本中没有提到具体舰艇名称、型号等,所以不抽取。 +系统:文本中没有明确提到系统名称,如"推进系统",但最后一句说"整个推进系统",但这是描述性的,不是实体。系统需要有独立的名称,这里没有,所以不抽取系统。 +设备:螺旋桨本体、轴系、尾轴管、密封系统、毂帽、导流罩等可能被当作设备。 +螺旋桨本体:文本说"螺旋桨本体",是设备。 +轴系:整体描述为"轴系",可能是一个设备。 +尾轴管与密封系统:文本中分开描述,但"密封系统"是设备。 +毂帽与导流罩:作为附件,可能属于零部件。 +但定义中,零部件是"不可再拆分的基础物理元件"。毂帽和导流罩是具体部件,应属于零部件。 + +检查文本: + +"螺旋桨本体":功能描述,没有型号等,所以设备类型。 +"轴系":包括推力轴、中间轴、尾轴,但作为整体"轴系",可能被视为设备。 +"尾轴管与密封系统":尾轴管是设备,密封系统是设备。 +"毂帽与导流罩":是附件,应为零部件。 +现在,匹配实体类型: + +螺旋桨本体:设备 +轴系:设备(因为是物理装置) +尾轴管:设备 +密封系统:设备("绝对关键的安全设备") +毂帽:零部件 +导流罩:零部件 +文本中"尾轴管与密封系统"可能被视为两个实体,但描述为"尾轴管与密封系统",在"功能与特性"中一起说,但相互关系分开。我需要拆分为两个实体。 + +同样,"毂帽与导流罩"描述在一起。 + +根据抽取要求,必须严格按名称抽取。 + +所以,可能的实体: + +螺旋桨本体 (设备) +轴系 (设备) – 但轴系包含多个部分,文本中说"轴系",作为整体。 +尾轴管 (设备) +密封系统 (设备) +毂帽 (零部件) +导流罩 (零部件) +现在,检查属性: + +对于设备,需要属性:名称、型号、技术责任单位、生产单位、技术状态、生产日期、启用时间、运行时间、运行条件。 +文本中没有提到任何型号、单位等,所以这些属性都为空字符串。 + +所以,实体: + +螺旋桨本体 (设备) +轴系 (设备) +尾轴管 (设备) +密封系统 (设备) +毂帽 (零部件) +导流罩 (零部件) +现在,关系抽取: 关系类型:包含、组成、解决、用于、使用、具有。 + +文本中相互关系描述: + +"螺旋桨本体":直接安装在尾轴末端。 +"轴系":将主机的旋转输出与螺旋桨本体刚性连接。 +"尾轴管":固定于船体尾端,支撑尾轴。 +"密封系统":防止海水流入机舱。 +"毂帽和导流罩":直接安装在螺旋桨本体的毂上。 +所以,关系: + +螺旋桨本体 与 尾轴:但尾轴是轴系的一部分。轴系包括尾轴。 +在实体中,轴系是设备,尾轴不是单独实体。文本说"尾轴(螺旋桨轴)",但轴系包括尾轴,所以尾轴是轴系的组成部分,但轴系是整体设备。 + +关系:螺旋桨本体 直接安装在 尾轴 末端,但尾轴不是实体,轴系是实体。轴系包含尾轴。 + +但根据抽取要求,只抽取定义的实体。尾轴没有被列为独立实体,所以不能创建"尾轴"实体。 + +因此,关系: + +螺旋桨本体 被 安装在 轴系 的末端?文本说"直接安装在尾轴末端",尾轴是轴系的一部分。 +在关系中,应该用现有实体。 + +可能的关系: + +轴系 与 螺旋桨本体:相互关系"将主机的旋转输出与螺旋桨本体刚性连接",所以轴系 包含 螺旋桨本体?不,轴系连接螺旋桨本体,但螺旋桨本体是另一个设备。 +文本:"轴系末端的尾轴带动螺旋桨本体旋转",所以轴系(通过尾轴)带动螺旋桨本体。 + +但轴系是设备,螺旋桨本体是设备。 + +关系:轴系 用于 带动 螺旋桨本体?但关系类型中,有"用于"。 + +定义的关系类型:包含、组成、解决、用于、使用、具有。 + +"用于"表示目的。 + +例如,轴系 用于 传递动力到螺旋桨本体。 + +但更准确的关系:轴系 与 螺旋桨本体 之间 有 "连接" 关系,但关系类型中没有"连接",只有指定的类型。 + +在相互关系中,文本说"轴系末端的尾轴带动螺旋桨本体",所以轴系 用于 驱动 螺旋桨本体。 + +类似地,尾轴管 支撑 尾轴,但尾轴不是实体。 + +尾轴管 与 轴系:尾轴管支撑尾轴,尾轴是轴系的一部分,但轴系是整体。 + +或许:尾轴管 用于 支撑 轴系。 + +文本:"尾轴管:固定于船体尾端,支撑尾轴",尾轴是轴系的一部分。 + +在关系中,可以有:尾轴管 用于 支撑 轴系。 + +同样,密封系统 用于 保护 尾轴。 + +毂帽 与 螺旋桨本体:直接安装在螺旋桨本体的毂上,所以毂帽 具有 螺旋桨本体?不,毂帽 安装在 螺旋桨本体上。 + +关系:毂帽 用于 优化 螺旋桨本体的性能。 + +但关系类型有"具有"。 + +"具有":表示拥有关系。 + +例如,螺旋桨本体 具有 毂帽。 + +文本:"毂帽:安装在螺旋桨本体的毂上",所以螺旋桨本体 具有 毂帽。 + +类似地,导流罩 也安装在螺旋桨本体上,所以螺旋桨本体 具有 导流罩。 + +现在,列出可能的关系: + +螺旋桨本体 具有 毂帽 +螺旋桨本体 具有 导流罩 +轴系 用于 驱动 螺旋桨本体? 但"驱动"不是标准关系。 +关系类型有"用于",意思是"用于"。 + +例如,轴系 用于 传递动力。 + +但指定目标实体。 + +文本:"轴系将主机的旋转输出与螺旋桨本体刚性连接",所以轴系 用于 连接 螺旋桨本体。 + +但"连接"不是关系类型。 + +或许"用于"表示功能。 + +在示例中,有"通信风冷设备"包含"风冷装置",所以"包含"是组成关系。 + +这里,螺旋桨本体和毂帽:毂帽是螺旋桨本体的附件,所以螺旋桨本体 包含 毂帽?但毂帽是独立零部件。 + +在定义中,零部件是构成设备的,所以设备 具有 零部件。 + +所以,关系:螺旋桨本体 具有 毂帽 + +同样,螺旋桨本体 具有 导流罩 + +对于轴系和螺旋桨本体:轴系 是 连接 螺旋桨本体 的,但轴系是设备,螺旋桨本体是另一个设备。 + +相互关系:"轴系末端的尾轴带动螺旋桨本体",所以轴系 用于 驱动 螺旋桨本体。 + +但关系类型有"用于",所以可以:轴系 用于 驱动 螺旋桨本体 + +类似地,尾轴管 用于 支撑 轴系(因为支撑尾轴,尾轴是轴系的一部分)。 + +密封系统 用于 保护 尾轴,但尾轴不是实体;密封系统 用于 保护 尾轴管?文本:"其密封系统直接保护尾轴",尾轴是轴系的一部分。 + +所以,密封系统 用于 保护 轴系。 + +现在,确认关系: + +螺旋桨本体 具有 毂帽 +螺旋桨本体 具有 导流罩 +轴系 用于 驱动 螺旋桨本体 +尾轴管 用于 支撑 轴系 +密封系统 用于 保护 轴系 +但"保护轴系" – 密封系统保护尾轴,尾轴是轴系的一部分,所以间接保护轴系。 + +文本:"其密封系统直接保护尾轴",所以密封系统 用于 保护 尾轴,但尾轴不是实体。既然尾轴不是单独实体,只能用轴系。 + +在关系中,用现有实体。 + +同样,尾轴管支撑尾轴,所以尾轴管 用于 支撑 轴系。 + +现在,实体名称必须与原文一致: + +螺旋桨本体 +轴系 +尾轴管 +密封系统 +毂帽 +导流罩 +在文本中,"密封系统"在"尾轴管与密封系统"中,但作为"密封系统"。 + +在相互关系,"密封系统"被单独提及。 + +所以,实体名称: + +"螺旋桨本体" +"轴系" +"尾轴管" +"密封系统" +"毂帽" +"导流罩" +现在,为每个实体创建properties。 + +对于设备: + +名称: "螺旋桨本体" +其他属性: 空 +同样 for others. + +对于零部件: + +名称: "毂帽" +属性: 名称、型号、技术责任单位、生产单位, all empty +现在,关系: + +type: "具有", from_entity: "螺旋桨本体", to_entity: "毂帽" +type: "具有", from_entity: "螺旋桨本体", to_entity: "导流罩" +type: "用于", from_entity: "轴系", to_entity: "螺旋桨本体" // 用于驱动 +type: "用于", from_entity: "尾轴管", to_entity: "轴系" // 用于支撑 +type: "用于", from_entity: "密封系统", to_entity: "轴系" // 用于保护 +但"用于"关系:from_entity 用于 to_entity。 + +所以输出为: +output + + + +""" + return prompt + +json_example = '''{ + "entities": [ + { + "type": "设备", + "name": "螺旋桨本体", + "properties": { + "名称": "螺旋桨本体", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + } + }, + { + "type": "设备", + "name": "轴系", + "properties": { + "名称": "轴系", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + } + }, + { + "type": "设备", + "name": "尾轴管", + "properties": { + "名称": "尾轴管", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + } + }, + { + "type": "设备", + "name": "密封系统", + "properties": { + "名称": "密封系统", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + } + }, + { + "type": "零部件", + "name": "毂帽", + "properties": { + "名称": "毂帽", + "型号": "", + "技术责任单位": "", + "生产单位": "" + } + }, + { + "type": "零部件", + "name": "导流罩", + "properties": { + "名称": "导流罩", + "型号": "", + "技术责任单位": "", + "生产单位": "" + } + } + ], + "relationships": [ + { + "type": "具有", + "from_entity": "螺旋桨本体", + "to_entity": "毂帽" + }, + { + "type": "具有", + "from_entity": "螺旋桨本体", + "to_entity": "导流罩" + }, + { + "type": "用于", + "from_entity": "轴系", + "to_entity": "螺旋桨本体" + }, + { + "type": "用于", + "from_entity": "尾轴管", + "to_entity": "轴系" + }, + { + "type": "用于", + "from_entity": "密封系统", + "to_entity": "轴系" + } + ] +}''' + +Ontology_DESCRIPTION = { + "舰艇": ["代表一艘完整海上作战或保障平台的实体,是所有系统、设备和零部件的最高层级载体。区别于“系统”或“设备”,舰艇具有独立的型号、弦号和部队归属,不可作为其他舰艇的组成部分。"], + "系统": ["舰艇中实现某一类功能(如动力、导航、通信)的集成化功能单元,由多个设备协同组成。与“设备”不同,系统本身不直接对应物理装置,而是逻辑/功能层面的集合;与“舰艇”不同,系统不具备独立航行能力或部队归属。"], + "设备": ["安装在舰艇上、具有独立型号和运行状态的物理装置,可被启停、监控运行时间,并可能产生故障。区别于“零部件”,设备是可独立更换或维修的功能单元;区别于“系统”,设备是具体硬件而非功能集合。"], + "零部件": ["构成设备的不可再拆分的基础物理元件(如轴承、电路板、密封圈),通常无独立运行状态或启用时间。与“设备”关键区别在于:零部件不能单独运行,也不记录运行时间或技术状态变更。"], + "故障": ["设备或系统在运行中出现的异常状态或失效事件,必须包含具体现象(如“无法启动”)、原因(如“电源短路”)及影响。区别于“修理”或“保养”,故障是问题本身,而非应对措施;不包含操作步骤或人员信息。"], + "修理": ["针对已发生故障所执行的一次性修复行为,包含具体时间、人员、工具、方案和所关联的维修项目。区别于“保养”,修理是响应式、非周期性的;区别于“维修项目”,修理是实际发生的实例,而非标准化规程。"], + "维修项目": ["标准化、可重复执行的维修任务规程,规定了某类设备或系统在特定条件下应如何维修,包含编号、步骤、材料、安全要求等。区别于“修理”,维修项目是模板或规范,而非具体事件;不包含实际发生时间或人员。"], + "操作项目": ["舰艇正常运行中需执行的标准操作流程(如启动主机、校准雷达),强调操作步骤与安全保障。区别于“维修项目”,操作使用项目用于日常使用而非维护"], + "保养" : ["按计划周期性执行的预防性维护活动(如润滑、清洁、检测),目的是延缓性能退化。"] +} + +RELATIONSHIP_TYPES = { + "包含": ["舰艇包含系统", "系统包含设备","设备包含零部件","修理包含维修项目"], + "解决": ["修理解决故障", "维修项目解决故障"], + "使用": ["设备使用操作项目", "设备使用保养","设备使用维修项目"], + "具有": ["设备具有故障","零部件具有故障"] +} +def get_nodes_relation_text(chunks,Ontology=None,Ontology_DESCRIPTION=Ontology_DESCRIPTION,Relationships=None,NODE_TYPES=None,RELATIONSHIP_TYPES=RELATIONSHIP_TYPES): + node,relation =[] + for chunk in chunks: + prompt = create_extraction_prompt( + text=chunk, + ontology=Ontology, + Ontology_DESCRIPTION=Ontology_DESCRIPTION, + relationships=Relationships, + node_types=NODE_TYPES, + relationship_types=RELATIONSHIP_TYPES + ) + res = OpenaiAPI.openai_chat(prompt) + entity = res["entities"] + relationships = res["relationships"] + for ins in entity: + text = ins["properties"]["名称"] + embedding = OpenaiAPI.generate_embedding(text) + ins["properties"]["embedding"] = embedding + node.append(ins) + for ins in relationships: + relation.append(ins) + + return node,relation + + + + + +def highlight_pdf_content(result, DATA_DIR,filename,color=(1, 1, 0)): + """ + 在PDF的指定页面上高亮一个矩形区域 + :param input_pdf: 输入PDF路径 + :param output_pdf: 输出PDF路径 + :param _page: 页面编号(从0开始) + :param rect: 矩形区域 (x0, y0, x1, y1),单位是PDF坐标(通常是点,72dpi) + :param color: 高亮颜色,RGB元组,范围0~1,例如黄色 (1,1,0) + """ + print(f"开始处理高亮区域,共 {len(result)} 个临时UUID") + for temp_uuid, pixel_list in result.items(): + + if len(pixel_list) == 0: + continue + input_pdf = f"{DATA_DIR}/{filename}" + print("DATA_DIR:",DATA_DIR) + print("filename:",filename) + print("输出读取高亮文件路径:",input_pdf) + output_pdf = f"{DATA_DIR}/uploads_v1/{temp_uuid}_{pixel_list[0]['resource']}" + doc = fitz.open(input_pdf) + + for i, p in enumerate(pixel_list): + # 打开PDF + page = doc[p.get("page_idx", 0)] + + # 创建一个高亮注释 + highlight = page.add_highlight_annot(p["bbox"]) + + # 设置颜色(可选) + # highlight.set_colors(stroke=color) # 边框颜色 + # highlight.set_opacity(0.4) # 透明度 + highlight.update() + + # 保存新PDF + doc.save(output_pdf, incremental=False, clean=False) + # doc.save(output_pdf, clean=True, deflate=True) # 完整保存,无 incremental + # doc.save(output_pdf, clean=False, incremental=False) + doc.close() + print(f"高亮区域已保存到 {output_pdf}") + print("所有高亮区域已处理完成") + + + + +def get_hightlight(split_chunk,content_middle): + + + + def sort_by_page_idx_frequency(data): + + page_idx_counts = Counter(item['page_idx'] for item in data) + + # 获取出现频率最高的前三个 page_idx(如果有并列,取前三个) + top_three_page_idxs = {page_idx for page_idx, count in page_idx_counts.most_common(3)} + + # 筛选出所有属于前三高频 page_idx 的原始记录 + filtered_data = [item for item in data if item['page_idx'] in top_three_page_idxs] + + # 在这些高频记录中找出最大的 page_idx + max_page_idx = max(top_three_page_idxs) # 因为 top_three_page_idxs 是前三高频的键 + + return filtered_data, max_page_idx + + def find_and_filter_records(record_list, text): + # 尝试找到第一个“content”作为text前缀的记录的索引 + start_index = next((i for i, record in enumerate(record_list) if + record.get('content', '').strip() and text.startswith(record['content'])), None) + # 如果找到了这样的记录,返回从这条记录开始到最后的所有记录 + if start_index is not None: + record_list = record_list[start_index:] + + # 如果没有找到以“content”开头的记录,则尝试找到第一个“content”作为text后缀的记录的索引 + end_index = next((i for i, record in enumerate(record_list) if + record.get('content', '').strip() and text.endswith(record['content'])), None) + # + # # 如果找到了这样的记录,返回从这条记录开始到最后的所有记录 + if end_index is not None: + record_list = record_list[:end_index+1] + + # 如果既没有找到匹配的前缀也没有找到匹配的后缀,则返回原list + return record_list + + + + def getbbox(result_devide, content_middle): + for idx, item in enumerate(content_middle): + item['id'] = idx + 1 # 从1开始编号 + + # for item in content_middle: + # print(item) + # resource = result_devide[0]['resource'] + resource = "" + for re in result_devide: + if 'chunklist' not in re: + re['chunklist'] = [] + temp_chunk_list = [] + + for record in content_middle: + # === 关键修复:安全检查 === + if not isinstance(record, dict): + continue + if 'type' not in record: + continue + + if record['type'] == 'text': + if record.get('text', '') in re['text']: + temp_chunk_list.append(record) + elif record['type'] == 'image': + if record.get('image_path', '') in re['text']: + temp_chunk_list.append(record) + elif record['type'] == 'table': + if record.get('html', '') in re['text']: + temp_chunk_list.append(record) + print(temp_chunk_list) + + re['chunklist'] = temp_chunk_list + result_devide = [item for item in result_devide if item['chunklist']] + + length_result_devide = len(result_devide) + result = {} + + for i in range(length_result_devide): + temp_uuid = str(uuid.uuid4()) + result[temp_uuid] = [] + chunk = result_devide[i]['text'] + result_devide[i]["id"] = temp_uuid + + # 假设输入数据存储在名为data的列表中 + data = result_devide[i]['chunklist'] # 您的数据列表 + + sorted_data = sorted(data, key=lambda x: x['id']) + + # 步骤2:使用 groupby 找出连续 id 的组 + groups = [] + current_group = [] + + for item in sorted_data: + if not current_group: + current_group.append(item) + else: + # 检查当前 id 是否与前一个连续 + if item['id'] == current_group[-1]['id'] + 1: + current_group.append(item) + else: + # 不连续,保存当前组并开始新组 + if len(current_group) >= 1: # 可设最小长度过滤 + groups.append(current_group) + current_group = [item] + + # 别忘了最后一个组 + if current_group: + groups.append(current_group) + + # 按组的长度从大到小排序 + sorted_groups = sorted(groups, key=len, reverse=True) + + sorted_data, most_common_page_idx1 = sort_by_page_idx_frequency(sorted_groups[0]) + sorted_filtered_items = sorted( + (item for sublist in sorted_groups for item in sublist if + most_common_page_idx1 - 1 <= item['page_idx'] <= most_common_page_idx1 + 1), + key=lambda x: x['id'] + ) + sorted_filtered_items = find_and_filter_records(sorted_filtered_items, chunk) + if not sorted_filtered_items : + most_common_page_idx = 0 + else: + most_common_page_idx = sorted_filtered_items[0]['page_idx'] + + for chunk in sorted_filtered_items: + chunk['resource'] = resource + result[temp_uuid].append(chunk) + result_devide[i]['page_idx'] = most_common_page_idx + # result[temp_uuid] =sorted_data + # + data = [] + for ins in result_devide: + data.append( + { + 'id': ins['id'], + 'Header_1': ins['Header_1'], + 'Header_2': ins['Header_2'], + 'Header_3': ins['Header_3'], + 'text': ins['text'], + 'resource': resource, + 'img_path': ins['img_path'], + 'origin_text': ins['origin_text'], + 'page': None, + 'page_idx': ins['page_idx'], + 'ins' : ins['ins'] + + } + + ) + return data, result + + data, result = getbbox(split_chunk, content_middle) + + return data,result + +def get_resource(all_entity_records,DATA_DIR,file_name,content_middle): + chunks = [] + for idx, ins in enumerate(all_entity_records, start=1): + + chunks.append({ + "id": str(idx), # 转为字符串(可选,根据需求) + "text": ins["properties"]["切片"], + "Header_1": "", + "Header_2": "", + "Header_3": "", + "img_path": "", + "origin_text": ins["properties"]["切片"], + "resource": file_name, + "ins" :ins, + "type" : "text" + }) + + + split_chunks = chunks + + content_middle = content_middle + + data,result = get_hightlight(split_chunk=split_chunks,content_middle=content_middle) + + for ins in data: + ins["resource"] = file_name + for key, value in result.items(): + for ins in value: + ins["resource"] = file_name + highlight_pdf_content(result, DATA_DIR=DATA_DIR, filename=file_name) + all_entity = [] + for ins in data: + + id = ins['id'] + resourece = ins['resource'] + page = ins['page_idx'] + output_pdf = f"/app/upload/{id}_{resourece}" + online_url = f"http://192.168.0.46:59085/upload/{id}_{resourece}#page={page}" + ins['ins']['knowledge_source'] = [] + ins['ins']['knowledge_source'].append( + { + "filename" : resourece, + "url" : online_url, + "info" : ins["text"], + }) + # ins['ins']['attributes']['高亮'] = output_pdf + # ins['ins']['attributes']['page_idx'] = ins['page_idx'] + # online_url = f"http://192.168.0.46:9085/files/uploads/{id}_{resourece}#page={page}" + # ins['ins']['attributes']['highlight'] = online_url + + all_entity.append(ins['ins']) + + + return all_entity + + + +# if __name__ == "__main__": +# # content_middle =[{'id': 1, 'Header_1': '122-06A0014-B01005_声呐-图解目录', 'Header_2': '目次', 'Header_3': '', 'text': '122-06A0014-B01005_声呐-图解目录\n目次 \n1 概述 ...\n2 设备组成表. 33 图解目录编制. 4附件一:设备组成表提交模板 .\n附件二:图解目录提交模板 .. 8', 'resource': '122-06A0014-B01005_声呐-图解目录-副本_20260105170539.pdf', 'img_path': '', 'page': None, 'origin_text': '# 目次 \n1 概述 ...\n2 设备组成表. 33 图解目录编制. 4附件一:设备组成表提交模板 .\n附件二:图解目录提交模板 .. 8'}, {'id': 2, 'Header_1': '1 概述', 'Header_2': '', 'Header_3': '', 'text': '1 概述 \n声呐图解目录编制主要包括设备组成表及图解目录两部分编制,为设备 5A分析、使用、维修资料编写做准备。设备组成表是将设备进行逐层分解,图解目录通过图表的形式描述设备的组成。', 'resource': '122-06A0014-B01005_声呐-图解目录-副本_20260105170539.pdf', 'img_path': '', 'page': None, 'origin_text': '# 1 概述 \n声呐图解目录编制主要包括设备组成表及图解目录两部分编制,为设备 5A分析、使用、维修资料编写做准备。设备组成表是将设备进行逐层分解,图解目录通过图表的形式描述设备的组成。'}, {'id': 3, 'Header_1': '2 设备组成表', 'Header_2': '', 'Header_3': '', 'text': '2 设备组成表 \n表 2.1 声呐组成表 \n
组成编码名称是否为关重件是否为寿命件备注
01声呐基阵系统核心探测单元
0101基阵阵元组件包含多个换能器单元
01010001压电陶瓷换能器核心声电转换部件,有使用寿命
01010002橡胶透声护罩易老化,需定期更换
0102基阵骨架支撑结构
01020001钛合金主框架耐腐蚀承力结构
02信号处理机柜数据处理核心
0201发射机组件生成发射信号
020101功率放大模块大功率器件,有工作寿命
02010001散热风扇易损件,需定期更换
', 'resource': '122-06A0014-B01005_声呐-图解目录-副本_20260105170539.pdf', 'img_path': '', 'page': None, 'origin_text': '# 2 设备组成表 \n表 2.1 声呐组成表 \n
组成编码名称是否为关重件是否为寿命件备注
01声呐基阵系统核心探测单元
0101基阵阵元组件包含多个换能器单元
01010001压电陶瓷换能器核心声电转换部件,有使用寿命
01010002橡胶透声护罩易老化,需定期更换
0102基阵骨架支撑结构
01020001钛合金主框架耐腐蚀承力结构
02信号处理机柜数据处理核心
0201发射机组件生成发射信号
020101功率放大模块大功率器件,有工作寿命
02010001散热风扇易损件,需定期更换
'}, {'id': 4, 'Header_1': '3 图解目录编制', 'Header_2': '', 'Header_3': '', 'text': '3 图解目录编制 \n![](http://192.168.0.46:9988/output/images/2971a4a7f4477b529bef3e5c287895ee6f1aa17b76f4a7b11a810405a8bb4759.jpg) \n
序号组成编码名称型号/零件号重量(kg)数量
101声呐基阵系统SNS-PA-202312501
202信号处理机柜SNS-SP-20233002
图名:声呐图解目录
图号:01
\n![](http://192.168.0.46:9988/output/images/a1cf4fe4917cc5965e0ab565da638754ea8dff7f77ac2e88bb11359dade5ee25.jpg) \n
房号组成编码名称型号/零件号重量(kg)数量
10101基阵阵元组件PA-EA-ASSY0110232
20102基阵骨架PA-FR-016501
301010001压电陶瓷换能器PZT-50C1.2256
401010002橡胶透声护罩PA-CV-010.832
501020001钛合金主框架TA6V-FRAME5801
图名:声呐基阵系统图解目录
图号:02
\n![](http://192.168.0.46:9988/output/images/94a54042fa68304e45c2035d6423264b970355656132c8b53a208244bbe8db86.jpg)\n图名:信号处理机柜图解目录 \n图号:03', 'resource': '122-06A0014-B01005_声呐-图解目录-副本_20260105170539.pdf', 'img_path': 'http://192.168.0.46:9988/output/images/2971a4a7f4477b529bef3e5c287895ee6f1aa17b76f4a7b11a810405a8bb4759.jpg,http://192.168.0.46:9988/output/images/a1cf4fe4917cc5965e0ab565da638754ea8dff7f77ac2e88bb11359dade5ee25.jpg,http://192.168.0.46:9988/output/images/94a54042fa68304e45c2035d6423264b970355656132c8b53a208244bbe8db86.jpg', 'page': None, 'origin_text': '# 3 图解目录编制 \n![](http://192.168.0.46:9988/output/images/2971a4a7f4477b529bef3e5c287895ee6f1aa17b76f4a7b11a810405a8bb4759.jpg) \n
序号组成编码名称型号/零件号重量(kg)数量
101声呐基阵系统SNS-PA-202312501
202信号处理机柜SNS-SP-20233002
图名:声呐图解目录
图号:01
\n![](http://192.168.0.46:9988/output/images/a1cf4fe4917cc5965e0ab565da638754ea8dff7f77ac2e88bb11359dade5ee25.jpg) \n
房号组成编码名称型号/零件号重量(kg)数量
10101基阵阵元组件PA-EA-ASSY0110232
20102基阵骨架PA-FR-016501
301010001压电陶瓷换能器PZT-50C1.2256
401010002橡胶透声护罩PA-CV-010.832
501020001钛合金主框架TA6V-FRAME5801
图名:声呐基阵系统图解目录
图号:02
\n![](http://192.168.0.46:9988/output/images/94a54042fa68304e45c2035d6423264b970355656132c8b53a208244bbe8db86.jpg)\n图名:信号处理机柜图解目录 \n图号:03'}, {'id': 5, 'Header_1': '附件一:设备组成表提交模板', 'Header_2': 'XX设备组成表', 'Header_3': '', 'text': '附件一:设备组成表提交模板\nXX设备组成表 \n
组成编码名称是否为关重件是否为寿命件备注
组成编码名称是否为关重件是否为寿命件备注
\n附件二:图解目录提交模板 \n
房号组成编码名称型号/零件号重量(kg)数量
XXXXXXXxX
·…·..···…·…·
\n附件二:图解目录提交模板 \n
房号组成编码名称型号/零件号重量(kg)数量
XXXXXXXxX
·…·..···…·…·
图名:XX图解目录
图号:XX
', 'resource': '122-06A0014-B01005_声呐-图解目录-副本_20260105170539.pdf', 'img_path': '', 'page': None, 'origin_text': 'wspan=1 colspan=1>图名:XX图解目录图号:XX'}] + + +# all_entity = [{'type': '设备', 'name': '声呐系统', 'properties': {'名称': '声呐系统', '型号': '', '技术责任单位': '', '生产单位': '', '技术状态': '', '生产日期': '', '启用时间': '', '运行时间': '', '运行条件': '', '切片': '
组成编码名称是否为关重件是否为寿命件备注
01声呐基阵系统核心探测单元
0101基阵阵元组件包含多个换能器单元
01010001压电陶瓷换能器核心声电转换部件,有使用寿命
01010002橡胶透声护罩易老化,需定期更换
0102基阵骨架支撑结构
01020001钛合金主框架耐腐蚀承力结构
02信号处理机柜数据处理核心
0201发射机组件生成发射信号
020101功率放大模块大功率器件,有工作寿命
02010001散热风扇易损件,需定期更换
', 'embedding': [0.025593511760234833, 0.020305899903178215, -0.04072195664048195, 0.006779342889785767, 0.010382446460425854, 0.03561794385313988, 0.02401457168161869, 0.03706836327910423, -0.013595405966043472, -0.006164290942251682, -0.005048935301601887, -0.004052917938679457, 0.002955922158434987, -0.01836894452571869, 0.03095456212759018, -0.03207450732588768, 0.016422810032963753, -0.03705000504851341, 0.024969279766082764, -0.03826174885034561, 0.00046100220060907304, -0.008771377615630627, -0.04116259142756462, -0.01484386995434761, 0.020856691524386406, 0.008808096870779991, -0.014283896423876286, -0.015256964601576328, 0.005526288878172636, 0.011621731333434582, -0.035544503480196, 0.016505427658557892, -0.021444205194711685, -0.03727032244205475, -0.05665823444724083, -0.03954693302512169, -0.04116259142756462, -0.028127159923315048, -0.06591155380010605, 0.02008558250963688, -0.023684095591306686, 0.0135036064311862, 0.017037861049175262, -0.06774753332138062, -0.0029398573096841574, -0.010180489160120487, -0.01371474377810955, -0.03369016945362091, -0.026566579937934875, 0.004993855953216553, -0.016863442957401276, -0.010125409811735153, 0.0034722904674708843, -0.015835296362638474, -0.03998756781220436, 0.020214101299643517, -0.039803970605134964, -0.005503339227288961, -0.08533618599176407, 0.002312182914465666, -0.013613765127956867, 0.062092725187540054, -0.06525060534477234, -0.022105155512690544, 0.041456349194049835, 0.05838404968380928, 0.01119945663958788, 0.044357191771268845, -0.04534861817955971, -0.0250977985560894, -0.009395609609782696, -0.027135731652379036, -0.019222673028707504, 0.026125945150852203, -0.02175632119178772, 0.04167666658759117, -0.005792505573481321, -0.026493139564990997, -0.03626053407788277, -0.019130874425172806, -0.003963414113968611, -0.023702455684542656, 0.014724531210958958, 0.010088690556585789, -0.09304728358983994, 0.024987639859318733, 0.029008427634835243, -0.02063637599349022, -0.046707239001989365, -0.02056293562054634, -0.002547417301684618, 0.015064186416566372, 0.01317313127219677, -0.033488210290670395, -0.03146863728761673, 0.010648663155734539, -0.004925007000565529, -0.021884839981794357, 0.03504879027605057, 0.014274717308580875, 0.0012243668315932155, -0.024895841255784035, 0.0046932147815823555, 0.004199795890599489, 0.025868907570838928, 0.0038257159758359194, 0.05794341489672661, 0.04520174115896225, 0.0014722236664965749, 0.023867694661021233, 0.001925480319187045, 0.07186011970043182, -0.017047042027115822, 0.017643732950091362, -0.03730704262852669, -0.05342691391706467, -0.022582510486245155, -0.03473667427897453, 0.02568531036376953, -0.007688151206821203, 0.01953478902578354, 0.014182917773723602, 0.06330446898937225, -0.040464919060468674, 0.012842655181884766, -0.02627282217144966, 0.009537898004055023, 0.0240696519613266, -0.008459261618554592, -0.03080768510699272, -0.010520145297050476, 0.0786532312631607, -0.016248391941189766, 0.015578259713947773, -0.026621658354997635, -0.027833402156829834, 0.014439954422414303, -0.020930131897330284, -0.016973601654171944, -0.025923987850546837, 0.028879908844828606, 0.02405129186809063, 0.01426553726196289, -0.009886733256280422, 0.01343016792088747, -0.015201885253190994, 0.0033024626318365335, 0.004220450762659311, -0.020250819623470306, -0.049020569771528244, 0.004250285681337118, -0.0024808631278574467, 0.015514001250267029, 0.06631547212600708, -0.00656361598521471, 0.05555664747953415, -0.02520795725286007, 0.06664594262838364, -0.010051971301436424, 0.02283954620361328, -0.015211065299808979, 0.03130339831113815, 0.03943677246570587, 0.006848192308098078, 0.005498749669641256, 0.01373310387134552, 0.028457634150981903, 0.014072759076952934, 0.001029868028126657, -0.017331616953015327, -0.013264929875731468, -0.02583218924701214, 0.02181139960885048, 0.0037889964878559113, 0.02792520262300968, 0.00357785914093256, 0.05111358314752579, 0.04281497001647949, 0.028769750148057938, -0.04075867682695389, 0.029320543631911278, -0.018543362617492676, -0.031688954681158066, -0.02182975970208645, 0.005039755254983902, 0.02507943846285343, 0.025923987850546837, -0.006012822967022657, 0.03033033013343811, 0.04927760735154152, -0.03547106310725212, 0.027833402156829834, 0.015064186416566372, -0.0032772179692983627, 0.011080117896199226, 0.004101112484931946, 0.043182164430618286, 0.008147145621478558, -0.005875124596059322, 0.018111906945705414, 0.020397698506712914, -0.0030867354944348335, 0.002021868946030736, -0.0008525815792381763, -0.06620530784130096, 0.006508536636829376, -0.027356049045920372, -0.002664460800588131, 0.020728174597024918, -0.002781504299491644, 0.030073294416069984, 0.027117371559143066, 0.04641348496079445, -0.05702542886137962, -0.01461437251418829, 0.020434418693184853, 0.00486074760556221, -0.017047042027115822, -0.03308429569005966, -0.04582597315311432, -0.0024625035002827644, 0.02340869978070259, 0.015798578038811684, 0.0021882543805986643, 0.06947334855794907, -0.04064851999282837, 0.004888287279754877, 0.006324938964098692, 0.023812614381313324, -0.02166452258825302, 0.013540326617658138, -0.02298642508685589, -0.03099128231406212, -0.024345047771930695, -0.0028136339969933033, 0.025483353063464165, 0.0002376728953095153, 0.05026903375983238, 0.043145447969436646, 0.026640018448233604, 0.0003276070347055793, 0.042043861001729965, 0.014458314515650272, -0.019057435914874077, -0.018635161221027374, 0.012714137323200703, 0.007903878577053547, 0.032349903136491776, -0.0032106637954711914, 0.018084367737174034, -0.02166452258825302, -0.05563008785247803, -0.03567302227020264, 0.003458520630374551, 0.05548320710659027, 0.004925007000565529, 0.027631444856524467, -0.007059329655021429, 0.03668281063437462, 0.008528110571205616, 0.04362279921770096, 0.012659057974815369, -0.005025985650718212, 0.009831653907895088, 0.029614299535751343, -0.026456421241164207, 0.04678067937493324, -0.013980960473418236, -0.031725671142339706, 0.06128489226102829, 0.031174879521131516, -0.034589797258377075, -0.045532215386629105, 0.04274153336882591, -0.02003050222992897, 0.022453991696238518, 0.0159546360373497, -0.05537305027246475, 0.024418486282229424, 0.012365301139652729, 0.012255142442882061, -0.032919056713581085, 0.0135036064311862, 0.03699492663145065, -0.017469316720962524, -0.03793127462267876, -0.04237433522939682, 0.026511499658226967, -0.0013540326617658138, -0.06532403826713562, -0.013723923824727535, 0.01666148565709591, 0.05328003689646721, 0.021315686404705048, -0.004020788241177797, -0.033396411687135696, -0.04656036198139191, -0.13674353063106537, -0.00716948788613081, -0.07718444615602493, 0.056878551840782166, 0.0005754638696089387, -0.0025428272783756256, 0.03216630592942238, 0.006086261942982674, -0.01721227914094925, -0.009822473861277103, 0.05511601269245148, -0.04821274057030678, -0.04237433522939682, -0.03422259911894798, -0.04993855953216553, 0.007669791579246521, -0.008193044923245907, -0.0023052978795021772, -0.004096522461622953, -0.04079539701342583, 0.00272642495110631, -0.012200063094496727, 0.0400242879986763, 0.006687544286251068, 0.007174077909439802, -0.06536076217889786, 0.006811472587287426, -0.021866479888558388, -0.03508551046252251, -0.013659664429724216, -0.026584938168525696, -0.029651019722223282, 0.0013976370682939887, 0.03495699167251587, 0.0012427265755832195, -0.009322170168161392, -0.02410637028515339, 0.038004711270332336, -0.013558685779571533, 0.015881195664405823, 0.02010394260287285, 0.020305899903178215, 0.0031486996449530125, 0.004911236930638552, -0.0042893001809716225, -0.023004785180091858, 0.0636349469423294, -0.015256964601576328, -0.041493069380521774, -0.029045147821307182, -0.02401457168161869, -0.019846905022859573, -0.00265528098680079, -0.026768537238240242, -0.0035113049671053886, -0.02122388780117035, -0.009381840005517006, 0.01259479857981205, 0.008110426366329193, -0.021260607987642288, -0.01836894452571869, -0.04116259142756462, 0.018635161221027374, -0.05217844992876053, -0.03767423704266548, -0.027245890349149704, 0.0086290892213583, 0.040905553847551346, 0.03782111406326294, -0.01287019532173872, 0.02684197574853897, -0.03884926065802574, -0.027025572955608368, -0.003307052655145526, -0.025648590177297592, 0.03499371185898781, -0.019351191818714142, -0.0538308285176754, -0.021572723984718323, -0.09047692269086838, -0.03758243843913078, -0.021554363891482353, 0.023684095591306686, 0.0027333099860697985, -0.032386623322963715, -0.049534644931554794, -0.022160235792398453, -0.006246909964829683, 0.026181023567914963, 0.2063637524843216, 0.019755106419324875, 0.06939990818500519, 0.03260694071650505, 0.06341462582349777, -0.0503791943192482, 0.02350049838423729, -0.03335969150066376, 0.009675595909357071, -0.028402555733919144, -0.028843190521001816, 0.039216455072164536, 0.03031197190284729, 0.0021308802533894777, -0.05423474311828613, 0.04061179980635643, -0.050562791526317596, 0.02636462263762951, 0.0938551127910614, 0.02520795725286007, -0.01942463032901287, -0.008087475784122944, 0.02223367430269718, -0.028163878247141838, -0.025997426360845566, -0.0053243315778672695, -0.016184132546186447, 0.027906842529773712, -0.004149306565523148, 0.014182917773723602, 0.011649270541965961, 0.01116273645311594, 0.006095441989600658, -0.042080581188201904, -0.04053835943341255, 0.015734318643808365, -0.0029696919955313206, -0.0035044199321419, -0.011144377291202545, 0.007816669531166553, -0.04637676477432251, -0.026070864871144295, -0.0009822474094107747, -0.0446876659989357, 0.007899289019405842, -0.038665663450956345, 0.00455781165510416, -0.00556759862229228, -0.030201813206076622, -0.04307200759649277, -0.006251499988138676, -0.026713456958532333, 0.009620516560971737, 0.007509143557399511, -0.019241033121943474, -0.0045279767364263535, -0.0011515014339238405, -0.02970609813928604, 0.02120552770793438, 0.05783325806260109, 0.031266678124666214, 0.027117371559143066, -0.07028117775917053, 0.01659722626209259, -0.015348763205111027, -0.019755106419324875, -0.0356363020837307, -0.020875051617622375, 0.02004886232316494, 0.0023420173674821854, 0.052912842482328415, 0.015670059248805046, 0.014678631909191608, 0.023371979594230652, -0.007380625233054161, 0.022013356909155846, -0.01514680590480566, 0.03444291651248932, 0.03154207393527031, 0.019314471632242203, 0.012126624584197998, -0.03084440343081951, -0.015523181296885014, -0.008771377615630627, 0.03447963669896126, -0.02293134666979313, 0.008078296668827534, 0.02970609813928604, -0.017010321840643883, -0.004447652958333492, 0.0034929451067000628, 0.0010195407085120678, -0.031156519427895546, 0.02346377819776535, -0.02810879983007908, 0.030752604827284813, 0.0014733710559085011, 0.04119931161403656, 0.006077081896364689, 0.06249663978815079, 0.028237318620085716, 0.031193239614367485, 0.015330403111875057, 0.040942274034023285, -0.0015330403111875057, 0.02972445823252201, 0.0318174734711647, -0.0012255142210051417, 0.006701313890516758, 0.005663987249135971, 0.011364693753421307, 0.006549845915287733, -0.051407340914011, -0.021389124915003777, 0.0011078970273956656, 0.04061179980635643, 0.016845084726810455, 0.019314471632242203, 0.03615037724375725, 0.04116259142756462, -0.012704957276582718, 0.013494427315890789, -0.034112442284822464, -0.03732540085911751, 0.023684095591306686, -0.011851227842271328, -0.05680511146783829, 0.0028021589387208223, -0.007247516885399818, 0.05570352450013161, 0.05904500186443329, -0.0008370904834009707, -0.001508943154476583, 0.052949558943510056, -0.009225782006978989, -0.01458683330565691, 0.02796192094683647, 0.005273842252790928, 0.0036031038034707308, -0.009813293814659119, 0.04964480176568031, 0.01936955191195011, -0.006760983262211084, 0.020966850221157074, 0.03525074943900108, -0.017001142725348473, -0.006485586985945702, -0.017395876348018646, -0.020819973200559616, 0.0458994098007679, -0.00829402357339859, -0.06811472773551941, 0.026529859751462936, -0.034094084054231644, -0.006783932913094759, -0.0025015179999172688, -0.008734658360481262, -0.004833207931369543, -0.014660271815955639, 0.0014894359046593308, 0.019626587629318237, 0.028420915827155113, -0.015422201715409756, 0.03725196048617363, 0.02399621158838272, 0.02397785149514675, 0.008422542363405228, 0.06752721220254898, 0.0036558881402015686, -0.005971513222903013, -0.01233776193112135, -0.025942347943782806, -0.04465094581246376, 0.055776964873075485, -0.0633411854505539, 0.024161450564861298, -0.023684095591306686, 0.010712922550737858, -0.04307200759649277, 0.015183525159955025, 0.020911771804094315, -0.005420720670372248, -0.0458994098007679, -0.01597299426794052, -0.012961993925273418, 0.03247842192649841, -0.011640090495347977, -0.02298642508685589, -0.0037476869765669107, 0.03313937410712242, -0.048947133123874664, 0.07777196168899536, -0.052325326949357986, -0.013668844476342201, -0.017285717651247978, -0.023849334567785263, -0.005774145945906639, 0.0605505034327507, 0.02634626254439354, -0.0457158125936985, 0.04880025237798691, -0.003396556479856372, 0.013118051923811436, -0.008688758127391338, -0.05144406110048294, -0.0018004043959081173, -0.0027057703118771315, 0.02687869593501091, -0.011915487237274647, 0.0031303397845476866, -0.0021916967816650867, -0.008482211269438267, -0.02625446394085884, -0.011529931798577309, -0.00728423660621047, 0.028494354337453842, 0.006324938964098692, 0.007146538235247135, -0.01233776193112135, -0.025281395763158798, 0.017368337139487267, 0.010455885902047157, 0.04395327717065811, -0.0584942102432251, -0.006875731982290745, 0.01649624854326248, -0.00882645696401596, -0.023096583783626556, 0.051297180354595184, 0.017772251740098, 0.00915693212300539, -0.03671952709555626, 0.008417951874434948, -0.07806571573019028, 0.007945188321173191, 0.001435504062101245, -0.01029982790350914, 0.02575874887406826, -0.025005999952554703, 0.004277824889868498, 0.007210797630250454, -0.00889989547431469, 0.02858615294098854, 0.025630231946706772, -0.016808364540338516, 0.03486519306898117, -0.059779394418001175, 0.017882410436868668, -0.00999689195305109, -0.018166987225413322, -0.05966923385858536, -0.011649270541965961, -0.013999320566654205, -0.009914272464811802, 0.0012025645701214671, -0.01283347513526678, -0.060366906225681305, -0.028806470334529877, -0.0269154142588377, -0.04483454301953316, 0.04248449578881264, 0.03306593745946884, -0.010134589858353138, -0.013925881125032902, 0.012824295088648796, -0.027209170162677765, 0.0458994098007679, 0.04527517780661583, -0.0036558881402015686, -0.01667984575033188, -0.02353721857070923, -0.04883697256445885, -0.05100342631340027, -0.010887340642511845, 0.02911858633160591, 0.006233139894902706, -0.04648692533373833, 0.06995069980621338, -0.018754499033093452, 0.10156621783971786, -0.042043861001729965, 0.015752678737044334, 0.024583725258708, 0.1111132949590683, -0.028824830427765846, 0.031248319894075394, 0.03387376666069031, -0.00943691935390234, -0.02581382915377617, -0.04351264238357544, 0.02634626254439354, -0.00715571828186512, -0.025520073249936104, 0.024216528981924057, -0.01881875842809677, 0.04042820259928703, -0.043218884617090225, 0.0633411854505539, 0.008417951874434948, 0.01949807070195675, -0.021848119795322418, 0.004897467326372862, -0.04417359456419945, -0.0022100566420704126, -0.039143018424510956, -0.027245890349149704, 0.015633339062333107, -0.0057787359692156315, 0.03954693302512169, 0.03313937410712242, -0.02471224218606949, 0.00861072912812233, 0.01723981834948063, -0.028475994244217873, 0.007628482300788164, 0.03506714850664139, 0.045532215386629105, -0.05045263096690178, 0.009133982472121716, -0.00745865423232317, -0.011373873800039291, 0.009620516560971737, 0.0016822133911773562, -0.009537898004055023, -0.007922238670289516, 0.045458775013685226, -0.05111358314752579, 0.03789455443620682, -0.01600971445441246, -0.005631857551634312, -0.002393654314801097, 0.012631517834961414, -0.04402671381831169, -0.006724263541400433, 0.06734361499547958, 0.04050163924694061, -0.014109479263424873, -0.027943560853600502, 0.004004723392426968, 0.018176166340708733, 0.01714801974594593, -0.015816936269402504, 0.004312249831855297, -0.038702383637428284, 0.009629696607589722, -0.03490191325545311, 0.005333511624485254, -0.01774471253156662, 0.015027467161417007, 0.03025689162313938, 0.01400850061327219, 0.03376360610127449, -0.028329117223620415, -0.05188469588756561, 0.012493819929659367, 0.0011933846399188042, 0.010107050649821758, 0.02577710896730423, 0.005126964300870895, 0.022637588903307915, -0.04410015419125557, 0.015578259713947773, -0.010969959199428558, 0.02397785149514675, -0.00017398745694663376, 0.022600870579481125, 0.016982782632112503, 0.020856691524386406, 0.020232459530234337, -0.024473566561937332, -0.03774767741560936, -0.0341491624712944, 0.00570988655090332, 0.015091726556420326, -0.027704885229468346, 0.03851878643035889, 0.020452776923775673, 0.018488282337784767, -0.017294898629188538, 0.039289895445108414, 0.00124731648247689, -0.03822502866387367, 0.014045219868421555, 0.004385688807815313, 0.03216630592942238, -0.0250977985560894, -0.023078223690390587, 0.004888287279754877, 0.07483439892530441, 0.006696723867207766, -0.01368720456957817, 0.0075229136273264885, -0.018111906945705414, 0.026511499658226967, -0.1204400584101677, -0.02351885847747326, -0.006141341291368008, -0.02170124091207981, -0.029338903725147247, -0.03128504008054733, -0.018222065642476082, -0.034112442284822464, -0.019736746326088905, -0.047772105783224106, -0.038628943264484406, 0.021958278492093086, 0.03392884507775307, -0.03910629823803902, -0.0696936622262001, 0.008193044923245907, -0.009253321215510368, -0.011539111845195293, 0.019002355635166168, 0.026162663474678993, -0.023665735498070717, 0.0020172791555523872, 0.044357191771268845, 0.007936008274555206, -0.0009552814881317317, -0.030183453112840652, -0.0065773855894804, -0.004307659808546305, -0.0366644486784935, 0.004596826154738665, 0.03304757550358772, -0.03670116886496544, 0.032863978296518326, 0.024767322465777397, 0.024198168888688087, -0.0538308285176754, -0.020269179716706276, -0.04398999735713005, 0.023078223690390587, 0.031725671142339706, 0.013062972575426102, 0.008950385265052319, 0.010051971301436424, 0.0071786679327487946, 0.00028099046903662384, 0.05563008785247803, -0.008743837475776672, -0.02164616249501705, 9.932919783750549e-05, 0.02113208919763565, 0.0481393039226532, -0.015045827254652977, 0.0013414103304967284, 0.014926488511264324, -0.008197634480893612, -0.046707239001989365, -0.06822488456964493, 0.04061179980635643, 0.009914272464811802, 0.04975496232509613, -0.05713558569550514, 0.04127275198698044, 0.0052692522294819355, -0.04354936257004738, -0.01953478902578354, 0.027704885229468346, -0.034094084054231644, 0.0026254463009536266, -0.023647377267479897, 0.07689069211483002, -0.008215994574129581, 0.006279039662331343, 0.025483353063464165, -0.05030575394630432, -0.02686033584177494, -0.004764358978718519, 0.012420380488038063, 0.028788110241293907, -0.023720815777778625, -0.021536003798246384, 0.014715351164340973, -0.006026592571288347, -0.03029361180961132, -0.02921038493514061, 0.03679296746850014, -0.02566695027053356, -0.006260679569095373, -0.010887340642511845, -0.0052417125552892685, 0.01726735755801201, 0.041456349194049835, -0.030238531529903412, -0.005186633672565222, 0.02460208348929882, -0.027154091745615005, -0.02118716761469841, -0.045458775013685226, -0.01953478902578354, -0.03334133327007294, -0.03315773606300354, -0.04622988775372505, -0.01831386424601078, 0.002242186339572072, 0.03328625112771988, -0.002873303135856986, -0.0028962527867406607, 0.038004711270332336, 0.006380018312484026, 0.004114882089197636, -0.0017602423904463649, -0.01463273260742426, -0.011025038547813892, 0.01403603982180357, -0.0029444473329931498, -0.001987444469705224, 0.00941855926066637, -0.0061551108956336975, -0.01779061183333397, -0.01320067048072815, 0.013494427315890789, -0.017570294439792633, 0.031156519427895546, 0.00012062938913004473, -0.006279039662331343, -0.023280180990695953, 0.003623758442699909, 0.002430373802781105, -0.029632659628987312, -0.007325545884668827, 0.024308327585458755, 0.03156043589115143, -0.010492605157196522, -0.04714787378907204, 0.028824830427765846, 0.05566680431365967, -0.046597082167863846, -0.036444131284952164, 0.05596056208014488, -0.019828544929623604, -0.04567909240722656, 0.0013161656679585576, -0.0023248051293194294, -0.015569080598652363, 0.009877553209662437, 0.024987639859318733, -0.013769823126494884, -0.021921558305621147, -0.007288826629519463, -0.007054739631712437, 0.016174951568245888, 0.050599511712789536, 0.006040362641215324, 0.017607014626264572, 0.033396411687135696, 0.0120348259806633, 0.01892891712486744, -0.037784393876791, -0.05629103630781174, -0.016331009566783905, -0.00570988655090332, 0.006797702983021736, 0.008716298267245293, -0.03447963669896126, -0.007477013859897852, 0.01227350253611803, 0.02985297702252865, 0.03363508731126785, -0.025005999952554703, -0.02113208919763565, -0.00832615327090025, 0.020489497110247612, -0.026070864871144295, -0.011474852450191975, 0.005104014649987221, 0.04299856722354889, -0.03662772849202156, 0.009886733256280422, -0.03793127462267876, 0.07197027653455734, 0.008477620780467987, 0.004394868388772011, 0.0176804531365633, 0.04957136511802673, 0.005411540623754263, -0.016202492639422417, 0.06906943023204803, 0.01661558635532856, 0.048396337777376175, -0.005104014649987221, 0.006898681633174419, 0.02175632119178772, -0.0048377979546785355, 0.035746462643146515, 0.006861961912363768, 0.042521215975284576, 0.029540861025452614, 0.020930131897330284, -0.03277217969298363, -0.05247220769524574, 0.04681739956140518, -0.06752721220254898, -0.013531146571040154, -0.01055686455219984, -0.05889812484383583, 0.004824027884751558, 0.01712048053741455, -0.015624159947037697, -0.01517434511333704, -0.039253175258636475, -0.008000267669558525, -0.014237997122108936, 0.0008692201226949692, -0.007532093208283186, 0.002971986774355173, 0.004119472112506628, 0.0029192024376243353, 0.04178682342171669, 0.006476406939327717, -0.02520795725286007, 0.0073576755821704865, -0.05875124782323837, 0.014531753957271576, -0.0021549772936850786, -0.04079539701342583, 0.03490191325545311, -0.032386623322963715, 0.0006190683343447745, 0.03361672908067703, -0.008624499663710594, -0.06271695345640182, -0.0006001347792334855, -0.01171352993696928, -0.051150303333997726, 0.025556791573762894, -0.024234889075160027, -0.05041591450572014, -0.008991695009171963, 0.042521215975284576, -0.012585618533194065, -0.014412415213882923, 0.133218452334404, -0.001292068394832313, 0.03815159201622009, 0.025409914553165436]}}, {'type': '零部件', 'name': '声呐基阵系统', 'properties': {'名称': '声呐基阵系统', '型号': '', '技术责任单位': '', '生产单位': '', '切片': '
组成编码名称是否为关重件是否为寿命件备注
01声呐基阵系统核心探测单元
0101基阵阵元组件包含多个换能器单元
01010001压电陶瓷换能器核心声电转换部件,有使用寿命
01010002橡胶透声护罩易老化,需定期更换
0102基阵骨架支撑结构
01020001钛合金主框架耐腐蚀承力结构
02信号处理机柜数据处理核心
0201发射机组件生成发射信号
020101功率放大模块大功率器件,有工作寿命
02010001散热风扇易损件,需定期更换
', 'embedding': [0.02510317601263523, 0.012062212452292442, -0.0485025979578495, 0.0003217194171156734, 0.010059395805001259, -0.006706263870000839, 0.007626109290868044, 0.017907537519931793, -0.012506275437772274, 0.013040964491665363, 0.008704548701643944, -0.00012213159061502665, -0.0034868039656430483, 0.019502539187669754, -0.005573448725044727, -0.02653505466878414, 0.013394402340054512, -0.010856897570192814, 0.009198456071317196, -0.016131283715367317, 0.012170962058007717, 0.007132201921194792, -0.01186283677816391, -0.013602840714156628, 0.008228766731917858, -0.0008031657198444009, 0.009021737612783909, -0.006969076581299305, -0.002938521560281515, 0.03570632264018059, -0.030250687152147293, 0.023526297882199287, 0.04487759247422218, -0.03597819805145264, -0.06398138403892517, -0.042738836258649826, -0.036086950451135635, -0.026770679280161858, -0.07003514468669891, 0.010304084047675133, -0.0367031991481781, 0.00573204318061471, 0.02287379652261734, -0.046363845467567444, 0.01590472087264061, -0.018496600911021233, -0.007041576784104109, -0.04571134224534035, -0.016992222517728806, 0.015868470072746277, -0.029561934992671013, -0.027676932513713837, -0.015080031007528305, -0.007762046996504068, -0.04027383401989937, 0.01782597415149212, -0.05122135579586029, -0.023798173293471336, -0.041252583265304565, 0.0031809441279619932, -0.029652560129761696, 0.07431264966726303, -0.023653173819184303, 0.0030336780473589897, 0.04415259137749672, 0.026100054383277893, 0.029561934992671013, 0.06833139061927795, -0.03074006363749504, -0.04676259681582451, -0.0028048495296388865, -0.022946296259760857, -0.008632048964500427, 0.0015236359322443604, -0.023435672745108604, 0.050025101751089096, 0.00995064526796341, -0.04788634926080704, -0.01919441483914852, -0.016194719821214676, 0.023272547870874405, -0.007481108885258436, -0.002030004048720002, 0.01713722199201584, -0.07627015560865402, 0.029960686340928078, 0.023743798956274986, 0.03010568581521511, -0.06383638083934784, -0.024106299504637718, -0.0017366050742566586, 0.022620046511292458, 0.00120984623208642, -0.016955971717834473, -0.040455084294080734, 0.004961729049682617, 0.0369207002222538, 0.011065335012972355, 0.014273466542363167, 0.03387569263577461, -0.013231277465820312, -0.0019563711248338223, 0.0032828974071890116, 0.0045289937406778336, 0.03849757835268974, 0.02334504760801792, -0.0069554829970002174, 0.0008790643187239766, -0.02122441865503788, -0.012161900289356709, -0.01080252230167389, 0.08294016867876053, -0.036739449948072433, 0.0163850337266922, -0.024650050327181816, -0.06970889121294022, -0.01459971722215414, -0.04654509574174881, 0.009488456882536411, -0.016095032915472984, 0.029108809307217598, -0.017110034823417664, 0.07873515784740448, -0.016403159126639366, 0.026081928983330727, -0.02776755765080452, 0.0160044077783823, 0.03054068796336651, -0.02771318145096302, 0.007204702123999596, -0.012397525832057, 0.07409515231847763, -0.013530340045690536, 0.016240032389760017, -0.015977220609784126, -0.017155347391963005, 0.006996264215558767, -0.0014896515058353543, -0.022583795711398125, -0.03164631500840187, 0.037047576159238815, 0.06282138079404831, 0.060138873755931854, -0.012379400432109833, 0.01941191405057907, -0.040926333516836166, -0.009733145125210285, -0.008292204700410366, -0.027368806302547455, -0.0073995464481413364, 0.014436592347919941, -0.011056272312998772, -0.029380684718489647, 0.0489376001060009, -0.0165481586009264, 0.04803134873509407, -0.006987201981246471, 0.06789638847112656, -0.032262567430734634, 0.03973008319735527, 0.0008835955522954464, 0.03354944288730621, 0.0334225669503212, 0.009180331602692604, -0.006334700621664524, 0.029561934992671013, 0.040926333516836166, 0.01674753427505493, -0.023816298693418503, -0.011192210018634796, 0.002736880676820874, 0.01685628481209278, 0.0205900426954031, 0.0005817004130221903, 0.03596007451415062, -0.007444859016686678, 0.019593164324760437, 0.01750878617167473, 0.019991915673017502, -0.01451815478503704, -0.015125343576073647, -0.0059450119733810425, -0.013602840714156628, -0.013403465040028095, -0.014164716936647892, 0.012361275032162666, 0.02185879461467266, -0.002974771661683917, 0.02229379490017891, 0.04103508219122887, -0.0165481586009264, 0.026136303320527077, -0.003047271864488721, 0.001478323363699019, 0.006665482185781002, -0.0010824045166373253, 0.017907537519931793, -0.025501927360892296, 0.01883191429078579, 0.013303777202963829, 0.013086277060210705, 8.85719564394094e-05, -0.002546567702665925, -0.007204702123999596, -0.06514137983322144, 0.0028614902403205633, -0.044116340577602386, 0.013992528431117535, 0.015243155881762505, -0.00598579365760088, 0.02735068090260029, 0.04498634114861488, 0.07648765295743942, -0.03456444665789604, -0.03186381608247757, 0.03416569530963898, 0.013276590034365654, -0.05937762185931206, -0.008387360721826553, -0.06836763769388199, -0.012433775700628757, 0.04495009034872055, 0.009724082425236702, -0.008314860984683037, 0.04560259357094765, -0.04621884599328041, 0.03480007126927376, 0.028365682810544968, -0.005550792440772057, -0.0327700674533844, -0.021188167855143547, -0.03048631176352501, -0.023018797859549522, -0.0243600495159626, 0.029978811740875244, 0.01946629025042057, -0.04259383678436279, 0.07663265615701675, 0.06514137983322144, 0.01701940968632698, -0.03191819041967392, 0.035398196429014206, 0.017545035108923912, -0.017110034823417664, 0.0005264756618998945, 0.0070053269155323505, 0.010666584596037865, 0.0241969246417284, -0.03302381932735443, -0.00702345184981823, 0.006466106977313757, -0.023381298407912254, -0.027640681713819504, 0.013059088960289955, 0.0564776174724102, 0.0037836015690118074, -0.0005287413368932903, -0.008079235441982746, 0.054556362330913544, 0.012143774889409542, 0.03824382647871971, 0.005881574470549822, -0.00020135783415753394, 0.03112068958580494, 0.04632759466767311, -0.033966317772865295, 0.010666584596037865, -0.022674420848488808, -0.04270258918404579, 0.026879429817199707, 0.030758187174797058, -0.0036386011634021997, -0.03021443635225296, 0.061516374349594116, -0.018850037828087807, 0.016765659675002098, 0.034709446132183075, -0.051620107144117355, 0.0319000668823719, 0.0032964912243187428, -0.024396300315856934, -0.005251729395240545, 0.00806111004203558, 0.02271067164838314, -0.012651275843381882, -0.030413812026381493, -0.013992528431117535, -0.005310636013746262, -0.00944314431399107, -0.06546763330698013, -0.033531319350004196, 0.015814095735549927, 0.03440131992101669, -0.0031061782501637936, -0.03253444284200668, -0.04121633619070053, -0.045240093022584915, -0.1259327530860901, -0.012053149752318859, -0.05143885686993599, 0.03748257830739021, 0.001940511749126017, -0.0013117995113134384, -0.0036386011634021997, -0.009687832556664944, -0.04277508705854416, 0.020553791895508766, 0.03084881231188774, -0.05825386941432953, -0.01798003725707531, -0.024178799241781235, -0.04248508810997009, -0.008024860173463821, -0.005432979669421911, -0.027423180639743805, -0.006574857048690319, -0.0010274630039930344, -0.01151846069842577, -0.05890636891126633, 0.011346273124217987, 0.018106911331415176, -0.006484231911599636, -0.05803636834025383, 0.020662542432546616, -0.021822543814778328, -0.012642213143408298, -0.01295033935457468, -0.026299428194761276, -0.04429759085178375, 0.002114965347573161, 0.01595909520983696, 0.015515032224357128, -0.009316269308328629, -1.0407736226625275e-05, 0.01788034848868847, -0.012433775700628757, 0.016838159412145615, 0.015125343576073647, 0.03206318989396095, -0.007136733271181583, -0.01935753971338272, -0.011590961366891861, -0.03238943964242935, 0.02510317601263523, -0.00870001781731844, -0.07061514258384705, 0.007091420702636242, -0.006846732925623655, -0.03451007232069969, -0.0023018796928226948, -0.015197843313217163, -0.016249096021056175, 0.003740554442629218, -0.023635048419237137, -0.007313452661037445, 0.004014695528894663, -0.03733757510781288, -0.004293368197977543, -0.02078941836953163, 0.015261281281709671, -0.05858011916279793, -0.038171328604221344, -0.01326752733439207, 0.008709080517292023, 0.025085050612688065, 0.03603257238864899, -0.01819753646850586, -0.004556181374937296, -0.013947215862572193, -0.0332050696015358, -0.017418161034584045, -0.0410713329911232, 0.03005131147801876, -0.0408538319170475, -0.05125760659575462, -0.018433162942528725, -0.08337517082691193, -0.01685628481209278, -0.008138141594827175, 0.021713795140385628, -0.00018379920220468193, -0.03601444885134697, 0.0012676197802647948, -0.005718449130654335, -0.038968831300735474, 0.0003327643498778343, 0.19560539722442627, -0.015940969809889793, 0.025719428434967995, -0.0249038003385067, 0.05415761098265648, -0.03313256800174713, 0.014690342359244823, -0.05542636290192604, 0.008704548701643944, -0.02718755602836609, -0.015415344387292862, 0.029543809592723846, 0.010512521490454674, -0.017671911045908928, -0.036938827484846115, 0.07735765725374222, -0.030395686626434326, -0.03112068958580494, 0.08272267132997513, 0.029616311192512512, -0.0044043841771781445, 0.03846132755279541, 0.018487537279725075, -0.018079724162817, -0.05727511644363403, -0.013421590439975262, 0.007444859016686678, 0.02590067870914936, 0.020988792181015015, -0.002385708037763834, 0.018415037542581558, 0.017037535086274147, -0.003151490818709135, -0.04498634114861488, -0.03664882481098175, 0.030450062826275826, 0.03958507999777794, 0.03188193961977959, -0.033005692064762115, 0.024831300601363182, -0.02548380196094513, -0.02100691758096218, -0.03664882481098175, -0.0021795358043164015, -0.008582205511629581, -0.05075010284781456, 0.013412527740001678, -0.037953827530145645, -0.016348782926797867, -0.04542134329676628, -0.016475658863782883, -0.00813361071050167, -0.00031605534604750574, 0.02165941894054413, -0.028583183884620667, -0.025338802486658096, -0.02356254868209362, -0.002990631153807044, 0.03664882481098175, 0.005867980886250734, 0.03393007069826126, 0.00904439389705658, -0.09410519152879715, 0.008500642143189907, 0.005043291486799717, -0.02446880005300045, -0.02265629731118679, -0.001139045343734324, 0.03425632044672966, -0.005963137373328209, 0.061407625675201416, 0.004368133842945099, 0.004739697091281414, 0.025465676560997963, -0.003926336299628019, 0.036938827484846115, -0.00955189485102892, 0.08076516538858414, -0.0029860998038202524, 0.014844405464828014, 0.011581898666918278, -0.01605878211557865, -0.03423819690942764, 0.012234400026500225, 0.029833810403943062, 0.011790337041020393, 0.014563467353582382, 0.03820757940411568, -0.018759412690997124, 0.006121731363236904, -0.014010653831064701, -0.03238943964242935, -0.013494090177118778, 0.0493726022541523, -0.028746308758854866, 0.0327700674533844, -0.0056142304092645645, 0.010285958647727966, -0.019611289724707603, 0.05963137373328209, 0.026607554405927658, 0.008287672884762287, 0.023743798956274986, 0.027060680091381073, -0.018868163228034973, 0.04527634382247925, 0.06438013166189194, -0.02691568061709404, -0.00015831086784601212, -0.03139256313443184, -0.0013775028055533767, 0.025918802246451378, -0.024178799241781235, -0.042956337332725525, -0.02078941836953163, 0.035887572914361954, -0.024650050327181816, 0.0122615871950984, 0.02350817248225212, 0.022692546248435974, -0.003047271864488721, -0.0008513103239238262, -0.007694078143686056, 0.009130487218499184, 0.024668175727128983, -0.005392198450863361, -0.07989516109228134, -0.0018408240284770727, 0.019285039976239204, 0.06416263431310654, 0.03809882700443268, -0.01611315831542015, 0.03016006201505661, 0.004703447222709656, -0.0244144257158041, -0.021206293255090714, 0.036521948873996735, 0.01628534495830536, -0.012750963680446148, -0.02084379270672798, 0.06325638294219971, -0.004766884725540876, -0.004993447568267584, 0.014246279373764992, 0.005922355689108372, -0.049481350928545, 0.013829403556883335, -0.06869389116764069, -0.009542832151055336, 0.027803806588053703, -0.02669817954301834, -0.05941387265920639, -0.0165481586009264, -0.0488288514316082, 0.0247406754642725, 0.03325944393873215, -0.02686130441725254, -0.0030518032144755125, -0.016946909949183464, -0.004766884725540876, 0.004576571751385927, 0.031048187986016273, 0.00655673211440444, 0.021931294351816177, 0.011908149346709251, 0.014182841405272484, -0.024070048704743385, 0.05879762023687363, -0.001513440627604723, -0.0006689271540381014, 0.010213457979261875, -0.011264710687100887, -0.049118850380182266, 0.0748201534152031, -0.03383944556117058, 0.02590067870914936, -0.047052595764398575, 0.023707548156380653, -0.03969383239746094, 0.02941693551838398, 0.027586307376623154, 0.016530033200979233, -0.029543809592723846, -0.04498634114861488, -0.005455635953694582, 0.029217559844255447, -0.011808461509644985, -0.005786417983472347, 0.011681586503982544, 0.012334087863564491, -0.025701303035020828, 0.08758018165826797, -0.04070883244276047, 0.0027867243625223637, -0.0009855489479377866, -0.025230051949620247, -0.014617842622101307, 0.030558813363313675, -0.016638783738017082, -0.019031288102269173, 0.048430100083351135, 0.00583626190200448, 0.007657828275114298, -0.020916292443871498, -0.02963443659245968, -0.010621272027492523, 0.004789541009813547, 0.009497519582509995, -0.014826280064880848, -0.014835342764854431, -0.019031288102269173, -0.005451105069369078, -0.022746922448277473, -0.007354233879595995, 0.0028048495296388865, 0.028637558221817017, 0.02590067870914936, 0.024215050041675568, 0.00012645045353565365, -0.02155066840350628, 0.03467319533228874, 0.013557528145611286, 0.03911383077502251, -0.03393007069826126, -0.012533463537693024, -0.022837547585368156, 0.011908149346709251, -0.05212760716676712, 0.05027885362505913, 0.008686424233019352, 0.010430959053337574, -0.029543809592723846, -0.006506888195872307, -0.062205128371715546, 0.03378506749868393, 0.020735042169690132, -0.022728797048330307, 0.02504880167543888, 0.012071275152266026, 0.001762659871019423, 0.0017943786224350333, 0.01740003563463688, 0.023471923545002937, 0.016421284526586533, -0.028492558747529984, 0.03565194830298424, -0.013494090177118778, 0.03947633132338524, 0.03043193742632866, -0.024450674653053284, -0.05122135579586029, -0.005374073516577482, -0.009633457288146019, -0.025302551686763763, -5.47999152331613e-05, -0.00626220041885972, -0.04650884494185448, -0.031211314722895622, -0.04241258651018143, -0.04186883568763733, 0.0329875685274601, 0.02579192817211151, -0.014989405870437622, -0.007929704152047634, 0.013584715314209461, -0.05560761317610741, 0.04418884217739105, 0.0568038672208786, -0.029380684718489647, -0.04321008920669556, -0.009094237349927425, -0.03643132373690605, -0.06343763321638107, 0.007168452255427837, 0.04339133948087692, -0.001230236841365695, -0.03499944508075714, 0.016937846317887306, -0.019484415650367737, 0.06387262791395187, -0.05169260501861572, 0.02468630112707615, 0.005242667160928249, 0.04611009359359741, -0.009048924781382084, 0.02639005333185196, 0.03712007775902748, -0.00037807694752700627, -0.027096930891275406, -0.047741346061229706, 0.04484134167432785, -0.0074584526009857655, -0.03383944556117058, 0.043427590280771255, -0.005990324541926384, 0.051148854196071625, -0.01169971190392971, 0.013910965994000435, 0.01564190723001957, 0.036304447799921036, -0.022166920825839043, 0.031030064448714256, -0.03423819690942764, -0.006978139281272888, -0.023761924356222153, -0.029108809307217598, 0.023381298407912254, 0.01728222332894802, -0.003468679031357169, 0.02287379652261734, -0.020300041884183884, 0.015922844409942627, 0.009415957145392895, -0.053432609885931015, 0.013602840714156628, 0.03474569693207741, 0.018596287816762924, -0.009660644456744194, -0.005790949333459139, 0.0006394739612005651, -0.023598797619342804, -0.004587899893522263, 0.000891525240149349, -0.029507560655474663, 0.03440131992101669, 0.02180442027747631, -0.05676761642098427, 0.03483632206916809, -0.016412220895290375, -0.004114383365958929, 0.005573448725044727, 0.021822543814778328, -0.01244283840060234, -0.012116587720811367, 0.0737326517701149, 0.038642577826976776, -0.00923017505556345, -0.008106422610580921, 0.02936255931854248, 0.06470638513565063, 0.0022339108400046825, -0.019176289439201355, 0.025610677897930145, -0.042738836258649826, -0.0029135998338460922, -0.02191317081451416, -0.010222520679235458, -0.010666584596037865, 0.02111566811800003, 0.007317983545362949, 0.002723286859691143, 0.021423794329166412, -0.041723836213350296, -0.04857509955763817, 0.016412220895290375, 0.01487159263342619, 0.01595909520983696, 0.049445100128650665, 0.03603257238864899, -0.003692976199090481, -0.032842569053173065, 0.02606380358338356, 0.009103300049901009, 0.013729715719819069, -0.000338428420946002, 0.008187985979020596, 0.0048484476283192635, 0.03516257181763649, 0.01803441159427166, -0.03112068958580494, -0.05165635421872139, -0.04498634114861488, 0.004576571751385927, 0.007997673004865646, -0.011337210424244404, 0.029217559844255447, 0.03447382152080536, 0.019919415935873985, -0.028746308758854866, 0.008731736801564693, -0.009823770262300968, -0.03016006201505661, 0.01470846775919199, 0.021586919203400612, 0.017490660771727562, -0.015678158029913902, -0.040237583220005035, -0.022475045174360275, 0.07924266159534454, 0.060718875378370285, -0.029978811740875244, -0.010811585001647472, -0.01061220932751894, 0.00917126890271902, -0.11172273010015488, 0.01729128509759903, -0.030250687152147293, -0.010140958242118359, -0.017309410497546196, -0.01169971190392971, -0.005396729800850153, -0.005297041963785887, -0.023363173007965088, -0.06169762462377548, -0.019919415935873985, 0.05372260883450508, 0.008881268091499805, -0.030141936615109444, -0.05977637320756912, 0.0018985976930707693, -0.010304084047675133, -0.02494005113840103, 0.02080754190683365, 0.02180442027747631, -0.035670071840286255, -0.0014692607801407576, 0.05999387428164482, 0.00359781994484365, 0.016575345769524574, -0.002906802808865905, -0.025121301412582397, 0.002312075113877654, -0.0328788161277771, 0.00622141920030117, 0.008242360316216946, -0.052308857440948486, 0.0405275821685791, 0.04186883568763733, 0.013729715719819069, -0.054556362330913544, -0.011310023255646229, -0.028474433347582817, 0.03838882967829704, 0.019448164850473404, 0.055245112627744675, 0.023961298167705536, 0.006778764072805643, 0.024668175727128983, 0.01058502122759819, 0.014617842622101307, -0.015016593039035797, -0.009832832962274551, -0.001977894688025117, 0.0037518825847655535, 0.04857509955763817, -0.0003987508243881166, -0.020191291347146034, -0.010276895947754383, -0.004277508705854416, -0.02584630250930786, -0.07714015990495682, 0.04313758760690689, -0.0035525073762983084, 0.009175799787044525, -0.040092583745718, 0.05897887051105499, 0.01101095974445343, -0.06612013280391693, -0.017744410783052444, 0.031410690397024155, -0.04868384823203087, 0.01669315993785858, 0.011581898666918278, 0.05452011153101921, -0.007037045434117317, 0.047052595764398575, 0.01818847469985485, -0.06601138412952423, -0.039766330271959305, 0.01697409711778164, -0.002582817804068327, 0.06090012565255165, -0.02031816728413105, -0.026825055480003357, 0.005115791689604521, 0.002158012241125107, -0.008541423827409744, -0.024559425190091133, 0.026661928743124008, -0.018705038353800774, -0.00933439377695322, 0.005636886693537235, -0.023490048944950104, 0.034020695835351944, 0.018324412405490875, -0.01146408636122942, 0.007227358408272266, 0.015252218581736088, -0.03570632264018059, 0.00281164632178843, -0.04857509955763817, -0.03510819748044014, -0.012225337326526642, -0.036250073462724686, 0.0006060559535399079, -0.02314567193388939, 0.009986895136535168, 0.025121301412582397, -0.00861392356455326, -0.02223942056298256, 0.03191819041967392, -0.008786112070083618, 0.016466597095131874, 0.011835649609565735, -0.0012846119934692979, -0.016357846558094025, 0.031301937997341156, -0.017463473603129387, -0.019121913239359856, 0.011817524209618568, 0.012424713000655174, -0.03889632970094681, -0.0015021124854683876, -0.02031816728413105, 0.0032171939965337515, 0.019647540524601936, -0.001122619491070509, -0.006416263058781624, 0.0008949236944317818, -0.00551907392218709, -0.014083153568208218, -0.023906923830509186, 0.002890943316742778, 0.034328822046518326, 0.0181341003626585, -0.010603146627545357, -0.04748759791254997, 0.0287281833589077, 0.05894261971116066, -0.04930010065436363, -0.04397134110331535, 0.06452513486146927, -0.005908762104809284, -0.05825386941432953, -0.004166492726653814, 0.016258157789707184, -0.015505969524383545, -0.004807665944099426, -0.0008156266994774342, -0.00551907392218709, -0.024831300601363182, -0.02271067164838314, -0.012905026786029339, 0.024595675989985466, 0.05067760497331619, 0.00044378021266311407, 0.02243879623711109, -0.008455329574644566, 0.01451815478503704, -0.009905332699418068, -0.027006305754184723, -0.08207016438245773, -0.044333841651678085, -0.00797954760491848, -0.01494409330189228, -0.011663461104035378, -0.011745024472475052, -0.04165133461356163, 0.01681097224354744, 0.017155347391963005, 0.03780882805585861, -0.02260192111134529, 0.009166737087070942, 0.016774721443653107, 0.03371256962418556, 0.0009640253847464919, -0.003115240717306733, 0.03668507561087608, 0.04201383516192436, -0.023653173819184303, 0.0020390667486935854, -0.04190508648753166, 0.11230272799730301, 0.00995064526796341, 0.028963809832930565, 0.006837670225650072, 0.04640009626746178, 0.030776312574744225, -0.027531931176781654, 0.09323519468307495, 0.03260694071650505, 0.042630087584257126, -0.012234400026500225, -0.00702345184981823, 0.022674420848488808, -0.014291591942310333, 0.03505382314324379, -0.020934417843818665, 0.05484636127948761, 0.032842569053173065, 0.01850566267967224, -0.009570019319653511, -0.08141766488552094, 0.054230112582445145, -0.0738414004445076, -0.030305061489343643, -0.034437570720911026, -0.04404383897781372, 0.0031265688594430685, 0.025719428434967995, 0.003455085214227438, -0.019031288102269173, -0.027042554691433907, -0.013566589914262295, 0.002702896250411868, 0.01749972254037857, -0.019774414598941803, 0.026136303320527077, -0.02553817816078663, -0.013929091393947601, 0.03166443854570389, -0.06307513266801834, -0.015397218987345695, 0.04676259681582451, -0.048756349831819534, 0.014907843433320522, 0.00045340912765823305, -0.019085664302110672, 0.014509092085063457, -0.036195699125528336, 0.014762843027710915, 0.01146408636122942, 0.024015674367547035, -0.06358262896537781, -0.01788034848868847, -0.013557528145611286, -0.011210335418581963, 0.043645087629556656, 0.043065089732408524, -0.04596509411931038, 0.0033372724428772926, 0.03219006583094597, -0.021713795140385628, -0.008690955117344856, 0.10621272027492523, 0.02925381064414978, 0.020716916769742966, 0.011029085144400597], '组成编码': '01', '是否为关重件': '是', '是否为寿命件': '香', '备注': '核心探测单元'}}, {'type': '零部件', 'name': '基阵阵元组件', 'properties': {'名称': '基阵阵元组件', '型号': '', '技术责任单位': '', '生产单位': '', '切片': '
组成编码名称是否为关重件是否为寿命件备注
01声呐基阵系统核心探测单元
0101基阵阵元组件包含多个换能器单元
01010001压电陶瓷换能器核心声电转换部件,有使用寿命
01010002橡胶透声护罩易老化,需定期更换
0102基阵骨架支撑结构
01020001钛合金主框架耐腐蚀承力结构
02信号处理机柜数据处理核心
0201发射机组件生成发射信号
020101功率放大模块大功率器件,有工作寿命
02010001散热风扇易损件,需定期更换
', 'embedding': [0.0363113097846508, 0.0099274767562747, -0.06167556717991829, 0.008509904146194458, -0.0005092303617857397, -0.05827696993947029, 0.013961073011159897, -0.00913148932158947, -0.01608966663479805, -0.0054645841009914875, 0.024720311164855957, -0.022716928273439407, -0.01531156711280346, 0.04450371488928795, 0.008371277712285519, -0.019872840493917465, 0.010786069557070732, 0.006573599297553301, 0.017932062968611717, -0.0212501659989357, -0.02942468225955963, -0.0008714491268619895, 0.01989072747528553, 0.01978340372443199, -0.02053467184305191, 0.00273676379583776, 0.008058249019086361, -0.010320997796952724, 0.011063323356211185, 0.0483316071331501, -0.027385525405406952, 0.001897176494821906, 0.0790620669722557, -0.04854625463485718, -0.06074542552232742, -0.05960063263773918, 0.03516652062535286, -0.012208113446831703, -0.07097698748111725, 0.018674388527870178, -0.06550345569849014, -0.02328932285308838, 0.0094713494181633, -0.02718876488506794, 0.023718619719147682, -0.040067654103040695, -0.02148270234465599, -0.04647132381796837, 0.007633424364030361, 0.011009660549461842, -0.020427348092198372, -0.028279893100261688, -0.00922987051308155, -0.029782429337501526, -0.04110511764883995, 0.012020296417176723, -0.07144206017255783, -0.036132436245679855, -0.030945107340812683, 0.006466275081038475, -0.0244698878377676, 0.07233642041683197, 0.014506637118756771, 0.030265389010310173, 0.01928255893290043, 0.015025369822978973, 0.004842998925596476, 0.024702424183487892, -0.001476823934353888, -0.0207672081887722, -0.0244698878377676, -0.00800905842334032, 0.0047490899451076984, -0.003792117116972804, -0.011170647107064724, 0.050800058990716934, 0.033485110849142075, -0.021017631515860558, -0.02443411387503147, 0.03432581573724747, 0.02243073098361492, -0.015875019133090973, -0.00833103060722351, 0.0024036120157688856, 0.00357299717143178, 0.04368089884519577, 0.017225513234734535, 0.061854440718889236, -0.06815078854560852, -0.056094713509082794, -0.03037271276116371, -0.01145684439688921, 0.01999805122613907, 0.01121536549180746, -0.06110317260026932, -0.0026763940695673227, 0.0157855823636055, 0.049369074404239655, 0.051372457295656204, 0.008022474125027657, -0.021983547136187553, 0.05298231542110443, 0.012700014747679234, -0.006850853096693754, 0.07655783742666245, 0.015150581486523151, -0.028226230293512344, -0.036579620093107224, -0.018182486295700073, -0.03543483093380928, -0.0037630503065884113, 0.04385976865887642, -0.010070575401186943, -0.026008199900388718, 0.006944761611521244, -0.05180175229907036, -0.00770497415214777, -0.033592432737350464, -0.001730600604787469, -0.04783076047897339, 0.03792117163538933, -0.07426825910806656, 0.07065501064062119, -0.01456029899418354, 0.056094713509082794, -0.019693966954946518, 0.006667507812380791, 0.05258879438042641, -0.03325257450342178, 0.04722259193658829, -0.022108757868409157, 0.018728051334619522, -0.026455383747816086, 0.02980031631886959, -0.03960258141160011, 0.007722861133515835, 0.012861001305282116, 0.040783148258924484, -1.865594276750926e-05, -0.039352159947156906, 0.00792409386485815, 0.04786653444170952, 0.04357357323169708, 0.017502767965197563, 0.025614678859710693, -0.011349520646035671, -0.0075574032962322235, -0.003695972729474306, -0.031553275883197784, 0.01605389267206192, 0.024291014298796654, -0.04235723242163658, -0.010016913525760174, 0.017019808292388916, 0.012342268601059914, 0.010204730555415154, 0.013800086453557014, 0.06743529438972473, -0.026294397190213203, 0.04686484485864639, 0.018781712278723717, 0.019640304148197174, 0.012038183398544788, -0.005504830274730921, 0.006765888538211584, 0.006269514560699463, 0.04504033550620079, 0.0033315180335193872, -0.0344868004322052, -0.026348059996962547, -0.0023029956500977278, 0.03860089182853699, 0.018656501546502113, -0.012789451517164707, 0.035756804049015045, -0.005187330301851034, 5.100688213133253e-05, -0.02246650494635105, 0.01788734458386898, -0.0035774691496044397, -0.03996032848954201, -0.002166604623198509, -0.006578071042895317, -0.009829096496105194, -0.026330173015594482, -0.0081655727699399, -0.009900645352900028, 0.022967351600527763, 0.019532980397343636, 0.04439638927578926, -0.01992650330066681, -0.020409461110830307, -0.013701706193387508, -0.04818850755691528, 0.02019481360912323, 0.00928353238850832, 0.0013538484927266836, -0.021411152556538582, 0.02650904469192028, 0.01364804431796074, -0.01935410685837269, -0.0009625627426430583, 0.011063323356211185, -0.008653002791106701, -0.04453948885202408, 0.03974568098783493, -0.036847930401563644, -0.015401003882288933, 0.018271923065185547, -0.01293255016207695, 0.027278201654553413, 0.04919020086526871, 0.04822428151965141, -0.019443543627858162, -0.03006862662732601, 0.02674158103764057, -0.005799971520900726, -0.06596852838993073, 0.016340089961886406, -0.08428516983985901, -0.02983609214425087, 0.03115975484251976, -0.02416580356657505, 0.023682845756411552, 0.03132074326276779, -0.018423965200781822, 0.0350949726998806, 0.01897847279906273, -0.034433141350746155, 0.00580444373190403, -0.038815539330244064, -0.015660371631383896, 0.003016253700479865, -0.03892286494374275, 0.06911670416593552, 0.013692762702703476, -0.04389554634690285, 0.04632822424173355, 0.03285905346274376, -0.03055158630013466, -0.03713412955403328, 0.03505919501185417, 0.03323468565940857, -0.014703397639095783, 0.018370304256677628, 0.022108757868409157, 0.0032353736460208893, 0.01625959761440754, -0.04182061180472374, -0.04886822775006294, -0.004999512806534767, 0.0035573458299040794, -0.031410180032253265, 0.024344677105545998, 0.039316385984420776, 0.011090153828263283, -0.008393636904656887, 0.009829096496105194, 0.05108625814318657, 0.022788478061556816, 0.016921428963541985, 0.038815539330244064, 0.028458766639232635, 0.03597145155072212, 0.035184409469366074, -0.016679950058460236, -0.008469657972455025, 0.0014924753922969103, -0.002117414493113756, 0.005987789016216993, -0.002566833980381489, 0.022251857444643974, 0.001367263961583376, 0.029585668817162514, -0.0027188765816390514, 0.05541499704122543, 0.02854820340871811, -0.029245808720588684, 0.06553923338651657, 0.014461918734014034, -0.009999025613069534, 0.022663265466690063, 0.00973965972661972, -0.010151068679988384, -0.0070923324674367905, 0.020892418920993805, -0.04178483784198761, -0.033270463347435, -0.005366203375160694, -0.0366690568625927, -0.03239398077130318, 0.011787760071456432, 0.0539124570786953, -0.011116985231637955, -0.04060427471995354, -0.005325957201421261, -0.02246650494635105, -0.11476520448923111, -0.022627491503953934, -0.04511188343167305, 0.0052901823073625565, -0.0033359897788614035, -0.008872123435139656, -0.03892286494374275, -0.0025511826388537884, -0.06514570862054825, 0.014578185975551605, -0.0384935662150383, -0.08643165230751038, -0.01955086924135685, -0.005710534751415253, -0.03536328300833702, -0.02114284224808216, -0.009721771813929081, -0.011787760071456432, -0.0036177155561745167, 0.011868253350257874, 0.003264440456405282, -0.054771050810813904, 0.011116985231637955, -0.021661575883626938, -0.012655296362936497, -0.008997335098683834, 0.018781712278723717, 0.011277970857918262, -0.00019075177260674536, -0.02722453884780407, -0.03999610245227814, -0.026795243844389915, 0.017225513234734535, 0.0075708189979195595, -0.019837066531181335, -0.0033046870958060026, -0.0003230901784263551, -0.006001204252243042, -0.00032951842877082527, 0.017189739271998405, 0.020928194746375084, 0.029925528913736343, 0.006591486744582653, -0.05960063263773918, -0.028226230293512344, -0.030533697456121445, 0.000289830903057009, 0.0059296549297869205, -0.07369586080312729, -0.02083875797688961, 0.020481010898947716, -0.020731432363390923, -0.03491609916090965, -0.03956680744886398, -0.03953103348612785, 0.024398338049650192, -0.05874204263091087, 0.03411116823554039, 0.025847213342785835, -0.02341453544795513, -0.004096202086657286, -0.0034589653369039297, 0.019765516743063927, -0.03373553231358528, -0.008362334221601486, 0.002370073227211833, 0.012995156459510326, -0.059743732213974, 0.037491876631975174, -0.03293060138821602, -0.016617342829704285, 0.0003893292450811714, -0.02409425377845764, -0.03357454761862755, -0.021733123809099197, 0.04360934719443321, -0.006256098859012127, -0.01629537157714367, -0.023199886083602905, -0.06847275793552399, -0.023468196392059326, 0.03268017992377281, 0.008152157999575138, 0.02722453884780407, -0.03384285792708397, 0.030390599742531776, 0.022108757868409157, -0.008469657972455025, -0.042106810957193375, 0.2006244659423828, -0.08671785145998001, -0.019193122163414955, -0.033592432737350464, 0.04858202859759331, -0.033270463347435, 0.008898953907191753, -0.03981722891330719, 0.0023924324195832014, -0.027331862598657608, -0.012351212091743946, -0.020588334649801254, 0.015302623622119427, -0.020785095170140266, 0.023003125563263893, 0.08729024231433868, -0.014998539350926876, -0.04314427822828293, 0.0877910926938057, 0.015159524977207184, -0.01863861456513405, 0.04178483784198761, -0.016751497983932495, -0.007512684911489487, -0.0483316071331501, -0.016894597560167313, 0.03337778523564339, 0.027349751442670822, 0.023271435871720314, 0.017091358080506325, -0.010106350295245647, 0.025918763130903244, -0.019908614456653595, -0.0029692992102354765, -0.016814105212688446, 0.016205934807658195, 0.05884936451911926, 0.06510993838310242, 0.01211867667734623, 0.025239044800400734, -0.012530085630714893, -0.02026636153459549, -0.038100045174360275, 0.019747629761695862, 0.006685395259410143, -0.052660346031188965, 0.04629245027899742, -0.05412710830569267, 0.013665931299328804, -0.005312541499733925, 0.006028035189956427, -0.010365716181695461, -0.01883537508547306, 0.027993695810437202, -0.012002408504486084, -0.04368089884519577, -0.02810101956129074, 0.004905604291707277, 0.02480974793434143, -0.025382142513990402, 0.027635948732495308, -0.0033963597379624844, -0.056738659739494324, 0.008120854385197163, 0.03988878056406975, -0.007356170564889908, -0.02658059448003769, -0.011385295540094376, 0.0238617192953825, -0.0011772109428420663, 0.07112008333206177, -0.014327763579785824, -0.036132436245679855, 0.009211982600390911, 0.012494310736656189, 0.031517501920461655, 0.025739889591932297, 0.06979642063379288, -0.036472298204898834, -0.030497923493385315, -0.01707347109913826, 0.003018489573150873, -0.02480974793434143, 0.04196371138095856, 0.018271923065185547, 0.022931575775146484, 0.02416580356657505, 0.029317358508706093, -0.030712570995092392, 0.018352415412664413, -0.027779046446084976, -0.06804346293210983, -0.003678085282444954, 0.010213674046099186, -0.045433856546878815, 0.015320511534810066, 0.0397099070250988, -0.03183947503566742, -0.0403180755674839, 0.03784962370991707, 0.011689379811286926, -0.03784962370991707, 0.013209804892539978, -0.03353877365589142, -0.00598331680521369, 0.032572854310274124, 0.03513074666261673, -0.013952129520475864, -0.00926564447581768, -0.022484393790364265, -0.04064004868268967, 0.06256993114948273, 0.00327114830724895, -0.03130285441875458, -0.016814105212688446, -0.010034800507128239, -0.034468915313482285, 0.016205934807658195, -0.01924678310751915, 0.026723694056272507, 0.031857360154390335, 0.0029648274648934603, 0.026992004364728928, 0.02552524209022522, 0.006850853096693754, -0.036472298204898834, -0.047365691512823105, 0.01113487221300602, 0.014837552793323994, 0.05766880139708519, -0.0018882328877225518, -0.0412839911878109, 0.0022784005850553513, -0.01962241716682911, -0.007441135589033365, -0.029138484969735146, -0.01346022728830576, 0.020284250378608704, -0.0006741293473169208, -0.015248961746692657, 0.014497693628072739, -0.037527650594711304, -0.004527734126895666, 0.009220926091074944, -0.03164271265268326, -0.03623976185917854, -0.0020313316490501165, -0.06629049777984619, -0.013701706193387508, 0.00603250740095973, -0.024219464510679245, 0.004386871587485075, 0.007646840065717697, -0.048045407980680466, 0.023038901388645172, 0.05713218078017235, -0.007991171441972256, 0.014300932176411152, -0.02514960803091526, -0.0013057761825621128, -0.0122349439188838, 0.02885228767991066, 0.07476910203695297, -0.016375863924622536, 0.02579355239868164, 0.07301614433526993, -0.049440622329711914, 0.028619753196835518, -0.009355081245303154, 0.0032935074996203184, 0.017690584063529968, 0.0008289666729979217, -0.0492975227534771, 0.06303500384092331, 0.006171134300529957, 0.027313975617289543, -0.017064526677131653, 0.0252569317817688, -0.009596561081707478, 0.05022766441106796, 0.023718619719147682, 0.04178483784198761, -0.0016154508339241147, -0.0492975227534771, -0.00783912930637598, -0.0034455498680472374, -0.04496878758072853, -0.0004919019993394613, 0.01822720468044281, 0.023325098678469658, 0.004485251847654581, 0.07870431989431381, -0.020355798304080963, -0.006193493492901325, 0.03770652413368225, -0.019568756222724915, -0.011617830954492092, -0.044110193848609924, -0.05545077100396156, -0.0158481877297163, 0.040747370570898056, -0.00359312049113214, 0.03641863539814949, -0.020284250378608704, 0.0027792463079094887, -0.04858202859759331, 0.010848674923181534, -0.019121572375297546, -0.0003655726322904229, -0.016044948250055313, -0.030694684013724327, -0.010267335921525955, -0.0033002151176333427, -0.0024528021458536386, -0.00032029527937993407, 0.009109130129218102, 0.04843892902135849, 0.04861780256032944, -0.019067909568548203, -0.022699041292071342, 0.03112398087978363, 0.04428906738758087, 0.00695817731320858, 0.001529367989860475, -0.004100673831999302, -0.03720567747950554, 0.02983609214425087, -0.051944851875305176, 0.040067654103040695, -0.02779693529009819, 0.005862577352672815, -0.011564169079065323, -0.017091358080506325, -0.044324841350317, 0.03366398438811302, -0.014909102581441402, -0.006493106484413147, 0.055236123502254486, 0.013925298117101192, -0.020588334649801254, 0.021947773173451424, 0.004981625825166702, 0.027331862598657608, 0.06124626845121384, -0.026258623227477074, 0.04858202859759331, 0.0059430706314742565, 0.0643586665391922, 0.04106934368610382, 0.015964455902576447, -0.02064199559390545, 0.0011850366136059165, 0.017556428909301758, -0.013075649738311768, -0.023468196392059326, 0.006045922636985779, -0.002149835228919983, -0.006779303774237633, -0.049476396292448044, -0.05577274411916733, -0.013576495461165905, 0.012861001305282116, -0.01571403257548809, -0.009372969157993793, -0.023808056488633156, -0.036740608513355255, 0.010562477633357048, -0.0070163109339773655, -0.037384551018476486, -0.038887087255716324, 0.018271923065185547, -0.005858105607330799, -0.018924811854958534, -0.01030311081558466, 0.08278263360261917, -0.02219819463789463, -0.026079749688506126, -0.014900158159434795, 0.01785157062113285, 0.01667100563645363, -0.043394699692726135, 0.019693966954946518, 0.0066764517687261105, -0.028798626735806465, 0.029066935181617737, 0.001790970447473228, 0.024416226893663406, 0.004789336584508419, 0.019157346338033676, -0.020015940070152283, 0.048653580248355865, 0.0066630360670387745, -0.04321582615375519, 0.045398082584142685, 0.0171807948499918, 0.021321715787053108, -0.01666206121444702, -0.04715104028582573, 0.0034656731877475977, 0.035756804049015045, -0.02874496392905712, 0.03659750893712044, -0.01480177789926529, -0.01788734458386898, 0.021661575883626938, -0.0037652861792594194, 0.014873327687382698, 0.033037927001714706, -0.02820834331214428, 0.017162907868623734, 0.010589308105409145, -0.0012577039888128638, 0.011206422001123428, -0.06986796855926514, 0.03988878056406975, 0.009703884832561016, 0.028118906542658806, -0.0068374378606677055, -0.00926564447581768, 0.005835746414959431, -0.046757519245147705, -0.011465787887573242, -0.007535044103860855, -0.025024395436048508, 0.03262651711702347, -0.007593178190290928, -0.010365716181695461, 0.015231074765324593, -0.04035384953022003, 0.012583747506141663, -0.013683819212019444, 0.034737225621938705, -0.01525790523737669, -0.023736506700515747, 0.02647327072918415, 0.01405050978064537, 0.025042282417416573, 0.0122349439188838, 0.03985300660133362, 0.09294264763593674, -0.04897554963827133, -0.016536850482225418, 0.06575388461351395, -0.018316641449928284, 0.00990958884358406, 0.004561272915452719, -0.03634708374738693, 0.014891214668750763, 0.018406078219413757, 0.0026070806197822094, 0.0050218719989061356, 0.004465128760784864, -0.04350202530622482, -0.06536035984754562, -0.008769270963966846, 0.008058249019086361, 0.015892906114459038, 0.01696614734828472, 0.04382399469614029, -0.0391017384827137, -0.021035518497228622, 0.017091358080506325, 0.031481727957725525, -0.0034433139953762293, -0.03418271616101265, -0.008263953030109406, 0.014184664934873581, 0.005115780513733625, 0.0175474863499403, -0.03200045973062515, -0.04761611297726631, -0.017735302448272705, 0.002161014825105667, 0.0015729684382677078, -0.01520424336194992, 0.013809030875563622, 0.021536363288760185, 0.0013784435577690601, -0.0036132438108325005, -0.022645378485322, -0.01030311081558466, -0.01849551498889923, -0.03396806865930557, -0.0009094597189687192, 0.019067909568548203, -0.0008038125815801322, -0.0018748174188658595, -0.017726359888911247, 0.05412710830569267, 0.09101080894470215, -0.009310362860560417, -0.013800086453557014, -0.018388191238045692, -0.024720311164855957, -0.11068689078092575, 0.02420157752931118, -0.028047356754541397, 0.006376838777214289, -0.020427348092198372, 0.000583015673328191, 0.010410434566438198, -0.008898953907191753, -0.0023029956500977278, -0.04353779926896095, -0.008657475002110004, 0.0075216288678348064, 0.02507805824279785, -0.015740863978862762, -0.036812156438827515, 0.0027792463079094887, 0.023003125563263893, -0.019711853936314583, 0.015830300748348236, 0.013424452394247055, -0.055307671427726746, -0.018924811854958534, 0.06282036006450653, 0.009820152074098587, 0.06303500384092331, 0.012333324179053307, -0.0028194927144795656, -0.003633366897702217, -0.016349034383893013, 0.05215949937701225, 0.00630528898909688, -0.0038860258646309376, 0.025954537093639374, 0.05441330373287201, -0.03395017981529236, -0.03244764357805252, 0.0029827149119228125, -0.030462149530649185, 0.04453948885202408, 0.01397001650184393, 0.06772148609161377, 0.011546281166374683, 0.017976781353354454, 0.011188534088432789, 0.02559679187834263, 0.006935818120837212, -0.00880504585802555, 0.011689379811286926, -0.045970477163791656, 0.011385295540094376, 0.012503254227340221, 0.03532750532031059, -0.001113487291149795, -0.011984521523118019, -0.021715236827731133, -0.027671722695231438, -0.0714062824845314, 0.0189426988363266, -0.03432581573724747, -0.028834400698542595, -0.03293060138821602, 0.06578965485095978, -0.015472553670406342, -0.06704176962375641, -0.013513889163732529, 0.018441852182149887, -0.039352159947156906, 0.017332836985588074, 0.019085796549916267, -0.007061029318720102, 0.002698753261938691, 0.048653580248355865, 0.016894597560167313, -0.02650904469192028, 0.0032756200525909662, 0.03607877716422081, 0.021733123809099197, 0.03505919501185417, 0.012789451517164707, -0.01686776615679264, -0.022394957020878792, 0.0029111653566360474, -0.028190456330776215, -0.005272294860333204, 0.009364025667309761, -0.008071664720773697, -0.020695658400654793, -0.0008703311323188245, -0.042106810957193375, 0.021268052980303764, -0.051300905644893646, -0.02674158103764057, 0.02892383746802807, -0.014193608425557613, -0.015669314190745354, 0.016340089961886406, -0.0495479479432106, -0.035112857818603516, 0.006180077791213989, -0.025364255532622337, 0.02844087965786457, -0.02579355239868164, 0.007163881789892912, 0.013853749260306358, -0.02643749676644802, -0.027206651866436005, 0.04121244326233864, -0.0307841207832098, 0.0166352316737175, 0.010168955661356449, 0.02430890128016472, 0.006157718598842621, 0.034540463238954544, -0.012771564535796642, 0.0033941238652914762, 0.017100302502512932, 0.038100045174360275, -0.06768571585416794, -0.01697508990764618, -0.039387933909893036, 0.023164112120866776, 0.00682402215898037, -0.022055096924304962, -0.027582285925745964, 0.0014008027501404285, -0.0022862262558192015, 0.02012326382100582, 0.026419609785079956, 0.01928255893290043, 0.026419609785079956, 0.010204730555415154, -0.03398595750331879, -0.005996732506901026, 0.016304315999150276, 0.04647132381796837, -0.03604299947619438, -0.01261057797819376, 0.0754130482673645, -0.016286427155137062, -0.03380708396434784, -0.010356772691011429, 0.03820737078785896, -0.0016735846875235438, -0.001106779440306127, -0.016250653192400932, 0.012369099073112011, -0.01928255893290043, -0.026938341557979584, -0.03892286494374275, 0.029979189857840538, 0.006622789427638054, -0.012825226411223412, 0.001098394743166864, -0.052016399800777435, -0.04124821722507477, -0.009185152128338814, -0.0049234917387366295, -0.047723438590765, -0.011027548462152481, 0.012547972612082958, -0.016277484595775604, -0.027313975617289543, 0.010052688419818878, -0.03892286494374275, 0.008594869635999203, 0.009220926091074944, 0.0006713344482704997, 0.015329455025494099, 0.004187874495983124, 0.004288490861654282, 0.007615537382662296, 0.03539905697107315, -0.00453891372308135, 0.04192793741822243, 0.012825226411223412, -0.0013493766309693456, 0.010168955661356449, -0.0204631220549345, 0.09473138302564621, 0.02012326382100582, 0.03425426781177521, -0.012395930476486683, 0.03244764357805252, 0.008925785310566425, 0.0008552387007512152, 0.07162093371152878, 0.040711596608161926, 0.005330428946763277, -0.030873557552695274, -0.01792312040925026, 0.005934126675128937, -0.033824969083070755, 0.021804673597216606, -0.0338786318898201, 0.0229494646191597, 0.021017631515860558, 0.005987789016216993, 0.011582056060433388, -0.04525498300790787, 0.033449336886405945, -0.048796676099300385, -0.005858105607330799, -0.03391440585255623, -0.015866074711084366, -0.010634026490151882, 0.023969043046236038, -0.01697508990764618, -0.002221384784206748, -0.02257383055984974, 0.03325257450342178, -0.024666648358106613, 0.03346722200512886, -0.004932435229420662, 0.010070575401186943, -0.0207672081887722, -0.023503972217440605, 0.035041309893131256, -0.0865747481584549, 0.0067122261971235275, 0.091082364320755, -0.023879606276750565, 0.018218260258436203, 0.001316955778747797, -0.011304802261292934, 0.00787490326911211, -0.012565859593451023, 0.044611040502786636, -0.027671722695231438, 0.022967351600527763, -0.031517501920461655, -0.033789195120334625, -0.011242196895182133, 0.014596073888242245, 0.013504945673048496, 0.05183752626180649, -0.01981917768716812, -0.01707347109913826, 0.02382594347000122, -0.016098611056804657, -0.00273676379583776, 0.06074542552232742, 0.03713412955403328, -0.048116959631443024, -0.0034992119763046503], '组成编码': '0101', '是否为关重件': '是', '是否为寿命件': '否', '备注': '包含多个换能器单元'}}, {'type': '零部件', 'name': '压电陶瓷换能器', 'properties': {'名称': '压电陶瓷换能器', '型号': '', '技术责任单位': '', '生产单位': '', '切片': '
组成编码名称是否为关重件是否为寿命件备注
01声呐基阵系统核心探测单元
0101基阵阵元组件包含多个换能器单元
01010001压电陶瓷换能器核心声电转换部件,有使用寿命
01010002橡胶透声护罩易老化,需定期更换
0102基阵骨架支撑结构
01020001钛合金主框架耐腐蚀承力结构
02信号处理机柜数据处理核心
0201发射机组件生成发射信号
020101功率放大模块大功率器件,有工作寿命
02010001散热风扇易损件,需定期更换
', 'embedding': [-0.03386881202459335, 0.008449003100395203, -0.0307021401822567, 0.0045338892377913, 0.02917340397834778, -0.02709868922829628, -0.05055752769112587, -0.006137698423117399, 0.010455471463501453, 0.03456038236618042, 0.03226727619767189, 0.04142150282859802, 0.00027384189888834953, 0.006433436181396246, 0.013740436173975468, -0.00959100667387247, -0.01563315838575363, 0.011583824642002583, 0.02544255554676056, -0.04800963029265404, -0.033777814358472824, 0.04018395021557808, -0.02706228941679001, 0.01878163032233715, 0.008248811587691307, 0.04025674983859062, 0.023877421393990517, -0.013285455293953419, 0.04764564707875252, -0.01990998350083828, -0.015760554000735283, 0.011747618205845356, -0.013767735101282597, -0.04535254091024399, 0.017416685819625854, -0.010510069318115711, 0.004845551215112209, -0.029282599687576294, -0.07985832542181015, -0.004647634457796812, 0.004895599093288183, -0.05780082941055298, 0.0246781874448061, -0.047208864241838455, 0.03770885244011879, -0.036653295159339905, -0.024550793692469597, -0.04629890248179436, -0.0329042486846447, -0.06275102496147156, 0.008471752516925335, -0.048555608838796616, 0.09747520089149475, -0.0005081573035567999, 0.0809502825140953, 0.014859690330922604, -0.06588129699230194, -0.022821864113211632, -0.03326823562383652, -0.03441478684544563, -0.0440421923995018, 0.04367820918560028, -0.024205006659030914, 0.00531418202444911, 0.025733744725584984, 0.017653275281190872, -0.0038218433037400246, 0.02314945124089718, -0.008762940764427185, 0.00040322719723917544, -0.01874523051083088, 0.010300777852535248, -0.005168587900698185, 0.01960059627890587, -0.04593491554260254, 0.04386020079255104, 0.05474335327744484, -0.018818028271198273, 0.018090058118104935, 0.03306804224848747, 0.014723195694386959, -0.010910452343523502, 0.0071477568708360195, 0.03923759236931801, -0.030665742233395576, 0.006069451104849577, 0.005377879366278648, -0.03725387156009674, -0.01901821978390217, -0.03587072715163231, -0.04436977952718735, 0.02165711112320423, -0.03370501846075058, -0.03683529049158096, -0.035124558955430984, 0.025315161794424057, -0.007420745678246021, 0.04327782616019249, 0.014295513741672039, 0.007443494629114866, -0.009945891797542572, 0.04214947298169136, 0.021147532388567924, -0.01840854436159134, -0.030720340088009834, -0.04193108156323433, 0.0016038091853260994, 0.03155750408768654, -0.02529696188867092, -0.014441107399761677, -0.038000039756298065, 0.04655368998646736, 0.020910942927002907, -0.010282577946782112, -0.03284965083003044, -0.014732295647263527, -0.04309583082795143, -0.02566094696521759, 0.050848715007305145, -0.040511537343263626, -0.009800298139452934, 0.022221287712454796, -0.015169077552855015, -0.03796364367008209, 0.016652317717671394, -0.07483533024787903, 0.016461225226521492, 0.01770787313580513, -0.05186787247657776, 0.002773111220449209, 0.031175320968031883, 0.03796364367008209, -0.01709819957613945, -0.016470324248075485, -0.049101587384939194, -0.01293966919183731, 0.024150408804416656, -0.0329042486846447, -0.02373182587325573, -0.014486606232821941, -0.0024659987539052963, 0.018390346318483353, 0.004841001238673925, 0.0014502530684694648, -0.002014429774135351, -0.07123187929391861, 0.029719380661845207, -0.024823781102895737, 0.01941860280930996, -0.01197510864585638, 0.029773978516459465, 0.025915736332535744, -0.04229506477713585, 0.006378838326781988, -0.03405080363154411, -0.0006443673046305776, 0.004504315089434385, 0.00957280769944191, -0.053141821175813675, 0.024023015052080154, -0.02156611531972885, 0.05568971484899521, 0.019218411296606064, 0.0033714117016643286, -0.018335748463869095, -0.013767735101282597, 0.0519406683743, 0.05070311948657036, 0.014377410523593426, 0.004590761847794056, 0.03306804224848747, 0.03670789301395416, -0.008903984911739826, -0.010173383168876171, -0.004433793015778065, -0.001023139338940382, 0.06857478618621826, 0.009399914182722569, -0.011156142689287663, 0.01202060654759407, -0.0037695204373449087, 0.03836402669548988, -0.005541672930121422, -0.020546957850456238, -0.02611592970788479, -0.007252402603626251, -0.018554139882326126, -0.04098471999168396, -0.007138657383620739, 0.05343300849199295, -0.026807500049471855, -0.02606133185327053, -0.06427976489067078, 0.023622630164027214, 0.07286980748176575, -0.008958582766354084, -0.0004976358613930643, 0.020019179210066795, 0.004169904161244631, 0.011147042736411095, -0.020237570628523827, -0.009149674326181412, 0.00900863017886877, 0.029355395585298538, -0.023386040702462196, 0.03554314374923706, 0.006415236741304398, -0.00874474085867405, -0.017753371968865395, -0.003244017018005252, -0.009490910917520523, -0.00615589739754796, 0.008116867393255234, -0.0043814703822135925, -0.00990949384868145, 0.01238459162414074, 0.013267255388200283, 0.00297102821059525, -0.03443298861384392, 0.003931038547307253, -0.024350600317120552, 0.05558051913976669, 0.025551751255989075, -0.01058286614716053, 0.046080511063337326, -0.024459796026349068, 0.013485646806657314, 0.06413417309522629, 0.022639870643615723, -0.02669830434024334, 0.0018529115477576852, 0.007821129634976387, 0.01166572142392397, -0.027990451082587242, -0.007657336071133614, 0.037308469414711, 3.602528158808127e-05, 0.04214947298169136, 0.05055752769112587, 0.01608813926577568, -0.009154224768280983, 0.02458719164133072, 0.001341057475656271, 0.027135087177157402, -0.013649440370500088, 0.050266336649656296, -0.012148002162575722, -0.047609247267246246, 0.015132679603993893, 0.006469834595918655, 0.02880941890180111, -0.010346275754272938, -0.026352519169449806, -0.006051251664757729, 0.002711688866838813, 0.04233146458864212, -0.02345883846282959, -0.002347703790292144, 0.003689898643642664, 0.026097729802131653, 0.010346275754272938, 0.0431322306394577, 0.04538893699645996, -0.0010083523811772466, 0.03082953579723835, 0.028336238116025925, -0.0163884274661541, 0.029409993439912796, -0.0034897068981081247, 0.005596270319074392, 0.0001401200279360637, 0.00037137852632440627, 0.011583824642002583, 0.011647522449493408, 0.013139860704541206, 0.03366861864924431, 0.018126456066966057, -0.009782099165022373, 0.040875524282455444, 0.050994306802749634, 0.05208626389503479, 0.029137004166841507, 0.016133638098835945, 0.015705956146121025, 0.003953787963837385, -0.025770142674446106, -0.03585252910852432, -0.02274906635284424, 0.005805561784654856, -0.06551731377840042, -0.008453553542494774, -0.005719115491956472, 0.06551731377840042, 0.002707138890400529, -0.05645408481359482, 0.0062013957649469376, -0.007739232387393713, -0.1297970712184906, -0.008649195544421673, -0.04466096684336662, 0.013431048952043056, -0.004850101191550493, -0.017962662503123283, -0.06733723729848862, -0.0020292168483138084, -0.013904229737818241, -0.05922036990523338, -0.03807283937931061, -0.05652688071131706, -0.011501927860081196, -0.022093893960118294, 0.006710974965244532, 0.009227021597325802, -0.020292168483138084, -0.0027367128059267998, -0.02578834258019924, 0.006720074452459812, -0.010646563023328781, -0.06104029715061188, 0.09696562588214874, 0.011101544834673405, -0.06966674327850342, -0.007948524318635464, 0.040511537343263626, 0.01364034041762352, 0.0049592964351177216, -0.013167159631848335, 0.030720340088009834, 0.01918201334774494, 0.00039953048690222204, 0.032613061368465424, 0.0056690676137804985, -0.03195789083838463, -0.008348907344043255, -0.0050866915844380856, -0.01859963685274124, -0.024241406470537186, 0.04713606834411621, 0.058092016726732254, -0.021238528192043304, 0.02740807645022869, 0.019291209056973457, -0.020255768671631813, 0.05266863852739334, 0.01235729269683361, -0.003323638578876853, 0.008062269538640976, 0.0018949973164126277, 0.02697129361331463, -0.02822704240679741, -6.927801587153226e-05, -0.03228547424077988, 0.03414180129766464, 0.025533553212881088, 0.059438761323690414, 0.0024705487303435802, -0.06518972665071487, -0.030665742233395576, 0.01593344658613205, -0.0071568563580513, 0.01296696811914444, -0.03905559703707695, -0.01639752835035324, -0.015560361556708813, -0.028791218996047974, 0.01869063265621662, -0.02103833667933941, -0.0012989717070013285, 0.03397800773382187, -0.006670026574283838, -0.035834331065416336, -0.0148960892111063, 0.04254985600709915, -0.032558463513851166, -0.0525958426296711, -0.047973230481147766, -0.10904992371797562, 0.012502887286245823, 0.012766776606440544, -0.01593344658613205, 0.003189419163390994, -0.021493317559361458, 0.021001938730478287, -0.0015241875080391765, 0.03195789083838463, 0.03581612929701805, 0.21766307950019836, 0.008289759978652, 0.007184155285358429, 0.04524334520101547, -0.01694350503385067, -0.05299622565507889, -0.008449003100395203, -0.033159039914608, 0.018727032467722893, 0.0008917634258978069, -0.052013467997312546, 0.0069794137962162495, 0.016779711470007896, 0.0054506766609847546, -0.012211699038743973, 0.0001774427219061181, -0.019709791988134384, 0.002563819754868746, 0.08815718442201614, 0.009222472086548805, -0.03891000524163246, 0.010637464001774788, -0.01869063265621662, -0.029919572174549103, -0.060821905732154846, -0.02569734677672386, 0.021693510934710503, 0.04436977952718735, -0.009076877497136593, 0.005528023466467857, -0.008994980715215206, 0.0014184042811393738, 0.03901920095086098, -0.05412457883358002, -0.017325690016150475, -0.026316121220588684, -0.036780692636966705, 0.031666699796915054, 0.029719380661845207, 0.03208528459072113, -0.021911900490522385, -0.02138412371277809, -0.001161908614449203, 0.007989472709596157, 0.03113892301917076, -0.00899043120443821, -0.05594450607895851, -0.02840903401374817, 0.027444474399089813, -0.011083345860242844, -0.04804603010416031, 0.008817538619041443, 0.00409938208758831, -0.01572415418922901, 0.017480382695794106, -0.05780082941055298, -0.009090526960790157, -0.037053681910037994, 0.01606084033846855, 0.028154244646430016, 0.043751005083322525, 0.017908064648509026, -0.05346940830349922, 0.010500969365239143, -0.0066336276941001415, -0.009026830084621906, 0.006342439912259579, -0.04484296217560768, -0.042586252093315125, 0.016652317717671394, 0.03092053160071373, 0.0014468407025560737, -0.016197334975004196, -0.001509400550276041, 0.03499716520309448, 0.020874543115496635, 0.028609227389097214, 0.05154028534889221, -0.010318976826965809, 0.013194458559155464, -0.042622651904821396, -0.007575439289212227, -0.053105421364307404, 0.017416685819625854, 0.03190329298377037, -0.05663607642054558, 0.013385551050305367, -0.02893681265413761, -0.021693510934710503, 0.007243303116410971, -0.016688715666532516, 0.006051251664757729, 0.016324730589985847, -0.0006858843844383955, 0.03430559113621712, 0.004677208140492439, 0.00874474085867405, -0.021693510934710503, 0.002880031941458583, 0.028008650988340378, -0.005587170831859112, -0.02697129361331463, 0.010118785314261913, -0.030119763687253, 0.019473200663924217, 0.013358252122998238, 0.023932019248604774, 0.028518229722976685, -0.018854426220059395, 0.016224633902311325, -0.012093404307961464, 0.039710771292448044, -0.04666288569569588, -0.06111309304833412, 0.012439189478754997, 0.0028413585387170315, 0.009445413015782833, 0.013057964853942394, -0.02822704240679741, 0.0363985076546669, -0.0017562279244884849, 0.0006432298687286675, 0.05157668516039848, -0.025770142674446106, -0.005591720808297396, -0.02404121309518814, -0.04593491554260254, -0.013094362802803516, 0.02629792131483555, 0.032558463513851166, 0.0009628542466089129, -0.006906616501510143, -0.004565737675875425, 0.013631240464746952, 0.02749907225370407, -0.0231858491897583, 0.03630750998854637, 0.03945598006248474, 0.06573570519685745, 0.01496888604015112, -0.01555126253515482, -0.06828360259532928, 0.007238753139972687, -0.0011550838826224208, -0.003833217779174447, -0.036507703363895416, 0.0002873491612263024, 0.0034510334953665733, -0.0246781874448061, 0.0449521578848362, 0.007134107407182455, -0.009145124815404415, 0.03254026547074318, -0.04480656236410141, 0.00923612155020237, -0.01192961074411869, -0.028609227389097214, -0.005823761224746704, -0.036198314279317856, -0.018435843288898468, 0.020110175013542175, -0.010810356587171555, 0.008817538619041443, 0.00627874257043004, 0.0030119763687253, 0.06795601546764374, -0.03803643956780434, 0.047609247267246246, 0.012839573435485363, -0.0551801361143589, 0.018727032467722893, -0.023768225684762, -0.04942917078733444, -0.006328790448606014, 0.004317773040384054, 0.020237570628523827, 0.035834331065416336, 0.010182482190430164, 0.009231571108102798, 0.05277783423662186, 0.04273184761404991, -0.0021293126046657562, 0.0001660681882640347, -0.026188725605607033, 0.00420630257576704, 0.013485646806657314, -0.051067106425762177, 0.01067386195063591, 0.029137004166841507, 0.0006062626489438117, -0.042003877460956573, 0.02768106386065483, -0.01978258788585663, -0.0120479054749012, 0.02961018495261669, 0.012566584162414074, 0.024023015052080154, -0.03392340987920761, 0.01527827326208353, -0.046444494277238846, -0.0009486360941082239, -6.565238436451182e-05, 0.02278546616435051, -0.015241874381899834, -0.030774937942624092, -0.07498092204332352, -0.04899239167571068, 0.001790351583622396, -0.007848427630960941, -0.047026872634887695, 0.011447330936789513, 0.0006858843844383955, -0.006906616501510143, 0.039346784353256226, -0.009772999212145805, -0.030319957062602043, 0.05980274826288223, 0.023750025779008865, -0.055798910558223724, -0.024787383154034615, 0.06184106320142746, 0.033413831144571304, 0.011219839565455914, 0.0020519657991826534, -0.02688029780983925, -0.005068492144346237, -0.023113051429390907, -0.04804603010416031, 0.03636210784316063, 0.016342930495738983, 0.012693979777395725, 0.013622141443192959, 0.0009116688743233681, 0.0021793607156723738, 0.030956929549574852, 0.022858262062072754, 0.042222268879413605, 0.042586252093315125, -0.020637953653931618, 0.010227980092167854, 0.0030870484188199043, -0.03778165206313133, 0.02817244455218315, 0.07199624925851822, 0.006779221817851067, -0.012238997966051102, -0.06777402013540268, 0.0449521578848362, 0.07203264534473419, -0.007570889312773943, -0.04436977952718735, 0.05022994056344032, -0.006424336694180965, -0.023477036505937576, 0.012057005427777767, 0.01892722398042679, -0.036926284432411194, -0.007657336071133614, -0.041239507496356964, -0.012193500064313412, -0.004822802264243364, 0.03192149102687836, -0.004690857604146004, 0.01941860280930996, -0.02697129361331463, 0.027826659381389618, 0.0016629567835479975, 0.026316121220588684, -0.00581921124830842, -0.04447897523641586, -0.03113892301917076, -0.022457879036664963, -0.017443984746932983, 0.04367820918560028, 0.04673568159341812, -0.02229408547282219, 0.047791238874197006, -0.03670789301395416, 0.020055577158927917, 0.07043111324310303, -0.00033952982630580664, -0.0007211454212665558, -0.037818048149347305, -0.04131230711936951, -0.02773566171526909, 0.0051549384370446205, 0.036016322672367096, 0.029555587098002434, -0.037818048149347305, -0.0007291075889952481, 0.01166572142392397, -0.003971986938267946, -0.021984698250889778, 0.04225866496562958, 0.016188235953450203, 0.004954746924340725, -0.03248566761612892, 0.07898475974798203, 0.02620692551136017, -0.0028072348795831203, 0.0008365969406440854, -0.013631240464746952, -0.016497623175382614, -0.02238508127629757, -0.045643728226423264, 0.005591720808297396, 0.025988534092903137, 0.02930079773068428, -0.00040436466224491596, 0.016752412542700768, 0.038400426506996155, -0.06933915615081787, 0.019291209056973457, 0.02229408547282219, 0.0014400159707292914, -0.021547915413975716, 0.00995499175041914, -0.06584490090608597, -0.006042152177542448, 0.008216963149607182, -0.01715279556810856, -0.021584315225481987, -0.06508053094148636, -0.024077612906694412, -0.03621651604771614, 0.004804602824151516, -0.00995499175041914, 0.020528757944703102, -0.030392752960324287, -0.006028502713888884, 0.0150598818436265, -0.0015503489412367344, -0.008353457786142826, -0.031302716583013535, 0.05747324228286743, 0.035797931253910065, -0.022639870643615723, -0.0021168007515370846, 0.022184889763593674, -0.0016083590453490615, -0.012957868166267872, -0.02205749601125717, -0.009490910917520523, -0.024878378957509995, -0.033286433666944504, 0.014723195694386959, 0.0038741661701351404, 0.030210761353373528, 0.001979168737307191, -0.0010999173391610384, 0.043569013476371765, 0.009163323789834976, -0.010373574681580067, -0.03909199684858322, 0.0066063292324543, -0.01485059130936861, -0.023622630164027214, 0.01950960047543049, -0.02638891711831093, -0.026552710682153702, 0.0013581193052232265, -0.035706933587789536, -0.022803664207458496, 0.055434927344322205, -0.02462358959019184, 0.022712668403983116, 0.006656377110630274, 0.022712668403983116, 0.058274008333683014, 0.0021293126046657562, -0.04386020079255104, -0.0003358330868650228, 0.002375002484768629, 0.033104442059993744, -0.03239466995000839, 0.0007899613701738417, 0.012530186213552952, 0.0038468672428280115, -0.014886989258229733, -0.014859690330922604, -0.0017505406867712736, 0.0032963398844003677, 0.015050782822072506, -0.013458347879350185, 0.004188103135675192, -0.03370501846075058, 0.01101054809987545, -0.04113031178712845, 0.06573570519685745, 0.02336784079670906, -0.0231858491897583, -0.015651358291506767, 0.0018961346941068769, 0.02813604660332203, -0.1151648759841919, -0.016834309324622154, -0.019837185740470886, -0.062314245849847794, -0.0028686572331935167, -0.024241406470537186, 0.01963699422776699, -0.02171170897781849, 0.010364474728703499, -0.023495236411690712, -0.027426274493336678, -0.006824720185250044, 0.002875481965020299, 0.000482564588310197, 0.0009128063102252781, 0.03945598006248474, -0.031976088881492615, -0.03101152740418911, 0.0018096882849931717, 0.03545214608311653, -0.007475343532860279, -0.010746658779680729, 0.00021213505533523858, -0.021311325952410698, 0.04688127711415291, -0.04426058381795883, 0.06326060742139816, 0.02620692551136017, -0.02395021729171276, -0.01460490096360445, -0.01171121932566166, -0.02440519817173481, 0.026552710682153702, 0.042804643511772156, -0.011092444881796837, -0.04502495378255844, -0.009427213110029697, 0.003828668035566807, 0.031393710523843765, 0.008280660025775433, 0.06475294381380081, -0.0029255300760269165, 0.022439679130911827, -0.016706915572285652, 0.017025401815772057, 0.038800809532403946, 0.018890826031565666, -0.05135829374194145, 0.0012125252978876233, -0.010146084241569042, 0.04131230711936951, -0.016661416739225388, -0.032867852598428726, 0.01364034041762352, -0.008330708369612694, 0.0054961745627224445, -0.04746365174651146, -0.03055654652416706, 0.06264182925224304, 0.0046385349705815315, -0.05263224244117737, 0.03348662704229355, -0.024514393880963326, -0.07716483622789383, -0.08102307468652725, -0.006756472866982222, -0.06810160726308823, -0.007070410065352917, 0.004192653112113476, -0.041239507496356964, 0.003801369108259678, 0.03450578451156616, 0.03052014857530594, -0.04746365174651146, -0.012748576700687408, -0.045097749680280685, 0.019873585551977158, -0.008644645102322102, 0.027662865817546844, -0.0150598818436265, -0.03244926780462265, -0.0020041929092258215, 0.030975129455327988, -0.010801256634294987, 0.012475588358938694, 8.225209603551775e-05, -0.03667149692773819, 0.03563413769006729, -0.01235729269683361, 0.044515375047922134, 0.021020138636231422, 0.0020201171282678843, 0.025715544819831848, 0.010491869412362576, -0.05059392377734184, 0.028736621141433716, -0.009445413015782833, -0.022348683327436447, -0.022130291908979416, -0.012257196940481663, -0.04076632857322693, -0.019000019878149033, 0.014977985993027687, 0.03807283937931061, -0.02511497028172016, -0.002600218402221799, 0.018435843288898468, 0.010073286481201649, 0.020146572962403297, -0.028554629534482956, -0.06770122051239014, 0.02040136232972145, -0.030392752960324287, -0.024514393880963326, -0.018945422023534775, 0.018854426220059395, -0.012430090457201004, -0.024387000128626823, -0.0037945443764328957, -0.03699908405542374, -0.0007728995406068861, 0.01914561539888382, -0.03252206742763519, -0.02795405313372612, -0.004392844624817371, -0.032012488692998886, 0.030137963593006134, 0.015878848731517792, 0.05150388926267624, 0.029992369934916496, 0.0023659029975533485, 0.012475588358938694, -0.00481825228780508, 0.01734388805925846, 0.00934531632810831, 0.017089098691940308, -0.03559774160385132, 0.06504413485527039, 0.004495215602219105, -0.045862119644880295, -0.050084345042705536, -0.011447330936789513, -0.011538326740264893, -0.03128451853990555, 0.05033913627266884, -0.038182035088539124, -0.021511517465114594, -0.05645408481359482, -0.04502495378255844, -0.031211718916893005, -0.01561495941132307, -0.023968417197465897, 0.045279741287231445, -0.02265807054936886, 0.00823971163481474, 0.021056536585092545, 0.021493317559361458, -0.0169708039611578, 0.05277783423662186, 0.04265905171632767, 0.036107320338487625, 0.020838145166635513, -0.03803643956780434, 0.011793116107583046, -0.028518229722976685, -0.00915877427905798, 0.0126302819699049, 0.003378236433491111, -0.04709966853260994, -0.0044656419195234776, 0.016989003866910934, 0.020437762141227722, -0.008489951491355896, 0.005896558053791523, 0.005555321928113699, -0.03288605064153671, -0.020819945260882378, -0.06224144622683525, 0.01552396360784769, 7.71335544413887e-05, 0.022803664207458496, 0.047973230481147766, 0.05554412305355072, -0.007134107407182455, 0.007680085022002459, 0.011674821376800537, 0.015915246680378914, 0.01561495941132307, -0.006965764332562685, 0.011265338398516178, 0.01157472562044859, -0.0035943526308983564, 0.02697129361331463, -0.014168119058012962, 0.0440421923995018, -0.023786423727869987, 0.025988534092903137, -0.052159059792757034, 0.008949482813477516, 0.07832958549261093, 0.016834309324622154, 0.05801922082901001, -0.004372370429337025, -0.013849631883203983, -0.017716974020004272, -0.007839328609406948, 0.002911880612373352, 0.0286274254322052, -0.020656153559684753, -0.006051251664757729, 0.007520841434597969, 0.0044656419195234776, -0.025096770375967026, 0.02031036652624607, 0.020201170817017555, 0.014195417985320091, -0.0015275998739525676, 0.012302695773541927, 0.017817068845033646, 0.055980902165174484, -0.042622651904821396, 0.02984677627682686, -0.008216963149607182, -0.027080489322543144, 0.03172129765152931, -0.03221267834305763, 0.03887360543012619, -0.011947809718549252, -0.004763654433190823, -0.010864954441785812, -0.07388897240161896, 0.0015571736730635166, -0.0008690143586136401, 0.03383241221308708, 0.004292748868465424, -0.021092934533953667, 0.062132250517606735, 0.03931038826704025, 0.016688715666532516, -0.016870707273483276, 0.038582418113946915, -0.0026616407558321953, -0.06922996044158936, 0.041821885854005814], '组成编码': '01010001', '是否为关重件': '是', '是否为寿命件': '是', '备注': '核心声电转换部件,有使用寿命'}}, {'type': '零部件', 'name': '橡胶透声护罩', 'properties': {'名称': '橡胶透声护罩', '型号': '', '技术责任单位': '', '生产单位': '', '切片': '
组成编码名称是否为关重件是否为寿命件备注
01声呐基阵系统核心探测单元
0101基阵阵元组件包含多个换能器单元
01010001压电陶瓷换能器核心声电转换部件,有使用寿命
01010002橡胶透声护罩易老化,需定期更换
0102基阵骨架支撑结构
01020001钛合金主框架耐腐蚀承力结构
02信号处理机柜数据处理核心
0201发射机组件生成发射信号
020101功率放大模块大功率器件,有工作寿命
02010001散热风扇易损件,需定期更换
', 'embedding': [0.0361226461827755, 0.03627137467265129, -0.07890093326568604, -0.013701693154871464, 0.008403209038078785, -0.012112148106098175, -0.02796112187206745, -0.007859417237341404, 0.003285989398136735, -0.0037135863676667213, 0.002300657331943512, 0.05495550110936165, 0.0016708815237507224, -0.055215779691934586, 0.0420532301068306, 0.0026306507643312216, 0.014547591097652912, -0.01215862575918436, 0.017196834087371826, -0.05551323667168617, -0.006107199937105179, -0.014017743058502674, -0.06112777069211006, -0.0012758191442117095, 0.02210490219295025, 0.03589955344796181, 0.0420532301068306, -0.020822111517190933, -0.009611635468900204, -0.006841551046818495, 0.00521482340991497, 0.04610610380768776, -0.0007308654021471739, -0.0145197045058012, -0.011879757978022099, -0.024614710360765457, -0.004759339615702629, -0.04064030200242996, -0.045325275510549545, 0.044916268438100815, -0.029150957241654396, -0.013218322768807411, 0.015356307849287987, 0.0038181617856025696, 0.013339165598154068, -0.015969816595315933, 0.023536423221230507, -0.036104053258895874, 0.037814442068338394, -0.03734966367483139, 0.04569710046052933, 0.024298660457134247, 0.057818543165922165, -0.029541371390223503, 0.02894645370543003, 0.047481849789619446, 0.00959304440766573, -0.0902787297964096, -0.007617732509970665, 0.029671508818864822, -0.039971016347408295, 0.013627328909933567, -0.018535397946834564, 0.019483547657728195, 0.015607288107275963, 0.07495960593223572, -0.008073216304183006, 0.0002158318820875138, -0.007162248715758324, -0.028277171775698662, 0.01411069929599762, 0.030991481617093086, -0.02305305190384388, 0.002837477484717965, -0.04714721068739891, -0.013720284216105938, 0.023703742772340775, 0.01265129167586565, -0.01815427839756012, 0.03567645698785782, 0.03699643164873123, 0.02768225409090519, -0.0024517106357961893, 0.042722512036561966, -0.022049129009246826, -0.0014187387423589826, -0.012679179199039936, -0.07588916271924973, -0.03087993524968624, 0.016611211001873016, 0.011731029488146305, 0.0153284203261137, 0.030526703223586082, -0.017364153638482094, 0.007910543121397495, 0.027533523738384247, -0.003536970354616642, -0.0613136813044548, 0.028834907338023186, -0.011052451096475124, 0.01163807325065136, -0.03515590354800224, 0.035936735570430756, -0.034542396664619446, -0.015495740808546543, -0.015003074891865253, 0.06220605969429016, 0.014910119585692883, 0.006869437638670206, -0.01206567045301199, 0.0043294187635183334, 0.038409359753131866, 0.0006373286014422774, -0.0016476425807923079, 0.015096031129360199, -0.024465981870889664, -0.005093981046229601, 0.004575752187520266, -0.008152228780090809, -0.014185063540935516, 0.003058247733861208, 0.009049252606928349, -0.019483547657728195, -0.06488318741321564, 0.027310431003570557, -0.07172473520040512, -0.013264800421893597, -0.019966917112469673, 0.02876054123044014, 0.00240523274987936, -0.04279687628149986, -0.021156752482056618, 0.005377496127039194, -0.0036601368337869644, -0.024614710360765457, -0.0007093693711794913, 0.0318094938993454, -0.013497190549969673, 0.038446541875600815, -0.0028328297194093466, 0.032106950879096985, -0.001196806668303907, -0.014185063540935516, 0.0036415457725524902, -0.004596666898578405, -0.08693231642246246, -0.00012135096767451614, 0.032423000782728195, 0.0172154251486063, -0.042090412229299545, 0.026009049266576767, 0.002395937219262123, 0.022997278720140457, 0.02121252566576004, 0.04220195859670639, 0.025228219106793404, -0.05023334547877312, 0.010067119263112545, 0.022718410938978195, 0.02457752823829651, 0.0236851517111063, 0.008593768812716007, -0.0549926832318306, -0.03182808682322502, 0.016053475439548492, -0.00860771257430315, 0.01918608881533146, -0.0004656507517211139, -0.020561834797263145, 0.014240836724638939, 0.017020218074321747, -0.009072491899132729, 0.050939809530973434, -0.037145160138607025, 0.03708938509225845, -0.012632700614631176, 0.013060297816991806, 0.012948750518262386, -0.0242614783346653, -0.02840730920433998, 0.011424275115132332, -0.004443289712071419, 0.010671332478523254, -0.004710537847131491, -0.005535521078854799, -0.02502371557056904, 0.03418916463851929, -0.050902627408504486, 0.014845049940049648, 0.03534181788563728, -0.050716716796159744, -0.032962147146463394, 0.0025864967610687017, -0.04301996901631355, 0.04543682187795639, 0.011675255373120308, 0.014445340260863304, -0.04064030200242996, -0.01897229067981243, -0.004963842686265707, -0.0001674657833063975, -0.012084261514246464, 0.03681051731109619, -0.014779981225728989, -0.03078697994351387, -0.02323896437883377, -0.019539320841431618, 0.026938607916235924, -0.02552567794919014, -0.029597144573926926, -0.0040970295667648315, 0.02758929878473282, 0.030173471197485924, 0.005879458039999008, -0.025581451132893562, 0.04034284129738808, 0.04517654702067375, -0.002423824043944478, -0.02387106418609619, -0.013915491290390491, -0.008026737719774246, 0.06815523654222488, -0.01431520190089941, 0.02013423852622509, 0.04391234740614891, 0.0010399436578154564, -0.0004839514149352908, 0.09169165790081024, 0.00015148900274652988, 0.018368076533079147, 0.008249832317233086, 4.538860230240971e-05, -0.06332153081893921, -0.039933834224939346, 0.03433789312839508, 0.024651892483234406, 0.0024749496951699257, 0.047295939177274704, 0.02143562026321888, 0.02822139859199524, -0.007729279343038797, -0.03101007267832756, 0.017782455310225487, -0.034263528883457184, -0.002595792291685939, 3.718234074767679e-05, -0.013599441386759281, 0.025637224316596985, 0.0006291949539445341, -0.01892581209540367, -0.0204502884298563, -0.022123493254184723, -0.03050811216235161, 0.04848577454686165, -0.020617607980966568, 0.008361379615962505, -0.02013423852622509, -0.015700243413448334, 0.006641695741564035, 0.015226169489324093, 0.03549054637551308, 0.0549926832318306, 0.0247634407132864, 0.02669692225754261, 0.034988585859537125, 0.01146145723760128, -0.005828332155942917, 0.020078465342521667, -0.0420532301068306, -0.05004743114113808, -0.018237939104437828, -0.01924186199903488, -0.020617607980966568, -0.00010595515050226822, -0.00625592889264226, 0.0420532301068306, 0.02552567794919014, -0.04956406354904175, 0.018237939104437828, 0.03034079074859619, 0.03374297544360161, -0.016620507463812828, 0.0067253559827804565, 0.06581274420022964, 0.005066093988716602, 0.01585826836526394, -0.016099954023957253, 0.005758615210652351, 0.01865624077618122, -0.06068158149719238, 0.028370127081871033, -0.05510423332452774, 0.04569710046052933, 0.014436044730246067, 0.006762538570910692, 0.030322199687361717, -0.036791928112506866, -0.14791135489940643, -0.0018986233044415712, -0.04915505647659302, 0.007966317236423492, 0.018228642642498016, 0.01937200129032135, -0.05428621917963028, 0.01784752495586872, -0.03069402277469635, -0.015272647142410278, 0.04584582895040512, -0.04450726509094238, -0.0009365302394144237, 0.027124518528580666, 0.018052026629447937, -0.005233414471149445, 0.014027038589119911, -0.005451860837638378, 0.03392888605594635, -0.029894603416323662, -0.012623405084013939, -0.008073216304183006, 0.08998126536607742, -0.017996253445744514, -0.03409620746970177, -0.029690099880099297, 0.03760993853211403, -0.02333191968500614, -0.0451393648982048, 0.005661011673510075, 0.041644223034381866, 0.019613685086369514, -0.004296884406358004, 0.03852090612053871, 0.04803958535194397, 0.02431725151836872, -0.023852473124861717, 0.01617431826889515, -0.00818011537194252, 0.024484572932124138, 0.02983883023262024, 0.005419326480478048, -0.010792175307869911, 0.019836779683828354, -0.028277171775698662, -0.06648202985525131, 0.00952797569334507, 0.020413106307387352, -0.009026013314723969, -0.03937610238790512, -0.007148305419832468, 0.019334817305207253, 0.01914890669286251, -0.021286891773343086, -0.010438942350447178, -0.03138189762830734, 0.039971016347408295, 0.02359219640493393, 0.0241871140897274, 0.030229244381189346, -0.032292865216732025, -0.04915505647659302, -0.009425723925232887, -0.01834019087255001, 0.020654791966080666, 0.003165146801620722, 0.015570105984807014, -0.012614109553396702, 0.025358358398079872, -0.02898363582789898, 0.013274095952510834, -0.020599016919732094, -0.012641996145248413, -0.012121443636715412, 0.011879757978022099, 0.032608915120363235, -0.023964019492268562, -0.07291457056999207, -0.01177750714123249, -0.1267917901277542, -0.007803644053637981, -0.04320588335394859, -0.01523546501994133, 0.01328339148312807, -0.018674831837415695, -0.047890856862068176, 0.02340628392994404, 0.0360482819378376, 0.06101622432470322, 0.20390796661376953, 0.04354052245616913, 0.00018039245333056897, -0.013311279006302357, 0.06053285300731659, -0.014649842865765095, 0.014854345470666885, -0.010950200259685516, 0.018126392737030983, -0.03690347447991371, -0.10753133147954941, 0.0013978236820548773, 0.014947301708161831, -0.012279468588531017, -0.05748390033841133, 0.04160704091191292, 0.0002720411284826696, 0.01591404341161251, 0.06473445892333984, -0.002533046994358301, -0.018089208751916885, 0.0028955750167369843, -0.0031558512710034847, 0.004294560756534338, -0.01491941511631012, -0.055067047476768494, -0.026771286502480507, 0.06752313673496246, 0.0037972466088831425, 0.019037358462810516, -0.008830806240439415, 0.03926455229520798, 0.01152652595192194, -0.039487648755311966, -0.02916954830288887, 0.024298660457134247, 0.0177545677870512, 0.0029699394945055246, -0.06413953751325607, 0.042945604771375656, 0.015886155888438225, -0.012549040839076042, 0.04547400400042534, 0.0037345015443861485, -0.009323472157120705, -0.0398966521024704, 0.0037740077823400497, -0.01512391772121191, 0.04458162933588028, -0.02507949061691761, -0.0013071916764602065, -0.021956173703074455, 0.027440568432211876, 0.008328844793140888, 0.019855370745062828, 0.012958046048879623, -0.02093365788459778, -0.04592019319534302, 0.012855795212090015, 0.0883452445268631, 0.029355458915233612, 0.01498448383063078, -0.07719054073095322, -0.012279468588531017, 0.0023111149203032255, 0.005019616335630417, -0.01170314196497202, -0.03919018805027008, -0.002560933819040656, 0.03301791846752167, 0.010736401192843914, 0.03645728528499603, -0.006334941368550062, -0.04934096708893776, 0.0009603502112440765, 0.005600590258836746, -0.046366382390260696, 0.06573837995529175, -0.0009870750363916159, 0.020152829587459564, -0.005977061577141285, -0.0037437970750033855, -0.0559966079890728, -0.021918991580605507, 0.016927260905504227, 0.0029327573720365763, 0.0350443571805954, -0.010215848684310913, -0.006232690066099167, 0.007543367799371481, -0.012920863926410675, -0.006502262316644192, -0.011610186658799648, -0.02929968573153019, 0.006316350307315588, 0.051125720143318176, 0.00072737957816571, 0.032646097242832184, -0.037498392164707184, -0.004499063361436129, 0.013543668203055859, -0.012028487399220467, -0.004589695483446121, -0.019260453060269356, -0.031660765409469604, 0.0009835890959948301, -0.011303432285785675, -0.007659562397748232, -0.028574630618095398, -0.003462605644017458, 0.028165623545646667, -0.005846923217177391, -0.047928038984537125, -0.05562478303909302, 0.0059166401624679565, 0.04376361519098282, -0.044655993580818176, 0.02067338302731514, 0.05770699679851532, 0.028332944959402084, -0.0033115523401647806, -0.0017882382962852716, -0.01379464939236641, -0.02238376997411251, 0.008570529520511627, 0.014092108234763145, -0.04287124052643776, -0.010615558363497257, -0.05398876219987869, 0.07644689828157425, -0.014147881418466568, -0.023629378527402878, -0.034542396664619446, 0.04130958393216133, 0.05235273763537407, -0.0005240386235527694, 0.03474690020084381, 0.04989870265126228, 0.012855795212090015, 0.011870462447404861, 0.024651892483234406, -0.031158803030848503, -0.025042308494448662, -0.0236851517111063, 0.007092531770467758, -0.07492242008447647, -0.007445764262229204, -0.04982433840632439, 0.0003668851568363607, 0.03164217248558998, -0.013971265405416489, 0.024689074605703354, -0.03878118470311165, -0.02768225409090519, -0.015449263155460358, 0.0037437970750033855, -0.0022077015601098537, 0.004380544647574425, -0.005661011673510075, -0.015746721997857094, 0.003165146801620722, 0.02093365788459778, -0.016369525343179703, 0.012121443636715412, -0.018172869458794594, 0.03294355422258377, -0.034802671521902084, 0.07503397017717361, 0.039971016347408295, -0.026492418721318245, 0.012632700614631176, -0.03753557428717613, -0.04108648747205734, 0.06834114342927933, 0.0580788180232048, 0.004248082637786865, -0.011907645501196384, -0.06306125223636627, -0.009435019455850124, 0.03338974341750145, -0.0027956473641097546, -0.012883681803941727, 0.0253025833517313, -0.03779585286974907, 0.003074514912441373, 0.011963418684899807, 0.0007488756091333926, -0.021677305921912193, 0.02372233383357525, -0.0177917517721653, -0.05841346085071564, 0.0387440025806427, -0.06908479332923889, -0.014733503572642803, 0.019130315631628036, -0.004487444180995226, -0.0409005768597126, 0.005939878989011049, -0.01555151492357254, -0.069010429084301, -0.025135263800621033, 0.03753557428717613, -0.0028537448961287737, 0.0036090111825615168, -0.030452338978648186, -0.03703361377120018, -0.014092108234763145, 0.01896299421787262, -0.006018891464918852, 0.03119598515331745, 0.0011834442848339677, 0.004113296512514353, 6.612211291212589e-05, 0.0026306507643312216, -0.025637224316596985, 0.03136330470442772, -0.0032000052742660046, 0.00020406715339049697, -0.027738027274608612, -0.03322242200374603, 0.05015898123383522, -0.010011346079409122, 0.06730003654956818, -0.030991481617093086, 0.03082416206598282, 0.011721733026206493, -0.0025400188751518726, -0.027756618335843086, 0.012465380132198334, -0.0003851858200505376, 0.011163998395204544, -0.05123726651072502, 0.008296309970319271, -0.0037809794303029776, 0.018749196082353592, 0.05540169030427933, -0.05811600014567375, 0.04171858727931976, -0.037814442068338394, 0.027198882773518562, 0.025098081678152084, 0.010885130614042282, -0.012958046048879623, 0.02489357814192772, -0.06086749583482742, 0.04249941557645798, -0.0004752368258778006, 0.00501032080501318, 0.07150164246559143, -0.03015488013625145, -0.019028063863515854, 0.01195412315428257, 0.025785954669117928, 0.00267945253290236, -0.016072068363428116, 0.0017882382962852716, -0.010067119263112545, -0.026102004572749138, -0.01978100650012493, 0.04867168515920639, -0.01685289666056633, 0.061276499181985855, -0.014268724247813225, 0.01918608881533146, 0.006743947509676218, -0.03560209274291992, 0.026325099170207977, 0.03716375306248665, 0.004313151817768812, -0.01636023074388504, -0.0019532348960638046, -0.020524652674794197, -0.041421130299568176, -0.010792175307869911, 0.05577351525425911, 0.013376347720623016, -0.08202424645423889, 0.026585374027490616, 0.060793131589889526, 0.07020026445388794, 0.006502262316644192, -0.02355501428246498, -0.001080030808225274, 0.02701297216117382, 0.006218746770173311, -0.020413106307387352, 0.006228042300790548, 0.027719436213374138, -0.029002226889133453, -0.0419788658618927, 0.05305920168757439, -0.03060106746852398, -0.026232142001390457, 0.0484485924243927, -0.017103876918554306, 0.008909818716347218, -0.025246810168027878, 0.05581069737672806, -0.01851680688560009, 0.03721952438354492, -0.010150779038667679, 0.04368925094604492, -0.01177750714123249, -0.005200880113989115, -0.0007837340817786753, 0.006441840901970863, -0.023424874991178513, -0.066705122590065, 0.03218131884932518, -0.018981585279107094, 0.01029021292924881, 0.013116071000695229, -0.02063620090484619, -0.02710592746734619, -0.05618251860141754, 0.03896709531545639, 0.005084685515612364, -0.046217650175094604, -0.01784752495586872, -0.007148305419832468, -0.02054324373602867, -0.02533976547420025, -0.04368925094604492, -0.000976036477368325, 0.011805393733084202, 0.03164217248558998, -0.04030565917491913, -0.02463330142199993, -0.020877884700894356, -0.010531898587942123, -0.00041597746894694865, -0.03686629235744476, -0.010643445886671543, -0.04201604798436165, 0.06142523139715195, 0.022179266437888145, -0.008440392091870308, -0.028779132291674614, -0.015096031129360199, 0.02812844142317772, -0.0452137291431427, 0.039301734417676926, 0.04034284129738808, -0.008658837527036667, 0.002770084422081709, -0.00910037849098444, -0.006023539695888758, 0.0011346423998475075, 0.033148057758808136, -0.01442674919962883, -0.033594246953725815, 0.013618032447993755, -0.031307533383369446, -0.0040737902745604515, 0.01865624077618122, 0.016434594988822937, -0.0419045016169548, -0.006757890805602074, -0.04220195859670639, -0.015393489971756935, -0.0033998603466898203, -0.008012794889509678, -0.06153677776455879, 0.01780104637145996, 0.0029908546712249517, -0.026529600843787193, 0.017373450100421906, 0.005684250500053167, 0.044916268438100815, -0.022439543157815933, -0.014566183090209961, 0.0012978961458429694, 0.00145475915633142, 0.03526745364069939, -0.01599770225584507, 0.012920863926410675, 0.01572813093662262, -0.007385342847555876, -0.0002312276919838041, 0.018804969266057014, -0.024075565859675407, 0.002440091222524643, 0.026659740135073662, -0.02502371557056904, 0.053319480270147324, -0.04740748554468155, -0.027738027274608612, -0.014705616049468517, -0.0035788004752248526, 0.04677538573741913, -0.02355501428246498, 0.024335842579603195, -0.008491517044603825, 0.03311087563633919, -0.13921068608760834, 0.04116085171699524, -0.004833704326301813, -0.05688898265361786, -0.03047093003988266, -0.022532500326633453, 0.011823984794318676, -0.006827607750892639, -0.01672275923192501, -0.055885061621665955, -0.02467048354446888, -0.03833499550819397, 0.026901423931121826, -0.029987558722496033, 0.05410030856728554, -0.004399135708808899, -0.0360482819378376, 0.000621642277110368, 0.010634150356054306, 0.02489357814192772, -0.009546566754579544, 0.01838666759431362, 0.0005786502151750028, 0.015495740808546543, 0.002902546664699912, -0.04127240180969238, -0.011796098202466965, 0.053505390882492065, -0.02539554052054882, -0.004015692975372076, -0.0021333368495106697, -0.06607302278280258, 0.040417205542325974, 0.03985946998000145, -0.006953097879886627, 0.024782031774520874, 0.0046292017214000225, -0.058041635900735855, 0.015198282897472382, 0.004787226673215628, -0.01654614321887493, 0.010764287784695625, 0.021863216534256935, 0.009500088170170784, 0.013329870067536831, 0.030489521101117134, -0.006214099004864693, 0.011182589456439018, -0.004343362525105476, 0.034040436148643494, 0.0022216448560357094, 0.0037159102503210306, -0.038446541875600815, 0.030972890555858612, 0.04264814779162407, -0.018303008750081062, -0.037777259945869446, -0.06752313673496246, 0.04714721068739891, 0.06272660940885544, -0.032423000782728195, 0.0014338440960273147, -0.01609065942466259, -0.01968805119395256, -0.020282967016100883, 0.014222245663404465, -0.008036034181714058, -0.010773583315312862, -0.00965811312198639, 0.007534072268754244, 0.006688173860311508, -0.016202205792069435, -0.015040257945656776, -0.0047570159658789635, -0.01255833636969328, -0.0004116201598662883, -0.02606482245028019, -0.0451393648982048, 0.02054324373602867, 0.004945251625031233, 0.024168523028492928, -0.03366861119866371, 0.04461881145834923, -0.00705534964799881, 0.04517654702067375, 0.04807676747441292, -0.016927260905504227, 0.0031442318577319384, -0.03240441158413887, 0.003866963554173708, -0.024912169203162193, -0.012409606948494911, -0.028797723352909088, 0.03697783872485161, -0.023796699941158295, 0.00523806270211935, -0.024428799748420715, -0.014863641001284122, -0.05625688284635544, -0.048597320914268494, -0.013292687013745308, -0.01188905443996191, -0.025897501036524773, 0.0043410384096205235, -0.01029021292924881, -0.002881631487980485, 0.028556039556860924, 0.004852295853197575, 0.017289789393544197, 0.002120555378496647, -0.059082742780447006, 0.018767787143588066, 0.006836903281509876, -0.04484190419316292, -0.0137109886854887, -0.013218322768807411, -0.017550066113471985, 0.012251581996679306, -0.014789276756346226, 0.04502781853079796, -0.014649842865765095, 0.028388718143105507, -0.0017196832923218608, -0.02292291447520256, 0.0019416154827922583, -0.02669692225754261, 0.022327996790409088, -0.025581451132893562, -0.010485420934855938, -0.0023785079829394817, 0.008500812575221062, -0.0023238963913172483, -0.004701242316514254, 0.0322742722928524, 0.01756865717470646, 0.03119598515331745, -0.022272223606705666, 0.054137490689754486, 0.02454034611582756, -0.030136289075016975, 0.008393913507461548, 0.035936735570430756, -0.004763987846672535, -0.009258403442800045, -0.017243310809135437, 0.009834729135036469, -0.0082033546641469, -0.033464107662439346, -0.05562478303909302, -0.0258045457303524, 0.013580850325524807, 0.027440568432211876, 0.002949024550616741, 0.017373450100421906, 0.00449441559612751, -0.012976637110114098, 0.0279983039945364, -0.00530313141644001, -0.005507634487003088, 0.015932634472846985, -0.00486623914912343, -0.024391615763306618, -0.02494935132563114, -0.013590145856142044, -0.006028187461197376, -0.011991305276751518, 0.015718834474682808, -0.026306508108973503, -0.0559966079890728, 0.010095005854964256, 0.008119693957269192, 0.018544692546129227, -0.020524652674794197, 0.05859937146306038, 0.003683375893160701, 0.020022692158818245, 0.012372424826025963, -0.03697783872485161, 0.07808291912078857, 0.013497190549969673, 0.014594069682061672, 0.029132366180419922, 0.029820239171385765, 0.0016557761700823903, -0.022086311131715775, 0.06696540117263794, -0.02866758592426777, -0.021138161420822144, -0.005572703666985035, -0.004396812058985233, -0.002150766085833311, -0.0506051667034626, 0.030006149783730507, -0.054397765547037125, 0.0494525171816349, -0.039747923612594604, 0.0044920919463038445, 0.005595942493528128, -0.015830382704734802, 0.03807471692562103, 0.001510532689280808, -0.012641996145248413, 0.00921192578971386, -0.009435019455850124, -0.018544692546129227, 0.052018098533153534, 0.028054077178239822, 0.005014968570321798, -0.0013536696787923574, 0.007794348523020744, -0.010662036947906017, -0.024149931967258453, 0.015086735598742962, 0.02403838373720646, 0.014101403765380383, -0.029411232098937035, 0.02898363582789898, -0.004354981705546379, 0.0027793801855295897, -0.01681571453809738, -0.02333191968500614, 0.023666560649871826, -0.04677538573741913, -0.013618032447993755, 0.017131764441728592, -0.007668857928365469, 0.01586756482720375, -0.022755593061447144, -0.02035733312368393, -0.03262750431895256, -0.05945456400513649, 0.01757795177400112, -0.01569094881415367, 0.015337715856730938, 0.03141907975077629, -0.03614123538136482, 0.03677333518862724, 0.04971279203891754, -0.0007343512843362987, 0.008756441995501518, 0.07942148298025131, 0.0073435124941170216, -0.0023169247433543205, 0.03963637724518776], '组成编码': '01010002', '是否为关重件': '香', '是否为寿命件': '是', '备注': '易老化,需定期更换'}}, {'type': '零部件', 'name': '基阵骨架', 'properties': {'名称': '基阵骨架', '型号': '', '技术责任单位': '', '生产单位': '', '切片': '
组成编码名称是否为关重件是否为寿命件备注
01声呐基阵系统核心探测单元
0101基阵阵元组件包含多个换能器单元
01010001压电陶瓷换能器核心声电转换部件,有使用寿命
01010002橡胶透声护罩易老化,需定期更换
0102基阵骨架支撑结构
01020001钛合金主框架耐腐蚀承力结构
02信号处理机柜数据处理核心
0201发射机组件生成发射信号
020101功率放大模块大功率器件,有工作寿命
02010001散热风扇易损件,需定期更换
', 'embedding': [0.04170035198330879, -0.014224291779100895, -0.04962596297264099, 0.026121797040104866, 0.0013656228547915816, -0.05711530148983002, 0.006894009653478861, -0.009861569851636887, -0.027285190299153328, 0.0087799783796072, 0.03491995483636856, 0.010725025087594986, -0.011424878612160683, 0.05838776379823685, -0.006644062232226133, -0.04053695872426033, 0.011379432864487171, -0.011833883821964264, 0.00905719306319952, -0.008498218841850758, -0.04308187961578369, -0.03573796525597572, 0.015860311686992645, 0.02852129563689232, -0.019486824050545692, 0.01994127593934536, 0.02517654187977314, 0.008052857592701912, 0.003181151347234845, 0.043481796979904175, -0.021468227729201317, 0.013442637398838997, 0.10565058141946793, -0.03037545271217823, -0.01722366362810135, -0.06816753000020981, 0.0035378949251025915, -0.02575823850929737, -0.06333217769861221, 0.050025880336761475, -0.05155283212661743, -0.006080543622374535, 0.0008225548663176596, -0.007834721356630325, 0.020813819020986557, -0.058496829122304916, 0.0002449770690873265, -0.035010844469070435, 0.004124135710299015, 0.013669862411916256, -0.01990491896867752, -0.03744669631123543, -0.02855765074491501, -0.005362512543797493, -0.02855765074491501, 0.009752501733601093, -0.023613233119249344, -0.04060966894030571, -0.01035237591713667, 0.013806196860969067, -0.05489758402109146, 0.07743831723928452, 0.00209615146741271, 0.03557436168193817, 0.03911907225847244, 0.03475635126233101, 0.017405442893505096, 0.03699224814772606, 0.011733904480934143, -0.05017130449414253, -0.008798155933618546, 0.0077756429091095924, -0.0022006751969456673, -0.019614070653915405, -0.044172558933496475, 0.04017339646816254, 0.007684752810746431, -0.05104384571313858, -0.03864644467830658, 0.02159547433257103, 0.05377054959535599, 0.012706427834928036, -0.018723348155617714, 0.020886531099677086, -0.04693561792373657, 0.02063203975558281, 0.005148920696228743, 0.04039153456687927, -0.06024191901087761, -0.03395652025938034, 0.01849612407386303, 0.013288124464452267, -0.001704188296571374, -0.001163392560556531, -0.03664686530828476, -0.01060686819255352, 0.030466342344880104, 0.014805987477302551, 0.011543035507202148, 0.009770679287612438, 0.004117318894714117, 0.08420053124427795, -0.007898344658315182, -0.014706009067595005, 0.05369783565402031, 0.01377893052995205, -0.04260925203561783, -0.013806196860969067, -0.012960920110344887, -0.036046989262104034, 0.021431872621178627, 0.04199120029807091, -0.015042302198708057, -0.02221352607011795, 0.0008776569738984108, -0.040791451930999756, -0.003087989054620266, -0.05384325981140137, 0.003960533533245325, -0.028303159400820732, 0.02559463493525982, -0.022358950227499008, 0.07412991672754288, 0.0018427956383675337, 0.017441799864172935, -0.02486751601099968, 0.039700768887996674, 0.020395725965499878, -0.03688317909836769, 0.04886248707771301, 0.007657486014068127, 0.03795568272471428, -0.0062577794305980206, 0.01697826012969017, 0.012624626979231834, -0.05297071486711502, 0.005467035807669163, 0.034665461629629135, 0.003728763898834586, -0.042718321084976196, 0.015614909119904041, 0.03110257163643837, 0.05493394285440445, -0.014024333097040653, 0.024958405643701553, -0.0273760799318552, -0.042936455458402634, -0.0024267639964818954, -0.00954345427453518, 0.012215621769428253, -0.013478993438184261, -0.01594211347401142, -0.04140950366854668, 0.04173670709133148, 0.007771098520606756, -0.003910543862730265, 0.010370553471148014, 0.03288401663303375, -0.0420275554060936, 0.07074880599975586, 0.0434090830385685, 0.045517731457948685, -0.0018189369002357125, -0.027612393721938133, -0.0015258166240528226, 0.009907014667987823, 0.06445921957492828, -0.003810564987361431, -0.02475844696164131, -0.008684543892741203, -0.007198491133749485, 0.03799203783273697, 0.023467808961868286, 0.009248062036931515, 0.036937713623046875, -0.0029402929358184338, 0.012960920110344887, -0.016869191080331802, 0.03233867511153221, 0.007230302784591913, -0.02417675033211708, -0.0030561776366084814, 0.01522408239543438, 0.006112355273216963, -0.023195138201117516, 0.017332730814814568, -0.00755296228453517, 0.03861008957028389, 0.006425925996154547, 0.04140950366854668, -0.00450360169634223, 0.013015453703701496, 0.008289171382784843, -0.02786688692867756, -0.002029120223596692, 0.0008952668868005276, -0.026703493669629097, -0.03937356546521187, 0.014951411634683609, 0.009184438735246658, -0.0041673085652291775, 0.00017908179142978042, -0.01656925491988659, -0.03013913705945015, -0.04664476960897446, 0.008489130064845085, -0.054643094539642334, -0.0025335599202662706, -0.005803328938782215, -0.030157316476106644, -0.029630154371261597, 0.04762637987732887, 0.06980355083942413, -0.0012020207941532135, -0.028939388692378998, 0.0016167066060006618, 0.01763266883790493, -0.09321682900190353, 0.016696501523256302, -0.08223731070756912, -0.012506470084190369, 0.021886322647333145, -0.011697548441588879, 0.006048732437193394, 0.018605191260576248, -0.014078867621719837, 0.059878360480070114, 0.02486751601099968, -0.011106763035058975, -0.02090470865368843, -0.029230237007141113, 0.009943370707333088, 0.021577294915914536, -0.025630991905927658, 0.0847095176577568, 0.040936876088380814, -0.049444183707237244, 0.04828079044818878, 0.047371890395879745, -0.003667413257062435, -0.04017339646816254, 0.007125779055058956, 0.05082571133971214, 0.007684752810746431, 0.027812352403998375, -4.249375706422143e-06, 0.01632385142147541, 0.02559463493525982, -0.05104384571313858, 0.014805987477302551, 0.03155702352523804, -0.0034560938365757465, -0.02475844696164131, 0.0035219890996813774, 0.009888836182653904, 0.009416208602488041, -0.02906663529574871, 0.010806825943291187, 0.06518633663654327, -0.01177934929728508, 0.015269527211785316, 0.02679438330233097, 0.024649379774928093, 0.036392372101545334, 0.014051600359380245, -0.0010594370542094111, -0.021795431151986122, -0.03321122005581856, -0.017659934237599373, -0.0038241983857005835, 0.007548417896032333, 0.007125779055058956, -0.00781654380261898, 0.02906663529574871, 0.004637664183974266, 0.013160877861082554, 0.028884856030344963, -0.02752150408923626, 0.030266383662819862, 0.009138993918895721, -0.03937356546521187, 0.0037492141127586365, 0.018487034365534782, -0.021431872621178627, -0.023086071014404297, 0.0011815705802291632, -0.008566386066377163, -0.01939593441784382, -0.009425297379493713, -0.023104248568415642, -0.01208837516605854, 0.013024542480707169, 0.024467598646879196, 0.010997694917023182, -0.02648535743355751, -0.0062714130617678165, 0.00024071658845059574, -0.12797318398952484, -0.008684543892741203, -0.027466971427202225, -0.012924564070999622, 0.0029016644693911076, -0.02455848827958107, -0.01921415515244007, -0.05177096650004387, -0.08252815902233124, 0.05286164954304695, -0.030120959505438805, -0.057260725647211075, -0.023958614096045494, 0.011988396756350994, 0.008420961908996105, -0.0015792144695296884, 0.004889884032309055, -0.038246531039476395, -0.013906176201999187, 0.012142909690737724, 0.012197443284094334, -0.06904007494449615, 0.012561003677546978, 0.0334111787378788, -0.0055988263338804245, -0.0313388854265213, -0.01147032342851162, -0.02055932767689228, 0.00032578399986959994, -0.01795078255236149, -0.029611974954605103, -0.0007827904773876071, -0.0009015155956149101, 0.025667347013950348, -0.014696919359266758, 0.010743202641606331, 0.009834302589297295, -0.0033220311161130667, -0.03064812161028385, 0.017578134313225746, 0.007103056646883488, 0.026358112692832947, -0.027121588587760925, -0.02752150408923626, -0.03810110688209534, -0.06140531226992607, -0.020232122391462326, 0.020304834470152855, -0.06275048106908798, 0.006048732437193394, 0.017623579129576683, -0.025431033223867416, -0.018832417204976082, -0.009979726746678352, -0.02448577806353569, -0.002726701321080327, -0.02706705406308174, 0.01870517060160637, 0.016269316896796227, -0.021722719073295593, -0.007984690368175507, 0.019105086103081703, 0.019614070653915405, -0.026030907407402992, -0.02379501238465309, -0.004439978394657373, -0.014978678897023201, -0.04500874876976013, 0.030902614817023277, -0.03588338941335678, -0.02217717096209526, -0.009107181802392006, -0.013097254559397697, -0.033047620207071304, -0.0047081043012440205, 0.018196186050772667, -0.03464728221297264, -0.06136895716190338, -0.005048941820859909, -0.06155073642730713, 0.0014235653216019273, 0.053952328860759735, 0.0029152981005609035, 0.0033924707677215338, -0.037628475576639175, 0.06213243305683136, 0.02455848827958107, -0.03262952342629433, -0.02524925395846367, 0.21290083229541779, -0.046099428087472916, -0.009243517182767391, -0.051407407969236374, 0.042718321084976196, -0.025194719433784485, 0.06569532305002213, -0.029393838718533516, 0.007039433810859919, -0.036174237728118896, -0.026921629905700684, -0.019432291388511658, -0.009129904210567474, -0.027612393721938133, -0.008561842143535614, 0.05762428790330887, 0.010243307799100876, -0.07238482683897018, 0.0953981876373291, 0.013733485713601112, 0.01718730665743351, 0.07311195135116577, -0.00248811487108469, -0.025576457381248474, -0.045990362763404846, -0.04660841450095177, 0.013906176201999187, 0.03490177541971207, 0.008670910261571407, 0.027267012745141983, -0.012397401966154575, -0.002410858403891325, -0.005444313399493694, -0.004553590901196003, -0.018023494631052017, 0.00025236187502741814, 0.04402713477611542, 0.030266383662819862, -0.042245689779520035, 0.030848080292344093, -0.00632140226662159, -0.02713976614177227, -0.055915553122758865, 0.011970218271017075, -0.02483115904033184, -0.027048876509070396, 0.01939593441784382, -0.05846047401428223, 0.0211773794144392, -0.006825841963291168, -0.0192868672311306, 0.006048732437193394, -0.019232332706451416, 0.026539891958236694, -0.02166818641126156, -0.007116690278053284, -0.03495630994439125, -0.0019995809998363256, 0.028503116220235825, -0.024340353906154633, 0.010197862982749939, 0.018332520499825478, -0.1019422709941864, -0.0045376853086054325, -0.0011531674535945058, 0.011815705336630344, -0.02441306598484516, -0.004780816379934549, 0.01656925491988659, 0.014124312438070774, 0.07147593051195145, -0.03691953420639038, -0.040936876088380814, 0.011988396756350994, 0.02017758972942829, 0.05689716711640358, -0.012297422625124454, 0.08994478732347488, -0.007507517468184233, 0.01320632267743349, -0.012024752795696259, -0.004726282320916653, -0.029557442292571068, 0.016078447923064232, 0.014606029726564884, 0.043445438146591187, 0.025976374745368958, 0.026049084961414337, 0.004619486164301634, 0.0005041557014919817, -0.014760542660951614, -0.03284766152501106, -0.014851433224976063, 0.04704468697309494, -0.04748095944523811, 0.009570721536874771, -0.03284766152501106, -0.03037545271217823, -0.05184368044137955, -0.002792596584185958, -0.016541987657546997, -0.026648961007595062, 0.024613022804260254, -0.04657205566763878, 0.02586730569601059, 0.038319241255521774, 0.09910649806261063, 0.004994407761842012, -0.00886632315814495, -0.021268269047141075, 0.017678113654255867, 0.026630781590938568, -0.00823009293526411, -0.027775997295975685, -0.02228623814880848, -0.047953587025403976, -0.039700768887996674, 0.00663951737806201, 0.007575685158371925, 0.023540521040558815, 0.007080334238708019, 0.011924773454666138, 0.0030470886267721653, 0.03302944079041481, 0.0019268689211457968, -0.016932815313339233, -0.05089842155575752, 0.013142700307071209, -0.02432217448949814, 0.035138089209795, -0.00020578072872012854, -0.0365014411509037, -0.016305673867464066, -0.03541076183319092, -0.004065057262778282, -0.015796689316630363, 0.013142700307071209, 0.005503391847014427, -0.03499266505241394, -0.010361464694142342, 0.01759631186723709, -0.04119136556982994, -0.005067119840532541, 0.021886322647333145, -0.046717479825019836, -0.09605259448289871, -0.008016501553356647, -0.06009649485349655, 0.015187726356089115, -0.023540521040558815, 0.0029857377521693707, -0.02648535743355751, -0.0406460277736187, -0.05104384571313858, 0.028739431872963905, 0.045445021241903305, -0.02486751601099968, 0.02025030180811882, 0.014751453883945942, -0.01890512928366661, -0.007671119645237923, 0.029466550797224045, 0.027357902377843857, -0.00573516171425581, 0.011761171743273735, 0.06722227483987808, -0.06809481978416443, 0.034120120108127594, -0.01925051026046276, 0.01026148535311222, 0.005471580661833286, -0.007216669153422117, -0.0475173145532608, 0.08732715249061584, 0.02001398801803589, 0.030466342344880104, -0.044863324612379074, 0.009843391366302967, 0.006462282035499811, 0.05035308375954628, -0.018168918788433075, 0.035592541098594666, 0.0028357692062854767, -0.025667347013950348, 0.0066622402518987656, 0.03733762726187706, -0.028085023164749146, -0.0007276883698068559, -0.0042831930331885815, -0.01329721324145794, -0.003651507431641221, 0.08216460049152374, -0.0034447326324880123, -0.0072348471730947495, 0.015823956578969955, -0.014924144372344017, -0.016578342765569687, -0.026339933276176453, -0.03988255187869072, 0.008907224051654339, 0.02759421616792679, 0.024467598646879196, -0.024740269407629967, -0.009725234471261501, -0.03353842347860336, -0.019541358575224876, 0.004460428841412067, 0.020504793152213097, -0.01564217545092106, -0.0273760799318552, -0.013151789084076881, 0.001707596704363823, 0.008857234381139278, 0.0004050287534482777, -0.017196396365761757, 0.026667138561606407, 0.03381109610199928, 0.06256870180368423, 0.002394952578470111, -0.029884645715355873, 0.04780816286802292, 0.018650636076927185, -0.0003544711507856846, -0.009243517182767391, -0.02775781787931919, -0.005008041393011808, 0.05962386727333069, -0.0358288548886776, 0.03590156510472298, -0.01551492977887392, 0.0067213186994194984, -0.0005805601249448955, -0.014578762464225292, -0.026703493669629097, 0.03577432036399841, -0.01160665787756443, -0.014796898700296879, 0.03726491704583168, 0.037592120468616486, -0.016587432473897934, 0.019995808601379395, 0.03241138905286789, -0.009334406815469265, 0.024467598646879196, -0.026612604036927223, 0.03259316831827164, 0.037519410252571106, 0.04228204861283302, 0.05602462217211723, 0.004848983604460955, -0.0033765649423003197, -0.010870449244976044, 0.006880376022309065, -0.018205275759100914, -0.004898973274976015, 0.02025030180811882, -0.01959589309990406, -0.0036810466554015875, -0.0488988421857357, -0.020577505230903625, -0.005194365978240967, 0.0277214627712965, -0.026121797040104866, 0.01401524432003498, -0.005912397056818008, -0.03810110688209534, 0.01997763104736805, 0.01632385142147541, -0.023358739912509918, -0.024303996935486794, -0.0077756429091095924, -0.0035947011783719063, -0.03911907225847244, -0.019886741414666176, 0.05624275654554367, -0.006589528173208237, -0.02510382980108261, -0.01377893052995205, 0.0069621773436665535, -0.016660144552588463, -0.046208497136831284, 0.018923306837677956, -0.01732364110648632, -0.01759631186723709, 0.015087747015058994, 0.004637664183974266, -0.0027585127390921116, 0.02255890890955925, 0.002175680361688137, -0.034247368574142456, 0.02132280357182026, -0.008589108474552631, -0.03606516867876053, 0.03850102052092552, -0.019759494811296463, 0.06031463295221329, 0.014942322857677937, -0.012851851992309093, 0.006435014773160219, 0.009725234471261501, -0.022449839860200882, 0.04013704136013985, -0.042900100350379944, -0.0006288454751484096, 0.006739496719092131, -0.02352234348654747, -0.001553083537146449, 0.008952668868005276, -0.011406700126826763, -0.01997763104736805, 0.025376498699188232, 0.0037878425791859627, -0.018577923998236656, -0.0451178178191185, 0.021359160542488098, -0.003980983980000019, 0.0025403767358511686, 0.007116690278053284, -0.0320296511054039, 0.0037605755496770144, 0.002544921124354005, 0.029321126639842987, -0.009707055985927582, -0.05617004632949829, 0.0444270521402359, 0.018723348155617714, 0.0005101203569211066, 0.020268479362130165, -0.023376919329166412, 0.005603371188044548, -0.026703493669629097, 0.051225628703832626, -0.00781654380261898, -0.01908690854907036, 0.06006013974547386, 0.023667767643928528, 0.0330657958984375, 0.0341019444167614, 0.055442925542593, 0.05038943886756897, -0.035210803151130676, 0.003785570152103901, 0.059114884585142136, -0.012706427834928036, -0.006657695397734642, 0.016442008316516876, -0.015760332345962524, 0.0013906176900491118, 0.034665461629629135, -0.01098860614001751, 0.005589737556874752, 0.032665882259607315, -0.033047620207071304, -0.03777389973402023, 0.00962525513023138, 0.004237748216837645, 0.02166818641126156, 0.017214573919773102, 0.06449557095766068, -0.014133401215076447, -0.023067891597747803, 0.03850102052092552, 0.0011139711132273078, -0.00014854840992484242, -0.007393904961645603, -0.006766763515770435, -0.019450468942523003, 0.010561422444880009, 0.026812562718987465, 0.0077301980927586555, -0.03033909574151039, -0.054715804755687714, -0.023667767643928528, 0.00433999951928854, -0.0053397901356220245, 0.01835978776216507, 0.015451307408511639, 0.011497590690851212, 0.007021255791187286, -0.021849965676665306, -0.008893590420484543, -0.03068447858095169, -0.008434595540165901, -0.021195556968450546, 0.008134658448398113, -0.007875622250139713, -0.042827386409044266, -0.036210592836141586, 0.04369993135333061, 0.0609690397977829, -0.04111865535378456, 0.005748795345425606, -0.009452564641833305, -0.0014440155355259776, -0.1126309409737587, 0.02448577806353569, 0.000781654380261898, 0.022777045145630836, -0.019468646496534348, -0.005666994024068117, -0.001630340120755136, -0.0027721463702619076, 0.01033419743180275, -0.06275048106908798, -0.010634134523570538, 0.05809691548347473, 0.00621687900274992, -0.014315181411802769, -0.021195556968450546, 0.005594281945377588, 0.012288333848118782, -0.0280668456107378, 0.0031220728997141123, 0.014805987477302551, -0.047953587025403976, -0.026503536850214005, 0.025467390194535255, 0.007684752810746431, 0.02972104400396347, 0.03102985955774784, 0.005257988814264536, 0.011761171743273735, -0.027539681643247604, 0.03599245473742485, -0.007330281659960747, -0.04068238288164139, 0.02613997645676136, 0.017350908368825912, 0.00814374815672636, -0.04322730377316475, -0.005921486299484968, -0.035210803151130676, 0.06042369827628136, -0.024958405643701553, 0.11655738949775696, 0.024013148620724678, 0.02552192285656929, 0.04893519729375839, -0.01763266883790493, -0.01131581049412489, -0.027339724823832512, 0.010497800074517727, -0.028194090351462364, 0.004898973274976015, 0.0031652457546442747, 0.021795431151986122, -0.0016587432473897934, -0.009043559432029724, -0.009507098235189915, 0.02655806951224804, -0.06016920879483223, 0.01718730665743351, -0.025303786620497704, -0.018332520499825478, -0.010979517363011837, 0.027121588587760925, -0.010316019877791405, -0.08550935238599777, -0.019123265519738197, 0.024958405643701553, -0.008380061946809292, 0.025921840220689774, 0.021195556968450546, 0.007634763605892658, -0.01790533773601055, 0.054570380598306656, 0.042209334671497345, -0.053334277123212814, -0.007153046317398548, 0.02063203975558281, 0.01558764185756445, 0.05707894638180733, 0.0012929108925163746, -0.01570579968392849, 0.01108858548104763, -0.002300654072314501, -0.01010697241872549, -0.01849612407386303, 0.036628685891628265, 0.0007140549132600427, -0.027194300666451454, 0.016242049634456635, -0.029539262875914574, 0.014951411634683609, -0.019777672365307808, -0.013815286569297314, 0.013088165782392025, -0.02528560906648636, -0.026630781590938568, 0.0035378949251025915, -0.04755366966128349, -0.05744250491261482, -0.014924144372344017, -0.04537230730056763, 0.04860799387097359, -0.02975739911198616, 0.01766902394592762, -0.006098721642047167, -0.03573796525597572, 0.015696709975600243, -0.004187758546322584, -0.01505139097571373, 0.02559463493525982, 0.010652313008904457, 0.006725863087922335, -0.019795851781964302, 0.05093478038907051, -0.015024123713374138, -0.01639656350016594, 0.023413274437189102, 0.015414951369166374, -0.03737398609519005, -0.0021268269047141075, -0.037592120468616486, 0.031320709735155106, -0.008789067156612873, 0.02263162098824978, -0.035974279046058655, 0.008720899932086468, 0.011415788903832436, 0.005585193168371916, 0.02255890890955925, -0.0008066490991041064, 0.031357064843177795, 0.016033003106713295, -0.03450185805559158, -0.019723139703273773, 0.019414111971855164, 0.03299308568239212, -0.024085860699415207, -0.0323750339448452, 0.06133259832859039, 0.001128740725107491, -0.024104038253426552, 0.0052988892421126366, 0.0046944706700742245, -0.012579182162880898, -0.008570930920541286, -0.014160668477416039, -0.018650636076927185, -0.012361045926809311, -0.027666928246617317, -0.028248624876141548, 0.02444942109286785, 0.021922677755355835, -0.005062575452029705, 0.017859892919659615, -0.05275258049368858, -0.0031652457546442747, -0.04635392129421234, 0.013669862411916256, -0.06467735022306442, -0.023776834830641747, -0.014097045175731182, 0.0058805858716368675, -0.030120959505438805, -0.012342867441475391, -0.07467525452375412, 0.0058396849781274796, 0.009707055985927582, 0.027957776561379433, 0.015524019487202168, -0.004439978394657373, -0.0105068888515234, -0.010615956969559193, 0.03722856193780899, 0.010397820733487606, 0.024067683145403862, 0.0192868672311306, -0.00664860662072897, 0.028921211138367653, -0.029266593977808952, 0.10237853974103928, 0.011134030297398567, 0.04199120029807091, 0.009461653418838978, 0.016678322106599808, 0.04769909381866455, -0.0026653504464775324, 0.04726282134652138, 0.03722856193780899, 0.012461024336516857, -0.055333856493234634, 0.007566595915704966, 0.005185276735574007, -0.021068312227725983, 0.005971475504338741, -0.02008669823408127, 0.02875760942697525, 0.012342867441475391, -0.004492240492254496, 0.0028289526235312223, -0.03777389973402023, 0.035356227308511734, -0.05355241149663925, -0.026158154010772705, -0.0341019444167614, -0.03282948210835457, -0.006562260910868645, 0.04780816286802292, -0.013088165782392025, -0.014796898700296879, -0.006107810884714127, -0.0064077479764819145, -0.017232751473784447, 0.03646508604288101, -0.023922258988022804, 0.03853737935423851, -0.013215412385761738, -0.01615116000175476, 0.009148082695901394, -0.08674545586109161, -0.02559463493525982, 0.044208917766809464, -0.04250018298625946, 0.019995808601379395, 0.0015189998084679246, 0.006971266120672226, 0.03491995483636856, -0.0385737344622612, 0.008702721446752548, -0.021486405283212662, 0.03199329599738121, -0.019995808601379395, -0.00857547577470541, -0.008807244710624218, 0.014351537451148033, 0.05617004632949829, 0.057987846434116364, -0.00855729728937149, 0.01622387208044529, 0.003417465602979064, 0.017896249890327454, -0.005607915576547384, 0.06075090542435646, 0.02703069895505905, -0.01632385142147541, 0.02332238480448723], '组成编码': '0102', '是否为关重件': '是', '是否为寿命件': '香', '备注': '支撑结构'}}, {'type': '零部件', 'name': '钛合金主框架', 'properties': {'名称': '钛合金主框架', '型号': '', '技术责任单位': '', '生产单位': '', '切片': '
组成编码名称是否为关重件是否为寿命件备注
01声呐基阵系统核心探测单元
0101基阵阵元组件包含多个换能器单元
01010001压电陶瓷换能器核心声电转换部件,有使用寿命
01010002橡胶透声护罩易老化,需定期更换
0102基阵骨架支撑结构
01020001钛合金主框架耐腐蚀承力结构
02信号处理机柜数据处理核心
0201发射机组件生成发射信号
020101功率放大模块大功率器件,有工作寿命
02010001散热风扇易损件,需定期更换
', 'embedding': [0.0027994427364319563, 0.010319333523511887, -0.061065301299095154, 0.0047851745039224625, -0.00590865034610033, 0.0030074939131736755, 0.0020573940128087997, 0.008590197190642357, -0.011336471885442734, 0.00948712881654501, 0.013740617781877518, 0.011373458430171013, -0.01753176935017109, 0.01964002102613449, -0.016449904069304466, -0.028294945135712624, 0.04190610721707344, 0.009172740392386913, -0.006782464683055878, -0.01827150769531727, -0.10526459664106369, -0.002448067534714937, 0.003002870362251997, -0.012982387095689774, 0.013084100559353828, 0.03928004205226898, 0.005423197988420725, -0.01002343837171793, -4.771448948304169e-05, 0.042830780148506165, 0.014637548476457596, 0.015599207021296024, 0.0039945803582668304, -0.03219705820083618, 0.03277035430073738, -0.047121256589889526, 0.02095305360853672, -0.010106658563017845, -0.06639140844345093, 0.007665526121854782, -0.0140365120023489, -0.0072679175063967705, 0.02350514754652977, 0.00700900936499238, 0.0199729036539793, -0.05829128623008728, -0.0018504987237975001, -0.03132786974310875, -0.0012020728318020701, -0.010347072966396809, 0.00377265946008265, 0.006791711784899235, 0.007314151152968407, 0.03119841404259205, -0.019750982522964478, 0.0433855839073658, -0.014924196526408195, -0.016496138647198677, -0.03269638121128082, 0.046529464423656464, -0.031013479456305504, 0.035008061677217484, 0.0459376759827137, 0.013158074580132961, 0.021101001650094986, 0.00673160795122385, -0.013389241881668568, -0.0034836996346712112, -0.019325632601976395, 0.008761261589825153, 0.008576327934861183, -0.0006258869543671608, 0.03393544256687164, -0.034564219415187836, -0.036080680787563324, 0.005307613871991634, 0.016690319404006004, -0.005007095634937286, 0.021748272702097893, 0.013370748609304428, 0.02683396451175213, 0.03330666571855545, 0.01954755373299122, 0.003169311210513115, -0.010208372958004475, 0.04686234891414642, -0.02383803017437458, 0.060325562953948975, -0.02465173974633217, -0.029404550790786743, -0.0016505385283380747, -0.0011228978401049972, 0.02803603745996952, -0.004727382678538561, -0.03626561164855957, 0.00016774117830209434, -0.001245994702912867, 0.017513277009129524, 0.0408334918320179, 0.05248434841632843, -0.011678599752485752, 0.03820742294192314, 0.005279873963445425, -0.011123796924948692, 0.08225876837968826, -0.016560865566134453, 0.017476290464401245, -0.03506353870034218, -0.024596258997917175, 0.00012721456005237997, 0.03646904230117798, -0.0032224799506366253, -0.007610045839101076, -0.010208372958004475, -0.011771067045629025, -0.03722727298736572, 0.028313439339399338, -0.03606218472123146, 0.008026148192584515, -0.02407844364643097, -0.006213792134076357, -0.014924196526408195, 0.08551361411809921, -0.03774508833885193, 0.038762226700782776, -0.004743564408272505, 0.010901875793933868, 0.008825988508760929, -0.03236350044608116, 0.002424950711429119, -0.006223038770258427, 0.00936229806393385, -0.01951056718826294, 0.018345480784773827, -0.04397737234830856, -0.014582068659365177, 0.009464012458920479, -0.0009044442558661103, -0.006403349805623293, -0.02095305360853672, 0.03243747353553772, 0.05988172069191933, -0.009385415352880955, -0.0236715879291296, 0.020805107429623604, -0.021174974739551544, -0.0011818456696346402, 0.0025243530981242657, 0.0038743733894079924, -0.006028857547789812, 0.0230982918292284, 0.004260423593223095, -0.03473065793514252, 0.043570518493652344, 0.030495664104819298, -0.038392357528209686, -0.023079799488186836, 0.04268283396959305, -0.02757370099425316, 0.05289120599627495, 0.02182224579155445, 0.06287765502929688, 0.044569164514541626, -0.006125948391854763, -0.013130334205925465, 0.008451497182250023, 0.06983118504285812, 0.011031330563127995, -0.005210523493587971, 0.03502655401825905, 0.01971399411559105, 0.018262261524796486, -0.007193943485617638, -0.05607207491993904, 0.0062322854064404964, -0.004315903875976801, 0.03393544256687164, 0.008701157756149769, -0.00026699886075221, -0.008997052907943726, 0.030107300728559494, 0.004103229381144047, 0.0008368276176042855, -0.016616346314549446, -0.014693029224872589, 0.026038747280836105, 0.061731062829494476, -0.027074379846453667, 0.012834439054131508, 0.031105946749448776, -0.0153772858902812, -0.050782956182956696, 0.023246239870786667, -0.06642839312553406, -0.01716190204024315, 0.03746768459677696, -0.033824481070041656, -0.03095799870789051, -0.01827150769531727, -0.03293679654598236, -0.016440657898783684, -0.00027841280098073184, 0.01683826744556427, 0.04741714894771576, -0.02293185144662857, 0.06960926204919815, -0.026519576087594032, -0.04834182187914848, -0.0022920293267816305, 0.026870951056480408, -0.046085622161626816, -0.03780056908726692, 0.07826419174671173, 0.010772421956062317, -0.0436444915831089, 0.025835320353507996, 0.03449024260044098, -0.024799687787890434, 0.002975130220875144, -0.031512800604104996, -0.013269035145640373, 0.016154009848833084, 0.0016551618464291096, 0.018105067312717438, 0.011262497864663601, -0.04656645283102989, 0.01128099113702774, 0.019492072984576225, -0.0199729036539793, -0.0001015693778754212, -0.028516866266727448, 0.009348427876830101, -0.0484897680580616, -0.012002235278487206, 0.049710337072610855, 0.007979914546012878, -0.041277334094047546, 0.008289678953588009, 0.03817043825984001, -0.011373458430171013, 0.01807732693850994, 0.029626471921801567, 0.0073233977891504765, -0.0024873660877346992, -0.028627827763557434, 0.032049112021923065, -0.02910865657031536, 0.026778483763337135, -0.0161725040525198, 0.014942689798772335, 0.005076446104794741, -0.0022273024078458548, -0.05137474462389946, -0.04871169105172157, 0.02461475320160389, 0.03685740381479263, -0.007106099743396044, 0.003303388599306345, 0.01724512130022049, 0.01376835722476244, 0.03543340787291527, 0.03602520003914833, -0.01018987875431776, -0.005469431634992361, 0.015608454123139381, 0.03486011177301407, -0.007970667444169521, -0.022857878357172012, -0.020675653591752052, 0.017873898148536682, -0.016200242564082146, 0.0007027502870187163, 0.03199363127350807, 0.01004193164408207, -0.037319738417863846, 0.05655290558934212, -0.0012344364076852798, -0.030495664104819298, 0.03835536912083626, -0.0021140300668776035, 0.050117190927267075, 0.021137988194823265, 0.01576564833521843, 0.0632845088839531, -0.005806936416774988, 0.01331526879221201, -0.061694078147411346, 0.02659355103969574, -0.021618817001581192, -0.020231811329722404, -0.006495816633105278, -0.006551296915858984, 0.06413520872592926, 0.023061305284500122, -0.011928261257708073, -0.00033952778903767467, -0.00017294245481025428, -0.1425473541021347, 0.01378685049712658, -0.004946992266923189, 0.02383803017437458, 0.01512762438505888, -0.02404145710170269, -0.03182718902826309, -0.053002167493104935, -0.0005686728982254863, 0.010938863269984722, -0.013916305266320705, -0.05695975944399834, -0.03330666571855545, -0.010014191269874573, -0.04260886088013649, -0.017189642414450645, -0.010384060442447662, -0.017929378896951675, -0.027222326025366783, -0.0032455967739224434, 0.0031300128903239965, -0.03428681567311287, 0.023597614839673042, -0.0013072541914880276, -0.020694145932793617, -0.04490204527974129, -0.011604626663029194, -0.011965247802436352, 0.021618817001581192, -0.022654449567198753, -0.024022962898015976, 0.017762938514351845, 0.0023995223455131054, 0.045678768306970596, 0.027037393301725388, -0.0004267936456017196, 0.012409090995788574, 0.01054125465452671, -0.03452723100781441, -0.02407844364643097, 0.03430531173944473, 0.008668794296681881, 0.023967484012246132, -0.03504504635930061, -0.03817043825984001, -0.03265939652919769, 0.03750467300415039, -0.016449904069304466, -0.014905703254044056, -0.03543340787291527, 0.04164719954133034, 0.026907937601208687, -0.003113830927759409, 0.008428379893302917, -0.05673784017562866, -0.008049264550209045, 0.006560543552041054, 0.029127150774002075, -0.010393306612968445, -0.06568865478038788, -0.005118056200444698, 0.01208545546978712, 0.0009113792912103236, -0.04808291420340538, -0.0368758961558342, -0.0399458073079586, -0.0029681953601539135, 0.0077025131322443485, 0.009542609564960003, -0.03434229642152786, -0.0015314870979636908, -0.02474420703947544, 0.004151774570345879, -0.03360255807638168, -0.009121883660554886, 0.04075951501727104, 0.041277334094047546, -0.02712985873222351, -0.022247593849897385, -0.11170031130313873, 0.0586981438100338, 0.05292819067835808, 0.008733521215617657, 0.05825430154800415, -0.031013479456305504, 0.008946196176111698, 0.062137920409440994, 0.025761345401406288, -0.0672421082854271, 0.1874493956565857, 0.018373221158981323, 0.031512800604104996, -0.01210394874215126, 0.07090380787849426, -0.00029676174744963646, 0.043237634003162384, -0.0028341179713606834, 0.03633958846330643, -0.020805107429623604, -0.024799687787890434, 0.042830780148506165, 0.004392189439386129, 0.0034235960338264704, 0.006713114678859711, 0.03001483529806137, -0.0394279882311821, -0.03240048512816429, 0.06284067034721375, -0.03277035430073738, 0.013343008235096931, -0.035747796297073364, 0.0004762057797051966, -0.04638151824474335, -0.053039152175188065, -0.02663053758442402, 0.04786099120974541, 0.10156591236591339, -0.009764530695974827, 0.027018899098038673, -0.03685740381479263, 0.03585875779390335, -0.003564608283340931, -0.009810763411223888, -0.01387007161974907, -0.0021510168444365263, 0.018040340393781662, -0.018798569217324257, -0.020342770963907242, 0.07782034575939178, -0.03519299626350403, -0.02602025307714939, -0.03720877692103386, 0.01753176935017109, -0.012344363145530224, -0.05056103318929672, 0.009995697997510433, -0.03232651203870773, 0.004077801015228033, 0.014184460043907166, 0.0033727390691637993, -0.020065369084477425, -0.008428379893302917, 0.009251337498426437, -0.03652452304959297, -0.02370857447385788, -0.009496375918388367, -0.05259530991315842, -0.0006992827402427793, -0.003243284998461604, -0.0007796136196702719, 0.037282753735780716, -0.05451862886548042, -0.01910371147096157, 0.03267788887023926, -0.021433884277939796, 0.027203833684325218, -0.011734080500900745, -0.01294539961963892, -0.014147472567856312, 0.0631735548377037, -0.001566162216477096, -0.00039529704372398555, -0.035747796297073364, 0.060658443719148636, 0.003488322952762246, 0.040981438010931015, 0.09572198241949081, -0.05285421758890152, 0.03850331902503967, -0.03310323879122734, 0.034471750259399414, -0.05658989027142525, -0.0012147871311753988, 0.0187245961278677, -0.027351779863238335, 0.005224393680691719, 0.027277806773781776, -0.03946497663855553, -0.03861428052186966, -0.04586370289325714, -0.01818828657269478, -0.009191233664751053, 0.040685541927814484, -0.05289120599627495, -0.012325869873166084, -0.024633247405290604, -0.00728641077876091, -0.04438422992825508, -0.0048082913272082806, -0.046529464423656464, -0.031512800604104996, 0.010800162330269814, -0.045013006776571274, 0.009653570130467415, 0.001835472765378654, 0.017670471221208572, -0.030865531414747238, -0.01988043636083603, 0.03683890774846077, -0.015164610929787159, 0.0192701518535614, -0.02555791847407818, 0.009930971078574657, -0.02363460138440132, 0.009260584600269794, -0.02964496612548828, 0.0005377542111091316, 0.01646839827299118, -0.04220200330018997, -0.0042789168655872345, -0.03005182184278965, -0.022044166922569275, 0.03071758523583412, -0.0071014766581356525, -0.018881790339946747, -0.07079284638166428, -0.003176246304064989, -0.06505987793207169, 0.0666133314371109, -0.011475172825157642, -0.0006709647132083774, -0.026538070291280746, 0.011465925723314285, 0.010402553714811802, 0.01220566313713789, 0.004140216391533613, 0.02041674591600895, -0.034434765577316284, 0.005848546978086233, 0.005751456134021282, -0.04767606034874916, -0.01818828657269478, 0.011660106480121613, -0.012436830438673496, -0.01373137068003416, 0.00420031975954771, 0.0030329222790896893, 0.012381350621581078, 0.025668878108263016, 0.026038747280836105, 0.0009703270625323057, -0.02683396451175213, -0.03596971929073334, 0.04116637259721756, -0.059918709099292755, -0.0199729036539793, -0.018659869208931923, 0.02058318629860878, -0.041018422693014145, -0.013962538912892342, -0.03330666571855545, 0.044273268431425095, 0.019233165308833122, 0.012002235278487206, 0.06361739337444305, -0.04116637259721756, 0.028017545118927956, -0.016773540526628494, -0.0242448840290308, -0.010513514280319214, -0.031716231256723404, -0.035507380962371826, 0.05133775621652603, 0.039132095873355865, 0.0007073736633174121, -0.0075823054648935795, -0.00825269240885973, 0.0178646519780159, -0.01277895923703909, 0.03247446194291115, -0.014933443628251553, -0.024725714698433876, -0.04549383372068405, 0.023320212960243225, 0.0033241938799619675, -0.0076377857476472855, -0.008724275045096874, 0.014258433133363724, -0.004161021206527948, 0.004923875443637371, 0.07685869187116623, -0.045678768306970596, -0.008238822221755981, 0.028868241235613823, 0.0022677567321807146, -0.03502655401825905, -0.03008880838751793, -0.02071264013648033, -0.04490204527974129, 0.00878900196403265, -0.05074596777558327, -0.021877726539969444, -0.004970109090209007, -0.0020920690149068832, -0.044680122286081314, -0.015294065698981285, 0.061102285981178284, 0.012889919802546501, -0.062137920409440994, 0.026001760736107826, -0.019492072984576225, 0.027240820229053497, 0.003872061613947153, 0.01191901508718729, 0.03269638121128082, 0.006736231502145529, 0.01687525399029255, 0.046529464423656464, -0.027407260611653328, 0.003416660940274596, 0.031309373676776886, -0.02263595722615719, -0.019954409450292587, 0.041351307183504105, -0.03539642319083214, 0.004336709156632423, -0.017513277009129524, 0.057773470878601074, 0.019529061391949654, 0.009029416367411613, 0.023690082132816315, -0.027721649035811424, -0.0742696076631546, 0.024873660877346992, -0.029238110408186913, 0.009820010513067245, 0.06088036671280861, 0.025040103122591972, -0.014739262871444225, 0.04945142939686775, -0.03565533086657524, 0.002491989405825734, 0.01732834242284298, -0.019251659512519836, 0.03979785740375519, 0.045049991458654404, 0.009209726937115192, 0.03506353870034218, -0.009394661523401737, 0.03545190393924713, 0.01484097633510828, 0.030680598691105843, -0.016773540526628494, -0.022488009184598923, -0.04142528027296066, -0.018058832734823227, -0.015025910921394825, -0.014258433133363724, -0.04763907194137573, -0.019861942157149315, 0.04201706871390343, -0.023727068677544594, -0.0167180597782135, -0.040981438010931015, -0.003314947010949254, 0.028257958590984344, -0.008493106812238693, -0.038836199790239334, -0.004766681231558323, 0.0005975689273327589, 0.02454078011214733, -0.017319096252322197, -0.026205187663435936, 0.04675138741731644, 0.019954409450292587, 0.0382813960313797, -0.04519793763756752, 0.027444247156381607, 0.04231296479701996, -0.04985828325152397, 0.0021960947196930647, 0.03267788887023926, 0.027018899098038673, 0.01605229638516903, -0.006782464683055878, 0.060621459037065506, 0.0301812756806612, -0.0018019534181803465, 0.029460031539201736, 0.029589485377073288, -0.011780314147472382, -0.027962064370512962, 0.05965980142354965, -0.04634453356266022, 0.002792507642880082, 0.011022083461284637, 0.01319506112486124, -0.010439540259540081, -0.0035391799174249172, 0.017115667462348938, 0.04297872632741928, 4.06349754484836e-05, -0.026371629908680916, -0.021064015105366707, 0.035507380962371826, -0.002919649938121438, -0.011604626663029194, -0.05943787842988968, 0.010236112400889397, -0.032585419714450836, 0.013185814954340458, -0.006098208017647266, -0.036616988480091095, 0.019399605691432953, -0.007979914546012878, 0.06309957802295685, -0.03356557339429855, -0.04638151824474335, 0.050043217837810516, 0.00045829027658328414, 0.016070788726210594, -0.01580263487994671, 0.020842093974351883, 0.06021460145711899, 0.00302136386744678, 0.01906672492623329, -0.015284818597137928, -0.01541427243500948, -0.020731132477521896, -0.027407260611653328, -0.0074158646166324615, -0.024466805160045624, -0.023042811080813408, 0.06132420897483826, 0.009427024982869625, 0.059955693781375885, -0.027758635580539703, 0.02683396451175213, 0.016893746331334114, 0.019381113350391388, -0.0031392595265060663, 0.02515106275677681, -0.03264090046286583, 0.0060103642754256725, -0.019898928701877594, -0.008747391402721405, 0.014517341740429401, 0.02135990932583809, -0.009967957623302937, -0.004133281297981739, -0.03384297341108322, -0.025391478091478348, -0.05274325981736183, -0.02243252843618393, -0.006130571477115154, 0.00619529839605093, 0.02951551228761673, 0.008821365423500538, -0.01319506112486124, -0.027629181742668152, 0.010911122895777225, 0.004738940857350826, 0.019861942157149315, 0.014998170547187328, -0.0051642898470163345, 0.011604626663029194, -0.03972388431429863, -0.031216908246278763, 0.03099498711526394, -0.042830780148506165, -0.04741714894771576, -0.010837148874998093, 0.014683782123029232, 0.00990323070436716, 0.04885963723063469, -0.029201123863458633, 0.031179919838905334, 0.008354405872523785, -0.03289980813860893, 0.012667998671531677, -0.02548394538462162, -0.00841450970619917, -0.031549789011478424, 0.030107300728559494, -0.037597138434648514, 5.38548847544007e-05, -0.0205461997538805, 0.045382872223854065, 0.013555683195590973, -0.0016563177341595292, -0.006084337830543518, -0.00936229806393385, -0.009607336483895779, -0.14173363149166107, -0.0029681953601539135, -0.00827118568122387, -0.0077579934149980545, -0.048970598727464676, 0.01156763918697834, 0.006592907477170229, -0.05070897936820984, 0.03079155832529068, -0.046455491334199905, -0.02115648239850998, 0.0396868959069252, 0.0005039459210820496, -0.01910371147096157, 0.01873384229838848, 0.0025405348278582096, -0.014415627345442772, -0.028387412428855896, -0.00674085458740592, -0.0021764454431831837, -0.036117665469646454, -0.009302194230258465, -0.03672794997692108, -0.03454572334885597, 0.01934412680566311, 0.025409970432519913, -0.05211448296904564, 0.04345955699682236, -0.03861428052186966, -0.05318710207939148, 0.011521405540406704, -0.028757281601428986, 0.032455965876579285, 0.07900393009185791, 0.014110486023128033, 0.010504267178475857, 0.019251659512519836, -0.038836199790239334, 0.04416230693459511, 0.001518772798590362, 0.012695739045739174, 0.023079799488186836, -0.027610689401626587, -0.03576629236340523, 0.014415627345442772, 0.010716942138969898, 0.007369631435722113, 0.02766616828739643, -0.08521772176027298, 0.014693029224872589, 0.018095819279551506, 0.007055243011564016, -0.05566522106528282, -0.0007784577319398522, -0.03099498711526394, -0.0060612210072577, -0.03193815052509308, -0.03672794997692108, -0.019381113350391388, 0.047934968024492264, -0.06195298582315445, 0.025262024253606796, -0.015183105133473873, -0.09439045935869217, -0.02757370099425316, -0.010753928683698177, -0.0765627920627594, 0.015654686838388443, -0.01302862074226141, 0.028590841218829155, 0.021378403529524803, -0.039871830493211746, 0.05326107516884804, -0.03321419656276703, 0.007448228541761637, 0.025761345401406288, 0.006135195028036833, 0.021877726539969444, 0.009829257614910603, -0.014480354264378548, -0.010421046987175941, -0.00877050869166851, -0.02222910150885582, 0.040981438010931015, 0.08285056054592133, 0.017402315512299538, -0.03325118497014046, -0.02646409533917904, -0.038466330617666245, 0.0003548426611814648, -0.03297378122806549, -0.00495161535218358, -0.026482589542865753, 0.01482248306274414, 0.030514156445860863, 0.014175212942063808, 0.0077718631364405155, -0.01682901941239834, 0.013555683195590973, -0.012862179428339005, 0.01601530984044075, -0.010707695037126541, -0.019917422905564308, -0.00033403755514882505, -0.014619055204093456, -0.004276605322957039, 0.03813344985246658, 0.00841450970619917, 0.007540695369243622, 0.008123238570988178, 0.010300839319825172, 0.060325562953948975, 0.004743564408272505, 0.030551142990589142, -0.010328579694032669, 5.0315127737121657e-05, 0.01823452115058899, -0.015442012809216976, -0.028886735439300537, -0.03038470260798931, -0.033029261976480484, 0.005159666761755943, 0.008289678953588009, -0.054814521223306656, -0.01181730069220066, -0.038059476763010025, 0.03360255807638168, 0.028590841218829155, -0.006398726254701614, 0.013453968800604343, 0.010504267178475857, -0.06594756245613098, -0.009949464350938797, 0.016939980909228325, 0.00364782870747149, -0.01943659409880638, 0.013278281316161156, 0.07016406953334808, -0.006518933456391096, -0.010920369997620583, -0.05899403616786003, -0.012298129498958588, -0.019325632601976395, 0.0009489440708421171, 0.009524115361273289, 0.011539899744093418, -0.014101238921284676, -0.010837148874998093, 0.026981912553310394, 0.005534158553928137, 0.03545190393924713, -0.004047749098390341, -0.003143882844597101, -0.028627827763557434, 0.005913273897022009, -0.014951936900615692, 0.024152416735887527, 0.034231334924697876, 0.009588842280209064, 0.055184390395879745, 0.04301571473479271, -0.024596258997917175, -0.005793066695332527, 0.004124034661799669, -0.005728339310735464, -0.017152655869722366, -0.0263531357049942, 0.027610689401626587, -0.0025567165575921535, -0.02975592575967312, -0.047528110444545746, 0.025631891563534737, -0.005802313331514597, 0.012483064085245132, 0.0077579934149980545, -0.004588681738823652, 0.028960708528757095, -0.04075951501727104, 0.09572198241949081, 0.05122679844498634, 0.017300602048635483, 0.019418099895119667, -0.005215147044509649, 0.04578972980380058, 0.012557038106024265, 0.03722727298736572, 0.0408334918320179, 0.02548394538462162, -0.024670233950018883, -0.029330577701330185, -0.017346836626529694, -0.02672300487756729, -0.005857793614268303, -0.020472224801778793, 0.0074713448993861675, -0.005335354246199131, 0.04408833384513855, -0.026575056836009026, -0.03371351957321167, 0.019122205674648285, -0.019935915246605873, -0.01304711401462555, -0.011521405540406704, 0.01890028454363346, -0.05965980142354965, 0.02441132627427578, -0.04449518769979477, 0.02095305360853672, -0.04967334866523743, 0.057773470878601074, 0.005127302836626768, -0.018123559653759003, -0.02725931443274021, 0.015580713748931885, 0.009579596109688282, 0.018872544169425964, 0.0038466330152004957, 0.038429345935583115, 0.003747230861335993, -0.00039703078800812364, -0.017097175121307373, 0.035951223224401474, -0.002764767501503229, -0.02135990932583809, 0.011068317107856274, -0.02135990932583809, 0.04889662563800812, -0.03452723100781441, -0.004725071135908365, -0.019732488319277763, -0.012399843893945217, -0.006902672350406647, 0.015099884010851383, 0.05067199468612671, 0.017568757757544518, -0.05248434841632843, -0.029164137318730354, -0.021230455487966537, 0.02391200326383114, -0.03898414596915245, 0.06735306978225708, 0.04530889913439751, 0.02058318629860878, 0.009792270138859749], '组成编码': '01020001', '是否为关重件': '是', '是否为寿命件': '香', '备注': '耐腐蚀承力结构'}}, {'type': '零部件', 'name': '信号处理机柜', 'properties': {'名称': '信号处理机柜', '型号': '', '技术责任单位': '', '生产单位': '', '切片': '
组成编码名称是否为关重件是否为寿命件备注
01声呐基阵系统核心探测单元
0101基阵阵元组件包含多个换能器单元
01010001压电陶瓷换能器核心声电转换部件,有使用寿命
01010002橡胶透声护罩易老化,需定期更换
0102基阵骨架支撑结构
01020001钛合金主框架耐腐蚀承力结构
02信号处理机柜数据处理核心
0201发射机组件生成发射信号
020101功率放大模块大功率器件,有工作寿命
02010001散热风扇易损件,需定期更换
', 'embedding': [-0.036476608365774155, -0.01959441602230072, -0.08140353858470917, 0.045203689485788345, 0.012131193652749062, 0.0055858842097222805, -0.03343227878212929, 0.02142101339995861, 0.041513592004776, 0.011725283227860928, 0.013385826721787453, 0.028782756999135017, 0.022195933386683464, 0.014935667626559734, 0.02273099683225155, -0.03900432586669922, -0.0006313525373116136, -0.019465262070298195, 0.026587149128317833, 0.014723487198352814, 0.026513347402215004, -0.013690260238945484, 0.013874764554202557, 0.05852494016289711, 0.022361988201737404, -0.018736466765403748, -0.00821507815271616, -0.03280496224761009, 0.043026529252529144, -0.012795411050319672, -0.009668054059147835, 0.009013062343001366, 0.022546492516994476, 0.0008977313991636038, 0.014003918506205082, -0.026790104806423187, -0.020959751680493355, -0.012767735868692398, -0.07771344482898712, -0.04003755375742912, -0.01817372813820839, -0.024022530764341354, 0.0024931218940764666, -0.05188276246190071, 0.015885867178440094, -0.041882600635290146, -0.01600579544901848, -0.04147668927907944, -0.0476391538977623, 0.010858110152184963, 0.023542819544672966, -0.03055400401353836, 0.039557840675115585, -0.04881998151540756, 0.025664623826742172, 0.01547995675355196, -0.013339701108634472, 0.048672378063201904, -0.03156878054141998, 0.0011658400762826204, -0.015572208911180496, 0.03848771005868912, 0.010184668004512787, -0.05007461458444595, 0.039963752031326294, 0.041513592004776, 0.0232476107776165, 0.03911502659320831, -0.01186366192996502, -0.007163400761783123, -0.03385664150118828, -0.0029428524430841208, -0.00933594536036253, 0.03140272572636604, -0.05797142535448074, 0.014243774116039276, -0.006208588369190693, -0.009769531898200512, 0.03588619455695152, -0.005834965966641903, 0.005249163135886192, -0.06627414375543594, 0.021384112536907196, 0.01577516458928585, -0.008893134072422981, -0.010064739733934402, -0.005816515535116196, 0.023635070770978928, -0.03450240567326546, -0.040627967566251755, -0.009432810358703136, 0.034889865666627884, 0.00033643306232988834, -0.006974283140152693, -0.045535795390605927, -0.002599212108179927, -0.023358313366770744, 0.01809992641210556, 0.010987264104187489, 0.019483711570501328, 0.017306555062532425, 0.007278716191649437, 0.004568801261484623, -0.012730835005640984, 0.004977018106728792, 0.030904563143849373, 0.00718185119330883, 0.029077963903546333, -0.023967180401086807, -0.012841537594795227, 0.011799084953963757, 0.030148092657327652, -0.006397705525159836, 0.027417421340942383, -0.03003739006817341, -0.07258420437574387, -0.011679156683385372, -0.021974528208374977, 0.0675656795501709, -0.014806514605879784, -0.0008233528933487833, 0.0037869620136916637, -0.005115396808832884, -0.04671662673354149, -0.014391378499567509, -0.08561024814844131, -0.006019470747560263, 0.004644909407943487, -0.01610727421939373, -0.01799844764173031, 0.008851620368659496, 0.04874617978930473, -0.03634745627641678, -0.015655236318707466, -0.06767638027667999, -0.022509591653943062, -0.0254801195114851, -0.017989223822951317, -0.023635070770978928, -0.028616702184081078, 0.04789745807647705, -0.019391460344195366, -0.011347047984600067, 0.014954118058085442, 0.03710392490029335, -0.013173646293580532, 0.01377328671514988, -0.03786039352416992, 0.012943015433847904, -0.0252218134701252, 0.0041744220070540905, 0.0373622328042984, -0.019981876015663147, 0.047196339815855026, -0.021642418578267097, 0.03230679780244827, -0.08287958055734634, 0.01825675554573536, -0.019317658618092537, 0.04269442334771156, -0.05055432766675949, 0.03749138489365578, -0.0015325434505939484, 0.0277126282453537, 0.004278206266462803, -0.01244485192000866, 0.05959506705403328, 0.051661357283592224, -0.005521307699382305, 0.001766633940860629, 0.01207584235817194, -0.039299532771110535, -0.04084937274456024, -0.03453930839896202, 0.016153398901224136, -0.005023144651204348, 0.04741774499416351, 0.003408727003261447, 0.013717935420572758, -0.016550084576010704, -0.00584880355745554, -0.005244550295174122, -0.02597828209400177, 0.020037226378917694, -0.028524449095129967, -0.018967099487781525, 0.046200014650821686, -0.020701443776488304, -0.006180912256240845, 0.0012223445810377598, -0.03583084046840668, 0.03221454843878746, 0.017149725928902626, -0.01502791978418827, 0.04749154672026634, -0.011374724097549915, -0.04232541099190712, 0.015120172873139381, 0.02481590211391449, -0.014751162379980087, 0.0021575535647571087, 0.014852640219032764, -0.009437423199415207, -0.010267694480717182, -0.05394921824336052, 0.026531796902418137, 0.05911535397171974, -0.047196339815855026, -0.007527797948569059, -0.051587555557489395, -0.03262045606970787, 0.044207360595464706, 0.07402334362268448, -0.005973344668745995, -0.01926230639219284, 0.02333986386656761, -0.007186464034020901, 0.02481590211391449, -0.03079385869204998, -0.06524091213941574, -0.010387622751295567, 0.04907828941941261, 0.016550084576010704, 0.00377773679792881, -0.0038607639726251364, -0.03616295009851456, 0.023284511640667915, -0.006743652280420065, 0.029022613540291786, -0.04476087540388107, 0.011051840148866177, -0.00047913604066707194, -0.014991018921136856, -0.03874601796269417, 0.014142297208309174, 0.027694178745150566, -0.019280757755041122, 0.02655024826526642, 0.0030005101580172777, 0.02457604557275772, -0.030664706602692604, 0.024631397798657417, -0.004801738541573286, -0.0398530475795269, 0.009723405353724957, 0.0643552914261818, 0.020037226378917694, -0.011522327549755573, 0.0002617662539705634, -0.015286226756870747, -0.003265735926106572, -0.008459547534584999, -0.039963752031326294, 0.016328679397702217, 0.04284202679991722, 0.02832149527966976, 0.01775859110057354, 0.007334067951887846, 0.018985548987984657, 0.01518474891781807, 0.030018938705325127, 0.010544451884925365, 0.003789268434047699, 0.011319372802972794, 0.017158951610326767, 0.024262387305498123, -0.020812146365642548, 0.02597828209400177, 0.025332516059279442, 0.019631316885352135, -0.04690113291144371, -0.03551718220114708, 0.006370029877871275, 0.050591230392456055, 0.03974234312772751, 0.021218057721853256, 0.01893019676208496, -0.055831167846918106, 0.039631642401218414, -0.01423454936593771, 0.016337905079126358, -0.03385664150118828, 0.0036439707037061453, -0.033727485686540604, 0.008976160548627377, 0.030904563143849373, -0.042546819895505905, -0.013413502834737301, -0.020037226378917694, -0.035646338015794754, -0.06059139221906662, -0.0005105595337226987, 0.06483500450849533, 0.017887745052576065, -0.05405992269515991, 0.04476087540388107, -0.036661114543676376, -0.14088790118694305, 0.029244018718600273, -0.02417013607919216, 0.04376455023884773, -0.011227119714021683, -0.019539063796401024, -0.005604334641247988, 0.02068299427628517, -0.07457686215639114, 0.03413339704275131, -0.0330079160630703, -0.06169842183589935, -0.006171687040477991, -0.00707576097920537, -0.007131112273782492, -0.010442974977195263, 0.00489860400557518, 0.003042023628950119, 0.009889460168778896, -0.02887500822544098, -0.007467833813279867, -0.05302669480443001, -0.00851028598845005, -0.043949056416749954, -0.01208506803959608, -0.007495509460568428, 0.04457637295126915, -0.03363523259758949, -0.01473271194845438, -0.0387091189622879, 0.07623740285634995, 0.07786104828119278, -0.00547979399561882, 0.035978447645902634, 0.018727242946624756, -0.03612605109810829, 0.04217780753970146, -0.0448346771299839, -0.0068359049037098885, 0.02059074118733406, 0.008441097103059292, 0.04811886325478554, -0.0015325434505939484, 0.019280757755041122, 0.01576593890786171, -0.04276822507381439, 0.054502733051776886, -0.01000938843935728, 0.04583100602030754, -0.04180879890918732, 0.017223527655005455, -0.01570136286318302, -0.01760176196694374, 0.01701134629547596, -0.025295615196228027, 0.043284837156534195, -0.006093272473663092, 0.04896758869290352, 0.0003312438784632832, -0.03119977004826069, -0.034650009125471115, -0.08627446740865707, 0.013247448019683361, -0.0066237240098416805, -0.04051726683974266, -0.003964547999203205, 0.01935455948114395, -0.007836843840777874, 0.01957596465945244, -0.03470536321401596, -0.007334067951887846, 0.04638452082872391, -0.02481590211391449, -0.00962192751467228, -0.009382071904838085, 0.0186811164021492, -0.05409682169556618, -0.01677149161696434, -0.0016305616591125727, -0.08184634894132614, -0.06306375563144684, 0.012896888889372349, -0.01000938843935728, 0.00925753079354763, -0.019133152440190315, -0.018395133316516876, -0.005572046618908644, -0.01636558026075363, 0.022694095969200134, 0.22347226738929749, 0.012426401488482952, 0.01282308716326952, -0.027749529108405113, 0.04000065103173256, -0.018810270354151726, 0.043543145060539246, 0.0006722895195707679, 0.013182871975004673, -0.03479761630296707, -0.03439170494675636, 0.024373089894652367, 0.011596130207180977, 0.00896693579852581, -0.011107192374765873, 0.02308155596256256, -0.04210400581359863, 0.0020145622547715902, 0.06531471759080887, -0.010775083675980568, -0.006028695963323116, 0.0014864172553643584, 0.0062178135849535465, -0.007675401866436005, -0.02623658999800682, -0.01600579544901848, 0.01431757677346468, 0.053580209612846375, -0.002762960037216544, -0.009695730172097683, -0.021974528208374977, 0.06387557834386826, -0.00868095364421606, -0.012804636731743813, -0.035314228385686874, 0.03022189438343048, 0.015526083298027515, -0.013708710670471191, 0.005304514430463314, -0.009732631035149097, -0.04848787561058998, -0.02524026297032833, -0.022970853373408318, 0.02455759607255459, -0.0290595144033432, -0.04538819193840027, 0.024373089894652367, 0.010378398001194, -0.027454322203993797, -0.03981614485383034, -0.06708596646785736, -0.010802758857607841, -0.024207036942243576, -0.031089067459106445, -0.013302799314260483, -0.016033470630645752, -0.006817454006522894, -0.013072168454527855, 0.022288186475634575, 0.024354640394449234, 0.07107126712799072, 0.017122050747275352, 0.01785084418952465, 0.020313983783125877, -0.0016582373064011335, -0.016291778534650803, -0.041144583374261856, 0.01601502113044262, -0.014252999797463417, 0.03710392490029335, 0.029004162177443504, -0.035406481474637985, -0.013136745430529118, 0.005576658993959427, 0.015673687681555748, 0.012878438457846642, 0.05328499898314476, 0.06177222356200218, -0.05188276246190071, 0.015378478914499283, -0.026531796902418137, 0.02140256203711033, 0.014640459790825844, 0.014502081088721752, 0.011466976255178452, -0.022472690790891647, -0.0012304167030379176, -0.008344232104718685, -0.04424426332116127, -0.022509591653943062, 0.022140581160783768, -0.012786186300218105, 0.01741725765168667, 0.0019545983523130417, -0.00946509838104248, -0.027620375156402588, 0.009169891476631165, 0.014483630657196045, -0.02000032551586628, 0.014548207633197308, -0.009898684918880463, -0.0043035754933953285, -0.0032957179937511683, -0.024428442120552063, -0.004741774871945381, -0.03738068416714668, 0.03944713622331619, -0.00736635597422719, 0.005216874647885561, 0.035738591104745865, -0.03926263377070427, 0.04907828941941261, 0.03173483535647392, -0.033561430871486664, 0.027767980471253395, -0.0005431361496448517, -0.0409969761967659, 0.018616538494825363, -0.021052002906799316, 0.001121443579904735, -0.011725283227860928, 0.010719731450080872, 0.0022890132386237383, -0.0001666309399297461, -0.02134721167385578, -0.07513037323951721, -0.007546248380094767, -0.019612865522503853, -0.015304677188396454, 0.04258371889591217, -0.004610314965248108, -0.0011318218894302845, -0.0006653706077486277, 0.015489182434976101, 0.007790717296302319, 0.017970772460103035, -0.021125804632902145, 0.027694178745150566, 0.07136647403240204, -0.0028067799285054207, -0.03616295009851456, -0.01983427070081234, -0.010793534107506275, 0.029446974396705627, -0.003141195047646761, -0.04033276066184044, -0.012989141047000885, 0.014889541082084179, -0.02381957694888115, 0.020295534282922745, -0.01875491812825203, 0.01992652378976345, 0.008717854507267475, -0.031328924000263214, 0.021623969078063965, -0.0016397868748754263, -0.009806432761251926, -0.025350965559482574, 0.003212690819054842, -0.013662584125995636, 0.002530022757127881, 0.01742648333311081, 0.029594577848911285, 0.020775245502591133, -0.016633111983537674, 0.014409828931093216, -0.023173809051513672, 0.06465049833059311, -0.007804555352777243, -0.05177206173539162, 0.05036982521414757, -0.019889622926712036, -0.06586822867393494, 0.018985548987984657, 0.006531471852213144, -0.005987182259559631, -0.0002264508802909404, -0.033838190138339996, 0.015544533729553223, 0.02332141250371933, 0.010489100590348244, 0.026291940361261368, -0.06391248106956482, -0.04450257122516632, 0.009640378877520561, 0.023967180401086807, 0.03389354050159454, -0.004211323335766792, -0.0029705280903726816, -0.016420932486653328, -0.04391215369105339, 0.0758683979511261, 0.00489399116486311, -0.008602539077401161, -0.04424426332116127, 0.042473018169403076, 0.024520695209503174, 0.04749154672026634, 0.029096415266394615, -0.021181156858801842, 0.048524774610996246, 0.020203281193971634, 0.007177238818258047, -0.055499058216810226, -0.022509591653943062, -0.023635070770978928, 0.03179018571972847, 0.009880234487354755, 0.006180912256240845, -0.03393044322729111, 0.0036393580958247185, -0.05140305310487747, 0.016291778534650803, 0.013598007149994373, 0.04358004406094551, -0.009160665795207024, 0.05243627727031708, 0.07712303102016449, 0.00027891944046132267, -0.05251007899641991, -0.014880316331982613, -0.020756796002388, 0.010802758857607841, -0.04269442334771156, -0.01725120283663273, 0.027952484786510468, 0.0076292757876217365, -0.054650336503982544, 0.03335847705602646, 0.042952727526426315, 0.015240100212395191, -0.07158788293600082, 0.01719585247337818, -0.049262795597314835, 0.035978447645902634, 0.018625764176249504, -0.0030097353737801313, 0.02557237260043621, -0.0033602945040911436, 0.059816472232341766, -0.004349702037870884, 0.051993466913700104, 0.06679075211286545, 0.06136631220579147, 0.02704841084778309, 0.02597828209400177, -0.03536957874894142, 0.008985386230051517, -0.0037915746215730906, 0.06118180975317955, -0.02289705164730549, 0.04040656238794327, 0.0003179825725965202, -0.027251366525888443, 0.0031619518995285034, 0.014179198071360588, -0.0024585272185504436, -0.00400606170296669, -0.022546492516994476, 0.011817535385489464, -0.003420258639380336, 0.004550350829958916, -0.02505575865507126, 0.001186596811749041, 0.027601925656199455, 0.026181237772107124, 0.00875014252960682, 0.017832394689321518, -0.0011473895283415914, -0.028155440464615822, 0.001988039817661047, 0.0018554269336163998, -0.04025895893573761, -0.008095149882137775, 0.07084986567497253, -0.009566576220095158, -0.023838026449084282, 0.04040656238794327, -0.016061147674918175, 0.05797142535448074, -0.03966854140162468, -0.022435789927840233, 0.012758510187268257, 0.029114864766597748, -0.03376438841223717, 0.004741774871945381, 0.024133235216140747, -0.06498260796070099, -0.01349653024226427, -0.03376438841223717, 0.00577038899064064, 0.00667907577008009, -0.028856558725237846, 0.025793777778744698, -0.035904642194509506, 0.005728875752538443, 0.008570250123739243, -0.00888390839099884, 0.019631316885352135, -0.008251979015767574, -0.06420768797397614, -0.025000406429171562, -0.033911991864442825, -0.007578536868095398, -0.003697016043588519, 0.0015867417678236961, 0.011845211498439312, -0.0370485745370388, -0.03022189438343048, 0.05369091033935547, 0.039557840675115585, -0.004222854971885681, 0.02389337867498398, 0.00047682973672635853, -0.026052085682749748, 0.007297166623175144, 0.02472364902496338, 0.005299902055412531, 0.005784227047115564, 0.033487629145383835, -0.02440999075770378, 0.009972487576305866, -0.008431871421635151, -0.04405975714325905, 0.046015508472919464, 0.029576128348708153, -0.014372928068041801, 0.008182790130376816, -0.010433749295771122, 0.017804717645049095, -0.026771653443574905, -0.0003770818002521992, -0.008708628825843334, 0.030775409191846848, 0.02887500822544098, 0.03197469189763069, 0.026863906532526016, 0.010092414915561676, 0.05162445828318596, 0.025295615196228027, 0.018856395035982132, 0.004727936815470457, 0.05435512959957123, 0.010627479292452335, -0.00027171222609467804, 0.0010009388206526637, -0.02631039172410965, -0.007389419246464968, 0.013717935420572758, 0.00018277511117048562, 0.029520776122808456, 0.0030512488447129726, -0.01428067497909069, -0.04797125980257988, 0.03769434243440628, 0.015526083298027515, -0.012574005872011185, 0.013708710670471191, -0.02787868306040764, -0.0012984528439119458, -0.026771653443574905, 0.0321776457130909, -0.008039798587560654, -0.023192260414361954, -0.0039299530908465385, -0.005032369866967201, 0.030443299561738968, 0.031162869185209274, 0.048856884241104126, -0.01710359938442707, -0.006245489232242107, -0.03453930839896202, -0.0008533349609933794, 0.04166119545698166, 0.010950363241136074, 0.02688235603272915, 0.011134867556393147, 0.008459547534584999, 0.017740141600370407, -0.006153236608952284, -0.037712790071964264, -0.04143979027867317, -0.01950216293334961, -0.015101722441613674, 0.021790022030472755, 0.0013664891012012959, -0.011808310635387897, -0.056975096464157104, 0.031661033630371094, -0.010553677566349506, -0.025461670011281967, -0.05070193111896515, 0.006637562066316605, 0.011236345395445824, -0.12996521592140198, -0.014197648502886295, -0.008860845118761063, -0.015802839770913124, -0.018948648124933243, -0.0167622659355402, -0.005461343564093113, -0.015360028482973576, -0.030996814370155334, -0.012601681053638458, 0.034151848405599594, 0.028838107362389565, 0.05180896073579788, -0.031236670911312103, -0.010516776703298092, 0.01709437370300293, -0.00027531583327800035, 8.345961396116763e-05, 0.022694095969200134, 0.04937349632382393, 0.0031342762522399426, 0.0006451904191635549, 0.059705767780542374, 0.04797125980257988, 0.005018531810492277, -0.0023362927604466677, -0.045867905020713806, -0.015157073736190796, -0.0404803641140461, 0.009294431656599045, 0.0031573392916470766, -0.036568861454725266, 0.058820147067308426, 0.02704841084778309, -0.019059350714087486, -0.02099665254354477, -0.032343700528144836, 0.003088149940595031, 0.0190962515771389, 0.01736190728843212, 0.0073432931676507, 0.014133071526885033, -0.0071264998987317085, 0.0072003016248345375, -0.03304481878876686, 0.059631966054439545, 0.008902358822524548, -0.004633378237485886, -0.011586904525756836, -0.0038330883253365755, 0.05505624786019325, 0.008874683640897274, -0.010387622751295567, -0.027029961347579956, 0.01769401505589485, -0.024668298661708832, -0.05952126532793045, 0.024262387305498123, 0.03472381457686424, 0.05893084779381752, -0.0609235018491745, -0.0007011184352450073, -0.03119977004826069, -0.05442893132567406, -0.010415298864245415, -0.005982569884508848, -0.029428523033857346, 0.00030818075174465775, -0.02773107960820198, 0.05867254361510277, -0.022878602147102356, 0.03559098392724991, -0.000183207550435327, -0.050923340022563934, -0.0034179524518549442, -0.007979834452271461, -0.005041595082730055, -0.03603379800915718, -0.06317446380853653, 0.020941300317645073, -0.009151440113782883, -0.03095991350710392, 0.0003840007120743394, -0.024779001250863075, 0.014114621095359325, -0.004967792890965939, -0.04210400581359863, 0.030996814370155334, -0.03837700933218002, 0.010544451884925365, -0.023930279538035393, -0.024354640394449234, -0.0044903866946697235, 0.03256510570645332, -0.024705199524760246, -0.020959751680493355, -0.0470118373632431, -0.01290611457079649, -0.012186544947326183, -0.011236345395445824, 0.01162380538880825, -0.026291940361261368, -0.024871254339814186, 0.019797369837760925, 0.018284430727362633, -0.022804800420999527, 0.10221568495035172, -0.01718662679195404, 0.033155523240566254, 0.0004589558229781687, -0.02581222914159298, 0.03710392490029335, 0.010627479292452335, 0.015895092859864235, 0.00962192751467228, 0.015240100212395191, 0.05671679228544235, -0.007209526840597391, -0.0481557659804821, -0.014336027204990387, 0.013588782399892807, 0.03322932496666908, -0.061292510479688644, -0.045203689485788345, -0.025793777778744698, 2.6036084364022827e-06, 0.04745464771986008, -0.01711282506585121, 0.0381925031542778, 0.05642158165574074, 0.04612621292471886, -0.005991795100271702, -0.01976046897470951, 0.01850583590567112, 0.035406481474637985, 0.0022544185630977154, -0.06749187409877777, 0.06572062522172928, -0.01443750411272049, -0.05354330688714981, 0.013468854129314423, -0.023930279538035393, -0.02042468637228012, -0.013302799314260483, 0.03428100049495697, 0.005346028134226799, -0.019612865522503853, -0.017122050747275352, 0.0006474967231042683, -0.04383835196495056, 0.004601089749485254, -0.04044346138834953, -0.004285125061869621, -0.004912441596388817, -0.010987264104187489, -0.027841782197356224, -0.019649766385555267, -0.006632949225604534, 0.005502857267856598, -0.007896807976067066, 0.011586904525756836, 0.031070616096258163, -0.011559228412806988, 0.01667001284658909, -0.029280919581651688, -0.009981712326407433, -0.024520695209503174, 0.004153665620833635, -0.035812392830848694, -0.004066025838255882, 0.07062845677137375, -0.03782349452376366, -0.00896693579852581, 0.01215886976569891, 0.014991018921136856, -0.06738117337226868, 0.005304514430463314, -0.004255142994225025, 0.028450647369027138, -3.190997085766867e-05, 0.01760176196694374, 0.019649766385555267, 0.019742019474506378, 0.024207036942243576, -0.016171850264072418, 0.02623658999800682, 0.08361759781837463, 0.04745464771986008, -0.023838026449084282, 0.00875014252960682, -0.020277082920074463, 0.00016374806000385433, -0.02284170128405094, -0.023782676085829735, 0.044871579855680466, 0.022343536838889122, 0.03915192931890488, 0.039631642401218414, -0.031919337809085846, 0.034317903220653534, -0.015313902869820595, 0.015046370215713978, -0.041624292731285095, -0.010756632313132286, 0.0031919339671730995, 0.005378316156566143, 0.016642337664961815, 0.0050093065947294235, -0.03900432586669922, 0.047528449445962906, -0.007121887058019638, -0.012223446741700172, -0.017795491963624954, 0.002746816026046872, 0.023708872497081757, -0.008934647776186466, 0.05110784247517586, -0.0025484731886535883, -0.010609028860926628, 0.02149481512606144, -0.012712384574115276, 0.014806514605879784, -0.04210400581359863, -0.041144583374261856, 0.015304677188396454, -0.042030204087495804, -0.0012488672509789467, 0.005977957043796778, -0.006167074665427208, -0.021956076845526695, -0.02365352213382721, -0.043875254690647125, -0.004204404074698687, 0.03201159089803696, -0.015378478914499283, -0.07727063447237015, -0.03103371523320675, -0.0009138755849562585, -0.02773107960820198, -0.025332516059279442, 0.06918931752443314, -0.01045219972729683, 0.036642663180828094, 0.039557840675115585], '组成编码': '02', '是否为关重件': '是', '是否为寿命件': '香', '备注': '数据处理核心'}}, {'type': '零部件', 'name': '发射机组件', 'properties': {'名称': '发射机组件', '型号': '', '技术责任单位': '', '生产单位': '', '切片': '
组成编码名称是否为关重件是否为寿命件备注
01声呐基阵系统核心探测单元
0101基阵阵元组件包含多个换能器单元
01010001压电陶瓷换能器核心声电转换部件,有使用寿命
01010002橡胶透声护罩易老化,需定期更换
0102基阵骨架支撑结构
01020001钛合金主框架耐腐蚀承力结构
02信号处理机柜数据处理核心
0201发射机组件生成发射信号
020101功率放大模块大功率器件,有工作寿命
02010001散热风扇易损件,需定期更换
', 'embedding': [0.001291231601499021, -0.0030001807026565075, -0.05195389688014984, 0.01230535563081503, 0.030371058732271194, -0.007722003385424614, 0.027287796139717102, 0.021841315552592278, -0.0028801732696592808, -0.03140496835112572, -0.019422708079218864, 0.030832625925540924, -0.013865450397133827, 0.012831541709601879, -0.005857275798916817, -0.036574508994817734, 0.0019674261566251516, -0.017641061916947365, 0.016533302143216133, 0.018711894750595093, 0.002078202087432146, -0.006088058929890394, -0.003281736047938466, 0.04017472639679909, 0.008566669188439846, -0.001587787875905633, -0.01398545689880848, -0.018185710534453392, 0.010671411640942097, 0.011529924347996712, -0.026161573827266693, -0.0084420470520854, -0.03626064583659172, -0.04172558709979057, -0.025700008496642113, -0.052877027541399, 0.019699648022651672, 0.014391635544598103, -0.05704958736896515, 0.021453598514199257, -0.031238803640007973, -0.04892602190375328, -0.010662180371582508, -0.04545504227280617, 0.014456254430115223, -0.022930610924959183, -0.03284505382180214, -0.049036797136068344, -0.011437611654400826, -0.01681024208664894, -0.012093035504221916, 0.009249787777662277, -0.02058585360646248, -0.031109564006328583, 0.003985624294728041, 0.007754312828183174, -0.07111812382936478, 0.0010569867445155978, -0.06513623148202896, 0.012406900525093079, 0.03483901917934418, 0.0680164024233818, 0.0021197430323809385, 0.00015173990686889738, -0.006983497180044651, 0.04386725649237633, 0.007578917779028416, -0.0078004696406424046, -0.005672649014741182, -0.03976854681968689, -0.011696089059114456, -0.008709754794836044, -0.0072142803110182285, 0.023521415889263153, -0.03046337142586708, 0.007648152764886618, 0.04187329113483429, -0.03310352936387062, 0.0524708516895771, -0.01239766925573349, -0.013708517886698246, -0.026272350922226906, 0.018231866881251335, -0.02084433101117611, 0.014234703034162521, 0.049627602100372314, -0.04752286151051521, 0.021250510588288307, -0.06635476648807526, -0.023816818371415138, -0.041836366057395935, 0.005824965890496969, 0.002642466686666012, -0.00624960707500577, -0.04095015674829483, 0.01401315163820982, -0.03127572685480118, 0.03223578631877899, 0.024241458624601364, -0.031829606741666794, -0.024149145931005478, 0.03487594425678253, -0.01248998288065195, 0.007126582786440849, 0.02638312615454197, 0.00423717824742198, 0.013191563077270985, -0.015213223174214363, -0.05405863747000694, -0.005566488951444626, 0.006009592674672604, 0.04327645152807236, 0.014059307985007763, 0.01358851045370102, -0.011631469242274761, -0.05834197252988815, -0.030038731172680855, -0.02795245125889778, 0.014594724401831627, -0.0037294551730155945, 0.01886882819235325, -0.05243392661213875, 0.01748412847518921, -0.03389742597937584, 0.0574926920235157, -0.025995410978794098, 0.004719514865428209, 0.05313550680875778, -0.006355767138302326, -0.002988641383126378, -0.006595781538635492, -0.044347286224365234, -0.03245733678340912, 0.008298961445689201, -0.05051381140947342, 0.0017989544430747628, -0.014557799324393272, 0.0020678166765719652, 0.011299141682684422, -0.019736573100090027, 0.011585312895476818, -0.014853201806545258, 0.019865810871124268, 0.013606972992420197, 0.009702122770249844, 0.02618003822863102, 0.03038952127099037, -0.025607695803046227, -0.004502578638494015, -0.03133111819624901, 0.03928851708769798, -0.0133208017796278, 0.07865088433027267, 0.010782187804579735, 0.08108795434236526, 0.009259019047021866, -0.024315310642123222, 0.0684225782752037, 0.012277661822736263, 0.05372631177306175, -0.02300446107983589, 0.03784843161702156, -0.02564462088048458, -0.016468683257699013, -0.01867496967315674, 0.03548521175980568, 0.062219128012657166, 0.030038731172680855, -0.012933086603879929, -0.01701333187520504, 0.02485072612762451, 0.02697393111884594, -0.008622057735919952, -0.020290452986955643, 0.009951367974281311, -0.009046697989106178, 0.004530272912234068, 0.008331270888447762, -0.01124375406652689, -0.020161213353276253, -0.03605755418539047, 0.007625074125826359, -0.03843923658132553, -0.01391160674393177, -0.0018058778950944543, -0.004486423917114735, 0.04456883668899536, -0.04371955618262291, 0.007818931713700294, -0.00808202475309372, -0.06665016710758209, -0.008211263455450535, 0.002078202087432146, -0.051732346415519714, 0.0144747169688344, 0.017982620745897293, 0.010256001725792885, -0.006268069613724947, 0.009766741655766964, 0.02961409091949463, 0.0052526239305734634, -0.004149480722844601, -0.002547845710068941, -0.005543410778045654, -0.02150898613035679, 0.016247130930423737, 0.014465485699474812, -0.024573786184191704, -0.008502050302922726, -0.027269333600997925, 0.01878574676811695, 0.0009479416767135262, 0.006337304599583149, -0.03602062910795212, -0.0008077409001998603, 0.01708718203008175, 0.013856218196451664, -0.012222274206578732, 0.005118769593536854, -0.05066151171922684, -0.02333678863942623, 0.07447832822799683, 0.007246590219438076, 0.03987932205200195, 0.03369433432817459, -0.002612464828416705, 0.03528212383389473, -0.005178773310035467, 0.009877517819404602, -0.004804904572665691, 0.030500296503305435, -0.016644079238176346, -0.030315671116113663, -0.014456254430115223, 0.04298104718327522, 0.01794569566845894, -0.059117402881383896, 0.03836538642644882, 0.021619763225317, -0.007486604619771242, 0.009055929258465767, 0.04035935178399086, -0.09164859354496002, -0.025552308186888695, -0.0008665906498208642, 0.053246282041072845, 0.02590309828519821, 0.00532647455111146, -0.035632915794849396, -0.00257323170080781, -0.0224321186542511, 0.02571847103536129, -0.021268973127007484, -0.016237899661064148, 0.05202774703502655, 0.003962546121329069, 0.025349218398332596, 0.012434594333171844, 0.05956050753593445, 0.007754312828183174, 0.02209979109466076, 0.06628091633319855, 0.001675485516898334, 0.023761430755257607, 0.02797091379761696, 0.008063562214374542, -0.0004612777556758374, 0.030297208577394485, 0.006295763421803713, 0.014031614176928997, -0.00499414699152112, -0.037091463804244995, 0.01609019935131073, -0.0022420580498874187, 0.03171883150935173, 0.06989958882331848, 0.02156437560915947, -0.03238348662853241, 0.05797272175550461, -0.018434956669807434, 0.023816818371415138, 0.019422708079218864, -0.00446565356105566, -0.017954926937818527, 0.022893685847520828, -0.012508445419371128, -0.0813833624124527, -0.00022501354396808892, -0.03792228177189827, -0.05162156745791435, -0.03806998208165169, 0.0018162631895393133, 0.06668709218502045, -0.017788762226700783, -0.027140095829963684, 0.06343766301870346, -0.02518305368721485, -0.14201469719409943, -0.035909853875637054, -0.0549817718565464, 0.006235760170966387, -0.014170084148645401, -0.012176117859780788, 0.009665196761488914, 0.0232814010232687, -0.002081663813441992, 0.029392538592219353, 0.01223150547593832, -0.0733705684542656, -0.03181114420294762, -0.02051200345158577, -0.02808169089257717, -0.008977463468909264, -0.008243572898209095, 0.04538119211792946, -0.0007131198653951287, -0.020733555778861046, -0.006212681531906128, -0.002510920399799943, 0.016210205852985382, -0.024703025817871094, -0.0415409617125988, -0.02590309828519821, 0.033860500901937485, -0.027509348466992378, -0.00979443546384573, -0.040063951164484024, -0.03107263892889023, -0.03256811574101448, 0.0027947835624217987, -0.012831541709601879, 0.03535597398877144, -0.040580905973911285, 0.008940538391470909, -0.045196566730737686, -0.022967536002397537, -0.0023343712091445923, 0.012646915391087532, 0.021712075918912888, 0.028801733627915382, 0.001246228814125061, 0.005811118986457586, -0.025810783728957176, 0.04412573203444481, 0.005995745304971933, -0.010191382840275764, -0.07665692269802094, 0.00059772829990834, -0.0051695420406758785, -0.016044043004512787, -0.08603594452142715, -0.0291525237262249, 0.012609989382326603, -0.05549872666597366, 0.02710317075252533, 0.01918269321322441, -0.005548026412725449, 0.00717273959890008, -0.05195389688014984, 0.011880715377628803, -0.03243887424468994, -0.0010437166783958673, -0.022912148386240005, 0.03565137833356857, -0.0448642373085022, 0.013025399297475815, -0.03487594425678253, 0.018564194440841675, 0.009600577875971794, 0.018804209306836128, -0.015250148251652718, 0.013957763090729713, 0.03877156600356102, -0.025367680937051773, 0.038476161658763885, -0.03559598699212074, -0.08670060336589813, -0.03256811574101448, 0.005215698387473822, 0.02690008096396923, -0.0011643008328974247, -0.03740532696247101, -0.04604584723711014, 0.020936645567417145, -0.009840592741966248, 0.0289494339376688, 0.21076960861682892, -0.05269240215420723, 0.02789706364274025, 0.02150898613035679, 0.0553879477083683, -0.06303148716688156, -0.0032655810937285423, -0.033472783863544464, 0.01629328913986683, -0.010569866746664047, -0.019219618290662766, -0.020493540912866592, 0.03895619139075279, 0.019958123564720154, -0.013477734290063381, 0.02459224872291088, -0.031294193118810654, -0.010191382840275764, 0.09497187286615372, 0.004084861371666193, -0.02920791134238243, -0.01787184551358223, -0.007597380317747593, 0.0015658634947612882, -0.01931193098425865, -0.014188546687364578, 0.011428380385041237, 0.018250329419970512, 0.03579907864332199, 0.0053680152632296085, 0.0035840619821101427, 0.03895619139075279, -0.021989015862345695, -0.02043815329670906, -0.0308510884642601, -0.002831708872690797, 0.028432480990886688, 0.04253794625401497, -0.008202032186090946, 0.0004358916194178164, -0.044347286224365234, -0.02110280841588974, -0.005543410778045654, -0.035042110830545425, -0.030980326235294342, -0.05933895707130432, -0.0032886594999581575, -0.040322426706552505, 0.0176133681088686, -0.04936912655830383, 0.011132977902889252, 0.02302292361855507, -0.008285114541649818, -0.03633449599146843, 0.003604832338169217, -0.02874634601175785, -0.018388798460364342, -0.009849824011325836, 0.011880715377628803, -0.017179494723677635, 0.05564642697572708, -0.012508445419371128, -0.02922637388110161, 0.031552668660879135, 0.019201155751943588, -0.04999685660004616, -0.07137660682201385, -0.048445992171764374, 0.016533302143216133, 0.01398545689880848, 0.08005405217409134, 0.029706403613090515, -0.04279642179608345, 0.017844151705503464, 0.028340168297290802, 0.00180126226041466, 0.03382357582449913, 0.06362228840589523, -0.010911425575613976, 0.006881952751427889, -0.03059261105954647, -0.020936645567417145, -0.021324360743165016, 0.027213945984840393, 0.022838298231363297, -0.0007425447111018002, 0.053910937160253525, -0.03131265565752983, -0.00850666593760252, 0.035522136837244034, -0.03520827367901802, -0.03799613192677498, 0.012453056871891022, 0.01641329564154148, -0.03243887424468994, 0.047707486897706985, 0.012914623133838177, -0.0006011900259181857, 0.008649751543998718, -0.0037363788578659296, -0.0019178077345713973, 0.016265595331788063, 0.01229612436145544, -0.03345432132482529, 0.03249426186084747, 0.025792321190238, -0.028192466124892235, -0.006401923950761557, -0.0407286062836647, 0.026198500767350197, -0.012028416618704796, 0.07865088433027267, -0.008520512841641903, -0.027417035773396492, 0.00440334202721715, 0.013662360608577728, -0.017437972128391266, 0.04970145225524902, -0.01964425854384899, 0.01682870462536812, 0.007911245338618755, -0.0440518818795681, 0.008326655253767967, 0.008165107108652592, -0.020475078374147415, -0.07030577212572098, -0.03225424885749817, -0.01767798699438572, 0.014862433075904846, 0.05202774703502655, 0.0011152594815939665, -0.009194399230182171, 0.012840772978961468, -0.015342461876571178, -0.00632807333022356, -0.007943554781377316, -0.0023032156750559807, 0.026327738538384438, 0.006757329683750868, -0.02313370071351528, -0.04202099144458771, 0.005774193909019232, -0.016985638067126274, 0.004488731734454632, 0.014022382907569408, 0.00011690607789205387, 0.011696089059114456, 0.05413248762488365, -0.025404606014490128, 0.03229117393493652, -0.00946210790425539, 0.043350301682949066, 0.032808128744363785, -0.044088806957006454, 0.002097818534821272, 0.02994641847908497, 0.00034934794530272484, 0.008358964696526527, 0.0004497386107686907, 0.004493347369134426, -0.016330214217305183, 0.035706765949726105, 0.04479038715362549, -0.017687218263745308, 0.008243572898209095, 0.10449859499931335, -0.050218407064676285, 0.01860111951828003, 0.03033413365483284, -0.008769758976995945, 0.013496196828782558, -0.04899987205862999, -0.062219128012657166, 0.01628405787050724, 0.0159517303109169, 0.015093215741217136, -0.05896970257163048, -0.005668033380061388, -0.06683479249477386, 0.060114387422800064, 0.023706043139100075, 0.047707486897706985, -0.02333678863942623, -0.00560341402888298, 0.01032062154263258, -0.042501021176576614, -0.03240194916725159, -0.010523710399866104, 0.035171348601579666, 0.020290452986955643, -0.01779799349606037, 0.06786870211362839, -0.02882019616663456, -0.030297208577394485, 0.027472423389554024, -0.004331799224019051, -0.003353278851136565, -0.021859778091311455, -0.025700008496642113, -0.037479180842638016, 0.04076553136110306, -0.022598283365368843, 0.022192105650901794, -0.031478818506002426, 0.002171669155359268, -0.021047420799732208, 0.0043294914066791534, -0.007555839605629444, 0.002212056191638112, -0.02117665857076645, -0.03554059937596321, -0.03059261105954647, 0.033860500901937485, -0.0032078854274004698, -0.012369975447654724, -0.006605012807995081, 0.03723916411399841, 0.07517991214990616, -0.031146490946412086, -0.039805471897125244, 0.01733642816543579, 0.018185710534453392, 0.01523168571293354, 0.003842538921162486, 0.018490344285964966, -0.019939661026000977, 0.0017435664776712656, -0.05560950189828873, 0.03107263892889023, 0.019348856061697006, 0.012693071737885475, -0.04021165147423744, 0.034525156021118164, -0.011428380385041237, 0.045602746307849884, -0.014880895614624023, 0.02235826849937439, 0.01525938045233488, -0.06805332750082016, 0.011649931780993938, -0.0133208017796278, -0.010071375407278538, 0.04279642179608345, 0.061554472893476486, 0.013763905502855778, 0.030371058732271194, -0.033675871789455414, 0.02531229332089424, 0.0243337731808424, 0.045787371695041656, -0.02612464874982834, -0.0035240582656115294, -0.0076066115871071815, -0.0377376563847065, -0.05837889760732651, -0.02867249585688114, -0.02520151622593403, 8.957269892562181e-05, -0.0763615220785141, 0.014317784458398819, -0.0362791083753109, -0.005409556441009045, -0.010754493065178394, 0.006157293915748596, 0.017373353242874146, 0.0039233132265508175, 0.000465604942291975, 0.004477192647755146, -0.031294193118810654, -0.01977349817752838, -0.014825507998466492, -0.029521776363253593, -0.004920296370983124, -0.021545913070440292, 0.059375882148742676, 0.00481413584202528, -0.010588329285383224, -0.0018404953880235553, 0.06665016710758209, 0.02446301095187664, 0.01933039352297783, -0.007103504613041878, 0.008645135909318924, 0.02605079859495163, 0.036556046456098557, -0.043941106647253036, 0.017317965626716614, 0.0017978005344048142, 0.003090186044573784, -0.00873744860291481, -0.008866687305271626, -0.00873744860291481, -0.024112220853567123, 0.05764039233326912, -0.009914442896842957, 0.011843789368867874, 0.00230090762488544, -0.02618003822863102, 0.0033232769928872585, 0.03133111819624901, -0.02427838370203972, -0.02017967589199543, -0.0023112930357456207, -0.020031975582242012, -0.008566669188439846, -0.013837755657732487, 0.010911425575613976, -0.015517856925725937, 0.011862252838909626, 0.018878059461712837, 0.04693205654621124, 0.01866573840379715, -0.02036430314183235, -0.05380016192793846, -0.015047059394419193, 0.0036279107443988323, 0.0001958771754289046, -0.02202594093978405, 0.0034202057868242264, 0.02618003822863102, 0.02017967589199543, -0.014687038026750088, -0.008709754794836044, 0.012646915391087532, -0.0411347821354866, -0.020271988585591316, -0.011419149115681648, 0.05494484677910805, -0.005801887717097998, -0.007412753999233246, 0.0013858526945114136, -0.0030301823280751705, -0.02610618621110916, 0.003743302309885621, 0.015877878293395042, 0.04530734196305275, 0.00043416075641289353, -0.023632191121578217, 0.03448823094367981, 0.017161032184958458, -0.011262216605246067, -0.009143627248704433, 0.04227946698665619, 0.015176298096776009, 0.035836003720760345, -0.04213176667690277, -0.01124375406652689, 0.015554782003164291, 0.04298104718327522, 0.03424821421504021, -0.011880715377628803, 0.004011010751128197, -0.011797633022069931, -0.044938091188669205, 0.02730625867843628, -0.0283032413572073, -0.05719728767871857, -0.012619221583008766, 0.011548387818038464, -0.02774936333298683, -0.03170036897063255, 0.006978881545364857, 0.030426446348428726, 0.022598283365368843, 0.007034269627183676, -0.019755035638809204, 0.03354663401842117, -0.003434052923694253, 0.019496558234095573, -0.03635295853018761, -0.009088239632546902, -0.04582429677248001, 0.021915165707468987, 0.0121668865904212, -0.03384203836321831, 0.014105464331805706, -0.018481113016605377, 0.037553030997514725, 0.022893685847520828, 0.0084420470520854, -0.011391455307602882, -0.06668709218502045, -0.016856398433446884, -0.013210025615990162, 0.029134061187505722, 0.008146644569933414, 0.018711894750595093, -0.007855857722461224, 0.03899311646819115, 0.06015131250023842, -0.05874815210700035, 0.009434414096176624, 0.0005879200180061162, -0.02623542584478855, -0.11985952407121658, -0.0024162991903722286, -0.029097136110067368, -0.02446301095187664, -0.0283032413572073, -0.01979196071624756, 0.018822671845555305, -0.0015624017687514424, 0.012176117859780788, -0.015444006770849228, 0.034654393792152405, -0.010403702966868877, 0.04545504227280617, -0.010569866746664047, -0.040396276861429214, -0.0015589400427415967, -0.009655965492129326, 0.032863516360521317, 0.0072973622009158134, -0.0010281387949362397, -0.0008054330828599632, -0.00979443546384573, 0.068348728120327, 0.008418967947363853, 0.046784356236457825, -0.00017121223208960146, 0.0249799657613039, 0.009323637932538986, -0.01786261424422264, 0.026789305731654167, 0.02274598367512226, 0.008432814851403236, 0.005663417745381594, 0.08352502435445786, -0.03328815847635269, -0.04117170721292496, -0.0076066115871071815, -0.020493540912866592, 0.026918543502688408, 0.009739047847688198, 0.026198500767350197, 0.0157486405223608, 0.03380511328577995, -0.012213042937219143, 0.01526861172169447, 0.022136716172099113, -0.009849824011325836, -0.008852840401232243, -0.0366852842271328, 0.05128924176096916, -0.019570408388972282, 0.05461251735687256, 0.058268122375011444, 0.004308721050620079, 0.0011227598879486322, -0.0314972810447216, -0.053246282041072845, -0.017779530957341194, 0.04423650726675987, 0.013237719424068928, -0.03555906191468239, 0.05413248762488365, -0.027287796139717102, -0.018979603424668312, 0.0001941462978720665, 0.011760707944631577, -0.03792228177189827, -0.04087630659341812, -0.011280679143965244, 0.019164230674505234, -0.010911425575613976, 0.025681545957922935, 0.015840953215956688, -0.03245733678340912, 0.031294193118810654, 0.028506331145763397, 0.04984915256500244, -0.00998829398304224, -0.007486604619771242, -0.0023955288343131542, -0.028912508860230446, -0.0157486405223608, -0.030426446348428726, 0.014954746700823307, 0.014945515431463718, 0.011059126816689968, -0.02623542584478855, 0.008252804167568684, -0.0137454429641366, -0.008178954012691975, -0.030814163386821747, -0.04637817665934563, 0.0302048958837986, 0.013265414163470268, -0.04973837733268738, -0.018250329419970512, 0.018019545823335648, -0.044347286224365234, -0.007518914062529802, -0.02300446107983589, 0.009134395979344845, -0.029115598648786545, 0.006064980290830135, 0.010791419073939323, -0.024370698258280754, -0.019865810871124268, 0.028930971398949623, 0.022376731038093567, 0.048704471439123154, -9.23853658605367e-05, 0.01021907664835453, 0.008395889773964882, -0.021601300686597824, 0.003055568551644683, 0.009452876634895802, 0.052323147654533386, 0.02394605614244938, -0.05003378167748451, -0.05236007645726204, -0.046599727123975754, 0.009023619815707207, 0.03413743898272514, -0.0005706112715415657, -0.03218039870262146, -0.04959067702293396, 0.002499381313100457, 0.060557492077350616, 0.03777458146214485, -0.0059680514968931675, 0.014299321919679642, 0.04431036114692688, 0.010939120315015316, -0.03051876090466976, 0.016699466854333878, 0.05154771730303764, -0.010172920301556587, -0.028986360877752304, 0.0704534724354744, -0.031017251312732697, -0.06731481850147247, -0.02195209078490734, 0.031294193118810654, 0.00025645774439908564, -0.0021682074293494225, 0.009812898002564907, 0.05778809264302254, -0.028174003586173058, -0.04741208627820015, 0.006078827660530806, 0.00840512104332447, 0.001299308962188661, -0.018481113016605377, 0.0033048142213374376, 0.02869095839560032, -0.08034945279359818, 0.013459271751344204, 0.010579098016023636, -0.02922637388110161, -0.04892602190375328, 0.015970192849636078, 0.02256135828793049, -0.015988655388355255, -0.009028235450387001, -0.011954565532505512, 0.019828885793685913, 0.023724505677819252, -0.007057347800582647, -0.0035748304799199104, -0.012545370496809483, 0.02974332869052887, 0.005991129670292139, 0.06845950335264206, -0.01441009808331728, 0.05413248762488365, 0.01401315163820982, -0.01381929311901331, -0.00956365279853344, -0.014493180438876152, 0.07218895852565765, 0.003498672042042017, 0.011428380385041237, 0.0144747169688344, 0.03666682168841362, -0.002750934800133109, 0.025866173207759857, 0.05243392661213875, 0.07340749353170395, -0.011123746633529663, -0.026530828326940536, -0.013339264318346977, -0.02690008096396923, 0.02669699117541313, 0.02102895826101303, -0.04371955618262291, 0.012526907958090305, -0.0018001083517447114, 0.011299141682684422, 0.07433062791824341, -0.046525876969099045, 0.024758413434028625, 0.020881256088614464, 0.0064850058406591415, -0.017918001860380173, -0.013542353175580502, -0.009979061782360077, 0.016468683257699013, 0.034931331872940063, -0.01542554423213005, -0.06310533732175827, 0.05656955763697624, -0.03987932205200195, 0.015850184485316277, -0.015379386954009533, -0.010135994292795658, 0.014687038026750088, -0.006443464662879705, 0.015120910480618477, -0.053172431886196136, -0.022007478401064873, 0.0562003068625927, -0.016708698123693466, -0.04715360701084137, 0.0066604008898139, -0.03620525449514389, 0.011289910413324833, -0.008003558963537216, 0.009319022297859192, -0.021785926073789597, -0.015444006770849228, -0.030629536136984825, -0.013163869269192219, 0.0038817720487713814, -0.000666963227558881, 0.07141353189945221, -0.023521415889263153, -0.01997658796608448, -0.011096052825450897, 0.019275005906820297, -0.04172558709979057, 0.004827982746064663, 0.06716711819171906, 0.011529924347996712, -0.02558923326432705, 0.026032336056232452], '组成编码': '0201', '是否为关重件': '是', '是否为寿命件': '香', '备注': '生成发射信号'}}, {'type': '零部件', 'name': '功率放大模块', 'properties': {'名称': '功率放大模块', '型号': '', '技术责任单位': '', '生产单位': '', '切片': '
组成编码名称是否为关重件是否为寿命件备注
01声呐基阵系统核心探测单元
0101基阵阵元组件包含多个换能器单元
01010001压电陶瓷换能器核心声电转换部件,有使用寿命
01010002橡胶透声护罩易老化,需定期更换
0102基阵骨架支撑结构
01020001钛合金主框架耐腐蚀承力结构
02信号处理机柜数据处理核心
0201发射机组件生成发射信号
020101功率放大模块大功率器件,有工作寿命
02010001散热风扇易损件,需定期更换
', 'embedding': [-0.013946479186415672, 0.037956662476062775, -0.04095909371972084, -0.012556464411318302, -0.002082705032080412, -0.008358621038496494, 0.0395134799182415, -0.008075984194874763, 0.02622494101524353, -0.007052007131278515, -0.0020572214853018522, 0.015188225544989109, -0.03482449799776077, -0.011435186490416527, -0.01734738238155842, -0.023945316672325134, 0.022221699357032776, 0.016874777153134346, 0.03675198554992676, 0.011564920656383038, -0.0022830988746136427, 0.03476889804005623, -0.047742366790771484, 0.05018879100680351, -0.030413517728447914, -0.002585427137091756, -0.026373209431767464, -0.02003474347293377, 0.031210459768772125, 0.0016077834879979491, -0.04088496044278145, -0.01714351214468479, -0.009150928817689419, -0.03851266950368881, -0.02083168551325798, -0.02820802852511406, -0.023129841312766075, -0.020998487249016762, -0.05018879100680351, -0.021128220483660698, -0.005884394980967045, -0.03571410849690437, 0.00915556214749813, -0.04911384731531143, -0.002190431347116828, -0.021072620525956154, -0.020887285470962524, -0.04707515984773636, -0.038475602865219116, -0.03374955430626869, 0.017523450776934624, -0.03386075422167778, 0.03932814672589302, 0.009757902473211288, 0.07472718507051468, 0.021888095885515213, -0.03715972229838371, 0.016633840277791023, -0.041366834193468094, -0.0027939293067902327, 0.009285297244787216, 0.051782675087451935, -0.01905246637761593, -0.014789754524827003, 0.005657359026372433, 0.040996164083480835, -0.01723618060350418, 0.043961528688669205, 0.004763116594403982, 0.015744231641292572, -0.01266766618937254, 0.03658518195152283, -0.014752687886357307, 0.014493218623101711, -0.02659561112523079, 0.0059492625296115875, 0.10030344873666763, -0.025668935850262642, 0.026966283097863197, 0.0006533068371936679, 0.0002293524012202397, -0.0412927009165287, 0.0071122413501143456, 0.0018834697548300028, -0.011944858357310295, -0.00018663841183297336, 0.041626304388046265, -0.01239893026649952, -0.05404376611113548, -0.014307883568108082, 0.0139186792075634, -0.0003683538525365293, -0.0016958178021013737, -0.026447342708706856, -0.0709092766046524, -0.0030719321221113205, 0.006880572065711021, 0.023389311507344246, -0.031006591394543648, 0.017708785831928253, -0.015419894829392433, -0.005805627442896366, 0.009980304166674614, -0.0029213472735136747, -0.012473063543438911, -0.004994785413146019, 0.020498082041740417, 0.022407034412026405, -0.005319122225046158, 0.002965364372357726, -0.017365915700793266, 0.013492408208549023, 0.029690710827708244, 0.031581129878759384, -0.018459392711520195, -0.016661640256643295, -0.026818014681339264, -0.040922027081251144, 0.024649592116475105, -0.008451288565993309, 0.01086991373449564, -0.060752902179956436, 0.003083515679463744, -0.05786167085170746, -0.00463569862768054, -0.04570367932319641, 0.006055830046534538, -0.031117793172597885, -0.014724887907505035, 0.014317150227725506, -0.019534338265657425, -0.01590176671743393, -0.03736359253525734, -0.039995353668928146, -0.019830875098705292, -0.030376451089978218, 0.013056869618594646, -0.00309741566888988, -0.023111307993531227, -0.006514534819871187, -0.0014432984171435237, -0.05278348550200462, 0.014697086997330189, -0.00880342535674572, 0.0007378660375252366, -0.036974385380744934, 0.03628864511847496, -0.027262818068265915, -0.008177919313311577, -0.008001850917935371, 0.02568746916949749, 0.015772031620144844, 0.0029537808150053024, -0.003667321754619479, -0.002386191627010703, -0.017013778910040855, -0.073689304292202, 0.08317846804857254, 0.004566197749227285, 0.06027103215456009, -0.04507353901863098, 0.02272210456430912, 0.020776083692908287, 0.010202706791460514, -0.00362793798558414, 0.026540011167526245, 0.04018068686127663, 0.026540011167526245, -0.007751647848635912, 0.036677852272987366, 0.03643691539764404, -0.013575809076428413, -0.032656073570251465, -0.03208153694868088, 0.018792996183037758, -0.006213365122675896, 0.02101702056825161, 0.017180580645799637, 0.0028147795237600803, -0.018996866419911385, 0.014168881811201572, -0.007788714952766895, -0.022610902786254883, 0.04322018474340439, -0.016365105286240578, 0.02657707780599594, 0.024834927171468735, -0.03649251535534859, 0.01791265420615673, 0.045851945877075195, -0.006704503670334816, 0.0047028823755681515, 0.06390359997749329, -0.018839331343770027, 0.03061738796532154, -0.012658399529755116, -0.01261206530034542, 0.010221240110695362, -0.011963391676545143, 0.03428702428936958, 0.003166916547343135, 0.011462986469268799, -0.02937564067542553, -0.03621451184153557, -0.04277538135647774, 0.010100772604346275, -0.009387231431901455, -0.05345069244503975, -0.011462986469268799, -0.0006034979596734047, -0.035158101469278336, 0.008284486830234528, 0.05263521894812584, 0.023667315021157265, -0.006565501913428307, -0.0047051990404725075, 0.01611490175127983, 0.024909060448408127, 0.0139186792075634, -0.036158911883831024, -0.06101237237453461, 0.0682775154709816, 0.010712378658354282, 0.04006948694586754, 0.0206648837774992, -0.029134705662727356, 0.011731722392141819, 0.013214404694736004, 0.007334643509238958, -0.06027103215456009, 0.005754660349339247, -0.03836440294981003, -0.026984816417098045, -0.007394877262413502, 0.008191819302737713, 0.0023676580749452114, -0.01105524878948927, 0.004165410064160824, 0.06090117245912552, 0.02396385185420513, -0.021684227511286736, 0.0327858105301857, -0.046667423099279404, -0.011398118920624256, -0.004253444727510214, 0.04785356670618057, -0.02678094618022442, 0.017690252512693405, 0.029134705662727356, 0.011416653171181679, 0.010508510284125805, -0.019979141652584076, -0.06994552910327911, -0.004621798172593117, 0.007793348282575607, 0.046111416071653366, 0.029171772301197052, 0.005726859904825687, 0.004651915282011032, 1.4723656931892037e-05, 0.05901075154542923, 0.010267574340105057, 0.003048765240237117, 0.016911843791604042, -0.000709486601408571, -0.02820802852511406, 0.002585427137091756, 0.014446884393692017, 6.573610153282061e-05, 0.009313097223639488, 0.004042625892907381, -0.06316225975751877, -0.026743879541754723, 0.05156027153134346, -0.011286918073892593, 0.06720256805419922, -0.021313557401299477, -0.04470286890864372, 0.04173750430345535, 0.04170043766498566, 0.030024314299225807, 0.003690488636493683, -0.010100772604346275, -0.0592702217400074, -0.023908250033855438, -0.008645890280604362, -0.073689304292202, 0.000322888809023425, -0.0029421974904835224, -0.02533533237874508, -0.047557029873132706, -0.012519397772848606, 0.08792305737733841, -0.01238966267555952, -0.03176646679639816, 0.032656073570251465, -0.031488463282585144, -0.14441324770450592, -0.028059760108590126, -0.0341016910970211, 0.015012157149612904, -0.005295955576002598, -0.004012508783489466, -0.05767633765935898, 0.05081893131136894, 0.011620521545410156, -0.03356421738862991, 0.0002991427027154714, -0.07924935966730118, -0.02416772022843361, -0.007621913217008114, -0.02190662920475006, -0.006217998452484608, -0.03832733631134033, 0.015160425566136837, -0.006162398029118776, -0.021146755665540695, 0.0004503068048506975, -0.04247884452342987, 0.034620627760887146, -0.00866442359983921, -0.0386238694190979, 0.014391284435987473, 0.05849181115627289, 0.005634192377328873, -0.04470286890864372, -0.05615658685564995, -0.03917987644672394, 0.08458702266216278, 0.006556235253810883, 0.040291886776685715, 0.002320165978744626, 0.0020317379385232925, 0.024760792031884193, 0.018366726115345955, -0.0034935700241476297, -0.021498892456293106, 0.016012968495488167, 0.02765202336013317, -0.019423136487603188, 0.04284951463341713, 0.018755929544568062, -0.02253676950931549, 0.0583806112408638, -0.012788133695721626, 0.012454530224204063, -0.01554036233574152, -0.009822769090533257, 0.0023954585194587708, -0.015243826434016228, -0.02720721811056137, 0.006245798896998167, -0.02396385185420513, -0.02003474347293377, 0.026373209431767464, -0.013807478360831738, -0.03513956815004349, -0.003148382995277643, -0.0009973354171961546, -0.015447694808244705, 0.05864008143544197, -0.005430323537439108, -0.013761144131422043, 0.03402755782008171, -0.025038795545697212, -0.029505375772714615, -0.0037854730617254972, 0.019423136487603188, -0.010499243624508381, 0.006560868583619595, 0.0052449884824454784, 0.012871534563601017, 0.04915091395378113, 0.00660256901755929, -0.010184173472225666, -0.01100891549140215, -0.10200853645801544, -0.04785356670618057, 0.020590748637914658, -0.004040308762341738, -0.00839568767696619, -0.011314718052744865, -0.07798908650875092, -0.0019240118563175201, -0.01669870875775814, 0.10571523755788803, 0.2262573093175888, -0.010610444471240044, 0.008543956093490124, 0.03384222090244293, -0.006690603215247393, 0.011388852261006832, -0.00867369119077921, -0.011907791718840599, 0.010610444471240044, -0.04507353901863098, -0.03602917864918709, 0.051968012005090714, 0.01845012605190277, -0.003292017849162221, 0.017180580645799637, 0.005573958158493042, -0.027262818068265915, -0.005907561630010605, 0.09511405974626541, 0.010174906812608242, 0.001545232837088406, -0.024241853505373, 0.026150807738304138, -0.032378073781728745, -0.019441669806838036, -0.037233855575323105, 0.0026873615570366383, 0.040366023778915405, 0.01831112429499626, 0.029709244146943092, -0.0021614725701510906, 0.017875587567687035, 0.01046217605471611, -0.02820802852511406, -0.00984130334109068, -0.007830414921045303, 0.027689089998602867, 0.054377369582653046, -0.0009579517063684762, 0.004448046442121267, -0.05319122225046158, -0.06401480734348297, -0.026929214596748352, 0.024723725393414497, 0.011323985643684864, -0.0772477388381958, -0.018338926136493683, -0.011972658336162567, 0.005212554708123207, -0.07127994298934937, 0.003412485821172595, 0.004086642991751432, -0.037956662476062775, -0.02316690981388092, -0.0014062314294278622, -0.01828332431614399, -0.01931193470954895, 0.02818949520587921, -0.0028263628482818604, 0.020053276792168617, 0.09985864907503128, -0.009007294662296772, -0.04766823351383209, 0.015039957128465176, 0.02192516252398491, -0.024315988644957542, -0.05248694866895676, -0.013381206430494785, -0.01845012605190277, 0.003727555740624666, 0.05018879100680351, 0.03725238889455795, 0.014224482700228691, -0.010721645317971706, 0.0042256442829966545, 0.0020618548151105642, 0.05515577644109726, 0.039105743169784546, -0.05181974172592163, -0.03936521336436272, -0.010527043603360653, -0.00951696652919054, -0.04425806179642677, -0.022573836147785187, 0.006176298018544912, -0.056082453578710556, -0.003243367187678814, -0.023296643048524857, -0.024501323699951172, -0.013761144131422043, -0.019608471542596817, 0.01339047309011221, 0.04240471124649048, -0.05604538694024086, 0.05478510633111, 0.048261307179927826, -0.00020835739269386977, -0.015466229058802128, -0.02353757992386818, 0.023037174716591835, -0.0029259806033223867, 0.008539322763681412, 0.019645538181066513, 0.012602798640727997, -0.02713308483362198, 0.01105524878948927, 0.02818949520587921, -0.015920300036668777, -0.043516721576452255, 0.010999648831784725, -0.009720834903419018, 0.026799481362104416, 0.0013448391109704971, 0.0157164316624403, 0.028263628482818604, 0.026336142793297768, -0.02110968716442585, 0.037660129368305206, -0.017310313880443573, 0.03817906603217125, -0.008465188555419445, 0.0015938833821564913, -0.012584265321493149, 0.012371129356324673, 0.012371129356324673, -0.05074479803442955, -0.017124978825449944, -0.01203752588480711, -0.020368346944451332, -0.015114091336727142, -0.003991658333688974, -0.001619366928935051, 0.0136962765827775, -0.009169463068246841, 0.045592475682497025, -0.026354676112532616, 0.02729988656938076, 0.0467044897377491, 0.014039146713912487, 0.017708785831928253, -0.0011965708108618855, -0.04892851412296295, 0.008214985951781273, -0.012510131113231182, 0.023871183395385742, -0.01938606984913349, -0.012157994322478771, -0.007455111481249332, 0.049076780676841736, 0.05441443622112274, 0.015336493961513042, 0.030506186187267303, 0.010211973451077938, -0.02190662920475006, -0.036955852061510086, -0.014483951963484287, -0.008029650896787643, 0.002020154381170869, -0.017597584053874016, -0.007816514931619167, 0.004577781073749065, 0.04236764460802078, 0.003426385810598731, 0.004878951236605644, -0.0021672644652426243, 0.0457778126001358, -0.029338574036955833, 0.03851266950368881, 0.013900145888328552, -0.03491716459393501, -0.01222286093980074, -0.036047711968421936, -0.0439985953271389, 0.034268490970134735, 0.005119886714965105, -0.007408777717500925, -0.05396963283419609, 0.009350164793431759, 0.02055368199944496, -0.022759171202778816, 0.028504565358161926, 0.010091505944728851, -0.011018182151019573, -0.09896903485059738, 0.009206529706716537, 0.03665931895375252, 0.008131585083901882, -0.016179770231246948, 0.02944977581501007, -0.005068919621407986, -0.06887058913707733, 0.07917522639036179, -0.0027429619804024696, 0.010119305923581123, 0.0001579693634994328, 0.014928756281733513, 0.002000462729483843, -0.0413297675549984, 0.028096826747059822, -0.05315415561199188, 0.016059301793575287, 0.024649592116475105, 0.0179775208234787, 0.0014444567495957017, -0.0010917405597865582, -0.02839336358010769, -0.03180353343486786, -0.009693034924566746, 0.012102393433451653, -0.04195990785956383, -0.05623072385787964, -0.04985518753528595, 0.008483721874654293, 0.023908250033855438, 0.018338926136493683, 0.011842924170196056, 0.025743069127202034, 0.056972064077854156, 0.009428932331502438, -0.02540946565568447, 0.010693845339119434, -0.018644727766513824, 0.011212783865630627, -0.03617744520306587, -0.005652725696563721, -0.012593531981110573, -0.0023525995202362537, -0.013946479186415672, 0.08191818743944168, 0.009628167375922203, 0.013270005583763123, 0.030339384451508522, -0.03163672983646393, -0.004566197749227285, 0.002069963375106454, 0.005022585857659578, -0.0034333360381424427, 0.030747121199965477, -0.01914513297379017, -0.0029862145893275738, 0.012723266147077084, 0.014558086171746254, 0.015466229058802128, 0.08569902926683426, 0.00855785608291626, 0.028096826747059822, -0.022870372980833054, 0.023370778188109398, 0.011611254885792732, 0.011027448810636997, -0.03943934664130211, 0.006380166858434677, -0.00129734689835459, -0.009933970868587494, 0.011713189072906971, -0.014891689643263817, -0.011935591697692871, -0.021332090720534325, -0.02192516252398491, -0.008363254368305206, 0.007728480733931065, -0.01975673995912075, -0.024278920143842697, 0.0013378889998421073, -0.03589944168925285, -0.00984130334109068, -0.0016344254836440086, 0.01966407336294651, -0.03330474719405174, -0.022203166037797928, -0.03280434384942055, -0.008298386819660664, -0.01800532266497612, -0.012361862696707249, 0.01580909825861454, -0.0006961656035855412, 0.02038688026368618, -0.023389311507344246, -0.010017371736466885, 0.05081893131136894, -0.011601988226175308, -0.029690710827708244, 0.0246866587549448, 0.02659561112523079, -0.0063199326395988464, -0.009058261290192604, 0.07932350039482117, 0.011592721566557884, 0.007052007131278515, -0.04103323072195053, 0.007774814963340759, -0.0010031271958723664, -0.05819527432322502, 0.06660949438810349, -0.024575456976890564, -0.012157994322478771, -0.013557275757193565, 0.032192736864089966, 0.02379705011844635, 0.03573264181613922, -0.022647971287369728, -0.02785589173436165, -0.03810493275523186, -0.007848949171602726, -0.017504917457699776, -0.004723732825368643, -0.006732303649187088, -0.015392094850540161, 0.0413297675549984, 0.04299778491258621, 0.03563997149467468, 0.023018641397356987, 0.003171549877151847, -0.020627815276384354, -0.024130653589963913, 0.014873155392706394, 0.031099259853363037, -0.06764737516641617, -0.0002380399964749813, 0.01185219082981348, -0.006329199764877558, 0.025576267391443253, -0.005082820076495409, 0.0007888332474976778, -0.0020896552596241236, 0.007538512349128723, -0.03180353343486786, 0.007371710613369942, -0.018394526094198227, 0.009465998969972134, -0.018413059413433075, -0.030561786144971848, -0.009544766508042812, 0.024946127086877823, 0.013177338056266308, 0.015030690468847752, -0.0019077949691563845, -0.015688631683588028, -0.004183943849056959, -0.01275106705725193, -0.024834927171468735, 0.001545232837088406, 0.04025482013821602, 0.00806671753525734, -0.0011270701652392745, 0.01176878996193409, 0.016874777153134346, -0.0013112471206113696, 0.044591665267944336, -0.004976252093911171, 0.020905818790197372, 0.013826011680066586, -0.044517531991004944, -0.0458148792386055, 0.00020415839389897883, -0.02909763716161251, -0.012435996904969215, 0.009869103319942951, -0.006338466424494982, 0.018737396225333214, 0.009336264804005623, -0.0041028596460819244, -0.002390824956819415, 0.04210817441344261, -0.021869562566280365, 0.028337763622403145, 0.05404376611113548, 0.005879761651158333, 0.02057221531867981, -0.019015399739146233, -0.05352482572197914, 0.0059816958382725716, -0.015605229884386063, 0.06171664595603943, -0.03393488749861717, 0.04410979524254799, -0.01835745945572853, 0.012500864453613758, 0.04158923402428627, 0.006361633073538542, -0.026002539321780205, -0.037048522382974625, -0.005893661640584469, -0.044406332075595856, 0.05282055214047432, -6.189908890519291e-05, -0.001237112912349403, -0.034898631274700165, 0.06764737516641617, -0.009081428870558739, -0.015160425566136837, -0.06864818185567856, -0.01826479099690914, 0.023111307993531227, -0.12061619758605957, -0.02578013576567173, -0.01005443837493658, -0.05763927102088928, -0.03610331192612648, 0.0023954585194587708, -0.021851029247045517, 0.0020908135920763016, -0.026095205917954445, -0.03981001675128937, 0.02262943610548973, -0.02678094618022442, 0.0700567364692688, -0.02524266391992569, -0.015586696565151215, 0.03747479245066643, 0.0042163776233792305, -0.0059492625296115875, 0.0013923312071710825, 0.0709092766046524, -0.001861461205407977, -0.025446532294154167, 0.01835745945572853, 0.015438428148627281, 0.014715620316565037, -0.021610092371702194, 0.05256108194589615, -0.020776083692908287, -0.0440356619656086, 0.06249505281448364, 0.016244636848568916, 0.012510131113231182, 0.03738212585449219, 0.06245798617601395, -0.004174677189439535, -0.019645538181066513, -0.010063705034554005, -0.024834927171468735, 0.01625390350818634, 0.05189387500286102, 0.03721532225608826, 0.010489976964890957, 0.00024513487005606294, -0.023148376494646072, -0.0029190306086093187, 0.003535270458087325, 0.030302317813038826, -0.010999648831784725, -0.03565850853919983, 0.008956327103078365, 0.022054897621273994, 0.006926905829459429, 0.030116982758045197, -0.010119305923581123, 0.0332491472363472, -0.057453934103250504, -0.05041119456291199, -0.009137028828263283, 0.013705543242394924, 0.06245798617601395, -0.020183011889457703, 0.006792537868022919, -0.01019344013184309, -0.022258765995502472, -0.004098226316273212, 0.006143864244222641, -0.07702533900737762, -0.0556747168302536, -0.014910222962498665, 0.008974860422313213, -0.04407272860407829, 0.029950181022286415, 0.031747933477163315, -0.06205024942755699, -0.029116172343492508, -0.006690603215247393, 0.023593179881572723, -0.01073091197758913, 0.007260509300976992, -0.020257145166397095, -0.009007294662296772, -0.010786512866616249, 0.0020931302569806576, -0.03877213969826698, 0.038586802780628204, -0.01100891549140215, 0.00041671478538773954, 0.03495423123240471, -0.06812924891710281, 0.04177457094192505, -0.03243367373943329, -0.0282821636646986, 0.0018255524337291718, -0.013668476603925228, -0.06990846246480942, 0.021517425775527954, -0.05471097305417061, 0.012195060960948467, -0.019515804946422577, -0.023370778188109398, -0.018691062927246094, 0.03475036472082138, -0.004047259222716093, 0.018209191039204597, -0.0059538958594202995, 0.016958177089691162, 0.027318419888615608, -0.01777365244925022, -0.011453719809651375, -0.013492408208549023, -0.06297692656517029, 0.01931193470954895, 0.016995243728160858, 0.02370438165962696, -0.05041119456291199, 0.010091505944728851, 0.05867714807391167, -0.007177108433097601, -0.023333711549639702, -0.022314367815852165, 0.005092086736112833, 0.059233155101537704, -0.01473415456712246, -0.026169341057538986, 0.014178148470818996, 0.021498892456293106, 0.014539551921188831, 0.014261549338698387, 0.003806323278695345, -0.02057221531867981, 0.051337871700525284, 0.0053747231140732765, -0.011889257468283176, 0.027800291776657104, 0.035083968192338943, 0.022925972938537598, -0.0029398808255791664, 0.07887869328260422, 0.017180580645799637, -0.043257251381874084, -0.004957718774676323, -0.005448856856673956, -0.005490557290613651, 0.002900497056543827, 0.0052774217911064625, -0.023296643048524857, -0.04429513216018677, -0.0069964067079126835, -0.008465188555419445, -0.004971618764102459, -0.0005542683065868914, -0.013844544999301434, 0.021591559052467346, -0.009150928817689419, -0.0011264909990131855, 0.0004242440336383879, -0.01849646121263504, -0.013483141548931599, -0.002722111763432622, 0.0327858105301857, 0.04570367932319641, -0.04922504723072052, -0.028170961886644363, -0.0318962000310421, -0.00023442016390617937, -0.006009496282786131, 0.002833313075825572, -0.0157164316624403, -0.06271746009588242, 0.004714466165751219, 0.009896903298795223, 0.02741108648478985, -0.02416772022843361, 0.011157183907926083, 0.052931755781173706, -0.02685508131980896, 0.006176298018544912, -0.04262711480259895, 0.03169233351945877, -0.024223320186138153, 0.007445844821631908, 0.03630717843770981, 0.037956662476062775, -0.004563881084322929, 0.0059770625084638596, 0.04726049304008484, -0.01445615105330944, 0.009998838417232037, 0.006458934396505356, -0.004332211799919605, 0.006250432226806879, 0.007135407999157906, 0.03163672983646393, -0.015873966738581657, 0.04303485155105591, -0.025390932336449623, 0.020442480221390724, 0.06434840708971024, -0.052857618778944016, 0.05156027153134346, 0.009424299001693726, 0.03521370142698288, -0.004505963996052742, -0.026336142793297768, -0.00785821583122015, 0.0005426848656497896, 0.015605229884386063, 0.008998028002679348, -0.04062549024820328, 0.03378662094473839, 0.04018068686127663, -0.02127648890018463, -0.038586802780628204, 0.04247884452342987, 0.0018892614170908928, 0.02405651845037937, 0.008233519271016121, 0.025668935850262642, -0.005485923960804939, 0.034342627972364426, -0.014428351074457169, -0.00698250625282526, -0.013195871375501156, -0.056453123688697815, 0.06898178905248642, -0.02209196425974369, 0.03465769439935684, 0.0031900834292173386, 0.022518236190080643, 0.0013645309954881668, -0.02676241286098957, 0.045036472380161285, 0.01786632090806961, 0.054117899388074875, -0.0059770625084638596, -0.03026525117456913, 0.017532717436552048, 0.028615767136216164, -0.032563406974077225, -0.013483141548931599, 0.09311243891716003, 0.002508976263925433, 0.00660256901755929, 0.03567704185843468], '组成编码': '020101', '是否为关重件': '是', '是否为寿命件': '是', '备注': '大功率器件,有工作寿命'}}, {'type': '零部件', 'name': '散热风扇', 'properties': {'名称': '散热风扇', '型号': '', '技术责任单位': '', '生产单位': '', '切片': '
组成编码名称是否为关重件是否为寿命件备注
01声呐基阵系统核心探测单元
0101基阵阵元组件包含多个换能器单元
01010001压电陶瓷换能器核心声电转换部件,有使用寿命
01010002橡胶透声护罩易老化,需定期更换
0102基阵骨架支撑结构
01020001钛合金主框架耐腐蚀承力结构
02信号处理机柜数据处理核心
0201发射机组件生成发射信号
020101功率放大模块大功率器件,有工作寿命
02010001散热风扇易损件,需定期更换
', 'embedding': [-0.023730037733912468, -0.0038050049915909767, -0.06385811418294907, 0.0020768495742231607, -0.020902788266539574, -0.025162510573863983, 0.008835150860249996, 0.01297706924378872, 0.01487132627516985, 0.016906945034861565, 0.011704808101058006, 0.0028790810611099005, 0.00949955452233553, -0.007482783868908882, 0.02927144430577755, -0.06506440788507462, 0.014371845871210098, -0.01675615832209587, 0.027009645476937294, -0.026632679626345634, 0.04519827663898468, -0.022203322499990463, -0.01375927496701479, 0.022391807287931442, 0.0026034244801849127, 0.023560402914881706, -0.021826356649398804, 0.02889447659254074, 0.040976252406835556, 0.01990382745862007, 0.02991228736937046, 0.03541599586606026, 0.004787473939359188, -0.0006243506795726717, -0.023371919989585876, -0.0038733300752937794, -0.041466306895017624, -0.016153011471033096, -0.0556025505065918, 0.02536984160542488, 0.0075110564939677715, -0.02955416962504387, 0.059975359588861465, -0.027820123359560966, -0.023786582052707672, -0.04915642365813255, -0.026632679626345634, -0.0372442826628685, -0.040071532130241394, -0.02538868971168995, -0.00842991191893816, -0.013005342334508896, 0.029968831688165665, -0.05141822248697281, 0.03011961840093136, 0.018942562863230705, 0.001400665962137282, -0.010338304564356804, -0.052209850400686264, 0.007727812044322491, -0.02621801570057869, 0.03584950789809227, -0.023956216871738434, -0.01880120113492012, 0.030251557007431984, 0.10034846514463425, 0.0003816785174421966, 0.028592905029654503, -0.008439335972070694, -0.02881908416748047, -0.02508711628615856, -0.019300682470202446, 0.014946719631552696, -0.012534134089946747, -0.03935529664158821, -0.001820041099563241, 0.03814900293946266, 0.02427663840353489, 0.03665998578071594, -0.0237111896276474, 0.04372810572385788, -0.029949983581900597, 0.027462005615234375, 0.007958703674376011, -0.03255105018615723, 0.04271029680967331, 0.029610713943839073, -0.01010270044207573, 0.0033290849532932043, -0.06668536365032196, -0.0430118702352047, 0.008048233576118946, -0.01093202643096447, -0.05918373167514801, -0.025407537817955017, 0.00030451820930466056, 0.0006691154558211565, -0.02527559921145439, 0.019319530576467514, -0.0016032854327932, 0.009362904354929924, 0.019470317289233208, 0.02991228736937046, -0.015907984226942062, 0.0105173634365201, -0.03230602294206619, 0.03471861034631729, 0.02731121890246868, -0.005659208633005619, -0.007968127727508545, 0.016831550747156143, 0.08753160387277603, 0.007463935296982527, 0.007930431514978409, -0.023221133276820183, -0.012110047042369843, -0.02231641300022602, -0.017660876736044884, 0.022674530744552612, -0.002454994013532996, -0.0217698123306036, -0.01231737807393074, -0.0047474210150539875, -0.024578211829066277, 0.03760240226984024, -0.03417200595140457, -0.003194790566340089, 0.06992727518081665, -0.011723656207323074, 0.007209483068436384, 0.012515285983681679, 0.030817005783319473, -0.0016091754660010338, -0.011374962516129017, -0.037112344056367874, -0.014579176902770996, -0.009405313059687614, -0.018829474225640297, 0.02242950350046158, -0.03792282193899155, 0.018603293225169182, 0.03355001285672188, 0.000695620896294713, -0.007944568060338497, 0.001045492826960981, -0.024898633360862732, 0.03620762750506401, 0.01992267556488514, -0.02252374403178692, -0.03047773614525795, 0.016925793141126633, -0.007548752706497908, -0.00523040909320116, 0.04519827663898468, 0.0190933495759964, 0.0008299151668325067, -0.02759394235908985, 0.03814900293946266, -0.017547788098454475, 0.014089120551943779, -0.05481091886758804, 0.04828939959406853, 0.0014960855478420854, 0.013382308185100555, 0.011506900191307068, 0.042371027171611786, 0.011337265372276306, 0.01638861559331417, -0.007732524070888758, 0.002963898703455925, 0.0025916441809386015, -0.022768773138523102, -0.01144093181937933, -0.004139562603086233, 0.03592490032315254, -0.00024841498816385865, 0.012411619536578655, -0.009292222559452057, 0.011836745776236057, -0.022354109212756157, 0.032381415367126465, 0.017265062779188156, -0.012204288505017757, -0.00134294293820858, -0.052096761763095856, 0.028215937316417694, 0.03324843943119049, 0.0007969306316226721, 0.03485054895281792, 0.023673491552472115, -0.036999255418777466, -0.00387804233469069, 0.027198128402233124, 0.010281759314239025, 0.04866636544466019, -0.022542592138051987, 0.002301851287484169, -0.04934490844607353, 0.0020968758035451174, 0.003397410036996007, 0.021091273054480553, 0.0014336504973471165, 0.017170820385217667, 0.016435736790299416, -0.07098277658224106, -0.007020999677479267, 0.0005745792877860367, 0.009183844551444054, -0.021091273054480553, -0.03426624834537506, -0.011007419787347317, 0.041541703045368195, -0.0009023633901961148, -0.02399391308426857, -0.05809052661061287, 0.03215523809194565, 0.02335307002067566, -0.03353116288781166, 0.013919485732913017, -0.07083199173212051, -0.01491844654083252, 0.05454704537987709, 0.00634246040135622, 0.025690263137221336, 0.027725880965590477, -0.025124812498688698, 0.03177827224135399, 0.015804318711161613, 0.022749925032258034, -0.016266101971268654, -0.025897594168782234, 0.003559976816177368, 0.017208518460392952, 0.005574391223490238, 0.024615908041596413, -0.02742430754005909, -0.03771549090743065, 0.044218163937330246, -0.0054141804575920105, 0.006422565784305334, -0.029120657593011856, 0.017095427960157394, 0.06366962939500809, 0.004914700053632259, -0.030213860794901848, 0.05511249229311943, 0.06005075201392174, -0.02233526110649109, -0.007162362337112427, 0.0220336876809597, 0.00851472932845354, -0.01223256066441536, -0.06939952075481415, 0.0041584111750125885, 0.03863906115293503, 0.009235677309334278, -0.006705290637910366, -0.013259794563055038, 0.03362540528178215, -0.010112124495208263, 0.02619916759431362, 0.07735351473093033, 0.031231669709086418, 0.02917720191180706, -0.02733006700873375, 0.005847692023962736, 0.006719426717609167, 0.009301646612584591, -0.0025374554097652435, 0.029139505699276924, -0.028668297454714775, -0.027273522689938545, -0.030044225975871086, 0.00039640377508476377, 0.010432546027004719, 0.007963416166603565, 0.02584104984998703, 0.012986494228243828, 0.0793137401342392, 0.00944300927221775, 0.04451973736286163, 0.03743276745080948, 0.00313588953576982, 0.03387043625116348, -0.004672027658671141, -0.031985603272914886, -0.027367763221263885, 0.03287147358059883, 0.02001691795885563, -0.028668297454714775, -0.0454244539141655, 0.012213712558150291, 0.061935584992170334, -0.005932509433478117, -0.05156900733709335, 0.0379793681204319, -0.05669575184583664, -0.1586274802684784, -0.003013375448063016, 0.0054188924841582775, -0.023409616202116013, 0.005060774274170399, 0.0013264506123960018, -0.04467052221298218, -0.001124420203268528, -0.008095353841781616, -0.03601914271712303, -0.000788684468716383, -0.058203618973493576, -0.021977143362164497, -0.0021675569005310535, -0.06660997122526169, 0.03764009848237038, 0.005220985040068626, -0.0007132911705411971, 0.022844165563583374, -0.03002537600696087, -0.015088081359863281, 0.023126890882849693, 0.04602760076522827, 0.020167704671621323, -0.047007713466882706, 0.024615908041596413, 0.03698040917515755, 0.00020556451636366546, -0.02576565556228161, -0.0153708066791296, 0.016652492806315422, 0.030364645645022392, 0.012713192962110043, 0.035529088228940964, 0.015267141163349152, -0.01630379818379879, -0.022090233862400055, 0.026255711913108826, -0.005310514476150274, -0.01620013266801834, 0.04063698276877403, 0.009202693589031696, -0.0425972081720829, -0.029704954475164413, -0.008425199426710606, -0.008034097030758858, 0.0488925464451313, 0.036358412355184555, -0.0005212738760747015, -0.04670614004135132, 0.0440673753619194, 0.029704954475164413, 0.004125426523387432, -0.03057197853922844, -0.025049420073628426, 0.03251335397362709, -0.01630379818379879, 0.04625378176569939, -0.054056987166404724, 0.008222580887377262, -0.05021192878484726, -0.06906025111675262, 0.048854850232601166, -0.0019272408680990338, -0.039694566279649734, 0.0290075670927763, 0.027103886008262634, -0.021882900968194008, -0.0009918928844854236, 0.020978182554244995, -0.004050033167004585, 0.01583258993923664, -0.008849287405610085, -0.06385811418294907, 0.01162941474467516, 0.012439892627298832, -0.034794002771377563, -0.010715271346271038, -0.017802240327000618, -0.10321340709924698, 0.0643104761838913, -0.04010922834277153, 0.0023124534636735916, -0.016087042167782784, -0.007251891773194075, -0.052285246551036835, 0.011063965037465096, 0.00563093600794673, 0.05134283006191254, 0.22648143768310547, 0.025822201743721962, 0.043124958872795105, -0.028291331604123116, 0.024860937148332596, -0.01620955765247345, 0.016888096928596497, -0.03411546349525452, 0.04934490844607353, -0.018179206177592278, -0.036829620599746704, 0.02472899854183197, 0.0208273958414793, 0.007445087190717459, -0.01547447219491005, 0.012421044521033764, 0.012694344855844975, -0.004947684705257416, 0.09318610280752182, -0.003944011405110359, -0.004031185060739517, -0.012496436946094036, 0.005918372888118029, -0.008208444342017174, 0.005612087901681662, -0.03002537600696087, -0.026048380881547928, 0.08481744676828384, 0.0036942712031304836, 0.04429355636239052, -0.003830921370536089, 0.06529058516025543, -0.00745922327041626, -0.023579251021146774, -0.0008599546854384243, -0.025878746062517166, -0.022825317457318306, -0.0073272851295769215, -0.029026415199041367, 0.030892400071024895, -0.040071532130241394, -0.003835633397102356, -0.001130899298004806, -0.039694566279649734, 0.006012614816427231, -0.0314766988158226, -0.00010359214502386749, -0.027933213859796524, 0.009471281431615353, -0.05337844789028168, -0.04791243374347687, -0.007138801738619804, 0.00530109042301774, 0.001537316245958209, -0.015399078838527203, -0.020035766065120697, 0.025237902998924255, -0.05601721256971359, -0.008048233576118946, 0.05639417842030525, 0.035434845834970474, 0.002676461823284626, -0.013994879089295864, -0.018452506512403488, -0.021185513585805893, -0.02175096422433853, -0.07652418315410614, -0.0542454719543457, -0.009056618437170982, 0.04180557653307915, -0.032098691910505295, 0.034869395196437836, -0.019941523671150208, 0.013372884131968021, 0.019960373640060425, -0.010149821639060974, -0.044783614575862885, 0.08941643685102463, 0.022806469351053238, 0.011111085303127766, -0.052285246551036835, -0.004549513570964336, -0.043690409511327744, 0.008293261751532555, 0.0014501428231596947, 0.012845131568610668, 0.04316265881061554, -0.006804244127124548, 0.01357079204171896, -0.017378153279423714, 0.015050385147333145, 0.0006090364186093211, 0.018650414422154427, 0.02175096422433853, 0.03392697870731354, 0.010347728617489338, -0.035623326897621155, -0.004292705096304417, 0.014607449062168598, 0.016426311805844307, 0.02314573898911476, -0.02388082444667816, -0.0032301312312483788, -0.022090233862400055, -0.0008405173430219293, -0.0326264463365078, 0.02316458709537983, 0.052021369338035583, -0.027537398040294647, 0.011789625510573387, -0.02638765051960945, 0.02593529038131237, -0.008043521083891392, -0.026349954307079315, 0.022184474393725395, 0.019677648320794106, -0.007299012504518032, -0.0019755398388952017, -0.0067524113692343235, 0.007209483068436384, -0.027857819572091103, -0.029799196869134903, 0.019866131246089935, -0.05492401123046875, 0.022109081968665123, 0.009395888075232506, -0.047573164105415344, -0.04365271329879761, -0.04640457034111023, 0.0176797267049551, -0.020054614171385765, -0.014437814243137836, -0.041353218257427216, -0.0032301312312483788, 0.0056921932846307755, -0.005220985040068626, 0.037753187119960785, 0.03909141942858696, 0.04263490438461304, -0.003281963989138603, 0.01797187514603138, -0.0037578842602670193, 0.01152574922889471, 0.008363942615687847, -0.01041369792073965, 0.0047733373939991, -0.028781387954950333, -0.005918372888118029, -0.05179518833756447, -0.001974361715838313, 0.02437088079750538, 0.0018412454519420862, 0.010262911207973957, -0.013420005328953266, -0.0054047564044594765, -0.003281963989138603, -0.014833629131317139, -0.022448351606726646, 0.010272335261106491, -0.027462005615234375, 0.0011032158508896828, -0.018961410969495773, 0.02889447659254074, 0.031156275421380997, 0.023654643446207047, 0.019470317289233208, -0.029158353805541992, 0.03730082884430885, 0.03253220394253731, -0.04674383997917175, 0.03837518393993378, 0.007115241605788469, -0.010696422308683395, -0.008114202879369259, 0.005357635673135519, 0.006323611829429865, -0.010903754271566868, 0.0134294293820858, 0.01005558017641306, 0.024031611159443855, 0.0346243679523468, 0.029101809486746788, -0.018829474225640297, -0.0032136389054358006, -0.028215937316417694, 0.036452654749155045, -0.017528939992189407, -0.007397966459393501, 0.010206365957856178, -0.006399005185812712, -0.057826653122901917, 0.06566755473613739, -0.011488052085042, 0.006102144252508879, -0.0013417649315670133, -0.005249257665127516, 0.025049420073628426, 0.06186019256711006, -0.009570235386490822, 0.013174977153539658, 0.0016421600012108684, -0.018292296677827835, 0.01171423215419054, -0.022486047819256783, -0.04851558059453964, -0.02842327021062374, 0.013665033504366875, 0.0153708066791296, -0.027537398040294647, -0.01945146732032299, -0.004905276000499725, -0.02231641300022602, 0.014249331317842007, 0.005833555478602648, -0.0237111896276474, -0.016332071274518967, 0.03151439502835274, 0.01889544352889061, -0.023767733946442604, -0.0468946248292923, 0.0001334107801085338, 0.024201245978474617, 0.06419738382101059, -0.06287800520658493, -0.008877559565007687, -0.015681803226470947, 0.0009471281664445996, -0.024992873892188072, 0.03113742731511593, -0.008948240429162979, 0.007402678485959768, -0.011648262850940228, -0.004952396731823683, -0.01963995210826397, 0.028932174667716026, 0.0033031683415174484, -0.03973226249217987, 0.03803591430187225, -0.009838824160397053, 0.007770220749080181, -0.015766620635986328, 0.03656574338674545, 0.025445234030485153, 0.0363018661737442, -0.007774932775646448, -0.007765508722513914, -0.03677307441830635, 0.0779566615819931, 0.058769065886735916, 0.03583066165447235, -0.04124012961983681, 0.03064737096428871, 0.014032575301826, -0.012487012892961502, -0.02749970182776451, 0.0043680984526872635, -0.02945992723107338, 0.01093202643096447, -0.010536211542785168, 0.007402678485959768, -0.01675615832209587, 0.04527366906404495, -0.006422565784305334, 0.013957181945443153, 0.02778242714703083, 0.019319530576467514, 0.033304985612630844, 0.013297490775585175, -0.009263950400054455, -3.8285652408376336e-05, -0.0014795932220295072, -0.03882754221558571, -0.032928019762039185, -0.007746660150587559, 0.05816592276096344, -0.011582293547689915, -0.029139505699276924, 0.048590973019599915, 0.02482323907315731, 0.04436894878745079, -0.03731967881321907, -0.01758548431098461, 0.0249174814671278, 0.03603799268603325, -0.017849361523985863, -0.03315419703722, 0.052737604826688766, 0.0022947832476347685, -0.008448760025203228, 0.00627177907153964, -0.002876725047826767, -0.0316840298473835, -0.03750815987586975, 0.00488642742857337, -0.03769664466381073, 0.007256603799760342, -0.0396568700671196, -0.002377244643867016, 0.02557717263698578, 0.03916681185364723, -0.019338378682732582, -0.0017599620623514056, -0.030345797538757324, -0.02723582461476326, -0.025520628318190575, -0.0027777713257819414, 0.017453545704483986, -0.06958800554275513, -0.009622068144381046, -0.008321533910930157, 0.006634609308093786, 0.02676461637020111, -0.008783318102359772, -0.015342533588409424, 0.0401846207678318, 0.012628375552594662, 0.023767733946442604, -0.027216976508498192, -0.015615834854543209, 0.010809512808918953, -0.01954570971429348, -0.016822127625346184, 0.006205809768289328, -0.02593529038131237, -0.04610299691557884, 0.01759490929543972, -0.013212673366069794, -0.004184327553957701, 0.0032796079758554697, 0.045801423490047455, 0.03779088705778122, -0.0326264463365078, -0.01223256066441536, -0.0024974027182906866, 0.05187058076262474, 0.02527559921145439, 0.030157314613461494, -0.020431580021977425, 0.02501172386109829, -0.01444723829627037, -0.020789699628949165, 0.03315419703722, 0.04278568923473358, -0.02314573898911476, -0.0037932246923446655, 0.03767779469490051, -0.01844308339059353, -0.00021027658658567816, 0.0329468660056591, 0.013636761344969273, 0.014927870593965054, 0.07750429958105087, -0.028385572135448456, -0.02195829525589943, -0.0009053084650076926, -0.09695576876401901, 8.241539035225287e-06, -0.038865238428115845, 0.01777396723628044, 0.003463379107415676, -0.02259913831949234, 0.010423121973872185, -0.04787473753094673, 0.05733659490942955, -0.018923714756965637, 0.02962956205010414, -0.007859750650823116, 1.8406564777251333e-05, 0.051455918699502945, -0.022486047819256783, 0.004961820784956217, 0.016991762444376945, 0.004914700053632259, 0.03456782177090645, -0.036358412355184555, 0.015078657306730747, -0.03471861034631729, -0.02657613344490528, -0.009334631264209747, 0.02593529038131237, -0.0008829261059872806, -0.03916681185364723, -0.020544670522212982, -0.024691302329301834, 0.0803692415356636, 0.01297706924378872, -0.010913178324699402, 0.021242057904601097, 0.037941671907901764, 0.04003383591771126, -0.0038450576830655336, 0.02046927809715271, -0.04402967914938927, 0.04727159067988396, -0.14166398346424103, 0.0023171654902398586, -0.0353594534099102, -0.052285246551036835, -0.03946838527917862, -4.851970516028814e-05, -0.052737604826688766, 0.007214195095002651, 0.03011961840093136, 0.005588527303189039, 0.0014878393849357963, 0.02018655277788639, 0.09394003450870514, -0.012958221137523651, -0.020695457234978676, 0.02919605001807213, 0.019526861608028412, -0.00339269801042974, 0.056356482207775116, 0.0343039445579052, -0.01721794158220291, 0.011195903643965721, -0.008830438368022442, -0.021468238905072212, -0.044218163937330246, -0.058957550674676895, -0.006497959140688181, -0.004648467525839806, -0.028479814529418945, 0.02527559921145439, 0.04565063491463661, 0.020506974309682846, 0.03511442244052887, 0.0385071225464344, -0.0014206923078745604, -0.031005488708615303, -0.0023560402914881706, -0.014890174381434917, 0.03490709140896797, 0.017528939992189407, 0.025520628318190575, 0.026519589126110077, 0.00805765762925148, -0.0038992466870695353, -0.009508978575468063, 0.028272483497858047, 0.01547447219491005, -0.02333422191441059, -0.005956069566309452, -0.012496436946094036, -0.0004011158598586917, 0.017095427960157394, 0.07098277658224106, 0.015040961094200611, -0.007011575624346733, -0.004745065234601498, -0.0007892734720371664, -0.015248292125761509, 0.002390202833339572, 0.020299643278121948, -0.08821014314889908, 0.021053574979305267, -0.0200923103839159, -0.044331252574920654, -0.015050385147333145, 0.03232487291097641, -0.033210743218660355, 0.013231522403657436, 0.028781387954950333, -0.018688110634684563, -0.02678346447646618, -0.01686924882233143, 0.005828843452036381, -0.02241065539419651, -0.01566295512020588, -0.011780201457440853, 0.013109007850289345, -0.039581477642059326, -0.0551878847181797, -0.0041536991484463215, -0.012929948978126049, -0.016247253865003586, -0.025313295423984528, 0.007666554767638445, -0.025332145392894745, 0.018452506512403488, -0.054886315017938614, -0.02406930737197399, 0.025539476424455643, -0.03289032354950905, -0.08511902391910553, -0.03567987307906151, 0.00025739739066921175, 0.014079696498811245, -0.030176162719726562, -0.024879785254597664, -0.03379504010081291, -0.04568833112716675, -0.022278716787695885, -0.003922807052731514, -0.014616874046623707, -0.006535655818879604, 8.849876030581072e-05, -0.029045263305306435, -0.031910207122564316, 0.03658459335565567, 0.028272483497858047, 0.004862866830080748, 0.02482323907315731, 0.0012651935685425997, -0.04131552204489708, 0.0217698123306036, 0.01918759196996689, -0.05092816427350044, -0.027820123359560966, 0.027744729071855545, -0.006036174949258566, -0.0008905832073651254, -0.03415315970778465, 0.023692341521382332, -0.015229444019496441, 0.04761086031794548, -0.0527753010392189, -0.03890293464064598, -0.010809512808918953, -0.02815939299762249, 0.05884446203708649, 0.009942489676177502, 0.010809512808918953, 0.04957108572125435, 0.009490130469202995, -0.010686998255550861, -0.03475630655884743, 0.057298898696899414, -0.004476476460695267, -0.021072423085570335, -0.054320864379405975, 0.07105817645788193, 0.0005451288307085633, -0.02323998138308525, 0.003574113128706813, 0.00911787524819374, -0.0002631402458064258, 0.012798010371625423, 0.00495710875838995, 0.03752700984477997, -0.03632071614265442, -0.012807434424757957, -0.07399851083755493, -0.009221541695296764, 0.013118431903421879, -0.00977285485714674, -0.022184474393725395, 0.00317123020067811, -0.04621608555316925, -0.0019767177291214466, 0.00017979531548917294, -0.0468946248292923, -0.006521519273519516, 0.011554021388292313, -0.005819419398903847, -0.009933065623044968, -0.003053428139537573, 0.03275838494300842, -0.017067154869437218, 0.03215523809194565, 0.021242057904601097, 0.003993488382548094, 0.015267141163349152, 0.009527826681733131, 0.012948797084391117, 0.023843126371502876, -0.022900711745023727, 0.013005342334508896, 0.009754006750881672, -0.07158592343330383, 0.03130706399679184, 0.009706885553896427, 0.014965567737817764, -0.019866131246089935, 0.033851586282253265, 0.0217698123306036, 0.017265062779188156, -0.008510017767548561, 0.03466206416487694, 0.010017883032560349, 0.04184327274560928, -0.013052462600171566, -0.004038252867758274, -0.023541554808616638, -0.008877559565007687, 0.00954196322709322, -0.012487012892961502, 0.0004985969862900674, 0.024955177679657936, -0.053680021315813065, 0.015238868072628975, 0.02092163637280464, 0.003951079677790403, 0.02797091007232666, -0.040448497980833054, 0.012204288505017757, -0.001767030218616128, 0.024974025785923004, -0.03961917385458946, -0.05013653635978699, 0.0020085242576897144, 0.03057197853922844, -0.07241525501012802, 0.04723389446735382, -0.02714158408343792, -0.009697461500763893, -0.01879177615046501, 0.023786582052707672, -0.001723443390801549, -0.03860136494040489, 0.0134294293820858, 9.571413102094084e-05, -0.05002344772219658, 0.02122320979833603, -0.058128226548433304, 0.050061143934726715, -0.03954377770423889, -0.03488824516534805, 0.03270183876156807, -0.02046927809715271, -0.015361382625997066, 0.024201245978474617, -0.017274487763643265, -0.061445530503988266, -0.003689558943733573, -0.07577025145292282, -0.010818936862051487, 0.04444434121251106, -0.034794002771377563, -0.05262451618909836, -0.011723656207323074, -0.006912622135132551, -0.003995844163000584, -0.021430542692542076, 0.06789165735244751, 0.029120657593011856, -0.053303055465221405, 0.022976104170084], '组成编码': '02010001', '是否为关重件': '香', '是否为寿命件': '是', '备注': '易损件,需定期更换'}}, {'type': '设备', 'name': '声呐基阵', 'properties': {'名称': '声呐基阵', '型号': '', '技术责任单位': '', '生产单位': '', '技术状态': '', '生产日期': '', '启用时间': '', '运行时间': '', '运行条件': '', '切片': '
房号组成编码名称型号/零件号重量(kg)数量
10101基阵阵元组件PA-EA-ASSY0110232
20102基阵骨架PA-FR-016501
301010001压电陶瓷换能器PZT-50C1.2256
401010002橡胶透声护罩PA-CV-010.832
501020001钛合金主框架TA6V-FRAME5801
图名:声呐基阵系统图解目录
图号:02
', 'embedding': [0.05632423609495163, 0.01316574402153492, -0.04031084477901459, 5.1789844292216e-05, 0.013276691548526287, -0.009028335101902485, -0.006448810920119286, 0.013480095192790031, 0.003467102535068989, 0.014034830965101719, 0.011353605426847935, 0.004356992430984974, -0.0022813535761088133, 0.01487618125975132, 0.0020005181431770325, -0.042012035846710205, 0.016531145200133324, -0.0005576256662607193, 0.024815209209918976, -0.01431219931691885, 0.0011996175162494183, 0.006166819948703051, -0.02540692687034607, -0.0023761210031807423, 0.015246005728840828, 0.009023712016642094, 0.0026534891221672297, 0.01034583430737257, -0.010595465078949928, 0.02085808850824833, -0.033635519444942474, 0.025554858148097992, 0.05443813279271126, -0.020136931911110878, -0.06098402291536331, -0.024981629103422165, -0.05846921727061272, -0.008787949569523335, -0.057433709502220154, 0.002177340444177389, -0.0366680771112442, 0.028494959697127342, 0.03130562603473663, -0.04637596383690834, 0.0022952219005674124, -0.03232264146208763, 0.01000374648720026, -0.036852989345788956, -0.008080660365521908, 0.0011880605015903711, -0.03766660392284393, -0.03757414594292641, -0.01409030519425869, 0.008968238718807697, -0.05780353397130966, 0.013027059845626354, -0.026627346873283386, -0.015403181314468384, -0.05125764384865761, 0.002965528517961502, -0.033432114869356155, 0.06449735164642334, -0.03051050193607807, 0.010817360132932663, 0.04951947182416916, 0.03515179827809334, 0.017529670149087906, 0.058876026421785355, -0.028994223102927208, -0.04589519277215004, -0.014903917908668518, -0.017844021320343018, -0.01089132484048605, 0.011076237075030804, -0.0357065349817276, 0.035854462534189224, 0.00024327503342647105, -0.05011118948459625, -0.008866537362337112, -0.0064534335397183895, 0.03916439041495323, 0.008991352282464504, -0.02516654133796692, 0.01630925014615059, -0.07662758976221085, 0.020636195316910744, 0.016799267381429672, 0.028790820389986038, -0.06875032931566238, -0.023687245324254036, 0.010752640664577484, 0.012990077957510948, 0.0040079704485833645, -0.0298263281583786, -0.023280438035726547, 0.02137584239244461, 0.017122864723205566, 0.011584745720028877, 0.011973060667514801, 0.03539218381047249, -0.0057045393623411655, -0.002327581634745002, 5.1789844292216e-05, -0.0067169335670769215, 0.01904595084488392, 0.028809310868382454, -0.004867812152951956, -0.005699916742742062, -0.016947196796536446, 0.00035624479642137885, 0.012657235376536846, 0.06442338973283768, -0.02733001299202442, 0.010355079546570778, -0.013933129608631134, -0.052921853959560394, -0.024057069793343544, -0.041198424994945526, 0.000815346953459084, -0.003903957549482584, 0.01689172349870205, -0.018528196960687637, 0.062426336109638214, -0.008150002919137478, 0.026423944160342216, -0.025832226499915123, 0.01932331919670105, 0.029049696400761604, -0.0066244774498045444, 0.02801418863236904, -0.008140756748616695, 0.10318097472190857, 0.0008540629060007632, 0.016558881849050522, -0.012768182903528214, -0.014173515141010284, 0.0057045393623411655, 0.02021089754998684, -0.019175387918949127, -0.035040851682424545, 0.040680669248104095, 0.08039979636669159, 0.06875032931566238, -0.008367273956537247, 0.012028534896671772, -0.027644364163279533, 0.0018421871354803443, -0.014487866312265396, -0.014589567668735981, 0.0014457817887887359, 0.015403181314468384, -0.005833977833390236, -0.028494959697127342, 0.034597061574459076, -0.026202049106359482, 0.04863189160823822, -0.010160922072827816, 0.07111720740795135, -0.03095429204404354, 0.05754465609788895, 0.0020698602311313152, 0.028531942516565323, 0.021967561915516853, 0.010401307605206966, -0.008237835951149464, 0.011658710427582264, 0.03785151615738869, 0.025813734158873558, -0.022448332980275154, -0.008561432361602783, -0.0025564103852957487, 0.01826007291674614, 0.004927908536046743, 0.0077616870403289795, 0.03502235934138298, -0.006042004097253084, 0.017807038500905037, 0.014829953201115131, 0.024648787453770638, -0.0068278806284070015, 0.005824732128530741, 0.004504921846091747, -0.0016561193624511361, -0.008626150898635387, -0.022485315799713135, 0.012481569312512875, 0.016568128019571304, 0.003580361371859908, 0.02202303521335125, 0.041124459356069565, -0.029216118156909943, 0.012481569312512875, -0.004858566448092461, -0.018555933609604836, 0.01554186549037695, 0.01010544877499342, -0.0057969954796135426, -0.03748169168829918, 0.007886502891778946, 0.011307377368211746, 0.022559281438589096, 0.0003894711844623089, 0.0034324314910918474, -0.030455028638243675, -0.05817335844039917, -0.00227441918104887, -0.06923110783100128, 0.022281913086771965, 0.00976336095482111, 0.007364125922322273, 0.011769657954573631, 0.033598534762859344, 0.07588794082403183, -0.025295980274677277, -0.03265548497438431, 0.04367624595761299, 0.00502036465331912, -0.07207874953746796, -0.005394811742007732, -0.06327693164348602, -0.006416451185941696, 0.03968214616179466, 0.008829554542899132, -0.0037514050491154194, 0.04264073818922043, -0.04855792596936226, 0.04689371958374977, 0.02954895980656147, -0.01703040860593319, -0.03152751922607422, -0.02161622978746891, -0.03204527497291565, -0.003568804357200861, -0.0371488481760025, 0.04770733043551445, 0.03872060030698776, -0.05902395397424698, 0.06741896271705627, 0.04574726149439812, 0.009865062311291695, -0.0322856605052948, 0.02995576709508896, 0.007784801069647074, -0.011288885958492756, 0.013027059845626354, -0.012241183780133724, 0.0016491850838065147, 0.015578847378492355, -0.02069166861474514, 0.002833778504282236, 0.00885729119181633, -0.014044077135622501, -0.020580720156431198, 0.009966764599084854, 0.04190108925104141, -0.003767584916204214, -0.010114694014191628, -0.008834177628159523, 0.06993377208709717, 0.0005131312063895166, 0.03346909582614899, 0.014302954077720642, 0.02455633133649826, 0.03306229040026665, 0.03831379488110542, -0.03827681392431259, -0.011852867901325226, -0.01709512621164322, -0.04031084477901459, 0.010447535663843155, 0.02930857427418232, 0.005852469243109226, -0.028310047462582588, 0.0518493615090847, -0.028088154271245003, 0.025388436391949654, 0.04914964735507965, -0.05588044971227646, 0.02636847086250782, 0.0062638986855745316, 0.0010066154645755887, -0.014478620141744614, 0.0048446981236338615, 0.03051050193607807, -0.012185709550976753, -0.018555933609604836, 0.006115968804806471, 0.007317897863686085, -0.011140956543385983, -0.03938628360629082, -0.018084406852722168, 0.008237835951149464, 0.02326194755733013, -0.009485992603003979, -0.01631849631667137, -0.04349133372306824, -0.035688042640686035, -0.1431959569454193, -0.003802255727350712, -0.038794565945863724, 0.025998646393418312, 0.004779978655278683, -0.004904794506728649, -0.001003726152703166, -0.023095525801181793, -0.02708962745964527, 0.01700267195701599, 0.01791798695921898, -0.050739891827106476, -0.010993026196956635, -0.0014007093850523233, -0.022929105907678604, -0.006351731717586517, -0.007512055803090334, -0.04179014265537262, -3.3099993743235245e-05, -0.00862152874469757, 0.011834376491606236, -0.04833603277802467, 0.02093205414712429, 0.009495237842202187, -0.01813063584268093, -0.06397959589958191, 0.018768582493066788, -0.03711186721920967, -0.007516678422689438, -0.02363177202641964, -0.0386466383934021, -0.028236083686351776, 0.00195313454605639, 0.01720607466995716, 0.010151675902307034, 0.013239708729088306, -0.0035664928145706654, 0.00756752910092473, -0.02886478416621685, 0.017085881903767586, 0.008307177573442459, 0.03688997030258179, -0.02927159145474434, -0.00601889006793499, -0.013886901549994946, -0.04016291722655296, 0.0075721521861851215, 0.0025887698866426945, -0.06727103888988495, 0.01853744126856327, 0.004747618921101093, -0.031028255820274353, -0.00798820424824953, 0.0010464871302247047, -0.02213398367166519, 0.0008864225819706917, -0.03139808028936386, -0.022633245214819908, -0.007114494685083628, -0.02326194755733013, -0.014469374902546406, -0.026923207566142082, 0.02117243967950344, -0.06556984037160873, -0.02697868086397648, -0.0008355717291124165, 0.00824245810508728, 0.03487442806363106, 0.03507783263921738, -0.022966086864471436, -0.007216196041554213, -0.017085881903767586, -0.03716734051704407, -0.02387215755879879, -0.018084406852722168, 0.028920257464051247, -0.04397210478782654, -0.05639820173382759, -0.012176464311778545, -0.091938316822052, 0.009800342842936516, -0.014682023786008358, 0.034560076892375946, -0.007142231334000826, -0.03160148486495018, 0.02616506814956665, 0.004202128387987614, -0.0352257639169693, 0.008995975367724895, 0.2181963175535202, -0.014561831019818783, 0.033764954656362534, -0.0494455061852932, 0.06357279419898987, -0.030103696510195732, 0.009939027018845081, -0.05269996076822281, 0.007895748130977154, -0.02725604921579361, -0.018491214141249657, 0.03603937476873398, -0.011159447953104973, -0.00761838024482131, -0.03173092380166054, 0.09933479875326157, -0.032951343804597855, -0.03095429204404354, 0.06830654293298721, 0.03176790475845337, 0.007193082012236118, 0.043824177235364914, 0.01294384989887476, -0.011917587369680405, -0.05602837726473808, -0.018528196960687637, 0.00039004904101602733, 0.03626127168536186, 0.004442513920366764, -0.00057496118824929, 0.018759336322546005, 0.02951197698712349, -0.0032290283124893904, -0.03713035583496094, -0.03248906135559082, 0.03696393594145775, 0.04763336479663849, 0.023280438035726547, -0.05695293843746185, 0.024889172986149788, -0.019674651324748993, -0.01089132484048605, -0.024020086973905563, 0.0006731957546435297, -0.019415775313973427, -0.03805491700768471, 0.018620653077960014, -0.06198254972696304, -0.006846372038125992, -0.04241884499788284, -0.00938891340047121, -0.010660184547305107, 0.005265373270958662, 0.030251625925302505, -0.0366680771112442, -0.018065916374325752, -0.038350775837898254, 0.0005021520191803575, 0.029438013210892677, -0.0009528753580525517, 0.022152474150061607, 0.018592914566397667, -0.10636146366596222, 0.014450883492827415, 0.011122465133666992, -0.026276014745235443, -0.03293285146355629, -0.010012992657721043, 0.0322856605052948, 0.002140358090400696, 0.05972662195563316, -0.000513997976668179, 0.0011470330646261573, 0.004366237670183182, -0.0040426417253911495, 0.03598390147089958, -0.03019615262746811, 0.07618380337953568, -0.0056120832450687885, -0.006028135772794485, 0.008015940897166729, -0.01398860290646553, -0.03509632498025894, 0.01169569231569767, 0.029253100976347923, 0.01860216073691845, 0.012971586547791958, 0.019193880259990692, -0.00833029206842184, 0.02222643978893757, -0.013350656256079674, -0.015107321552932262, -0.031416572630405426, 0.049778345972299576, -0.023761209100484848, 0.030528994277119637, -0.013341411016881466, 0.011741920374333858, -0.03139808028936386, 0.0322301872074604, 0.028513452038168907, -0.014968637377023697, 0.02037731744349003, 0.02137584239244461, -0.014885427430272102, 0.040643688291311264, 0.06571777164936066, -0.026017136871814728, -0.022355876863002777, -0.025998646393418312, 0.007706213276833296, 0.021264895796775818, -0.03023313358426094, -0.050628941506147385, -0.018186109140515327, 0.026109592989087105, -0.014728251844644547, -0.005949547979980707, 0.007868011482059956, 0.032267168164253235, -0.024297455325722694, -0.007775555364787579, 0.0022085444070398808, 0.020136931911110878, 0.005186785478144884, 0.0023853664752095938, -0.07803292572498322, 0.016540391370654106, 0.009800342842936516, 0.05643518269062042, 0.03306229040026665, -0.016734547913074493, 0.010466027073562145, 0.012472324073314667, -0.004881680477410555, -0.01004072930663824, 0.056657079607248306, 0.011991552077233791, -0.028328539803624153, -0.02790324203670025, 0.07625776529312134, -0.01513505820184946, -0.013738972134888172, 0.011085482314229012, -0.014118041843175888, -0.06815861165523529, 0.0071977050974965096, -0.07414976507425308, 0.005473399069160223, 0.002542541828006506, -0.017862511798739433, -0.04134635254740715, -0.03260001167654991, -0.06035532057285309, 0.030122186988592148, 0.045303475111722946, -0.0252035241574049, 0.0009407405159436166, -0.023317420855164528, -0.015403181314468384, -0.003839238313958049, 0.016429442912340164, 0.007803292013704777, 0.015745269134640694, -0.011538517661392689, 0.023058542981743813, -0.0469307005405426, 0.04959343373775482, -0.004181325901299715, -0.009976009838283062, 0.008399633690714836, -0.008200853131711483, -0.036335233598947525, 0.10125788301229477, -0.01767759956419468, 0.01815837249159813, -0.03350608050823212, 0.015819232910871506, -0.03605786710977554, 0.038868531584739685, 0.026460926979780197, 0.026109592989087105, 0.0008754433947615325, -0.05491890385746956, -0.015523374080657959, 0.02516654133796692, -0.009939027018845081, -0.014728251844644547, 0.02596166357398033, -0.011723429895937443, -0.037777550518512726, 0.07407580316066742, -0.0322856605052948, -0.007844896987080574, 0.01668832078576088, -0.031582992523908615, -0.01171418372541666, 0.024020086973905563, -0.02636847086250782, -0.015754513442516327, 0.027866259217262268, 0.00017046587890945375, -0.006707687862217426, -0.011353605426847935, -0.03415327146649361, -0.02845797874033451, 0.004583509638905525, 0.007257801480591297, -0.012010043486952782, -0.013535568490624428, -0.019064441323280334, -0.00045794647303409874, -0.00745658203959465, -0.007858766242861748, 0.0020548361353576183, 0.034800462424755096, 0.030251625925302505, 0.027440961450338364, -0.014885427430272102, -0.015708286315202713, 0.019896546378731728, 0.023040052503347397, 0.03389439359307289, -0.032673973590135574, 0.010660184547305107, -0.028772328048944473, 0.015957918018102646, -0.05325469374656677, 0.06190858408808708, -0.018971985206007957, 0.007581397425383329, -0.019175387918949127, 0.004400908946990967, -0.053809430450201035, 0.027034154161810875, -0.0017462640535086393, -0.02801418863236904, 0.02209700085222721, 0.015597338788211346, 0.009365799836814404, 0.005505758803337812, 0.020562229678034782, 0.016605110839009285, 0.011704938486218452, -0.03757414594292641, 0.04075463488698006, -0.003333041211590171, 0.043787192553281784, 0.04127239063382149, -0.02411254309117794, -0.02572127804160118, -0.011094728484749794, -0.01572677679359913, -0.040199898183345795, -0.0002051369083346799, -0.004292272962629795, -0.04031084477901459, -0.025351453572511673, -0.0528109073638916, -0.0469307005405426, 0.027958715334534645, 0.03356155380606651, -0.007521301042288542, 0.0061760651879012585, 0.005921811331063509, -0.02749643474817276, 0.03611334040760994, 0.03775905817747116, -0.03350608050823212, -0.03443064168095589, -0.0006304348353296518, -0.021227912977337837, -0.06616156548261642, -0.0015047225169837475, 0.05403132736682892, -0.0033654009457677603, -0.04278866946697235, 0.030658433213829994, -0.012148727662861347, 0.04670880734920502, -0.04234487935900688, 0.02157924696803093, -0.004544215742498636, 0.04829905182123184, -0.0068278806284070015, 0.035928428173065186, 0.02838401310145855, 0.00019502452050801367, -0.015264497138559818, -0.042012035846710205, 0.05037006735801697, -0.02414952591061592, -0.032433588057756424, 0.02427896298468113, -0.014709760434925556, 0.052034273743629456, -0.01151078101247549, 0.0065320213325321674, 0.015282988548278809, 0.04082860052585602, -0.01969314180314541, 0.030140679329633713, -0.04241884499788284, -0.021264895796775818, -0.04038481041789055, -0.015985654667019844, 0.01789024844765663, 0.02174566686153412, 0.007530546747148037, 0.011372096836566925, -0.006994301453232765, 0.02938253805041313, 0.00798820424824953, -0.06878731399774551, 0.018888775259256363, 0.0178532674908638, 0.006629100069403648, -0.0029008090496063232, -0.00674467021599412, 0.005870960187166929, -0.02794022485613823, -0.012786674313247204, -0.015754513442516327, -0.019896546378731728, 0.029641415923833847, 0.014376918785274029, -0.055695537477731705, 0.02230040356516838, -0.012694218195974827, -0.019064441323280334, 0.0011331647401675582, 0.024260472506284714, -0.003374646417796612, -0.012093253433704376, 0.06978584080934525, 0.03248906135559082, -0.00676316162571311, 0.016734547913074493, 0.017760811373591423, 0.07721930742263794, 0.003980233799666166, 0.017187582328915596, 0.02890176698565483, -0.029493486508727074, -0.006374845746904612, 0.0023784323129802942, -0.01493165548890829, -0.01316574402153492, 0.016161320731043816, -0.011677201837301254, 0.00759988883510232, 0.035170286893844604, -0.02745945192873478, -0.028957240283489227, 0.01340612955391407, -0.004675965756177902, 0.02359478920698166, 0.018546687439084053, 0.01960068568587303, -0.007285538129508495, -0.029012713581323624, 0.02427896298468113, 0.002780616283416748, 0.006980433128774166, -0.011769657954573631, 0.0002753457229118794, 0.0017104372382164001, 0.026997171342372894, 0.017622126266360283, -0.02137584239244461, -0.04907568171620369, -0.025573348626494408, -0.004500299226492643, -0.003464791225269437, -0.0024431515485048294, 0.026516400277614594, 0.013905392959713936, -0.004206751007586718, -0.025055594742298126, -0.005810863804072142, -0.015403181314468384, -0.03823982924222946, 0.014173515141010284, 0.018223091959953308, 0.02157924696803093, -0.029770854860544205, -0.031656958162784576, -0.04053274169564247, 0.0811394453048706, 0.056546133011579514, -0.03557709604501724, 0.00516367144882679, -0.0004983959952369332, 0.008385765366256237, -0.11531120538711548, 0.032747939229011536, -0.02492615580558777, -0.01545865461230278, -0.024445384740829468, 0.0023738094605505466, -0.019138406962156296, 0.0036381462123245, -0.013849918730556965, -0.042122986167669296, -0.03515179827809334, 0.05846921727061272, 0.017881004139780998, -0.028236083686351776, -0.05961567163467407, 0.011566254310309887, -0.011196429841220379, -0.02609110251069069, 0.03332116827368736, 0.025092577561736107, -0.04315849393606186, -0.019434265792369843, 0.07022962719202042, 0.015856215730309486, 0.025185033679008484, -0.0030834099743515253, -0.012324393726885319, 0.022041527554392815, -0.03075088933110237, 0.010623202659189701, 0.0002152492816094309, -0.04256677255034447, 0.049371540546417236, 0.030103696510195732, 0.01863914355635643, -0.047929227352142334, -0.008783326484262943, -0.022614754736423492, 0.04778129607439041, 0.0222634207457304, 0.05876507610082626, 0.02435292862355709, 0.0011551229981705546, 0.01832479238510132, 0.013692744076251984, 0.008861914277076721, -0.020099949091672897, -0.006961942184716463, -0.003908580169081688, -0.0035063964314758778, 0.04940852150321007, 0.011464552953839302, -0.015098076313734055, -0.014728251844644547, -0.003034870373085141, -0.017585143446922302, -0.06904619187116623, 0.042455825954675674, -0.0015289922012016177, 0.01829705573618412, -0.039756108075380325, 0.04759638383984566, 0.011899095959961414, -0.07026661187410355, -0.01706738956272602, 0.03596540912985802, -0.05584346503019333, 0.03764811158180237, 0.012333639897406101, 0.060762129724025726, -0.012657235376536846, 0.03579898923635483, 0.012213447131216526, -0.06042928621172905, -0.011298131197690964, 0.03433818370103836, -0.012093253433704376, 0.06741896271705627, -0.028846293687820435, -0.021875105798244476, 0.003289124695584178, -0.0012631810968741775, -0.0111317103728652, -0.034726500511169434, 0.00674467021599412, 0.00020109195611439645, -0.013027059845626354, 0.014866936020553112, -0.03313625603914261, 0.042529791593551636, 0.005981907714158297, -0.014145778492093086, 0.016336986795067787, 0.0017693779664114118, -0.025351453572511673, -0.004222930874675512, -0.03128713369369507, -0.04412003606557846, -0.016290759667754173, -0.04811413958668709, 0.028994223102927208, -0.01801968738436699, 0.021394334733486176, 0.02657187357544899, -0.010595465078949928, -0.025813734158873558, 0.02551787532866001, -0.007525924127548933, 0.016263023018836975, 0.01465428713709116, -0.014765233732759953, -0.0028915635775774717, 0.021505281329154968, -0.02540692687034607, -0.01839875802397728, 0.018417248502373695, 0.022892123088240623, -0.04334340617060661, -0.010724904015660286, -0.021394334733486176, 0.008561432361602783, 0.020876580849289894, -0.0034624796826392412, -0.016706811264157295, 0.011936078779399395, -0.02302156202495098, -0.00883879978209734, -0.02339138463139534, 0.0128421476110816, 0.03897947818040848, 0.01887952908873558, -0.02294759638607502, -0.03905344381928444, 0.038905512541532516, 0.026738295331597328, -0.05784051492810249, -0.04275168478488922, 0.04907568171620369, -0.005135934799909592, -0.05369848385453224, -0.010808114893734455, 0.01316574402153492, -0.027237558737397194, -0.0015070339431986213, -0.0063424864783883095, -0.0030048221815377474, 0.00518216285854578, -0.019952019676566124, -0.0056120832450687885, 0.027607381343841553, 0.059689637273550034, 0.01294384989887476, 0.01853744126856327, -0.024870682507753372, 0.02459331415593624, -0.010835851542651653, -0.03139808028936386, -0.06919412314891815, -0.04075463488698006, -0.009902045130729675, -0.013027059845626354, -0.009939027018845081, -0.0037906987126916647, -0.029197625815868378, 0.004731439519673586, 0.015680549666285515, 0.034763481467962265, -0.01139058731496334, 0.008177739568054676, 0.004615869373083115, 0.022522298619151115, 0.008815686218440533, -0.0046020010486245155, 0.015643566846847534, 0.04186410829424858, -0.035484638065099716, 0.01590244472026825, -0.0328219048678875, 0.10732300579547882, 0.010863588191568851, 0.024870682507753372, -0.0060651181265711784, 0.041050493717193604, 0.038424741476774216, -0.012157972902059555, 0.08143530786037445, 0.024630296975374222, 0.051664452999830246, 0.0015012554358690977, -0.0033908262848854065, 0.010160922072827816, -0.030251625925302505, 0.025351453572511673, -0.043824177235364914, 0.04785526171326637, 0.025258997455239296, 0.016614355146884918, -0.0003472881217021495, -0.08239684998989105, 0.05447511747479439, -0.0807696208357811, -0.0268862247467041, -0.024426894262433052, -0.044711753726005554, -0.0007101781666278839, 0.018722353503108025, 0.01747419685125351, -0.028568925336003304, -0.007179213687777519, -0.021024510264396667, -0.01685474067926407, 0.00798820424824953, -0.03252604603767395, 0.017594389617443085, -0.038017936050891876, -0.020136931911110878, 0.021283386275172234, -0.06194556504487991, -0.006416451185941696, 0.04445287957787514, -0.032433588057756424, 0.015162794850766659, 0.0010331965750083327, -0.017640618607401848, 0.03187885135412216, -0.038017936050891876, -0.013942374847829342, 0.014709760434925556, 0.029807835817337036, -0.06261125206947327, -0.006152951158583164, 0.0017624438041821122, -0.0024523972533643246, 0.029179135337471962, 0.034079305827617645, -0.04423098266124725, 0.01627226732671261, 0.014127287082374096, -0.007068266626447439, -0.0063609774224460125, 0.11072538793087006, 0.014829953201115131, 0.025776751339435577, 0.0337834469974041]}}] + +# Data = "/app/files" + +# filename = "5e1a1c5f-3763-4715-ac53-1b1d80956a89_122-06A0014-B01005_声呐-图解目录-副本_20260105170539.pdf" + +# get_resource(all_entity_records=all_entity,DATA_DIR=Data,file_name=filename,content_middle=content_middle) + diff --git a/graph_search/1 b/graph_search/1 new file mode 100644 index 0000000..d56b836 --- /dev/null +++ b/graph_search/1 @@ -0,0 +1,315 @@ +""" +=========================================== +路由标签识别模块 - RouteLabel +=========================================== +功能:使用LLM识别用户查询中涉及的节点类型和实体 + 作为后续Neo4j查询的入口节点 +=========================================== +""" + +import json +import logging +import os +import time +import asyncio +from typing import List, Dict, Any, Optional, Tuple +from pydantic import BaseModel, Field +from graph_search.init_prompts import get_extract_entities_prompt, get_rewrite_query_prompt + +logger = logging.getLogger(__name__) +#logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) # 不依赖继承链 + + +class RouteItem(BaseModel): + """路由项:节点类型和实体""" + label: str = Field(..., description="节点类型,比如'Drug'、'Disease'") + entity: str = Field(..., description="实体文本") + + +class RouteOutput(BaseModel): + """路由输出:包含多个路由项""" + outputs: List[RouteItem] + + +class RouteLabel: + """ + 路由标签识别类 + + 功能:使用LLM识别用户查询中涉及的节点类型和实体 + """ + + def __init__(self, llm_api, optional_labels: list[str], schema: str = None): + """ + 初始化路由识别器 + + Args: + llm_api: LLM API实例(OpenaiAPI) + optional_labels: 可选节点标签列表 + schema: Neo4j图谱schema信息(可选,用于帮助模型识别节点类型) + """ + self.llm_api = llm_api + self.optional_labels = optional_labels + self.schema = schema + + async def _extract_entities(self, query: str) -> List[Dict[str, str]]: + """ + 任务1:抽取主语实体 + + Args: + query: 用户查询 + + Returns: + List[Dict]: 路由结果列表,格式如 [{"label": "Drug", "entity": "xxx"}] + """ + # 使用 init_prompts 中的 prompt 生成函数 + prompt = get_extract_entities_prompt( + query=query, + optional_labels=self.optional_labels, + schema=self.schema + ) + + try: + llm_start = time.time() + model = os.getenv("OPENAI_MODEL") + response = await self.llm_api.open_api_chat_async_json(prompt, model, temperature=0) + llm_elapsed = (time.time() - llm_start) * 1000 + + # 解析JSON响应 + parse_start = time.time() + content = response.strip() + + # 如果包含markdown代码块,提取JSON + if "```json" in content: + json_start = content.find("```json") + 7 + json_end = content.find("```", json_start) + if json_end > json_start: + content = content[json_start:json_end].strip() + elif "```" in content: + json_start = content.find("```") + 3 + json_end = content.find("```", json_start) + if json_end > json_start: + content = content[json_start:json_end].strip() + + # 尝试找到JSON数组或对象的开始和结束位置 + if not content.startswith('[') and not content.startswith('{'): + for start_char in ['[', '{']: + start_idx = content.find(start_char) + if start_idx != -1: + content = content[start_idx:] + break + + # 解析JSON + try: + outputs_data = json.loads(content) + except json.JSONDecodeError as e: + logger.warning(f"任务1 JSON解析失败,尝试修复: {e}") + if content.rfind(']') > content.rfind('}'): + end_idx = content.rfind(']') + 1 + content = content[:end_idx] + elif content.rfind('}') > -1: + end_idx = content.rfind('}') + 1 + content = content[:end_idx] + try: + outputs_data = json.loads(content) + except json.JSONDecodeError: + logger.error(f"任务1 JSON解析最终失败,原始内容: {content[:200]}...") + return [] + + # 提取entities + if isinstance(outputs_data, dict) and "entities" in outputs_data: + route_results = [ + {"label": item.get("label", ""), "entity": item.get("entity", "")} + for item in outputs_data["entities"] + ] + elif isinstance(outputs_data, list): + # 兼容旧格式:直接是列表 + route_results = [ + {"label": item.get("label", ""), "entity": item.get("entity", "")} + for item in outputs_data + ] + elif isinstance(outputs_data, dict) and "outputs" in outputs_data: + # 兼容旧格式:包含 outputs 字段 + route_results = [ + {"label": item.get("label", ""), "entity": item.get("entity", "")} + for item in outputs_data["outputs"] + ] + else: + route_results = [] + + return route_results + + except Exception as e: + logger.error(f"任务1(实体抽取)失败: {e}") + return [] + + async def _rewrite_query(self, query: str) -> Dict[str, Any]: + """ + 任务2:重写用户问题并进行分类 + + Args: + query: 用户查询 + + Returns: + Dict: 包含重写后的查询和分类信息 + - rewritten_query: 重写后的查询字符串 + - query_classification: 分类信息字典 + - query_type: "aggregate"(统计类)或 "detail"(明细类) + - has_time: 是否包含时间信息(bool) + - time_type: 时间统计类型("single"/"dual"/"multi"/None) + """ + # 使用 init_prompts 中的 prompt 生成函数 + prompt = get_rewrite_query_prompt( + query=query, + schema=self.schema + ) + + + try: + llm_start = time.time() + model = os.getenv("OPENAI_MODEL") + response = await self.llm_api.open_api_chat_async_json(prompt, model, temperature=0) + + # 解析JSON响应 + content = response.strip() + + # 如果包含markdown代码块,提取JSON + if "```json" in content: + json_start = content.find("```json") + 7 + json_end = content.find("```", json_start) + if json_end > json_start: + content = content[json_start:json_end].strip() + elif "```" in content: + json_start = content.find("```") + 3 + json_end = content.find("```", json_start) + if json_end > json_start: + content = content[json_start:json_end].strip() + + # 尝试找到JSON数组或对象的开始和结束位置 + if not content.startswith('[') and not content.startswith('{'): + for start_char in ['[', '{']: + start_idx = content.find(start_char) + if start_idx != -1: + content = content[start_idx:] + break + + # 解析JSON + try: + outputs_data = json.loads(content) + except json.JSONDecodeError as e: + logger.warning(f"任务2 JSON解析失败,尝试修复: {e}") + if content.rfind(']') > content.rfind('}'): + end_idx = content.rfind(']') + 1 + content = content[:end_idx] + elif content.rfind('}') > -1: + end_idx = content.rfind('}') + 1 + content = content[:end_idx] + try: + outputs_data = json.loads(content) + except json.JSONDecodeError: + logger.error(f"任务2 JSON解析最终失败,原始内容: {content[:200]}...") + return query + + # 提取rewritten_query和分类信息 + if isinstance(outputs_data, dict) and "rewritten_query" in outputs_data: + rewritten_query = outputs_data.get("rewritten_query", query) + # 提取分类信息 + query_classification = outputs_data.get("query_classification", {}) + if not isinstance(query_classification, dict): + query_classification = {} + + # 确保分类信息格式正确 + result = { + "rewritten_query": rewritten_query, + "query_classification": { + "query_type": query_classification.get("query_type", "detail"), + "has_time": query_classification.get("has_time", False), + "time_type": query_classification.get("time_type") + } + } + else: + # 如果解析失败,返回默认值 + result = { + "rewritten_query": query, + "query_classification": { + "query_type": "detail", + "has_time": False, + "time_type": None + } + } + + return result + + except Exception as e: + logger.error(f"任务2(查询重写)失败: {e}") + # 返回默认值 + return { + "rewritten_query": query, + "query_classification": { + "query_type": "detail", + "has_time": False, + "time_type": None + } + } + + async def route(self, query: str) -> Tuple[List[Dict[str, str]], str, Dict[str, Any]]: + """ + 路由标签识别:识别标签,抽取实体 + + 功能:使用LLM识别用户查询中涉及的节点类型和实体。 + 将两个任务(实体抽取和查询重写)拆分为独立的异步调用,并行执行以提高效率。 + + Args: + query: 用户查询 + + Returns: + tuple: (路由结果列表, 重写后的查询, 分类信息) + 路由结果列表格式如 [{"label": "Drug", "entity": "xxx"}] + 重写后的查询字符串,如果未获取到则返回原始query + 分类信息字典,包含 query_type, has_time, time_type + """ + try: + # ========== 并行执行两个任务 ========== + total_start = time.time() + logger.info(f"[时间统计] RouteLabel: 开始并行执行两个任务(实体抽取 + 查询重写+分类)...") + + # 使用 asyncio.gather 并行执行两个任务 + route_results, rewrite_result = await asyncio.gather( + self._extract_entities(query), + self._rewrite_query(query) + ) + print(route_results) + logger.info(111111111111111111111111111111111111111) + # 从重写结果中提取信息 + if isinstance(rewrite_result, dict): + rewritten_query = rewrite_result.get("rewritten_query", query) + query_classification = rewrite_result.get("query_classification", { + "query_type": "detail", + "has_time": False, + "time_type": None + }) + else: + # 兼容旧格式(如果返回的是字符串) + rewritten_query = rewrite_result if isinstance(rewrite_result, str) else query + query_classification = { + "query_type": "detail", + "has_time": False, + "time_type": None + } + + total_elapsed = (time.time() - total_start) * 1000 + logger.info(f"[时间统计] RouteLabel: 两个任务并行执行完成,总耗时: {total_elapsed:.2f}ms") + logger.info(f"最终结果 - 入口节点标签与实体: {route_results}") + logger.info(f"最终结果 - 原始查询: '{query}' -> 重写后查询: '{rewritten_query}'") + logger.info(f"最终结果 - 分类信息: {query_classification}") + + return route_results, rewritten_query, query_classification + + except Exception as e: + logger.error(f"路由标签识别失败: {e}") + return [], query, { + "query_type": "detail", + "has_time": False, + "time_type": None + } + diff --git a/graph_search/Hybrid_graphsearch.py b/graph_search/Hybrid_graphsearch.py new file mode 100644 index 0000000..5f9f7be --- /dev/null +++ b/graph_search/Hybrid_graphsearch.py @@ -0,0 +1,1860 @@ +import os +import httpx +import json +import asyncio +import warnings +import socket +from typing import List, Set, Tuple, Dict, Optional +import ast +from urllib.parse import quote, urlsplit, urlunsplit +warnings.filterwarnings("ignore", category=UserWarning, module='jieba._compat') +import re +import jieba +import jieba.posseg as pseg +from neo4j import AsyncGraphDatabase, GraphDatabase +from neo4j_graphrag.retrievers import HybridCypherRetriever +from neo4j_graphrag.embeddings.base import Embedder +from langchain_community.graphs.neo4j_graph import Neo4jGraph +from openai import AsyncOpenAI + +# ✅ 1. 导入配置 +import sys +if hasattr(sys.stdout, "reconfigure"): + sys.stdout.reconfigure(encoding="utf-8", errors="replace") + sys.stderr.reconfigure(encoding="utf-8", errors="replace") +sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +try: + from dotenv import load_dotenv + load_dotenv(os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), ".env")) + load_dotenv() +except ImportError: + pass +from config import LLM_CONFIG, EMBEDDING_CONFIG, NEO4J_CONFIG, SEARCH_CONFIG + +# ✅ 2. 【关键】全局清除代理环境变量,防止内网请求走代理 +for _key in ['HTTP_PROXY', 'HTTPS_PROXY', 'http_proxy', 'https_proxy']: + if _key in os.environ: + del os.environ[_key] + print(f"[Init] Removed environment variable: {_key}") + + +# ================== 2. 基础配置 ================== +# 从配置文件中加载参数 +def _first_env(*names: str) -> Optional[str]: + for name in names: + value = os.getenv(name) + if value: + return value + return None + + +URI = NEO4J_CONFIG["uri"] +AUTH = ( + NEO4J_CONFIG["username"], + NEO4J_CONFIG["password"], +) +RERANK_URL = EMBEDDING_CONFIG["base_url"] +NAME_PROPERTY = SEARCH_CONFIG["name_property"] +FULLTEXT_PROPERTY = SEARCH_CONFIG["fulltext_property"] +EMBEDDING_PROPERTY = SEARCH_CONFIG["embedding_property"] +SEARCH_LABEL = SEARCH_CONFIG["search_label"] +VECTOR_INDEX_NAME = SEARCH_CONFIG["vector_index_name"] +FULLTEXT_INDEX_NAME = SEARCH_CONFIG["fulltext_index_name"] +FULLTEXT_FIELD_INDEX_NAME = SEARCH_CONFIG["fulltext_field_index_name"] + +# 将列表转换为集合以提高查找效率 +EXCLUDED_BUSINESS_LABELS: Set[str] = set(SEARCH_CONFIG["excluded_business_labels"]) +# 确保 SEARCH_LABEL 也在排除列表中(如果配置中没写,这里手动添加以防万一) +EXCLUDED_BUSINESS_LABELS.add(SEARCH_LABEL) + +VECTOR_DIMENSION = SEARCH_CONFIG["vector_dimension"] +_JIEBA_POS_WHITELIST = set(SEARCH_CONFIG["jieba_pos_whitelist"]) + +PROMPT_RESULT_TOP_K = int(SEARCH_CONFIG.get("cypher_prompt_top_k", 24)) +PROMPT_RESULT_PER_LABEL = int(SEARCH_CONFIG.get("cypher_prompt_per_label", 5)) +RELATION_ENTITY_TOP_K = int(SEARCH_CONFIG.get("relation_entity_top_k", 30)) +ENABLE_EXTERNAL_RERANK = os.getenv("ENABLE_EXTERNAL_RERANK", "0").strip().lower() in {"1", "true", "yes", "on"} + +_LLM_CLIENT: Optional[AsyncOpenAI] = None +_SCHEMA_CACHE: Optional[Tuple[str, List[Tuple[str, str, str]]]] = None +_SCHEMA_LOCK = asyncio.Lock() + +# ✅ 2. 修改 LocalBgeM3Embeddings,使用配置并禁用代理 +class LocalBgeM3Embeddings(Embedder): + def __init__(self, base_url: str = None, api_key: str = None, model_name: str = None): + # 使用默认配置,允许外部覆盖 + self.base_url = EMBEDDING_CONFIG["base_url"] + self.api_key = EMBEDDING_CONFIG["api_key"] + self.model_name = EMBEDDING_CONFIG["model"] + + def embed_query(self, text: str) -> List[float]: + return self.embed_documents([text])[0] + + def embed_documents(self, texts: List[str]) -> List[List[float]]: + embedding_base_url = self.base_url + + # ✅ 修复:临时清除代理环境变量,避免内网请求走代理 + # 保存旧值 + old_proxies = { + k: os.environ.pop(k, None) + for k in ('HTTP_PROXY', 'HTTPS_PROXY', 'http_proxy', 'https_proxy') + } + try: + # 创建客户端(不再传 proxies=None,因为旧版 httpx 不支持) + with httpx.Client(timeout=60) as client: + response = client.post( + embedding_base_url, + json={"model": self.model_name, "input": texts}, + headers={"Authorization": f"Bearer {self.api_key}"}, + ) + embedding_list = [item["embedding"] for item in response.json()["data"]] + finally: + # 恢复旧值 + for k, v in old_proxies.items(): + if v is not None: + os.environ[k] = v + + return embedding_list + + +async def openai_chat_aysnc_nothink(query: str, timeout: int = None) -> str | None: + """异步调用 OpenAI 兼容 API""" + global _LLM_CLIENT + if timeout is None: + timeout = LLM_CONFIG["timeout"] + + try: + # 复用客户端,避免每次生成 Cypher 都重新建连接。 + if _LLM_CLIENT is None: + _LLM_CLIENT = AsyncOpenAI( + api_key=LLM_CONFIG["api_key"], + base_url=LLM_CONFIG["base_url"], + timeout=timeout + ) + + response = await _LLM_CLIENT.chat.completions.create( + model=LLM_CONFIG["model"], + messages=[ + {"role": "user", "content": query}, + ], + temperature=LLM_CONFIG["temperature"], + stream=False, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + + except Exception as e: + print(f"❌ 调用 OpenAI API 时出错: {e}") + print(f" Base URL: {LLM_CONFIG['base_url']}") + print(f" Model: {LLM_CONFIG['model']}") + return None + + +# ================== 5. 检索结果解析辅助 ================== +def parse_record_string(s: str): + name_match = re.search(r"name='([^']*)'", s) + labels_match = re.search(r"labels=(\[[^\]]*\])", s) + score_match = re.search(r"score=([\d.]+)", s) + name = name_match.group(1) if name_match else "未知名称" + labels = ["未知标签"] + if labels_match: + try: + labels = ast.literal_eval(labels_match.group(1)) + except (ValueError, SyntaxError): + pass + score = float(score_match.group(1)) if score_match else 0.0 + return name, labels, score + + +def _build_retriever(sync_driver, embedder) -> HybridCypherRetriever: + """使用同步驱动构建检索器,因为HybridCypherRetriever不支持异步""" + return HybridCypherRetriever( + driver=sync_driver, + vector_index_name=VECTOR_INDEX_NAME, + fulltext_index_name=FULLTEXT_INDEX_NAME, + embedder=embedder, + retrieval_query=f""" + RETURN + node.`{NAME_PROPERTY}` AS name, + [lbl IN labels(node) WHERE lbl <> '{SEARCH_LABEL}'] AS labels, + score + """ + ) + +# ================== 6. Schema 解析与 N 跳标签扩展 ================== +def parse_schema_relationships(schema_str: str) -> List[Tuple[str, str, str]]: + pattern = re.compile(r"\(:([^)]+)\)-\[:([^\]]+)\]->\(:([^)]+)\)") + return [ + (m.group(1).strip(), m.group(2).strip(), m.group(3).strip()) + for m in pattern.finditer(schema_str) + ] + + +def expand_labels_n_hops( + seed_labels: Set[str], + triples: List[Tuple[str, str, str]], + hops: int = 3, + include_reverse: bool = True, + skip_labels: Set[str] = None, +) -> Set[str]: + if skip_labels is None: + skip_labels = set() + adj: Dict[str, Set[str]] = {} + for src, _rel, tgt in triples: + if src in skip_labels or tgt in skip_labels: + continue + adj.setdefault(src, set()).add(tgt) + if include_reverse: + adj.setdefault(tgt, set()).add(src) + visited: Set[str] = set(seed_labels) + frontier: Set[str] = set(seed_labels) - skip_labels + for _ in range(hops): + next_frontier: Set[str] = set() + for node in frontier: + for nbr in adj.get(node, ()): + if nbr not in visited: + next_frontier.add(nbr) + if not next_frontier: + break + visited |= next_frontier + frontier = next_frontier + return visited + + +def build_compact_schema( + triples: List[Tuple[str, str, str]], + keep_labels: Set[str], +) -> str: + kept_triples = [ + (src, rel, tgt) for src, rel, tgt in triples + if src in keep_labels and tgt in keep_labels + ] + entities_in_use: Set[str] = set() + for src, _rel, tgt in kept_triples: + entities_in_use.add(src) + entities_in_use.add(tgt) + all_entities = sorted(keep_labels | entities_in_use) + entities_str = "[" + ", ".join(f'"{e}"' for e in all_entities) + "]" + unique_triples = sorted(set(kept_triples)) + rels_lines = [f"(:{src})-[:{rel}]->(:{tgt})" for src, rel, tgt in unique_triples] + return "\n".join([f"实体: {entities_str}", "", "关系:"] + rels_lines) + + +def _load_schema_sync() -> Tuple[str, List[Tuple[str, str, str]]]: + graph = Neo4jGraph(url=URI, username=AUTH[0], password=AUTH[1], enhanced_schema=True) + schema = graph.schema + return schema, parse_schema_relationships(schema) + + +async def get_schema_triples() -> Tuple[str, List[Tuple[str, str, str]]]: + """缓存 Neo4j schema,避免每次查询都触发 apoc.meta.graphSample。""" + global _SCHEMA_CACHE + if _SCHEMA_CACHE is not None: + return _SCHEMA_CACHE + + async with _SCHEMA_LOCK: + if _SCHEMA_CACHE is None: + _SCHEMA_CACHE = await asyncio.to_thread(_load_schema_sync) + return _SCHEMA_CACHE + + +# ================== 7. Rerank 重排序 ================== +async def rerank_query(query: str, documents: List[str], top_n: int = 3) -> List[dict]: + headers = { + "Content-Type": "application/json", + "Authorization": f'Bearer {os.getenv("OPENAI_API_KEY", "none")}', + } + data = { + "model": _first_env("RERANK_MODEL", "OPENAI_RERANKER_MODEL") or "bge-rerank", + "query": query, + "top_n": top_n, + "documents": documents, + } + + async with httpx.AsyncClient() as client: + response = await client.post( + RERANK_URL, + headers=headers, + json=data, + timeout=30.0, + ) + + if response.status_code != 200: + raise Exception(f"Rerank Error {response.status_code}: {response.text}") + + result_json = response.json() + results_list = [] + for result in result_json["results"]: + results_list.append({ + "index": result["index"], + "text": result["document"]["text"], + "scores": result["relevance_score"], + }) + return results_list + + +async def apply_rerank( + query: str, + search_results: List[Dict], + top_n: int = 5, + verbose: bool = True, +) -> List[Dict]: + """ + 用 rerank 对 search_results 重新排序,返回重排后的 search_results 子集。 + 来源字段(source)会被透传保留,方便追溯是哪一路检索命中的。 + """ + if not search_results: + return search_results + + documents = [ + (r.get("名称", "") + " " + r.get("fulltext_snippet", "")).strip() + for r in search_results + ] + + if verbose: + print(f"\n🔀 开始 Rerank(top_n={top_n})...") + + try: + reranked = await rerank_query(query=query, documents=documents, top_n=top_n) + except Exception as e: + print(f"⚠️ Rerank 调用失败,跳过重排序,保持原顺序。原因: {e}") + return search_results[:top_n] + + reranked_results = [] + for item in reranked: + original = search_results[item["index"]] + reranked_results.append({ + "标签": original["标签"], + "名称": original["名称"], + "得分": item["scores"], + "向量得分": original["得分"], + "来源": original.get("来源", "hybrid"), + "fulltext_snippet": original.get("fulltext_snippet", ""), + }) + + reranked_results.sort(key=lambda x: x["得分"], reverse=True) + + if verbose: + print(f"✅ Rerank 完成,保留 {len(reranked_results)} 条结果:") + for i, r in enumerate(reranked_results, 1): + print( + f" [{i:2d}] rerank={r['得分']:.4f} | " + f"向量={r['向量得分']:.4f} | " + f"来源={r['来源']:<12} | " + f"{r['名称']} 标签={r['标签']}" + ) + + return reranked_results + + +# ================== 8-NEW. jieba 关键词提取 ================== +def extract_keywords_jieba( + text: str, + pos_whitelist: Set[str] = _JIEBA_POS_WHITELIST, + min_len: int = 2, + max_keywords: int = 8, +) -> List[str]: + """ + 用 jieba 词性标注提取名词/关键词,去除停用词和过短词条。 + 返回:去重后的关键词列表(保持出现顺序)。 + """ + words_pos = pseg.cut(text) + seen: Set[str] = set() + keywords: List[str] = [] + for word, flag in words_pos: + w = word.strip() + if ( + len(w) >= min_len + and any(flag.startswith(p) for p in pos_whitelist) + and w not in seen + ): + seen.add(w) + keywords.append(w) + if len(keywords) >= max_keywords: + break + + if not keywords: + keywords = list(dict.fromkeys( + w for w in jieba.cut(text) if len(w.strip()) >= min_len + ))[:max_keywords] + + return keywords + + +# ================== 8-NEW. fulltext 字段关键词检索 ================== +async def search_fulltext_field( + query: str, + driver, + top_k: int = 10, + min_keyword_len: int = 2, + max_keywords: int = 8, + score_threshold: float = 0.0, + verbose: bool = True, +) -> List[Dict]: + """ + 对节点的 `fulltext` 属性字段做关键词全文检索。 + """ + keywords = extract_keywords_jieba( + query, + pos_whitelist=_JIEBA_POS_WHITELIST, + min_len=min_keyword_len, + max_keywords=max_keywords, + ) + + if not keywords: + if verbose: + print("⚠️ jieba 未提取到有效关键词,跳过 fulltext 字段检索。") + return [] + + lucene_query = " OR ".join(keywords) + + if verbose: + print(f"\n🔑 jieba 提取关键词: {keywords}") + print(f"📄 Lucene 查询式: {lucene_query}") + print(f"🔍 正在对 fulltext 字段做全文检索...") + + cypher = f""" + CALL db.index.fulltext.queryNodes( + '{FULLTEXT_FIELD_INDEX_NAME}', + $lucene_query + ) + YIELD node, score + WHERE score > $score_threshold + RETURN + node.`{NAME_PROPERTY}` AS name, + [lbl IN labels(node) + WHERE lbl <> '{SEARCH_LABEL}'] AS labels, + score, + left(node.`{FULLTEXT_PROPERTY}`, 200) AS snippet + ORDER BY score DESC + LIMIT $top_k + """ + + results: List[Dict] = [] + try: + async with driver.session() as session: + result = await session.run( + cypher, + lucene_query=lucene_query, + score_threshold=score_threshold, + top_k=top_k, + ) + rows = await result.data() + + for row in rows: + results.append({ + "标签": row["labels"] or ["未知标签"], + "名称": row["name"] or "未知名称", + "得分": row["score"], + "来源": "fulltext", + "fulltext_snippet": row["snippet"] or "", + }) + + if verbose: + print(f"✅ fulltext 字段检索完成,命中 {len(results)} 条:") + for i, r in enumerate(results, 1): + print( + f" [{i:2d}] score={r['得分']:.4f} | " + f"{r['名称']} 标签={r['标签']}" + ) + except Exception as e: + print(f"⚠️ fulltext 字段检索出错(可能索引尚未就绪): {e}") + + return results + + +# ================== 8. 检索(原有 hybrid + 新增 fulltext 合并) ================== +def _merge_search_results( + hybrid_results: List[Dict], + fulltext_results: List[Dict], + verbose: bool = True, +) -> List[Dict]: + """ + 合并两路检索结果 + """ + merged: Dict[str, Dict] = {} + + for r in hybrid_results: + r.setdefault("来源", "hybrid") + r.setdefault("fulltext_snippet", "") + key = r["名称"] + if key not in merged or r["得分"] > merged[key]["得分"]: + merged[key] = r + + for r in fulltext_results: + key = r["名称"] + if key not in merged: + merged[key] = r + else: + existing = merged[key] + if r["得分"] > existing["得分"]: + existing["得分"] = r["得分"] + if existing["来源"] != r["来源"]: + existing["来源"] = "hybrid+fulltext" + if not existing.get("fulltext_snippet") and r.get("fulltext_snippet"): + existing["fulltext_snippet"] = r["fulltext_snippet"] + + result_list = list(merged.values()) + result_list.sort(key=lambda x: x["得分"], reverse=True) + + if verbose: + hybrid_cnt = sum(1 for r in result_list if r["来源"] == "hybrid") + fulltext_cnt = sum(1 for r in result_list if r["来源"] == "fulltext") + both_cnt = sum(1 for r in result_list if r["来源"] == "hybrid+fulltext") + print( + f"\n🔀 合并结果: 共 {len(result_list)} 条 " + f"(hybrid={hybrid_cnt}, fulltext={fulltext_cnt}, 两路命中={both_cnt})" + ) + + return result_list + + +def _primary_label(result: Dict) -> str: + labels = result.get("标签") or [] + return labels[0] if labels else "未知标签" + + +def _prune_search_results( + search_results: List[Dict], + max_total: int = PROMPT_RESULT_TOP_K, + per_label: int = PROMPT_RESULT_PER_LABEL, +) -> List[Dict]: + """ + 控制传入 LLM/关系查询的候选规模。 + 按标签保留高分实体,避免 top 结果被单一标签占满。 + """ + if not search_results: + return [] + + label_priority = ["设备", "故障模式", "维修工作", "维修项目", "操作程序", "操作项目"] + sorted_results = sorted(search_results, key=lambda x: x.get("得分", 0), reverse=True) + selected: List[Dict] = [] + selected_names: Set[str] = set() + + def add_result(item: Dict) -> None: + name = item.get("名称") + if not name or name in selected_names or len(selected) >= max_total: + return + selected.append(item) + selected_names.add(name) + + for label in label_priority: + count = 0 + for item in sorted_results: + if label in (item.get("标签") or []): + add_result(item) + count += 1 + if count >= per_label or len(selected) >= max_total: + break + + for item in sorted_results: + if len(selected) >= max_total: + break + add_result(item) + + return selected + + +async def search( + sentence: str, + sync_driver, # 同步驱动,用于HybridCypherRetriever + async_driver, # 异步驱动,用于fulltext检索 + embedder, + top_k: int = 10, + hops: int = 3, + include_reverse: bool = True, + fulltext_top_k: int = 10, + fulltext_score_threshold: float = 0.0, + verbose: bool = True, +) -> Dict: + if verbose: + print(f"\n🔍 正在对整句话进行混合检索:「{sentence}」\n") + + # hybrid 检索 - 使用同步驱动 + retriever = _build_retriever(sync_driver, embedder) + hybrid_results: List[Dict] = [] + try: + results = await asyncio.to_thread( + lambda: retriever.search(query_text=sentence, top_k=top_k) + ) + for item in results.items: + item_content = item.content + name = "未知名称" + labels = ["未知标签"] + score = 0.0 + if hasattr(item_content, "keys"): + if "name" in item_content.keys(): + name = item_content["name"] + if "labels" in item_content.keys(): + labels = item_content["labels"] + if "score" in item_content.keys(): + score = item_content["score"] + elif isinstance(item_content, str): + if item_content.startswith(" 维修工作 -> 故障模式 -> 维修项目)。 +3. **最高分实体绑定原则(核心规则)**:在编写 `WHERE` 过滤条件时,必须严格遵循"最高分优先"原则。请仔细分析 `search_results`,**依次为路径中的每一个节点(如设备、维修工作、故障模式、维修项目等)匹配并绑定其对应的得分(Score)最高的实体名称**。从而构建出一条全链路得分最高的精准查询路径。 +4. **无冗余查询**:只返回与用户问题直接相关的节点属性,不要包含无关的查询或返回字段。 +5. 检索的相关实体关系是根据用户问题进行语义匹配,从而获取到的实体关系(标签表示实体类型,名称表示实体名称,得分表示该实体与问题的相关性),来源于图数据库真实保存,不能包含任何假设或推理。提供给你参考的实体类型和实体关系则主要是为了帮助你理解用户问题的语义,根据检索的实体关系构建Cypher查询语句,而不是为了直接查询数据库。 +6. 根据给你的实体关系,仔细分析用户的问题,撰写一条精准的Cypher查询语句,语句中不要出现任何假设或推理,只能根据提供给你的实体关系进行查询。 +7. **关系方向硬约束**:`#检索实体之间已在图数据库中确认存在的真实一跳关系` 中的方向必须严格照抄,绝对不能反转关系方向。例如真实关系是 `(维修工作)-[:表征]->(故障模式)`,如果从故障模式反查维修工作,必须写成 `(故障模式)<-[:表征]-(维修工作)`,不能写成 `(故障模式)-[:表征]->(维修工作)`。 +8. **核心路径不要用 OPTIONAL MATCH**:回答用户问题所必需的主路径必须使用 `MATCH`。只有用户明确需要“可选补充信息”时,才允许使用 `OPTIONAL MATCH`。不要用 `OPTIONAL MATCH` 掩盖关系方向错误。 +9. **优先使用真实一跳关系**:如果 `formatted_relations` 中已经给出实体之间的真实关系路径,优先基于这些关系拼接 Cypher;Schema 只作为标签和关系类型参考,不要用 Schema 臆造候选实体之间不存在的边。 +10. **必须包含 RETURN**:Cypher 查询必须以 `RETURN` 子句结束,至少返回路径中关键节点的 `名称` 属性,例如 `RETURN d.名称 AS 设备名称, w.名称 AS 维修工作名称, f.名称 AS 故障模式名称`。绝对不能只输出 MATCH/WHERE 而没有 RETURN。 +# 输出要求: +- 只输出纯 Cypher 查询语句本身,不要使用 JSON 包裹,不要使用 markdown 代码块(```),不要添加任何引号包裹整条语句,不要输出任何解释说明。 +#用户问题如下: +{query} +#实体类型和实体关系如下: +{filtered_schema} +#根据用户问题,从数据库中检索的相关实体如下: +{search_results} +#检索实体之间已在图数据库中确认存在的真实一跳关系如下(这些关系路径真实可信,优先用于构建查询路径): +{formatted_relations} + +示例1: +用户问题:连杆大端轴承发生损坏异常该如何解决? +实体类型和实体关系如下: +实体: ["主要附件仪表的规格型号及性能参数", "使用期间安全防护及注意事项", "功能", "器材保障", "图册", "基本情况", "备品备件", "子系统", "安全保护措施及故障处理", "安全警告", "工作原理", "布置情况", "技术参数", "技术指标参数", "接口", "接口情况", "操作使用", "操作员与设备之间操作员与其他设备或系统设备员之间关系", "操作程序", "操作项目", "故障模式", "环境条件", "系统", "组成", "结构特点", "维修安全防护及注意事项汇总表", "维修工作", "维修项目", "维护保养", "舰船", "舰艇", "设备", "设计单位", "调试"] +关系: +(:组成)-[:包含]->(:设备) +(:维修工作)-[:包含故障]->(:故障模式) +(:维修工作)-[:表征]->(:故障模式) +(:维修项目)-[:修理]->(:故障模式) +(:设备)-[:包含]->(:工作原理) +(:设备)-[:包含]->(:布置情况) +(:设备)-[:包含]->(:技术参数) +(:设备)-[:包含]->(:接口情况) +(:设备)-[:包含]->(:操作员与设备之间操作员与其他设备或系统设备员之间关系) +(:设备)-[:包含]->(:组成) +(:设备)-[:包含]->(:结构特点) +(:设备)-[:包含]->(:维修安全防护及注意事项汇总表) +(:设备)-[:包含]->(:维护保养) +(:设备)-[:包括]->(:组成) +(:设备)-[:发生故障使用维修工作]->(:维修工作) +(:设备)-[:安全警告]->(:安全警告) +(:设备)-[:实现]->(:功能) +(:设备)-[:实现]->(:基本情况) +(:设备)-[:支持操作]->(:操作使用) +(:设备)-[:维修]->(:维修工作) +(:设备)-[:设计]->(:设计单位) +(:设备)-[:调试]->(:调试) +(:设备)-[:适用]->(:环境条件) +(:设备)-[:配备]->(:接口) +(:设备)-[:配套]->(:图册) +#根据用户问题,从数据库中找到的相关实体如下: +{{'标签': ['维修项目'], '名称': '修复连杆大端轴承异常磨损', '得分': 1.0}} +{{'标签': ['维修项目'], '名称': '更换连杆大端轴承', '得分': 0.9839502279586991}} +{{'标签': ['维修工作'], '名称': '连杆大端轴承维修工作指导', '得分': 0.9601912347183726}} +{{'标签': ['设备'], '名称': '连杆大端轴承', '得分': 0.9378418041605234}} +{{'标签': ['维修项目'], '名称': '更换连杆小段轴承', '得分': 0.9370194814204257}} +{{'标签': ['设备'], '名称': '连杆小端轴承', '得分': 0.9056004631162252}} +{{'标签': ['故障模式'], '名称': '主轴承或连杆大端轴承磨损导致主机运行中振动异常增大', '得分': 0.890951410907792}} +{{'标签': ['故障模式'], '名称': '主轴承或连杆大端轴承磨损导致机座与机架组件运行中振动异常增大', '得分': 0.8895577902640475}} +{{'标签': ['设备'], '名称': '连杆小段轴承', '得分': 0.8785823193324869}} +{{'标签': ['维修工作'], '名称': '传动轴的维修工作', '得分': 0.8768441389219146}} +{{'标签': ['维修项目'], '名称': '修复连杆大端轴承异常磨损', '得分': 1.0}} +{{'标签': ['故障模式'], '名称': '多缸燃烧严重失衡导致轴承组件紧急停机', '得分': 2.8766837120056152}} +{{'标签': ['维修项目'], '名称': '拆检活塞头磨损情况', '得分': 0.8453663838751524}} + +#检索实体之间已在图数据库中确认存在的真实一跳关系如下(这些关系路径真实可信,优先用于构建查询路径): +(设备:连杆大端轴承) -[:发生故障使用维修工作]-> (维修工作:连杆大端轴承维修工作指导) +(维修工作:连杆大端轴承维修工作指导) -[:包含故障]-> (故障模式:主轴承或连杆大端轴承磨损导致主机运行中振动异常增大) +(维修项目:修复连杆大端轴承异常磨损) -[:修理]-> (故障模式:主轴承或连杆大端轴承磨损导致机座与机架组件运行中振动异常增大) +(维修项目:更换连杆大端轴承) -[:修理]-> (故障模式:主轴承或连杆大端轴承磨损导致机座与机架组件运行中振动异常增大) +思考: +首先确定入口节点:问题中首先提到"连杆大端轴承",检索结果中存在标签为"设备"、名称为"连杆大端轴承"的实体,得分为0.9378,将其作为查询起点。 +接着依据已确认的真实一跳关系,逐步拼接完整路径: +- 步骤1:(设备:连杆大端轴承) -[:发生故障使用维修工作]-> (维修工作:连杆大端轴承维修工作指导) ✅ 已确认 +- 步骤2:(维修工作:连杆大端轴承维修工作指导) -[:包含故障]-> (故障模式:主轴承或连杆大端轴承磨损导致主机运行中振动异常增大) ✅ 已确认 +- 步骤3:需要找到修理该故障模式的维修项目。真实关系中"修复连杆大端轴承异常磨损"和"更换连杆大端轴承"均指向另一故障模式节点,结合检索得分,优先选取得分最高的"修复连杆大端轴承异常磨损"(得分1.0)作为维修项目节点。 +- 完整路径:设备 -[:发生故障使用维修工作]-> 维修工作 -[:包含故障]-> 故障模式 <-[:修理]- 维修项目 +输出为: +MATCH (d:设备)-[:发生故障使用维修工作]->(w:维修工作)-[:包含故障]->(f:故障模式)<-[:修理]-(p:维修项目) +WHERE d.名称 = '连杆大端轴承' + AND w.名称 = '连杆大端轴承维修工作指导' + AND f.名称 = '主轴承或连杆大端轴承磨损导致主机运行中振动异常增大' + AND p.名称 = '修复连杆大端轴承异常磨损' +RETURN w.名称 AS 维修工作名称, f.名称 AS 故障模式, p.名称 AS 维修项目名称 + +请参考上述示例,对提供的问题进行cpyher语句的编写。 +注意,上述示例中是以设备为起始节点,并不是所有问题都是以设备为起点,你要进行合理的选择正确的起始图谱节点,而不是一味模仿上述案例 +输出为: +""" + + +def _format_search_results_for_prompt(search_results: list) -> str: + prompt_results = _prune_search_results(search_results) + lines = [] + for idx, r in enumerate(prompt_results, 1): + labels = ",".join(r.get("标签", [])) + score = r.get("得分", 0) + source = r.get("来源", "") + lines.append( + f"{idx}. 标签=[{labels}] | 名称={r.get('名称', '')} | 得分={score:.4f} | 来源={source}" + ) + return "\n".join(lines) + + +def build_cypher_prompt(query: str, filtered_schema: str, search_results: list, formatted_relations: str) -> str: + prompt_results = _format_search_results_for_prompt(search_results) + + return CYPHER_PROMPT.format( + query=query, + filtered_schema=filtered_schema, + search_results=prompt_results, + formatted_relations=formatted_relations, + ) + +def extract_cypher(llm_output: str | None) -> str: + if not llm_output or not isinstance(llm_output, str): + return "" + + match = re.search(r"(MATCH[\s\S]+?RETURN[^\n]+(?:\n[^\n]+)*)", llm_output) + if match: + cypher = match.group(1).strip() + else: + match_without_return = re.search(r"(MATCH[\s\S]+)", llm_output) + cypher = match_without_return.group(1).strip() if match_without_return else llm_output.strip() + + # 修复:将字面的 \n 转换为实际换行符 + cypher = cypher.replace('\\n', '\n') + + return cypher + + +def _default_return_clause(cypher: str) -> str: + alias_labels = _parse_alias_label(cypher) + if not alias_labels: + return "*" + + label_alias = { + label: alias + for alias, label in alias_labels.items() + } + priority = [ + ("设备", "设备名称"), + ("维修工作", "维修工作名称"), + ("故障模式", "故障模式名称"), + ("维修项目", "维修项目名称"), + ("操作程序", "操作程序名称"), + ("操作项目", "操作项目名称"), + ] + + parts = [] + used_aliases: Set[str] = set() + for label, column in priority: + alias = label_alias.get(label) + if alias and alias not in used_aliases: + parts.append(f"{alias}.`名称` AS {column}") + used_aliases.add(alias) + + for alias, label in alias_labels.items(): + if alias in used_aliases: + continue + parts.append(f"{alias}.`名称` AS {label}名称") + used_aliases.add(alias) + + return ", ".join(parts) if parts else "*" + + +def ensure_return_clause(cypher: str) -> str: + """LLM 偶尔漏写 RETURN,这里兜底补齐,避免 Neo4j 语法错误。""" + if not cypher: + return cypher + if re.search(r"\bRETURN\b", cypher, re.IGNORECASE): + return cypher + return f"{cypher.rstrip()}\nRETURN {_default_return_clause(cypher)}" + +# ================== 11. Cypher 诊断基础工具 ================== +async def _run_query(session, cypher: str, **params) -> list: + try: + result = await session.run(cypher, **params) + return await result.data() + except Exception: + return [] + + +def _parse_alias_label(cypher: str) -> Dict[str, str]: + return { + alias: label.strip() + for alias, label in re.findall(r"\((\w+):([^\)]+)\)", cypher) + } + + +def _parse_alias_name(cypher: str) -> Dict[str, str]: + return { + alias: name + for alias, name in re.findall(r"(\w+)\.`?名称`?\s*=\s*'([^']+)'", cypher) + } + + +def _parse_segments(cypher: str) -> List[Tuple[str, str, str, str, str, str]]: + """ + 解析 Cypher 中的一跳关系段,返回真实图方向。 + tuple: (src_alias, src_label, rel, tgt_alias, tgt_label, text_direction) + text_direction 用于后续必要时翻转原始 Cypher 文本。 + """ + alias_labels = _parse_alias_label(cypher) + segments = [] + + forward = re.compile( + r"(?=(\((\w+)(?::([^\)]+))?\)\s*-\s*\[:([^\]]+)\]\s*->\s*\((\w+)(?::([^\)]+))?\)))" + ) + reverse = re.compile( + r"(?=(\((\w+)(?::([^\)]+))?\)\s*<-\s*\[:([^\]]+)\]\s*-\s*\((\w+)(?::([^\)]+))?\)))" + ) + + for match in forward.finditer(cypher): + _full, sa, sl, rel, ta, tl = match.groups() + sl = (sl or alias_labels.get(sa, "")).strip() + tl = (tl or alias_labels.get(ta, "")).strip() + if not sl or not tl: + continue + segments.append(( + match.start(), + (sa.strip(), sl, rel.strip(), ta.strip(), tl, "forward"), + )) + + for match in reverse.finditer(cypher): + _full, left_alias, left_label, rel, right_alias, right_label = match.groups() + left_label = (left_label or alias_labels.get(left_alias, "")).strip() + right_label = (right_label or alias_labels.get(right_alias, "")).strip() + if not left_label or not right_label: + continue + segments.append(( + match.start(), + ( + right_alias.strip(), right_label, rel.strip(), + left_alias.strip(), left_label, "reverse", + ), + )) + + return [segment for _pos, segment in sorted(segments, key=lambda x: x[0])] + + +def _candidates_for_label(search_results: list, label: str) -> list: + return sorted( + [r for r in search_results if label in r.get("标签", [])], + key=lambda x: x.get("得分", 0), + reverse=True, + ) + + +async def _test_segment( + session, + src_label: str, src_name: Optional[str], + rel: str, + tgt_label: str, tgt_name: Optional[str], +) -> int: + wheres = [] + if src_name: + wheres.append("a.`名称` = $src") + if tgt_name: + wheres.append("b.`名称` = $tgt") + where_clause = ("WHERE " + " AND ".join(wheres)) if wheres else "" + q = f"MATCH (a:{src_label})-[:{rel}]->(b:{tgt_label}) {where_clause} RETURN count(*) AS c" + rows = await _run_query(session, q, src=src_name, tgt=tgt_name) + return rows[0]["c"] if rows else 0 + + +async def _test_reversed_segment( + session, + src_label: str, src_name: Optional[str], + rel: str, + tgt_label: str, tgt_name: Optional[str], +) -> int: + return await _test_segment( + session=session, + src_label=tgt_label, + src_name=tgt_name, + rel=rel, + tgt_label=src_label, + tgt_name=src_name, + ) + + +def _flip_segment_direction( + cypher: str, + src_alias: str, + src_label: str, + rel: str, + tgt_alias: str, + tgt_label: str, + text_direction: str, +) -> str: + if text_direction == "forward": + pattern = re.compile( + rf"\(\s*{re.escape(src_alias)}\s*(?::\s*{re.escape(src_label)}\s*)?\)" + rf"\s*-\s*\[:\s*{re.escape(rel)}\s*\]\s*->\s*" + rf"\(\s*{re.escape(tgt_alias)}\s*(?::\s*{re.escape(tgt_label)}\s*)?\)" + ) + replacement = f"({src_alias}:{src_label})<-[:{rel}]-({tgt_alias}:{tgt_label})" + else: + pattern = re.compile( + rf"\(\s*{re.escape(tgt_alias)}\s*(?::\s*{re.escape(tgt_label)}\s*)?\)" + rf"\s*<-\s*\[:\s*{re.escape(rel)}\s*\]\s*-\s*" + rf"\(\s*{re.escape(src_alias)}\s*(?::\s*{re.escape(src_label)}\s*)?\)" + ) + replacement = f"({tgt_alias}:{tgt_label})-[:{rel}]->({src_alias}:{src_label})" + + return pattern.sub(replacement, cypher, count=1) + + +async def _find_verified_replacement( + session, + src_label: str, src_name: Optional[str], + rel: str, + tgt_label: str, + candidates: list, + verbose: bool, +) -> Optional[str]: + for i, cand in enumerate(candidates): + cand_name = cand.get("名称", "") + if not cand_name: + continue + cnt = await _test_segment(session, src_label, src_name, rel, tgt_label, cand_name) + icon = "✅" if cnt > 0 else " " + if verbose: + print(f" [{i+1}] {icon} '{cand_name}' (得分={cand.get('得分',0):.4f}) → 匹配:{cnt}") + if cnt > 0: + return cand_name + return None + + +async def _find_verified_source_replacement( + session, + src_label: str, + rel: str, + tgt_label: str, + tgt_name: Optional[str], + candidates: list, + verbose: bool, +) -> Optional[str]: + for i, cand in enumerate(candidates): + cand_name = cand.get("名称", "") + if not cand_name: + continue + cnt = await _test_segment(session, src_label, cand_name, rel, tgt_label, tgt_name) + icon = "✅" if cnt > 0 else " " + if verbose: + print(f" [{i+1}] {icon} 源节点 '{cand_name}' (得分={cand.get('得分',0):.4f}) → 匹配:{cnt}") + if cnt > 0: + return cand_name + return None + + +# ================== 11b. 关系回退 + 最短路径工具 ================== +def _relations_between_labels( + triples: List[Tuple[str, str, str]], + src_label: str, + tgt_label: str, +) -> List[str]: + return [ + rel for s, rel, t in triples + if s == src_label and t == tgt_label + ] + + +async def _test_segment_with_rel( + session, + src_label: str, src_name: Optional[str], + rel: str, + tgt_label: str, tgt_name: Optional[str], +) -> int: + wheres = [] + if src_name: + wheres.append("a.`名称` = $src") + if tgt_name: + wheres.append("b.`名称` = $tgt") + where_clause = ("WHERE " + " AND ".join(wheres)) if wheres else "" + q = ( + f"MATCH (a:{src_label})-[:{rel}]->(b:{tgt_label}) " + f"{where_clause} RETURN count(*) AS c" + ) + rows = await _run_query(session, q, src=src_name, tgt=tgt_name) + return rows[0]["c"] if rows else 0 + + +async def _find_shortest_path( + session, + src_label: str, src_name: str, + tgt_label: str, tgt_name: str, + max_hops: int = 4, + verbose: bool = True, +) -> Optional[List[dict]]: + if tgt_name: + q = f""" + MATCH p = allShortestPaths( + (a:{src_label})-[*1..{max_hops}]->(b:{tgt_label}) + ) + WHERE a.`名称` = $src AND b.`名称` = $tgt + RETURN + [r IN relationships(p) | type(r)] AS rels, + [n IN nodes(p) | labels(n)[0]] AS node_labels, + [n IN nodes(p) | n.`名称`] AS node_names + LIMIT 1 + """ + rows = await _run_query(session, q, src=src_name, tgt=tgt_name) + else: + q = f""" + MATCH p = allShortestPaths( + (a:{src_label})-[*1..{max_hops}]->(b:{tgt_label}) + ) + WHERE a.`名称` = $src + RETURN + [r IN relationships(p) | type(r)] AS rels, + [n IN nodes(p) | labels(n)[0]] AS node_labels, + [n IN nodes(p) | n.`名称`] AS node_names + LIMIT 1 + """ + rows = await _run_query(session, q, src=src_name) + + if not rows: + if verbose: + print(f" ⚠️ allShortestPaths: 未找到路径 " + f"({src_label}:'{src_name}') → ({tgt_label}:'{tgt_name}')") + return None + + row = rows[0] + rels, labels_, names = row["rels"], row["node_labels"], row["node_names"] + if verbose: + path_str = " → ".join( + f"[:{r}]→({labels_[i+1]}:'{names[i+1]}')" + for i, r in enumerate(rels) + ) + print(f" ✅ 最短路径: ({src_label}:'{src_name}') → {path_str}") + + return [ + {"rel": rel, "tgt_label": labels_[i + 1], "tgt_name": names[i + 1]} + for i, rel in enumerate(rels) + ] + + +def _rebuild_cypher_from_path( + src_alias: str, + src_label: str, + src_name: str, + steps: List[dict], + return_clause: str, +) -> str: + aliases = [src_alias] + [f"n{i+1}" for i in range(len(steps))] + labels_ = [src_label] + [s["tgt_label"] for s in steps] + names = [src_name] + [s["tgt_name"] for s in steps] + rels = [s["rel"] for s in steps] + + path_parts = [f"({aliases[0]}:{labels_[0]})"] + for i, rel in enumerate(rels): + path_parts.append(f"-[:{rel}]->({aliases[i+1]}:{labels_[i+1]})") + match_clause = "MATCH " + "".join(path_parts) + + where_parts = [ + f"{alias}.`名称` = '{name}'" + for alias, name in zip(aliases, names) + if name + ] + where_clause = "WHERE " + "\n AND ".join(where_parts) if where_parts else "" + + return f"{match_clause}\n{where_clause}\nRETURN {return_clause}" + + +def strip_unverified_name_conditions(cypher: str, search_results: list) -> str: + valid_names = {r["名称"] for r in search_results} + pattern = re.compile(r"(\w+)\.`?名称`?\s*=\s*'([^']+)'") + + def remove_condition(cypher_str: str, alias: str, name: str) -> str: + patterns_to_try = [ + re.compile( + r"\s*AND\s+" + re.escape(alias) + r"\.`?名称`?\s*=\s*'" + re.escape(name) + r"'", + re.IGNORECASE, + ), + re.compile( + re.escape(alias) + r"\.`?名称`?\s*=\s*'" + re.escape(name) + r"'\s*AND\s*", + re.IGNORECASE, + ), + re.compile( + r"WHERE\s+" + re.escape(alias) + r"\.`?名称`?\s*=\s*'" + re.escape(name) + r"'", + re.IGNORECASE, + ), + ] + for p in patterns_to_try: + new_str = p.sub("", cypher_str) + if new_str != cypher_str: + new_str = re.sub(r"WHERE\s*(RETURN|$)", r"\1", new_str, flags=re.IGNORECASE) + return new_str.strip() + return cypher_str + + stripped = cypher + for match in pattern.finditer(cypher): + alias, name = match.group(1), match.group(2) + if name not in valid_names: + print(f"⚠️ 名称 '{name}' 不在检索结果中,移除条件: {alias}.名称 = '{name}'") + stripped = remove_condition(stripped, alias, name) + + return stripped + + +def _return_alias_columns(return_clause: str) -> Dict[str, str]: + """ + 提取 RETURN 中 alias.名称 AS 输出列 的映射。 + 例如 d.名称 AS 设备名称 -> {"d": "设备名称"} + """ + result: Dict[str, str] = {} + pattern = re.compile( + r"(\w+)\.`?名称`?\s+AS\s+([A-Za-z0-9_\u4e00-\u9fff]+)", + re.IGNORECASE, + ) + for alias, column in pattern.findall(return_clause or ""): + result[alias] = column + return result + + +def _null_return_aliases(rows: list, return_clause: str) -> List[str]: + if not rows: + return [] + alias_columns = _return_alias_columns(return_clause) + null_aliases = [] + for alias, column in alias_columns.items(): + if all(row.get(column) in (None, "") for row in rows): + null_aliases.append(alias) + return null_aliases + + +def _apply_name_replacements(cypher: str, alias_name: Dict[str, str], current_names: Dict[str, str]) -> str: + fixed_cypher = cypher + for alias, original in alias_name.items(): + new = current_names.get(alias) + if new and new != original: + fixed_cypher = fixed_cypher.replace(f"'{original}'", f"'{new}'") + return fixed_cypher + + +async def _repair_name_bindings_once( + session, + segments: List[Tuple[str, str, str, str, str, str]], + current_names: Dict[str, str], + search_results: list, + verbose: bool = True, +) -> bool: + """ + 当某个中间节点被后续段修正后,重新校验全链路。 + 如果 target alias 也是下一段的 source,优先替换当前段的 source,避免把中间节点改回去。 + """ + aliases_used_as_src = {seg[0] for seg in segments} + changed = False + + for src_alias, src_label, rel, tgt_alias, tgt_label, _text_direction in segments: + src_name = current_names.get(src_alias) + tgt_name = current_names.get(tgt_alias) + cnt = await _test_segment(session, src_label, src_name, rel, tgt_label, tgt_name) + if cnt > 0: + continue + + prefer_source = tgt_alias in aliases_used_as_src + attempts = ("source", "target") if prefer_source else ("target", "source") + + if verbose: + print( + f" 🔁 重校验断链: ({src_alias}:{src_label} '{src_name}')" + f" -[:{rel}]-> ({tgt_alias}:{tgt_label} '{tgt_name}')" + ) + + for side in attempts: + if side == "source": + verified_src = await _find_verified_source_replacement( + session, + src_label=src_label, + rel=rel, + tgt_label=tgt_label, + tgt_name=tgt_name, + candidates=_candidates_for_label(search_results, src_label), + verbose=verbose, + ) + if verified_src and verified_src != src_name: + current_names[src_alias] = verified_src + changed = True + if verbose: + print(f" ✅ 重校验修复源节点: '{src_name}' → '{verified_src}'") + break + else: + verified_tgt = await _find_verified_replacement( + session, + src_label=src_label, + src_name=src_name, + rel=rel, + tgt_label=tgt_label, + candidates=_candidates_for_label(search_results, tgt_label), + verbose=verbose, + ) + if verified_tgt and verified_tgt != tgt_name: + current_names[tgt_alias] = verified_tgt + changed = True + if verbose: + print(f" ✅ 重校验修复目标节点: '{tgt_name}' → '{verified_tgt}'") + break + + return changed + + +# ================== 12. 端到端链路诊断与修复 ================== +async def diagnose_and_fix_cypher( + cypher: str, + driver, + search_results: list, + schema_triples: List[Tuple[str, str, str]] = None, + verbose: bool = True, +) -> dict: + cypher = ensure_return_clause(cypher) + alias_label = _parse_alias_label(cypher) + alias_name = _parse_alias_name(cypher) + segments = _parse_segments(cypher) + current_names = dict(alias_name) + + return_match = re.search(r"RETURN\s+(.+)$", cypher, re.IGNORECASE | re.DOTALL) + return_clause = return_match.group(1).strip() if return_match else "*" + + if verbose: + print("\n" + "=" * 60) + print("🩺 端到端链路诊断(Pass A: 换名 / Pass B: 换关系 / Pass C: 最短路径)") + print("=" * 60) + print(f"📝 原始 Cypher:\n{cypher}\n") + print(f"🗂️ 初始名称绑定: {current_names}\n") + + async with driver.session() as session: + initial_result = await _run_query(session, cypher) + null_aliases = _null_return_aliases(initial_result, return_clause) + if initial_result and not null_aliases: + if verbose: + print("✅ 完整查询有结果,无需修复。") + return { + "status": "ok", "chain_verified": True, + "diagnosis": "查询正常,有结果返回。", + "broken_segments": [], "fixed_cypher": None, + "final_names": current_names, + } + elif initial_result and null_aliases and verbose: + print( + "⚠️ 查询虽然返回了行,但以下 RETURN 别名全为空," + f"疑似 OPTIONAL MATCH 掩盖了断链: {null_aliases}\n" + ) + + if verbose: + print("⚠️ 开始逐段诊断...\n") + + broken_segments: list = [] + segment_reports: list = [] + + for seg_idx, (src_alias, src_label, rel, tgt_alias, tgt_label, text_direction) in enumerate(segments): + src_name = current_names.get(src_alias) + tgt_name = current_names.get(tgt_alias) + + seg_desc = ( + f"段[{seg_idx+1}] " + f"({src_alias}:{src_label} '{src_name}')" + f" -[:{rel}]-> " + f"({tgt_alias}:{tgt_label} '{tgt_name}')" + ) + if verbose: + print(f" 验证 {seg_desc}") + + cnt = await _test_segment(session, src_label, src_name, rel, tgt_label, tgt_name) + + if cnt > 0: + if verbose: + print(f" ✅ 通过 (匹配数: {cnt})\n") + segment_reports.append(f"✅ {seg_desc}") + continue + + reverse_cnt = await _test_reversed_segment( + session, src_label, src_name, rel, tgt_label, tgt_name + ) + if reverse_cnt > 0: + cypher = _flip_segment_direction( + cypher, + src_alias=src_alias, + src_label=src_label, + rel=rel, + tgt_alias=tgt_alias, + tgt_label=tgt_label, + text_direction=text_direction, + ) + segments[seg_idx] = ( + tgt_alias, tgt_label, rel, src_alias, src_label, + "reverse" if text_direction == "forward" else "forward", + ) + if verbose: + print( + f" ✅ 关系方向修复: " + f"({src_label})-[:{rel}]->({tgt_label}) " + f"翻转为 ({src_label})<-[:{rel}]-({tgt_label}) " + f"(匹配数: {reverse_cnt})\n" + ) + segment_reports.append( + f"🔧 {seg_desc}\n → 关系方向翻转修复,匹配数 {reverse_cnt}" + ) + broken_segments.append({ + "seg_idx": seg_idx + 1, + "pass": "direction", + "original_rel": rel, + "src_alias": src_alias, + "tgt_alias": tgt_alias, + }) + continue + + # Pass A + if verbose: + print(f" ❌ 断链!Pass A: 尝试替换节点名称,保持关系 [:{rel}] 不变...") + cands = _candidates_for_label(search_results, tgt_label) + verified = await _find_verified_replacement( + session, src_label, src_name, rel, tgt_label, cands, verbose + ) + if verified: + if verbose: + print(f" ✅ Pass A 修复: '{tgt_name}' → '{verified}'\n") + current_names[tgt_alias] = verified + segment_reports.append( + f"🔧 {seg_desc}\n → Pass A: 节点名 '{tgt_name}' 替换为 '{verified}'" + ) + broken_segments.append({ + "seg_idx": seg_idx + 1, "pass": "A", + "tgt_alias": tgt_alias, "tgt_label": tgt_label, + "original": tgt_name, "fixed": verified, + }) + continue + + if verbose: + print(f" ❌ 目标节点替换失败。Pass A2: 尝试替换源节点,保持关系 [:{rel}] 和目标节点不变...") + src_cands = _candidates_for_label(search_results, src_label) + verified_src = await _find_verified_source_replacement( + session, src_label, rel, tgt_label, tgt_name, src_cands, verbose + ) + if verified_src: + if verbose: + print(f" ✅ Pass A2 修复: 源节点 '{src_name}' → '{verified_src}'\n") + current_names[src_alias] = verified_src + segment_reports.append( + f"🔧 {seg_desc}\n → Pass A2: 源节点 '{src_name}' 替换为 '{verified_src}'" + ) + broken_segments.append({ + "seg_idx": seg_idx + 1, "pass": "A2", + "src_alias": src_alias, "src_label": src_label, + "original": src_name, "fixed": verified_src, + }) + continue + + # Pass B + if verbose: + print(f" ❌ Pass A 失败。Pass B: 遍历 schema 中 {src_label}→{tgt_label} 的所有关系...") + alt_rels = ( + _relations_between_labels(schema_triples, src_label, tgt_label) + if schema_triples else [] + ) + alt_rels = [r for r in alt_rels if r != rel] + + fixed_rel = None + fixed_tgt = tgt_name + + for alt_rel in alt_rels: + cnt2 = await _test_segment_with_rel( + session, src_label, src_name, alt_rel, tgt_label, tgt_name + ) + if verbose: + icon = "✅" if cnt2 > 0 else " " + print(f" {icon} rel='{alt_rel}', tgt='{tgt_name}' → 匹配:{cnt2}") + if cnt2 > 0: + fixed_rel = alt_rel + break + + for cand in cands: + cname = cand.get("名称", "") + if not cname or cname == tgt_name: + continue + cnt3 = await _test_segment_with_rel( + session, src_label, src_name, alt_rel, tgt_label, cname + ) + if verbose: + icon = "✅" if cnt3 > 0 else " " + print(f" {icon} rel='{alt_rel}', tgt='{cname}' → 匹配:{cnt3}") + if cnt3 > 0: + fixed_rel = alt_rel + fixed_tgt = cname + break + if fixed_rel: + break + + if fixed_rel: + cypher = cypher.replace(f"[:{rel}]", f"[:{fixed_rel}]", 1) + segments[seg_idx] = (src_alias, src_label, fixed_rel, tgt_alias, tgt_label, text_direction) + if fixed_tgt != tgt_name: + current_names[tgt_alias] = fixed_tgt + if verbose: + print( + f" ✅ Pass B 修复: " + f"rel '[:{rel}]' → '[:{fixed_rel}]'" + + (f", 节点名 '{tgt_name}' → '{fixed_tgt}'" if fixed_tgt != tgt_name else "") + + "\n" + ) + segment_reports.append( + f"🔧 {seg_desc}\n" + f" → Pass B: rel '[:{rel}]'→'[:{fixed_rel}]'" + + (f", 节点名 '{tgt_name}'→'[:{fixed_tgt}]'" if fixed_tgt != tgt_name else "") + ) + broken_segments.append({ + "seg_idx": seg_idx + 1, "pass": "B", + "original_rel": rel, "fixed_rel": fixed_rel, + "tgt_alias": tgt_alias, + "original": tgt_name, "fixed": fixed_tgt, + }) + continue + + # Pass C + if verbose: + print(f" ❌ Pass B 失败。Pass C: allShortestPaths 探测真实路径...") + + first_alias = segments[0][0] + first_label = alias_label.get(first_alias, segments[0][1]) + first_name = current_names.get(first_alias, "") + + sp_steps = None + if first_name: + sp_steps = await _find_shortest_path( + session, + src_label=first_label, src_name=first_name, + tgt_label=tgt_label, tgt_name=tgt_name or "", + max_hops=4, verbose=verbose, + ) + + if sp_steps: + new_cypher = _rebuild_cypher_from_path( + src_alias=first_alias, + src_label=first_label, + src_name=first_name, + steps=sp_steps, + return_clause=return_clause, + ) + if verbose: + print(f" ✅ Pass C 重建 Cypher:\n{new_cypher}\n") + verify_result = await _run_query(session, new_cypher) + if verify_result: + if verbose: + print("=" * 60) + print("✅ Pass C 链路修复成功(最短路径)") + print(f"\n💡 修正后的 Cypher:\n{new_cypher}") + print("=" * 60) + return { + "status": "fixed_by_shortest_path", + "chain_verified": True, + "diagnosis": "\n".join(segment_reports) + "\n✅ Pass C: 最短路径修复", + "broken_segments": broken_segments, + "fixed_cypher": new_cypher, + "final_names": current_names, + } + + if verbose: + print(f" ❌ Pass C 失败,三种策略均无法修复此段。\n") + segment_reports.append(f"❌ {seg_desc}\n → Pass A/B/C 均失败") + broken_segments.append({ + "seg_idx": seg_idx + 1, "pass": "failed", + "tgt_alias": tgt_alias, "tgt_label": tgt_label, + "original": tgt_name, "fixed": None, + }) + + fixed_cypher = _apply_name_replacements(cypher, alias_name, current_names) + final_verify = await _run_query(session, fixed_cypher) + final_null_aliases = _null_return_aliases(final_verify, return_clause) + chain_ok = bool(final_verify) and not final_null_aliases + + for _ in range(2): + if chain_ok: + break + changed = await _repair_name_bindings_once( + session=session, + segments=segments, + current_names=current_names, + search_results=search_results, + verbose=verbose, + ) + if not changed: + break + fixed_cypher = _apply_name_replacements(cypher, alias_name, current_names) + final_verify = await _run_query(session, fixed_cypher) + final_null_aliases = _null_return_aliases(final_verify, return_clause) + chain_ok = bool(final_verify) and not final_null_aliases + + if verbose: + print("=" * 60) + print("📋 逐段诊断报告:") + for line in segment_reports: + print(f" {line}") + print(f"\n🗂️ 最终名称绑定: {current_names}") + if final_null_aliases: + print(f"\n⚠️ 以下 RETURN 别名仍为空: {final_null_aliases}") + status = "✅ 链路修复成功" if chain_ok else "⚠️ 仍有断链段(建议扩大 top_k 或检查数据)" + print(f"\n{status}") + print(f"\n💡 修正后的 Cypher:\n{fixed_cypher}") + print("=" * 60) + + return { + "status": "fixed" if chain_ok else "partial", + "chain_verified": chain_ok, + "diagnosis": "\n".join(segment_reports), + "broken_segments": broken_segments, + "fixed_cypher": fixed_cypher, + "final_names": current_names, + } + + +async def retrieve_entities( + query: str, + sync_driver, # 同步驱动 + async_driver, # 异步驱动 + embedder, + hybrid_top_k: int = 100, + fulltext_top_k: int = 15, + rerank_top_k: int = 15, + use_rerank: bool = True, + hops: int = 3, + verbose: bool = True, +) -> Dict: + """ + 统一检索入口: + 1. hybrid 检索 + 2. fulltext 检索 + 3. merge + 4. rerank + 5. schema 裁剪 + """ + + # Step1:原始检索 + result = await search( + sentence=query, + sync_driver=sync_driver, + async_driver=async_driver, + embedder=embedder, + top_k=hybrid_top_k, + hops=hops, + include_reverse=True, + fulltext_top_k=fulltext_top_k, + fulltext_score_threshold=0.0, + verbose=verbose, + ) + + search_results = result["search_results"] + + # Step2:Rerank + # if use_rerank and ENABLE_EXTERNAL_RERANK and search_results: + # search_results = await apply_rerank( + # query=query, + # search_results=search_results, + # top_n=rerank_top_k, + # verbose=verbose, + # ) + + # search_results = _prune_search_results( + # search_results, + # max_total=max(PROMPT_RESULT_TOP_K, rerank_top_k), + # per_label=PROMPT_RESULT_PER_LABEL, + # ) + result["search_results"] = search_results + + if verbose: + print("\n📌 最终检索结果:") + for r in search_results: + print( + f"[{r['来源']:<15}] " + f"{r['名称']} " + f"score={r['得分']:.4f} " + f"标签={r['标签']}" + ) + + return result + + +async def query_with_cypher( + query: str, + retrieval_result: Dict, + driver, + verbose: bool = True, +) -> Dict: + """ + 统一 Cypher 查询入口 + """ + search_results = retrieval_result["search_results"] + filtered_schema = retrieval_result["filtered_schema"] + triples = retrieval_result["triples"] + formatted_relations = retrieval_result["formatted_relations"] + + # Step1:构建Prompt + prompt = build_cypher_prompt( + query, + filtered_schema, + search_results, + formatted_relations, + ) + # print("\n🤖 构建 Prompt:") + # print(prompt) + # Step2:LLM生成Cypher + llm_output = await openai_chat_aysnc_nothink(prompt) + + # ✅ 检查 LLM 是否返回了有效内容 + if not llm_output: + raise Exception("LLM 未返回有效内容,无法生成 Cypher 查询。请检查模型服务连通性。") + + cypher = extract_cypher(llm_output) + + # Step3:删除不存在名称 + cypher = strip_unverified_name_conditions(cypher, search_results) + cypher = ensure_return_clause(cypher) + + if verbose: + print("\n🤖 初始 Cypher:") + print(cypher if cypher else "(Empty)") + + # ✅ 如果提取后为空,直接报错或返回空结果,不要继续执行诊断 + if not cypher or not cypher.strip().upper().startswith("MATCH"): + raise Exception(f"未能从 LLM 输出中提取有效的 MATCH 语句。Output: {llm_output[:100]}...") + + # Step4:链路诊断修复 + diag = await diagnose_and_fix_cypher( + cypher=cypher, + driver=driver, + search_results=search_results, + schema_triples=triples, + verbose=verbose, + ) + + final_cypher = diag["fixed_cypher"] if diag["fixed_cypher"] else cypher + final_cypher = ensure_return_clause(final_cypher) + + # ✅ 再次确保最终 Cypher 不为空 + if not final_cypher or not final_cypher.strip(): + raise Exception("修复后的 Cypher 仍为空,无法执行查询。") + + if verbose: + print("\n💡 最终执行 Cypher:") + print(final_cypher) + + # Step5:执行查询 + async with driver.session() as session: + result = await session.run(final_cypher) + rows = await result.data() + + final_results = [dict(r) for r in rows] + + return { + "original_cypher": cypher, + "final_cypher": final_cypher, + "diagnosis": diag, + "results": final_results, + } + +async def fetch_relations_among_results( + search_results: List[Dict], + async_driver, + verbose: bool = True, +) -> List[Dict]: + """ + 查询检索结果中所有实体之间存在的一跳关系。 + + Args: + search_results: retrieve_entities 返回的检索结果列表 + async_driver: 异步 Neo4j 驱动 + verbose: 是否打印详细信息 + + Returns: + 关系列表,每项包含 src_name, src_label, rel, tgt_name, tgt_label + """ + # 提取所有实体名称 + names = [ + r["名称"] + for r in search_results[:RELATION_ENTITY_TOP_K] + if r.get("名称") and r["名称"] != "未知名称" + ] + + if not names: + if verbose: + print("⚠️ 检索结果为空,跳过关系查询。") + return [] + + if verbose: + print(f"\n🔗 正在查询 {len(names)} 个实体之间的一跳关系...") + + # 用 WHERE 过滤两端节点都在结果集中的边,一次查询搞定 + cypher = """ + MATCH (a)-[r]->(b) + WHERE a.`名称` IN $names + AND b.`名称` IN $names + RETURN + a.`名称` AS src_name, + labels(a)[0] AS src_label, + type(r) AS rel, + b.`名称` AS tgt_name, + labels(b)[0] AS tgt_label + ORDER BY src_name, rel, tgt_name + """ + + relations: List[Dict] = [] + try: + async with async_driver.session() as session: + result = await session.run(cypher, names=names) + rows = await result.data() + + for row in rows: + relations.append({ + "src_name": row["src_name"], + "src_label": row["src_label"], + "rel": row["rel"], + "tgt_name": row["tgt_name"], + "tgt_label": row["tgt_label"], + }) + + if verbose: + print(f"✅ 共找到 {len(relations)} 条一跳关系:\n") + # 按关系类型分组打印,更易读 + from itertools import groupby + sorted_rels = sorted(relations, key=lambda x: x["rel"]) + for rel_type, group in groupby(sorted_rels, key=lambda x: x["rel"]): + print(f" [{rel_type}]") + for item in group: + print( + f" ({item['src_label']}:{item['src_name']})" + f" -[:{item['rel']}]->" + f" ({item['tgt_label']}:{item['tgt_name']})" + ) + print() + + except Exception as e: + print(f"⚠️ 查询实体间关系时出错: {e}") + + return relations + +def format_relations(relations: List[Dict]) -> str: + lines = [] + for r in relations: + lines.append( + f"({r['src_label']}:{r['src_name']}) " + f"-[:{r['rel']}]-> " + f"({r['tgt_label']}:{r['tgt_name']})" + ) + return "\n".join(lines) +# ================== 13. 主程序 ================== +async def main(): + # 初始化同步驱动(用于HybridCypherRetriever) + sync_driver = GraphDatabase.driver(URI, auth=AUTH) + + # 初始化异步驱动(用于其他异步操作) + async_driver = AsyncGraphDatabase.driver(URI, auth=AUTH) + + embedder = LocalBgeM3Embeddings( + base_url=os.getenv("LOCAL_EMBEDDING_BASE"), + api_key=os.getenv("LOCAL_API_KEY"), + ) + + query = "发动机的工作原理" + try: + # ① 检索 + retrieval = await retrieve_entities( + query=query, + sync_driver=sync_driver, + async_driver=async_driver, + embedder=embedder, + use_rerank=True, + verbose=True, + ) + relations = await fetch_relations_among_results( + search_results=retrieval["search_results"], + async_driver=async_driver, + verbose=True, + ) + formatted_relations = format_relations(relations) + retrieval["formatted_relations"] = formatted_relations + print(retrieval["formatted_relations"]) + # ② Cypher生成+修复+查询 + result = await query_with_cypher( + query=query, + retrieval_result=retrieval, + driver=async_driver, + verbose=True, + ) + + print("\n" + "="*60) + print("🚀 最终 Cypher") + print("="*60) + print(result["final_cypher"]) + + print("\n📊 查询结果:") + for row in result["results"]: + print(row) + + finally: + sync_driver.close() + await async_driver.close() + + +if __name__ == "__main__": + asyncio.run(main()) + diff --git a/graph_search/__init__.py b/graph_search/__init__.py new file mode 100644 index 0000000..53541a8 --- /dev/null +++ b/graph_search/__init__.py @@ -0,0 +1,14 @@ +""" +图谱检索模块 +包含图谱检索功能(带完整验证机制) +""" + +from .graph_retrieval import GraphRetrieval +from .graph_service import GraphService +from .route_label import RouteLabel, RouteItem, RouteOutput +from .node_retrieval import NodeRetrieval +from .quick_graph_search import quick_graph_search + +__all__ = ['GraphRetrieval', 'GraphService', 'RouteLabel', 'RouteItem', 'RouteOutput', 'NodeRetrieval', 'quick_graph_search'] + + diff --git a/graph_search/aggregate_handler.py b/graph_search/aggregate_handler.py new file mode 100644 index 0000000..15f2ff4 --- /dev/null +++ b/graph_search/aggregate_handler.py @@ -0,0 +1,165 @@ +""" +聚合函数处理模块 + +功能:处理统计类查询的聚合函数提取和结果检查 +""" + +import re +from typing import Dict, List, Any + + +def extract_aggregate_functions(cypher: str) -> Dict[str, str]: + """ + 从Cypher查询中提取聚合函数及其别名 + """ + if not cypher: + return {} + + aggregate_map = {} + + # 匹配RETURN子句(不区分大小写) + # 匹配到 ORDER BY, SKIP, LIMIT 或字符串结尾 + return_match = re.search(r'\bRETURN\s+(.+?)(?:\s+ORDER\s+BY|\s+SKIP|\s+LIMIT|$)', cypher, re.IGNORECASE | re.DOTALL) + if not return_match: + return {} + + return_clause = return_match.group(1).strip() + + # 支持的聚合函数(不区分大小写) + aggregate_functions = ['COUNT', 'SUM', 'AVG', 'MAX', 'MIN', 'COLLECT', 'COLLECT_DISTINCT'] + + # 匹配聚合函数模式,支持以下格式: + # - COUNT(n) AS count + # - COUNT(n) AS `count` + # - COUNT(n) count + # - COUNT(DISTINCT n) AS count + # - SUM(n.value) AS total + # - COUNT(n) (没有别名,使用函数名) + + # 先尝试匹配带AS的格式:COUNT(...) AS alias + as_pattern = r'\b(' + '|'.join(aggregate_functions) + r')\s*\([^)]*\)\s+AS\s+([`"]?)(\w+)\2' + as_matches = re.finditer(as_pattern, return_clause, re.IGNORECASE) + for match in as_matches: + func_name = match.group(1).upper() + alias = match.group(3) + aggregate_map[alias.lower()] = func_name + + # 再尝试匹配不带AS但后面跟别名的格式:COUNT(...) alias + # 需要确保alias不是下一个聚合函数 + no_as_pattern = r'\b(' + '|'.join(aggregate_functions) + r')\s*\([^)]*\)\s+([`"]?)(\w+)\2(?!\s*\()' + no_as_matches = re.finditer(no_as_pattern, return_clause, re.IGNORECASE) + for match in no_as_matches: + func_name = match.group(1).upper() + alias = match.group(3) + # 检查alias不是聚合函数名 + if alias.upper() not in aggregate_functions: + aggregate_map[alias.lower()] = func_name + + # 如果还没有找到,尝试匹配没有别名的格式:COUNT(...) + # 这种情况下,使用函数名本身作为别名 + if not aggregate_map: + simple_pattern = r'\b(' + '|'.join(aggregate_functions) + r')\s*\([^)]*\)' + simple_matches = re.finditer(simple_pattern, return_clause, re.IGNORECASE) + for match in simple_matches: + func_name = match.group(1).upper() + # 检查后续是否有AS子句 + after_func = return_clause[match.end():] + as_match = re.search(r'\bAS\s+([`"]?)(\w+)\1', after_func, re.IGNORECASE) + if as_match: + alias = as_match.group(2) + aggregate_map[alias.lower()] = func_name + else: + # 如果没有AS,使用函数名作为别名 + aggregate_map[func_name.lower()] = func_name + + return aggregate_map + + +def is_aggregate_result_zero(aggregate_results: List[Dict[str, Any]], cypher: str = None) -> bool: + """ + 检查统计类查询结果是否为0 + """ + if not aggregate_results: + return True + + # 检查第一条记录的所有值 + first_result = aggregate_results[0] + if not isinstance(first_result, dict): + return False + + # 从Cypher中提取聚合函数信息 + aggregate_map = {} + if cypher: + aggregate_map = extract_aggregate_functions(cypher) + + # 如果没有提取到聚合函数信息,使用通用检查(兼容旧逻辑) + if not aggregate_map: + # 通用检查:任何值为None或0都认为是0结果 + for key, value in first_result.items(): + if value is None: + return True + if isinstance(value, (int, float)) and value == 0: + return True + if isinstance(value, str) and value.strip() == "0": + return True + if isinstance(value, list) and len(value) == 0: + return True + return False + + # 基于提取的聚合函数进行检查 + has_zero_aggregate = False + has_non_zero_value = False + + for key, value in first_result.items(): + key_lower = key.lower() + + # 检查该字段是否对应某个聚合函数 + func_name = aggregate_map.get(key_lower) + + if func_name: + # 根据聚合函数类型进行判断 + if func_name == 'COUNT': + # COUNT结果为0表示没有数据 + if value is None or (isinstance(value, (int, float)) and value == 0): + has_zero_aggregate = True + elif isinstance(value, (int, float)) and value > 0: + has_non_zero_value = True + + elif func_name == 'SUM': + # SUM结果为0或null表示没有数据 + if value is None or (isinstance(value, (int, float)) and value == 0): + has_zero_aggregate = True + elif isinstance(value, (int, float)) and value != 0: + has_non_zero_value = True + + elif func_name in ['AVG', 'MAX', 'MIN']: + # AVG/MAX/MIN结果为null表示没有数据 + if value is None: + has_zero_aggregate = True + elif isinstance(value, (int, float)) and value != 0: + has_non_zero_value = True + # 注意:AVG为0可能是有效值,但通常null更常见 + + elif func_name in ['COLLECT', 'COLLECT_DISTINCT']: + # COLLECT结果为空列表表示没有数据 + if value is None or (isinstance(value, list) and len(value) == 0): + has_zero_aggregate = True + elif isinstance(value, list) and len(value) > 0: + has_non_zero_value = True + else: + # 如果字段不在聚合函数映射中,但值不为0/null,说明可能有其他有效数据 + if value is not None: + if isinstance(value, (int, float)) and value != 0: + has_non_zero_value = True + elif isinstance(value, str) and value.strip() and value.strip() != "0": + has_non_zero_value = True + elif isinstance(value, list) and len(value) > 0: + has_non_zero_value = True + + # 如果有聚合函数结果为0/null,且没有其他非0值,认为是0结果 + if has_zero_aggregate and not has_non_zero_value: + return True + + # 如果所有聚合函数值都不为0或null,返回False + return False + diff --git a/graph_search/atlas_retrieval.py b/graph_search/atlas_retrieval.py new file mode 100644 index 0000000..09a6069 --- /dev/null +++ b/graph_search/atlas_retrieval.py @@ -0,0 +1,363 @@ +""" +=========================================== +图册检索模块 - atlas_retrieval +=========================================== +功能:根据系统、子系统、设备,使用混合检索匹配节点 + 然后找到关联的图册节点,提取图册信息和PDF URL +=========================================== +""" + +import json +import os +import logging +import time +from typing import Any, Dict, List, Optional + +from dotenv import load_dotenv +from neo4j import AsyncGraphDatabase, GraphDatabase + +load_dotenv() + +logger = logging.getLogger(__name__) + +NEO4J_CONFIG = { + "uri": os.getenv("NEO4J_URI", "bolt://192.168.0.46:57687"), + "user": os.getenv("NEO4J_USER", "neo4j"), + "password": os.getenv("NEO4J_PASSWORD", "zdht123@"), +} + + +class EmbeddingWrapper: + """嵌入模型包装器""" + def embed_documents(self, texts: List[str]) -> List[List[float]]: + """批量获取嵌入向量(一次性处理所有文本)""" + from modelsAPI.model_api import OpenaiAPI + + if not texts: + return [] + + try: + result = OpenaiAPI.batch_embeddings(texts) + if result and isinstance(result, list): + embedding_list = [item.get('embedding') if isinstance(item, dict) else item for item in result] + if embedding_list and len(embedding_list) == len(texts): + return embedding_list + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回数量不匹配,期望: {len(texts)}, 实际: {len(embedding_list) if embedding_list else 0}") + return [None] * len(texts) + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回格式异常") + return [None] * len(texts) + except Exception as e: + logger.error(f"EmbeddingWrapper: 批量向量化失败: {e}", exc_info=True) + return [None] * len(texts) + + +async def _search_all_nodes_with_hybrid( + session, + query: str, + sync_driver, + top_k: int = 20 +) -> List[Dict[str, Any]]: + """ + 直接对所有节点进行混合检索(embedding+全文),找最匹配的节点 + (与 quick_graph_search.py 保持一致的逻辑) + 使用 NodeRetrieval 替代 HybridRetriever,避免兼容性问题 + """ + from graph_search.node_retrieval import NodeRetrieval + + try: + # 对指定标签进行检索 + all_labels = ["设备", "系统", "子系统"] + logger.info(f"[混合检索] 检索标签: {all_labels}") + + # 使用 NodeRetrieval 进行检索 + embeddings = EmbeddingWrapper() + node_retrieval = NodeRetrieval(sync_driver, embeddings) + + # 为每个标签构造路由结果 + route_res = [{"label": label, "entity": query} for label in all_labels] + + # 执行检索 + retrieved_nodes = await node_retrieval.retrieve_nodes(route_res, top_k=top_k) + + # 汇总结果 + all_results = [] + for label, nodes in retrieved_nodes.items(): + for node in nodes: + all_results.append({ + "name": node.get("name"), + "score": node.get("score", 0.0), + "node": node.get("node", {}), + "label": label + }) + + # 按score排序,取top_k + all_results.sort(key=lambda x: x.get("score", 0), reverse=True) + all_results = all_results[:top_k] + + logger.info(f"[混合检索] 找到 {len(all_results)} 个候选节点") + + # 获取完整节点信息 + final_nodes = [] + for item in all_results: + node_data = item["node"] + label = item["label"] + name = item["name"] + + get_node_query = f""" + MATCH (n:{label}) + WHERE n.名称 = $name OR n.name = $name + RETURN elementId(n) AS id, n.名称 AS name, labels(n) AS labels, properties(n) AS props + LIMIT 1 + """ + result = await session.run(get_node_query, name=name) + record = await result.single() + + if record: + final_nodes.append({ + "id": record.get("id"), + "name": record.get("name"), + "labels": record.get("labels"), + "props": record.get("props", {}), + "score": item.get("score", 0.0) + }) + + return final_nodes + + except Exception as e: + logger.error(f"混合检索失败: {e}", exc_info=True) + return [] + + +async def _rerank_nodes( + query, + nodes +): + """ + 使用 rerank 对节点进行重排序 + (与 quick_graph_search.py 保持一致) + """ + if not nodes: + return [] + + from modelsAPI.model_api import OpenaiAPI + + # 格式化节点文本 + documents = [] + for node in nodes: + props = node.get("props", {}) + name = node.get("name", "") + labels = ", ".join(node.get("labels", [])) + doc_text = f"名称: {name}; 类型: {labels}" + documents.append(doc_text) + + # Rerank + try: + rerank_results = OpenaiAPI.rerank_query(query, documents, top_n=len(documents)) + + # 按score排序 + sorted_rerank = sorted(rerank_results, key=lambda x: x.get('scores', 0), reverse=True) + + # 重新组织节点 + reranked_nodes = [] + for rr in sorted_rerank: + idx = rr.get('index', 0) + if 0 <= idx < len(nodes): + node = nodes[idx].copy() + node['rerank_score'] = rr.get('scores', 0) + reranked_nodes.append(node) + + return reranked_nodes + + except Exception as e: + logger.error(f"Rerank失败: {e}", exc_info=True) + # 失败时返回原顺序 + for node in nodes: + node['rerank_score'] = 0 + return nodes + + +async def _match_nodes_with_retrieval( + session, + node_names: List[str], + sync_driver, + top_k: int = 10 +) -> List[Dict[str, Any]]: + """ + 使用混合检索+Rerank匹配节点(与 quick_graph_search.py 保持一致的逻辑) + + Args: + session: Neo4j 异步会话 + node_names: 节点名称列表 + sync_driver: Neo4j 同步 driver + top_k: 检索返回的节点数量上限 + + Returns: + 匹配到的节点信息列表 + """ + try: + all_matched_nodes = [] + + # 对每个节点名称分别进行检索+rerank + for node_name in node_names: + if not node_name: + continue + + logger.info(f"[图册检索] 开始检索节点: '{node_name}'") + + # 1. 混合检索 + candidate_nodes = await _search_all_nodes_with_hybrid( + session, node_name, sync_driver, top_k=20 + ) + + if not candidate_nodes: + logger.warning(f"[图册检索] 未找到节点: '{node_name}'") + continue + + logger.info(f"[图册检索] 混合检索找到 {len(candidate_nodes)} 个候选节点") + + # 2. Rerank 重排序 + reranked_nodes = await _rerank_nodes(node_name, candidate_nodes) + + if not reranked_nodes: + continue + + # 3. 取最匹配的节点 + best_node = reranked_nodes[0] + logger.info(f"[图册检索] 选择节点: {best_node.get('name', '未知')}, rerank_score={best_node.get('rerank_score', 0)}") + + all_matched_nodes.append(best_node) + + # 去重(按节点ID) + seen_ids = set() + unique_nodes = [] + for node in all_matched_nodes: + nid = node.get("id") + if nid and nid not in seen_ids: + seen_ids.add(nid) + unique_nodes.append(node) + + logger.info(f"[图册检索] 匹配到 {len(unique_nodes)} 个唯一节点") + return unique_nodes + + except Exception as e: + logger.error(f"_match_nodes_with_retrieval 失败: {e}", exc_info=True) + return [] + + +async def find_atlas_by_nodes( + node_names: Optional[List[str]] = None, + top_k: int = 10, + driver=None, +) -> Dict[str, Any]: + """ + 根据节点名称列表检索关联的图册节点 + + Args: + node_names: 节点名称列表(可以是系统、子系统或设备) + top_k: 混合检索返回的候选节点数量 + driver: Neo4j driver 实例(可选,如果不提供则创建新连接) + + Returns: + Dict: 检索结果,层级结构为:节点名称 -> 图册名称 -> PDF URL + """ + start_time = time.time() + + node_names = node_names or [] + + if not node_names: + return {"success": False, "error": "至少需要提供一个节点名称"} + + uri = NEO4J_CONFIG.get("uri") + user = NEO4J_CONFIG.get("user") + password = NEO4J_CONFIG.get("password") + if not uri or not user or not password: + return {"success": False, "error": "Neo4j 配置不完整,请检查 NEO4J_CONFIG"} + + try: + driver = AsyncGraphDatabase.driver(uri, auth=(user, password)) + + async with driver.session() as session: + logger.info(f"[图册检索] 开始检索 - 节点名称: {node_names}") + + sync_driver = GraphDatabase.driver(uri, auth=(user, password)) + try: + matched_nodes = await _match_nodes_with_retrieval( + session, node_names, sync_driver, top_k=top_k + ) + finally: + sync_driver.close() + + if not matched_nodes: + return {"success": False, "error": "未找到匹配的节点"} + + logger.info(f"[图册检索] 匹配到 {len(matched_nodes)} 个源节点") + + node_ids = [node["id"] for node in matched_nodes] + + atlas_query = """ + MATCH (source) + WHERE elementId(source) IN $node_ids + MATCH (source)-[*1..1]-(atlas:图册) + RETURN elementId(source) AS source_id, + source.名称 AS source_name, + elementId(atlas) AS atlas_id, + atlas.名称 AS atlas_name, + properties(atlas) AS atlas_props + """ + + result = await session.run(atlas_query, node_ids=node_ids) + records = await result.data() + print(11111111111111111111111) + print(records) + if not records: + return { + "success": False, + "error": "未找到关联的图册节点", + "matched_nodes": matched_nodes + } + + result_data = {} + + for record in records: + source_name = record.get("source_name") + atlas_name = record.get("atlas_name") + atlas_props = record.get("atlas_props", {}) + + pdf_url = None + for key, value in atlas_props.items(): + if "图" in key or "pdf" in key.lower() or "url" in key.lower() or "文件" in key: + if isinstance(value, str) and value.startswith(("http", "/")): + pdf_url = value + break + + if source_name not in result_data: + result_data[source_name] = {} + + if atlas_name not in result_data[source_name]: + result_data[source_name][atlas_name] = [] + + if pdf_url and pdf_url not in result_data[source_name][atlas_name]: + result_data[source_name][atlas_name].append(pdf_url) + + total_atlas_count = sum(len(atlas_dict) for atlas_dict in result_data.values()) + total_pdf_count = sum(len(pdf_list) for atlas_dict in result_data.values() for pdf_list in atlas_dict.values()) + + logger.info(f"[图册检索] 找到 {total_atlas_count} 个图册节点,共 {total_pdf_count} 个PDF URL") + + elapsed_ms = (time.time() - start_time) * 1000 + logger.info(f"[时间统计] 图册检索完成,耗时: {elapsed_ms:.2f}ms") + + return { + "success": True, + "data": result_data + } + + except Exception as e: + logger.error(f"[图册检索] 检索失败: {e}", exc_info=True) + return {"success": False, "error": f"检索失败: {str(e)}"} + finally: + if driver is not None: + await driver.close() + diff --git a/graph_search/atlas_retrieval421.py b/graph_search/atlas_retrieval421.py new file mode 100644 index 0000000..cc43d9a --- /dev/null +++ b/graph_search/atlas_retrieval421.py @@ -0,0 +1,255 @@ +""" +=========================================== +图册检索模块 - atlas_retrieval +=========================================== +功能:根据系统、子系统、设备,使用混合检索匹配节点 + 然后找到关联的图册节点,提取图册信息和PDF URL +=========================================== +""" + +import json +import os +import logging +import time +from typing import Any, Dict, List, Optional + +from dotenv import load_dotenv +from neo4j import AsyncGraphDatabase, GraphDatabase + +load_dotenv() + +logger = logging.getLogger(__name__) + +NEO4J_CONFIG = { + "uri": os.getenv("NEO4J_URI", "bolt://192.168.0.46:57687"), + "user": os.getenv("NEO4J_USER", "neo4j"), + "password": os.getenv("NEO4J_PASSWORD", "zdht123@"), +} + + +class EmbeddingWrapper: + """嵌入模型包装器""" + def embed_documents(self, texts: List[str]) -> List[List[float]]: + """批量获取嵌入向量(一次性处理所有文本)""" + from modelsAPI.model_api import OpenaiAPI + + if not texts: + return [] + + try: + result = OpenaiAPI.batch_embeddings(texts) + if result and isinstance(result, list): + embedding_list = [item.get('embedding') if isinstance(item, dict) else item for item in result] + if embedding_list and len(embedding_list) == len(texts): + return embedding_list + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回数量不匹配,期望: {len(texts)}, 实际: {len(embedding_list) if embedding_list else 0}") + return [None] * len(texts) + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回格式异常") + return [None] * len(texts) + except Exception as e: + logger.error(f"EmbeddingWrapper: 批量向量化失败: {e}", exc_info=True) + return [None] * len(texts) + + +async def _match_nodes_with_retrieval( + session, + node_names: List[str], + sync_driver, + top_k: int = 10 +) -> List[Dict[str, Any]]: + """ + 使用 NodeRetrieval 混合检索匹配节点(同时搜索系统、子系统、设备) + + Args: + session: Neo4j 异步会话 + node_names: 节点名称列表 + sync_driver: Neo4j 同步 driver(用于 NodeRetrieval) + top_k: 检索返回的节点数量上限 + + Returns: + 匹配到的节点信息列表 + """ + from graph_search.node_retrieval import NodeRetrieval + + try: + embeddings = EmbeddingWrapper() + node_retrieval = NodeRetrieval(sync_driver, embeddings) + + route_res = [] + for node_name in node_names: + if node_name: + route_res.append({"label": "系统", "entity": node_name}) + route_res.append({"label": "子系统", "entity": node_name}) + route_res.append({"label": "设备", "entity": node_name}) + + if not route_res: + logger.warning("没有提供有效的节点名称") + return [] + + retrieved_nodes = await node_retrieval.retrieve_nodes(route_res, top_k=top_k) + + matched_nodes_map = {} + for label, candidates in retrieved_nodes.items(): + if candidates: + best = candidates[0] + node_data = best.get("node", {}) + best_name = node_data.get("名称") or node_data.get("name") or best.get("name", "") + + if best_name in matched_nodes_map: + if best.get("score", 0.0) > matched_nodes_map[best_name]["score"]: + matched_nodes_map[best_name] = { + "best": best, + "score": best.get("score", 0.0) + } + else: + matched_nodes_map[best_name] = { + "best": best, + "score": best.get("score", 0.0) + } + + matched_nodes = [] + for best_name, data in matched_nodes_map.items(): + best = data["best"] + query = """ + MATCH (n) + WHERE (n:系统 OR n:子系统 OR n:设备) + AND (n.名称 = $name OR n.name = $name) + RETURN elementId(n) AS id, n.名称 AS name, labels(n) AS labels, properties(n) AS props + LIMIT 1 + """ + result = await session.run(query, name=best_name) + record = await result.single() + + if record: + matched_nodes.append({ + "id": record.get("id"), + "name": record.get("name"), + "labels": record.get("labels"), + "props": record.get("props", {}), + "score": best.get("score", 0.0) + }) + + logger.info(f"NodeRetrieval 匹配到 {len(matched_nodes)} 个节点") + return matched_nodes + + except Exception as e: + logger.error(f"_match_nodes_with_retrieval 失败: {e}", exc_info=True) + return [] + + +async def find_atlas_by_nodes( + node_names: Optional[List[str]] = None, + top_k: int = 10, + driver=None, +) -> Dict[str, Any]: + """ + 根据节点名称列表检索关联的图册节点 + + Args: + node_names: 节点名称列表(可以是系统、子系统或设备) + top_k: 混合检索返回的候选节点数量 + driver: Neo4j driver 实例(可选,如果不提供则创建新连接) + + Returns: + Dict: 检索结果,层级结构为:节点名称 -> 图册名称 -> PDF URL + """ + start_time = time.time() + + node_names = node_names or [] + + if not node_names: + return {"success": False, "error": "至少需要提供一个节点名称"} + + uri = NEO4J_CONFIG.get("uri") + user = NEO4J_CONFIG.get("user") + password = NEO4J_CONFIG.get("password") + if not uri or not user or not password: + return {"success": False, "error": "Neo4j 配置不完整,请检查 NEO4J_CONFIG"} + + try: + driver = AsyncGraphDatabase.driver(uri, auth=(user, password)) + + async with driver.session() as session: + logger.info(f"[图册检索] 开始检索 - 节点名称: {node_names}") + + sync_driver = GraphDatabase.driver(uri, auth=(user, password)) + try: + matched_nodes = await _match_nodes_with_retrieval( + session, node_names, sync_driver, top_k=top_k + ) + finally: + sync_driver.close() + + if not matched_nodes: + return {"success": False, "error": "未找到匹配的节点"} + + logger.info(f"[图册检索] 匹配到 {len(matched_nodes)} 个源节点") + + node_ids = [node["id"] for node in matched_nodes] + + atlas_query = """ + MATCH (source) + WHERE elementId(source) IN $node_ids + MATCH (source)-[*1..1]-(atlas:图册) + RETURN elementId(source) AS source_id, + source.名称 AS source_name, + elementId(atlas) AS atlas_id, + atlas.名称 AS atlas_name, + properties(atlas) AS atlas_props + """ + + result = await session.run(atlas_query, node_ids=node_ids) + records = await result.data() + + if not records: + return { + "success": False, + "error": "未找到关联的图册节点", + "matched_nodes": matched_nodes + } + + result_data = {} + + for record in records: + source_name = record.get("source_name") + atlas_name = record.get("atlas_name") + atlas_props = record.get("atlas_props", {}) + + pdf_url = None + for key, value in atlas_props.items(): + if "图" in key or "pdf" in key.lower() or "url" in key.lower() or "文件" in key: + if isinstance(value, str) and value.startswith(("http", "/")): + pdf_url = value + break + + if source_name not in result_data: + result_data[source_name] = {} + + if atlas_name not in result_data[source_name]: + result_data[source_name][atlas_name] = [] + + if pdf_url and pdf_url not in result_data[source_name][atlas_name]: + result_data[source_name][atlas_name].append(pdf_url) + + total_atlas_count = sum(len(atlas_dict) for atlas_dict in result_data.values()) + total_pdf_count = sum(len(pdf_list) for atlas_dict in result_data.values() for pdf_list in atlas_dict.values()) + + logger.info(f"[图册检索] 找到 {total_atlas_count} 个图册节点,共 {total_pdf_count} 个PDF URL") + + elapsed_ms = (time.time() - start_time) * 1000 + logger.info(f"[时间统计] 图册检索完成,耗时: {elapsed_ms:.2f}ms") + + return { + "success": True, + "data": result_data + } + + except Exception as e: + logger.error(f"[图册检索] 检索失败: {e}", exc_info=True) + return {"success": False, "error": f"检索失败: {str(e)}"} + finally: + if driver is not None: + await driver.close() + diff --git a/graph_search/cypher_excute.py b/graph_search/cypher_excute.py new file mode 100644 index 0000000..378a31c --- /dev/null +++ b/graph_search/cypher_excute.py @@ -0,0 +1,284 @@ +""" +=========================================== +Cypher 执行模块 - 拆分 + 拆分执行 +=========================================== + +从 GraphRetrieval 抽取出的两个独立纯函数: + + - split_aggregate_cypher(cypher) + 把一条 Cypher 拆成 (path_cypher, aggregate_cypher)。 + 纯字符串处理,只依赖 re 和 logger,不依赖 self。 + + - execute_cypher_with_split(cypher, is_aggregate, driver, split_fn=...) + 执行 Cypher,支持拆分为 path + aggregate 两个查询。 + 依赖通过参数注入:driver 负责执行,split_fn 负责拆分 + (默认就是上面的 split_aggregate_cypher)。 + +这样 GraphRetrieval 里的两个方法都可以变成一行委托调用,测试也直接测这两个函数。 +""" +import re +import logging +from typing import Callable, Optional, Tuple, Any,List,Dict +from neo4j import AsyncGraphDatabase, GraphDatabase +from graph_search.result_formatter import format_results,serialize_graph_for_llm + + + +logger = logging.getLogger(__name__) + +def split_aggregate_cypher(cypher: str) -> Tuple[Optional[str], Optional[str]]: + """ + 这个函数只处理字符串,不需要改为异步。 + """ + if not cypher or not cypher.strip(): + return None, None + try: + match_match = re.search( + r'(?i)\bMATCH\s+(.+?)(?=\s+\b(?:WHERE|WITH|RETURN)\b)', + cypher, + re.DOTALL + ) + if not match_match: + logger.warning(f"[Cypher处理] 未找到合法的 MATCH 子句。输入片段: {cypher[:100]}...") + return None, None + full_match_clause = match_match.group(1).strip() + + where_match = re.search( + r'(?i)\bWHERE\s+(.+?)(?=\s+\b(?:WITH|RETURN)\b)', + cypher, + re.DOTALL + ) + where_clause = " WHERE " + where_match.group(1).strip() if where_match else "" + + patterns = [p.strip() for p in full_match_clause.split(',') if p.strip()] + if not patterns: + logger.warning("[Cypher处理] MATCH 子句中无有效模式") + return None, None + first_pattern = patterns[0] + + path_var = "path" + path_pattern = f"{path_var} = {first_pattern}" + path_pattern = re.sub(r'?', ']-', path_pattern) + path_cypher = f"MATCH {path_pattern}{where_clause} RETURN DISTINCT {path_var}" + aggregate_cypher = cypher + + logger.debug(f"[Cypher处理] Path查询: {path_cypher}") + return path_cypher, aggregate_cypher + except Exception as e: + logger.exception(f"[Cypher处理] 生成 path 查询失败: {e}") + return None, None + + +# 2. 将执行函数改为 async +async def execute_cypher_with_split( + cypher: str, + is_aggregate: bool, + driver: Any, + split_fn: Callable[[str], Tuple[Optional[str], Optional[str]]] = split_aggregate_cypher, +) -> Tuple[Any, Optional[Any]]: + """ + 异步执行 Cypher,支持拆分为 path + aggregate 两个查询。 + """ + path_cypher, aggregate_cypher = split_fn(cypher) + + if path_cypher and aggregate_cypher: + logger.info("[Cypher拆分] 执行 path 和 aggregate 查询") + path_records = None + + try: + # 3. 使用 await 执行 path 查询 + path_result = await driver.execute_query(path_cypher) + path_records = path_result.records + except Exception as e: + logger.warning(f"[Cypher拆分] Path 查询失败: {e}") + path_records = None + + try: + # 4. 使用 await 执行 aggregate 查询 + aggregate_result = await driver.execute_query(aggregate_cypher) + records = aggregate_result.records + except Exception as e: + logger.error(f"[Cypher拆分] Aggregate 查询失败: {e},回退到原始 Cypher") + # 回退也需异步执行 + result = await driver.execute_query(cypher) + return result.records, None + + return records, path_records + else: + # 5. 使用 await 执行原始查询 + result = await driver.execute_query(cypher) + return result.records, None + + +class ResultProcessor: + """查询结果处理器 - 保持不变,因为只是数据处理""" + def __init__(self): + pass + + def process_results(self, records: List, path_records: Optional[List], is_aggregate: bool = False) -> List[Dict[str, Any]]: + if is_aggregate: + return self._process_aggregate_results(records, path_records) + else: + return self._process_detail_results(records, path_records) + + def _process_aggregate_results(self, records: List, path_records: Optional[List]) -> List[Dict[str, Any]]: + aggregate_results = [dict(r) for r in records] + aggregate_value = aggregate_results[0].get('result', aggregate_results[0]) + + if path_records: + raw_results = [dict(r) for r in path_records] + for res in raw_results: + res['result'] = aggregate_value + if raw_results: + raw_results[0]['_aggregate_value'] = aggregate_value + logger.debug(f"[结果处理] 聚合查询,返回 {len(raw_results)} 条path记录") + return raw_results + else: + logger.debug(f"[结果处理] 聚合查询,返回 {len(aggregate_results)} 条聚合结果") + return aggregate_results + + def _process_detail_results(self, records: List, path_records: Optional[List]) -> List[Dict[str, Any]]: + value_results = [dict(r) for r in records] + + if path_records: + raw_results = [dict(r) for r in path_records] + for i in range(len(raw_results)): + if i < len(value_results): + raw_results[i]['result'] = value_results[i] + else: + raw_results[i]['result'] = None + logger.debug(f"[结果处理] 明细查询,返回 {len(raw_results)} 条path记录") + return raw_results + else: + logger.debug(f"[结果处理] 明细查询,返回 {len(value_results)} 条明细结果") + return value_results + + +def process_neo4j_results(records: List, path_records: Optional[List] = None, is_aggregate: bool = False) -> List[Dict[str, Any]]: + """便捷函数""" + processor = ResultProcessor() + return processor.process_results(records, path_records, is_aggregate) + +async def excute_cypher(driver,cypher): + # driver = AsyncGraphDatabase.driver(URI, auth=AUTH) + + try: + query = """ + MATCH (d:设备)-[:发生故障使用维修工作]->(w:维修工作)-[:包含故障]->(f:故障模式)<-[:修理]-(p:维修项目) + WHERE d.名称 = '喷油器组件' + AND w.名称 = '喷油器组件维修工作指导' + AND f.名称 = '喷油器工作不一致导致机座与机架组件功率输出不稳定' + AND p.名称 = '排除喷油器雾化不良故障' + RETURN w.名称 AS 维修工作名称, f.名称 AS 故障模式, p.名称 AS 维修项目名称 + """ + + # 7. 调用异步函数 + records, path_records = await execute_cypher_with_split(cypher, True, driver) + results = process_neo4j_results( + records=records, + path_records=path_records, + is_aggregate=True + ) + + # 这里假设 format_results 和 serialize_graph_for_llm 是同步的工具函数 + # 如果它们也是异步的,请使用 await + path_data = format_results(results) + + temp_graph_response = { + "data": { + "nodes": path_data.get("nodes", []), + "results": results + } + } + + # 假设 serialize_graph_for_llm 是同步的 + formatted_results_str = serialize_graph_for_llm(temp_graph_response) + + response = { + "data": { + "nodes": path_data.get("nodes", []), + "links": path_data.get("links", []), + "results": formatted_results_str + }, + "meta": { + "result_count": len(formatted_results_str), + "query_type": "graph_search", + "cypher": cypher, + "query_classification": "graph_search" + } + } + return response + + finally: + # 8. 关闭异步驱动 + await driver.close() + +# ========== 便捷函数和主程序入口 ========== +if __name__ == "__main__": + # 6. 配置异步驱动 + URI = "bolt://192.168.0.46:57687" + AUTH = ("neo4j", "zdht123@") + + # 定义异步主函数 + async def main(): + # 使用 AsyncGraphDatabase 初始化驱动 + driver = AsyncGraphDatabase.driver(URI, auth=AUTH) + + try: + query = """ + MATCH (d:设备)-[:发生故障使用维修工作]->(w:维修工作)-[:包含故障]->(f:故障模式)<-[:修理]-(p:维修项目) + WHERE d.名称 = '喷油器组件' + AND w.名称 = '喷油器组件维修工作指导' + AND f.名称 = '喷油器工作不一致导致机座与机架组件功率输出不稳定' + AND p.名称 = '排除喷油器雾化不良故障' + RETURN w.名称 AS 维修工作名称, f.名称 AS 故障模式, p.名称 AS 维修项目名称 + """ + + # 7. 调用异步函数 + records, path_records = await execute_cypher_with_split(query, True, driver) + results = process_neo4j_results( + records=records, + path_records=path_records, + is_aggregate=True + ) + + # 这里假设 format_results 和 serialize_graph_for_llm 是同步的工具函数 + # 如果它们也是异步的,请使用 await + path_data = format_results(results) + + temp_graph_response = { + "data": { + "nodes": path_data.get("nodes", []), + "results": results + } + } + + # 假设 serialize_graph_for_llm 是同步的 + formatted_results_str = serialize_graph_for_llm(temp_graph_response) + + response = { + "code": 200, + "message": "success", + "data": { + "nodes": path_data.get("nodes", []), + "links": path_data.get("links", []), + "results": formatted_results_str + }, + "meta": { + "result_count": len(formatted_results_str), + "query_type": "graph_search", + "elapsed_ms": 20, + "cypher": query, + "query_classification": "graph_search" + } + } + print(response) + + finally: + # 8. 关闭异步驱动 + await driver.close() + + # 9. 运行异步主函数 + import asyncio + asyncio.run(main()) diff --git a/graph_search/cypher_fixer.py b/graph_search/cypher_fixer.py new file mode 100644 index 0000000..f9644ca --- /dev/null +++ b/graph_search/cypher_fixer.py @@ -0,0 +1,240 @@ +""" +Cypher 错误修复模块 + +功能:修复常见的 Cypher 语法错误和格式问题 +""" + +import re +import logging + +logger = logging.getLogger(__name__) + + +def parse_cypher_error(error_message: str, cypher: str) -> dict: + """ + 解析Cypher错误信息,提取错误类型、位置等详细信息 + """ + error_info = { + "error_type": "unknown", + "error_message": error_message, + "error_position": None, + "suggested_fix": None + } + + error_lower = error_message.lower() + + # ========== 识别错误类型 ========== + if "unexpected" in error_lower or "expected" in error_lower: + error_info["error_type"] = "syntax_unexpected" + elif "invalid" in error_lower: + error_info["error_type"] = "syntax_invalid" + elif "missing" in error_lower: + error_info["error_type"] = "syntax_missing" + elif "cannot" in error_lower or "can't" in error_lower: + error_info["error_type"] = "semantic_error" + elif "unknown" in error_lower or "not found" in error_lower: + error_info["error_type"] = "schema_error" + elif "syntax" in error_lower: + error_info["error_type"] = "syntax_error" + + # ========== 提取错误位置(如果错误信息中包含位置信息) ========== + # Neo4j错误信息可能包含位置,如 "line 1, column 10" + position_match = re.search(r'line\s+(\d+)[,\s]+column\s+(\d+)', error_message, re.IGNORECASE) + if position_match: + line_num = int(position_match.group(1)) + col_num = int(position_match.group(2)) + error_info["error_position"] = {"line": line_num, "column": col_num} + + # 提取错误位置的上下文 + lines = cypher.split('\n') + if line_num <= len(lines): + error_line = lines[line_num - 1] + error_info["error_context"] = error_line + if col_num <= len(error_line): + # 标记错误位置 + marker = ' ' * (col_num - 1) + '^' + error_info["error_marker"] = marker + + # ========== 提取错误相关的关键词 ========== + # 提取错误信息中提到的标签、关系、关键字等 + keywords = [] + # 匹配可能的标签名(大写字母开头的单词) + label_matches = re.findall(r'\b([A-Z][a-zA-Z0-9_]+)\b', error_message) + keywords.extend(label_matches) + # 匹配引号中的内容 + quoted_matches = re.findall(r'["\']([^"\']+)["\']', error_message) + keywords.extend(quoted_matches) + error_info["keywords"] = list(set(keywords)) + + return error_info + + +def force_undirected_relationships(cypher: str) -> str: + """ + 强制将所有有方向的关系转换为无方向关系 + """ + if not cypher: + return cypher + + # 替换所有有方向的关系为无方向关系 + # 匹配模式:-[:RELATIONSHIP]-> 或 <-[:RELATIONSHIP]- + # 替换为:-[:RELATIONSHIP]- + + # 替换 -> 为 -(在关系类型之后) + # 需要小心处理,只替换关系箭头,不替换其他地方的 -> + # 使用正则表达式匹配关系模式 + fixed = cypher + + # 替换 -[:RELATIONSHIP]-> 为 -[:RELATIONSHIP]- + fixed = re.sub(r'(\[:[^\]]+\])->', r'\1-', fixed) + + # 替换 <-[:RELATIONSHIP]- 为 -[:RELATIONSHIP]- + fixed = re.sub(r'<-(\[:[^\]]+\])-', r'-\1-', fixed) + + # 替换 -> 在关系模式中(处理可变长度关系,如 [*1..3]->) + fixed = re.sub(r'(\[[^\]]+\])->', r'\1-', fixed) + + # 替换 <- 在关系模式中(处理可变长度关系,如 <-[*1..3]-) + fixed = re.sub(r'<-(\[[^\]]+\])-', r'-\1-', fixed) + + # 如果进行了替换,记录日志 + if fixed != cypher: + logger.info(f"[关系方向转换] 检测到有方向关系,已自动转换为无方向关系") + logger.debug(f"[关系方向转换] 原始: {cypher[:200]}...") + logger.debug(f"[关系方向转换] 转换后: {fixed[:200]}...") + + return fixed + + +def fix_cypher_based_on_error(cypher: str, error_info: dict) -> str: + """ + 基于实际错误信息智能修复Cypher + """ + if not error_info or not error_info.get("error_type"): + return None + + error_type = error_info["error_type"] + error_message = error_info.get("error_message", "") + fixed = cypher + + # ========== 根据错误类型进行修复 ========== + + # 1. 语法错误:多余的括号 + if "unexpected" in error_message.lower() and ("(" in error_message or ")" in error_message): + # 尝试修复多余的括号 + # 匹配 `-[:REL]- ( (n:Label)` 这种模式 + fixed = re.sub(r'(\[:[^\]]+\])-\s+\(\s*\(', r'\1-(', fixed) + fixed = re.sub(r'\)\s*-\s*(\[:[^\]]+\])-\s+\(\s*\(', r')-\1-(', fixed) + if fixed != cypher: + logger.info(f"[智能修复] 修复多余括号错误") + return fixed + + # 2. 语法错误:缺少括号 + if "missing" in error_message.lower() and ("(" in error_message or ")" in error_message): + # 检查括号是否匹配 + open_count = fixed.count('(') + close_count = fixed.count(')') + if open_count > close_count: + # 缺少右括号,在末尾添加 + fixed = fixed + ')' * (open_count - close_count) + logger.info(f"[智能修复] 添加缺失的右括号: {open_count - close_count} 个") + return fixed + elif close_count > open_count: + # 多余的右括号,但这种情况较难自动修复,返回None + logger.warning(f"[智能修复] 检测到多余的右括号,无法自动修复") + return None + + # 3. 语法错误:关系定义问题 + if "relationship" in error_message.lower() or "relationship type" in error_message.lower(): + # 检查关系定义格式 + # 修复 `-[:REL]- (n:Label)` -> `-[:REL]-(n:Label)` + fixed = re.sub(r'(\[:[^\]]+\])-\s+\(', r'\1-(', fixed) + if fixed != cypher: + logger.info(f"[智能修复] 修复关系定义格式") + return fixed + + # 4. Schema错误:节点标签或关系类型不存在 + if error_info["error_type"] == "schema_error": + keywords = error_info.get("keywords", []) + # 这里可以尝试其他修复策略 + logger.debug(f"[智能修复] Schema错误,关键词: {keywords}") + # Schema错误通常需要LLM修正,这里不自动修复 + return None + + # 5. 语法错误:位置相关的修复 + if error_info.get("error_position"): + pos = error_info["error_position"] + line_num = pos.get("line", 1) + col_num = pos.get("column", 1) + + lines = fixed.split('\n') + if line_num <= len(lines): + error_line = lines[line_num - 1] + # 检查错误位置附近的字符 + if col_num <= len(error_line): + char_at_error = error_line[col_num - 1] if col_num > 0 else '' + context = error_line[max(0, col_num-10):min(len(error_line), col_num+10)] + + # 如果是多余的字符,尝试删除 + if char_at_error in ['(', ')', ' ', '-']: + # 检查是否是明显的多余字符 + before = error_line[:col_num-1] if col_num > 0 else '' + after = error_line[col_num:] if col_num < len(error_line) else '' + + # 如果前后都是关系连接符,中间的字符可能是多余的 + if re.search(r'[-\s]*$', before) and re.search(r'^[-\s]*', after): + # 尝试删除错误位置的字符 + new_line = error_line[:col_num-1] + error_line[col_num:] + lines[line_num - 1] = new_line + fixed = '\n'.join(lines) + logger.info(f"[智能修复] 删除错误位置的字符: '{char_at_error}'") + return fixed + + # 6. 通用修复:尝试修复常见的格式问题 + # 修复关系后的多余空格 + fixed = re.sub(r'(\[:[^\]]+\])-\s+\(', r'\1-(', fixed) + # 修复节点定义前的多余括号 + fixed = re.sub(r'\(\s+\(([a-zA-Z_][a-zA-Z0-9_]*\s*:)', r'(\1', fixed) + + if fixed != cypher: + logger.info(f"[智能修复] 应用通用修复") + return fixed + + # 无法自动修复 + return None + + +def fix_common_cypher_errors(cypher: str) -> str: + """ + 修复常见的Cypher语法错误 + """ + if not cypher: + return cypher + + fixed = cypher + + # ========== 修复1:关系后多余的空格和括号 ========== + # 匹配模式:`-[:REL]- ( (n:Label)` -> `-[:REL]-(n:Label)` + # 或者 `-[:REL]- (n:Label)` -> `-[:REL]-(n:Label)` + fixed = re.sub(r'(\[:[^\]]+\])-\s+\(\s*\(', r'\1-(', fixed) # `-[:REL]- ( (` -> `-[:REL]-(` + fixed = re.sub(r'(\[:[^\]]+\])-\s+\(([a-zA-Z_][a-zA-Z0-9_]*\s*:)', r'\1-(\2', fixed) # `-[:REL]- (n:` -> `-[:REL]-(n:` + + # ========== 修复2:节点定义前多余的括号 ========== + # 匹配模式:`( (n:Label)` -> `(n:Label)` + fixed = re.sub(r'\(\s+\(([a-zA-Z_][a-zA-Z0-9_]*\s*:)', r'(\1', fixed) + + # ========== 修复3:MATCH语句中的多余空格和括号 ========== + # 匹配模式:`MATCH ...)-[:REL]- ( (n:Label)` -> `MATCH ...)-[:REL]-(n:Label)` + fixed = re.sub(r'\)\s*-\s*(\[:[^\]]+\])-\s+\(\s*\(', r')-\1-(', fixed) + fixed = re.sub(r'\)\s*-\s*(\[:[^\]]+\])-\s+\(([a-zA-Z_][a-zA-Z0-9_]*\s*:)', r')-\1-(\2', fixed) + + # ========== 修复4:规范化关系定义后的空格 ========== + # 确保关系定义后直接跟节点定义,如 `-[:REL]-(n:Label)` 而不是 `-[:REL]- (n:Label)` + fixed = re.sub(r'(\[:[^\]]+\])-\s+\(', r'\1-(', fixed) + + if fixed != cypher: + logger.info(f"[Cypher修复] 检测到并修复了常见语法错误") + logger.debug(f"[Cypher修复] 原始: {cypher[:200]}...") + logger.debug(f"[Cypher修复] 修复后: {fixed[:200]}...") + + return fixed diff --git a/graph_search/cypher_reset.py b/graph_search/cypher_reset.py new file mode 100644 index 0000000..292f532 --- /dev/null +++ b/graph_search/cypher_reset.py @@ -0,0 +1,600 @@ +import os +import httpx +import json +import requests +import warnings +from typing import List, Set, Tuple, Dict, Optional +import ast +warnings.filterwarnings("ignore", category=UserWarning, module='jieba._compat') +import re +import jieba +import jieba.posseg as pseg # ← 新增:词性标注,用于提取名词/关键词 +from neo4j import GraphDatabase +from neo4j_graphrag.retrievers import HybridCypherRetriever +from neo4j_graphrag.embeddings.base import Embedder +from langchain_community.graphs.neo4j_graph import Neo4jGraph +from openai import OpenAI + +# ================== 9. Prompt 模板 ================== +CYPHER_PROMPT = """ +你是一名专业的Cypher语法编写助手。你需要根据用户的问题、给定的Schema(实体类型和关系)以及向量检索到的相关实体,编写一条精准的Cypher查询语句。 + +# 编写请严格遵守以下规则: +1. **语法正确性**:确保编写的Cypher语法完全正确,符合Neo4j标准,不能包含任何语法错误。 +2. **入口节点**:根据检索到的结果,从结果选取入口实体,作为查询的起点,入口节点一定要和用户问题中描述的实体相关。例如入口节点为"发射控制单元",与问题"发射控制单元有哪些子设备"相关。 +2. **路径完整性**:根据用户问题的语义,结合Schema中定义的关系,构建完整且逻辑通顺的查询路径(例如:设备 -> 维修工作 -> 故障模式 -> 维修项目)。 +3. **最高分实体绑定原则(核心规则)**:在编写 `WHERE` 过滤条件时,必须严格遵循"最高分优先"原则。请仔细分析 `search_results`,**依次为路径中的每一个节点(如设备、维修工作、故障模式、维修项目等)匹配并绑定其对应的得分(Score)最高的实体名称**。从而构建出一条全链路得分最高的精准查询路径。 +4. **无冗余查询**:只返回与用户问题直接相关的节点属性,不要包含无关的查询或返回字段。 +5. 检索的相关实体关系是根据用户问题进行语义匹配,从而获取到的实体关系(标签表示实体类型,名称表示实体名称,得分表示该实体与问题的相关性),来源于图数据库真实保存,不能包含任何假设或推理。提供给你参考的实体类型和实体关系则主要是为了帮助你理解用户问题的语义,根据检索的实体关系构建Cypher查询语句,而不是为了直接查询数据库。 +6. 根据给你的实体关系,仔细分析用户的问题,撰写一条精准的Cypher查询语句,语句中不要出现任何假设或推理,只能根据提供给你的实体关系进行查询。 +#用户问题如下: +{query} +#实体类型和实体关系如下: +{filtered_schema} +#根据用户问题,从数据库中检索的相关实体如下: +{search_results} + +示例1: +用户问题:连杆大端轴承发生损坏异常该如何解决? +实体类型和实体关系如下: +实体: ["主要附件仪表的规格型号及性能参数", "使用期间安全防护及注意事项", "功能", "器材保障", "图册", "基本情况", "备品备件", "子系统", "安全保护措施及故障处理", "安全警告", "工作原理", "布置情况", "技术参数", "技术指标参数", "接口", "接口情况", "操作使用", "操作员与设备之间操作员与其他设备或系统设备员之间关系", "操作程序", "操作项目", "故障模式", "环境条件", "系统", "组成", "结构特点", "维修安全防护及注意事项汇总表", "维修工作", "维修项目", "维护保养", "舰船", "舰艇", "设备", "设计单位", "调试"] +关系: +(:组成)-[:包含]->(:设备) +(:维修工作)-[:包含故障]->(:故障模式) +(:维修工作)-[:表征]->(:故障模式) +(:维修项目)-[:修理]->(:故障模式) +(:设备)-[:包含]->(:工作原理) +(:设备)-[:包含]->(:布置情况) +(:设备)-[:包含]->(:技术参数) +(:设备)-[:包含]->(:接口情况) +(:设备)-[:包含]->(:操作员与设备之间操作员与其他设备或系统设备员之间关系) +(:设备)-[:包含]->(:组成) +(:设备)-[:包含]->(:结构特点) +(:设备)-[:包含]->(:维修安全防护及注意事项汇总表) +(:设备)-[:包含]->(:维护保养) +(:设备)-[:包括]->(:组成) +(:设备)-[:发生故障使用维修工作]->(:维修工作) +(:设备)-[:安全警告]->(:安全警告) +(:设备)-[:实现]->(:功能) +(:设备)-[:实现]->(:基本情况) +(:设备)-[:支持操作]->(:操作使用) +(:设备)-[:维修]->(:维修工作) +(:设备)-[:设计]->(:设计单位) +(:设备)-[:调试]->(:调试) +(:设备)-[:适用]->(:环境条件) +(:设备)-[:配备]->(:接口) +(:设备)-[:配套]->(:图册) +#根据用户问题,从数据库中找到的相关实体如下: +{{'标签': ['维修项目'], '名称': '修复连杆大端轴承异常磨损', '得分': 1.0}} +{{'标签': ['维修项目'], '名称': '更换连杆大端轴承', '得分': 0.9839502279586991}} +{{'标签': ['维修工作'], '名称': '连杆大端轴承维修工作指导', '得分': 0.9601912347183726}} +{{'标签': ['设备'], '名称': '连杆大端轴承', '得分': 0.9378418041605234}} +{{'标签': ['维修项目'], '名称': '更换连杆小段轴承', '得分': 0.9370194814204257}} +{{'标签': ['设备'], '名称': '连杆小端轴承', '得分': 0.9056004631162252}} +{{'标签': ['故障模式'], '名称': '主轴承或连杆大端轴承磨损导致主机运行中振动异常增大', '得分': 0.890951410907792}} +{{'标签': ['故障模式'], '名称': '主轴承或连杆大端轴承磨损导致机座与机架组件运行中振动异常增大', '得分': 0.8895577902640475}} +{{'标签': ['设备'], '名称': '连杆小段轴承', '得分': 0.8785823193324869}} +{{'标签': ['维修工作'], '名称': '传动轴的维修工作', '得分': 0.8768441389219146}} +输出为: +MATCH (d:设备)-[:发生故障使用维修工作]->(w:维修工作)-[:包含故障]->(f:故障模式)<-[:修理]-(p:维修项目) +WHERE d.名称 = '连杆大端轴承' + AND w.名称 = '连杆大端轴承维修工作指导' + AND f.名称 = '主轴承或连杆大端轴承磨损导致主机运行中振动异常增大' + AND p.名称 = '修复连杆大端轴承异常磨损' +RETURN w.名称 AS 维修工作名称, f.名称 AS 故障模式, p.名称 AS 维修项目名称 + +请根据上述规则、Schema定义以及检索到的相关实体,为用户问题"{query}"编写Cypher查询语句。 +输出为: +""" + +def build_cypher_prompt(query: str, filtered_schema: str, search_results: list) -> str: + return CYPHER_PROMPT.format( + query=query, + filtered_schema=filtered_schema, + search_results=search_results, + ) + + +# ================== 10. LLM 调用 ================== +def call_llm(prompt: str, model: str = "Qwen3.5-35B-A3B") -> str: + response = OpenAI( + api_key="none", + base_url="http://192.168.0.46:59800/v1", + ).chat.completions.create( + model=model, + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": prompt}, + ], + temperature=0.1, + stream=False, + extra_body={"chat_template_kwargs": {"enable_thinking": False}}, + ) + return response.choices[0].message.content + + +def extract_cypher(llm_output: str) -> str: + match = re.search(r"(MATCH[\s\S]+?RETURN[^\n]+(?:\n[^\n]+)*)", llm_output) + return match.group(1).strip() if match else llm_output.strip() + + +# ================== 11. Cypher 诊断基础工具 ================== + +def _run_query(session, cypher: str, **params) -> list: + try: + return list(session.run(cypher, **params)) + except Exception: + return [] + + +def _parse_alias_label(cypher: str) -> Dict[str, str]: + return { + alias: label.strip() + for alias, label in re.findall(r"\((\w+):([^\)]+)\)", cypher) + } + + +def _parse_alias_name(cypher: str) -> Dict[str, str]: + return { + alias: name + for alias, name in re.findall(r"(\w+)\.`?名称`?\s*=\s*'([^']+)'", cypher) + } + + +def _parse_segments(cypher: str) -> List[Tuple[str, str, str, str, str]]: + return [ + (sa.strip(), sl.strip(), r.strip(), ta.strip(), tl.strip()) + for sa, sl, r, ta, tl in re.findall( + r"\((\w+):([^\)]+)\)-\[:([^\]]+)\]->\((\w+):([^\)]+)\)", cypher + ) + ] + + +def _candidates_for_label(search_results: list, label: str) -> list: + return sorted( + [r for r in search_results if label in r.get("标签", [])], + key=lambda x: x.get("得分", 0), + reverse=True, + ) + + +def _test_segment( + session, + src_label: str, src_name: Optional[str], + rel: str, + tgt_label: str, tgt_name: Optional[str], +) -> int: + wheres = [] + if src_name: wheres.append("a.`名称` = $src") + if tgt_name: wheres.append("b.`名称` = $tgt") + where_clause = ("WHERE " + " AND ".join(wheres)) if wheres else "" + q = f"MATCH (a:{src_label})-[:{rel}]->(b:{tgt_label}) {where_clause} RETURN count(*) AS c" + rows = _run_query(session, q, src=src_name, tgt=tgt_name) + return rows[0]["c"] if rows else 0 + + +def _find_verified_replacement( + session, + src_label: str, src_name: Optional[str], + rel: str, + tgt_label: str, + candidates: list, + verbose: bool, +) -> Optional[str]: + for i, cand in enumerate(candidates): + cand_name = cand.get("名称", "") + if not cand_name: + continue + cnt = _test_segment(session, src_label, src_name, rel, tgt_label, cand_name) + icon = "✅" if cnt > 0 else " " + if verbose: + print(f" [{i+1}] {icon} '{cand_name}' (得分={cand.get('得分',0):.4f}) → 匹配:{cnt}") + if cnt > 0: + return cand_name + return None + + +# ================== 11b. 关系回退 + 最短路径工具 ================== + +def _relations_between_labels( + triples: List[Tuple[str, str, str]], + src_label: str, + tgt_label: str, +) -> List[str]: + return [ + rel for s, rel, t in triples + if s == src_label and t == tgt_label + ] + + +def _test_segment_with_rel( + session, + src_label: str, src_name: Optional[str], + rel: str, + tgt_label: str, tgt_name: Optional[str], +) -> int: + wheres = [] + if src_name: wheres.append("a.`名称` = $src") + if tgt_name: wheres.append("b.`名称` = $tgt") + where_clause = ("WHERE " + " AND ".join(wheres)) if wheres else "" + q = ( + f"MATCH (a:{src_label})-[:{rel}]->(b:{tgt_label}) " + f"{where_clause} RETURN count(*) AS c" + ) + rows = _run_query(session, q, src=src_name, tgt=tgt_name) + return rows[0]["c"] if rows else 0 + + +def _find_shortest_path( + session, + src_label: str, src_name: str, + tgt_label: str, tgt_name: str, + max_hops: int = 4, + verbose: bool = True, +) -> Optional[List[dict]]: + if tgt_name: + q = f""" + MATCH p = allShortestPaths( + (a:{src_label})-[*1..{max_hops}]->(b:{tgt_label}) + ) + WHERE a.`名称` = $src AND b.`名称` = $tgt + RETURN + [r IN relationships(p) | type(r)] AS rels, + [n IN nodes(p) | labels(n)[0]] AS node_labels, + [n IN nodes(p) | n.`名称`] AS node_names + LIMIT 1 + """ + rows = _run_query(session, q, src=src_name, tgt=tgt_name) + else: + q = f""" + MATCH p = allShortestPaths( + (a:{src_label})-[*1..{max_hops}]->(b:{tgt_label}) + ) + WHERE a.`名称` = $src + RETURN + [r IN relationships(p) | type(r)] AS rels, + [n IN nodes(p) | labels(n)[0]] AS node_labels, + [n IN nodes(p) | n.`名称`] AS node_names + LIMIT 1 + """ + rows = _run_query(session, q, src=src_name) + + if not rows: + if verbose: + print(f" ⚠️ allShortestPaths: 未找到路径 " + f"({src_label}:'{src_name}') → ({tgt_label}:'{tgt_name}')") + return None + + row = rows[0] + rels, labels_, names = row["rels"], row["node_labels"], row["node_names"] + if verbose: + path_str = " → ".join( + f"[:{r}]→({labels_[i+1]}:'{names[i+1]}')" + for i, r in enumerate(rels) + ) + print(f" ✅ 最短路径: ({src_label}:'{src_name}') → {path_str}") + + return [ + {"rel": rel, "tgt_label": labels_[i + 1], "tgt_name": names[i + 1]} + for i, rel in enumerate(rels) + ] + + +def _rebuild_cypher_from_path( + src_alias: str, + src_label: str, + src_name: str, + steps: List[dict], + return_clause: str, +) -> str: + aliases = [src_alias] + [f"n{i+1}" for i in range(len(steps))] + labels_ = [src_label] + [s["tgt_label"] for s in steps] + names = [src_name] + [s["tgt_name"] for s in steps] + rels = [s["rel"] for s in steps] + + path_parts = [f"({aliases[0]}:{labels_[0]})"] + for i, rel in enumerate(rels): + path_parts.append(f"-[:{rel}]->({aliases[i+1]}:{labels_[i+1]})") + match_clause = "MATCH " + "".join(path_parts) + + where_parts = [ + f"{alias}.`名称` = '{name}'" + for alias, name in zip(aliases, names) + if name + ] + where_clause = "WHERE " + "\n AND ".join(where_parts) if where_parts else "" + + return f"{match_clause}\n{where_clause}\nRETURN {return_clause}" + + +def strip_unverified_name_conditions(cypher: str, search_results: list) -> str: + valid_names = {r["名称"] for r in search_results} + pattern = re.compile(r"(\w+)\.`?名称`?\s*=\s*'([^']+)'") + + def remove_condition(cypher_str: str, alias: str, name: str) -> str: + patterns_to_try = [ + re.compile( + r"\s*AND\s+" + re.escape(alias) + r"\.`?名称`?\s*=\s*'" + re.escape(name) + r"'", + re.IGNORECASE, + ), + re.compile( + re.escape(alias) + r"\.`?名称`?\s*=\s*'" + re.escape(name) + r"'\s*AND\s*", + re.IGNORECASE, + ), + re.compile( + r"WHERE\s+" + re.escape(alias) + r"\.`?名称`?\s*=\s*'" + re.escape(name) + r"'", + re.IGNORECASE, + ), + ] + for p in patterns_to_try: + new_str = p.sub("", cypher_str) + if new_str != cypher_str: + new_str = re.sub(r"WHERE\s*(RETURN|$)", r"\1", new_str, flags=re.IGNORECASE) + return new_str.strip() + return cypher_str + + stripped = cypher + for match in pattern.finditer(cypher): + alias, name = match.group(1), match.group(2) + if name not in valid_names: + print(f"⚠️ 名称 '{name}' 不在检索结果中,移除条件: {alias}.名称 = '{name}'") + stripped = remove_condition(stripped, alias, name) + + return stripped + + +# ================== 12. 端到端链路诊断与修复 ================== + +def diagnose_and_fix_cypher( + cypher: str, + driver, + search_results: list, + schema_triples: List[Tuple[str, str, str]] = None, + verbose: bool = True, +) -> dict: + alias_label = _parse_alias_label(cypher) + alias_name = _parse_alias_name(cypher) + segments = _parse_segments(cypher) + current_names = dict(alias_name) + + return_match = re.search(r"RETURN\s+(.+)$", cypher, re.IGNORECASE | re.DOTALL) + return_clause = return_match.group(1).strip() if return_match else "*" + + if verbose: + print("\n" + "=" * 60) + print("🩺 端到端链路诊断(Pass A: 换名 / Pass B: 换关系 / Pass C: 最短路径)") + print("=" * 60) + print(f"📝 原始 Cypher:\n{cypher}\n") + print(f"🗂️ 初始名称绑定: {current_names}\n") + + with driver.session() as session: + + if _run_query(session, cypher): + if verbose: + print("✅ 完整查询有结果,无需修复。") + return { + "status": "ok", "chain_verified": True, + "diagnosis": "查询正常,有结果返回。", + "broken_segments": [], "fixed_cypher": None, + "final_names": current_names, + } + if verbose: + print("⚠️ 完整查询结果为空,开始逐段诊断...\n") + + broken_segments: list = [] + segment_reports: list = [] + + for seg_idx, (src_alias, src_label, rel, tgt_alias, tgt_label) in enumerate(segments): + src_name = current_names.get(src_alias) + tgt_name = current_names.get(tgt_alias) + + seg_desc = ( + f"段[{seg_idx+1}] " + f"({src_alias}:{src_label} '{src_name}')" + f" -[:{rel}]-> " + f"({tgt_alias}:{tgt_label} '{tgt_name}')" + ) + if verbose: + print(f" 验证 {seg_desc}") + + cnt = _test_segment(session, src_label, src_name, rel, tgt_label, tgt_name) + + if cnt > 0: + if verbose: + print(f" ✅ 通过 (匹配数: {cnt})\n") + segment_reports.append(f"✅ {seg_desc}") + continue + + # Pass A + if verbose: + print(f" ❌ 断链!Pass A: 尝试替换节点名称,保持关系 [:{rel}] 不变...") + cands = _candidates_for_label(search_results, tgt_label) + verified = _find_verified_replacement( + session, src_label, src_name, rel, tgt_label, cands, verbose + ) + if verified: + if verbose: + print(f" ✅ Pass A 修复: '{tgt_name}' → '{verified}'\n") + current_names[tgt_alias] = verified + segment_reports.append( + f"🔧 {seg_desc}\n → Pass A: 节点名 '{tgt_name}' 替换为 '{verified}'" + ) + broken_segments.append({ + "seg_idx": seg_idx + 1, "pass": "A", + "tgt_alias": tgt_alias, "tgt_label": tgt_label, + "original": tgt_name, "fixed": verified, + }) + continue + + # Pass B + if verbose: + print(f" ❌ Pass A 失败。Pass B: 遍历 schema 中 {src_label}→{tgt_label} 的所有关系...") + alt_rels = ( + _relations_between_labels(schema_triples, src_label, tgt_label) + if schema_triples else [] + ) + alt_rels = [r for r in alt_rels if r != rel] + + fixed_rel = None + fixed_tgt = tgt_name + + for alt_rel in alt_rels: + cnt2 = _test_segment_with_rel( + session, src_label, src_name, alt_rel, tgt_label, tgt_name + ) + if verbose: + icon = "✅" if cnt2 > 0 else " " + print(f" {icon} rel='{alt_rel}', tgt='{tgt_name}' → 匹配:{cnt2}") + if cnt2 > 0: + fixed_rel = alt_rel + break + + for cand in cands: + cname = cand.get("名称", "") + if not cname or cname == tgt_name: + continue + cnt3 = _test_segment_with_rel( + session, src_label, src_name, alt_rel, tgt_label, cname + ) + if verbose: + icon = "✅" if cnt3 > 0 else " " + print(f" {icon} rel='{alt_rel}', tgt='{cname}' → 匹配:{cnt3}") + if cnt3 > 0: + fixed_rel = alt_rel + fixed_tgt = cname + break + if fixed_rel: + break + + if fixed_rel: + cypher = cypher.replace(f"[:{rel}]", f"[:{fixed_rel}]", 1) + segments[seg_idx] = (src_alias, src_label, fixed_rel, tgt_alias, tgt_label) + if fixed_tgt != tgt_name: + current_names[tgt_alias] = fixed_tgt + if verbose: + print( + f" ✅ Pass B 修复: " + f"rel '[:{rel}]' → '[:{fixed_rel}]'" + + (f", 节点名 '{tgt_name}' → '{fixed_tgt}'" if fixed_tgt != tgt_name else "") + + "\n" + ) + segment_reports.append( + f"🔧 {seg_desc}\n" + f" → Pass B: rel '[:{rel}]'→'[:{fixed_rel}]'" + + (f", 节点名 '{tgt_name}'→'[:{fixed_tgt}]'" if fixed_tgt != tgt_name else "") + ) + broken_segments.append({ + "seg_idx": seg_idx + 1, "pass": "B", + "original_rel": rel, "fixed_rel": fixed_rel, + "tgt_alias": tgt_alias, + "original": tgt_name, "fixed": fixed_tgt, + }) + continue + + # Pass C + if verbose: + print(f" ❌ Pass B 失败。Pass C: allShortestPaths 探测真实路径...") + + first_alias = segments[0][0] + first_label = alias_label.get(first_alias, segments[0][1]) + first_name = current_names.get(first_alias, "") + + sp_steps = None + if first_name: + sp_steps = _find_shortest_path( + session, + src_label=first_label, src_name=first_name, + tgt_label=tgt_label, tgt_name=tgt_name or "", + max_hops=4, verbose=verbose, + ) + + if sp_steps: + new_cypher = _rebuild_cypher_from_path( + src_alias=first_alias, + src_label=first_label, + src_name=first_name, + steps=sp_steps, + return_clause=return_clause, + ) + if verbose: + print(f" ✅ Pass C 重建 Cypher:\n{new_cypher}\n") + if _run_query(session, new_cypher): + if verbose: + print("=" * 60) + print("✅ Pass C 链路修复成功(最短路径)") + print(f"\n💡 修正后的 Cypher:\n{new_cypher}") + print("=" * 60) + return { + "status": "fixed_by_shortest_path", + "chain_verified": True, + "diagnosis": "\n".join(segment_reports) + "\n✅ Pass C: 最短路径修复", + "broken_segments": broken_segments, + "fixed_cypher": new_cypher, + "final_names": current_names, + } + + if verbose: + print(f" ❌ Pass C 失败,三种策略均无法修复此段。\n") + segment_reports.append(f"❌ {seg_desc}\n → Pass A/B/C 均失败") + broken_segments.append({ + "seg_idx": seg_idx + 1, "pass": "failed", + "tgt_alias": tgt_alias, "tgt_label": tgt_label, + "original": tgt_name, "fixed": None, + }) + + fixed_cypher = cypher + for alias, original in alias_name.items(): + new = current_names.get(alias) + if new and new != original: + fixed_cypher = fixed_cypher.replace(f"'{original}'", f"'{new}'") + + chain_ok = bool(_run_query(session, fixed_cypher)) + + if verbose: + print("=" * 60) + print("📋 逐段诊断报告:") + for line in segment_reports: + print(f" {line}") + print(f"\n🗂️ 最终名称绑定: {current_names}") + status = "✅ 链路修复成功" if chain_ok else "⚠️ 仍有断链段(建议扩大 top_k 或检查数据)" + print(f"\n{status}") + print(f"\n💡 修正后的 Cypher:\n{fixed_cypher}") + print("=" * 60) + + return { + "status": "fixed" if chain_ok else "partial", + "chain_verified": chain_ok, + "diagnosis": "\n".join(segment_reports), + "broken_segments": broken_segments, + "fixed_cypher": fixed_cypher, + "final_names": current_names, + } +def get_response(query,filtered_schema,search_results,triples,driver): + prompt = build_cypher_prompt(query, filtered_schema, search_results) + print(prompt) + print("=" * 60) + llm_output = call_llm(prompt) + cypher = extract_cypher(llm_output) + cypher = strip_unverified_name_conditions(cypher, search_results) + + print("\n" + "=" * 60) + print("🤖 LLM 生成的 Cypher:") + print("=" * 60) + print(cypher) + + # ── 阶段五:端到端链路诊断与修复 ───────────────────────────────── + diag = diagnose_and_fix_cypher( + cypher=cypher, + driver=driver, + search_results=search_results, + schema_triples=triples, + verbose=True, + ) + + # ── 阶段六:执行最终 Cypher 并输出结果 ─────────────────────────── + final_cypher = diag["fixed_cypher"] if diag["fixed_cypher"] else cypher + print("\n" + "=" * 60) + print("🚀 执行最终 Cypher:") + print("=" * 60) + print(final_cypher) + diff --git a/graph_search/cypher_validator.py b/graph_search/cypher_validator.py new file mode 100644 index 0000000..35e1d57 --- /dev/null +++ b/graph_search/cypher_validator.py @@ -0,0 +1,350 @@ +""" +Cypher 验证模块 + +功能:验证 Cypher 语句的语法、Schema 和语义正确性 +""" + +import re +import json +import logging +from typing import Optional, List, Dict, Tuple, Any, Set +from neo4j.exceptions import CypherSyntaxError + +logger = logging.getLogger(__name__) + + +class CypherValidator: + """Cypher 验证器类""" + + def __init__( + self, + driver, + neo4j_schema: str, + allowed_node_types: Optional[List[str]] = None, + allowed_relationship_types: Optional[List[str]] = None + ): + """ + 初始化验证器 + + Args: + driver: Neo4j driver 实例 + neo4j_schema: Neo4j schema 字符串 + allowed_node_types: 允许的节点类型列表(从graph_service.py传递) + allowed_relationship_types: 允许的关系类型列表(从graph_service.py传递) + """ + self.driver = driver + self.neo4j_schema = neo4j_schema + # 使用传入的节点类型和关系类型,如果没有传入则使用空集合(不进行验证) + self.allowed_node_types = set(allowed_node_types) if allowed_node_types else set() + self.allowed_relationship_types = set(allowed_relationship_types) if allowed_relationship_types else set() + + def validate_syntax(self, cypher: str) -> Tuple[bool, Optional[str]]: + """ + 第一层验证:语法验证(快速检查) + """ + if not cypher or not cypher.strip(): + return False, "Cypher语句为空" + + cypher_upper = cypher.upper() + + # ========== 必须包含的关键字检查 ========== + if "MATCH" not in cypher_upper or "RETURN" not in cypher_upper: + return False, "缺少必要的Cypher关键字(MATCH/RETURN)" + + # ========== 危险操作检查(防止注入) ========== + dangerous = ["DELETE", "DROP", "REMOVE", "SET", "CREATE", "MERGE"] + for kw in dangerous: + # 使用正则表达式匹配完整的单词,避免匹配到属性名中的子串 + # 例如:避免将 created_at 中的 CREATE 误判为危险操作 + pattern = r'\b' + re.escape(kw) + r'\b' + matches = list(re.finditer(pattern, cypher_upper)) + if matches: + return_pos = cypher_upper.find("RETURN") + # 检查是否有危险关键字在RETURN之前(作为独立单词) + for match in matches: + kw_pos = match.start() + if return_pos == -1 or kw_pos < return_pos: + return False, f"检测到危险操作: {kw}" + + # ========== 括号匹配检查(使用栈方法,力扣经典题) ========== + # 使用栈来检查括号是否匹配 + bracket_stack = [] # 栈:存储 (位置, 括号类型, 上下文信息) + bracket_pairs = {')': '(', ']': '[', '}': '{'} + + i = 0 + while i < len(cypher): + char = cypher[i] + + # 遇到左括号,入栈 + if char in ['(', '[', '{']: + # 获取括号前的上下文(用于判断是否合法) + before_start = max(0, i - 30) + before_context = cypher[before_start:i] + bracket_stack.append((i, char, before_context)) + + # 遇到右括号,检查是否匹配 + elif char in [')', ']', '}']: + if not bracket_stack: + return False, f"括号不匹配:位置 {i} 处有多余的右括号 '{char}'" + + last_pos, last_char, last_context = bracket_stack.pop() + expected_left = bracket_pairs[char] + + if last_char != expected_left: + return False, f"括号类型不匹配:位置 {last_pos} 的 '{last_char}' 与位置 {i} 的 '{char}' 不匹配" + + i += 1 + + # 检查栈是否为空(所有括号是否都匹配) + if bracket_stack: + unmatched_pos, unmatched_char, _ = bracket_stack[0] + return False, f"括号不匹配:位置 {unmatched_pos} 处有未匹配的左括号 '{unmatched_char}'" + + # ========== 检查多余的括号嵌套(使用栈方法分析上下文) ========== + # 检查连续的左括号 `( (` 是否是合法的 + i = 0 + while i < len(cypher) - 1: + # 查找 `( (` 模式(外层括号) + if cypher[i] == '(': + # 跳过空白字符,查找内层括号 + inner_pos = i + 1 + while inner_pos < len(cypher) and cypher[inner_pos] in ' \t\n\r': + inner_pos += 1 + + # 如果找到内层括号 `(` + if inner_pos < len(cypher) and cypher[inner_pos] == '(': + # 获取上下文 + before_start = max(0, i - 30) + before_context = cypher[before_start:i] + after_end = min(len(cypher), inner_pos + 30) + after_context = cypher[inner_pos:after_end] + + # 检查是否是合法的括号嵌套 + is_valid = self._is_valid_bracket_nesting(before_context, after_context) + + if not is_valid: + error_context = cypher[max(0, i-30):min(len(cypher), inner_pos+30)] + return False, f"语法错误:检测到多余的括号。位置:...{error_context}..." + + i += 1 + + return True, None + + def _is_valid_bracket_nesting(self, before_context: str, after_context: str) -> bool: + """ + 判断括号嵌套是否合法 + """ + # 检查是否是节点定义(变量名后跟冒号) + # 支持中文字符,允许开头有空白字符 + is_node_def = re.match(r'\s*[a-zA-Z_\u4e00-\u9fa5][a-zA-Z0-9_\u4e00-\u9fa5]*\s*:', after_context) + + # 检查是否是属性访问(变量名后跟点号) + # 支持中文字符,允许开头有空白字符 + is_property_access = re.match(r'\s*[a-zA-Z_\u4e00-\u9fa5][a-zA-Z0-9_\u4e00-\u9fa5]*\s*\.', after_context) + + # 检查是否在WHERE/CASE/WHEN上下文中(这些上下文中的括号嵌套通常是合法的) + before_upper = before_context.upper() + is_in_where_context = ( + 'WHERE' in before_upper or + 'AND' in before_upper or + 'OR' in before_upper or + 'CASE' in before_upper or + 'WHEN' in before_upper or + 'THEN' in before_upper or + 'RETURN' in before_upper # RETURN子句中的CASE表达式也可能有括号嵌套 + ) + + # 检查是否在函数调用中(如 count(, sum(, max( 等) + is_in_function = re.search(r'[a-zA-Z_][a-zA-Z0-9_]*\s*\(\s*$', before_context) + + # 如果匹配任何一种合法情况,返回True + return is_node_def or is_property_access or is_in_where_context or is_in_function + + def dry_run(self, cypher: str, parse_error_func=None) -> Tuple[bool, Optional[str], Optional[Dict[str, Any]]]: + """ + 第三层验证:执行前验证(Dry Run,使用EXPLAIN检查) + + Args: + cypher: 待验证的Cypher语句 + parse_error_func: 错误解析函数(可选) + + Returns: + Tuple[bool, Optional[str], Optional[Dict]]: (是否有效, 错误信息, 错误详情) + 错误详情包含:error_type ('syntax_error' | 'schema_error'), error_message, error_position等 + """ + try: + explain_cypher = f"EXPLAIN {cypher}" + result = self.driver.execute_query(explain_cypher) + + summary = None + notifications = None + + # 方式1: 直接访问 result.summary + if hasattr(result, 'summary'): + summary = result.summary + # 方式2: 如果是元组,取第二个元素 + elif isinstance(result, tuple) and len(result) >= 2: + summary = result[1] + # 方式3: 尝试通过索引访问 + elif hasattr(result, '__getitem__'): + try: + if len(result) > 1: + summary = result[1] + except: + pass + + # 如果找到了 summary,尝试获取 notifications + if summary: + notifications = getattr(summary, 'notifications', None) + # 如果 notifications 是 None,尝试其他属性名 + if notifications is None: + for attr_name in ['notifications', '_notifications', 'warnings', '_warnings']: + if hasattr(summary, attr_name): + notifications = getattr(summary, attr_name) + break + + # 如果仍然没有找到,尝试直接从 result 访问 + if notifications is None: + for attr_name in ['notifications', '_notifications', 'summary', '_summary']: + if hasattr(result, attr_name): + obj = getattr(result, attr_name) + if hasattr(obj, 'notifications'): + notifications = obj.notifications + break + elif isinstance(obj, list): + notifications = obj + break + + return True, None, None + except CypherSyntaxError as e: + error_info = None + if parse_error_func: + error_info = parse_error_func(str(e), cypher) + # 确保 error_info 包含 error_type + if error_info: + error_info['error_type'] = 'syntax_error' + else: + error_info = {'error_type': 'syntax_error', 'error_message': str(e)} + return False, f"语法错误: {str(e)}", error_info + except Exception as e: + error_msg = str(e) + error_info = None + if parse_error_func: + error_info = parse_error_func(error_msg, cypher) + if "SyntaxError" in error_msg or "Syntax" in error_msg: + if error_info: + error_info['error_type'] = 'syntax_error' + else: + error_info = {'error_type': 'syntax_error', 'error_message': error_msg} + return False, f"语法错误: {error_msg}", error_info + # 其他异常,默认为语法错误 + if error_info: + error_info['error_type'] = 'syntax_error' + else: + error_info = {'error_type': 'syntax_error', 'error_message': error_msg} + return False, f"执行计划失败: {error_msg}", error_info + + def validate_schema(self, cypher: str) -> Tuple[bool, Optional[str]]: + """ + 第二层验证:Schema 验证(验证节点类型和关系类型) + + 简单逻辑:在 MATCH 后面找到 `-`,向前查找 `()` 或 `[]`,提取 `:` 后的内容进行验证。 + + Args: + cypher: 待验证的Cypher语句 + + Returns: + Tuple[bool, Optional[str]]: (是否有效, 错误信息) + """ + if not cypher or not cypher.strip(): + return False, "Cypher语句为空" + + # 如果节点类型和关系类型列表都为空,跳过验证 + if not self.allowed_node_types and not self.allowed_relationship_types: + return True, None + + cypher_upper = cypher.upper() + invalid_labels = [] + invalid_types = [] + + # 找到所有 MATCH 关键字的位置 + i = 0 + while i < len(cypher): + match_pos = cypher_upper.find("MATCH", i) + if match_pos == -1: + break + + # 从 MATCH 后开始查找,找到子句结束位置 + start_pos = match_pos + 5 + end_pos = len(cypher) + for keyword in ['WHERE', 'WITH', 'RETURN', 'OPTIONAL', 'MATCH']: + kw_pos = cypher_upper.find(keyword, start_pos) + if kw_pos != -1 and kw_pos < end_pos: + end_pos = kw_pos + + # 在 MATCH 子句范围内查找所有 `-` + pos = start_pos + while pos < end_pos: + dash_pos = cypher.find('-', pos, end_pos) + if dash_pos == -1: + break + + # 向前查找最近的 `(` 或 `[` + bracket_start = -1 + bracket_type = None + for j in range(dash_pos - 1, max(0, dash_pos - 200), -1): + if cypher[j] == '(': + bracket_start = j + bracket_type = '(' + break + elif cypher[j] == '[': + bracket_start = j + bracket_type = '[' + break + + if bracket_start != -1: + # 找到对应的右括号 + right_bracket = ')' if bracket_type == '(' else ']' + bracket_end = cypher.find(right_bracket, bracket_start + 1, dash_pos + 100) + + if bracket_end != -1: + # 提取括号内容 + content = cypher[bracket_start + 1:bracket_end] + # 查找 `:` 后的内容 + colon_pos = content.find(':') + if colon_pos != -1: + after_colon = content[colon_pos + 1:] + # 去除 `{}` 及其内容 + after_colon = re.sub(r'\{[^}]*\}', '', after_colon).strip() + + if bracket_type == '(': + # 节点标签,用 `:` 分隔 + for label in after_colon.split(':'): + label = label.strip() + # 只取第一个单词(去除空格后的内容) + label = re.split(r'[\s\{]', label)[0] + if label and self.allowed_node_types and label not in self.allowed_node_types: + invalid_labels.append(label) + else: + # 关系类型,用 `|` 分隔 + for rel_type in after_colon.split('|'): + rel_type = rel_type.strip() + # 只取关系类型本体,剥离可变长度/属性等修饰 + # 例如:`:包含*0..8` 应识别为关系类型 `包含` + # 例如:`:REL*` / `:REL*1..3` / `:REL {a:1}` / `:REL*0..8 {a:1}` + rel_type = re.split(r'[\s\{]', rel_type)[0] + rel_type = re.sub(r'\*.*$', '', rel_type).strip() + if rel_type and self.allowed_relationship_types and rel_type not in self.allowed_relationship_types: + invalid_types.append(rel_type) + + pos = dash_pos + 1 + + i = end_pos + + # 返回错误信息 + if invalid_labels: + return False, f"检测到不允许的节点类型: {', '.join(sorted(set(invalid_labels)))}" + if invalid_types: + return False, f"检测到不允许的关系类型: {', '.join(sorted(set(invalid_types)))}" + + return True, None diff --git a/graph_search/device_to_system.py b/graph_search/device_to_system.py new file mode 100644 index 0000000..00db53a --- /dev/null +++ b/graph_search/device_to_system.py @@ -0,0 +1,339 @@ +""" +=========================================== +设备到系统反向检索模块 - device_to_system +=========================================== +功能:根据设备名称,反向检索对应的系统节点 + 使用混合检索(向量+全文)匹配设备节点 + 然后反向遍历2-8级找到对应的系统节点 +=========================================== +""" + +import json +import os +import logging +import time +from typing import Any, Dict, List, Optional + +from dotenv import load_dotenv +from neo4j import AsyncGraphDatabase, GraphDatabase + +load_dotenv() + +logger = logging.getLogger(__name__) + +NEO4J_CONFIG = { + "uri": os.getenv("NEO4J_URI", "bolt://neo4j:7687"), + "user": os.getenv("NEO4J_USER", "neo4j"), + "password": os.getenv("NEO4J_PASSWORD", "zdht123@"), +} + + +class EmbeddingWrapper: + """嵌入模型包装器""" + def embed_documents(self, texts: List[str]) -> List[List[float]]: + """批量获取嵌入向量(一次性处理所有文本)""" + from modelsAPI.model_api import OpenaiAPI + + if not texts: + return [] + + try: + result = OpenaiAPI.batch_embeddings(texts) + if result and isinstance(result, list): + embedding_list = [item.get('embedding') if isinstance(item, dict) else item for item in result] + if embedding_list and len(embedding_list) == len(texts): + return embedding_list + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回数量不匹配,期望: {len(texts)}, 实际: {len(embedding_list) if embedding_list else 0}") + return [None] * len(texts) + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回格式异常") + return [None] * len(texts) + except Exception as e: + logger.error(f"EmbeddingWrapper: 批量向量化失败: {e}", exc_info=True) + return [None] * len(texts) + + +async def _match_device_with_retrieval( + session, + device_name: str, + sync_driver, + top_k: int = 10 +) -> Optional[Dict[str, Any]]: + """ + 使用 NodeRetrieval 混合检索匹配设备节点 + + Args: + session: Neo4j 异步会话 + device_name: 设备名称 + sync_driver: Neo4j 同步 driver(用于 NodeRetrieval) + top_k: 检索返回的节点数量上限 + + Returns: + 匹配到的设备节点信息,包含 id, name, labels, props, score + """ + from graph_search.node_retrieval import NodeRetrieval + + try: + embeddings = EmbeddingWrapper() + node_retrieval = NodeRetrieval(sync_driver, embeddings) + + route_res = [{"label": "设备", "entity": device_name}] + retrieved_nodes = await node_retrieval.retrieve_nodes(route_res, top_k=top_k) + + if not retrieved_nodes or "设备" not in retrieved_nodes: + logger.warning(f"NodeRetrieval 未检索到设备节点: {device_name}") + return None + + candidates = retrieved_nodes["设备"] + if not candidates: + return None + + logger.info(f"NodeRetrieval 检索到 {len(candidates)} 个设备节点候选") + + for i, node in enumerate(candidates): + node_data = node.get("node", {}) + candidate_name = node_data.get("名称") or node_data.get("name") or node.get("name", "") + logger.info(f" 候选 {i+1}: 名称={candidate_name}, score={node.get('score', 0.0)}") + + # 优先选择名称与查询精确匹配的候选(忽略大小写/空格),避免分数并列时选错 + device_key_norm = str(device_name).strip().lower() + exact_match = None + for node in candidates: + node_data = node.get("node", {}) + candidate_name = node_data.get("名称") or node_data.get("name") or node.get("name", "") + if candidate_name and str(candidate_name).strip().lower() == device_key_norm: + exact_match = node + logger.info(f" 命中精确名称匹配: {candidate_name}") + break + + best = exact_match if exact_match is not None else candidates[0] + node_data = best.get("node", {}) + best_name = node_data.get("名称") or node_data.get("name") or best.get("name", "") + + query = """ + MATCH (n:设备) + WHERE n.名称 = $name OR n.name = $name + RETURN elementId(n) AS id, n.名称 AS name, labels(n) AS labels, properties(n) AS props + LIMIT 1 + """ + result = await session.run(query, name=best_name) + record = await result.single() + + if record: + return { + "id": record.get("id"), + "name": record.get("name"), + "labels": record.get("labels"), + "props": record.get("props", {}), + "score": best.get("score", 0.0) + } + + return None + except Exception as e: + logger.error(f"_match_device_with_retrieval 失败: {e}", exc_info=True) + return None + + +async def find_system_by_device( + device_name: str, + min_hops: int = 2, + max_hops: int = 8, + top_k: int = 10, + driver=None, +) -> Dict[str, Any]: + """ + 根据设备名称反向检索对应的系统节点 + + Args: + device_name: 设备名称 + min_hops: 最小跳数(默认2级) + max_hops: 最大跳数(默认8级) + top_k: 混合检索返回的候选节点数量 + driver: Neo4j driver 实例(可选,如果不提供则创建新连接) + + Returns: + Dict: 检索结果,包含 success, systems, path 等字段 + """ + start_time = time.time() + + if not device_name or not str(device_name).strip(): + return {"success": False, "error": "设备名称不能为空"} + + uri = NEO4J_CONFIG.get("uri") + user = NEO4J_CONFIG.get("user") + password = NEO4J_CONFIG.get("password") + if not uri or not user or not password: + return {"success": False, "error": "Neo4j 配置不完整,请检查 NEO4J_CONFIG"} + + try: + # 总是创建新的异步 driver,忽略外部传入的同步 driver + driver = AsyncGraphDatabase.driver(uri, auth=(user, password)) + + async with driver.session() as session: + device_key = str(device_name).strip() + + logger.info(f"[设备到系统检索] 开始检索设备: {device_key}") + + sync_driver = GraphDatabase.driver(uri, auth=(user, password)) + try: + device_node = await _match_device_with_retrieval(session, device_key, sync_driver, top_k=top_k) + finally: + sync_driver.close() + + if not device_node: + return {"success": False, "error": "未找到匹配的设备节点"} + + device_id = device_node.get("id") + device_name_found = device_node.get("name") + logger.info(f"[设备到系统检索] 匹配到设备节点: {device_name_found}, id={device_id}, score={device_node.get('score', 0.0)}") + + system_query = """ + MATCH (d:设备) + WHERE elementId(d) = $device_id + MATCH (d)-[:包含*%d..%d]-(s:系统) + RETURN DISTINCT elementId(s) AS id, s.名称 AS name, labels(s) AS labels, properties(s) AS props + ORDER BY s.名称 + """ % (min_hops, max_hops) + + result = await session.run(system_query, device_id=device_id) + system_records = await result.data() + + if not system_records: + logger.warning(f"[设备到系统检索] 未找到设备对应的系统节点,尝试扩大搜索范围...") + extended_query = """ + MATCH (d:设备) + WHERE elementId(d) = $device_id + MATCH (d)-[:包含*1..10]-(s:系统) + RETURN DISTINCT elementId(s) AS id, s.名称 AS name, labels(s) AS labels, properties(s) AS props + ORDER BY s.名称 + """ + result = await session.run(extended_query, device_id=device_id) + system_records = await result.data() + + if not system_records: + return { + "success": False, + "error": "未找到设备对应的系统节点", + "device": { + "id": device_id, + "name": device_name_found, + "labels": device_node.get("labels", []), + "properties": device_node.get("props", {}) + } + } + + exclude_keys = { + "last_updated", + "created_at", + "knowledge_source", + "fulltext", + "embedding", + } + + systems = [] + for record in system_records: + props = record.get("props", {}) + props_filtered = {k: v for k, v in props.items() if k not in exclude_keys} + + systems.append({ + "id": record.get("id"), + "name": record.get("name"), + "labels": record.get("labels", []), + "properties": props_filtered, + }) + + logger.info(f"[设备到系统检索] 找到 {len(systems)} 个系统节点") + + path_query = """ + MATCH (d:设备) + WHERE elementId(d) = $device_id + MATCH path = (d)-[:包含*%d..%d]-(s:系统) + RETURN path + LIMIT 5 + """ % (min_hops, max_hops) + + result = await session.run(path_query, device_id=device_id) + path_records = await result.data() + + nodes_g: List[Dict[str, Any]] = [] + links_g: List[Dict[str, Any]] = [] + node_id_set = set() + + for path_record in path_records: + path = path_record.get("path") + if not path: + continue + + if hasattr(path, 'nodes'): + for node in path.nodes: + if node is None: + continue + nid = node.element_id if hasattr(node, 'element_id') else node.id + if nid in node_id_set: + continue + node_id_set.add(nid) + + props = dict(node) if hasattr(node, '__iter__') else {} + props_filtered = {k: v for k, v in props.items() if k not in exclude_keys} + + name = props.get("名称") or props.get("name") or str(nid) + labels = list(node.labels) if hasattr(node, 'labels') else [] + + nodes_g.append({ + "id": nid, + "name": name, + "labels": labels, + "properties": props_filtered, + }) + + if hasattr(path, 'relationships'): + for rel in path.relationships: + if rel is None: + continue + src = rel.start_node.element_id if hasattr(rel.start_node, 'element_id') else rel.start_node.id + tgt = rel.end_node.element_id if hasattr(rel.end_node, 'element_id') else rel.end_node.id + + if src not in node_id_set or tgt not in node_id_set: + continue + + links_g.append({ + "id": rel.element_id if hasattr(rel, 'element_id') else rel.id, + "label": rel.type if hasattr(rel, 'type') else str(rel.type), + "source": src, + "target": tgt, + }) + + elapsed_ms = (time.time() - start_time) * 1000 + logger.info(f"[时间统计] 设备到系统检索完成,耗时: {elapsed_ms:.2f}ms") + + return { + "success": True, + "device": { + "id": device_id, + "name": device_name_found, + "labels": device_node.get("labels", []), + "properties": {k: v for k, v in device_node.get("props", {}).items() if k not in exclude_keys}, + "match_score": device_node.get("score", 0.0) + }, + "systems": systems, + "graph": { + "nodes": nodes_g, + "links": links_g + }, + "meta": { + "elapsed_ms": round(elapsed_ms, 2), + "system_count": len(systems), + "min_hops": min_hops, + "max_hops": max_hops + } + } + + except Exception as e: + logger.error(f"[设备到系统检索] 检索失败: {e}", exc_info=True) + return {"success": False, "error": f"检索失败: {str(e)}"} + finally: + if driver is not None: + await driver.close() + + diff --git a/graph_search/device_to_system411.py b/graph_search/device_to_system411.py new file mode 100644 index 0000000..51c77b6 --- /dev/null +++ b/graph_search/device_to_system411.py @@ -0,0 +1,349 @@ +""" +=========================================== +设备到系统反向检索模块 - device_to_system +=========================================== +功能:根据设备名称,反向检索对应的系统节点 + 使用混合检索(向量+全文)匹配设备节点 + 然后反向遍历2-8级找到对应的系统节点 +=========================================== +""" + +import json +import os +import logging +import time +from typing import Any, Dict, List, Optional + +from dotenv import load_dotenv +from neo4j import AsyncGraphDatabase, GraphDatabase + +load_dotenv() + +logger = logging.getLogger(__name__) + +NEO4J_CONFIG = { + "uri": os.getenv("NEO4J_URI", "bolt://192.168.0.46:57687"), + "user": os.getenv("NEO4J_USER", "neo4j"), + "password": os.getenv("NEO4J_PASSWORD", "zdht123@"), +} + + +class EmbeddingWrapper: + """嵌入模型包装器""" + def embed_documents(self, texts: List[str]) -> List[List[float]]: + """批量获取嵌入向量(一次性处理所有文本)""" + from modelsAPI.model_api import OpenaiAPI + + if not texts: + return [] + + try: + result = OpenaiAPI.batch_embeddings(texts) + if result and isinstance(result, list): + embedding_list = [item.get('embedding') if isinstance(item, dict) else item for item in result] + if embedding_list and len(embedding_list) == len(texts): + return embedding_list + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回数量不匹配,期望: {len(texts)}, 实际: {len(embedding_list) if embedding_list else 0}") + return [None] * len(texts) + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回格式异常") + return [None] * len(texts) + except Exception as e: + logger.error(f"EmbeddingWrapper: 批量向量化失败: {e}", exc_info=True) + return [None] * len(texts) + + +async def _match_device_with_retrieval( + session, + device_name: str, + sync_driver, + top_k: int = 10 +) -> Optional[Dict[str, Any]]: + """ + 使用 NodeRetrieval 混合检索匹配设备节点 + + Args: + session: Neo4j 异步会话 + device_name: 设备名称 + sync_driver: Neo4j 同步 driver(用于 NodeRetrieval) + top_k: 检索返回的节点数量上限 + + Returns: + 匹配到的设备节点信息,包含 id, name, labels, props, score + """ + from graph_search.node_retrieval import NodeRetrieval + + try: + embeddings = EmbeddingWrapper() + node_retrieval = NodeRetrieval(sync_driver, embeddings) + + route_res = [{"label": "设备", "entity": device_name}] + retrieved_nodes = await node_retrieval.retrieve_nodes(route_res, top_k=top_k) + + if not retrieved_nodes or "设备" not in retrieved_nodes: + logger.warning(f"NodeRetrieval 未检索到设备节点: {device_name}") + return None + + candidates = retrieved_nodes["设备"] + if not candidates: + return None + + logger.info(f"NodeRetrieval 检索到 {len(candidates)} 个设备节点候选") + + for i, node in enumerate(candidates): + node_data = node.get("node", {}) + candidate_name = node_data.get("名称") or node_data.get("name") or node.get("name", "") + logger.info(f" 候选 {i+1}: 名称={candidate_name}, score={node.get('score', 0.0)}") + + best = candidates[0] + node_data = best.get("node", {}) + best_name = node_data.get("名称") or node_data.get("name") or best.get("name", "") + + query = """ + MATCH (n:设备) + WHERE n.名称 = $name OR n.name = $name + RETURN elementId(n) AS id, n.名称 AS name, labels(n) AS labels, properties(n) AS props + LIMIT 1 + """ + result = await session.run(query, name=best_name) + record = await result.single() + + if record: + return { + "id": record.get("id"), + "name": record.get("name"), + "labels": record.get("labels"), + "props": record.get("props", {}), + "score": best.get("score", 0.0) + } + + return None + except Exception as e: + logger.error(f"_match_device_with_retrieval 失败: {e}", exc_info=True) + return None + + +async def _do_find_system_by_device( + session, + device_name: str, + uri: str, + user: str, + password: str, + min_hops: int, + max_hops: int, + top_k: int, + start_time: float +) -> Dict[str, Any]: + """ + 执行设备到系统的检索逻辑(内部函数) + """ + device_key = str(device_name).strip() + + logger.info(f"[设备到系统检索] 开始检索设备: {device_key}") + + sync_driver = GraphDatabase.driver(uri, auth=(user, password)) + try: + device_node = await _match_device_with_retrieval(session, device_key, sync_driver, top_k=top_k) + finally: + sync_driver.close() + + if not device_node: + return {"success": False, "error": "未找到匹配的设备节点"} + + device_id = device_node.get("id") + device_name_found = device_node.get("name") + logger.info(f"[设备到系统检索] 匹配到设备节点: {device_name_found}, id={device_id}, score={device_node.get('score', 0.0)}") + + system_query = """ + MATCH (d:设备) + WHERE elementId(d) = $device_id + MATCH (d)-[:包含*%d..%d]-(s:系统) + RETURN DISTINCT elementId(s) AS id, s.名称 AS name, labels(s) AS labels, properties(s) AS props + ORDER BY s.名称 + """ % (min_hops, max_hops) + + result = await session.run(system_query, device_id=device_id) + system_records = await result.data() + + if not system_records: + logger.warning(f"[设备到系统检索] 未找到设备对应的系统节点,尝试扩大搜索范围...") + extended_query = """ + MATCH (d:设备) + WHERE elementId(d) = $device_id + MATCH (d)-[:包含*1..10]-(s:系统) + RETURN DISTINCT elementId(s) AS id, s.名称 AS name, labels(s) AS labels, properties(s) AS props + ORDER BY s.名称 + """ + result = await session.run(extended_query, device_id=device_id) + system_records = await result.data() + + if not system_records: + return { + "success": False, + "error": "未找到设备对应的系统节点", + "device": { + "id": device_id, + "name": device_name_found, + "labels": device_node.get("labels", []), + "properties": device_node.get("props", {}) + } + } + + exclude_keys = { + "last_updated", + "created_at", + "knowledge_source", + "fulltext", + "embedding", + } + + systems = [] + for record in system_records: + props = record.get("props", {}) + props_filtered = {k: v for k, v in props.items() if k not in exclude_keys} + + systems.append({ + "id": record.get("id"), + "name": record.get("name"), + "labels": record.get("labels", []), + "properties": props_filtered, + }) + + logger.info(f"[设备到系统检索] 找到 {len(systems)} 个系统节点") + + path_query = """ + MATCH (d:设备) + WHERE elementId(d) = $device_id + MATCH path = (d)-[:包含*%d..%d]-(s:系统) + RETURN path + LIMIT 5 + """ % (min_hops, max_hops) + + result = await session.run(path_query, device_id=device_id) + path_records = await result.data() + + nodes_g: List[Dict[str, Any]] = [] + links_g: List[Dict[str, Any]] = [] + node_id_set = set() + + for path_record in path_records: + path = path_record.get("path") + if not path: + continue + + if hasattr(path, 'nodes'): + for node in path.nodes: + if node is None: + continue + nid = node.element_id if hasattr(node, 'element_id') else node.id + if nid in node_id_set: + continue + node_id_set.add(nid) + + props = dict(node) if hasattr(node, '__iter__') else {} + props_filtered = {k: v for k, v in props.items() if k not in exclude_keys} + + name = props.get("名称") or props.get("name") or str(nid) + labels = list(node.labels) if hasattr(node, 'labels') else [] + + nodes_g.append({ + "id": nid, + "name": name, + "labels": labels, + "properties": props_filtered, + }) + + if hasattr(path, 'relationships'): + for rel in path.relationships: + if rel is None: + continue + src = rel.start_node.element_id if hasattr(rel.start_node, 'element_id') else rel.start_node.id + tgt = rel.end_node.element_id if hasattr(rel.end_node, 'element_id') else rel.end_node.id + + if src not in node_id_set or tgt not in node_id_set: + continue + + links_g.append({ + "id": rel.element_id if hasattr(rel, 'element_id') else rel.id, + "label": rel.type if hasattr(rel, 'type') else str(rel.type), + "source": src, + "target": tgt, + }) + + elapsed_ms = (time.time() - start_time) * 1000 + logger.info(f"[时间统计] 设备到系统检索完成,耗时: {elapsed_ms:.2f}ms") + + return { + "success": True, + "device": { + "id": device_id, + "name": device_name_found, + "labels": device_node.get("labels", []), + "properties": {k: v for k, v in device_node.get("props", {}).items() if k not in exclude_keys}, + "match_score": device_node.get("score", 0.0) + }, + "systems": systems, + "graph": { + "nodes": nodes_g, + "links": links_g + }, + "meta": { + "elapsed_ms": round(elapsed_ms, 2), + "system_count": len(systems), + "min_hops": min_hops, + "max_hops": max_hops + } + } + + +async def find_system_by_device( + device_name: str, + min_hops: int = 2, + max_hops: int = 8, + top_k: int = 10, + driver=None, +) -> Dict[str, Any]: + """ + 根据设备名称反向检索对应的系统节点 + + Args: + device_name: 设备名称 + min_hops: 最小跳数(默认2级) + max_hops: 最大跳数(默认8级) + top_k: 混合检索返回的候选节点数量 + driver: Neo4j driver 实例(可选,如果不提供则创建新连接) + + Returns: + Dict: 检索结果,包含 success, systems, path 等字段 + """ + start_time = time.time() + + if not device_name or not str(device_name).strip(): + return {"success": False, "error": "设备名称不能为空"} + + uri = NEO4J_CONFIG.get("uri") + user = NEO4J_CONFIG.get("user") + password = NEO4J_CONFIG.get("password") + if not uri or not user or not password: + return {"success": False, "error": "Neo4j 配置不完整,请检查 NEO4J_CONFIG"} + + external_driver = driver is not None + + try: + if external_driver: + async with driver.session() as session: + return await _do_find_system_by_device( + session, device_name, uri, user, password, min_hops, max_hops, top_k, start_time + ) + else: + async with AsyncGraphDatabase.driver(uri, auth=(user, password)) as driver: + async with driver.session() as session: + return await _do_find_system_by_device( + session, device_name, uri, user, password, min_hops, max_hops, top_k, start_time + ) + + except Exception as e: + logger.error(f"[设备到系统检索] 检索失败: {e}", exc_info=True) + return {"success": False, "error": f"检索失败: {str(e)}"} + diff --git a/graph_search/device_to_system625.py b/graph_search/device_to_system625.py new file mode 100644 index 0000000..e093509 --- /dev/null +++ b/graph_search/device_to_system625.py @@ -0,0 +1,327 @@ +""" +=========================================== +设备到系统反向检索模块 - device_to_system +=========================================== +功能:根据设备名称,反向检索对应的系统节点 + 使用混合检索(向量+全文)匹配设备节点 + 然后反向遍历2-8级找到对应的系统节点 +=========================================== +""" + +import json +import os +import logging +import time +from typing import Any, Dict, List, Optional + +from dotenv import load_dotenv +from neo4j import AsyncGraphDatabase, GraphDatabase + +load_dotenv() + +logger = logging.getLogger(__name__) + +NEO4J_CONFIG = { + "uri": os.getenv("NEO4J_URI", "bolt://neo4j:7687"), + "user": os.getenv("NEO4J_USER", "neo4j"), + "password": os.getenv("NEO4J_PASSWORD", "zdht123@"), +} + + +class EmbeddingWrapper: + """嵌入模型包装器""" + def embed_documents(self, texts: List[str]) -> List[List[float]]: + """批量获取嵌入向量(一次性处理所有文本)""" + from modelsAPI.model_api import OpenaiAPI + + if not texts: + return [] + + try: + result = OpenaiAPI.batch_embeddings(texts) + if result and isinstance(result, list): + embedding_list = [item.get('embedding') if isinstance(item, dict) else item for item in result] + if embedding_list and len(embedding_list) == len(texts): + return embedding_list + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回数量不匹配,期望: {len(texts)}, 实际: {len(embedding_list) if embedding_list else 0}") + return [None] * len(texts) + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回格式异常") + return [None] * len(texts) + except Exception as e: + logger.error(f"EmbeddingWrapper: 批量向量化失败: {e}", exc_info=True) + return [None] * len(texts) + + +async def _match_device_with_retrieval( + session, + device_name: str, + sync_driver, + top_k: int = 10 +) -> Optional[Dict[str, Any]]: + """ + 使用 NodeRetrieval 混合检索匹配设备节点 + + Args: + session: Neo4j 异步会话 + device_name: 设备名称 + sync_driver: Neo4j 同步 driver(用于 NodeRetrieval) + top_k: 检索返回的节点数量上限 + + Returns: + 匹配到的设备节点信息,包含 id, name, labels, props, score + """ + from graph_search.node_retrieval import NodeRetrieval + + try: + embeddings = EmbeddingWrapper() + node_retrieval = NodeRetrieval(sync_driver, embeddings) + + route_res = [{"label": "设备", "entity": device_name}] + retrieved_nodes = await node_retrieval.retrieve_nodes(route_res, top_k=top_k) + + if not retrieved_nodes or "设备" not in retrieved_nodes: + logger.warning(f"NodeRetrieval 未检索到设备节点: {device_name}") + return None + + candidates = retrieved_nodes["设备"] + if not candidates: + return None + + logger.info(f"NodeRetrieval 检索到 {len(candidates)} 个设备节点候选") + + for i, node in enumerate(candidates): + node_data = node.get("node", {}) + candidate_name = node_data.get("名称") or node_data.get("name") or node.get("name", "") + logger.info(f" 候选 {i+1}: 名称={candidate_name}, score={node.get('score', 0.0)}") + + best = candidates[0] + node_data = best.get("node", {}) + best_name = node_data.get("名称") or node_data.get("name") or best.get("name", "") + + query = """ + MATCH (n:设备) + WHERE n.名称 = $name OR n.name = $name + RETURN elementId(n) AS id, n.名称 AS name, labels(n) AS labels, properties(n) AS props + LIMIT 1 + """ + result = await session.run(query, name=best_name) + record = await result.single() + + if record: + return { + "id": record.get("id"), + "name": record.get("name"), + "labels": record.get("labels"), + "props": record.get("props", {}), + "score": best.get("score", 0.0) + } + + return None + except Exception as e: + logger.error(f"_match_device_with_retrieval 失败: {e}", exc_info=True) + return None + + +async def find_system_by_device( + device_name: str, + min_hops: int = 2, + max_hops: int = 8, + top_k: int = 10, + driver=None, +) -> Dict[str, Any]: + """ + 根据设备名称反向检索对应的系统节点 + + Args: + device_name: 设备名称 + min_hops: 最小跳数(默认2级) + max_hops: 最大跳数(默认8级) + top_k: 混合检索返回的候选节点数量 + driver: Neo4j driver 实例(可选,如果不提供则创建新连接) + + Returns: + Dict: 检索结果,包含 success, systems, path 等字段 + """ + start_time = time.time() + + if not device_name or not str(device_name).strip(): + return {"success": False, "error": "设备名称不能为空"} + + uri = NEO4J_CONFIG.get("uri") + user = NEO4J_CONFIG.get("user") + password = NEO4J_CONFIG.get("password") + if not uri or not user or not password: + return {"success": False, "error": "Neo4j 配置不完整,请检查 NEO4J_CONFIG"} + + try: + # 总是创建新的异步 driver,忽略外部传入的同步 driver + driver = AsyncGraphDatabase.driver(uri, auth=(user, password)) + + async with driver.session() as session: + device_key = str(device_name).strip() + + logger.info(f"[设备到系统检索] 开始检索设备: {device_key}") + + sync_driver = GraphDatabase.driver(uri, auth=(user, password)) + try: + device_node = await _match_device_with_retrieval(session, device_key, sync_driver, top_k=top_k) + finally: + sync_driver.close() + + if not device_node: + return {"success": False, "error": "未找到匹配的设备节点"} + + device_id = device_node.get("id") + device_name_found = device_node.get("name") + logger.info(f"[设备到系统检索] 匹配到设备节点: {device_name_found}, id={device_id}, score={device_node.get('score', 0.0)}") + + system_query = """ + MATCH (d:设备) + WHERE elementId(d) = $device_id + MATCH (d)-[:包含*%d..%d]-(s:系统) + RETURN DISTINCT elementId(s) AS id, s.名称 AS name, labels(s) AS labels, properties(s) AS props + ORDER BY s.名称 + """ % (min_hops, max_hops) + + result = await session.run(system_query, device_id=device_id) + system_records = await result.data() + + if not system_records: + logger.warning(f"[设备到系统检索] 未找到设备对应的系统节点,尝试扩大搜索范围...") + extended_query = """ + MATCH (d:设备) + WHERE elementId(d) = $device_id + MATCH (d)-[:包含*1..10]-(s:系统) + RETURN DISTINCT elementId(s) AS id, s.名称 AS name, labels(s) AS labels, properties(s) AS props + ORDER BY s.名称 + """ + result = await session.run(extended_query, device_id=device_id) + system_records = await result.data() + + if not system_records: + return { + "success": False, + "error": "未找到设备对应的系统节点", + "device": { + "id": device_id, + "name": device_name_found, + "labels": device_node.get("labels", []), + "properties": device_node.get("props", {}) + } + } + + exclude_keys = { + "last_updated", + "created_at", + "knowledge_source", + "fulltext", + "embedding", + } + + systems = [] + for record in system_records: + props = record.get("props", {}) + props_filtered = {k: v for k, v in props.items() if k not in exclude_keys} + + systems.append({ + "id": record.get("id"), + "name": record.get("name"), + "labels": record.get("labels", []), + "properties": props_filtered, + }) + + logger.info(f"[设备到系统检索] 找到 {len(systems)} 个系统节点") + + path_query = """ + MATCH (d:设备) + WHERE elementId(d) = $device_id + MATCH path = (d)-[:包含*%d..%d]-(s:系统) + RETURN path + LIMIT 5 + """ % (min_hops, max_hops) + + result = await session.run(path_query, device_id=device_id) + path_records = await result.data() + + nodes_g: List[Dict[str, Any]] = [] + links_g: List[Dict[str, Any]] = [] + node_id_set = set() + + for path_record in path_records: + path = path_record.get("path") + if not path: + continue + + if hasattr(path, 'nodes'): + for node in path.nodes: + if node is None: + continue + nid = node.element_id if hasattr(node, 'element_id') else node.id + if nid in node_id_set: + continue + node_id_set.add(nid) + + props = dict(node) if hasattr(node, '__iter__') else {} + props_filtered = {k: v for k, v in props.items() if k not in exclude_keys} + + name = props.get("名称") or props.get("name") or str(nid) + labels = list(node.labels) if hasattr(node, 'labels') else [] + + nodes_g.append({ + "id": nid, + "name": name, + "labels": labels, + "properties": props_filtered, + }) + + if hasattr(path, 'relationships'): + for rel in path.relationships: + if rel is None: + continue + src = rel.start_node.element_id if hasattr(rel.start_node, 'element_id') else rel.start_node.id + tgt = rel.end_node.element_id if hasattr(rel.end_node, 'element_id') else rel.end_node.id + + if src not in node_id_set or tgt not in node_id_set: + continue + + links_g.append({ + "id": rel.element_id if hasattr(rel, 'element_id') else rel.id, + "label": rel.type if hasattr(rel, 'type') else str(rel.type), + "source": src, + "target": tgt, + }) + + elapsed_ms = (time.time() - start_time) * 1000 + logger.info(f"[时间统计] 设备到系统检索完成,耗时: {elapsed_ms:.2f}ms") + + return { + "success": True, + "device": { + "id": device_id, + "name": device_name_found, + "labels": device_node.get("labels", []), + "properties": {k: v for k, v in device_node.get("props", {}).items() if k not in exclude_keys}, + "match_score": device_node.get("score", 0.0) + }, + "systems": systems, + "graph": { + "nodes": nodes_g, + "links": links_g + }, + "meta": { + "elapsed_ms": round(elapsed_ms, 2), + "system_count": len(systems), + "min_hops": min_hops, + "max_hops": max_hops + } + } + + except Exception as e: + logger.error(f"[设备到系统检索] 检索失败: {e}", exc_info=True) + return {"success": False, "error": f"检索失败: {str(e)}"} + finally: + if driver is not None: + await driver.close() + diff --git a/graph_search/entry_node_handler.py b/graph_search/entry_node_handler.py new file mode 100644 index 0000000..cb42136 --- /dev/null +++ b/graph_search/entry_node_handler.py @@ -0,0 +1,158 @@ +""" +入口节点处理模块 + +功能:过滤、排序和格式化入口节点 +""" + +import logging +from typing import Dict, List, Tuple, Any + +logger = logging.getLogger(__name__) + + +def filter_and_sort_entry_nodes(entry_nodes: dict,max_nodes_per_label: int = 5,min_score_threshold: float = 0.2,adaptive_limit: bool = True,min_total_nodes: int = 3,) -> dict: + """ + 过滤和重排序入口节点(按标签内排序和限制,带简单质量控制) + + 策略: + 1. 对每个标签内的节点按 score 降序排序; + 2. 过滤掉分数过低的节点(min_score_threshold 以下); + 3. 自适应限制:高分节点多时适当多留,低分节点多时按上限截断; + 4. 如果整体节点数量过少(例如 < min_total_nodes),在内存中做一次 + 跨标签的轻量补充,不新增任何数据库查询,几乎不增加运行时间。 + + Args: + entry_nodes: 入口节点字典,格式如 {"设备": [{"name": "xxx", "score": 0.9}]} + max_nodes_per_label: 每个标签最大节点数(默认 5) + min_score_threshold: 入口节点最低得分阈值(默认 0.2) + adaptive_limit: 是否根据得分分布自适应调整每个标签保留数量 + min_total_nodes: 全部标签合计至少保留的节点数量下限 + + Returns: + dict: 过滤和排序后的入口节点字典 + """ + if not entry_nodes: + return {} + + filtered: Dict[str, List[Dict[str, Any]]] = {} + + # ========== 1. 标签内排序 + 质量过滤 ========== + for label, nodes in entry_nodes.items(): + if not isinstance(nodes, list) or not nodes: + continue + + # 1.1 按 score 降序排序(标签内排序) + sorted_nodes = sorted(nodes, key=lambda x: x.get('score', 0), reverse=True) + + # 1.2 过滤低质量节点 + high_quality_nodes = [ + n for n in sorted_nodes + if n.get('score', 0) >= min_score_threshold + ] + if not high_quality_nodes: + # 如果全都低于阈值,则保底保留分数最高的 1 个,避免完全丢标签 + high_quality_nodes = sorted_nodes[:1] + + # 1.3 自适应限制 + if adaptive_limit: + # 认为 score >= 0.7 为"高置信度" + strong_nodes = [n for n in high_quality_nodes if n.get('score', 0) >= 0.7] + if len(strong_nodes) >= 1: + # 高置信度节点存在时,优先全部保留这些节点; + # 如果数量仍然超过上限,则再按上限截断。 + if len(strong_nodes) > max_nodes_per_label: + filtered_nodes = strong_nodes[:max_nodes_per_label] + else: + # 高置信度节点数量不多,可以再补少量次优节点 + remain = max_nodes_per_label - len(strong_nodes) + extra = [n for n in high_quality_nodes if n not in strong_nodes][:remain] + filtered_nodes = strong_nodes + extra + else: + # 没有高置信度节点,直接按上限截断 + filtered_nodes = high_quality_nodes[:max_nodes_per_label] + else: + filtered_nodes = high_quality_nodes[:max_nodes_per_label] + + if filtered_nodes: + filtered[label] = filtered_nodes + + total_before = sum(len(nodes) for nodes in entry_nodes.values() if isinstance(nodes, list)) + total_after = sum(len(nodes) for nodes in filtered.values()) + + # ========== 2. 结果过少时的轻量级跨标签补充 ========== + # 不触发任何新的检索,只在已有 entry_nodes 里做二次筛选, + # 对整体性能影响可以忽略。 + if total_after < min_total_nodes: + # 已经存在的 (label, id(node)),用于去重 + existing_keys = set() + for label, nodes in filtered.items(): + for n in nodes: + key = (label, n.get('name') or n.get('_name') or (n.get('node', {}).get('名称')) or id(n)) + existing_keys.add(key) + + # 收集所有可候选的节点 + candidates: List[Tuple[str, Dict[str, Any]]] = [] + for label, nodes in entry_nodes.items(): + if not isinstance(nodes, list): + continue + for n in nodes: + score = n.get('score', 0) + if score < min_score_threshold: + continue + key = (label, n.get('name') or n.get('_name') or (n.get('node', {}).get('名称')) or id(n)) + if key in existing_keys: + continue + candidates.append((label, n)) + + # 按 score 降序排序,补充若干个节点,直到达到 min_total_nodes 或候选耗尽 + candidates.sort(key=lambda x: x[1].get('score', 0), reverse=True) + for label, node in candidates: + if sum(len(nodes) for nodes in filtered.values()) >= min_total_nodes: + break + # 控制单个标签不会被过度补充,这里允许最多是 max_nodes_per_label 的 2 倍 + if len(filtered.get(label, [])) >= max_nodes_per_label * 2: + continue + filtered.setdefault(label, []).append(node) + + total_after = sum(len(nodes) for nodes in filtered.values()) + + logger.debug( + f"入口节点过滤: 原始 {total_before} 个节点 " + f"-> 过滤后 {total_after} 个节点 " + f"({len(filtered)} 个标签,每个标签最多 {max_nodes_per_label} 个, " + f"min_score_threshold={min_score_threshold}, adaptive_limit={adaptive_limit}, " + f"min_total_nodes={min_total_nodes})" + ) + + return filtered + + +def format_entry_nodes(entry_nodes: dict) -> str: + """ + 格式化入口节点信息 + + Args: + entry_nodes: 入口节点字典,格式如 {"设备": [{"name": "xxx", "score": 0.9}]} + + Returns: + str: 格式化后的节点信息字符串 + """ + if not entry_nodes: + return "无入口节点" + + formatted = [] + for label, nodes in entry_nodes.items(): + if isinstance(nodes, list) and nodes: + node_list = [] + # 显示所有节点(因为已经过滤过了) + for node in nodes: + name = node.get('name') or node.get('_name') or str(node) + score = node.get('score', 0) + node_list.append(f" - {name} (score: {score:.2f})") + formatted.append(f"{label}:\n" + "\n".join(node_list)) + elif nodes: + formatted.append(f"{label}: {nodes}") + + logger.info(f"入口节点: {formatted}") + return "\n\n".join(formatted) if formatted else "无入口节点" + diff --git a/graph_search/fault_graph_search.py b/graph_search/fault_graph_search.py new file mode 100644 index 0000000..abcc06f --- /dev/null +++ b/graph_search/fault_graph_search.py @@ -0,0 +1,491 @@ +import json +import os +import re + +from dotenv import load_dotenv +from neo4j import AsyncGraphDatabase +from typing import Any, Dict, List, Optional + +load_dotenv() + +NEO4J_CONFIG = { + "uri": os.getenv("NEO4J_URI", "bolt://192.168.0.46:57687"), + "user": os.getenv("NEO4J_USER", "neo4j"), + "password": os.getenv("NEO4J_PASSWORD","zdht123@"), +} + + +def _string_similarity(a: str, b: str) -> float: + """ + 简单字符串相似度:综合长度差、包含关系和公共字符比例。 + 0~1 之间,越大越相似。 + """ + if not a or not b: + return 0.0 + a = str(a).strip().lower() + b = str(b).strip().lower() + if not a or not b: + return 0.0 + if a == b: + return 1.0 + if a in b or b in a: + # 明确包含关系,给较高分 + return 0.9 + + # 公共字符集比例 + set_a, set_b = set(a), set(b) + inter = len(set_a & set_b) + union = len(set_a | set_b) or 1 + jaccard = inter / union + + # 长度差惩罚 + len_diff = abs(len(a) - len(b)) + len_penalty = max(0.0, 1.0 - len_diff / max(len(a), len(b), 1)) + + return 0.5 * jaccard + 0.5 * len_penalty + + +def _pick_best_by_name(candidates: List[Dict[str, Any]], target_name: str) -> Optional[Dict[str, Any]]: + """ + 在候选节点中,根据名称相似度选择最优节点。 + 约定每个节点为:{id, labels, props, display_name} + """ + if not candidates or not target_name: + return None + + best = None + best_score = 0.0 + for item in candidates: + name = (item.get("display_name") or "").strip() + if not name: + # 尝试从属性中推断名称 + props = item.get("props") or {} + name = props.get("name") or props.get("名称") or props.get("设备名称") or "" + score = _string_similarity(target_name, name) + if score > best_score: + best_score = score + best = item + + # 设置一个最低阈值,过于不相似则认为未命中 + return best if best_score >= 0.3 else None + + +def _extract_mt_codes(text: str) -> List[str]: + """ + 从文本中抽取形如 MT007 的维修项目编号(MT + 3位数字)。 + """ + if not text: + return [] + codes = re.findall(r"\bMT\d{3}\b", str(text)) + # 去重但保持顺序 + seen = set() + ordered: List[str] = [] + for c in codes: + if c not in seen: + seen.add(c) + ordered.append(c) + return ordered + + +def _node_record_to_dict(record: Any) -> Dict[str, Any]: + """ + 将 Cypher 返回的 id/labels/props 结构统一为字典。 + 约定 Cypher 中使用: + RETURN id(n) AS id, labels(n) AS labels, properties(n) AS props, <可选的 display_name> + """ + # neo4j.Record 提供 data() 方法;若不是 Record,则假定本身为 dict + if hasattr(record, "data"): + data = record.data() + else: + data = record or {} + return { + "id": data.get("id"), + "labels": data.get("labels") or [], + "props": data.get("props") or {}, + "display_name": data.get("display_name") + if "display_name" in data + else None, + } + + +def _to_graph_display_node(node_dict: Dict[str, Any]) -> Dict[str, Any]: + """将内部节点格式转为 graph_search 展示用节点:id、name、label。""" + nid = node_dict.get("id") + props = node_dict.get("props") or {} + name = ( + node_dict.get("display_name") + or props.get("名称") + or props.get("name") + or str(nid) + ) + labels = node_dict.get("labels") or [] + label = labels[0] if labels else "" + return {"id": nid, "name": name, "label": label} + + +def _build_fault_graph_display( + ship_node: Optional[Dict[str, Any]], + device_node: Optional[Dict[str, Any]], + fault_mode_node: Optional[Dict[str, Any]], + repair_projects: List[Dict[str, Any]], +) -> tuple: + """ + 构建与 graph_search 一致的图谱展示结构:nodes 与 links。 + 返回 (nodes: list, links: list)。 + 关系:舰艇-包含->设备,设备-存在->故障模式,设备-维修时使用->维修项目。 + """ + nodes: List[Dict[str, Any]] = [] + links: List[Dict[str, Any]] = [] + seen_ids = set() + + def add_node(nd: Optional[Dict[str, Any]]): + if not nd or nd.get("id") in seen_ids: + return + seen_ids.add(nd["id"]) + nodes.append(_to_graph_display_node(nd)) + + def add_link(source_id: Any, target_id: Any, rel_type: str = ""): + links.append({"source": source_id, "target": target_id, "type": rel_type}) + + if ship_node: + add_node(ship_node) + if device_node: + add_node(device_node) + if ship_node: + add_link(ship_node["id"], device_node["id"], "包含") + if fault_mode_node: + add_node(fault_mode_node) + if device_node: + add_link(device_node["id"], fault_mode_node["id"], "存在") + for p in repair_projects or []: + add_node(p) + if device_node: + add_link(device_node["id"], p["id"], "维修时使用") + + return nodes, links + + +def _build_fault_graph_results_text( + ship_node: Optional[Dict[str, Any]], + device_node: Optional[Dict[str, Any]], + fault_mode_node: Optional[Dict[str, Any]], + fault_reason: str, + repair_plan: str, + mt_codes: List[str], + repair_projects: List[Dict[str, Any]], + ship_number: str, + device_name: str, + fault_symptom: str, +) -> str: + """生成与 graph_rag_search 类似的一段话,供展示与下游使用。""" + ship_name = "" + if ship_node: + ship_name = (ship_node.get("display_name") or (ship_node.get("props") or {}).get("名称") or "").strip() + device_name_d = "" + if device_node: + device_name_d = (device_node.get("display_name") or (device_node.get("props") or {}).get("名称") or "").strip() + fault_name = "" + if fault_mode_node: + fault_name = (fault_mode_node.get("display_name") or (fault_mode_node.get("props") or {}).get("名称") or "").strip() + + parts = [ + f"根据舷号「{ship_number}」、设备「{device_name}」、故障现象「{fault_symptom}」进行图谱检索:", + f"定位到舰艇「{ship_name or '未知'}」、设备节点「{device_name_d or '未知'}」、故障模式「{fault_name or '未知'}」。", + ] + if fault_reason: + parts.append(f"故障原因:{fault_reason}") + if repair_plan: + parts.append(f"维修方案摘要:{repair_plan[:500]}{'…' if len(repair_plan) > 500 else ''}") + if mt_codes: + parts.append(f"涉及维修项目编号:{'、'.join(mt_codes)}。") + if repair_projects: + proj_names = [] + for p in repair_projects: + nm = (p.get("display_name") or (p.get("props") or {}).get("名称") or (p.get("props") or {}).get("维修项目编号") or "").strip() + if nm: + proj_names.append(nm) + if proj_names: + parts.append(f"匹配到的维修项目:{'、'.join(proj_names)}。") + return "\n".join(parts) + +async def fault_graph_reason_and_projects( + ship_number: str, + device_name: str, + fault_symptom: str, +) -> Dict[str, Any]: + """ + 图谱检索工具 + """ + + if not ship_number or not str(ship_number).strip(): + return {"success": False, "error": "舷号不能为空"} + if not device_name or not str(device_name).strip(): + return {"success": False, "error": "设备名称不能为空"} + if not fault_symptom or not str(fault_symptom).strip(): + return {"success": False, "error": "故障现象不能为空"} + + uri = NEO4J_CONFIG.get("uri") + user = NEO4J_CONFIG.get("user") + password = NEO4J_CONFIG.get("password") + if not uri or not user or not password: + return {"success": False, "error": "Neo4j 配置不完整,请检查 NEO4J_CONFIG"} + + try: + async with AsyncGraphDatabase.driver(uri, auth=(user, password)) as driver: + async with driver.session() as session: + ship_key = str(ship_number).strip() + device_key = str(device_name).strip() + + # 1) 先按舷号定位舰艇节点(限定范围) + ship_query = """ + MATCH (s:舰艇) + WHERE s.舷号 IN [$ship_key] + RETURN DISTINCT + id(s) AS id, + labels(s) AS labels, + properties(s) AS props, + coalesce(s.名称, s.name, s.舷号) AS display_name + LIMIT 10 + """ + ship_records = await session.run(ship_query, ship_key=ship_key) + ship_candidates = [_node_record_to_dict(r) async for r in ship_records] + if not ship_candidates: + return {"success": False, "error": "在图谱中未找到对应舷号的舰艇节点"} + ship_node = ship_candidates[0] + ship_id = ship_node["id"] + + # 2) 在该舰艇范围内定位设备候选节点 + device_query = """ + MATCH (ship:舰艇) + WHERE id(ship) = $ship_id + MATCH (ship)-[:包含*0..8]->(n:设备) + WITH n, coalesce(n.名称, n.name, n.设备名称) AS nm + WHERE nm IS NOT NULL AND ( + toLower(nm) CONTAINS toLower($device_key) + OR toLower($device_key) CONTAINS toLower(nm) + ) + RETURN DISTINCT + id(n) AS id, + labels(n) AS labels, + properties(n) AS props, + nm AS display_name + LIMIT 50 + """ + dev_records = await session.run( + device_query, ship_id=ship_id, device_key=device_key + ) + device_candidates = [_node_record_to_dict(r) async for r in dev_records] + device_node = _pick_best_by_name(device_candidates, device_key) + if not device_node: + return {"success": False, "error": "在该舰艇范围内未找到匹配的设备节点"} + device_id = device_node["id"] + + # 3) 设备 -> (包含层级中的真实设备)-> 维修工作 -> 故障模式 + # 路径示例: + # (start_e:设备 {名称:'主发动机'})-[:包含*0..8]-(real_e:设备) + # -[:发生故障使用维修工作]-(w:维修工作)-[:包含故障]-(fm:故障模式) + fault_mode_query = """ + MATCH (start_e:设备) + WHERE id(start_e) = $device_id + MATCH (start_e)-[:包含*0..8]-(real_e:设备) + MATCH (real_e)-[:发生故障使用维修工作]-(w:维修工作)-[:包含故障]-(fm:故障模式) + RETURN DISTINCT + id(fm) AS id, + labels(fm) AS labels, + properties(fm) AS props, + fm.名称 AS display_name + """ + fm_records = await session.run(fault_mode_query, device_id=device_id) + fault_modes = [_node_record_to_dict(r) async for r in fm_records] + if not fault_modes: + return {"success": False, "error": "在该设备节点下未找到故障模式节点"} + + fault_mode_node = _pick_best_by_name(fault_modes, fault_symptom) + if not fault_mode_node: + return {"success": False, "error": "未能在故障模式节点中找到与故障现象足够匹配的节点"} + + fault_mode_id = fault_mode_node.get("id") + if fault_mode_id is None: + return {"success": False, "error": "故障模式节点缺少 id,无法继续检索维修项目"} + + fm_props = fault_mode_node.get("props") or {} + fault_reason = fm_props.get("故障原因") or "" + repair_plan = fm_props.get("维修方案") or "" + mt_codes = _extract_mt_codes(repair_plan) + + # 4) 故障模式 -> 维修项目(维修方案) + repair_project_query = """ + MATCH (fm:故障模式) + WHERE id(fm) = $fault_mode_id + OPTIONAL MATCH (fm)<-[:修理]-(p:维修项目) + RETURN DISTINCT + id(p) AS id, + labels(p) AS labels, + properties(p) AS props, + p.名称 AS display_name + """ + rp_records = await session.run( + repair_project_query, fault_mode_id=fault_mode_id + ) + all_projects = [_node_record_to_dict(r) async for r in rp_records] + + repair_projects: List[Dict[str, Any]] = [] + if mt_codes: + for proj in all_projects: + props = proj.get("props") or {} + proj_code = (props.get("维修项目编号") or "").strip() + if proj_code and ( + proj_code in mt_codes or any(c in proj_code for c in mt_codes) + ): + repair_projects.append(proj) + elif not proj_code: + values_text = " ".join( + [str(v) for v in props.values() if v is not None] + ) + if any(code in values_text for code in mt_codes): + repair_projects.append(proj) + else: + repair_projects = all_projects + + repair_ids = [ + p.get("id") for p in repair_projects if p.get("id") is not None + ] + + exclude_keys = { + "last_updated", + "created_at", + "knowledge_source", + "fulltext", + "embedding", + } + + # 4) nodes:包含路径上的设备 / 维修工作 / 故障模式 / 维修项目 + graph_nodes_query = """ + MATCH (ship:舰艇) + WHERE id(ship) = $ship_id + MATCH (start_e:设备) + WHERE id(start_e) = $device_id + MATCH path0 = (ship)-[:包含*0..8]->(start_e) + MATCH path1 = (start_e)-[:包含*0..8]-(real_e:设备) + MATCH path2 = (real_e)-[:发生故障使用维修工作]-(w:维修工作)-[:包含故障]-(fm:故障模式) + WHERE id(fm) = $fault_mode_id + OPTIONAL MATCH (fm)<-[:修理]-(rp:维修项目) + WHERE id(rp) IN $repair_ids + WITH path0, path1, path2, collect(DISTINCT rp) AS rps + WITH nodes(path0) + nodes(path1) + nodes(path2) + rps AS ns + UNWIND ns AS n + WITH DISTINCT n + WHERE n IS NOT NULL + RETURN elementId(n) AS id, + labels(n) AS labels, + coalesce(n.名称, n.name) AS name, + properties(n) AS props + """ + node_records = await session.run( + graph_nodes_query, + ship_id=ship_id, + device_id=device_id, + fault_mode_id=fault_mode_id, + repair_ids=repair_ids or [-1], + ) + + nodes_g: List[Dict[str, Any]] = [] + async for r in node_records: + data_r = r.data() + nid = data_r.get("id") + if nid is None: + continue + labels = data_r.get("labels") or [] + name = data_r.get("name") or str(nid) + props = data_r.get("props") or {} + props_filtered = { + k: v for k, v in props.items() if k not in exclude_keys + } + nodes_g.append( + { + "id": nid, + "name": name, + "labels": labels, + "properties": props_filtered, + } + ) + + # 5) links:包含 / 发生故障使用维修工作 / 包含故障 / 修理 + graph_links_query = """ + MATCH (ship:舰艇) + WHERE id(ship) = $ship_id + MATCH (start_e:设备) + WHERE id(start_e) = $device_id + MATCH path0 = (ship)-[:包含*0..8]->(start_e) + MATCH path1 = (start_e)-[:包含*0..8]-(real_e:设备) + MATCH path2 = (real_e)-[:发生故障使用维修工作]-(w:维修工作)-[:包含故障]-(fm:故障模式) + WHERE id(fm) = $fault_mode_id + WITH relationships(path0) + relationships(path1) + relationships(path2) AS rs + UNWIND rs AS r + RETURN elementId(r) AS id, + type(r) AS label, + elementId(startNode(r)) AS source, + elementId(endNode(r)) AS target, + properties(r) AS props + UNION + MATCH (fm:故障模式) + WHERE id(fm) = $fault_mode_id + MATCH (fm)<-[r:修理]-(rp:维修项目) + WHERE id(rp) IN $repair_ids + RETURN elementId(r) AS id, + type(r) AS label, + elementId(startNode(r)) AS source, + elementId(endNode(r)) AS target, + properties(r) AS props + """ + link_records = await session.run( + graph_links_query, + ship_id=ship_id, + device_id=device_id, + fault_mode_id=fault_mode_id, + repair_ids=repair_ids or [-1], + ) + + links_g: List[Dict[str, Any]] = [] + async for r in link_records: + data_r = r.data() + src = data_r.get("source") + tgt = data_r.get("target") + if src is None or tgt is None: + continue + rel_props = data_r.get("props") or {} + rel_props_filtered = { + k: v for k, v in rel_props.items() if k not in exclude_keys + } + links_g.append( + { + "id": data_r.get("id"), + "label": data_r.get("label", ""), + "source": src, + "target": tgt, + "properties": rel_props_filtered, + } + ) + + node_ids = {n["id"] for n in nodes_g} + links_g = [ + l + for l in links_g + if l.get("source") in node_ids and l.get("target") in node_ids + ] + + repair_plans_data: List[Dict[str, Any]] = [] + for p in repair_projects: + props = p.get("props") or {} + filtered = {k: v for k, v in props.items() if k not in exclude_keys} + if filtered: + repair_plans_data.append(filtered) + + results_obj = {"fault_reason": fault_reason, "repair_plans": repair_plans_data} + results_text = json.dumps(results_obj, ensure_ascii=False) + + graph_item = {"nodes": nodes_g, "links": links_g, "results": results_text} + return {"success": True, "xxxx.graph": [graph_item]} + + except Exception as e: + return {"success": False, "error": f"Neo4j 查询失败: {str(e)}"} diff --git a/graph_search/graph_retrieval.py b/graph_search/graph_retrieval.py new file mode 100644 index 0000000..97602c2 --- /dev/null +++ b/graph_search/graph_retrieval.py @@ -0,0 +1,883 @@ +""" +=========================================== +图谱检索模块 - GraphRetrieval +=========================================== +""" +import logging +import time +import os +from typing import Optional, List, Dict, Tuple, Any, Literal +# 导入拆分后的模块 +from graph_search.query_intent import is_aggregate_query +from graph_search.cypher_validator import CypherValidator +from graph_search.cypher_fixer import parse_cypher_error,force_undirected_relationships,fix_cypher_based_on_error,fix_common_cypher_errors +from graph_search.entry_node_handler import filter_and_sort_entry_nodes,format_entry_nodes +from graph_search.result_formatter import format_entry_nodes_as_results +from graph_search.aggregate_handler import extract_aggregate_functions, is_aggregate_result_zero +from graph_search.init_prompts import * +# 加载 .env 文件中的环境变量 +try: + from dotenv import load_dotenv + load_dotenv() +except ImportError: + # 如果 python-dotenv 未安装,跳过加载(环境变量可能已通过其他方式设置) + pass + +logger = logging.getLogger(__name__) + +# ========== ========== 导入依赖 ========== ========== +# 注意:需要安装以下包 +# pip install neo4j langchain langchain-community neo4j-graphrag +from langchain_core.prompts import ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate +from neo4j_graphrag.retrievers.text2cypher import extract_cypher + + +class GraphRetrieval: + """ + 知识图谱检索模块(带完整验证) + + 功能说明: + 1. 生成Cypher查询语句(支持错误反馈自动修正) + 2. 多层验证:语法、Schema、Dry Run、LLM语义验证 + 3. 多轮生成和修正机制(错误反馈给生成函数) + 4. 降级策略:模板匹配 -> LLM生成 -> 简单查询 + """ + def __init__(self, + driver, # Neo4j driver(GraphDatabase.driver实例) + neo4j_schema: str, # Neo4j schema字符串(从graph_service.py传递,由Neo4jGraph获取) + llm = None, # LLM实例(用于生成和验证Cypher,如ChatTongyi) + allowed_node_types: List[str] = None, # 允许的节点类型列表(从graph_service.py传递) + allowed_relationship_types: List[str] = None, # 允许的关系类型列表(从graph_service.py传递) + ): + """ + 初始化图谱检索器 + """ + self.driver = driver + self.neo4j_schema = neo4j_schema # 完整schema(字符串格式,从graph_service.py传递) + self.llm = llm + # Dry Run验证 + self.skip_dry_run_validation = False + # ========== 配置选项:Cypher生成最大尝试次数 ========== + # 配置方式:在 .env 文件中添加 CYPHER_MAX_ATTEMPTS=2 或 CYPHER_MAX_ATTEMPTS=3 + self.default_max_attempts = int(os.getenv("CYPHER_MAX_ATTEMPTS", "2")) + logger.info(f"GraphRetrieval: Cypher生成默认最大尝试次数: {self.default_max_attempts}(通过 .env 文件或环境变量 CYPHER_MAX_ATTEMPTS 配置)") + + # ========== 保存最后使用的Cypher(用于调试) ========== + self.last_cypher = None + + # ========== 初始化验证器 ========== + self.validator = CypherValidator( + driver=self.driver, + neo4j_schema=self.neo4j_schema, + allowed_node_types=allowed_node_types, + allowed_relationship_types=allowed_relationship_types + ) + + def _force_undirected_relationships(self, cypher: str) -> str: + """包装函数,调用模块中的函数""" + return force_undirected_relationships(cypher) + + def _parse_cypher_error(self, error_message: str, cypher: str) -> Dict[str, Any]: + """包装函数,调用模块中的函数""" + return parse_cypher_error(error_message, cypher) + + def _fix_cypher_based_on_error(self, cypher: str, error_info: Dict[str, Any]) -> Optional[str]: + """包装函数,调用模块中的函数""" + return fix_cypher_based_on_error(cypher, error_info) + + def _fix_common_cypher_errors(self, cypher: str) -> str: + """包装函数,调用模块中的函数""" + return fix_common_cypher_errors(cypher) + + # ========== ========== 规则验证层 ========== ========== + + def validate_cypher_syntax(self, cypher: str) -> Tuple[bool, Optional[str]]: + """包装函数,调用验证器""" + return self.validator.validate_syntax(cypher) + + def validate_cypher_schema(self, cypher: str) -> Tuple[bool, Optional[str]]: + """包装函数,调用验证器的schema验证""" + return self.validator.validate_schema(cypher) + + def dry_run_cypher(self, cypher: str) -> Tuple[bool, Optional[str], Optional[Dict[str, Any]]]: + """包装函数,调用验证器""" + return self.validator.dry_run(cypher, parse_error_func=self._parse_cypher_error) + + # ========== ========== Cypher生成(支持错误反馈) ========== ========== + + async def generate_cypher( + self, + query: str, + entry_nodes: dict, + previous_cypher: Optional[str] = None, + validation_errors: Optional[List[str]] = None, + is_aggregate: bool = False, + error_type: Optional[str] = None, # 'syntax_error' | 'schema_error' | 'empty_result' + query_classification: Optional[Dict[str, Any]] = None, # 从重写中获得的分类信息(可选) + ) -> Optional[str]: + """ + 生成Cypher语句(支持错误反馈,自动修正) + """ + from graph_search.query_intent import ( + has_time_in_query, + get_current_date_info, + classify_time_aggregate_type + ) + + is_correction = validation_errors and previous_cypher + + # ========== 判断是否包含时间信息(优先使用分类信息) ========== + if query_classification: + has_time = query_classification.get("has_time", False) + # 如果分类信息中有 time_type,直接使用;否则根据 has_time 和 is_aggregate 判断 + if is_aggregate and has_time: + time_aggregate_type = query_classification.get("time_type") + # 如果 time_type 为 None,尝试自动识别 + if time_aggregate_type is None: + time_aggregate_type = classify_time_aggregate_type(query) + else: + time_aggregate_type = None + logger.info(f"使用分类信息: has_time={has_time}, time_aggregate_type={time_aggregate_type}") + else: + # 如果没有分类信息,使用原有逻辑 + has_time = has_time_in_query(query) + time_aggregate_type = None + if is_aggregate and has_time: + time_aggregate_type = classify_time_aggregate_type(query) + logger.info(f"使用自动识别: has_time={has_time}, time_aggregate_type={time_aggregate_type}") + + # ========== 获取系统时间信息(如果需要) ========== + current_date_info = "" + current_date_info_section = "" + date_info = {} + current_month_int = None # 整数类型的月份(用于 prompt 中的 {current_month:02d} 格式化) + current_month_formatted = "" # 格式化的月份字符串(如 "01", "12") + if has_time: + date_info = get_current_date_info() + current_date_info = "\n".join([f"- {k}: {v}" for k, v in date_info.items()]) + current_date_info_section = f"系统时间信息:\n{current_date_info}\n\n" + # 获取整数类型的月份(用于 prompt 模板中的 {current_month:02d} 格式化) + current_month_int = int(date_info.get('current_month', 1)) + # 同时提供格式化好的字符串版本(备用) + current_month_formatted = f"{current_month_int:02d}" + + # ========== 过滤和排序入口节点(按标签内排序和限制) ========== + # 注意:如果 entry_nodes 已经在 search 方法中过滤过,这里再次过滤是幂等的(结果相同) + entry_nodes = filter_and_sort_entry_nodes( + entry_nodes, + max_nodes_per_label=5 + ) + + # ========== 格式化入口节点信息 ========== + + entry_nodes_str = format_entry_nodes(entry_nodes) + + # ========== 路径模板占位说明 ========== + # 注意:路径模板生成功能已移除,LLM 需要根据 schema 自行选择合理的路径 + path_templates_str = "(请根据 schema 和入口节点信息,自行选择合理的查询路径。)" + + # ========== 根据统计 / 普通查询,构造查询意图提示 ========== + if is_aggregate: + # 统计类:强制要求使用聚合函数,返回简洁聚合结果 + query_intent_hint = ( + "【查询类型】统计类问题,请根据用户问题和入口节点,生成包含聚合函数的 Cypher 查询," + "例如使用 COUNT、SUM、AVG、MAX、MIN 等,返回精简的聚合结果(如总数、平均值、排名等)," + "不要返回大量明细记录。\n" + ) + else: + # 明细类:正常检索,用于后续 RAG + query_intent_hint = ( + "【查询类型】检索类问题,请根据用户问题和入口节点,生成返回明细节点/关系的 Cypher 查询," + "用于后续的图谱问答检索。\n" + ) + + full_query = query_intent_hint + query + + # ========== 根据是否有错误,选择不同的prompt ========== + if validation_errors and previous_cypher: + # ========== 修正模式:包含错误信息和之前的Cypher ========== + errors_str = "\n".join([f" - {err}" for err in validation_errors]) + + # ========== 根据错误类型选择对应的修正 prompt(统计类和明细类都使用相同的分类) ========== + if error_type == 'syntax_error': + # 语法错误:使用专门的语法修正 prompt + prompt = correct_syntax_cypher_prompt.format_prompt( + schema=self.neo4j_schema, + entry_nodes=entry_nodes_str, + query=full_query, + errors=errors_str, + cypher=previous_cypher + ) + elif error_type == 'schema_error': + # Schema错误:使用专门的 Schema 修正 prompt + prompt = correct_schema_cypher_prompt.format_prompt( + schema=self.neo4j_schema, + entry_nodes=entry_nodes_str, + query=full_query, + errors=errors_str, + cypher=previous_cypher + ) + elif error_type == 'empty_result': + # 空结果错误:使用专门的空结果修正 prompt + prompt = correct_empty_result_cypher_prompt.format_prompt( + schema=self.neo4j_schema, + entry_nodes=entry_nodes_str, + query=full_query, + errors=errors_str, + cypher=previous_cypher + ) + else: + # 未分类错误:使用通用修正 prompt(向后兼容) + # 统计类使用 correct_aggregate_cypher_prompt,明细类使用 correct_cypher_prompt + if is_aggregate: + prompt = correct_aggregate_cypher_prompt.format_prompt( + schema=self.neo4j_schema, + entry_nodes=entry_nodes_str, + query=full_query, + errors=errors_str, + cypher=previous_cypher + ) + else: + prompt = correct_cypher_prompt.format_prompt( + schema=self.neo4j_schema, + entry_nodes=entry_nodes_str, + query=full_query, + errors=errors_str, + cypher=previous_cypher + ) + else: + # ========== 初始生成模式 ========== + if is_aggregate: + # 统计类:根据是否带时间选择不同的prompt + if has_time: + # 时间统计查询:根据时间段类型选择对应的prompt + if time_aggregate_type == "single": + # 单时间段统计 + prompt = generate_single_time_aggregate_cypher_prompt.format_prompt( + schema=self.neo4j_schema, + entry_nodes=entry_nodes_str, + query=full_query, + current_date_info=current_date_info, + current_year=date_info.get("current_year", ""), + current_month=current_month_int, # 传递整数,支持 :02d 格式化 + last_year=date_info.get("last_year", ""), + next_year=date_info.get("next_year", ""), + next_month_start=date_info.get("next_month_start", ""), + ) + elif time_aggregate_type == "dual": + # 双时间段统计(同比/环比) + # 计算上月(last_month)和前年(last_last_year,用于多时间段) + last_month = "" + if current_month_formatted: + month_int = int(current_month_formatted) + year_int = int(date_info.get("current_year", "2025")) + if month_int == 1: + last_month = f"{year_int - 1}-12" + else: + last_month = f"{year_int}-{month_int - 1:02d}" + + prompt = generate_dual_time_aggregate_cypher_prompt.format_prompt( + schema=self.neo4j_schema, + entry_nodes=entry_nodes_str, + query=full_query, + current_date_info=current_date_info, + current_year=date_info.get("current_year", ""), + current_month=current_month_int, # 传递整数,支持 :02d 格式化 + last_year=date_info.get("last_year", ""), + last_month=last_month, + ) + else: # multi + # 多时间段统计 + # 计算前年(last_last_year) + last_last_year = str(int(date_info.get("current_year", "2025")) - 2) if date_info else "" + prompt = generate_multi_time_aggregate_cypher_prompt.format_prompt( + schema=self.neo4j_schema, + entry_nodes=entry_nodes_str, + query=full_query, + current_date_info=current_date_info, + current_year=date_info.get("current_year", ""), + last_year=date_info.get("last_year", ""), + last_last_year=last_last_year, + ) + else: + # 普通统计查询:使用原有prompt + prompt = generate_aggregate_cypher_prompt.format_prompt( + schema=self.neo4j_schema, # 使用完整schema + entry_nodes=entry_nodes_str, + query=full_query, + path_templates=path_templates_str, + ) + else: + # 普通查询:支持时间过滤(在prompt中已包含时间处理说明) + prompt = generate_cypher_prompt.format_prompt( + schema=self.neo4j_schema, # 使用完整schema + entry_nodes=entry_nodes_str, + query=full_query, + path_templates=path_templates_str, + current_date_info=current_date_info if has_time else "", + current_year=date_info.get("current_year", "") if has_time else "", + current_month=current_month_int if has_time else 1, # 传递整数,支持 :02d 格式化 + next_year=date_info.get("next_year", "") if has_time else "", + next_month_start=date_info.get("next_month_start", "") if has_time else "", + current_date_info_section=current_date_info_section, + ) + + + try: + # ========== 调用LLM生成Cypher ========== + # prompt可能是字符串或ChatPromptTemplate对象 + if isinstance(prompt, str): + query_text = prompt + elif hasattr(prompt, 'messages'): + # 如果是ChatPromptTemplate格式,转换为字符串 + messages = prompt.messages + query_text = "\n".join([ + msg.content for msg in messages + if hasattr(msg, 'content') and msg.content + ]) + else: + query_text = str(prompt) + + llm_output = await self.llm.ainvoke(query_text) + + # ========== 提取Cypher语句 ========== + content = llm_output.content if hasattr(llm_output, 'content') else str(llm_output) + + # ========== 【新增】过滤 Qwen 的 标签 ========== + import re + content = re.sub(r'.*?', '', content, flags=re.DOTALL).strip() + + # 优先尝试从标记中提取(如果 LLM 按照格式输出) + cypher = None + if "【Cypher查询语句】" in content or "Cypher查询语句" in content: + # 查找标记后的内容 + markers = ["【Cypher查询语句】", "Cypher查询语句", "Cypher:", "Cypher语句:"] + for marker in markers: + marker_pos = content.find(marker) + if marker_pos != -1: + # 提取标记后的内容 + cypher_text = content[marker_pos + len(marker):].strip() + # 使用 extract_cypher 提取 + cypher = extract_cypher(cypher_text) + if cypher: + break + + # 如果标记提取失败,使用原有的 extract_cypher(会从整个内容中提取) + if not cypher: + cypher = extract_cypher(content) + + if cypher: + # ========== 后处理:修复常见语法错误 ========== + cypher = self._fix_common_cypher_errors(cypher) + + # ========== 强制转换为无方向关系(确保所有关系都是无方向的) ========== + # 即使prompt中已要求无方向关系,也要强制转换作为安全措施 + cypher = self._force_undirected_relationships(cypher) + + # 打印更全面的 Cypher 日志,便于调试(长度做一个上限,避免日志爆炸) + preview = cypher if len(cypher) <= 1000 else cypher[:1000] + "..." + logger.info(f"Cypher生成完整语句:\n{preview}") + else: + logger.warning(f"Cypher生成结果为空,LLM原始输出: {str(content)[:500]}...") + return cypher + except Exception as e: + logger.error(f"LLM生成Cypher失败: {e}") + return None + + # ========== ========== 多轮生成和验证 ========== ========== + + async def generate_and_validate_cypher( + self, + query: str, + entry_nodes: dict, + max_attempts: int = 3, + is_aggregate: bool = False, + query_classification: Optional[Dict[str, Any]] = None, # 从重写中获得的分类信息(可选) + ) -> Tuple[Optional[str], List[str]]: + """ + 生成和验证Cypher(完整流程:多轮生成+验证+自动修正) + + 工作流程: + 1. 生成Cypher语句 + 2. 验证Cypher语句(语法+LLM语义验证) + 3. 如果有错误,将错误反馈给生成函数,重新生成 + 4. 关系方向校正 + 5. 返回最终Cypher + """ + errors_log = [] + previous_cypher = None + error_type = None # 当前错误类型:'syntax_error' | 'schema_error' | 'empty_result' + + for attempt in range(1, max_attempts + 1): + # ========== 1. 生成/修正Cypher ========== + cypher = await self.generate_cypher( + query=query, + entry_nodes=entry_nodes, + previous_cypher=previous_cypher, + validation_errors=errors_log if attempt > 1 else None, + is_aggregate=is_aggregate, + error_type=error_type, # 传递错误类型,用于选择对应的修正 prompt + query_classification=query_classification, # 传递分类信息 + ) + + if not cypher: + errors_log.append(f"第{attempt}轮: Cypher生成失败") + continue + + # ========== 2. 快速规则验证(必须通过) ========== + syntax_valid, syntax_error = self.validate_cypher_syntax(cypher) + + if not syntax_valid: + errors_log.append(f"语法错误: {syntax_error}") + error_type = 'syntax_error' # 标记为语法错误 + previous_cypher = cypher + continue + + # ========== 3. Schema验证(在Dry Run之前执行) ========== + schema_valid, schema_error = self.validate_cypher_schema(cypher) + + if not schema_valid: + errors_log.append(f"Schema错误: {schema_error}") + error_type = 'schema_error' + previous_cypher = cypher + continue + + # ========== 4. Dry Run验证(可选,可通过环境变量跳过) ========== + if self.skip_dry_run_validation: + dry_run_valid, dry_run_error, error_info = True, None, None # 跳过验证 + else: + dry_run_valid, dry_run_error, error_info = self.dry_run_cypher(cypher) + + if not dry_run_valid: + # ========== 从 error_info 中提取错误类型 ========== + if error_info and error_info.get('error_type'): + error_type = error_info['error_type'] # 'syntax_error' 或 'schema_error' + else: + # 如果 error_info 中没有 error_type,根据错误信息推断 + if 'Schema错误' in dry_run_error or 'schema' in dry_run_error.lower(): + error_type = 'schema_error' + else: + error_type = 'syntax_error' + + # ========== 对于其他错误,尝试基于实际错误信息进行智能修复 ========== + if error_info: + fixed_cypher = self._fix_cypher_based_on_error(cypher, error_info) + if fixed_cypher and fixed_cypher != cypher: + logger.info(f"[智能修复] 基于Dry Run错误信息自动修复Cypher") + logger.debug(f"[智能修复] 原始: {cypher[:200]}...") + logger.debug(f"[智能修复] 修复后: {fixed_cypher[:200]}...") + # 重新验证修复后的Cypher + cypher = fixed_cypher + error_type = None # 重置错误类型,重新验证 + # 重新进行验证(从语法验证开始) + continue + + # 如果无法自动修复,记录错误并继续 + error_detail = f"执行计划错误: {dry_run_error}" + if error_info and error_info.get("error_position"): + pos = error_info["error_position"] + error_detail += f" (位置: 第{pos.get('line', '?')}行, 第{pos.get('column', '?')}列)" + errors_log.append(error_detail) + previous_cypher = cypher + continue + + # ========== 所有验证通过 ========== + # 注意:关系方向校正已移除,因为prompt中已明确要求使用无方向关系 + self.last_cypher = cypher # 保存最后使用的Cypher + return cypher, errors_log + + # ========== 所有尝试都失败 ========== + logger.error(f"GraphRetrieval: Cypher生成失败,所有{max_attempts}轮尝试均失败") + return None, errors_log + + async def search( + self, + query: str, + entry_nodes: dict, + max_attempts: int = None, + query_type: Literal["auto", "aggregate", "detail"] = "auto", + query_classification: Optional[Dict[str, Any]] = None, + ) -> List[Dict[str, Any]]: + """ + 执行图谱检索(完整流程) + """ + search_start = time.time() + logger.info("GraphRetrieval.search: 开始图谱检索") + + # ========== 0. 过滤入口节点 ========== + entry_nodes = filter_and_sort_entry_nodes(entry_nodes, max_nodes_per_label=5) + logger.info("输出过滤后的入口节点") +# logger.info(entry_nodes[0].get("名称")) +# logger.info(entry_nodes) + + + # ========== 1. 判断是否为聚合查询 ========== + if query_classification: + classification_query_type = query_classification.get("query_type", "detail") + is_aggregate = (classification_query_type == "aggregate") + else: + if query_type == "aggregate": + is_aggregate = True + elif query_type == "detail": + is_aggregate = False + else: + is_aggregate = is_aggregate_query(query) + + # ========== 2. 生成 Cypher ========== + if max_attempts is None: + max_attempts = self.default_max_attempts + + cypher, errors = await self.generate_and_validate_cypher( + query=query, + entry_nodes=entry_nodes, + max_attempts=max_attempts, + is_aggregate=is_aggregate, + query_classification=query_classification, + ) + + if not cypher: + return await self._fallback_to_simple_or_entry_nodes(query, entry_nodes, is_aggregate) + + # ========== 3. 执行查询(支持拆分)========== + records, path_records = self._execute_cypher_with_split(cypher, is_aggregate) + + # ========== 4. 处理空结果或 0 值(仅聚合)========== + if not records: + logger.warning("Cypher查询结果为空,尝试重试") + new_cypher, _ = await self.generate_and_validate_cypher( + query=query, + entry_nodes=entry_nodes, + max_attempts=max_attempts, + is_aggregate=is_aggregate, + query_classification=query_classification, + ) + if new_cypher and new_cypher != cypher: + new_records, new_path_records = self._execute_cypher_with_split(new_cypher, is_aggregate) + if new_records: + self.last_cypher = new_cypher + return self._process_results(new_records, new_path_records, query, is_aggregate) + + elif is_aggregate and is_aggregate_result_zero([dict(r) for r in records], cypher): + logger.warning("统计类查询返回0,尝试重试") + new_cypher, _ = await self.generate_and_validate_cypher( + query=query, + entry_nodes=entry_nodes, + max_attempts=max_attempts, + is_aggregate=is_aggregate, + query_classification=query_classification, + ) + if new_cypher and new_cypher != cypher: + new_records, new_path_records = self._execute_cypher_with_split(new_cypher, is_aggregate) + if new_records: + self.last_cypher = new_cypher + return self._process_results(new_records, new_path_records, query, is_aggregate) + + # ========== 5. 正常返回 ========== + self.last_cypher = cypher + result = self._process_results(records, path_records, query, is_aggregate) + + search_elapsed = (time.time() - search_start) * 1000 + logger.info(f"[时间统计] GraphRetrieval.search: 完成,总耗时: {search_elapsed:.2f}ms, 结果数: {len(result)}") + return result + + def _execute_cypher_with_split(self, cypher: str, is_aggregate: bool): + """执行 Cypher,支持拆分为 path + aggregate""" + path_cypher, aggregate_cypher = self._split_aggregate_cypher(cypher) + + if path_cypher and aggregate_cypher: + logger.info("[Cypher拆分] 执行 path 和 aggregate 查询") + try: + path_result = self.driver.execute_query(path_cypher) + path_records = path_result.records + except Exception as e: + logger.warning(f"[Cypher拆分] Path 查询失败: {e}") + path_records = None + + try: + aggregate_result = self.driver.execute_query(aggregate_cypher) + records = aggregate_result.records + except Exception as e: + logger.error(f"[Cypher拆分] Aggregate 查询失败: {e},回退到原始 Cypher") + result = self.driver.execute_query(cypher) + return result.records, None + return records, path_records + else: + result = self.driver.execute_query(cypher) + return result.records, None + + def _process_results( + self, + records, + path_records, + query: str, + is_aggregate: bool + ) -> List[Dict[str, Any]]: + """ + 统一处理查询结果: + - 聚合查询:注入 result 到 path,rerank path + - 非聚合:确保每条记录有可序列化的 'result' 字段,并 rerank + """ + + if is_aggregate: + aggregate_results = [dict(r) for r in records] + aggregate_value = aggregate_results[0].get('result', aggregate_results[0]) + + if path_records: + raw_results = [dict(r) for r in path_records] + # 注入聚合值 + for res in raw_results: + res['result'] = aggregate_value + if raw_results: + raw_results[0]['_aggregate_value'] = aggregate_value + + raw_results = self._rerank_results(raw_results, query, is_aggregate=False) + return raw_results + else: + return aggregate_results + + + else: + value_results = [dict(r) for r in records] + if path_records: + raw_results = [dict(r) for r in path_records] + # 注入明细查询结果,防止 value_results 索引越界 + for i in range(len(raw_results)): + if i < len(value_results): + raw_results[i]['result'] = value_results[i] + else: + raw_results[i]['result'] = None # 或 {}、""、[] 等默认值 + + raw_results = self._rerank_results(raw_results, query, is_aggregate=False) + return raw_results + else: + return value_results + + async def _fallback_to_simple_or_entry_nodes( + self, + query: str, + entry_nodes: dict, + is_aggregate: bool, + ) -> List[Dict[str, Any]]: + """降级:先试简单模板,再试入口节点""" + # 尝试简单模板 + simple_cypher = self._generate_simple_template_cypher(entry_nodes, query, is_aggregate) + if simple_cypher: + try: + result = self.driver.execute_query(simple_cypher) + if result.records: + raw_results = [dict(r) for r in result.records] + raw_results = self._rerank_results(raw_results, query, is_aggregate) + logger.info(f"[降级策略] 简单模板查询成功,返回 {len(raw_results)} 条结果") + return raw_results + except Exception as e: + logger.warning(f"[降级策略] 简单模板查询失败: {e}") + + # 兜底:入口节点 + fallback_results = format_entry_nodes_as_results(entry_nodes) + if fallback_results: + logger.info(f"[降级策略] 返回 {len(fallback_results)} 条入口节点信息(兜底)") + return fallback_results + return [] + + + def _split_aggregate_cypher(self, cypher: str) -> Tuple[Optional[str], Optional[str]]: + if not cypher or not cypher.strip(): + return None, None + + try: + import re + + # 提取 MATCH 模式部分(支持前导任意内容,如 "cypher\n") + match_match = re.search( + r'(?i)\bMATCH\s+(.+?)(?=\s+\b(?:WHERE|WITH|RETURN)\b)', + cypher, + re.DOTALL + ) + if not match_match: + logger.warning(f"[Cypher处理] 未找到合法的 MATCH 子句。输入片段: {cypher[:100]}...") + return None, None + + full_match_clause = match_match.group(1).strip() + + # 提取 WHERE 子句(如果有) + where_match = re.search( + r'(?i)\bWHERE\s+(.+?)(?=\s+\b(?:WITH|RETURN)\b)', + cypher, + re.DOTALL + ) + where_clause = " WHERE " + where_match.group(1).strip() if where_match else "" + + # 取第一个连通模式(逗号分隔时只取第一个) + patterns = [p.strip() for p in full_match_clause.split(',') if p.strip()] + if not patterns: + logger.warning("[Cypher处理] MATCH 子句中无有效模式") + return None, None + + first_pattern = patterns[0] + + # 构造 path 查询(自动命名 path 变量) + path_var = "path" + path_pattern = f"{path_var} = {first_pattern}" + + # 强制关系无向化(防御性) + path_pattern = re.sub(r'?', ']-', path_pattern) + + path_cypher = f"MATCH {path_pattern}{where_clause} RETURN DISTINCT {path_var}" + aggregate_cypher = cypher + + logger.debug(f"[Cypher处理] Path查询: {path_cypher}") + return path_cypher, aggregate_cypher + + except Exception as e: + logger.exception(f"[Cypher处理] 生成 path 查询失败: {e}") + return None, None + + def _generate_simple_template_cypher( + self, + entry_nodes: dict, + query: str, + is_aggregate: bool + ) -> Optional[str]: + """ + 生成简单的模板Cypher查询(降级策略) + """ + if not entry_nodes: + return None + + try: + # 选择第一个标签和第一个节点作为起点 + first_label = list(entry_nodes.keys())[0] + first_nodes = entry_nodes[first_label] + if not first_nodes: + return None + + first_node = first_nodes[0] + node_name = first_node.get("name") or first_node.get("_name") or (first_node.get("node", {}).get("名称")) + if not node_name: + return None + + # 生成简单的查询:只查询入口节点及其直接邻居 + if is_aggregate: + # 统计类:统计邻居数量 + cypher = ( + f"MATCH path=(n:{first_label} {{名称: '{node_name}'}})-[]-(m)\n" + f"RETURN path, m" + ) + else: + # 明细类:返回邻居节点 + cypher = ( + f"MATCH path=(n:{first_label} {{名称: '{node_name}'}})-[]-(m)\n" + f"RETURN path, m\n" + f"LIMIT 50" + ) + + logger.debug(f"[降级策略] 生成简单模板查询: {cypher}") + return cypher + except Exception as e: + logger.warning(f"[降级策略] 生成简单模板查询失败: {e}") + return None + + + def _extract_path_info(self, record: Dict[str, Any]) -> List[str]: + """ + 从单个记录中提取路径相关信息,用于rerank + """ + path_texts = [] + + # 遍历记录中的所有值,查找路径信息 + for key, value in record.items(): + if value is None: + continue + + # 如果值是路径对象 + if hasattr(value, 'nodes') and hasattr(value, 'relationships'): + # 提取路径中的节点和关系信息 + try: + # 处理路径中的节点 + for node in value.nodes: + node_info = f"节点: {dict(node).get('name', dict(node).get('名称', '未知节点'))} 类型: {list(node.labels)}" + path_texts.append(node_info) + + # 处理路径中的关系 + for rel in value.relationships: + rel_info = f"关系: {rel.type}" + path_texts.append(rel_info) + except Exception as e: + logger.warning(f"提取路径信息时出错: {e}") + + # 如果值是字典,可能是节点或关系对象 + elif isinstance(value, dict): + if 'labels' in value or 'type' in value: + # 这可能是节点或关系 + if 'labels' in value: # 节点 + node_info = f"节点: {value.get('name', value.get('名称', '未知节点'))} 类型: {value.get('labels', [])}" + path_texts.append(node_info) + elif 'type' in value: # 关系 + rel_info = f"关系: {value.get('type')}" + path_texts.append(rel_info) + + # 如果值是列表,可能包含多个节点或关系 + elif isinstance(value, list): + for item in value: + if isinstance(item, dict): + if 'labels' in item: # 节点 + node_info = f"节点: {item.get('name', item.get('名称', '未知节点'))} 类型: {item.get('labels', [])}" + path_texts.append(node_info) + elif 'type' in item: # 关系 + rel_info = f"关系: {item.get('type')}" + path_texts.append(rel_info) + + return path_texts + + def _rerank_results(self, results: List[Dict[str, Any]], query: str, is_aggregate: bool = False) -> List[ + Dict[str, Any]]: + """ + 使用 model_api 中的 rerank 对结果进行重排序。 + """ + if not results: + return results + + # ✅ 统计类查询:不 rerank,直接赋分 1.0 + if is_aggregate: + logger.info("检测到统计类查询,跳过 rerank,统一设置 rerank_score=1.0") + reranked_results = [] + for result in results: + result_copy = result.copy() + result_copy['rerank_score'] = 1.0 + reranked_results.append(result_copy) + return reranked_results + + # === 以下为原语义 rerank 逻辑 === + try: + from modelsAPI.model_api import OpenaiAPI + + documents = [] + for result in results: + path_texts = self._extract_path_info(result) + doc_text = " ".join(path_texts) if path_texts else str(result) + documents.append(doc_text) + + rerank_results = OpenaiAPI.rerank_query(query, documents, top_n=len(documents)) + + reranked_results = [] + sorted_rerank_results = sorted(rerank_results, key=lambda x: x.get('scores', 0), reverse=True) + for rerank_result in sorted_rerank_results: + original_index = rerank_result['index'] + if original_index < len(results): + result_copy = results[original_index].copy() + result_copy['rerank_score'] = rerank_result['scores'] + reranked_results.append(result_copy) + + return reranked_results + + except Exception as e: + logger.error(f"重排序过程中出错: {e}") + # 失败时也统一加默认分数(保持接口一致) + fallback_results = [] + for result in results: + result_copy = result.copy() + result_copy['rerank_score'] = 0.0 + fallback_results.append(result_copy) + return fallback_results + diff --git a/graph_search/graph_service.py b/graph_search/graph_service.py new file mode 100644 index 0000000..5403052 --- /dev/null +++ b/graph_search/graph_service.py @@ -0,0 +1,583 @@ +""" +=========================================== +图谱检索服务模块 - GraphService +=========================================== +功能:整合路由、节点检索和图谱检索的完整服务 + 提供统一的接口供app.py调用 +=========================================== +""" + +import os +import logging +import time +from typing import Dict, Any, Optional, List, Tuple + +# 加载 .env 文件中的环境变量 +try: + from dotenv import load_dotenv + load_dotenv() +except ImportError: + # 如果 python-dotenv 未安装,跳过加载(环境变量可能已通过其他方式设置) + pass + +logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) + +# 导入固定的schema +try: + from graph_search.schema_sample import SCHEMA_SAMPLE +except ImportError: + logger.warning("无法导入SCHEMA_SAMPLE,将使用空schema") + SCHEMA_SAMPLE = "" + + +def remove_knowledge_source(data: Any) -> Any: + """ + 递归删除数据中的 knowledge_source 字段(用于 results 字段) + + Args: + data: 要处理的数据(可以是字典、列表或基本类型) + + Returns: + 清理后的数据(已删除所有 knowledge_source 字段) + """ + if isinstance(data, dict): + # 创建新字典,排除 knowledge_source + result = {} + for key, value in data.items(): + if key != 'knowledge_source': + # 递归处理嵌套的字典、列表 + result[key] = remove_knowledge_source(value) + return result + elif isinstance(data, list): + # 递归处理列表中的每个元素 + return [remove_knowledge_source(item) for item in data] + else: + # 基本类型直接返回 + return data + + +# ========== ========== 导入依赖 ========== ========== +try: + from neo4j import GraphDatabase + from langchain_community.graphs.neo4j_graph import Neo4jGraph + from graph_search.graph_retrieval import GraphRetrieval + from graph_search.route_label import RouteLabel + from graph_search.node_retrieval import NodeRetrieval + from graph_search.result_formatter import format_results, format_entry_nodes_as_results, remove_sensitive_fields, serialize_graph_for_llm + from graph_search.init_prompts import get_all_ontology_labels, get_all_relationship_types + from modelsAPI.model_api import OpenaiAPI + GRAPH_SERVICE_AVAILABLE = True +except ImportError as e: + GRAPH_SERVICE_AVAILABLE = False + logger.warning(f"图谱服务依赖未安装: {e}") + + +class GraphService: + """ + 图谱检索服务类 + + 功能:整合路由、节点检索和图谱检索的完整流程 + """ + + def __init__(self,neo4j_url: str = None,neo4j_user: str = None,neo4j_password: str = None,driver = None ): + """ + 初始化图谱服务 + + Args: + neo4j_url: Neo4j连接URL + neo4j_user: Neo4j用户名 + neo4j_password: Neo4j密码 + driver: 可选的Neo4j driver实例,如果提供则复用外部driver(如app.py中的driver) + """ + if not GRAPH_SERVICE_AVAILABLE: + raise ImportError("图谱服务依赖未安装") + + # ========== 从环境变量获取配置 ========== + self.neo4j_url = neo4j_url or os.getenv("NEO4J_URI") or os.getenv("NEO4J_URL", "bolt://localhost:7687") + self.neo4j_user = neo4j_user or os.getenv("NEO4J_USERNAME") or os.getenv("NEO4J_USER", "neo4j") + self.neo4j_password = neo4j_password or os.getenv("NEO4J_PASSWORD", "neo4j") + + # ========== 初始化LLM API ========== + self.llm_api = OpenaiAPI() + + # ========== 延迟初始化Neo4j连接 ========== + self._graph_retrieval = None + self._driver = driver + self._get_driver(driver) # 如果提供了外部driver,直接使用;否则延迟初始化 + self._neo4j_graph = None # Neo4jGraph 实例,用于获取 schema + self._external_driver = driver is not None # 标记是否使用了外部driver + + # ========== 定义可选节点标签和关系类型 ========== + self.node_types = get_all_ontology_labels(self._driver) + self.relationship_types = get_all_relationship_types(self._driver) + + def _get_driver(self, driver): + """获取Neo4j driver实例(延迟初始化,可复用)""" + if driver is None: + try: + self._driver = GraphDatabase.driver( + self.neo4j_url, + auth=(self.neo4j_user, self.neo4j_password) + ) + self._external_driver = False # 标记为内部创建的driver + except Exception as e: + logger.error(f"Neo4j Driver实例初始化失败: {e}", exc_info=True) + raise + + def _get_neo4j_graph(self): + """获取Neo4jGraph实例(延迟初始化,用于获取schema)""" + if self._neo4j_graph is None: + try: + self._neo4j_graph = Neo4jGraph( + url=self.neo4j_url, + username=self.neo4j_user, + password=self.neo4j_password, + enhanced_schema=True # 使用增强的schema信息,提供更详细的节点标签、关系类型和属性等 + ) + except Exception as e: + logger.error(f"Neo4jGraph实例初始化失败: {e}", exc_info=True) + raise + return self._neo4j_graph + + def _fetch_schema_from_db_original(self): + """ + 原来的方式:通过 Neo4jGraph 自动获取 Neo4j schema + + 返回: + neo4j_schema: str - 供 LLM 使用的 schema 文本(Neo4jGraph 返回的完整 schema) + structured_schema: dict - 空字典(不进行解析,Schema验证会自动跳过) + """ + try: + neo4j_graph = self._get_neo4j_graph() + schema_text = neo4j_graph.schema + + if not schema_text: + logger.warning("Neo4jGraph schema 返回为空") + return "", {} + + return schema_text, {} + except Exception as e: + logger.warning(f"通过 Neo4jGraph 获取 schema 失败: {e}", exc_info=True) + return "", {} + + def _fetch_schema_from_db_fixed(self): + """ + 固定方式:使用 schema_sample.py 中定义的固定 SCHEMA_SAMPLE + + 返回: + neo4j_schema: str - 供 LLM 使用的 schema 文本 + structured_schema: dict - 空字典(不进行解析,Schema验证会自动跳过) + """ + try: + schema_text = SCHEMA_SAMPLE + if not schema_text: + logger.warning("SCHEMA_SAMPLE 为空") + return "", {} + return schema_text, {} + except Exception as e: + logger.warning(f"获取固定schema失败: {e}", exc_info=True) + return "", {} + + def _fetch_schema_from_db(self): + """ + 获取schema(当前使用固定方式,可通过注释切换到原来的方式) + + 返回: + neo4j_schema: str - 供 LLM 使用的 schema 文本 + structured_schema: dict - 空字典(不进行解析,Schema验证会自动跳过) + """ + # ========== 当前使用的方式(可通过注释切换) ========== + return self._fetch_schema_from_db_fixed() + + # ========== 原来的方式(切换时取消注释,注释上面一行) ========== + # return self._fetch_schema_from_db_original() + + def _get_graph_retrieval(self) -> GraphRetrieval: + """获取GraphRetrieval实例(延迟初始化)""" + if self._graph_retrieval is None: + # ========== 创建LLM包装器(适配GraphRetrieval的接口) ========== + class LLMWrapper: + """LLM包装器,将OpenaiAPI包装成GraphRetrieval需要的格式""" + def __init__(self, llm_api): + self.llm_api = llm_api + + async def ainvoke(self, prompt): + """异步调用LLM""" + if isinstance(prompt, str): + query = prompt + elif hasattr(prompt, 'messages'): + # 如果是ChatPromptTemplate格式,转换为字符串 + messages = prompt.messages + query = "\n".join([msg.content for msg in messages if hasattr(msg, 'content')]) + else: + query = str(prompt) + + model = os.getenv("OPENAI_MODEL") + content = await self.llm_api.open_api_chat_async(query, model, temperature=0) + + # 返回类似LLM输出的对象 + class LLMOutput: + def __init__(self, content): + self.content = content + + return LLMOutput(content) + + llm_wrapper = LLMWrapper(self.llm_api) + + # ========== 获取 schema 信息 ========== + # 使用 Neo4jGraph 获取 schema + neo4j_schema, structured_schema = self._fetch_schema_from_db() + if not neo4j_schema: + logger.warning("GraphService: Neo4jGraph schema 为空,图谱检索可能无法正常工作") + + self._graph_retrieval = GraphRetrieval( + driver=self._driver, + neo4j_schema=neo4j_schema, + llm=llm_wrapper, + allowed_node_types=self.node_types, + allowed_relationship_types=self.relationship_types + ) + + return self._graph_retrieval + + async def extract_entry_nodes(self, query: str, top_n: int = 10) -> Tuple[Dict[str, List[Dict[str, Any]]], str, Dict[str, Any]]: + """ + 提取入口节点 + + 功能: + 1. 路由标签识别 + 2. 节点检索 + + Args: + query: 用户查询 + top_n: 每个标签检索的节点数量 + + Returns: + tuple: (入口节点字典, 重写后的查询, 分类信息) + 如果未重写,则返回原始query + 分类信息包含 query_type, has_time, time_type + """ + extract_start = time.time() + + # ========== 1. 路由标签识别 ========== + route_start = time.time() + + # 获取schema信息,用于帮助模型识别节点类型 + # 使用 Neo4jGraph 获取 schema + schema = None + try: + schema, _ = self._fetch_schema_from_db() + if not schema: + logger.warning("获取schema失败,将不使用schema信息") + except Exception as e: + logger.warning(f"获取schema失败,将不使用schema信息: {e}") + schema = None + + route_label = RouteLabel(self.llm_api, self.node_types, schema=schema) + route_res, rewritten_query, query_classification = await route_label.route(query) + logger.info("输出route_res") + logger.info(route_res) + route_elapsed = (time.time() - route_start) * 1000 + logger.info(f"[时间统计] 路由标签识别完成,耗时: {route_elapsed:.2f}ms") + + # 使用重写后的查询覆盖原始查询 + if rewritten_query and rewritten_query != query: + query = rewritten_query + + if not route_res: + logger.warning("未能识别到入口节点") + return {}, query, query_classification + + # ========== 2. 节点检索 ========== + node_retrieval_start = time.time() + + try: + # 创建嵌入模型包装器 + class EmbeddingWrapper: + """嵌入模型包装器""" + def embed_documents(self, texts: List[str]) -> List[List[float]]: + """批量获取嵌入向量(一次性处理所有文本)""" + embed_start = time.time() + + if not texts: + return [] + + try: + # 一次性批量处理所有文本 + result = OpenaiAPI.batch_embeddings(texts) # 调用服务器嵌入模型 + embed_elapsed = (time.time() - embed_start) * 1000 + + # 从结果中提取embedding向量 + if result and isinstance(result, list): + embedding_list = [item.get('embedding') if isinstance(item, dict) else item for item in result] + + # 验证返回结果 + if embedding_list and len(embedding_list) == len(texts): + return embedding_list + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回数量不匹配,期望: {len(texts)}, 实际: {len(embedding_list) if embedding_list else 0}") + return [None] * len(texts) + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回格式异常,期望列表,实际: {type(result)}") + return [None] * len(texts) + + except Exception as e: + logger.error(f"EmbeddingWrapper: 批量向量化失败: {e}", exc_info=True) + return [None] * len(texts) + + embeddings = EmbeddingWrapper() + node_retrieval = NodeRetrieval(self._driver, embeddings) + entry_nodes = await node_retrieval.retrieve_nodes(route_res, top_n) + + node_retrieval_elapsed = (time.time() - node_retrieval_start) * 1000 + logger.info(f"[时间统计] 节点检索完成,耗时: {node_retrieval_elapsed:.2f}ms") + + extract_elapsed = (time.time() - extract_start) * 1000 + logger.info(f"[时间统计] 入口节点提取完成,总耗时: {extract_elapsed:.2f}ms (路由: {route_elapsed:.2f}ms, 检索: {node_retrieval_elapsed:.2f}ms)") + logger.info(f"{entry_nodes}") + logger.info(f"{query}") + logger.info(f"{query_classification}") + return entry_nodes, query, query_classification + except Exception as e: + logger.error(f"入口节点提取失败: {e}", exc_info=True) + return {}, query, query_classification + # 注意:不再关闭driver,因为它是可复用的 + + # ========== ========== 图谱检索:简单版本(只判断统计/非统计) ========== ========== + async def search( + self, + query: str, + entry_nodes: Optional[Dict[str, List[Dict[str, Any]]]] = None, + top_k: int = 10, + max_attempts: int = 3, + query_type: str = "auto", # "auto" | "aggregate" | "detail" + ) -> Dict[str, Any]: + """ + 执行图谱检索(完整流程) + + Args: + query: 用户查询 + entry_nodes: 入口节点(可选,不提供则自动提取) + top_k: 节点检索数量 + max_attempts: Cypher生成最大尝试次数 + + Returns: + Dict: 检索结果,包含code, message, data, meta信息,符合app.py要求 + """ + total_start = time.time() + logger.info(f"[时间统计] ========== 开始图谱检索,查询: '{query}' ==========") + + try: + # ========== 1. 入口节点处理(如果已提供,直接使用;否则提取) ========== + entry_nodes_start = time.time() + query_classification = None # 初始化分类信息 + if not entry_nodes: + logger.info(f"[时间统计] 入口节点未提供,开始自动提取...") + entry_nodes, rewritten_query, query_classification = await self.extract_entry_nodes(query = query, top_n = 10) + entry_nodes_elapsed = (time.time() - entry_nodes_start) * 1000 + + # 使用重写后的查询覆盖原始查询 + if rewritten_query and rewritten_query != query: + query = rewritten_query + + if not entry_nodes: + total_elapsed = (time.time() - total_start) * 1000 + logger.warning(f"[时间统计] 未能识别到入口节点,总耗时: {total_elapsed:.2f}ms") + return { + "code": 200, + "message": "success", + "data": { + "nodes": [], + "links": [], + "results": [] + }, + "meta": { + "elapsed_ms": round(total_elapsed, 2), + "error": "未能识别到入口节点", + "query_type": "no_entry_nodes", + "query_classification": query_classification + } + } + logger.info(f"[时间统计] 入口节点提取完成,耗时: {entry_nodes_elapsed:.2f}ms") + else: + entry_nodes_elapsed = (time.time() - entry_nodes_start) * 1000 + + # ========== 2. 执行图谱检索 ========== + graph_search_start = time.time() + graph_retrieval = self._get_graph_retrieval() + + # 如果从重写中获得了分类信息,优先使用分类信息确定 query_type + if query_classification: + classification_query_type = query_classification.get("query_type", "detail") + effective_query_type = classification_query_type + else: + # 如果没有分类信息,使用传入的 query_type 参数 + effective_query_type = query_type if query_type in ("auto", "aggregate", "detail") else "auto" + + raw_results = await graph_retrieval.search( + query=query, + entry_nodes=entry_nodes, + max_attempts=max_attempts, + query_type=effective_query_type, + query_classification=query_classification # 传递分类信息 + ) + graph_search_elapsed = (time.time() - graph_search_start) * 1000 + logger.info(f"[时间统计] 图谱检索完成,耗时: {graph_search_elapsed:.2f}ms") + + # ========== 3. 格式化结果 ========== + + + # 判断是否为统计类查询(优先使用分类信息) + if query_classification: + is_aggregate = query_classification.get("query_type") == "aggregate" + else: + is_aggregate = effective_query_type == "aggregate" or (effective_query_type == "auto" and raw_results and raw_results[0].get('_aggregate_value') is not None) + + # 从 rerank 后的结果中提取路径信息(节点和关系) + path_data = {"nodes": [], "links": []} + try: + # raw_results 已经是 rerank 后的结果(字典列表,包含 rerank_score) + + if len(raw_results) > top_k: + path_results_for_format = raw_results[:top_k] + else: + path_results_for_format = raw_results + + # 使用限制后的结果来格式化路径信息 + path_data = format_results(path_results_for_format) + except Exception as e: + logger.warning(f"格式化结果失败: {e}", exc_info=True) + + # 过滤原始结果,递归删除 embedding、fulltext 和 path,并展开嵌套的 result 字段 + # raw_results 已经是 rerank 后的结果,需要去除 path 字段,保留其他信息作为 results + filtered_results = [] + + if is_aggregate: + # 统计类查询:results 只包含统计值(一个值) + if raw_results and raw_results[0].get('_aggregate_value') is not None: + # 从元数据中提取统计值 + aggregate_value = raw_results[0]['_aggregate_value'] + # 删除 knowledge_source + filtered_results = [remove_knowledge_source(aggregate_value)] + else: + # 如果没有 _aggregate_value,尝试从第一个结果的 result 字段提取 + if raw_results: + first_result = raw_results[0] + if isinstance(first_result, dict) and 'result' in first_result: + aggregate_value = first_result['result'] + # 删除 knowledge_source + filtered_results = [remove_knowledge_source(aggregate_value)] + else: + # 降级:使用第一个结果,删除 knowledge_source + filtered_results = [remove_knowledge_source(first_result)] + else: + # 非统计类查询:保持原有逻辑 + for result in raw_results: + # 创建结果副本,去除 path 相关字段 + result_copy = result.copy() + # 删除 path 和 paths 字段(这些已经提取到 nodes 和 links 中了) + result_copy.pop('path', None) + result_copy.pop('paths', None) + result_copy.pop('_aggregate_value', None) # 删除统计类查询的元数据 + + # 先递归删除敏感字段(embedding、fulltext) + cleaned_result = remove_sensitive_fields(result_copy) + + # 如果结果中有 result 字段,则展开它 + if isinstance(cleaned_result, dict) and 'result' in cleaned_result: + result_value = cleaned_result['result'] + # 如果 result 的值是列表,则展开列表中的所有元素 + if isinstance(result_value, list): + # 删除敏感字段和 knowledge_source + filtered_results.extend([remove_knowledge_source(remove_sensitive_fields(item)) for item in result_value]) + else: + # 如果 result 的值是单个对象,直接使用,删除 knowledge_source + filtered_results.append(remove_knowledge_source(remove_sensitive_fields(result_value))) + else: + # 没有 result 字段,直接使用清理后的结果,删除 knowledge_source + filtered_results.append(remove_knowledge_source(cleaned_result)) + + # ========== 4. 格式化结果用于 LLM(在返回前应用格式化字符串到 results)========== + # 构建临时的 graph_response 字典用于序列化 + temp_graph_response = { + "data": { + "nodes": path_data.get("nodes", []), + "results": filtered_results + } + } + # 使用 serialize_graph_for_llm 格式化结果 + formatted_results_str = serialize_graph_for_llm(temp_graph_response) + # 将格式化后的字符串应用到 results(替换原有的 results) + filtered_results = formatted_results_str + + # 构建响应 + total_elapsed = (time.time() - total_start) * 1000 + response = { + "code": 200, + "message": "success", + "data": { + "nodes": path_data.get("nodes", []), + "links": path_data.get("links", []), + "results": filtered_results + }, + "meta": { + "result_count": len(filtered_results), + "query_type": "graph_search", + "elapsed_ms": round(total_elapsed, 2), + "cypher": graph_retrieval.last_cypher if hasattr(graph_retrieval, 'last_cypher') else None, + "query_classification": query_classification # 添加分类信息到返回结果中 + } + } + + + logger.info(f"[时间统计] ========== 图谱检索完成 ==========") + logger.info(f"[时间统计] 总耗时: {total_elapsed:.2f}ms") + logger.info(f"[时间统计] - 入口节点提取: {entry_nodes_elapsed:.2f}ms") + logger.info(f"[时间统计] - 图谱检索: {graph_search_elapsed:.2f}ms") + + return response + except Exception as e: + total_elapsed = (time.time() - total_start) * 1000 + logger.error(f"[时间统计] 图谱检索异常,总耗时: {total_elapsed:.2f}ms, 错误: {e}", exc_info=True) + return { + "code": 500, + "message": "图谱检索失败", + "data": { + "nodes": [], + "links": [], + "results": [] + }, + "meta": { + "elapsed_ms": round(total_elapsed, 2), + "error": str(e), + "query_type": "error" + } + } + + def close(self): + """ + 关闭连接,释放资源 + + 注意:在应用关闭时调用此方法 + 注意:如果使用的是外部driver(如app.py传入的),则不会关闭driver,由外部管理 + """ + try: + if self._driver and not self._external_driver: + # 只关闭内部创建的driver,不关闭外部传入的driver + self._driver.close() + self._driver = None + logger.info("Neo4j Driver连接已关闭") + elif self._external_driver: + logger.info("使用的是外部driver,不关闭连接(由外部管理)") + if self._neo4j_graph: + # Neo4jGraph 内部使用 driver,如果 driver 已关闭,这里不需要额外操作 + # 但为了清晰,我们重置引用 + self._neo4j_graph = None + logger.info("Neo4jGraph 实例已释放") + except Exception as e: + logger.warning(f"关闭连接时出错: {e}") + + def __del__(self): + """析构函数,确保资源被释放""" + self.close() diff --git a/graph_search/graph_service421.py b/graph_search/graph_service421.py new file mode 100644 index 0000000..26522b5 --- /dev/null +++ b/graph_search/graph_service421.py @@ -0,0 +1,552 @@ +""" +=========================================== +图谱检索服务模块 - GraphService +=========================================== +功能:整合路由、节点检索和图谱检索的完整服务 + 提供统一的接口供app.py调用 +=========================================== +""" + +import os +import logging +import time +from typing import Dict, Any, Optional, List, Tuple + +# 加载 .env 文件中的环境变量 +try: + from dotenv import load_dotenv + load_dotenv() +except ImportError: + # 如果 python-dotenv 未安装,跳过加载(环境变量可能已通过其他方式设置) + pass + +logger = logging.getLogger(__name__) + + +def remove_knowledge_source(data: Any) -> Any: + """ + 递归删除数据中的 knowledge_source 字段(用于 results 字段) + + Args: + data: 要处理的数据(可以是字典、列表或基本类型) + + Returns: + 清理后的数据(已删除所有 knowledge_source 字段) + """ + if isinstance(data, dict): + # 创建新字典,排除 knowledge_source + result = {} + for key, value in data.items(): + if key != 'knowledge_source': + # 递归处理嵌套的字典、列表 + result[key] = remove_knowledge_source(value) + return result + elif isinstance(data, list): + # 递归处理列表中的每个元素 + return [remove_knowledge_source(item) for item in data] + else: + # 基本类型直接返回 + return data + + +# ========== ========== 导入依赖 ========== ========== +try: + from neo4j import GraphDatabase + from langchain_community.graphs.neo4j_graph import Neo4jGraph + from graph_search.graph_retrieval import GraphRetrieval + from graph_search.route_label import RouteLabel + from graph_search.node_retrieval import NodeRetrieval + from graph_search.result_formatter import format_results, format_entry_nodes_as_results, remove_sensitive_fields, serialize_graph_for_llm + from graph_search.init_prompts import get_all_ontology_labels, get_all_relationship_types + from modelsAPI.model_api import OpenaiAPI + GRAPH_SERVICE_AVAILABLE = True +except ImportError as e: + GRAPH_SERVICE_AVAILABLE = False + logger.warning(f"图谱服务依赖未安装: {e}") + + +class GraphService: + """ + 图谱检索服务类 + + 功能:整合路由、节点检索和图谱检索的完整流程 + """ + + def __init__(self, neo4j_url: str = None, neo4j_user: str = None, neo4j_password: str = None, driver=None): + """ + 初始化图谱服务 + + Args: + neo4j_url: Neo4j连接URL + neo4j_user: Neo4j用户名 + neo4j_password: Neo4j密码 + driver: 可选的Neo4j driver实例,如果提供则复用外部driver(如app.py中的driver) + """ + if not GRAPH_SERVICE_AVAILABLE: + raise ImportError("图谱服务依赖未安装") + + # ========== 从环境变量获取配置 ========== + self.neo4j_url = neo4j_url or os.getenv("NEO4J_URI") or os.getenv("NEO4J_URL", "bolt://localhost:57687") + self.neo4j_user = neo4j_user or os.getenv("NEO4J_USERNAME") or os.getenv("NEO4J_USER", "neo4j") + self.neo4j_password = neo4j_password or os.getenv("NEO4J_PASSWORD", "zdht123@") + + # ========== 初始化LLM API ========== + self.llm_api = OpenaiAPI() + + # ========== 延迟初始化Neo4j连接 ========== + self._graph_retrieval = None + self._driver = driver + self._get_driver(driver) # 如果提供了外部driver,直接使用;否则延迟初始化 + self._neo4j_graph = None # Neo4jGraph 实例,用于获取 schema + self._external_driver = driver is not None # 标记是否使用了外部driver + + # ========== 定义可选节点标签和关系类型 ========== + self.node_types = get_all_ontology_labels(self._driver) + self.relationship_types = get_all_relationship_types(self._driver) + + def _get_driver(self, driver): + """获取Neo4j driver实例(延迟初始化,可复用)""" + if driver is None: + try: + self._driver = GraphDatabase.driver( + self.neo4j_url, + auth=(self.neo4j_user, self.neo4j_password) + ) + self._external_driver = False # 标记为内部创建的driver + except Exception as e: + logger.error(f"Neo4j Driver实例初始化失败: {e}", exc_info=True) + raise + + def _get_neo4j_graph(self): + """获取Neo4jGraph实例(延迟初始化,用于获取schema)""" + if self._neo4j_graph is None: + try: + self._neo4j_graph = Neo4jGraph( + url=self.neo4j_url, + username=self.neo4j_user, + password=self.neo4j_password, + enhanced_schema=True # 使用增强的schema信息,提供更详细的节点标签、关系类型和属性等 + ) + except Exception as e: + logger.error(f"Neo4jGraph实例初始化失败: {e}", exc_info=True) + raise + return self._neo4j_graph + + def _fetch_schema_from_db(self): + """ + 通过 Neo4jGraph 自动获取 Neo4j schema。 + + 返回: + neo4j_schema: str - 供 LLM 使用的 schema 文本(Neo4jGraph 返回的完整 schema) + structured_schema: dict - 空字典(不进行解析,Schema验证会自动跳过) + """ + try: + neo4j_graph = self._get_neo4j_graph() + schema_text = neo4j_graph.schema + + if not schema_text: + logger.warning("Neo4jGraph schema 返回为空") + return "", {} + + + return schema_text, {} + except Exception as e: + logger.warning(f"通过 Neo4jGraph 获取 schema 失败: {e}", exc_info=True) + return "", {} + + def _get_graph_retrieval(self) -> GraphRetrieval: + """获取GraphRetrieval实例(延迟初始化)""" + if self._graph_retrieval is None: + # ========== 创建LLM包装器(适配GraphRetrieval的接口) ========== + class LLMWrapper: + """LLM包装器,将OpenaiAPI包装成GraphRetrieval需要的格式""" + def __init__(self, llm_api): + self.llm_api = llm_api + + async def ainvoke(self, prompt): + """异步调用LLM""" + if isinstance(prompt, str): + query = prompt + elif hasattr(prompt, 'messages'): + # 如果是ChatPromptTemplate格式,转换为字符串 + messages = prompt.messages + query = "\n".join([msg.content for msg in messages if hasattr(msg, 'content')]) + else: + query = str(prompt) + + model = os.getenv("OPENAI_MODEL") + content = await self.llm_api.open_api_chat_async(query, model, temperature=0) + + # 返回类似LLM输出的对象 + class LLMOutput: + def __init__(self, content): + self.content = content + + return LLMOutput(content) + + llm_wrapper = LLMWrapper(self.llm_api) + + # ========== 获取 schema 信息 ========== + # 使用 Neo4jGraph 获取 schema + neo4j_schema, structured_schema = self._fetch_schema_from_db() + if not neo4j_schema: + logger.warning("GraphService: Neo4jGraph schema 为空,图谱检索可能无法正常工作") + + self._graph_retrieval = GraphRetrieval( + driver=self._driver, + neo4j_schema=neo4j_schema, + llm=llm_wrapper, + allowed_node_types=self.node_types, + allowed_relationship_types=self.relationship_types + ) + + return self._graph_retrieval + + async def extract_entry_nodes(self, query: str, top_n: int = 10) -> Tuple[Dict[str, List[Dict[str, Any]]], str, Dict[str, Any]]: + """ + 提取入口节点 + + 功能: + 1. 路由标签识别 + 2. 节点检索 + + Args: + query: 用户查询 + top_n: 每个标签检索的节点数量 + + Returns: + tuple: (入口节点字典, 重写后的查询, 分类信息) + 如果未重写,则返回原始query + 分类信息包含 query_type, has_time, time_type + """ + extract_start = time.time() + + # ========== 1. 路由标签识别 ========== + route_start = time.time() + + # 获取schema信息,用于帮助模型识别节点类型 + # 使用 Neo4jGraph 获取 schema + schema = None + try: + schema, _ = self._fetch_schema_from_db() + logger.info("输出schema-----------------------------------") + logger.info(schema) + if not schema: + logger.warning("获取schema失败,将不使用schema信息") + except Exception as e: + logger.warning(f"获取schema失败,将不使用schema信息: {e}") + schema = None + + route_label = RouteLabel(self.llm_api, self.node_types, schema=schema) + route_res, rewritten_query, query_classification = await route_label.route(query) + route_elapsed = (time.time() - route_start) * 1000 + logger.info(f"[时间统计] 路由标签识别完成,耗时: {route_elapsed:.2f}ms") + + # 使用重写后的查询覆盖原始查询 + if rewritten_query and rewritten_query != query: + query = rewritten_query + + if not route_res: + logger.warning("未能识别到入口节点") + return {}, query, query_classification + + # ========== 2. 节点检索 ========== + node_retrieval_start = time.time() + + try: + # 创建嵌入模型包装器 + class EmbeddingWrapper: + """嵌入模型包装器""" + def embed_documents(self, texts: List[str]) -> List[List[float]]: + """批量获取嵌入向量(一次性处理所有文本)""" + embed_start = time.time() + + if not texts: + return [] + + try: + # 一次性批量处理所有文本 + result = OpenaiAPI.batch_embeddings(texts) # 调用服务器嵌入模型 + embed_elapsed = (time.time() - embed_start) * 1000 + + # 从结果中提取embedding向量 + if result and isinstance(result, list): + embedding_list = [item.get('embedding') if isinstance(item, dict) else item for item in result] + + # 验证返回结果 + if embedding_list and len(embedding_list) == len(texts): + return embedding_list + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回数量不匹配,期望: {len(texts)}, 实际: {len(embedding_list) if embedding_list else 0}") + return [None] * len(texts) + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回格式异常,期望列表,实际: {type(result)}") + return [None] * len(texts) + + except Exception as e: + logger.error(f"EmbeddingWrapper: 批量向量化失败: {e}", exc_info=True) + return [None] * len(texts) + + embeddings = EmbeddingWrapper() + node_retrieval = NodeRetrieval(self._driver, embeddings) + entry_nodes = await node_retrieval.retrieve_nodes(route_res, top_n) + + node_retrieval_elapsed = (time.time() - node_retrieval_start) * 1000 + logger.info(f"[时间统计] 节点检索完成,耗时: {node_retrieval_elapsed:.2f}ms") + + extract_elapsed = (time.time() - extract_start) * 1000 + logger.info(f"[时间统计] 入口节点提取完成,总耗时: {extract_elapsed:.2f}ms (路由: {route_elapsed:.2f}ms, 检索: {node_retrieval_elapsed:.2f}ms)") + + return entry_nodes, query, query_classification + except Exception as e: + logger.error(f"入口节点提取失败: {e}", exc_info=True) + return {}, query, query_classification + # 注意:不再关闭driver,因为它是可复用的 + + # ========== ========== 图谱检索:简单版本(只判断统计/非统计) ========== ========== + async def search( + self, + query: str, + entry_nodes: Optional[Dict[str, List[Dict[str, Any]]]] = None, + top_k: int = 10, + max_attempts: int = 3, + query_type: str = "auto", # "auto" | "aggregate" | "detail" + ) -> Dict[str, Any]: + """ + 执行图谱检索(完整流程) + + Args: + query: 用户查询 + entry_nodes: 入口节点(可选,不提供则自动提取) + top_k: 节点检索数量 + max_attempts: Cypher生成最大尝试次数 + + Returns: + Dict: 检索结果,包含code, message, data, meta信息,符合app.py要求 + """ + total_start = time.time() + logger.info(f"[时间统计] ========== 开始图谱检索,查询: '{query}' ==========") + + try: + # ========== 1. 入口节点处理(如果已提供,直接使用;否则提取) ========== + entry_nodes_start = time.time() + query_classification = None # 初始化分类信息 + logger.info("输出入口节点") + logger.info(entry_nodes) + + if not entry_nodes: + logger.info(f"[时间统计] 入口节点未提供,开始自动提取...") + entry_nodes, rewritten_query, query_classification = await self.extract_entry_nodes(query = query, top_n = 10) + logger.info("输出入口节点的信息,包括入口节点、重写的查询、问题分类") + logger.info(entry_nodes) + logger.info(rewritten_query) + logger.info(query_classification) + entry_nodes_elapsed = (time.time() - entry_nodes_start) * 1000 + + # 使用重写后的查询覆盖原始查询 + if rewritten_query and rewritten_query != query: + query = rewritten_query + + if not entry_nodes: + total_elapsed = (time.time() - total_start) * 1000 + logger.warning(f"[时间统计] 未能识别到入口节点,总耗时: {total_elapsed:.2f}ms") + return { + "code": 200, + "message": "success", + "data": { + "nodes": [], + "links": [], + "results": [] + }, + "meta": { + "elapsed_ms": round(total_elapsed, 2), + "error": "未能识别到入口节点", + "query_type": "no_entry_nodes", + "query_classification": query_classification + } + } + logger.info(f"[时间统计] 入口节点提取完成,耗时: {entry_nodes_elapsed:.2f}ms") + else: + entry_nodes_elapsed = (time.time() - entry_nodes_start) * 1000 + + # ========== 2. 执行图谱检索 ========== + graph_search_start = time.time() + graph_retrieval = self._get_graph_retrieval() + + # 如果从重写中获得了分类信息,优先使用分类信息确定 query_type + if query_classification: + classification_query_type = query_classification.get("query_type", "detail") + effective_query_type = classification_query_type + else: + # 如果没有分类信息,使用传入的 query_type 参数 + effective_query_type = query_type if query_type in ("auto", "aggregate", "detail") else "auto" + + raw_results = await graph_retrieval.search( + query=query, + entry_nodes=entry_nodes, + max_attempts=max_attempts, + query_type=effective_query_type, + query_classification=query_classification # 传递分类信息 + ) + graph_search_elapsed = (time.time() - graph_search_start) * 1000 + logger.info(f"[时间统计] 图谱检索完成,耗时: {graph_search_elapsed:.2f}ms") + + # ========== 3. 格式化结果 ========== + + + # 判断是否为统计类查询(优先使用分类信息) + if query_classification: + is_aggregate = query_classification.get("query_type") == "aggregate" + else: + is_aggregate = effective_query_type == "aggregate" or (effective_query_type == "auto" and raw_results and raw_results[0].get('_aggregate_value') is not None) + + # 从 rerank 后的结果中提取路径信息(节点和关系) + path_data = {"nodes": [], "links": []} + try: + # raw_results 已经是 rerank 后的结果(字典列表,包含 rerank_score) + + if len(raw_results) > top_k: + path_results_for_format = raw_results[:top_k] + else: + path_results_for_format = raw_results + + # 使用限制后的结果来格式化路径信息 + path_data = format_results(path_results_for_format) + except Exception as e: + logger.warning(f"格式化结果失败: {e}", exc_info=True) + + # 过滤原始结果,递归删除 embedding、fulltext 和 path,并展开嵌套的 result 字段 + # raw_results 已经是 rerank 后的结果,需要去除 path 字段,保留其他信息作为 results + filtered_results = [] + + if is_aggregate: + # 统计类查询:results 只包含统计值(一个值) + if raw_results and raw_results[0].get('_aggregate_value') is not None: + # 从元数据中提取统计值 + aggregate_value = raw_results[0]['_aggregate_value'] + # 删除 knowledge_source + filtered_results = [remove_knowledge_source(aggregate_value)] + else: + # 如果没有 _aggregate_value,尝试从第一个结果的 result 字段提取 + if raw_results: + first_result = raw_results[0] + if isinstance(first_result, dict) and 'result' in first_result: + aggregate_value = first_result['result'] + # 删除 knowledge_source + filtered_results = [remove_knowledge_source(aggregate_value)] + else: + # 降级:使用第一个结果,删除 knowledge_source + filtered_results = [remove_knowledge_source(first_result)] + else: + # 非统计类查询:保持原有逻辑 + for result in raw_results: + # 创建结果副本,去除 path 相关字段 + result_copy = result.copy() + # 删除 path 和 paths 字段(这些已经提取到 nodes 和 links 中了) + result_copy.pop('path', None) + result_copy.pop('paths', None) + result_copy.pop('_aggregate_value', None) # 删除统计类查询的元数据 + + # 先递归删除敏感字段(embedding、fulltext) + cleaned_result = remove_sensitive_fields(result_copy) + + # 如果结果中有 result 字段,则展开它 + if isinstance(cleaned_result, dict) and 'result' in cleaned_result: + result_value = cleaned_result['result'] + # 如果 result 的值是列表,则展开列表中的所有元素 + if isinstance(result_value, list): + # 删除敏感字段和 knowledge_source + filtered_results.extend([remove_knowledge_source(remove_sensitive_fields(item)) for item in result_value]) + else: + # 如果 result 的值是单个对象,直接使用,删除 knowledge_source + filtered_results.append(remove_knowledge_source(remove_sensitive_fields(result_value))) + else: + # 没有 result 字段,直接使用清理后的结果,删除 knowledge_source + filtered_results.append(remove_knowledge_source(cleaned_result)) + + # ========== 4. 格式化结果用于 LLM(在返回前应用格式化字符串到 results)========== + # 构建临时的 graph_response 字典用于序列化 + temp_graph_response = { + "data": { + "nodes": path_data.get("nodes", []), + "results": filtered_results + } + } + # 使用 serialize_graph_for_llm 格式化结果 + formatted_results_str = serialize_graph_for_llm(temp_graph_response) + # 将格式化后的字符串应用到 results(替换原有的 results) + filtered_results = formatted_results_str + + # 构建响应 + total_elapsed = (time.time() - total_start) * 1000 + response = { + "code": 200, + "message": "success", + "data": { + "nodes": path_data.get("nodes", []), + "links": path_data.get("links", []), + "results": filtered_results + }, + "meta": { + "result_count": len(filtered_results), + "query_type": "graph_search", + "elapsed_ms": round(total_elapsed, 2), + "cypher": graph_retrieval.last_cypher if hasattr(graph_retrieval, 'last_cypher') else None, + "query_classification": query_classification # 添加分类信息到返回结果中 + } + } + + + logger.info(f"[时间统计] ========== 图谱检索完成 ==========") + logger.info(f"[时间统计] 总耗时: {total_elapsed:.2f}ms") + logger.info(f"[时间统计] - 入口节点提取: {entry_nodes_elapsed:.2f}ms") + logger.info(f"[时间统计] - 图谱检索: {graph_search_elapsed:.2f}ms") + + return response + except Exception as e: + total_elapsed = (time.time() - total_start) * 1000 + logger.error(f"[时间统计] 图谱检索异常,总耗时: {total_elapsed:.2f}ms, 错误: {e}", exc_info=True) + return { + "code": 500, + "message": "图谱检索失败", + "data": { + "nodes": [], + "links": [], + "results": [] + }, + "meta": { + "elapsed_ms": round(total_elapsed, 2), + "error": str(e), + "query_type": "error" + } + } + + def close(self): + """ + 关闭连接,释放资源 + + 注意:在应用关闭时调用此方法 + 注意:如果使用的是外部driver(如app.py传入的),则不会关闭driver,由外部管理 + """ + try: + if self._driver and not self._external_driver: + # 只关闭内部创建的driver,不关闭外部传入的driver + self._driver.close() + self._driver = None + logger.info("Neo4j Driver连接已关闭") + elif self._external_driver: + logger.info("使用的是外部driver,不关闭连接(由外部管理)") + if self._neo4j_graph: + # Neo4jGraph 内部使用 driver,如果 driver 已关闭,这里不需要额外操作 + # 但为了清晰,我们重置引用 + self._neo4j_graph = None + logger.info("Neo4jGraph 实例已释放") + except Exception as e: + logger.warning(f"关闭连接时出错: {e}") + + def __del__(self): + """析构函数,确保资源被释放""" + self.close() + + + diff --git a/graph_search/init_prompts.py b/graph_search/init_prompts.py new file mode 100644 index 0000000..8799ec6 --- /dev/null +++ b/graph_search/init_prompts.py @@ -0,0 +1,659 @@ +""" +Prompt模板 + +功能:创建Cypher生成、验证、校正的prompt模板 +""" +from langchain_core.prompts import ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate +from neo4j import Driver +# ========== Cypher生成prompt(带 CoT、Few-shot 和 Schema 路径模板) ========== +generate_cypher_prompt = ChatPromptTemplate.from_messages([ + SystemMessagePromptTemplate.from_template( + "你是一个严格的 Cypher 明细查询生成器,用于返回具体记录(非聚合)。必须 100% 遵守以下规则。\n\n" + "### ⚠️ 绝对禁止(出现即错误)\n" + "❌ 使用有向关系(如 `->`),必须写成 `-[:REL]-`\n" + "❌ 使用 schema 未定义的标签、关系或属性名\n" + "❌ 使用 `OPTIONAL MATCH`、`UNWIND`、子查询、`CALL` 或多个 `MATCH`\n" + "❌ 使用 `WITH`(除非用于 `DISTINCT` 去重,且仅当必要时)\n" + "❌ 返回非 `... AS result` 的别名(如 `AS data`、`AS details`)\n" + "❌ 使用聚合函数(如 count, sum, avg)——本类查询只返回明细记录!\n" + "❌ 节点未绑定变量(例如 `(:设备)` 必须写成 `(e:设备)`)\n\n" + "### ✅ 必须遵守\n" + "✅ 所有节点在 MATCH 中必须显式声明别名(变量),即使不直接使用(如 `(s:舰艇)`, `(sys:系统)`)\n" + "✅ 允许使用时间属性(如 fault_time、发生时间)和日期条件(如 = '2024-01-01')\n" + "✅ 仅当用户明确提到实体名称(如\"发动机\")时,才使用 `名称 IN [...]`\n" + "✅ 所有条件(包括时间条件)必须用 AND 连接,放在单一 WHERE 子句中\n" + "✅ **优先使用少跳数完成查询。若单节点即可满足条件,不要强行连接其他节点。**\n" + "✅ 返回格式:`RETURN DISTINCT node AS result`(node 必须是已绑定的变量)\n" + "✅ 若涉及多个节点,返回用户关心的主目标节点(如“故障”、“监测记录”)的属性\n\n" + "### Schema(唯一权威,不得推测)\n{schema}\n\n" + "### 生成步骤\n" + "1. 判断是否提及具体实体 → 决定是否用 `名称 IN [...]`\n" + "2. 从 schema 提取相关标签/关系/属性(包括时间属性)\n" + "3. 构建无向路径,**为每个节点分配清晰别名**(如 s, sys, e, f)\n" + "4. 写单一 MATCH + 单一 WHERE(可含时间条件)\n" + "5. RETURN ... AS result\n\n" + "### 正确示例\n" + "• 发动机在2024年的所有故障详情:\n" + " ✅ MATCH (start_e:设备 {{名称: '主发动机'}})-[:包含*0..8]-(real_e:设备)-[:发生故障使用维修工作]-(w:维修工作)-[:包含故障]-(f:故障模式) WHERE f.发生时间 >= '2024-01-01' AND f.发生时间 <= '2024-12-31' RETURN DISTINCT f AS result\n\n" + "• 主发动机可以实现什么功能:\n" + " ✅ MATCH (start_e:设备 {{名称: '主发动机'}})-[:实现]-(p:功能) RETURN DISTINCT p AS result\n\n" + "• 主发动机的组成:\n" + " ✅ MATCH (start_e:设备 {{名称: '主发动机'}})-[:包含]-(p:组成) RETURN DISTINCT p AS result\n\n" + "• 某型舰艇的所有故障:\n" + " ✅ MATCH (s:舰艇 {{名称: '某型舰艇'}})-[:包含]-(sys:系统)-[:包含]-(sub_sys:子系统)-[:包含*1..5]-(e:设备)-[:发生故障使用维修工作]-(w:维修工作)-[:包含故障]-(f:故障模式) RETURN DISTINCT f AS result\n\n" + "• 主发动机发生排烟温度过高如何维修:" + " ✅ MATCH (start_e:设备 {{名称: '主发动机'}})-[:包含*0..8]-(real_e:设备)-[:发生故障使用维修工作]-(w:维修工作)-[:包含故障]-(f:故障模式{{名称: '排烟温度过高'}})-[:修理]-(p:维修项目) RETURN DISTINCT p AS result\n\n" + "### ❌ 典型错误(绝对不要做)\n" + "• MATCH (:舰艇 {{名称: 'X'}})-[:包含]-(:系统) → 节点未绑定别名\n" + "• RETURN f → 未使用 AS result\n" + "• MATCH (e:设备), (f:故障) WHERE ... → 多个独立 MATCH\n" + "• 使用 OPTIONAL MATCH → 违反结构限制\n" + "• 关系写成 --> 或 <-- → 使用了有向关系\n" + "• 返回未绑定的变量(如 fault)→ 变量必须在 MATCH 中声明\n\n" + "→ 注意:本查询类型**允许时间字段**,但依然禁止聚合操作。" + ), + HumanMessagePromptTemplate.from_template( + "【重要】再次提醒:\n" + "- **每个节点必须绑定别名**,例如 `(s:舰艇)` 而非 `(:舰艇)`\n" + "- **允许使用时间字段和日期条件**(如 fault_time, '2024-01-01')\n" + "- **严禁使用聚合函数**(如 count)——这是明细查询!\n" + "- 关系必须无方向(用 `-[:REL]-`)\n" + "- 返回必须是 `... AS result`!\n" + "- 仅一个 MATCH,无 OPTIONAL MATCH / UNWIND / CALL!\n" + "- 可使用 ORDER BY 和 LIMIT(如用户要求“最近”“最新”)\n\n" + "入口节点(NodeLabel: [name1, name2, ...]):\n{entry_nodes}\n\n" + "用户问题:\n{query}\n\n" + "→ 请直接输出【完整 Cypher 语句】,不要解释,不要注释。" + ), +]) + +generate_aggregate_cypher_prompt = ChatPromptTemplate.from_messages([ + SystemMessagePromptTemplate.from_template( + "你是一个严格的 Cypher 统计查询生成器,仅处理**不含任何时间信息**的聚合问题。必须 100% 遵守以下规则。\n\n" + "### ⚠️ 绝对禁止(出现即错误)\n" + "❌ 使用任何时间属性(如 fault_time、发生时间)或日期字符串(如 '2024')\n" + "❌ 使用有向关系(如 `->`),必须写成 `-[:REL]-`\n" + "❌ 使用 schema 未定义的标签、关系或属性名\n" + "❌ 使用 `OPTIONAL MATCH`、`UNWIND`、子查询、`CALL` 或多个 `MATCH`\n" + "❌ 使用 `WITH`(除非用于 `DISTINCT` 去重,且仅当必要时)\n" + "❌ 返回非 `... AS result` 的别名(如 `AS total`、`AS count_f`)\n\n" + "### ✅ 必须遵守\n" + "✅ 所有节点在 MATCH 中必须显式声明别名(变量),即使不直接使用(如 `(s:舰艇)`, `(sys:系统)`)\n" + "✅ 仅当用户明确提到实体名称(如\"发动机\")时,才使用 `名称 IN [...]`\n" + "✅ 否则(如“总共有多少故障?”),直接 MATCH 目标标签,忽略入口节点\n" + "✅ 所有条件(如 severity = 'high')必须用 AND 连接,放在单一 WHERE 子句中\n" + "✅ 路径最多 5 跳;若无法连接,退化为单节点匹配\n" + "✅ **优先使用少跳数完成查询。若单节点即可满足条件(如统计所有故障或查某属性),不要强行连接其他节点。**\n" + "✅ 返回格式:`RETURN agg_expr AS result`\n\n" + "### Schema(唯一权威,不得推测)\n{schema}\n\n" + "### 生成步骤\n" + "1. 判断是否提及具体实体 → 决定是否用 `名称 IN [...]`\n" + "2. 从 schema 提取相关标签/关系/非时间属性\n" + "3. 构建 ≤5 跳无向路径\n" + "4. 写单一 MATCH + 单一 WHERE(仅非时间条件)\n" + "5. RETURN ... AS result\n\n" + "### 正确示例\n" + "• 主发动机的故障总数:\n" + " ✅ MATCH (start_e:设备 {{名称: '主发动机'}})-[:包含*0..8]-(real_e:设备)-[:发生故障使用维修工作]-(w:维修工作)-[:包含故障]-(f:故障模式) RETURN count(DISTINCT f) AS result\n\n" + "• 发动机的故障总数:\n" + " ✅ MATCH (e:设备 {{名称: '发动机'}})-[:导致]-(f:故障模式) RETURN count(DISTINCT f) AS result\n\n" + "• 技术状态为\"在役\"的设备数量:\n" + " ✅ MATCH (e:设备) WHERE e.技术状态 = '在役' RETURN count(DISTINCT e) AS result\n\n" + "• 螺旋桨和发动机的故障总数:\n" + " ✅ MATCH (e:设备)-[:包含*0..8]-(real_e:设备)-[:发生故障使用维修工作]-(w:维修工作)-[:包含故障]-(f:故障模式) WHERE e.名称 IN ['螺旋桨', '发动机'] RETURN count(DISTINCT f) AS result\n\n" + "### ❌ 典型错误(绝对不要做)\n" + "• WHERE f.发生时间 > '2024' → 包含时间字段(本类查询严禁!)\n" + "• RETURN count(f) AS total → 别名不是 'result'\n" + "• MATCH (e:设备 {{名称: '发动机'}}), (f:故障) → 用了两个独立 MATCH\n" + "• 使用 OPTIONAL MATCH → 违反结构限制\n\n" + "→ 若问题隐含时间(如“最近”“今年”),**不要生成此类型查询**,应交由时间类 prompt 处理。" + ), + HumanMessagePromptTemplate.from_template( + "【重要】再次提醒:\n" + "- **每个节点必须绑定别名**,例如 `(s:舰艇)` 而非 `(:舰艇)`\n" + "- 关系必须无方向!\n" + "- 返回必须是 `... AS result`!\n" + "- 仅一个 MATCH,无 WITH/OPTIONAL MATCH!\n\n" + "入口节点(NodeLabel: [name1, name2, ...]):\n{entry_nodes}\n\n" + "用户问题:\n{query}\n\n" + "→ 请直接输出【完整 Cypher 语句】,不要解释,不要注释。" + ), +]) + +generate_single_time_aggregate_cypher_prompt = ChatPromptTemplate.from_messages([ + SystemMessagePromptTemplate.from_template( + "你是一个严格的单时间段统计 Cypher 生成器。仅处理含**一个明确时间范围**的计数问题(如“2024年”“本月”“截至某日”)。必须 100% 遵守以下规则。\n\n" + "### ⚠️ 绝对禁止(出现即错误)\n" + "❌ 使用任何时间函数(如 datetime(), date(), timestamp())\n" + "❌ 使用有向关系(如 `->`),必须写成 `-[:REL]-`\n" + "❌ 使用 schema 未定义的属性名(如写成 'time' 而非 'fault_time')\n" + "❌ 使用多个 MATCH、OPTIONAL MATCH、WITH、UNWIND 或子查询\n" + "❌ 返回非 `count(...) AS result` 的表达式\n\n" + "### ✅ 必须遵守\n" + "✅ 时间比较必须使用字符串字面量,格式如 `'2024-01-01'`\n" + "✅ 年/月区间必须为左闭右开:\n" + " • \"2024年\" → >= '2024-01-01' AND < '2025-01-01'\n" + " • \"2024年6月\" → >= '2024-06-01' AND < '2024-07-01'\n" + " • \"截至2024年底\" → <= '2024-12-31'(仅此情况用 ≤)\n" + "✅ 相对时间映射(系统时间:{current_date_info}):\n" + " • \"今年\" → >= '{current_year}-01-01' AND < '{next_year}-01-01'\n" + " • \"本月\" → >= '{current_year}-{current_month:02d}-01' AND < '{next_month_start}'\n" + "✅ 仅当用户明确提到实体名称时,才使用 `名称 IN [...]`\n" + "✅ 路径最多 5 跳;否则退化为单节点\n" + "✅ **优先使用少跳数完成查询。若单节点即可满足条件(如统计所有故障或查某属性),不要强行连接其他节点。**\n" + "✅ 返回格式:`RETURN count(x) AS result`\n\n" + "### Schema(唯一权威)\n{schema}\n\n" + "### 生成步骤\n" + "1. 判断是否使用入口节点(仅当明确提及实体名)\n" + "2. 从 schema 提取正确的时间属性名(如 fault_time)\n" + "3. 将时间语义解析为精确字符串区间\n" + "4. 构建 ≤5 跳无向路径\n" + "5. 写单一 MATCH + 单一 WHERE(含时间 + 其他非时间条件)\n" + "6. RETURN count(...) AS result\n\n" + "### 正确示例\n" + "• 2024年维修工作总数:\n" + " ✅ MATCH (f:维修工作) WHERE f.发生时间 >= '2024-01-01' AND f.发生时间 < '2025-01-01' RETURN count(DISTINCT f) AS result\n\n" + "• 截至2024年底的累计故障次数:\n" + " ✅ MATCH (f:故障模式) WHERE f.发生时间 <= '2024-12-31' RETURN count(DISTINCT f) AS result\n\n" + "### ❌ 典型错误(绝对不要做)\n" + "• WHERE datetime(f.发生时间) > '2024' → 用了函数\n" + "• WHERE f.发生时间 >= '2024-01-01' AND f.发生时间 <= '2024-12-31' → 年区间应为 < '2025-01-01'\n" + "• RETURN count(f) → 缺少 AS result\n" + "• 使用 (e:设备 {{名称: '发动机'}}), (r:修理) → 多个独立 MATCH\n\n" + "→ 若时间描述模糊(如“最近”),优先按“截至今日”处理,但必须用字符串!" + ), + HumanMessagePromptTemplate.from_template( + "【重要】再次提醒:\n" + "- **每个节点必须绑定别名**,例如 `(s:舰艇)` 而非 `(:舰艇)`\n" + "- 时间必须用字符串字面量(如 '2025-01-01'),禁用任何函数!\n" + "- 年/月区间必须左闭右开(< 下一年/月)!\n" + "- 关系无方向,仅一个 MATCH!\n" + "- 返回必须是 `count(...) AS result`!\n\n" + "入口节点(NodeLabel: [name1, name2, ...]):\n{entry_nodes}\n\n" + "用户问题:\n{query}\n\n" + "系统时间信息:\n{current_date_info}\n\n" + "→ 请直接输出【完整 Cypher 语句】,不要解释,不要注释。" + ), +]) + +# ========== 双时间段统计查询 Prompt(同比/环比/跨年对比) ========== +generate_dual_time_aggregate_cypher_prompt = ChatPromptTemplate.from_messages([ + SystemMessagePromptTemplate.from_template( + "你是一个严格的双时间段对比统计 Cypher 生成器。仅处理含**两个明确时间范围**的计数对比问题(如“今年 vs 去年”“2023 vs 2024”)。必须 100% 遵守以下规则。\n\n" + "### ⚠️ 绝对禁止(出现即错误)\n" + "❌ 使用任何时间函数(datetime/date/timestamp)\n" + "❌ 使用有向关系(-> 或 <-),必须写成 `-[:REL]-`\n" + "❌ 使用 schema 未定义的属性名\n" + "❌ 使用多个 MATCH、OPTIONAL MATCH、WITH、UNWIND 或子查询\n" + "❌ 在 CASE WHEN 中只写一个边界(如仅 >= 而无 <)\n" + "❌ WHERE 子句用 AND 连接两个时间段(必须用 OR)\n" + "❌ 返回字段命名错误(见下方 ✅ 规则)\n\n" + "### ✅ 必须遵守\n" + "✅ 时间比较必须使用字符串字面量,格式如 `'2025-01-01'`\n" + "✅ 每个时间段必须表示为完整左闭右开区间:>= start AND < end\n" + "✅ WHERE 条件:(time in period1) OR (time in period2)\n" + "✅ RETURN 必须包含两个字段,命名规则:\n" + " • 若为相对时间(今年/去年、本月/上月)→ `current, previous`\n" + " • 若为绝对年份(2023 vs 2024)→ `year_2023, year_2024`\n" + "✅ 每个字段必须是:\n" + " count(CASE WHEN time >= 'start' AND time < 'end' THEN 1 END) AS name\n" + "✅ 仅当用户明确提到实体名称时,才使用 `名称 IN [...]`\n" + "✅ 路径最多 5 跳;否则退化为单节点\n" + "✅ **优先使用少跳数完成查询。若单节点即可满足条件(如统计所有故障或查某属性),不要强行连接其他节点。**\n\n" + "### Schema(唯一权威)\n{schema}\n\n" + "### 系统时间上下文\n{current_date_info}\n\n" + "### 生成步骤\n" + "1. 判断是否使用入口节点(仅当明确提及实体名)\n" + "2. 识别两个时间段类型:相对 or 绝对 → 决定返回字段名\n" + "3. 为每个时间段生成完整 [start, end) 字符串(系统已提供)\n" + "4. 构建 ≤5 跳无向路径\n" + "5. 写单一 MATCH + WHERE (period1 OR period2)\n" + "6. RETURN 两个带完整区间的 count(CASE ...) AS ...\n\n" + "### 正确示例\n" + "• 今年 vs 去年故障次数:\n" + " ✅ MATCH (f:故障模式)\n" + " WHERE (f.发生时间 >= '2025-01-01' AND f.发生时间 < '2026-01-01') OR\n" + " (f.发生时间 >= '2024-01-01' AND f.发生时间 < '2025-01-01')\n" + " RETURN\n" + " count(CASE WHEN f.发生时间 >= '2025-01-01' AND f.发生时间 < '2026-01-01' THEN 1 END) AS current,\n" + " count(CASE WHEN f.发生时间 >= '2024-01-01' AND f.发生时间 < '2025-01-01' THEN 1 END) AS previous\n\n" + "• 2023 vs 2024年修理次数:\n" + " ✅ MATCH (r:维修工作)\n" + " WHERE (r.发生时间 >= '2023-01-01' AND r.发生时间 < '2024-01-01') OR\n" + " (r.发生时间 >= '2024-01-01' AND r.发生时间 < '2025-01-01')\n" + " RETURN\n" + " count(CASE WHEN r.发生时间 >= '2023-01-01' AND r.发生时间 < '2024-01-01' THEN 1 END) AS year_2023,\n" + " count(CASE WHEN r.发生时间 >= '2024-01-01' AND r.发生时间 < '2025-01-01' THEN 1 END) AS year_2024\n\n" + "### ❌ 典型错误(绝对不要做)\n" + "• CASE WHEN f.发生时间 >= '2025-01-01' THEN 1 END → 缺少 < '2026-01-01'\n" + "• WHERE (period1) AND (period2) → 逻辑错误,应为 OR\n" + "• 返回 AS this_year, last_year → 相对时间必须用 current/previous\n" + "• 使用 WITH 或额外变量 → 违反单一 MATCH 原则\n\n" + "→ 你必须严格复制示例中的结构。宁可输出简单正确语句,也不要‘优化’逻辑。" + ), + HumanMessagePromptTemplate.from_template( + "【重要】再次提醒:\n" + "- **每个节点必须绑定别名**,例如 `(s:舰艇)` 而非 `(:舰艇)`\n" + "- 每个 CASE 必须同时包含 >= start AND < end!\n" + "- WHERE 必须用 OR 连接两个时间段!\n" + "- 相对时间 → 返回 current, previous;绝对年份 → year_YYYY!\n" + "- 禁用任何时间函数,仅用字符串!\n" + "- 仅一个 MATCH,无 WITH!\n\n" + "入口节点(NodeLabel: [name1, name2, ...]):\n{entry_nodes}\n\n" + "用户问题:\n{query}\n\n" + "系统时间信息(包含完整时间段字符串):\n{current_date_info}\n\n" + "→ 请直接输出【完整 Cypher 语句】,不要解释,不要注释。" + ), +]) + +# ========== 多时间段统计查询 Prompt(3个及以上时间段) ========== +generate_multi_time_aggregate_cypher_prompt = ChatPromptTemplate.from_messages([ + SystemMessagePromptTemplate.from_template( + "你是一个严格的多时间段趋势统计 Cypher 生成器。仅处理含**三个或以上明确年份**的计数问题(如“2023、2024、2025年”或“历年趋势”)。必须 100% 遵守以下规则。\n\n" + "### ⚠️ 绝对禁止(出现即错误)\n" + "❌ 使用任何时间函数(datetime/date/timestamp)\n" + "❌ 使用有向关系(-> 或 <-),必须写成 `-[:REL]-`\n" + "❌ 使用 schema 未定义的属性名\n" + "❌ 使用多个 MATCH、OPTIONAL MATCH、WITH、UNWIND 或子查询\n" + "❌ 在 CASE WHEN 中缺失 < end 边界\n" + "❌ 返回字段命名不符合 `year_YYYY` 格式(如 y2023、count_2023)\n" + "❌ 字段顺序不是时间升序(早 → 晚)\n" + "❌ 默认年份计算错误(当前系统时间:{current_date_info})\n\n" + "### ✅ 必须遵守\n" + "✅ 时间比较必须使用字符串字面量,格式如 `'2025-01-01'`\n" + "✅ 每个年份对应一个完整左闭右开区间:>= 'YYYY-01-01' AND < '(YYYY+1)-01-01'\n" + "✅ 若用户说“各年”“历年”“过去几年”且未指定年份 → 默认使用最近3年:{last_last_year}, {last_year}, {current_year}\n" + "✅ WHERE 条件:所有时间段用 OR 连接,并用括号包裹整体时间条件\n" + "✅ RETURN 必须包含 N 个字段,每个格式为:\n" + " count(CASE WHEN time >= 'YYYY-01-01' AND time < '(YYYY+1)-01-01' THEN 1 END) AS year_YYYY\n" + "✅ 字段顺序必须按年份升序(如 year_2023, year_2024, year_2025)\n" + "✅ 仅当用户明确提到实体名称时,才使用 `名称 IN [...]`\n" + "✅ 路径最多 5 跳;否则退化为单节点\n" + "✅ **优先使用少跳数完成查询。若单节点即可满足条件(如统计所有故障或查某属性),不要强行连接其他节点。**\n\n" + "### Schema(唯一权威)\n{schema}\n\n" + "### 系统时间上下文\n{current_date_info}\n\n" + "### 生成步骤\n" + "1. 判断是否使用入口节点(仅当明确提及实体名)\n" + "2. 提取所有年份:显式列出 or 默认近3年({last_last_year}, {last_year}, {current_year})\n" + "3. 为每个年份 Y 生成区间:>= 'Y-01-01' AND < '(Y+1)-01-01'\n" + "4. 构建 ≤5 跳无向路径\n" + "5. 写单一 MATCH + WHERE(非时间条件 AND (time in Y1 OR Y2 OR Y3))\n" + "6. RETURN 多个 year_YYYY 字段,按年份升序排列\n\n" + "### 正确示例\n" + "• 2023、2024、2025年的故障数:\n" + " ✅ MATCH (f:故障模式)\n" + " WHERE (f.发生时间 >= '2023-01-01' AND f.发生时间 < '2024-01-01') OR\n" + " (f.发生时间 >= '2024-01-01' AND f.发生时间 < '2025-01-01') OR\n" + " (f.发生时间 >= '2025-01-01' AND f.发生时间 < '2026-01-01')\n" + " RETURN\n" + " count(CASE WHEN f.发生时间 >= '2023-01-01' AND f.发生时间 < '2024-01-01' THEN 1 END) AS year_2023,\n" + " count(CASE WHEN f.发生时间 >= '2024-01-01' AND f.发生时间 < '2025-01-01' THEN 1 END) AS year_2024,\n" + " count(CASE WHEN f.发生时间 >= '2025-01-01' AND f.发生时间 < '2026-01-01' THEN 1 END) AS year_2025\n\n" + "• 各年的修理数(默认近3年:2023,2024,2025):\n" + " ✅ MATCH (r:维修工作)\n" + " WHERE (r.发生时间 >= '2023-01-01' AND r.发生时间 < '2024-01-01') OR\n" + " (r.发生时间 >= '2024-01-01' AND r.发生时间 < '2025-01-01') OR\n" + " (r.发生时间 >= '2025-01-01' AND r.发生时间 < '2026-01-01')\n" + " RETURN\n" + " count(CASE WHEN r.发生时间 >= '2023-01-01' AND r.发生时间 < '2024-01-01' THEN 1 END) AS year_2023,\n" + " count(CASE WHEN r.发生时间 >= '2024-01-01' AND r.发生时间 < '2025-01-01' THEN 1 END) AS year_2024,\n" + " count(CASE WHEN r.发生时间 >= '2025-01-01' AND r.发生时间 < '2026-01-01' THEN 1 END) AS year_2025\n\n" + "### ❌ 典型错误(绝对不要做)\n" + "• 返回 year_2025, year_2024, year_2023 → 顺序错误(应按年份升序)\n" + "• CASE WHEN f.发生时间 >= '2025-01-01' THEN 1 END → 缺少 < '2026-01-01'\n" + "• 使用 year2023(无下划线)→ 命名格式错误\n" + "• 默认年份写成 2022,2023,2024(当前是 2026)→ 逻辑错误\n" + "• WHERE 未用括号包裹 OR 条件 → 与非时间条件优先级混乱\n\n" + "→ 你必须像复制模板一样输出。每个年份的 CASE 结构必须完全一致。" + ), + HumanMessagePromptTemplate.from_template( + "【重要】再次提醒:\n" + "- **每个节点必须绑定别名**,例如 `(s:舰艇)` 而非 `(:舰艇)`\n" + "- 默认近3年:{last_last_year}, {last_year}, {current_year}(当前是 {current_year} 年)!\n" + "- 每个 CASE 必须包含 >= YYYY-01-01 AND < (YYYY+1)-01-01!\n" + "- 返回字段必须命名为 year_2023、year_2024 等,按年份升序!\n" + "- 仅一个 MATCH,禁用 WITH/OPTIONAL MATCH!\n" + "- 时间必须用字符串,禁用函数!\n\n" + "入口节点(NodeLabel: [name1, name2, ...]):\n{entry_nodes}\n\n" + "用户问题:\n{query}\n\n" + "系统时间信息:\n{current_date_info}\n\n" + "→ 请直接输出【完整 Cypher 语句】,不要解释,不要注释。" + ), +]) + + +# ========== Cypher校正prompt(按错误类型分类) ========== + +# 1. 语法错误修正 prompt(适用于统计类和明细类) +correct_syntax_cypher_prompt = ChatPromptTemplate.from_messages([ + SystemMessagePromptTemplate.from_template( + "你是一位资深 Cypher 专家,负责修正 Cypher 查询中的**语法错误**。\n\n" + "【错误类型】语法错误(括号不匹配、关键字错误、格式问题等)\n\n" + "【修正原则】\n" + "1. **仅修复语法问题**,不得改变查询的语义和意图。\n" + "2. **保持原始查询结构**:节点标签、关系类型、属性名等保持不变。\n" + "3. **保持原始查询类型**:\n" + " - 如果原查询是统计类(包含聚合函数如 count、sum 等),修正后仍应为统计类\n" + " - 如果原查询是明细类(返回节点/关系),修正后仍应为明细类\n" + "4. **修复常见语法错误**:\n" + " - 括号不匹配 → 补充缺失的括号或删除多余的括号\n" + " - 关键字拼写错误 → 修正为正确的关键字(MATCH、RETURN、WHERE等)\n" + " - 关系定义格式错误 → 修正为 `-[:RELATIONSHIP]-` 格式\n" + " - 多余的括号嵌套 → 删除多余的括号\n" + " - 缺少逗号或空格 → 补充必要的分隔符\n" + "5. **输出要求**:\n" + " - 仅返回修正后的完整 Cypher 语句,不要任何解释、注释或 Markdown。\n\n" + "schema:\n{schema}" + ), + HumanMessagePromptTemplate.from_template( + "入口节点(格式:NodeLabel: [name1, name2, ...]):\n{entry_nodes}\n\n" + "用户原始输入:\n{query}\n\n" + "语法错误信息:\n{errors}\n\n" + "待修正的 Cypher 语句:\n{cypher}\n\n" + "请输出修正后的 Cypher 语句(仅代码,无其他内容):" + ), +]) + +# 2. Schema错误修正 prompt(适用于统计类和明细类) +correct_schema_cypher_prompt = ChatPromptTemplate.from_messages([ + SystemMessagePromptTemplate.from_template( + "你是一位资深 Cypher 专家,负责修正 Cypher 查询中的**Schema错误**。\n\n" + "【错误类型】Schema错误(关系类型不存在、节点标签不存在、属性名不存在)\n\n" + "【修正原则】\n" + "1. **Schema 是唯一权威**:\n" + " - 所有节点标签和关系类型必须严格存在于以下 schema 中。\n" + " - 禁止使用 schema 中未定义的标签、关系或属性。\n" + "2. **保持原始查询意图**:\n" + " - 修正仅针对错误的标签/关系/属性,不得改变用户要查询的目标。\n" + " - 目标节点类型必须与用户问题一致。\n" + "3. **保持原始查询类型**:\n" + " - 如果原查询是统计类(包含聚合函数如 count、sum 等),修正后仍应为统计类\n" + " - 如果原查询是明细类(返回节点/关系),修正后仍应为明细类\n" + "4. **修正策略**:\n" + " - **关系类型不存在** → 在 schema 中查找语义相近的关系类型替换\n" + " - **节点标签不存在** → 在 schema 中查找语义相近的节点标签替换\n" + " - **属性名不存在** → 使用 schema 中该节点类型实际存在的属性名(如 `name`、`名称`)\n" + " - 如果无法找到替代,考虑通过中间节点构建多跳路径(如 设备 → 故障 → 维修方案)\n" + "5. **强制无方向关系**:所有关系必须写成 `-[:RELATIONSHIP]-`,禁止 `->` 或 `<-`。\n" + "6. **输出要求**:\n" + " - 仅返回修正后的完整 Cypher 语句,不要任何解释、注释或 Markdown。\n\n" + "schema:\n{schema}" + ), + HumanMessagePromptTemplate.from_template( + "入口节点(格式:NodeLabel: [name1, name2, ...]):\n{entry_nodes}\n\n" + "用户原始输入:\n{query}\n\n" + "Schema错误信息(关系类型/节点标签/属性名不存在):\n{errors}\n\n" + "待修正的 Cypher 语句:\n{cypher}\n\n" + "请输出修正后的 Cypher 语句(仅代码,无其他内容):" + ), +]) + +# 3. 空结果错误修正 prompt(适用于统计类和明细类) +correct_empty_result_cypher_prompt = ChatPromptTemplate.from_messages([ + SystemMessagePromptTemplate.from_template( + "你是一位资深 Cypher 专家,负责修正返回空结果的 Cypher 查询。\n\n" + "【错误类型】查询执行成功但返回空结果或0结果\n\n" + "【修正原则】\n" + "1. **保持原始查询意图**:不得改变用户要查询的目标。\n" + "2. **Schema 是唯一权威**:所有标签/关系必须存在于 schema 中。\n" + "3. **保持原始查询类型**:\n" + " - 如果原查询是统计类(包含聚合函数如 count、sum 等),修正后仍应为统计类\n" + " - 如果原查询是明细类(返回节点/关系),修正后仍应为明细类\n" + "4. **修正策略(按优先级)**:\n" + " - **检查路径是否可达**:\n" + " • 若直接关系不存在,必须通过 schema 中存在的中间节点构建多跳路径\n" + " • 每一跳的关系必须在 schema 中存在,最多允许 5 跳\n" + " - **检查入口节点名称**:\n" + " • 确保使用的节点名称与入口节点列表中的名称完全一致\n" + " • 考虑使用 `name IN [...]` 匹配多个入口节点\n" + " - **如果仍无法连接**:\n" + " • 保留入口节点匹配,但不扩展无效路径(避免空 MATCH)\n" + " • 返回入口节点本身作为结果\n" + "5. **强制无方向关系**:所有关系必须写成 `-[:RELATIONSHIP]-`,禁止 `->` 或 `<-`。\n" + "6. **输出要求**:\n" + " - 仅返回修正后的完整 Cypher 语句,不要任何解释、注释或 Markdown。\n\n" + "schema:\n{schema}" + ), + HumanMessagePromptTemplate.from_template( + "入口节点(格式:NodeLabel: [name1, name2, ...]):\n{entry_nodes}\n\n" + "用户原始输入:\n{query}\n\n" + "错误信息(查询返回空结果):\n{errors}\n\n" + "待修正的 Cypher 语句:\n{cypher}\n\n" + "请输出修正后的 Cypher 语句(仅代码,无其他内容):" + ), +]) + +# ========== 通用修正 prompt(向后兼容,用于未分类的错误) ========== +correct_cypher_prompt = ChatPromptTemplate.from_messages([ + SystemMessagePromptTemplate.from_template( + "你是一位资深 Cypher 专家,负责根据 schema、入口节点、用户意图和执行错误,精准修正一条有缺陷的 Cypher 查询。\n\n" + + "【核心原则】\n" + "1. **Schema 是唯一权威**:\n" + " - 所有节点标签、关系类型和属性必须严格存在于以下 schema 中。\n" + " - 禁止使用 schema 中未定义的元素。\n" + "2. **保持原始查询意图不变**:\n" + " - 若原查询目标是具体实体(如故障现象),修正后仍返回该类节点;\n" + " - 若原查询是统计(如“有多少个”),修正后必须仍是纯聚合查询。\n" + "3. **强制无方向关系**:\n" + " - 所有关系必须写成 `-[:RELATIONSHIP]-`,禁止 `->` 或 `<-`。\n" + "4. **实体来源可靠**:\n" + " - 节点匹配必须使用入口节点中提供的名称(已验证存在于图谱)。\n" + "5. **输出要求**:\n" + " - 仅返回修正后的完整 Cypher 语句;\n" + " - 不要任何解释、注释、Markdown 或额外文本;\n" + " - 确保语法合法、可直接在 Neo4j 中执行。\n\n" + + "【针对非聚合查询】\n" + "- RETURN 可包含节点或属性,但属性必须存在于 schema;\n" + "- 允许多跳路径(最多 5 跳),每跳关系须在 schema 中存在;\n" + "- 若路径不可达,优先尝试通过中间节点重构路径;若仍失败,保留入口节点匹配但不扩展无效部分。\n\n" + + "【针对聚合查询(含 count/sum/avg 等)】\n" + "- 必须是纯统计:仅一个 `MATCH`(可用逗号分隔多个模式);\n" + "- 禁止 `OPTIONAL MATCH`、`WITH`、`UNWIND`、子查询;\n" + "- RETURN 只能包含一个聚合表达式(如 `count(*) AS total`);\n" + "- 若路径不可达,退化为仅匹配入口节点进行计数。\n\n" + + "【通用修正策略】\n" + "- 标签/关系不在 schema → 替换为 schema 中存在的等效项;\n" + "- 属性不存在 → 仅保留通用属性(如 `名称`)或移除条件;\n" + "- 语法错误 → 修复括号、关键字、RETURN 缺失等;\n" + "- 有向关系 → 改为无方向 `-[:REL]-`。\n\n" + + "schema:\n{schema}" + ), + HumanMessagePromptTemplate.from_template( + "入口节点(格式:NodeLabel: [name1, name2, ...]):\n{entry_nodes}\n\n" + "用户原始输入:\n{query}\n\n" + "执行错误信息:\n{errors}\n\n" + "待修正的 Cypher 语句:\n{cypher}\n\n" + "请输出修正后的 Cypher 语句(仅代码,无其他内容):" + ), +]) +correct_aggregate_cypher_prompt = correct_cypher_prompt + + +# ========== 路由标签识别 Prompt(实体抽取和查询重写) ========== +def build_schema_section(schema: str = None) -> str: + """ + 构建schema部分(供路由标签识别使用) + + Args: + schema: Neo4j图谱schema信息(可选) + + Returns: + str: schema部分的字符串 + """ + if not schema: + return "" + return f""" + 【重要:图谱Schema结构(必须仔细阅读)】 + 以下是从Neo4j知识图谱中提取的完整schema结构,包含了所有可用的节点标签(Node Labels)和关系类型(Relationship Types)。 + **你必须根据这个schema来识别实体应该属于哪个节点标签,确保标签名称与schema中的节点标签完全一致。** + + {schema} + + 【关键要求】 + - 你选择的label必须与schema中列出的节点标签完全匹配(大小写敏感) + - 如果schema中没有某个标签,不要使用该标签 + - 仔细查看schema中的节点标签列表,确保选择的标签是实际存在的 + + """ + + +def get_extract_entities_prompt(query: str, optional_labels: str, schema: str = None) -> str: + schema_section = build_schema_section(schema) if schema else "" + + prompt = f"""你是一个智能检索路由Agent,负责从用户自然语言问题中准确抽取**主语实体**及其对应的**图谱节点标签**。 + +### 🎯 核心任务 +从用户问题中识别出**查询的起点实体(主语)**,并为其分配一个或多个**合法的节点标签**(必须严格来自图谱schema)。 + +### ⚠️ 关键原则(违反任一将导致错误) +1. **主语 ≠ 查询目标** + - 示例: + - ❌ "声呐基阵系统由哪些零部件组成?" → 主语不是"零部件" + - ✅ 主语是"声呐基阵系统",标签应为 "系统"(依schema而定) + - 查询目标(如"零部件"、"维修项目")由后续图遍历处理,**不得作为当前主语的标签** + +2. **标签必须存在于schema中** + - 大小写敏感,名称必须完全一致 + - 若schema未定义某标签(如"子系统"),即使语义合理也**禁止使用**(实际图谱中存在"系统"标签) + +3. **允许多标签候选** + - 当实体可能属于多个合法标签时,可输出多个条目 + - 每个标签都必须在schema中真实存在 + +4. **禁止模糊占位符** + - 不得使用 "Unknown"、"Other"、"不确定"、"" 等无效标签 + +{schema_section} +【可选标签说明(仅作语义参考,最终以schema为准)】 +{optional_labels} + +### 📤 输出要求 +请严格按照以下 JSON 格式输出,不要包含任何其他文字、解释或 Markdown: + +{{ + "entities": [ + {{"label": "节点类型", "entity": "实体名称"}} + ] +}} + +注意: +- 必须是合法的 JSON; +- 不要使用 ```json 或任何代码块; +- 如果没有匹配项,返回 {{"entities": []}}; + +用户输入: +{query}""" + return prompt + + +def get_rewrite_query_prompt(query: str, schema: str = None) -> str: + schema_section = build_schema_section(schema) if schema else "" + + prompt = f"""你是一个专业的智能检索路由Agent,负责将用户自然语言问题**重写为标准查询语句**,并进行**精确分类**,以支持知识图谱检索或后置计算。 + +{schema_section} + +### 🔍 任务一:判断 query_type(三选一,优先级从高到低) + +| 类型 | 判断依据 | +|-------------|--------| +| **complex** | 问题涉及 **“备品备件需求量”** 或其他**图谱无法直接计算的指标**(如预测、优化、动态库存等) | +| **aggregate** | 涉及 **统计、计数、聚合、比较、存在性**:
• 词汇:多少、几个、总数、占比、平均、最大值、是否存在、有没有
• 时间对比:同比、环比、相比去年
• 排名:前N名、排行 | +| **detail** | 要求 **具体实体列表或详情**:
• 词汇:有哪些、列出、显示、是什么、包含哪些 | + +> 💡 判断顺序:先检查是否为 complex → 否则按 aggregate/detail 规则判断 + +--- + +### ✍️ 任务二:重写规则(按 query_type 分类处理) + +#### ▶ 若为 **detail** 或 **aggregate**: +- **保留所有限定条件**(时间、状态、属性等) + ✅ 正确:"2025年新增的声呐基阵系统有哪些?" + ❌ 错误:"有哪些声呐基阵系统?" + - **术语标准化**(仅当明确对应图谱实体时): + • "组件" → "零部件" + • "维修项目" → "维修项目"(保持原样,图谱中存在此节点类型) + • "故障记录" → "故障" + > 注意:仅在上下文明确指代图谱实体时替换(如"研发项目"不替换) +- **保持自然语言结构**,不强制改为问句 + +#### ▶ 若为 **complex**: +执行 **“意图降级”**:将“求指标”问题转为“列原始实体”问题 +- **保留所有原始条件**(时间、系统、状态等) +- **应用术语标准化** +- **改写为目标实体的明细查询** + +✅ 示例: +- 输入:"发动机备品备件的需求量是多少?" +- 输出:"列出所有发动机的备品备件。" +- 输入:"今年螺旋桨所需备件数量?" +- 输出:"列出2025年螺旋桨所需的所有备品备件。" + +> ⚠️ 即使原问题含“多少”“需求量”,complex 类必须输出 **可直接图谱查询的实体列表请求** + +--- + +### 🏷️ 任务三:分类字段(如实填写) + +- **has_time**: + `true` 若含:年/月/日、今年/去年、2024年、近一年、Q1、同比 等 + `false` 否则 + +- **time_type**(仅当 query_type="aggregate" 且 has_time=true 时有效): + - `"single"`:单一时间段(如“今年”) + - `"dual"`:两个时间段对比(如“同比”“相比去年”) + - `"multi"`:多个时间段(如“各季度”) + - `"null"`:其他情况(包括 complex 或 detail 类) + +> ✅ 即使 query_type="complex",也需正确填写 has_time 和 time_type + +--- + +### 📤 输出格式(严格 JSON,无额外内容) + +{{ + "rewritten_query": "重写后的标准查询语句", + "query_classification": {{ + "query_type": "detail|aggregate|complex", + "has_time": true|false, + "time_type": "single|dual|multi|null" + }} +}} + +⚠️ 输出必须满足: +- **仅输出一个合法 JSON 对象**,严格遵循以下结构; +- **不要包含任何其他文字、说明、注释、换行、反引号或 Markdown**; +- **不要使用 ```json 或任何代码块包裹**; +- **确保 JSON 可被 Python json.loads() 直接解析**; +- 若无法判断,使用默认值:query_type="detail", has_time=false, time_type=null。 + +用户输入:{query} +""" + return prompt + +def get_all_ontology_labels(driver: Driver) -> list[str]: + """ + 从 Neo4j 图数据库动态获取所有节点标签(即本体类别)。 + 替换原来的硬编码列表。 + """ + with driver.session() as session: + result = session.run("CALL db.labels() YIELD label RETURN label") + labels = [record["label"] for record in result] + return sorted(labels) # 可选:排序便于调试 + + +def get_all_relationship_types(driver: Driver) -> list[str]: + """ + 从 Neo4j 图数据库动态获取所有关系类型。 + 替换原来的硬编码列表。 + """ + with driver.session() as session: + result = session.run("CALL db.relationshipTypes() YIELD relationshipType RETURN relationshipType") + rel_types = [record["relationshipType"] for record in result] + return sorted(rel_types) # 可选:排序 diff --git a/graph_search/node_retrieval.py b/graph_search/node_retrieval.py new file mode 100644 index 0000000..3a20793 --- /dev/null +++ b/graph_search/node_retrieval.py @@ -0,0 +1,299 @@ +""" +=========================================== +节点检索模块 - NodeRetrieval +=========================================== +功能:根据路由结果,使用混合检索获取候选入口节点 + 使用HybridRetriever混合检索(向量+全文) +=========================================== +""" + +import re +import asyncio +import logging +import time +from typing import List, Dict, Any, Optional + +logger = logging.getLogger(__name__) + +# ========== ========== 导入依赖 ========== ========== +try: + from neo4j_graphrag.retrievers import HybridRetriever + import jieba + # 过滤 jieba 缓存写入权限错误的日志(不影响功能,只是无法写入缓存) + jieba_logger = logging.getLogger('jieba') + jieba_logger.setLevel(logging.CRITICAL) # 只显示 CRITICAL 级别,过滤所有 ERROR/WARNING/INFO/DEBUG + NODE_RETRIEVAL_AVAILABLE = True +except ImportError: + NODE_RETRIEVAL_AVAILABLE = False + + +class NodeRetrieval: + """ + 节点检索类 + + 功能:根据路由结果,检索候选入口节点 + """ + + def __init__(self, driver, embeddings): + """ + 初始化节点检索器 + + Args: + driver: Neo4j driver实例 + embeddings: 嵌入模型实例(需要有embed_documents方法) + """ + self.driver = driver + self.embeddings = embeddings + + async def retrieve_nodes( + self, + route_res: List[Dict[str, str]], # [{"label": "Drug", "entity": "xxx"}] + top_k: int = 10 + ) -> Dict[str, List[Dict[str, Any]]]: + """ + 节点检索:根据标签和实体,检索入口节点 + + 功能: + 使用混合检索(向量+全文)进行检索 + + Args: + route_res: 路由结果,包含标签和实体信息 + top_k: 检索返回的节点数量上限 + + Returns: + Dict[str, List[Dict]]: 检索到的节点结果,以标签为键 + """ + if not NODE_RETRIEVAL_AVAILABLE: + logger.error("节点检索依赖未安装") + return {} + + pairs = [] # 用于存储需要检索的标签-实体对 + retrieved_nodes = {} # 用于存储检索到的节点结果,以标签为键 + + for item in route_res: + label = item.get("label", "") + entity = item.get("entity", "") + + if not entity: # 如果实体为空则跳过 + continue + + # 将标签和实体作为一个元组添加到pairs列表中 + pairs.append((label, entity)) + + if not pairs: # 如果没有需要检索的标签-实体对,直接返回 + return retrieved_nodes + + # 将标签-实体对分离成两个独立的列表 + labels, entities = zip(*pairs) + labels, entities = list(labels), list(entities) + + # ========== 对每个实体进行中文分词处理,生成全文检索查询文本 ========== + query_texts = [] + for entity in entities: + try: + words = jieba.lcut(entity) + filtered_words = [ + word.strip() + for word in words + if word.strip() and re.fullmatch(r"[a-zA-Z0-9\u4e00-\u9fa5]+", word.strip()) + ] + # 如果过滤后没有词,使用原始实体 + if not filtered_words: + filtered_words = [entity] if entity.strip() else [] + query_text = " OR ".join(filtered_words) if filtered_words else entity + query_texts.append(query_text) + except Exception as e: + logger.warning(f"实体 '{entity}' 分词失败: {e},使用原始实体作为查询文本") + query_texts.append(entity) + + # ========== 对实体进行向量化处理 ========== + try: + query_vectors = self.embeddings.embed_documents(entities) + except Exception as e: + logger.error(f"向量化失败: {e}", exc_info=True) + query_vectors = [None] * len(entities) + + # ========== 为每个标签创建混合检索任务 ========== + tasks = [] + for label, entity, query_text, query_vector in zip(labels, entities, query_texts, query_vectors): + try: + # vector_index_name = label.lower() + "_vector" + # fulltext_index_name = label.lower() + "_fulltext" + vector_index_name = "global_searchable_embedding" + fulltext_index_name = "global_searchable_fulltext_search" + retriever = HybridRetriever( + self.driver, + vector_index_name=vector_index_name, + fulltext_index_name=fulltext_index_name + ) + tasks.append( + asyncio.to_thread( + retriever.get_search_results, + query_text, + query_vector, + top_k, + effective_search_ratio=2, + ) + ) + except Exception as e: + logger.error(f"创建HybridRetriever失败 ({label}): {e}", exc_info=True) + tasks.append(None) + + # ========== 并发执行所有检索任务 ========== + valid_tasks = [task for task in tasks if task is not None] + if valid_tasks: + results = await asyncio.gather(*valid_tasks, return_exceptions=True) + else: + logger.warning("没有有效的检索任务") + results = [] + + # ========== 处理检索结果 ========== + valid_results = [] + exception_results = [] + + for i, result in enumerate(results): + if isinstance(result, Exception): + label = labels[i] if i < len(labels) else "unknown" + logger.error(f"检索任务 {i} (标签: {label}) 执行异常: {result}", exc_info=result) + exception_results.append((i, result)) + else: + valid_results.append((i, result)) + + # ========== 按标签分组,准备进行RRF融合 ========== + # 结构: {label: [(entity, result_index, nodes_list), ...]} + label_results_map = {} + + for i, result in valid_results: + label = labels[i] if i < len(labels) else "unknown" + entity = entities[i] if i < len(entities) else "unknown" + + if result is None: + logger.warning(f"标签 '{label}' (实体: '{entity}') 的检索结果为 None") + continue + + if not hasattr(result, 'records'): + logger.warning(f"标签 '{label}' (实体: '{entity}') 的结果没有 'records' 属性,类型: {type(result)}") + continue + + + # 提取节点信息(优先使用"名称"属性,兼容"name") + nodes_list = [ + { + "name": record["node"].get("名称") or record["node"].get("name") or str(record["node"]), + "score": record.get("score", 0.0), + "node": dict(record["node"]) + } + for record in result.records + ] + + if nodes_list: + if label not in label_results_map: + label_results_map[label] = [] + label_results_map[label].append((entity, i, nodes_list)) + + # ========== 对每个标签的多个实体结果进行RRF融合 ========== + # 策略:只对同一标签下相同实体名的结果进行RRF融合 + rrf_fusion_start = time.time() + for label, entity_results in label_results_map.items(): + # ========== 按实体名分组 ========== + entity_name_groups = {} # {entity_name: [(entity, result_index, nodes_list), ...]} + + for entity, result_index, nodes_list in entity_results: + if entity not in entity_name_groups: + entity_name_groups[entity] = [] + entity_name_groups[entity].append((entity, result_index, nodes_list)) + + # ========== 对每个实体名的结果进行RRF融合,然后合并 ========== + all_fused_nodes = [] + + for entity_name, group_results in entity_name_groups.items(): + if len(group_results) == 1: + # 只有一个结果,不需要RRF融合,直接使用 + _, _, nodes_list = group_results[0] + all_fused_nodes.extend(nodes_list) + logger.debug(f"标签 '{label}' 实体 '{entity_name}' 只有一个结果,跳过RRF融合") + else: + # 多个结果(相同实体名),使用RRF融合 + fused_nodes = self._rrf_fusion(group_results, top_k=top_k) + all_fused_nodes.extend(fused_nodes) + + # ========== 对同一标签内的所有节点按score排序 ========== + all_fused_nodes.sort(key=lambda x: x.get('score', 0), reverse=True) + + # ========== 限制每个标签的数量 ========== + retrieved_nodes[label] = all_fused_nodes[:top_k] + + # 统计去重后的结果 + dedup_stats = {k: len(v) for k, v in retrieved_nodes.items()} + logger.info(f"检索结果统计(RRF融合后): {list(dedup_stats.items())}") + return retrieved_nodes + + def _rrf_fusion( + self, + entity_results: List[tuple], + top_k: int = 10, + k: int = 60 + ) -> List[Dict[str, Any]]: + """ + 使用RRF (Reciprocal Rank Fusion) 融合多个实体的检索结果 + + RRF公式: RRF(d) = Σ 1/(k + rank_i(d)) + 其中: + - d 是文档/节点 + - rank_i(d) 是文档在第i个排序结果中的排名(从1开始) + - k 是常数,通常为60 + + Args: + entity_results: [(entity, result_index, nodes_list), ...] + top_k: 返回的节点数量上限 + k: RRF常数,默认60 + + Returns: + List[Dict]: 融合后的节点列表,按RRF分数降序排序 + """ + if not entity_results: + return [] + + # ========== 1. 为每个节点计算RRF分数 ========== + node_rrf_scores = {} # {node_name: {"rrf_score": float, "node_data": dict, "ranks": [rank1, rank2, ...]}} + + for entity, result_index, nodes_list in entity_results: + for rank, node in enumerate(nodes_list, start=1): # rank从1开始 + node_name = node.get("name") + if not node_name: + continue + + if node_name not in node_rrf_scores: + node_rrf_scores[node_name] = { + "rrf_score": 0.0, + "node_data": node, # 保留第一个出现的节点数据 + "ranks": [] + } + + # 累加RRF分数: 1/(k + rank) + rrf_contribution = 1.0 / (k + rank) + node_rrf_scores[node_name]["rrf_score"] += rrf_contribution + node_rrf_scores[node_name]["ranks"].append(rank) + + # ========== 2. 转换为列表并按RRF分数排序 ========== + fused_nodes = [] + for node_name, data in node_rrf_scores.items(): + node_data = data["node_data"].copy() + node_data["score"] = data["rrf_score"] # 使用RRF分数替换原始score + node_data["_rrf_ranks"] = data["ranks"] # 保留排名信息用于调试 + fused_nodes.append(node_data) + + # 按RRF分数降序排序 + fused_nodes.sort(key=lambda x: x["score"], reverse=True) + + # ========== 3. 限制返回数量 ========== + fused_nodes = fused_nodes[:top_k] + + logger.debug( + f"RRF融合: {len(entity_results)} 个实体, " + f"融合前总节点数: {sum(len(nodes) for _, _, nodes in entity_results)}, " + f"融合后: {len(fused_nodes)} 个节点" + ) + + return fused_nodes + diff --git a/graph_search/operation_graph_search.py b/graph_search/operation_graph_search.py new file mode 100644 index 0000000..3ffeb98 --- /dev/null +++ b/graph_search/operation_graph_search.py @@ -0,0 +1,353 @@ +""" +=========================================== +操作图谱检索模块 - operation_graph_search +=========================================== +功能:针对"操作"的固定图谱检索接口 + 检索路径:舰艇 -> 系统 -> 子系统 -> 设备 -> 操作使用 -> 操作程序 -> 操作项目 +=========================================== +""" + +import json +import os +import logging +import time +from typing import Any, Dict, List, Optional + +from dotenv import load_dotenv +from neo4j import AsyncGraphDatabase, GraphDatabase + +load_dotenv() + +logger = logging.getLogger(__name__) + +NEO4J_CONFIG = { + "uri": os.getenv("NEO4J_URI", "bolt://192.168.0.46:57687"), + "user": os.getenv("NEO4J_USER", "neo4j"), + "password": os.getenv("NEO4J_PASSWORD", "zdht123@"), +} + + +class EmbeddingWrapper: + """嵌入模型包装器""" + def embed_documents(self, texts: List[str]) -> List[List[float]]: + """批量获取嵌入向量(一次性处理所有文本)""" + from modelsAPI.model_api import OpenaiAPI + + if not texts: + return [] + + try: + result = OpenaiAPI.batch_embeddings(texts) + if result and isinstance(result, list): + embedding_list = [item.get('embedding') if isinstance(item, dict) else item for item in result] + if embedding_list and len(embedding_list) == len(texts): + return embedding_list + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回数量不匹配,期望: {len(texts)}, 实际: {len(embedding_list) if embedding_list else 0}") + return [None] * len(texts) + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回格式异常") + return [None] * len(texts) + except Exception as e: + logger.error(f"EmbeddingWrapper: 批量向量化失败: {e}", exc_info=True) + return [None] * len(texts) + + +async def _match_node_with_retrieval( + session, + label: str, + node_name: str, + top_k: int = 10 +) -> Optional[Dict[str, Any]]: + """ + 使用 NodeRetrieval 匹配节点 + """ + from graph_search.node_retrieval import NodeRetrieval + + uri = NEO4J_CONFIG.get("uri") + user = NEO4J_CONFIG.get("user") + password = NEO4J_CONFIG.get("password") + + sync_driver = GraphDatabase.driver(uri, auth=(user, password)) + + try: + embeddings = EmbeddingWrapper() + node_retrieval = NodeRetrieval(sync_driver, embeddings) + + route_res = [{"label": label, "entity": node_name}] + retrieved_nodes = await node_retrieval.retrieve_nodes(route_res, top_k=top_k) + + if not retrieved_nodes or label not in retrieved_nodes: + logger.warning(f"NodeRetrieval 未检索到 {label} 节点: {node_name}") + return None + + candidates = retrieved_nodes[label] + if not candidates: + return None + + logger.info(f"NodeRetrieval 检索到 {len(candidates)} 个 {label} 节点候选") + + for i, node in enumerate(candidates): + node_data = node.get("node", {}) + candidate_name = node_data.get("名称") or node_data.get("name") or node.get("name", "") + logger.info(f" 候选 {i+1}: 名称={candidate_name}, score={node.get('score', 0.0)}") + + best = candidates[0] + node_data = best.get("node", {}) + best_name = node_data.get("名称") or node_data.get("name") or best.get("name", "") + + query = f""" + MATCH (n:{label}) + WHERE n.名称 = $name OR n.name = $name + RETURN elementId(n) AS id, n.名称 AS name, labels(n) AS labels, properties(n) AS props + LIMIT 1 + """ + result = await session.run(query, name=best_name) + record = await result.single() + + if record: + return { + "id": record.get("id"), + "name": record.get("name"), + "labels": record.get("labels"), + "props": record.get("props", {}), + "score": best.get("score", 0.0) + } + + return None + finally: + sync_driver.close() + + +async def operation_graph_search( + ship_number: str, + device_name: str, + operation_item: str, +) -> Dict[str, Any]: + """ + 操作图谱检索接口 + + Args: + ship_number: 舰艇舷号 + device_name: 设备名称 + operation_item: 操作项目名称 + + Returns: + Dict: 检索结果,包含 success, xxxx.graph 等字段 + """ + start_time = time.time() + + if not ship_number or not str(ship_number).strip(): + return {"success": False, "error": "舷号不能为空"} + if not device_name or not str(device_name).strip(): + return {"success": False, "error": "设备名称不能为空"} + if not operation_item or not str(operation_item).strip(): + return {"success": False, "error": "操作项目名称不能为空"} + + uri = NEO4J_CONFIG.get("uri") + user = NEO4J_CONFIG.get("user") + password = NEO4J_CONFIG.get("password") + if not uri or not user or not password: + return {"success": False, "error": "Neo4j 配置不完整,请检查 NEO4J_CONFIG"} + + try: + async with AsyncGraphDatabase.driver(uri, auth=(user, password)) as driver: + async with driver.session() as session: + ship_key = str(ship_number).strip() + device_key = str(device_name).strip() + operation_key = str(operation_item).strip() + + # ========== 1) 匹配舰艇节点 ========== + ship_query = """ + MATCH (s:舰艇) + WHERE s.舷号 = $ship_key OR s.舷号 CONTAINS $ship_key OR $ship_key CONTAINS s.舷号 + RETURN elementId(s) AS id, s.名称 AS name, s.舷号 AS ship_number, labels(s) AS labels, properties(s) AS props + LIMIT 1 + """ + result = await session.run(ship_query, ship_key=ship_key) + ship_record = await result.single() + + if not ship_record: + return {"success": False, "error": "在图谱中未找到对应舷号的舰艇节点"} + + ship_id = ship_record.get("id") + ship_name = ship_record.get("name") or ship_record.get("ship_number") + logger.info(f"匹配到舰艇节点: {ship_name}, id={ship_id}") + + # ========== 2) 匹配设备节点 ========== + device_query = """ + MATCH (ship:舰艇) + WHERE elementId(ship) = $ship_id + MATCH (ship)-[:包含*0..8]->(d:设备) + WHERE d.名称 CONTAINS $device_key OR $device_key CONTAINS d.名称 + OR d.name CONTAINS $device_key OR $device_key CONTAINS d.name + RETURN elementId(d) AS id, d.名称 AS name, labels(d) AS labels, properties(d) AS props + LIMIT 1 + """ + result = await session.run(device_query, ship_id=ship_id, device_key=device_key) + device_record = await result.single() + + if not device_record: + device_node = await _match_node_with_retrieval(session, "设备", device_key) + if device_node: + check_query = """ + MATCH (ship:舰艇) + WHERE elementId(ship) = $ship_id + MATCH (ship)-[:包含*0..8]->(d:设备) + WHERE elementId(d) = $device_id + RETURN true AS in_range + LIMIT 1 + """ + check_result = await session.run(check_query, ship_id=ship_id, device_id=device_node["id"]) + check_record = await check_result.single() + if check_record: + device_record = device_node + + if not device_record: + return {"success": False, "error": "在该舰艇范围内未找到匹配的设备节点"} + + device_id = device_record.get("id") + device_name_found = device_record.get("name") + logger.info(f"匹配到设备节点: {device_name_found}, id={device_id}") + + # ========== 3) 匹配操作项目节点 ========== + op_item_query = """ + MATCH (d:设备) + WHERE elementId(d) = $device_id + MATCH (d)-[:包含*0..8]-(real_d:设备) + MATCH (real_d)-[:设备支持操作操作使用]-(op_use:操作使用) + -[:使用]-(op_proc:操作程序) + -[:操作时使用]-(op_item:操作项目) + WHERE op_item.名称 CONTAINS $op_key OR $op_key CONTAINS op_item.名称 + RETURN elementId(op_item) AS id, op_item.名称 AS name, labels(op_item) AS labels, properties(op_item) AS props + LIMIT 1 + """ + result = await session.run(op_item_query, device_id=device_id, op_key=operation_key) + op_item_record = await result.single() + + if not op_item_record: + logger.info(f"Cypher查询未找到操作项目,尝试 NodeRetrieval...") + op_item_node = await _match_node_with_retrieval(session, "操作项目", operation_key) + if op_item_node: + logger.info(f"NodeRetrieval 找到操作项目节点: id={op_item_node.get('id')}, name={op_item_node.get('name')}") + check_query = """ + MATCH (d:设备) + WHERE elementId(d) = $device_id + MATCH (d)-[:包含*0..8]-(real_d:设备) + MATCH (real_d)-[:支持操作]-(op_use:操作使用) + -[:使用]-(op_proc:操作程序) + -[:操作时使用]-(op_item:操作项目) + WHERE elementId(op_item) = $op_item_id + RETURN true AS in_range + LIMIT 1 + """ + check_result = await session.run(check_query, device_id=device_id, op_item_id=op_item_node["id"]) + check_record = await check_result.single() + if check_record: + logger.info(f"操作项目节点在设备路径下验证通过") + op_item_record = op_item_node + else: + logger.warning(f"操作项目节点不在设备路径下,尝试直接使用...") + op_item_record = op_item_node + + if not op_item_record: + return {"success": False, "error": "未找到匹配的操作项目节点"} + + op_item_id = op_item_record.get("id") + op_item_name = op_item_record.get("name") + logger.info(f"匹配到操作项目节点: {op_item_name}, id={op_item_id}") + + # ========== 4) 查找经过这三个节点的链路 ========== + exclude_keys = { + "last_updated", + "created_at", + "knowledge_source", + "fulltext", + "embedding", + } + + path_query = """ + MATCH (ship:舰艇) + WHERE elementId(ship) = $ship_id + MATCH (device:设备) + WHERE elementId(device) = $device_id + MATCH (op_item:操作项目) + WHERE elementId(op_item) = $op_item_id + + MATCH path1 = (ship)-[:包含*0..8]->(device) + MATCH path2 = (device)-[:包含*0..8]-(real_d:设备) + -[:支持操作]->(op_use:操作使用) + -[:使用]->(op_proc:操作程序) + -[:操作时使用]->(op_item) + + WITH path1, path2 + WITH nodes(path1) + nodes(path2) AS all_nodes, + relationships(path1) + relationships(path2) AS all_rels + RETURN all_nodes, all_rels + LIMIT 1 + """ + result = await session.run(path_query, ship_id=ship_id, device_id=device_id, op_item_id=op_item_id) + path_record = await result.single() + + if not path_record: + return {"success": False, "error": "未找到连接这三个节点的路径"} + + # ========== 5) 格式化输出 ========== + all_nodes = path_record.get("all_nodes", []) + all_rels = path_record.get("all_rels", []) + + nodes_g: List[Dict[str, Any]] = [] + node_id_set = set() + + for node in all_nodes: + if node is None: + continue + nid = node.element_id if hasattr(node, 'element_id') else node.id + if nid in node_id_set: + continue + node_id_set.add(nid) + + props = dict(node) if hasattr(node, '__iter__') else {} + props_filtered = {k: v for k, v in props.items() if k not in exclude_keys} + + name = props.get("名称") or props.get("name") or str(nid) + labels = list(node.labels) if hasattr(node, 'labels') else [] + + nodes_g.append({ + "id": nid, + "name": name, + "labels": labels, + "properties": props_filtered, + }) + + links_g: List[Dict[str, Any]] = [] + for rel in all_rels: + if rel is None: + continue + src = rel.start_node.element_id if hasattr(rel.start_node, 'element_id') else rel.start_node.id + tgt = rel.end_node.element_id if hasattr(rel.end_node, 'element_id') else rel.end_node.id + + if src not in node_id_set or tgt not in node_id_set: + continue + + links_g.append({ + "id": rel.element_id if hasattr(rel, 'element_id') else rel.id, + "label": rel.type if hasattr(rel, 'type') else str(rel.type), + "source": src, + "target": tgt, + }) + + # ========== 6) 生成 results 文本 ========== + op_item_props = op_item_record.get("props", {}) + op_info = {k: v for k, v in op_item_props.items() if k not in exclude_keys and v} + results_text = json.dumps(op_info, ensure_ascii=False) if op_info else "" + + elapsed_ms = (time.time() - start_time) * 1000 + logger.info(f"[时间统计] 操作图谱检索完成,耗时: {elapsed_ms:.2f}ms") + + graph_item = {"nodes": nodes_g, "links": links_g, "results": results_text} + return {"success": True, "xxxx.graph": [graph_item]} + + except Exception as e: + logger.error(f"操作图谱检索失败: {e}", exc_info=True) + return {"success": False, "error": f"Neo4j 查询失败: {str(e)}"} diff --git a/graph_search/query_intent.py b/graph_search/query_intent.py new file mode 100644 index 0000000..8c395c4 --- /dev/null +++ b/graph_search/query_intent.py @@ -0,0 +1,284 @@ +""" +查询意图识别模块 + +功能:识别用户查询是否为统计类查询 +""" + +import re + +# ========== 统计类查询关键词 ========== + +STAT_AGG_KEYWORDS = [ + # 中文常见统计类关键词(已优化) + "多少", "几种", "几类", "几个", "多少个", + "数量", "总数", "总量", "总共", "合计", "总计", "共", "共计", "一共有", + "比例", "占比", "比率", "百分比", "占多少", "占了多少", + "平均", "均值", "平均值", + "最大值", "最小值", "最高", "最低", "最大", "最小", + "分布", "分布情况", "分布状况", + "排行", "排名", "前几名", "前几", "前十", + "频次", "累计", "累加", "累积", + "超限次数", "告警次数", "故障次数", "异常次数", "出现次数", "发生次数", + "是否存在", "有没有", # 隐含 count > 0 + "增长", "下降", "变化趋势", "趋势", "增长率", "减少率" +] + +EN_STAT_AGG_PATTERNS = [ + r"\bhow many\b", + r"\bhow much\b", + r"\bcount\b", + r"\bnumber of\b", + r"\bamount of\b", + r"\btotal\b", + r"\baverage\b", + r"\bmean\b", + r"\bmax(imum)?\b", + r"\bmin(imum)?\b", + r"\bsum\b", + r"\bmedian\b", + r"\bvariance\b", + r"\bstd\b", + r"\bratio\b", + r"\bpercentage\b", + r"\bproportion\b", + r"\bdistribution\b", + r"\branking\b", + r"\btop\s*\d+\b", + r"\boccurrence(s)?\b", + r"\bfrequency\b", + r"\bgrowth rate\b", + r"\bexists?\b", + r"\bwhether\b.*\b(any|exist)\b" +] + + +def is_aggregate_query(query: str) -> bool: + """ + 简单的统计类查询意图识别 + + 规则优先,不调用LLM,尽量覆盖常见"多少 / 比例 / 总数 / 平均 / 分布 / 排名 / 频率"等问法 + + Args: + query: 用户查询字符串 + + Returns: + bool: 如果是统计类查询返回True,否则返回False + """ + if not query: + return False + q = query.strip() + + # 中文关键词命中 + for kw in STAT_AGG_KEYWORDS: + if kw in q: + return True + + # 英文模式命中 + lower_q = q.lower() + for pat in EN_STAT_AGG_PATTERNS: + if re.search(pat, lower_q): + return True + + return False + + +# ========== 时间相关关键词 ========== +TIME_KEYWORDS = [ + "年", "月", "日", "季度", + "今年", "去年", "前年", "明年", + "本月", "上月", + "今天", "昨天", + "同比", "环比", "较上年", "比去年", "相比去年", + "年初", "年末", "季初", "季末", + "近一年", "近半年", "近三个月", "近一周", "近期", + "过去一年", "过去一个月", + "截至", "截止", "期间", "时间段" +] + +# 移除了易误判的:"发生", "时间", "日期"(除非配合具体时间格式) + +ZH_TIME_PATTERNS = [ + r"\b\d{4}年\b", # 2025年 + r"\b\d{2}年\b", # 25年(关键!) + r"\b\d{1,2}月\b", # 3月、12月 + r"\b\d{1,2}日\b", # 5日 + r"\b近[一二三四五六七八九十\d]+[天月年]\b", + r"\b过去[一二三四五六七八九十\d]+[天月年]\b", + r"\b\d{4}[-/年]\d{1,2}([-/月]\d{1,2})?\b", # 2025-12-01, 2025/12, 2025年12月 +] + +EN_TIME_PATTERNS = [ + r"\b\d{4}\b", # 年份(独立出现,如 "in 2025") + r"\byear\b", r"\bmonth\b", r"\bday\b", + r"\bthis year\b", r"\blast year\b", r"\bnext year\b", + r"\bthis month\b", r"\blast month\b", + r"\btoday\b", r"\byesterday\b", + r"\byear over year\b", r"\bmonth over month\b", + r"\bq[1-4]\b", + r"\bjan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec\b", + r"\brecent\b", + r"\bpast\s+\d+\s+(day|week|month|year)s?\b", + r"\blast\s+\d+\s+(day|week|month|year)s?\b", + r"\bas of\b", + r"\b\d{4}[-/]\d{1,2}([-/]\d{1,2})?\b", # ISO or slash date +] + + +def has_time_in_query(query: str) -> bool: + """ + 判断查询中是否包含时间相关信息 + + Args: + query: 用户查询字符串 + + Returns: + bool: 如果包含时间信息返回True,否则返回False + """ + if not query: + return False + + q = query.strip() + lower_q = q.lower() + + # 中文时间关键词 + for kw in TIME_KEYWORDS: + if kw in q: + return True + + # 中文时间模式(如 "2025年"、"25年"、"3月"、"2025-12-01" 等) + for pat in ZH_TIME_PATTERNS: + if re.search(pat, q): + return True + + # 英文时间模式 + for pat in EN_TIME_PATTERNS: + if re.search(pat, lower_q): + return True + + return False + + +def get_current_date_info() -> dict: + """ + 获取当前系统时间信息(用于注入到Prompt中) + + Returns: + dict: 包含当前日期信息的字典 + """ + from datetime import datetime + now = datetime.now() + + # 计算下个月的第一天 + if now.month == 12: + # 如果是12月,下个月是下一年的1月 + next_month_start = datetime(now.year + 1, 1, 1).strftime("%Y-%m-%d") + else: + # 否则是当前年的下一个月 + next_month_start = datetime(now.year, now.month + 1, 1).strftime("%Y-%m-%d") + + return { + "current_year": str(now.year), + "current_month": str(now.month), + "current_day": str(now.day), + "current_date": now.strftime("%Y-%m-%d"), + "current_datetime": now.strftime("%Y-%m-%d %H:%M:%S"), + "last_year": str(now.year - 1), + "next_year": str(now.year + 1), + "next_month_start": next_month_start, + } + + +# ========== 时间段统计类型识别 ========== + +# 双时间段对比关键词 +DUAL_TIME_COMPARISON_KEYWORDS = [ + "同比", "环比", "较上年", "比去年", "相比去年", "相比", "对比", + "比", "较", "vs", "VS", "对比", "比较", + "多多少", "少多少", "增加", "减少", "增长", "下降", + "比...多", "比...少", "比...增加", "比...减少", +] + +DUAL_TIME_COMPARISON_PATTERNS = [ + r"比.*[多少]", # 比去年多、比去年少 + r"较.*[多少]", # 较去年多 + r"相比.*[多少]", # 相比去年多 + r"vs\s+", # vs + r"对比\s+", # 对比 + r"year over year", # 同比 + r"month over month", # 环比 + r"compared to", # 相比 + r"vs\.", # vs. +] + +# 多时间段关键词(3个及以上时间段) +MULTI_TIME_KEYWORDS = [ + "各年", "每年", "历年", "逐年", + "各月", "每月", "各季度", "每季度", + "分别", "分别统计", +] + +MULTI_TIME_PATTERNS = [ + r"各[年月季度周天]", # 各年、各月、各季度 + r"每[年月季度周天]", # 每年、每月、每季度 + r"历年", # 历年 + r"逐年", # 逐年 + r"分别", # 分别 + r"each\s+(year|month|quarter)", # each year, each month + r"per\s+(year|month|quarter)", # per year, per month +] + + +def classify_time_aggregate_type(query: str) -> str: + """ + 分类时间统计查询类型 + + 类型: + - "single": 单时间段统计(如"2024年发生的故障有多少?") + - "dual": 双时间段统计(如"今年比去年多吗?"、"25年异常同比减少多少?") + - "multi": 多时间段统计(如"2023、2024、2025年的故障数"、"各年的故障数") + + Args: + query: 用户查询字符串 + + Returns: + str: 时间段统计类型("single"、"dual"、"multi") + """ + if not query: + return "single" + + q = query.strip() + lower_q = q.lower() + + # 1. 检查是否为多时间段统计 + for kw in MULTI_TIME_KEYWORDS: + if kw in q: + return "multi" + + for pat in MULTI_TIME_PATTERNS: + if re.search(pat, q) or re.search(pat, lower_q): + return "multi" + + # 检查是否包含多个明确的时间段(如"2023、2024、2025年") + # 匹配多个年份或时间段 + year_matches = len(re.findall(r"\d{4}年|\d{2}年", q)) + if year_matches >= 2: + # 检查是否有对比关键词,如果没有,可能是多时间段 + has_comparison = False + for kw in DUAL_TIME_COMPARISON_KEYWORDS: + if kw in q: + has_comparison = True + break + if not has_comparison and year_matches >= 2: + return "multi" + + # 2. 检查是否为双时间段统计 + for kw in DUAL_TIME_COMPARISON_KEYWORDS: + if kw in q: + return "dual" + + for pat in DUAL_TIME_COMPARISON_PATTERNS: + if re.search(pat, q) or re.search(pat, lower_q): + return "dual" + + # 3. 默认返回单时间段统计 + return "single" diff --git a/graph_search/quick_graph_search.py b/graph_search/quick_graph_search.py new file mode 100644 index 0000000..511f474 --- /dev/null +++ b/graph_search/quick_graph_search.py @@ -0,0 +1,439 @@ +""" +=========================================== +临时图谱检索方案 - QuickGraphSearch +=========================================== +功能:直接用用户问题embedding混合检索找最匹配节点 + 获取该节点的一跳邻居,用rerank选择最合适的 + 只输出入口节点和选中节点 +=========================================== +""" + +import json +import os +import logging +import time +import re +from typing import Any, Dict, List, Optional + +from dotenv import load_dotenv +from neo4j import AsyncGraphDatabase, GraphDatabase + +load_dotenv() + +logger = logging.getLogger(__name__) + +NEO4J_CONFIG = { + "uri": os.getenv("NEO4J_URI", "bolt://192.168.0.46:57687"), + "user": os.getenv("NEO4J_USER", "neo4j"), + "password": os.getenv("NEO4J_PASSWORD", "zdht123@"), +} + + +class EmbeddingWrapper: + """嵌入模型包装器""" + def embed_documents(self, texts: List[str]) -> List[List[float]]: + """批量获取嵌入向量(一次性处理所有文本)""" + from modelsAPI.model_api import OpenaiAPI + + if not texts: + return [] + + try: + result = OpenaiAPI.batch_embeddings(texts) + if result and isinstance(result, list): + embedding_list = [item.get('embedding') if isinstance(item, dict) else item for item in result] + if embedding_list and len(embedding_list) == len(texts): + return embedding_list + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回数量不匹配,期望: {len(texts)}, 实际: {len(embedding_list) if embedding_list else 0}") + return [None] * len(texts) + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回格式异常") + return [None] * len(texts) + except Exception as e: + logger.error(f"EmbeddingWrapper: 批量向量化失败: {e}", exc_info=True) + return [None] * len(texts) + + +async def _search_all_nodes_with_hybrid( + session, + query: str, + top_k: int = 20 +) -> List[Dict[str, Any]]: + """ + 直接对所有节点进行混合检索(embedding+全文),找最匹配的节点 + 使用 NodeRetrieval 替代 HybridRetriever,避免兼容性问题 + + Args: + session: Neo4j 异步会话 + query: 用户查询 + top_k: 返回节点数量 + + Returns: + List[Dict]: 匹配到的节点列表 + """ + from graph_search.node_retrieval import NodeRetrieval + + uri = NEO4J_CONFIG.get("uri") + user = NEO4J_CONFIG.get("user") + password = NEO4J_CONFIG.get("password") + + sync_driver = GraphDatabase.driver(uri, auth=(user, password)) + + try: + # 获取所有节点标签 + all_labels = ["设备","系统","子系统","故障现象"] + logger.info(f"[混合检索] 所有节点标签: {all_labels}") + + # 使用 NodeRetrieval 进行检索 + embeddings = EmbeddingWrapper() + node_retrieval = NodeRetrieval(sync_driver, embeddings) + + # 为每个标签构造路由结果 + route_res = [{"label": label, "entity": query} for label in all_labels] + + # 执行检索 + retrieved_nodes = await node_retrieval.retrieve_nodes(route_res, top_k=top_k) + + # 汇总结果 + all_results = [] + for label, nodes in retrieved_nodes.items(): + for node in nodes: + all_results.append({ + "name": node.get("name"), + "score": node.get("score", 0.0), + "node": node.get("node", {}), + "label": label + }) + + # 按score排序,取top_k + all_results.sort(key=lambda x: x.get("score", 0), reverse=True) + all_results = all_results[:top_k] + + logger.info(f"[混合检索] 找到 {len(all_results)} 个候选节点") + + # 获取完整节点信息 + final_nodes = [] + for item in all_results: + node_data = item["node"] + label = item["label"] + name = item["name"] + + get_node_query = f""" + MATCH (n:{label}) + WHERE n.名称 = $name OR n.name = $name + RETURN elementId(n) AS id, n.名称 AS name, labels(n) AS labels, properties(n) AS props + LIMIT 1 + """ + result = await session.run(get_node_query, name=name) + record = await result.single() + + if record: + final_nodes.append({ + "id": record.get("id"), + "name": record.get("name"), + "labels": record.get("labels"), + "props": record.get("props", {}), + "score": item.get("score", 0.0) + }) + + return final_nodes + + finally: + sync_driver.close() + + +async def _rerank_nodes( + query, + nodes +): + """ + 使用 rerank 对节点进行重排序(只使用节点名称) + + Args: + query: 用户查询 + nodes: 节点列表,每个节点需要有 name 字段 + + Returns: + List[Dict]: 重排序后的节点列表 + """ + if not nodes: + return [] + + from modelsAPI.model_api import OpenaiAPI + + # 格式化节点文本(只使用节点名称) + documents = [] + for node in nodes: + name = node.get("name", "") + doc_text = name + documents.append(doc_text) + + # Rerank(只取top 10,减少token消耗) + try: + rerank_results = OpenaiAPI.rerank_query(query, documents, top_n=min(len(documents), 10)) + + # 按score排序 + sorted_rerank = sorted(rerank_results, key=lambda x: x.get('scores', 0), reverse=True) + + # 重新组织节点 + reranked_nodes = [] + for rr in sorted_rerank: + idx = rr.get('index', 0) + if 0 <= idx < len(nodes): + node = nodes[idx].copy() + node['rerank_score'] = rr.get('scores', 0) + reranked_nodes.append(node) + + return reranked_nodes + + except Exception as e: + logger.error(f"Rerank失败: {e}", exc_info=True) + # 失败时返回原顺序 + for node in nodes: + node['rerank_score'] = 0 + return nodes + + +async def _get_one_hop_neighbors( + session, + node_id: str +) -> List[Dict[str, Any]]: + """ + 获取指定节点的一跳邻居节点 + + Args: + session: Neo4j 异步会话 + node_id: 节点ID + + Returns: + List[Dict]: 一跳邻居节点列表 + """ + exclude_keys = { + "last_updated", + "created_at", + "knowledge_source", + "fulltext", + "embedding", + } + + query = """ + MATCH (n) + WHERE elementId(n) = $node_id + MATCH (n)-[r]-(m) + RETURN + elementId(m) AS id, + m.名称 AS name, + labels(m) AS labels, + properties(m) AS props, + elementId(r) AS rel_id, + type(r) AS rel_type, + properties(r) AS rel_props, + elementId(n) AS source_id, + n.名称 AS source_name, + labels(n) AS source_labels + LIMIT 100 + """ + + result = await session.run(query, node_id=node_id) + records = await result.data() + + neighbors = [] + for record in records: + props = record.get("props", {}) + props_filtered = {k: v for k, v in props.items() if k not in exclude_keys} + + rel_props = record.get("rel_props", {}) + rel_props_filtered = {k: v for k, v in rel_props.items() if k not in exclude_keys} + + neighbors.append({ + "id": record.get("id"), + "name": record.get("name"), + "labels": record.get("labels", []), + "properties": props_filtered, + "relationship": { + "id": record.get("rel_id"), + "type": record.get("rel_type"), + "properties": rel_props_filtered, + "source_id": record.get("source_id"), + "source_name": record.get("source_name"), + "source_labels": record.get("source_labels", []) + } + }) + + return neighbors + + +def _build_graph_result( + entry_node: Optional[Dict[str, Any]], + best_node: Optional[Dict[str, Any]], + query: str +) -> Dict[str, Any]: + """ + 构建与operate方法一致的输出格式(只包含入口节点和选中节点) + + Args: + entry_node: 入口节点 + best_node: 选择的最佳节点 + query: 用户查询 + + Returns: + Dict: 格式化后的结果 + """ + exclude_keys = { + "last_updated", + "created_at", + "knowledge_source", + "fulltext", + "embedding", + } + + nodes_g: List[Dict[str, Any]] = [] + links_g: List[Dict[str, Any]] = [] + node_id_set = set() + + # 添加入口节点 + if entry_node: + nid = entry_node.get("id") + if nid and nid not in node_id_set: + node_id_set.add(nid) + + props = entry_node.get("props", {}) + props_filtered = {k: v for k, v in props.items() if k not in exclude_keys} + + name = props.get("名称") or props.get("name") or str(nid) + labels = entry_node.get("labels", []) + + nodes_g.append({ + "id": nid, + "name": name, + "labels": labels, + "properties": props_filtered, + }) + + # 添加最佳节点和关系 + if best_node: + # 添加最佳节点 + best_nid = best_node.get("id") + if best_nid and best_nid not in node_id_set: + node_id_set.add(best_nid) + + props = best_node.get("properties", {}) + name = best_node.get("name") or str(best_nid) + labels = best_node.get("labels", []) + + nodes_g.append({ + "id": best_nid, + "name": name, + "labels": labels, + "properties": props, + }) + + # 添加关系 + rel = best_node.get("relationship", {}) + if rel: + rel_id = rel.get("id") + src_id = rel.get("source_id") + tgt_id = best_nid + + if src_id in node_id_set and tgt_id in node_id_set: + links_g.append({ + "id": rel_id, + "label": rel.get("type", ""), + "source": src_id, + "target": tgt_id, + "properties": rel.get("properties", {}), + }) + + # 生成 results 文本(优先用best_node,其次用entry_node) + results_text = "" + if best_node: + best_props = best_node.get("properties", {}) + best_info = {k: v for k, v in best_props.items() if k not in exclude_keys and v} + results_text = json.dumps(best_info, ensure_ascii=False) if best_info else "" + elif entry_node: + entry_props = entry_node.get("props", {}) + entry_info = {k: v for k, v in entry_props.items() if k not in exclude_keys and v} + results_text = json.dumps(entry_info, ensure_ascii=False) if entry_info else "" + + graph_item = {"nodes": nodes_g, "links": links_g, "results": results_text} + return {"success": True, "xxxx.graph": [graph_item]} + + +async def quick_graph_search( + query: str, + route_res: Optional[List[Dict[str, str]]] = None, + top_k: int = 10, +) -> Dict[str, Any]: + """ + 临时图谱检索接口 - 简化版 + + Args: + query: 用户查询 + route_res: 路由结果列表(本方案不使用) + top_k: 检索返回的节点数量上限 + + Returns: + Dict: 检索结果,包含 success, xxxx.graph 等字段 + """ + start_time = time.time() + + if not query or not str(query).strip(): + return {"success": False, "error": "查询不能为空"} + + uri = NEO4J_CONFIG.get("uri") + user = NEO4J_CONFIG.get("user") + password = NEO4J_CONFIG.get("password") + if not uri or not user or not password: + return {"success": False, "error": "Neo4j 配置不完整,请检查 NEO4J_CONFIG"} + + try: + async with AsyncGraphDatabase.driver(uri, auth=(user, password)) as driver: + async with driver.session() as session: + logger.info(f"[QuickGraphSearch] 开始检索,查询: '{query}'") + + # 1. 混合检索找入口节点候选 + candidate_nodes = await _search_all_nodes_with_hybrid(session, query, top_k=20) + + if not candidate_nodes: + return {"success": False, "error": "未找到任何匹配节点"} + + logger.info(f"[QuickGraphSearch] 混合检索找到 {len(candidate_nodes)} 个候选节点") + + # 2. Rerank 选择最佳入口节点 + reranked_nodes = await _rerank_nodes(query, candidate_nodes) + + if not reranked_nodes: + return {"success": False, "error": "Rerank失败"} + + entry_node = reranked_nodes[0] + entry_id = entry_node.get("id") + logger.info(f"[QuickGraphSearch] 选择入口节点: {entry_node.get('name', '未知')}, rerank_score={entry_node.get('rerank_score', 0)}") + + # 3. 获取入口节点的一跳邻居 + neighbors = await _get_one_hop_neighbors(session, entry_id) + + logger.info(f"[QuickGraphSearch] 获取到 {len(neighbors)} 个一跳邻居") + + # 4. 对一跳邻居进行 rerank 选择最佳节点 + best_node = None + if neighbors: + # 对邻居节点进行 rerank + reranked_neighbors = await _rerank_nodes(query, neighbors) + + if reranked_neighbors: + best_node = reranked_neighbors[0] + logger.info(f"[QuickGraphSearch] 选择最佳一跳节点: {best_node.get('name', '未知')}, rerank_score={best_node.get('rerank_score', 0)}") + + # 5. 构建结果(只包含入口节点和选中节点) + result = _build_graph_result(entry_node, best_node, query) + + elapsed_ms = (time.time() - start_time) * 1000 + logger.info(f"[QuickGraphSearch] 完成,耗时: {elapsed_ms:.2f}ms") + + return result + + except Exception as e: + logger.error(f"QuickGraphSearch 失败: {e}", exc_info=True) + return {"success": False, "error": f"检索失败: {str(e)}"} + diff --git a/graph_search/quick_graph_search411.py b/graph_search/quick_graph_search411.py new file mode 100644 index 0000000..ce757ba --- /dev/null +++ b/graph_search/quick_graph_search411.py @@ -0,0 +1,567 @@ +""" +=========================================== +临时图谱检索方案 - QuickGraphSearch +=========================================== +功能:直接用用户问题embedding混合检索找最匹配节点 + 获取该节点的一跳邻居,用大模型选择最合适的 + 只输出入口节点和选中节点 +=========================================== +""" + +import json +import os +import logging +import time +import re +from typing import Any, Dict, List, Optional + +from dotenv import load_dotenv +from neo4j import AsyncGraphDatabase, GraphDatabase + +load_dotenv() + +logger = logging.getLogger(__name__) + +NEO4J_CONFIG = { + "uri": os.getenv("NEO4J_URI", "bolt://192.168.0.46:57687"), + "user": os.getenv("NEO4J_USER", "neo4j"), + "password": os.getenv("NEO4J_PASSWORD", "zdht123@"), +} + + +class EmbeddingWrapper: + """嵌入模型包装器""" + def embed_documents(self, texts: List[str]) -> List[List[float]]: + """批量获取嵌入向量(一次性处理所有文本)""" + from modelsAPI.model_api import OpenaiAPI + + if not texts: + return [] + + try: + result = OpenaiAPI.batch_embeddings(texts) + if result and isinstance(result, list): + embedding_list = [item.get('embedding') if isinstance(item, dict) else item for item in result] + if embedding_list and len(embedding_list) == len(texts): + return embedding_list + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回数量不匹配,期望: {len(texts)}, 实际: {len(embedding_list) if embedding_list else 0}") + return [None] * len(texts) + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回格式异常") + return [None] * len(texts) + except Exception as e: + logger.error(f"EmbeddingWrapper: 批量向量化失败: {e}", exc_info=True) + return [None] * len(texts) + + +async def _search_all_nodes_with_hybrid( + session, + query: str, + top_k: int = 20 +) -> List[Dict[str, Any]]: + """ + 直接对所有节点进行混合检索(embedding+全文),找最匹配的节点 + + Args: + session: Neo4j 异步会话 + query: 用户查询 + top_k: 返回节点数量 + + Returns: + List[Dict]: 匹配到的节点列表 + """ + from neo4j_graphrag.retrievers import HybridRetriever + import jieba + + uri = NEO4J_CONFIG.get("uri") + user = NEO4J_CONFIG.get("user") + password = NEO4J_CONFIG.get("password") + + sync_driver = GraphDatabase.driver(uri, auth=(user, password)) + + try: + # 中文分词 + try: + words = jieba.lcut(query) + filtered_words = [ + word.strip() + for word in words + if word.strip() and re.fullmatch(r"[a-zA-Z0-9\u4e00-\u9fa5]+", word.strip()) + ] + if not filtered_words: + filtered_words = [query] + query_text = " OR ".join(filtered_words) + except Exception as e: + logger.warning(f"分词失败: {e},使用原始查询") + query_text = query + + # 获取所有节点标签 + all_labels = [] + result = await session.run("CALL db.labels() YIELD label RETURN label") + async for record in result: + all_labels.append(record["label"]) + + logger.info(f"[混合检索] 所有节点标签: {all_labels}") + + # 对每个标签进行检索 + embeddings = EmbeddingWrapper() + query_vector = None + try: + vectors = embeddings.embed_documents([query]) + if vectors and vectors[0]: + query_vector = vectors[0] + except Exception as e: + logger.warning(f"查询向量化失败: {e}") + + all_results = [] + for label in all_labels: + try: + vector_index = label.lower() + "_vector" + fulltext_index = label.lower() + "_fulltext" + + retriever = HybridRetriever( + sync_driver, + vector_index_name=vector_index, + fulltext_index_name=fulltext_index + ) + + import asyncio + result = await asyncio.to_thread( + retriever.get_search_results, + query_text, + query_vector, + top_k // len(all_labels) + 1, + effective_search_ratio=2, + ) + + if hasattr(result, 'records'): + for record in result.records: + node_data = dict(record["node"]) + score = record.get("score", 0.0) + name = node_data.get("名称") or node_data.get("name") or str(record["node"]) + + all_results.append({ + "name": name, + "score": score, + "node": node_data, + "label": label + }) + except Exception as e: + logger.warning(f"标签 {label} 检索失败: {e}") + continue + + # 按score排序,取top_k + all_results.sort(key=lambda x: x.get("score", 0), reverse=True) + all_results = all_results[:top_k] + + logger.info(f"[混合检索] 找到 {len(all_results)} 个候选节点") + + # 获取完整节点信息 + final_nodes = [] + for item in all_results: + node_data = item["node"] + label = item["label"] + name = item["name"] + + get_node_query = f""" + MATCH (n:{label}) + WHERE n.名称 = $name OR n.name = $name + RETURN elementId(n) AS id, n.名称 AS name, labels(n) AS labels, properties(n) AS props + LIMIT 1 + """ + result = await session.run(get_node_query, name=name) + record = await result.single() + + if record: + final_nodes.append({ + "id": record.get("id"), + "name": record.get("name"), + "labels": record.get("labels"), + "props": record.get("props", {}), + "score": item.get("score", 0.0) + }) + + return final_nodes + + finally: + sync_driver.close() + + +async def _rerank_nodes( + query: str, + nodes: List[Dict[str, Any]] +) -> List[Dict[str, Any]]: + """ + 使用 rerank 对节点进行重排序 + + Args: + query: 用户查询 + nodes: 节点列表 + + Returns: + List[Dict]: 重排序后的节点列表 + """ + if not nodes: + return [] + + from modelsAPI.model_api import OpenaiAPI + + # 格式化节点文本 + documents = [] + for node in nodes: + props = node.get("props", {}) + name = node.get("name", "") + labels = ", ".join(node.get("labels", [])) + props_str = "; ".join([f"{k}={v}" for k, v in props.items() if v and k not in ["embedding", "fulltext", "last_updated", "created_at"]]) + doc_text = f"名称: {name}; 类型: {labels}; 属性: {props_str}" + documents.append(doc_text) + + # Rerank + try: + rerank_results = OpenaiAPI.rerank_query(query, documents, top_n=len(documents)) + + # 按score排序 + sorted_rerank = sorted(rerank_results, key=lambda x: x.get('scores', 0), reverse=True) + + # 重新组织节点 + reranked_nodes = [] + for rr in sorted_rerank: + idx = rr.get('index', 0) + if 0 <= idx < len(nodes): + node = nodes[idx].copy() + node['rerank_score'] = rr.get('scores', 0) + reranked_nodes.append(node) + + return reranked_nodes + + except Exception as e: + logger.error(f"Rerank失败: {e}", exc_info=True) + # 失败时返回原顺序 + for node in nodes: + node['rerank_score'] = 0 + return nodes + + +async def _get_one_hop_neighbors( + session, + node_id: str +) -> List[Dict[str, Any]]: + """ + 获取指定节点的一跳邻居节点 + + Args: + session: Neo4j 异步会话 + node_id: 节点ID + + Returns: + List[Dict]: 一跳邻居节点列表 + """ + exclude_keys = { + "last_updated", + "created_at", + "knowledge_source", + "fulltext", + "embedding", + } + + query = """ + MATCH (n) + WHERE elementId(n) = $node_id + MATCH (n)-[r]-(m) + RETURN + elementId(m) AS id, + m.名称 AS name, + labels(m) AS labels, + properties(m) AS props, + elementId(r) AS rel_id, + type(r) AS rel_type, + properties(r) AS rel_props, + elementId(n) AS source_id, + n.名称 AS source_name, + labels(n) AS source_labels + LIMIT 100 + """ + + result = await session.run(query, node_id=node_id) + records = await result.data() + + neighbors = [] + for record in records: + props = record.get("props", {}) + props_filtered = {k: v for k, v in props.items() if k not in exclude_keys} + + rel_props = record.get("rel_props", {}) + rel_props_filtered = {k: v for k, v in rel_props.items() if k not in exclude_keys} + + neighbors.append({ + "id": record.get("id"), + "name": record.get("name"), + "labels": record.get("labels", []), + "properties": props_filtered, + "relationship": { + "id": record.get("rel_id"), + "type": record.get("rel_type"), + "properties": rel_props_filtered, + "source_id": record.get("source_id"), + "source_name": record.get("source_name"), + "source_labels": record.get("source_labels", []) + } + }) + + return neighbors + + +def _format_node_for_llm(node: Dict[str, Any]) -> str: + """ + 将节点信息格式化为供LLM理解的字符串(仅包含标签和中文名称) + + Args: + node: 节点信息字典 + + Returns: + str: 格式化后的字符串 + """ + name = node.get("name", "未知") + labels = ", ".join(node.get("labels", [])) + rel = node.get("relationship", {}) + + parts = [f"节点名称: {name}"] + if labels: + parts.append(f"节点类型: {labels}") + if rel: + parts.append(f"通过关系: {rel.get('type', '未知')} 连接自: {rel.get('source_name', '未知')}") + + return "\n".join(parts) + + +async def _select_best_node_with_llm( + query: str, + neighbors: List[Dict[str, Any]] +) -> Optional[Dict[str, Any]]: + """ + 使用大模型从一跳邻居中选择最合适的节点 + + Args: + query: 用户查询 + neighbors: 一跳邻居节点列表 + + Returns: + Optional[Dict]: 最合适的节点信息,None表示没有合适的 + """ + if not neighbors: + return None + + from modelsAPI.model_api import OpenaiAPI + + # 格式化邻居节点信息供LLM参考 + neighbors_text = [] + for i, node in enumerate(neighbors, 1): + neighbors_text.append(f"【候选节点 {i}】\n{_format_node_for_llm(node)}\n") + + prompt = f"""你是一个智能图谱检索助手,需要根据用户的查询,从提供的候选节点中选择最相关的一个节点。 + +用户查询: {query} + +候选节点列表: +{''.join(neighbors_text)} + +请仔细阅读用户查询和所有候选节点信息,选择与用户查询最相关的一个节点。 + +输出要求: +1. 请仅输出你选择的候选节点编号(1, 2, 3...),不要输出任何其他内容 +2. 如果没有任何相关的节点,请输出"0" +3. 不要解释原因,只输出数字编号 + +你的选择:""" + + try: + model = os.getenv("OPENAI_MODEL") + response = await OpenaiAPI.open_api_chat_async(prompt, model, temperature=0) + + # 提取数字编号 + match = re.search(r'\d+', response.strip()) + if match: + selected_index = int(match.group()) - 1 + if 0 <= selected_index < len(neighbors): + logger.info(f"LLM选择了候选节点 {selected_index + 1}: {neighbors[selected_index].get('name', '未知')}") + return neighbors[selected_index] + + logger.warning(f"LLM未选择有效节点,原始响应: {response}") + return None + except Exception as e: + logger.error(f"使用LLM选择节点失败: {e}", exc_info=True) + return None + + +def _build_graph_result( + entry_node: Optional[Dict[str, Any]], + best_node: Optional[Dict[str, Any]], + query: str +) -> Dict[str, Any]: + """ + 构建与operate方法一致的输出格式(只包含入口节点和选中节点) + + Args: + entry_node: 入口节点 + best_node: 选择的最佳节点 + query: 用户查询 + + Returns: + Dict: 格式化后的结果 + """ + exclude_keys = { + "last_updated", + "created_at", + "knowledge_source", + "fulltext", + "embedding", + } + + nodes_g: List[Dict[str, Any]] = [] + links_g: List[Dict[str, Any]] = [] + node_id_set = set() + + # 添加入口节点 + if entry_node: + nid = entry_node.get("id") + if nid and nid not in node_id_set: + node_id_set.add(nid) + + props = entry_node.get("props", {}) + props_filtered = {k: v for k, v in props.items() if k not in exclude_keys} + + name = props.get("名称") or props.get("name") or str(nid) + labels = entry_node.get("labels", []) + + nodes_g.append({ + "id": nid, + "name": name, + "labels": labels, + "properties": props_filtered, + }) + + # 添加最佳节点和关系 + if best_node: + # 添加最佳节点 + best_nid = best_node.get("id") + if best_nid and best_nid not in node_id_set: + node_id_set.add(best_nid) + + props = best_node.get("properties", {}) + name = best_node.get("name") or str(best_nid) + labels = best_node.get("labels", []) + + nodes_g.append({ + "id": best_nid, + "name": name, + "labels": labels, + "properties": props, + }) + + # 添加关系 + rel = best_node.get("relationship", {}) + if rel: + rel_id = rel.get("id") + src_id = rel.get("source_id") + tgt_id = best_nid + + if src_id in node_id_set and tgt_id in node_id_set: + links_g.append({ + "id": rel_id, + "label": rel.get("type", ""), + "source": src_id, + "target": tgt_id, + "properties": rel.get("properties", {}), + }) + + # 生成 results 文本(优先用best_node,其次用entry_node) + results_text = "" + if best_node: + best_props = best_node.get("properties", {}) + best_info = {k: v for k, v in best_props.items() if k not in exclude_keys and v} + results_text = json.dumps(best_info, ensure_ascii=False) if best_info else "" + elif entry_node: + entry_props = entry_node.get("props", {}) + entry_info = {k: v for k, v in entry_props.items() if k not in exclude_keys and v} + results_text = json.dumps(entry_info, ensure_ascii=False) if entry_info else "" + + graph_item = {"nodes": nodes_g, "links": links_g, "results": results_text} + return {"success": True, "xxxx.graph": [graph_item]} + + +async def quick_graph_search( + query: str, + route_res: Optional[List[Dict[str, str]]] = None, + top_k: int = 10, +) -> Dict[str, Any]: + """ + 临时图谱检索接口 + + Args: + query: 用户查询 + route_res: 路由结果列表(本方案不使用) + top_k: 检索返回的节点数量上限 + + Returns: + Dict: 检索结果,包含 success, xxxx.graph 等字段 + """ + start_time = time.time() + + if not query or not str(query).strip(): + return {"success": False, "error": "查询不能为空"} + + uri = NEO4J_CONFIG.get("uri") + user = NEO4J_CONFIG.get("user") + password = NEO4J_CONFIG.get("password") + if not uri or not user or not password: + return {"success": False, "error": "Neo4j 配置不完整,请检查 NEO4J_CONFIG"} + + try: + async with AsyncGraphDatabase.driver(uri, auth=(user, password)) as driver: + async with driver.session() as session: + logger.info(f"[QuickGraphSearch] 开始直接混合检索,查询: '{query}'") + + # 1. 直接用用户问题混合检索所有节点 + candidate_nodes = await _search_all_nodes_with_hybrid(session, query, top_k=20) + + if not candidate_nodes: + return {"success": False, "error": "未找到任何匹配节点"} + + logger.info(f"[QuickGraphSearch] 混合检索找到 {len(candidate_nodes)} 个候选节点") + + # 2. Rerank 重排序 + reranked_nodes = await _rerank_nodes(query, candidate_nodes) + + if not reranked_nodes: + return {"success": False, "error": "Rerank失败"} + + # 3. 取最匹配的节点作为入口 + entry_node = reranked_nodes[0] + entry_id = entry_node.get("id") + logger.info(f"[QuickGraphSearch] 选择入口节点: {entry_node.get('name', '未知')}, score={entry_node.get('rerank_score', 0)}") + + # 4. 获取一跳邻居 + neighbors = await _get_one_hop_neighbors(session, entry_id) + + logger.info(f"[QuickGraphSearch] 获取到 {len(neighbors)} 个一跳邻居") + + if not neighbors: + # 如果没有邻居节点,只返回入口节点 + return _build_graph_result(entry_node, None, query) + + # 5. 用LLM选择最合适的节点 + best_node = await _select_best_node_with_llm(query, neighbors) + + # 6. 构建结果(只包含入口节点和选中节点) + result = _build_graph_result(entry_node, best_node, query) + + elapsed_ms = (time.time() - start_time) * 1000 + logger.info(f"[QuickGraphSearch] 完成,耗时: {elapsed_ms:.2f}ms") + + return result + + except Exception as e: + logger.error(f"QuickGraphSearch 失败: {e}", exc_info=True) + return {"success": False, "error": f"检索失败: {str(e)}"} + diff --git a/graph_search/quick_graph_search421.py b/graph_search/quick_graph_search421.py new file mode 100644 index 0000000..ce40dad --- /dev/null +++ b/graph_search/quick_graph_search421.py @@ -0,0 +1,521 @@ +""" +=========================================== +临时图谱检索方案 - QuickGraphSearch +=========================================== +功能:直接用用户问题embedding混合检索找最匹配节点 + 获取该节点的一跳邻居,用大模型选择最合适的 + 只输出入口节点和选中节点 +=========================================== +""" + +import json +import os +import logging +import time +import re +from typing import Any, Dict, List, Optional + +from dotenv import load_dotenv +from neo4j import AsyncGraphDatabase, GraphDatabase + +load_dotenv() + +logger = logging.getLogger(__name__) + +NEO4J_CONFIG = { + "uri": os.getenv("NEO4J_URI", "bolt://192.168.0.46:57687"), + "user": os.getenv("NEO4J_USER", "neo4j"), + "password": os.getenv("NEO4J_PASSWORD", "zdht123@"), +} + + +class EmbeddingWrapper: + """嵌入模型包装器""" + def embed_documents(self, texts: List[str]) -> List[List[float]]: + """批量获取嵌入向量(一次性处理所有文本)""" + from modelsAPI.model_api import OpenaiAPI + + if not texts: + return [] + + try: + result = OpenaiAPI.batch_embeddings(texts) + if result and isinstance(result, list): + embedding_list = [item.get('embedding') if isinstance(item, dict) else item for item in result] + if embedding_list and len(embedding_list) == len(texts): + return embedding_list + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回数量不匹配,期望: {len(texts)}, 实际: {len(embedding_list) if embedding_list else 0}") + return [None] * len(texts) + else: + logger.error(f"EmbeddingWrapper: 批量向量化返回格式异常") + return [None] * len(texts) + except Exception as e: + logger.error(f"EmbeddingWrapper: 批量向量化失败: {e}", exc_info=True) + return [None] * len(texts) + + +async def _search_all_nodes_with_hybrid( + session, + query: str, + top_k: int = 20 +) -> List[Dict[str, Any]]: + """ + 直接对所有节点进行混合检索(embedding+全文),找最匹配的节点 + 使用 NodeRetrieval 替代 HybridRetriever,避免兼容性问题 + + Args: + session: Neo4j 异步会话 + query: 用户查询 + top_k: 返回节点数量 + + Returns: + List[Dict]: 匹配到的节点列表 + """ + from graph_search.node_retrieval import NodeRetrieval + + uri = NEO4J_CONFIG.get("uri") + user = NEO4J_CONFIG.get("user") + password = NEO4J_CONFIG.get("password") + + sync_driver = GraphDatabase.driver(uri, auth=(user, password)) + + try: + # 获取所有节点标签 + all_labels = ["设备","系统","子系统","故障现象"] + logger.info(f"[混合检索] 所有节点标签: {all_labels}") + + # 使用 NodeRetrieval 进行检索 + embeddings = EmbeddingWrapper() + node_retrieval = NodeRetrieval(sync_driver, embeddings) + + # 为每个标签构造路由结果 + route_res = [{"label": label, "entity": query} for label in all_labels] + + # 执行检索 + retrieved_nodes = await node_retrieval.retrieve_nodes(route_res, top_k=top_k) + + # 汇总结果 + all_results = [] + for label, nodes in retrieved_nodes.items(): + for node in nodes: + all_results.append({ + "name": node.get("name"), + "score": node.get("score", 0.0), + "node": node.get("node", {}), + "label": label + }) + + # 按score排序,取top_k + all_results.sort(key=lambda x: x.get("score", 0), reverse=True) + all_results = all_results[:top_k] + + logger.info(f"[混合检索] 找到 {len(all_results)} 个候选节点") + + # 获取完整节点信息 + final_nodes = [] + for item in all_results: + node_data = item["node"] + label = item["label"] + name = item["name"] + + get_node_query = f""" + MATCH (n:{label}) + WHERE n.名称 = $name OR n.name = $name + RETURN elementId(n) AS id, n.名称 AS name, labels(n) AS labels, properties(n) AS props + LIMIT 1 + """ + result = await session.run(get_node_query, name=name) + record = await result.single() + + if record: + final_nodes.append({ + "id": record.get("id"), + "name": record.get("name"), + "labels": record.get("labels"), + "props": record.get("props", {}), + "score": item.get("score", 0.0) + }) + + return final_nodes + + finally: + sync_driver.close() + + +async def _rerank_nodes( + query, + nodes +): + """ + 使用 rerank 对节点进行重排序 + + Args: + query: 用户查询 + nodes: 节点列表 + + Returns: + List[Dict]: 重排序后的节点列表 + """ + if not nodes: + return [] + + from modelsAPI.model_api import OpenaiAPI + + # 格式化节点文本 + documents = [] + for node in nodes: + props = node.get("props", {}) + name = node.get("name", "") + labels = ", ".join(node.get("labels", [])) + doc_text = f"名称: {name}; 类型: {labels}" + documents.append(doc_text) + + # Rerank + try: + rerank_results = OpenaiAPI.rerank_query(query, documents, top_n=len(documents)) + + # 按score排序 + sorted_rerank = sorted(rerank_results, key=lambda x: x.get('scores', 0), reverse=True) + + # 重新组织节点 + reranked_nodes = [] + for rr in sorted_rerank: + idx = rr.get('index', 0) + if 0 <= idx < len(nodes): + node = nodes[idx].copy() + node['rerank_score'] = rr.get('scores', 0) + reranked_nodes.append(node) + + return reranked_nodes + + except Exception as e: + logger.error(f"Rerank失败: {e}", exc_info=True) + # 失败时返回原顺序 + for node in nodes: + node['rerank_score'] = 0 + return nodes + + +async def _get_one_hop_neighbors( + session, + node_id: str +) -> List[Dict[str, Any]]: + """ + 获取指定节点的一跳邻居节点 + + Args: + session: Neo4j 异步会话 + node_id: 节点ID + + Returns: + List[Dict]: 一跳邻居节点列表 + """ + exclude_keys = { + "last_updated", + "created_at", + "knowledge_source", + "fulltext", + "embedding", + } + + query = """ + MATCH (n) + WHERE elementId(n) = $node_id + MATCH (n)-[r]-(m) + RETURN + elementId(m) AS id, + m.名称 AS name, + labels(m) AS labels, + properties(m) AS props, + elementId(r) AS rel_id, + type(r) AS rel_type, + properties(r) AS rel_props, + elementId(n) AS source_id, + n.名称 AS source_name, + labels(n) AS source_labels + LIMIT 100 + """ + + result = await session.run(query, node_id=node_id) + records = await result.data() + + neighbors = [] + for record in records: + props = record.get("props", {}) + props_filtered = {k: v for k, v in props.items() if k not in exclude_keys} + + rel_props = record.get("rel_props", {}) + rel_props_filtered = {k: v for k, v in rel_props.items() if k not in exclude_keys} + + neighbors.append({ + "id": record.get("id"), + "name": record.get("name"), + "labels": record.get("labels", []), + "properties": props_filtered, + "relationship": { + "id": record.get("rel_id"), + "type": record.get("rel_type"), + "properties": rel_props_filtered, + "source_id": record.get("source_id"), + "source_name": record.get("source_name"), + "source_labels": record.get("source_labels", []) + } + }) + + return neighbors + + +def _format_node_for_llm(node: Dict[str, Any]) -> str: + """ + 将节点信息格式化为供LLM理解的字符串(仅包含标签和中文名称) + + Args: + node: 节点信息字典 + + Returns: + str: 格式化后的字符串 + """ + name = node.get("name", "未知") + labels = ", ".join(node.get("labels", [])) + rel = node.get("relationship", {}) + + parts = [f"节点名称: {name}"] + if labels: + parts.append(f"节点类型: {labels}") + if rel: + parts.append(f"通过关系: {rel.get('type', '未知')} 连接自: {rel.get('source_name', '未知')}") + + return "\n".join(parts) + + +async def _select_best_node_with_llm( + query: str, + neighbors: List[Dict[str, Any]] +) -> Optional[Dict[str, Any]]: + """ + 使用大模型从一跳邻居中选择最合适的节点 + + Args: + query: 用户查询 + neighbors: 一跳邻居节点列表 + + Returns: + Optional[Dict]: 最合适的节点信息,None表示没有合适的 + """ + if not neighbors: + return None + + from modelsAPI.model_api import OpenaiAPI + + # 格式化邻居节点信息供LLM参考 + neighbors_text = [] + for i, node in enumerate(neighbors, 1): + neighbors_text.append(f"【候选节点 {i}】\n{_format_node_for_llm(node)}\n") + + prompt = f"""你是一个智能图谱检索助手,需要根据用户的查询,从提供的候选节点中选择最相关的一个节点。 + +用户查询: {query} + +候选节点列表: +{''.join(neighbors_text)} + +请仔细阅读用户查询和所有候选节点信息,选择与用户查询最相关的一个节点。 + +输出要求: +1. 请仅输出你选择的候选节点编号(1, 2, 3...),不要输出任何其他内容 +2. 如果没有任何相关的节点,请输出"0" +3. 不要解释原因,只输出数字编号 + +你的选择:""" + + try: + model = os.getenv("OPENAI_MODEL") + response = await OpenaiAPI.open_api_chat_async(prompt, model, temperature=0) + + # 提取数字编号 + match = re.search(r'\d+', response.strip()) + if match: + selected_index = int(match.group()) - 1 + if 0 <= selected_index < len(neighbors): + logger.info(f"LLM选择了候选节点 {selected_index + 1}: {neighbors[selected_index].get('name', '未知')}") + return neighbors[selected_index] + + logger.warning(f"LLM未选择有效节点,原始响应: {response}") + return None + except Exception as e: + logger.error(f"使用LLM选择节点失败: {e}", exc_info=True) + return None + + +def _build_graph_result( + entry_node: Optional[Dict[str, Any]], + best_node: Optional[Dict[str, Any]], + query: str +) -> Dict[str, Any]: + """ + 构建与operate方法一致的输出格式(只包含入口节点和选中节点) + + Args: + entry_node: 入口节点 + best_node: 选择的最佳节点 + query: 用户查询 + + Returns: + Dict: 格式化后的结果 + """ + exclude_keys = { + "last_updated", + "created_at", + "knowledge_source", + "fulltext", + "embedding", + } + + nodes_g: List[Dict[str, Any]] = [] + links_g: List[Dict[str, Any]] = [] + node_id_set = set() + + # 添加入口节点 + if entry_node: + nid = entry_node.get("id") + if nid and nid not in node_id_set: + node_id_set.add(nid) + + props = entry_node.get("props", {}) + props_filtered = {k: v for k, v in props.items() if k not in exclude_keys} + + name = props.get("名称") or props.get("name") or str(nid) + labels = entry_node.get("labels", []) + + nodes_g.append({ + "id": nid, + "name": name, + "labels": labels, + "properties": props_filtered, + }) + + # 添加最佳节点和关系 + if best_node: + # 添加最佳节点 + best_nid = best_node.get("id") + if best_nid and best_nid not in node_id_set: + node_id_set.add(best_nid) + + props = best_node.get("properties", {}) + name = best_node.get("name") or str(best_nid) + labels = best_node.get("labels", []) + + nodes_g.append({ + "id": best_nid, + "name": name, + "labels": labels, + "properties": props, + }) + + # 添加关系 + rel = best_node.get("relationship", {}) + if rel: + rel_id = rel.get("id") + src_id = rel.get("source_id") + tgt_id = best_nid + + if src_id in node_id_set and tgt_id in node_id_set: + links_g.append({ + "id": rel_id, + "label": rel.get("type", ""), + "source": src_id, + "target": tgt_id, + "properties": rel.get("properties", {}), + }) + + # 生成 results 文本(优先用best_node,其次用entry_node) + results_text = "" + if best_node: + best_props = best_node.get("properties", {}) + best_info = {k: v for k, v in best_props.items() if k not in exclude_keys and v} + results_text = json.dumps(best_info, ensure_ascii=False) if best_info else "" + elif entry_node: + entry_props = entry_node.get("props", {}) + entry_info = {k: v for k, v in entry_props.items() if k not in exclude_keys and v} + results_text = json.dumps(entry_info, ensure_ascii=False) if entry_info else "" + + graph_item = {"nodes": nodes_g, "links": links_g, "results": results_text} + return {"success": True, "xxxx.graph": [graph_item]} + + +async def quick_graph_search( + query: str, + route_res: Optional[List[Dict[str, str]]] = None, + top_k: int = 10, +) -> Dict[str, Any]: + """ + 临时图谱检索接口 + + Args: + query: 用户查询 + route_res: 路由结果列表(本方案不使用) + top_k: 检索返回的节点数量上限 + + Returns: + Dict: 检索结果,包含 success, xxxx.graph 等字段 + """ + start_time = time.time() + + if not query or not str(query).strip(): + return {"success": False, "error": "查询不能为空"} + + uri = NEO4J_CONFIG.get("uri") + user = NEO4J_CONFIG.get("user") + password = NEO4J_CONFIG.get("password") + if not uri or not user or not password: + return {"success": False, "error": "Neo4j 配置不完整,请检查 NEO4J_CONFIG"} + + try: + async with AsyncGraphDatabase.driver(uri, auth=(user, password)) as driver: + async with driver.session() as session: + logger.info(f"[QuickGraphSearch] 开始直接混合检索,查询: '{query}'") + + # 1. 直接用用户问题混合检索所有节点 + candidate_nodes = await _search_all_nodes_with_hybrid(session, query, top_k=20) + + if not candidate_nodes: + return {"success": False, "error": "未找到任何匹配节点"} + + logger.info(f"[QuickGraphSearch] 混合检索找到 {len(candidate_nodes)} 个候选节点") + + # 2. Rerank 重排序 + reranked_nodes = await _rerank_nodes(query, candidate_nodes) + + if not reranked_nodes: + return {"success": False, "error": "Rerank失败"} + + # 3. 取最匹配的节点作为入口 + entry_node = reranked_nodes[0] + entry_id = entry_node.get("id") + logger.info(f"[QuickGraphSearch] 选择入口节点: {entry_node.get('name', '未知')}, score={entry_node.get('rerank_score', 0)}") + + # 4. 获取一跳邻居 + neighbors = await _get_one_hop_neighbors(session, entry_id) + + logger.info(f"[QuickGraphSearch] 获取到 {len(neighbors)} 个一跳邻居") + + if not neighbors: + # 如果没有邻居节点,只返回入口节点 + return _build_graph_result(entry_node, None, query) + + # 5. 用LLM选择最合适的节点 + best_node = await _select_best_node_with_llm(query, neighbors) + + # 6. 构建结果(只包含入口节点和选中节点) + result = _build_graph_result(entry_node, best_node, query) + + elapsed_ms = (time.time() - start_time) * 1000 + logger.info(f"[QuickGraphSearch] 完成,耗时: {elapsed_ms:.2f}ms") + + return result + + except Exception as e: + logger.error(f"QuickGraphSearch 失败: {e}", exc_info=True) + return {"success": False, "error": f"检索失败: {str(e)}"} + diff --git a/graph_search/result_formatter.py b/graph_search/result_formatter.py new file mode 100644 index 0000000..6bff6e8 --- /dev/null +++ b/graph_search/result_formatter.py @@ -0,0 +1,807 @@ +""" +结果格式化模块 + +功能:从 Neo4j 查询结果中提取节点和路径信息 +""" + +import logging +import re +from typing import Dict, List, Any, Optional, Set +logger = logging.getLogger(__name__) + +EXCLUDED_RESULT_NODE_LABELS = {"维修工作", "操作程序", "操作使用"} +_FILTERED_OUT = object() + + +class SimpleNode: + """ + 简单的Node模拟类,用于将节点数据包装为Neo4j Node对象格式(降级策略) + """ + def __init__(self, node_data: dict, labels: List[str], node_id: str): + """ + Args: + node_data: 节点数据字典 + labels: 节点标签列表 + node_id: 节点ID + """ + self._data = node_data + self._labels = labels + self._node_id = node_id + + @property + def element_id(self): + """返回节点ID""" + return self._node_id + + @property + def id(self): + """返回节点ID(兼容旧版本)""" + return self._node_id + + @property + def labels(self): + """返回节点标签""" + return self._labels + + def get(self, key, default=None): + """获取节点属性""" + return self._data.get(key, default) + + def __iter__(self): + """使节点可以转换为字典""" + return iter(self._data.items()) + + def __getitem__(self, key): + """使节点可以像字典一样访问""" + return self._data[key] + + +class SimplePath: + """ + 简单的Path模拟类,用于将节点包装为path结构(降级策略) + 包含nodes和relationships属性,其中relationships为空列表 + """ + def __init__(self, nodes: List): + """ + Args: + nodes: 节点列表(SimpleNode对象列表) + """ + self.nodes = nodes + self.relationships = [] # 降级策略中,只有节点,没有关系 + + +# def extract_knowledge_source(knowledge_source_value: Any) -> List[Dict[str, str]]: +# """ +# 从节点属性中的 knowledge_source 字段提取信息并格式化为标准格式 +# +# Args: +# knowledge_source_value: 节点属性中的 knowledge_source 值(可能是字符串、字典、列表等) +# +# Returns: +# List[Dict]: 格式化后的 knowledge_source 列表,格式为 [{"filename":"","url":"","info":""}] +# """ +# if knowledge_source_value is None: +# return [{"filename": "", "url": "", "info": ""}] +# +# result = [] +# +# # 如果是字符串,尝试解析为JSON或直接使用 +# if isinstance(knowledge_source_value, str): +# # 尝试解析JSON字符串 +# try: +# import json +# parsed = json.loads(knowledge_source_value) +# if isinstance(parsed, list): +# knowledge_source_value = parsed +# elif isinstance(parsed, dict): +# knowledge_source_value = [parsed] +# else: +# # 如果不是JSON,将字符串作为info +# return [{"filename": "", "url": "", "info": knowledge_source_value}] +# except: +# # 解析失败,将字符串作为info +# return [{"filename": "", "url": "", "info": knowledge_source_value}] +# +# # 如果是字典,转换为列表 +# if isinstance(knowledge_source_value, dict): +# knowledge_source_value = [knowledge_source_value] +# +# # 如果是列表,处理每个元素 +# if isinstance(knowledge_source_value, list): +# for item in knowledge_source_value: +# if isinstance(item, dict): +# # 从字典中提取字段 +# formatted_item = { +# "filename": str(item.get("filename", item.get("file_name", item.get("file", "")))), +# "url": str(item.get("url", item.get("link", item.get("uri", "")))), +# "info": str(item.get("info", item.get("information", item.get("description", "")))) +# } +# result.append(formatted_item) +# elif isinstance(item, str): +# # 如果是字符串,作为info +# result.append({"filename": "", "url": "", "info": item}) +# else: +# # 其他类型,转换为字符串作为info +# result.append({"filename": "", "url": "", "info": str(item)}) +# else: +# # 其他类型,转换为字符串作为info +# result.append({"filename": "", "url": "", "info": str(knowledge_source_value)}) +# +# # 如果没有结果,返回默认值 +# if not result: +# result = [{"filename": "", "url": "", "info": ""}] +# +# return result +def extract_knowledge_source(knowledge_source_value: Any) -> List[Dict[str, str]]: + """ + 从节点属性中的 knowledge_source 字段提取信息并格式化为标准格式(不含 info 字段) + + Args: + knowledge_source_value: 节点属性中的 knowledge_source 值(可能是字符串、字典、列表等) + + Returns: + List[Dict]: 格式化后的 knowledge_source 列表,格式为 [{"filename":"","url":""}] + """ + if knowledge_source_value is None: + return [{"filename": "", "url": ""}] + + result = [] + + # 如果是字符串,尝试解析为JSON或直接使用 + if isinstance(knowledge_source_value, str): + # 尝试解析JSON字符串 + try: + import json + parsed = json.loads(knowledge_source_value) + if isinstance(parsed, list): + knowledge_source_value = parsed + elif isinstance(parsed, dict): + knowledge_source_value = [parsed] + else: + # 如果不是JSON,跳过该字符串 + return [{"filename": "", "url": ""}] + except: + # 解析失败,跳过该字符串 + return [{"filename": "", "url": ""}] + + # 如果是字典,转换为列表 + if isinstance(knowledge_source_value, dict): + knowledge_source_value = [knowledge_source_value] + + # 如果是列表,处理每个元素 + if isinstance(knowledge_source_value, list): + for item in knowledge_source_value: + if isinstance(item, dict): + # 从字典中提取字段(不含 info) + formatted_item = { + "filename": str(item.get("filename", item.get("file_name", item.get("file", "")))), + "url": str(item.get("url", item.get("link", item.get("uri", "")))) + } + result.append(formatted_item) + elif isinstance(item, str): + # 如果是字符串,跳过 + continue + else: + # 其他类型,跳过 + continue + else: + # 其他类型,跳过 + return [{"filename": "", "url": ""}] + + # 如果没有结果,返回默认值 + if not result: + result = [{"filename": "", "url": ""}] + + return result + +def remove_sensitive_fields(data: Any) -> Any: + """ + 递归删除数据中的 embedding、fulltext 和 path 字段 + 参考 test.py 的实现方式:在转换为 dict 后立即 pop 掉敏感字段 + + Args: + data: 要处理的数据(可以是字典、列表、Neo4j对象或基本类型) + + Returns: + 清理后的数据 + """ + # 如果是 Neo4j Node 对象,转换为字典并删除敏感字段(参考 test.py) + if hasattr(data, 'labels') and (hasattr(data, 'element_id') or hasattr(data, 'id')): + try: + props = dict(data) + props.pop('embedding', None) + props.pop('fulltext', None) + # 递归处理属性中的嵌套结构 + return remove_sensitive_fields(props) + except: + return data + + # 如果是 Neo4j Relationship 对象,转换为字典并删除敏感字段 + if hasattr(data, 'type') and (hasattr(data, 'element_id') or hasattr(data, 'id')): + try: + props = dict(data) + props.pop('embedding', None) + props.pop('fulltext', None) + # 递归处理属性中的嵌套结构 + return remove_sensitive_fields(props) + except: + return data + + if isinstance(data, dict): + # 创建新字典,排除 embedding、fulltext 和 path + result = {} + for key, value in data.items(): + if key not in ['embedding', 'fulltext', 'path']: + # 递归处理嵌套的字典、列表和 Neo4j 对象 + result[key] = remove_sensitive_fields(value) + return result + elif isinstance(data, list): + # 递归处理列表中的每个元素 + return [remove_sensitive_fields(item) for item in data] + else: + # 基本类型直接返回 + return data + +def format_results(results: List[Dict[str, Any]]) -> Dict[str, Any]: + """ + 格式化图谱查询结果,提取所有节点和路径(自动去重) + + 从 rerank 后的结果字典列表中提取 path 信息,生成 nodes 和 links + + Args: + results: rerank 后的结果列表(字典列表,每个字典包含 rerank_score 和 path 等信息) + + Returns: + Dict: 包含 nodes 和 links 的字典(已去重,只保留最高分) + """ + if not results: + return {"nodes": [], "links": []} + + all_nodes = {} # key: node_id(str), value: node dict + all_links = {} # key: rel_id(str), value: link dict + node_scores = {} # key: node_id(str), value: highest rerank score for the node + + def process_path(path, current_score): + """处理单个 Path 对象""" + if path is None: + return + + def process_node(node): + """处理单个节点的辅助函数""" + if node is None: + return + + node_id = str(node.element_id) if hasattr(node, 'element_id') else str(node.id) + + if node_id not in all_nodes: + props = dict(node) + props.pop('embedding', None) + props.pop('fulltext', None) + props.pop('切片', None) + + # 提取 name 用于外部字段(从props中提取后移除,避免出现在properties中) + node_name = props.pop('name', None) or node.get("名称", f"Node_{node_id}") + + # 直接过滤掉 last_updated 和 created_at + props.pop('last_updated', None) + props.pop('created_at', None) + + # 提取并格式化 knowledge_source(从props中提取后移除原始值) + knowledge_source_value = props.pop('knowledge_source', None) + formatted_knowledge_source = extract_knowledge_source(knowledge_source_value) + + all_nodes[node_id] = { + "id": node_id, + "name": node_name, + "labels": list(node.labels), + "properties": props, + "knowledge_source": formatted_knowledge_source + } + # 初始化节点的最高分数 + if current_score > 0: + node_scores[node_id] = current_score + else: + # 如果节点已存在,比较并保留最高分数 + existing_score = node_scores.get(node_id, 0) + if current_score > existing_score: + node_scores[node_id] = current_score + + try: + # 处理节点:优先使用 path.nodes,如果为空则使用 start/end 或 start_node/end_node + nodes_processed = False + + # 首先尝试使用 path.nodes + if hasattr(path, 'nodes'): + try: + # 直接迭代 path.nodes(可能是生成器) + for node in path.nodes: + process_node(node) + nodes_processed = True + except Exception as e: + logger.debug(f"迭代 path.nodes 时出错: {e}") + + # 如果 path.nodes 没有处理任何节点(size=0的情况),尝试使用 start/end 节点 + if not nodes_processed: + start_node = None + end_node = None + + # 尝试多种方式获取起始节点(优先使用 start_node,其次使用 start) + if hasattr(path, 'start_node'): + try: + start_node = path.start_node + except Exception: + pass + elif hasattr(path, 'start'): + try: + start_node = path.start + except Exception: + pass + + # 尝试多种方式获取结束节点(优先使用 end_node,其次使用 end) + if hasattr(path, 'end_node'): + try: + end_node = path.end_node + except Exception: + pass + elif hasattr(path, 'end'): + try: + end_node = path.end + except Exception: + pass + + # 处理起始节点 + if start_node is not None: + process_node(start_node) + + # 处理结束节点(只有当与起始节点不同时才处理,避免重复) + if end_node is not None and (start_node is None or end_node != start_node): + process_node(end_node) + + # 处理关系 + for rel in path.relationships: + rel_id = str(rel.element_id) if hasattr(rel, 'element_id') else str(rel.id) + + if rel_id not in all_links: + rel_props = dict(rel) + rel_props.pop('embedding', None) + rel_props.pop('fulltext', None) + + start_node_id = str(rel.start_node.element_id) if hasattr(rel.start_node, 'element_id') else str(rel.start_node.id) + end_node_id = str(rel.end_node.element_id) if hasattr(rel.end_node, 'element_id') else str(rel.end_node.id) + + all_links[rel_id] = { + "id": rel_id, + "label": rel.type, + "source": start_node_id, + "target": end_node_id, + "properties": rel_props + } + except Exception as e: + logger.warning(f"处理 Path 对象时出错: {e}", exc_info=True) + + for result in results: + try: + # 获取当前记录的rerank_score + current_rerank_score = result.get('rerank_score', 0) + + # 查找 path 字段(可能是 path 或 paths) + path_value = None + if 'path' in result: + path_value = result['path'] + elif 'paths' in result: + path_value = result['paths'] + else: + # 尝试从所有值中查找 Path 对象 + for key, value in result.items(): + if value is not None and hasattr(value, 'nodes') and hasattr(value, 'relationships'): + path_value = value + break + + # 处理 path_value + if path_value is not None: + # 处理单个 Path 对象 + if hasattr(path_value, 'nodes') and hasattr(path_value, 'relationships'): + process_path(path_value, current_rerank_score) + # 处理路径列表 + elif isinstance(path_value, list): + if path_value: # 列表不为空 + for path in path_value: + if path is not None and hasattr(path, 'nodes') and hasattr(path, 'relationships'): + process_path(path, current_rerank_score) + except Exception as e: + logger.warning(f"格式化结果记录失败: {e}", exc_info=True) + + # 为每个节点添加最高rerank分数到其属性中(只保留高分) + for node_id, score in node_scores.items(): + if node_id in all_nodes: + node = all_nodes[node_id] + if 'properties' not in node: + node['properties'] = {} + # 只保留最高分,使用 分数 作为 key + node['properties']['分数'] = score + + # 最终清理:确保所有嵌套数据中的敏感字段都被删除 + cleaned_nodes = [remove_sensitive_fields(node) for node in all_nodes.values()] + cleaned_links = [remove_sensitive_fields(link) for link in all_links.values()] + + return { + "nodes": cleaned_nodes, + "links": cleaned_links + } + + +def format_entry_nodes_as_results(entry_nodes: dict) -> List[Dict[str, Any]]: + """ + 将入口节点信息格式化为检索结果(降级策略) + 将节点作为path,节点作为结果 + + Args: + entry_nodes: 入口节点字典,格式如 {"设备": [{"name": "xxx", "score": 0.9, "node": {...}}]} + + Returns: + List[Dict]: 结果列表,每个元素是一个结果记录,包含path字段(用于 graph_retrieval.py 的降级策略) + """ + results = [] + + if not entry_nodes: + return results + + for label, nodes in entry_nodes.items(): + if not isinstance(nodes, list) or not nodes: + continue + + # 标签列表(优先使用entry_nodes中的label,如果节点数据中有labels则使用节点数据的labels) + label_list = [label] if label else [] + + for node_info in nodes: + node_name = node_info.get("name") or node_info.get("_name") or (node_info.get("node", {}).get("名称")) or str(node_info.get("node", "")) + node_data = node_info.get("node", {}) + node_score = node_info.get("score", 0.8) + + # 如果node_data是Neo4j Node对象,转换为字典 + if hasattr(node_data, 'labels') and (hasattr(node_data, 'element_id') or hasattr(node_data, 'id')): + # 从Neo4j Node对象提取labels + node_labels = list(node_data.labels) if hasattr(node_data, 'labels') else label_list + if node_labels: + label_list = node_labels + # 转换为字典 + node_data = dict(node_data) + + # 跳过无效节点 + if not isinstance(node_data, dict) and not node_name: + continue + + # 提取节点ID(兜底情况下使用简单的ID格式) + if isinstance(node_data, dict): + # 优先使用element_id或id(Neo4j原生ID) + if node_data.get("element_id"): + node_id = str(node_data.get("element_id")) + elif node_data.get("id"): + node_id = str(node_data.get("id")) + else: + # 兜底情况:使用节点的名称属性作为简单ID + # 优先使用中文属性名"名称",其次使用"name" + node_id = node_data.get("名称") or node_data.get("name") or node_name + if node_id: + node_id = str(node_id) + else: + # 如果都没有,生成一个简单的ID + node_id = f"{label}_{len(results)}" + else: + node_id = str(node_name) if node_name else f"{label}_{len(results)}" + + # 提取节点属性(排除内部字段和指定字段) + node_properties = {} + if isinstance(node_data, dict): + for key, value in node_data.items(): + if key not in ["element_id", "id", "labels", "embedding", "fulltext", "name", "切片"]: + node_properties[key] = value + + # 如果节点数据中有labels,使用它 + if "labels" in node_data and node_data["labels"]: + if isinstance(node_data["labels"], list): + label_list = node_data["labels"] + elif hasattr(node_data["labels"], '__iter__'): + label_list = list(node_data["labels"]) + + # 如果没有属性,跳过 + if not node_properties: + continue + + # 直接过滤掉 last_updated 和 created_at + node_properties.pop('last_updated', None) + node_properties.pop('created_at', None) + + # 使用remove_sensitive_fields递归删除embedding和fulltext字段(确保嵌套结构也被清理) + node_properties = remove_sensitive_fields(node_properties) + + # 提取并格式化 knowledge_source + knowledge_source_value = node_properties.get('knowledge_source') + formatted_knowledge_source = extract_knowledge_source(knowledge_source_value) + + # 创建SimpleNode对象(knowledge_source 会在 format_results 的 process_node 中再次处理) + simple_node = SimpleNode( + node_data=node_properties, + labels=label_list, + node_id=node_id + ) + + # 创建SimplePath对象(只包含一个节点) + simple_path = SimplePath(nodes=[simple_node]) + + # 构建结果字典 + # 包含path字段(节点作为path),同时将节点属性作为result字段 + result = { + "path": simple_path, + "result": node_properties # 节点作为结果(已删除embedding和fulltext) + } + + results.append(result) + + return results + + +def _normalize_label_values(labels: Any) -> Set[str]: + """将 labels/标签/type 等字段统一成标签集合。""" + if labels is None: + return set() + + if isinstance(labels, str): + parts = re.split(r"[,,、/\s]+", labels) + return {part.strip("[]'\" ") for part in parts if part.strip("[]'\" ")} + + if isinstance(labels, (list, tuple, set, frozenset)): + return {str(label).strip() for label in labels if str(label).strip()} + + return {str(labels).strip()} if str(labels).strip() else set() + + +def _dict_label_values(data: Dict[str, Any]) -> Set[str]: + label_keys = ("labels", "标签", "label", "类型", "type", "节点类型", "node_type") + labels = set() + for key in label_keys: + if key in data: + labels.update(_normalize_label_values(data.get(key))) + return labels + + +def _has_excluded_result_label(value: Any) -> bool: + """判断一个结果对象是否明确属于需要从 results 隐藏的节点类型。""" + labels = set() + + if isinstance(value, dict): + labels.update(_dict_label_values(value)) + elif hasattr(value, "labels") and (hasattr(value, "element_id") or hasattr(value, "id")): + try: + labels.update(_normalize_label_values(value.labels)) + except Exception: + pass + + return bool(labels & EXCLUDED_RESULT_NODE_LABELS) + + +def _mentions_excluded_result_label(text: Any) -> bool: + if text is None: + return False + return any(label in str(text) for label in EXCLUDED_RESULT_NODE_LABELS) + + +def _is_empty_result_content(value: Any) -> bool: + return value in (None, {}, []) + + +def _filter_excluded_result_content(value: Any, parent_key: Any = None) -> Any: + """ + 只用于 results 字段:过滤掉维修工作、操作程序、操作使用这类节点内容。 + nodes/links 的原始返回不会经过这个函数。 + """ + if parent_key is not None and _mentions_excluded_result_label(parent_key): + return _FILTERED_OUT + + if _has_excluded_result_label(value): + return _FILTERED_OUT + + if isinstance(value, dict): + name_value = value.get("名称", value.get("name")) + if _mentions_excluded_result_label(name_value): + return _FILTERED_OUT + + filtered = {} + for key, child in value.items(): + if _mentions_excluded_result_label(key): + continue + filtered_child = _filter_excluded_result_content(child, key) + if filtered_child is not _FILTERED_OUT: + filtered[key] = filtered_child + + return _FILTERED_OUT if _is_empty_result_content(filtered) else filtered + + if isinstance(value, list): + filtered_items = [] + for item in value: + filtered_item = _filter_excluded_result_content(item) + if filtered_item is not _FILTERED_OUT and not _is_empty_result_content(filtered_item): + filtered_items.append(filtered_item) + return filtered_items + + return value + + +def _filter_results_for_output(results: Any) -> List[Any]: + filtered = _filter_excluded_result_content(results) + if filtered is _FILTERED_OUT or _is_empty_result_content(filtered): + return [] + if isinstance(filtered, list): + return filtered + return [filtered] + + +def _filter_result_nodes_for_output(nodes: Any) -> List[Dict[str, Any]]: + if not isinstance(nodes, list): + return [] + return [ + node for node in nodes + if isinstance(node, dict) and not _has_excluded_result_label(node) + ] + + + +def _format_value(value: Any) -> str: + """ + 将任意值转为简洁字符串,自适应处理: + - 数字或字符串:直接使用 + - 字典:检查是否有 result 字段,分解 result 字段,去除 knowledge_source + - 列表:递归处理每个元素 + """ + # 如果直接是数字或字符串,直接返回 + if isinstance(value, (str, int, float)): + return str(value) + + # 如果是字典,检查是否有 result 字段 + elif isinstance(value, dict): + # 如果字典中有 result 字段,优先处理 result 字段的内容 + if 'result' in value: + result_value = value['result'] + # 处理 result 字段(去除 knowledge_source 和指定字段) + if isinstance(result_value, dict): + # 复制字典,去除 knowledge_source、last_updated、created_at 和指定字段 + skip_keys = {'knowledge_source', 'name', '切片', 'last_updated', 'created_at'} + cleaned_result = {k: v for k, v in result_value.items() if k not in skip_keys} + return _format_value(cleaned_result) + elif isinstance(result_value, list): + # 如果是列表,递归处理每个元素(去除 knowledge_source) + if len(result_value) == 0: + return "[]" + # 如果是简单列表,直接连接 + if all(isinstance(x, (str, int, float)) for x in result_value[:3]): + return ", ".join(str(x) for x in result_value[:10]) + ("..." if len(result_value) > 10 else "") + # 复杂列表,递归处理每个元素 + cleaned_items = [] + for item in result_value[:10]: + if isinstance(item, dict): + # 去除 knowledge_source、last_updated、created_at 和指定字段 + skip_keys = {'knowledge_source', 'name', '切片', 'last_updated', 'created_at'} + cleaned_item = {k: v for k, v in item.items() if k not in skip_keys} + cleaned_items.append(_format_value(cleaned_item)) + else: + cleaned_items.append(_format_value(item)) + result_str = "; ".join(cleaned_items) + if len(result_value) > 10: + result_str += f" ...(共 {len(result_value)} 条)" + return result_str + else: + # result 字段是其他类型,直接格式化 + return _format_value(result_value) + else: + # 没有 result 字段,正常处理字典,去除 knowledge_source、last_updated、created_at 和指定字段 + skip_keys = {'knowledge_source', 'name', '切片', 'last_updated', 'created_at'} + cleaned_dict = {k: v for k, v in value.items() if k not in skip_keys} + # 展平字典为 key: value 形式,避免嵌套 JSON + parts = [] + for k, v in cleaned_dict.items(): + if not isinstance(v, (dict, list)) or len(str(v)) < 100: # 避免大对象 + parts.append(f"{k}: {_format_value(v)}") + return "; ".join(parts) if parts else "{...}" + + # 如果是列表 + elif isinstance(value, list): + if len(value) == 0: + return "[]" + # 如果是简单列表(如 [1,2,3] 或 ["a","b"]) + if all(isinstance(x, (str, int, float)) for x in value[:3]): + return ", ".join(str(x) for x in value[:10]) + ("..." if len(value) > 10 else "") + else: + # 复杂对象列表,检查是否有 {'result': {...}} 格式的元素 + # 检查前几个元素,判断是否都是 {'result': {...}} 格式 + has_result_format = False + if value and isinstance(value[0], dict) and 'result' in value[0]: + # 检查是否所有元素都是 {'result': {...}} 格式 + has_result_format = all( + isinstance(item, dict) and 'result' in item and isinstance(item.get('result'), dict) + for item in value[:3] # 只检查前3个元素来判断模式 + ) + + formatted_items = [] + for item in value[:10]: # 最多处理10个元素 + if has_result_format and isinstance(item, dict) and 'result' in item: + # 如果是 {'result': {...}} 格式,分解 result 字段并去除 knowledge_source 和指定字段 + result_value = item['result'] + if isinstance(result_value, dict): + # 去除 knowledge_source、last_updated、created_at 和指定字段 + skip_keys = {'knowledge_source', 'name', '切片', 'last_updated', 'created_at'} + cleaned_result = {k: v for k, v in result_value.items() if k not in skip_keys} + formatted_items.append(_format_value(cleaned_result)) + else: + formatted_items.append(_format_value(result_value)) + elif isinstance(item, dict): + # 如果不是 {'result': {...}} 格式,去除字典中的 knowledge_source、last_updated、created_at 和指定字段 + skip_keys = {'knowledge_source', 'name', '切片', 'last_updated', 'created_at'} + cleaned_item = {k: v for k, v in item.items() if k not in skip_keys} + formatted_items.append(_format_value(cleaned_item)) + else: + # 其他类型,正常处理 + formatted_items.append(_format_value(item)) + + result = "; ".join(formatted_items) + if len(value) > 10: + result += f" ...(共 {len(value)} 条)" + return result + else: + return str(value)[:200] # 截断超长内容 + + +def serialize_graph_for_llm(graph_response: dict) -> str: + """ + 通用图谱结果序列化器,支持: + - nodes(实体详情) + - results(任意查询返回值:聚合/记录/字符串等) + """ + data = graph_response.get("data", {}) + # 这里的过滤只影响 results 字段里的文本展示,不改动接口返回的 data.nodes/data.links。 + nodes = _filter_result_nodes_for_output(data.get("nodes", [])) + results = _filter_results_for_output(data.get("results", [])) + + output_lines = [] + + # ========== 1. 处理 results(核心查询返回值)========== + if results: + output_lines.append("【图谱查询直接结果】") + if len(results) == 1 and not isinstance(results[0], (dict, list)): + # 单值结果(如 count, max, 字符串) + output_lines.append(f" {results[0]}") + else: + # 多条记录或复杂结构 + for i, res in enumerate(results): # 最多展示10条 + formatted = _format_value(res) + output_lines.append(f" [{i + 1}] {formatted}") + + output_lines.append("") + + # ========== 2. 处理 nodes(完整实体信息)========== + if nodes: + output_lines.append("【相关图谱实体详情】") + for node in nodes: # 防止过长,最多15个节点 + name = node.get("name", "Unnamed") + labels = node.get("labels", []) + props = node.get("properties", {}) + + output_lines.append(f" - 名称: {name}") + if labels: + output_lines.append(f" 标签: {', '.join(labels)}") + + # 过滤掉低价值字段(如 分数, 内部 id, name, 切片, last_updated, created_at) + skip_props = {"分数", "id", "name", "切片", "last_updated", "created_at", "最后更新时间", "创建时间"} + for k, v in props.items(): + if k not in skip_props and v not in (None, ""): + output_lines.append(f" {k}: {v}") + + # 不再显示手册来源(knowledge_source),因为用户要求在 results 字段中不显示 + + output_lines.append("") # 节点间空行 + + # ========== 返回结果 ========== + if not output_lines: + return "图谱查询完成,但未返回有效数据。" + + return "\n".join(output_lines).rstrip() + diff --git a/graph_search/result_formatter.py_0713 b/graph_search/result_formatter.py_0713 new file mode 100644 index 0000000..9284039 --- /dev/null +++ b/graph_search/result_formatter.py_0713 @@ -0,0 +1,697 @@ +""" +结果格式化模块 + +功能:从 Neo4j 查询结果中提取节点和路径信息 +""" + +import logging +from typing import Dict, List, Any, Optional +logger = logging.getLogger(__name__) + + +class SimpleNode: + """ + 简单的Node模拟类,用于将节点数据包装为Neo4j Node对象格式(降级策略) + """ + def __init__(self, node_data: dict, labels: List[str], node_id: str): + """ + Args: + node_data: 节点数据字典 + labels: 节点标签列表 + node_id: 节点ID + """ + self._data = node_data + self._labels = labels + self._node_id = node_id + + @property + def element_id(self): + """返回节点ID""" + return self._node_id + + @property + def id(self): + """返回节点ID(兼容旧版本)""" + return self._node_id + + @property + def labels(self): + """返回节点标签""" + return self._labels + + def get(self, key, default=None): + """获取节点属性""" + return self._data.get(key, default) + + def __iter__(self): + """使节点可以转换为字典""" + return iter(self._data.items()) + + def __getitem__(self, key): + """使节点可以像字典一样访问""" + return self._data[key] + + +class SimplePath: + """ + 简单的Path模拟类,用于将节点包装为path结构(降级策略) + 包含nodes和relationships属性,其中relationships为空列表 + """ + def __init__(self, nodes: List): + """ + Args: + nodes: 节点列表(SimpleNode对象列表) + """ + self.nodes = nodes + self.relationships = [] # 降级策略中,只有节点,没有关系 + + +# def extract_knowledge_source(knowledge_source_value: Any) -> List[Dict[str, str]]: +# """ +# 从节点属性中的 knowledge_source 字段提取信息并格式化为标准格式 +# +# Args: +# knowledge_source_value: 节点属性中的 knowledge_source 值(可能是字符串、字典、列表等) +# +# Returns: +# List[Dict]: 格式化后的 knowledge_source 列表,格式为 [{"filename":"","url":"","info":""}] +# """ +# if knowledge_source_value is None: +# return [{"filename": "", "url": "", "info": ""}] +# +# result = [] +# +# # 如果是字符串,尝试解析为JSON或直接使用 +# if isinstance(knowledge_source_value, str): +# # 尝试解析JSON字符串 +# try: +# import json +# parsed = json.loads(knowledge_source_value) +# if isinstance(parsed, list): +# knowledge_source_value = parsed +# elif isinstance(parsed, dict): +# knowledge_source_value = [parsed] +# else: +# # 如果不是JSON,将字符串作为info +# return [{"filename": "", "url": "", "info": knowledge_source_value}] +# except: +# # 解析失败,将字符串作为info +# return [{"filename": "", "url": "", "info": knowledge_source_value}] +# +# # 如果是字典,转换为列表 +# if isinstance(knowledge_source_value, dict): +# knowledge_source_value = [knowledge_source_value] +# +# # 如果是列表,处理每个元素 +# if isinstance(knowledge_source_value, list): +# for item in knowledge_source_value: +# if isinstance(item, dict): +# # 从字典中提取字段 +# formatted_item = { +# "filename": str(item.get("filename", item.get("file_name", item.get("file", "")))), +# "url": str(item.get("url", item.get("link", item.get("uri", "")))), +# "info": str(item.get("info", item.get("information", item.get("description", "")))) +# } +# result.append(formatted_item) +# elif isinstance(item, str): +# # 如果是字符串,作为info +# result.append({"filename": "", "url": "", "info": item}) +# else: +# # 其他类型,转换为字符串作为info +# result.append({"filename": "", "url": "", "info": str(item)}) +# else: +# # 其他类型,转换为字符串作为info +# result.append({"filename": "", "url": "", "info": str(knowledge_source_value)}) +# +# # 如果没有结果,返回默认值 +# if not result: +# result = [{"filename": "", "url": "", "info": ""}] +# +# return result +def extract_knowledge_source(knowledge_source_value: Any) -> List[Dict[str, str]]: + """ + 从节点属性中的 knowledge_source 字段提取信息并格式化为标准格式(不含 info 字段) + + Args: + knowledge_source_value: 节点属性中的 knowledge_source 值(可能是字符串、字典、列表等) + + Returns: + List[Dict]: 格式化后的 knowledge_source 列表,格式为 [{"filename":"","url":""}] + """ + if knowledge_source_value is None: + return [{"filename": "", "url": ""}] + + result = [] + + # 如果是字符串,尝试解析为JSON或直接使用 + if isinstance(knowledge_source_value, str): + # 尝试解析JSON字符串 + try: + import json + parsed = json.loads(knowledge_source_value) + if isinstance(parsed, list): + knowledge_source_value = parsed + elif isinstance(parsed, dict): + knowledge_source_value = [parsed] + else: + # 如果不是JSON,跳过该字符串 + return [{"filename": "", "url": ""}] + except: + # 解析失败,跳过该字符串 + return [{"filename": "", "url": ""}] + + # 如果是字典,转换为列表 + if isinstance(knowledge_source_value, dict): + knowledge_source_value = [knowledge_source_value] + + # 如果是列表,处理每个元素 + if isinstance(knowledge_source_value, list): + for item in knowledge_source_value: + if isinstance(item, dict): + # 从字典中提取字段(不含 info) + formatted_item = { + "filename": str(item.get("filename", item.get("file_name", item.get("file", "")))), + "url": str(item.get("url", item.get("link", item.get("uri", "")))) + } + result.append(formatted_item) + elif isinstance(item, str): + # 如果是字符串,跳过 + continue + else: + # 其他类型,跳过 + continue + else: + # 其他类型,跳过 + return [{"filename": "", "url": ""}] + + # 如果没有结果,返回默认值 + if not result: + result = [{"filename": "", "url": ""}] + + return result + +def remove_sensitive_fields(data: Any) -> Any: + """ + 递归删除数据中的 embedding、fulltext 和 path 字段 + 参考 test.py 的实现方式:在转换为 dict 后立即 pop 掉敏感字段 + + Args: + data: 要处理的数据(可以是字典、列表、Neo4j对象或基本类型) + + Returns: + 清理后的数据 + """ + # 如果是 Neo4j Node 对象,转换为字典并删除敏感字段(参考 test.py) + if hasattr(data, 'labels') and (hasattr(data, 'element_id') or hasattr(data, 'id')): + try: + props = dict(data) + props.pop('embedding', None) + props.pop('fulltext', None) + # 递归处理属性中的嵌套结构 + return remove_sensitive_fields(props) + except: + return data + + # 如果是 Neo4j Relationship 对象,转换为字典并删除敏感字段 + if hasattr(data, 'type') and (hasattr(data, 'element_id') or hasattr(data, 'id')): + try: + props = dict(data) + props.pop('embedding', None) + props.pop('fulltext', None) + # 递归处理属性中的嵌套结构 + return remove_sensitive_fields(props) + except: + return data + + if isinstance(data, dict): + # 创建新字典,排除 embedding、fulltext 和 path + result = {} + for key, value in data.items(): + if key not in ['embedding', 'fulltext', 'path']: + # 递归处理嵌套的字典、列表和 Neo4j 对象 + result[key] = remove_sensitive_fields(value) + return result + elif isinstance(data, list): + # 递归处理列表中的每个元素 + return [remove_sensitive_fields(item) for item in data] + else: + # 基本类型直接返回 + return data + +def format_results(results: List[Dict[str, Any]]) -> Dict[str, Any]: + """ + 格式化图谱查询结果,提取所有节点和路径(自动去重) + + 从 rerank 后的结果字典列表中提取 path 信息,生成 nodes 和 links + + Args: + results: rerank 后的结果列表(字典列表,每个字典包含 rerank_score 和 path 等信息) + + Returns: + Dict: 包含 nodes 和 links 的字典(已去重,只保留最高分) + """ + if not results: + return {"nodes": [], "links": []} + + all_nodes = {} # key: node_id(str), value: node dict + all_links = {} # key: rel_id(str), value: link dict + node_scores = {} # key: node_id(str), value: highest rerank score for the node + + def process_path(path, current_score): + """处理单个 Path 对象""" + if path is None: + return + + def process_node(node): + """处理单个节点的辅助函数""" + if node is None: + return + + node_id = str(node.element_id) if hasattr(node, 'element_id') else str(node.id) + + if node_id not in all_nodes: + props = dict(node) + props.pop('embedding', None) + props.pop('fulltext', None) + props.pop('切片', None) + + # 提取 name 用于外部字段(从props中提取后移除,避免出现在properties中) + node_name = props.pop('name', None) or node.get("名称", f"Node_{node_id}") + + # 直接过滤掉 last_updated 和 created_at + props.pop('last_updated', None) + props.pop('created_at', None) + + # 提取并格式化 knowledge_source(从props中提取后移除原始值) + knowledge_source_value = props.pop('knowledge_source', None) + formatted_knowledge_source = extract_knowledge_source(knowledge_source_value) + + all_nodes[node_id] = { + "id": node_id, + "name": node_name, + "labels": list(node.labels), + "properties": props, + "knowledge_source": formatted_knowledge_source + } + # 初始化节点的最高分数 + if current_score > 0: + node_scores[node_id] = current_score + else: + # 如果节点已存在,比较并保留最高分数 + existing_score = node_scores.get(node_id, 0) + if current_score > existing_score: + node_scores[node_id] = current_score + + try: + # 处理节点:优先使用 path.nodes,如果为空则使用 start/end 或 start_node/end_node + nodes_processed = False + + # 首先尝试使用 path.nodes + if hasattr(path, 'nodes'): + try: + # 直接迭代 path.nodes(可能是生成器) + for node in path.nodes: + process_node(node) + nodes_processed = True + except Exception as e: + logger.debug(f"迭代 path.nodes 时出错: {e}") + + # 如果 path.nodes 没有处理任何节点(size=0的情况),尝试使用 start/end 节点 + if not nodes_processed: + start_node = None + end_node = None + + # 尝试多种方式获取起始节点(优先使用 start_node,其次使用 start) + if hasattr(path, 'start_node'): + try: + start_node = path.start_node + except Exception: + pass + elif hasattr(path, 'start'): + try: + start_node = path.start + except Exception: + pass + + # 尝试多种方式获取结束节点(优先使用 end_node,其次使用 end) + if hasattr(path, 'end_node'): + try: + end_node = path.end_node + except Exception: + pass + elif hasattr(path, 'end'): + try: + end_node = path.end + except Exception: + pass + + # 处理起始节点 + if start_node is not None: + process_node(start_node) + + # 处理结束节点(只有当与起始节点不同时才处理,避免重复) + if end_node is not None and (start_node is None or end_node != start_node): + process_node(end_node) + + # 处理关系 + for rel in path.relationships: + rel_id = str(rel.element_id) if hasattr(rel, 'element_id') else str(rel.id) + + if rel_id not in all_links: + rel_props = dict(rel) + rel_props.pop('embedding', None) + rel_props.pop('fulltext', None) + + start_node_id = str(rel.start_node.element_id) if hasattr(rel.start_node, 'element_id') else str(rel.start_node.id) + end_node_id = str(rel.end_node.element_id) if hasattr(rel.end_node, 'element_id') else str(rel.end_node.id) + + all_links[rel_id] = { + "id": rel_id, + "label": rel.type, + "source": start_node_id, + "target": end_node_id, + "properties": rel_props + } + except Exception as e: + logger.warning(f"处理 Path 对象时出错: {e}", exc_info=True) + + for result in results: + try: + # 获取当前记录的rerank_score + current_rerank_score = result.get('rerank_score', 0) + + # 查找 path 字段(可能是 path 或 paths) + path_value = None + if 'path' in result: + path_value = result['path'] + elif 'paths' in result: + path_value = result['paths'] + else: + # 尝试从所有值中查找 Path 对象 + for key, value in result.items(): + if value is not None and hasattr(value, 'nodes') and hasattr(value, 'relationships'): + path_value = value + break + + # 处理 path_value + if path_value is not None: + # 处理单个 Path 对象 + if hasattr(path_value, 'nodes') and hasattr(path_value, 'relationships'): + process_path(path_value, current_rerank_score) + # 处理路径列表 + elif isinstance(path_value, list): + if path_value: # 列表不为空 + for path in path_value: + if path is not None and hasattr(path, 'nodes') and hasattr(path, 'relationships'): + process_path(path, current_rerank_score) + except Exception as e: + logger.warning(f"格式化结果记录失败: {e}", exc_info=True) + + # 为每个节点添加最高rerank分数到其属性中(只保留高分) + for node_id, score in node_scores.items(): + if node_id in all_nodes: + node = all_nodes[node_id] + if 'properties' not in node: + node['properties'] = {} + # 只保留最高分,使用 分数 作为 key + node['properties']['分数'] = score + + # 最终清理:确保所有嵌套数据中的敏感字段都被删除 + cleaned_nodes = [remove_sensitive_fields(node) for node in all_nodes.values()] + cleaned_links = [remove_sensitive_fields(link) for link in all_links.values()] + + return { + "nodes": cleaned_nodes, + "links": cleaned_links + } + + +def format_entry_nodes_as_results(entry_nodes: dict) -> List[Dict[str, Any]]: + """ + 将入口节点信息格式化为检索结果(降级策略) + 将节点作为path,节点作为结果 + + Args: + entry_nodes: 入口节点字典,格式如 {"设备": [{"name": "xxx", "score": 0.9, "node": {...}}]} + + Returns: + List[Dict]: 结果列表,每个元素是一个结果记录,包含path字段(用于 graph_retrieval.py 的降级策略) + """ + results = [] + + if not entry_nodes: + return results + + for label, nodes in entry_nodes.items(): + if not isinstance(nodes, list) or not nodes: + continue + + # 标签列表(优先使用entry_nodes中的label,如果节点数据中有labels则使用节点数据的labels) + label_list = [label] if label else [] + + for node_info in nodes: + node_name = node_info.get("name") or node_info.get("_name") or (node_info.get("node", {}).get("名称")) or str(node_info.get("node", "")) + node_data = node_info.get("node", {}) + node_score = node_info.get("score", 0.8) + + # 如果node_data是Neo4j Node对象,转换为字典 + if hasattr(node_data, 'labels') and (hasattr(node_data, 'element_id') or hasattr(node_data, 'id')): + # 从Neo4j Node对象提取labels + node_labels = list(node_data.labels) if hasattr(node_data, 'labels') else label_list + if node_labels: + label_list = node_labels + # 转换为字典 + node_data = dict(node_data) + + # 跳过无效节点 + if not isinstance(node_data, dict) and not node_name: + continue + + # 提取节点ID(兜底情况下使用简单的ID格式) + if isinstance(node_data, dict): + # 优先使用element_id或id(Neo4j原生ID) + if node_data.get("element_id"): + node_id = str(node_data.get("element_id")) + elif node_data.get("id"): + node_id = str(node_data.get("id")) + else: + # 兜底情况:使用节点的名称属性作为简单ID + # 优先使用中文属性名"名称",其次使用"name" + node_id = node_data.get("名称") or node_data.get("name") or node_name + if node_id: + node_id = str(node_id) + else: + # 如果都没有,生成一个简单的ID + node_id = f"{label}_{len(results)}" + else: + node_id = str(node_name) if node_name else f"{label}_{len(results)}" + + # 提取节点属性(排除内部字段和指定字段) + node_properties = {} + if isinstance(node_data, dict): + for key, value in node_data.items(): + if key not in ["element_id", "id", "labels", "embedding", "fulltext", "name", "切片"]: + node_properties[key] = value + + # 如果节点数据中有labels,使用它 + if "labels" in node_data and node_data["labels"]: + if isinstance(node_data["labels"], list): + label_list = node_data["labels"] + elif hasattr(node_data["labels"], '__iter__'): + label_list = list(node_data["labels"]) + + # 如果没有属性,跳过 + if not node_properties: + continue + + # 直接过滤掉 last_updated 和 created_at + node_properties.pop('last_updated', None) + node_properties.pop('created_at', None) + + # 使用remove_sensitive_fields递归删除embedding和fulltext字段(确保嵌套结构也被清理) + node_properties = remove_sensitive_fields(node_properties) + + # 提取并格式化 knowledge_source + knowledge_source_value = node_properties.get('knowledge_source') + formatted_knowledge_source = extract_knowledge_source(knowledge_source_value) + + # 创建SimpleNode对象(knowledge_source 会在 format_results 的 process_node 中再次处理) + simple_node = SimpleNode( + node_data=node_properties, + labels=label_list, + node_id=node_id + ) + + # 创建SimplePath对象(只包含一个节点) + simple_path = SimplePath(nodes=[simple_node]) + + # 构建结果字典 + # 包含path字段(节点作为path),同时将节点属性作为result字段 + result = { + "path": simple_path, + "result": node_properties # 节点作为结果(已删除embedding和fulltext) + } + + results.append(result) + + return results + + + +def _format_value(value: Any) -> str: + """ + 将任意值转为简洁字符串,自适应处理: + - 数字或字符串:直接使用 + - 字典:检查是否有 result 字段,分解 result 字段,去除 knowledge_source + - 列表:递归处理每个元素 + """ + # 如果直接是数字或字符串,直接返回 + if isinstance(value, (str, int, float)): + return str(value) + + # 如果是字典,检查是否有 result 字段 + elif isinstance(value, dict): + # 如果字典中有 result 字段,优先处理 result 字段的内容 + if 'result' in value: + result_value = value['result'] + # 处理 result 字段(去除 knowledge_source 和指定字段) + if isinstance(result_value, dict): + # 复制字典,去除 knowledge_source、last_updated、created_at 和指定字段 + skip_keys = {'knowledge_source', 'name', '切片', 'last_updated', 'created_at'} + cleaned_result = {k: v for k, v in result_value.items() if k not in skip_keys} + return _format_value(cleaned_result) + elif isinstance(result_value, list): + # 如果是列表,递归处理每个元素(去除 knowledge_source) + if len(result_value) == 0: + return "[]" + # 如果是简单列表,直接连接 + if all(isinstance(x, (str, int, float)) for x in result_value[:3]): + return ", ".join(str(x) for x in result_value[:10]) + ("..." if len(result_value) > 10 else "") + # 复杂列表,递归处理每个元素 + cleaned_items = [] + for item in result_value[:10]: + if isinstance(item, dict): + # 去除 knowledge_source、last_updated、created_at 和指定字段 + skip_keys = {'knowledge_source', 'name', '切片', 'last_updated', 'created_at'} + cleaned_item = {k: v for k, v in item.items() if k not in skip_keys} + cleaned_items.append(_format_value(cleaned_item)) + else: + cleaned_items.append(_format_value(item)) + result_str = "; ".join(cleaned_items) + if len(result_value) > 10: + result_str += f" ...(共 {len(result_value)} 条)" + return result_str + else: + # result 字段是其他类型,直接格式化 + return _format_value(result_value) + else: + # 没有 result 字段,正常处理字典,去除 knowledge_source、last_updated、created_at 和指定字段 + skip_keys = {'knowledge_source', 'name', '切片', 'last_updated', 'created_at'} + cleaned_dict = {k: v for k, v in value.items() if k not in skip_keys} + # 展平字典为 key: value 形式,避免嵌套 JSON + parts = [] + for k, v in cleaned_dict.items(): + if not isinstance(v, (dict, list)) or len(str(v)) < 100: # 避免大对象 + parts.append(f"{k}: {_format_value(v)}") + return "; ".join(parts) if parts else "{...}" + + # 如果是列表 + elif isinstance(value, list): + if len(value) == 0: + return "[]" + # 如果是简单列表(如 [1,2,3] 或 ["a","b"]) + if all(isinstance(x, (str, int, float)) for x in value[:3]): + return ", ".join(str(x) for x in value[:10]) + ("..." if len(value) > 10 else "") + else: + # 复杂对象列表,检查是否有 {'result': {...}} 格式的元素 + # 检查前几个元素,判断是否都是 {'result': {...}} 格式 + has_result_format = False + if value and isinstance(value[0], dict) and 'result' in value[0]: + # 检查是否所有元素都是 {'result': {...}} 格式 + has_result_format = all( + isinstance(item, dict) and 'result' in item and isinstance(item.get('result'), dict) + for item in value[:3] # 只检查前3个元素来判断模式 + ) + + formatted_items = [] + for item in value[:10]: # 最多处理10个元素 + if has_result_format and isinstance(item, dict) and 'result' in item: + # 如果是 {'result': {...}} 格式,分解 result 字段并去除 knowledge_source 和指定字段 + result_value = item['result'] + if isinstance(result_value, dict): + # 去除 knowledge_source、last_updated、created_at 和指定字段 + skip_keys = {'knowledge_source', 'name', '切片', 'last_updated', 'created_at'} + cleaned_result = {k: v for k, v in result_value.items() if k not in skip_keys} + formatted_items.append(_format_value(cleaned_result)) + else: + formatted_items.append(_format_value(result_value)) + elif isinstance(item, dict): + # 如果不是 {'result': {...}} 格式,去除字典中的 knowledge_source、last_updated、created_at 和指定字段 + skip_keys = {'knowledge_source', 'name', '切片', 'last_updated', 'created_at'} + cleaned_item = {k: v for k, v in item.items() if k not in skip_keys} + formatted_items.append(_format_value(cleaned_item)) + else: + # 其他类型,正常处理 + formatted_items.append(_format_value(item)) + + result = "; ".join(formatted_items) + if len(value) > 10: + result += f" ...(共 {len(value)} 条)" + return result + else: + return str(value)[:200] # 截断超长内容 + + +def serialize_graph_for_llm(graph_response: dict) -> str: + """ + 通用图谱结果序列化器,支持: + - nodes(实体详情) + - results(任意查询返回值:聚合/记录/字符串等) + """ + data = graph_response.get("data", {}) + nodes = data.get("nodes", []) + results = data.get("results", []) + + output_lines = [] + + # ========== 1. 处理 results(核心查询返回值)========== + if results: + output_lines.append("【图谱查询直接结果】") + if len(results) == 1 and not isinstance(results[0], (dict, list)): + # 单值结果(如 count, max, 字符串) + output_lines.append(f" {results[0]}") + else: + # 多条记录或复杂结构 + for i, res in enumerate(results): # 最多展示10条 + formatted = _format_value(res) + output_lines.append(f" [{i + 1}] {formatted}") + + output_lines.append("") + + # ========== 2. 处理 nodes(完整实体信息)========== + if nodes: + output_lines.append("【相关图谱实体详情】") + for node in nodes: # 防止过长,最多15个节点 + name = node.get("name", "Unnamed") + labels = node.get("labels", []) + props = node.get("properties", {}) + + output_lines.append(f" - 名称: {name}") + if labels: + output_lines.append(f" 标签: {', '.join(labels)}") + + # 过滤掉低价值字段(如 分数, 内部 id, name, 切片, last_updated, created_at) + skip_props = {"分数", "id", "name", "切片", "last_updated", "created_at", "最后更新时间", "创建时间"} + for k, v in props.items(): + if k not in skip_props and v not in (None, ""): + output_lines.append(f" {k}: {v}") + + # 不再显示手册来源(knowledge_source),因为用户要求在 results 字段中不显示 + + output_lines.append("") # 节点间空行 + + # ========== 返回结果 ========== + if not output_lines: + return "图谱查询完成,但未返回有效数据。" + + return "\n".join(output_lines).rstrip() diff --git a/graph_search/route_label.py b/graph_search/route_label.py new file mode 100644 index 0000000..f07c494 --- /dev/null +++ b/graph_search/route_label.py @@ -0,0 +1,315 @@ +""" +=========================================== +路由标签识别模块 - RouteLabel +=========================================== +功能:使用LLM识别用户查询中涉及的节点类型和实体 + 作为后续Neo4j查询的入口节点 +=========================================== +""" + +import json +import logging +import os +import time +import asyncio +from typing import List, Dict, Any, Optional, Tuple +from pydantic import BaseModel, Field +from graph_search.init_prompts import get_extract_entities_prompt, get_rewrite_query_prompt + +logger = logging.getLogger(__name__) +#logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) # 不依赖继承链 + + +class RouteItem(BaseModel): + """路由项:节点类型和实体""" + label: str = Field(..., description="节点类型,比如'Drug'、'Disease'") + entity: str = Field(..., description="实体文本") + + +class RouteOutput(BaseModel): + """路由输出:包含多个路由项""" + outputs: List[RouteItem] + + +class RouteLabel: + """ + 路由标签识别类 + + 功能:使用LLM识别用户查询中涉及的节点类型和实体 + """ + + def __init__(self, llm_api, optional_labels: list[str], schema: str = None): + """ + 初始化路由识别器 + + Args: + llm_api: LLM API实例(OpenaiAPI) + optional_labels: 可选节点标签列表 + schema: Neo4j图谱schema信息(可选,用于帮助模型识别节点类型) + """ + self.llm_api = llm_api + self.optional_labels = optional_labels + self.schema = schema + + async def _extract_entities(self, query: str) -> List[Dict[str, str]]: + """ + 任务1:抽取主语实体 + + Args: + query: 用户查询 + + Returns: + List[Dict]: 路由结果列表,格式如 [{"label": "Drug", "entity": "xxx"}] + """ + # 使用 init_prompts 中的 prompt 生成函数 + prompt = get_extract_entities_prompt( + query=query, + optional_labels=self.optional_labels, + schema=self.schema + ) + + try: + llm_start = time.time() + model = os.getenv("OPENAI_MODEL") + response = await self.llm_api.open_api_chat_async_json(prompt, model, temperature=0) + llm_elapsed = (time.time() - llm_start) * 1000 + + # 解析JSON响应 + parse_start = time.time() + content = response.strip() + + # 如果包含markdown代码块,提取JSON + if "```json" in content: + json_start = content.find("```json") + 7 + json_end = content.find("```", json_start) + if json_end > json_start: + content = content[json_start:json_end].strip() + elif "```" in content: + json_start = content.find("```") + 3 + json_end = content.find("```", json_start) + if json_end > json_start: + content = content[json_start:json_end].strip() + + # 尝试找到JSON数组或对象的开始和结束位置 + if not content.startswith('[') and not content.startswith('{'): + for start_char in ['[', '{']: + start_idx = content.find(start_char) + if start_idx != -1: + content = content[start_idx:] + break + + # 解析JSON + try: + outputs_data = json.loads(content) + except json.JSONDecodeError as e: + logger.warning(f"任务1 JSON解析失败,尝试修复: {e}") + if content.rfind(']') > content.rfind('}'): + end_idx = content.rfind(']') + 1 + content = content[:end_idx] + elif content.rfind('}') > -1: + end_idx = content.rfind('}') + 1 + content = content[:end_idx] + try: + outputs_data = json.loads(content) + except json.JSONDecodeError: + logger.error(f"任务1 JSON解析最终失败,原始内容: {content[:200]}...") + return [] + + # 提取entities + if isinstance(outputs_data, dict) and "entities" in outputs_data: + route_results = [ + {"label": item.get("label", ""), "entity": item.get("entity", "")} + for item in outputs_data["entities"] + ] + elif isinstance(outputs_data, list): + # 兼容旧格式:直接是列表 + route_results = [ + {"label": item.get("label", ""), "entity": item.get("entity", "")} + for item in outputs_data + ] + elif isinstance(outputs_data, dict) and "outputs" in outputs_data: + # 兼容旧格式:包含 outputs 字段 + route_results = [ + {"label": item.get("label", ""), "entity": item.get("entity", "")} + for item in outputs_data["outputs"] + ] + else: + route_results = [] + + return route_results + + except Exception as e: + logger.error(f"任务1(实体抽取)失败: {e}") + return [] + + async def _rewrite_query(self, query: str) -> Dict[str, Any]: + """ + 任务2:重写用户问题并进行分类 + + Args: + query: 用户查询 + + Returns: + Dict: 包含重写后的查询和分类信息 + - rewritten_query: 重写后的查询字符串 + - query_classification: 分类信息字典 + - query_type: "aggregate"(统计类)或 "detail"(明细类) + - has_time: 是否包含时间信息(bool) + - time_type: 时间统计类型("single"/"dual"/"multi"/None) + """ + # 使用 init_prompts 中的 prompt 生成函数 + prompt = get_rewrite_query_prompt( + query=query, + schema=self.schema + ) + + + try: + llm_start = time.time() + model = os.getenv("OPENAI_MODEL") + response = await self.llm_api.open_api_chat_async_json(prompt, model, temperature=0) + + # 解析JSON响应 + content = response.strip() + + # 如果包含markdown代码块,提取JSON + if "```json" in content: + json_start = content.find("```json") + 7 + json_end = content.find("```", json_start) + if json_end > json_start: + content = content[json_start:json_end].strip() + elif "```" in content: + json_start = content.find("```") + 3 + json_end = content.find("```", json_start) + if json_end > json_start: + content = content[json_start:json_end].strip() + + # 尝试找到JSON数组或对象的开始和结束位置 + if not content.startswith('[') and not content.startswith('{'): + for start_char in ['[', '{']: + start_idx = content.find(start_char) + if start_idx != -1: + content = content[start_idx:] + break + + # 解析JSON + try: + outputs_data = json.loads(content) + except json.JSONDecodeError as e: + logger.warning(f"任务2 JSON解析失败,尝试修复: {e}") + if content.rfind(']') > content.rfind('}'): + end_idx = content.rfind(']') + 1 + content = content[:end_idx] + elif content.rfind('}') > -1: + end_idx = content.rfind('}') + 1 + content = content[:end_idx] + try: + outputs_data = json.loads(content) + except json.JSONDecodeError: + logger.error(f"任务2 JSON解析最终失败,原始内容: {content[:200]}...") + return query + + # 提取rewritten_query和分类信息 + if isinstance(outputs_data, dict) and "rewritten_query" in outputs_data: + rewritten_query = outputs_data.get("rewritten_query", query) + # 提取分类信息 + query_classification = outputs_data.get("query_classification", {}) + if not isinstance(query_classification, dict): + query_classification = {} + + # 确保分类信息格式正确 + result = { + "rewritten_query": rewritten_query, + "query_classification": { + "query_type": query_classification.get("query_type", "detail"), + "has_time": query_classification.get("has_time", False), + "time_type": query_classification.get("time_type") + } + } + else: + # 如果解析失败,返回默认值 + result = { + "rewritten_query": query, + "query_classification": { + "query_type": "detail", + "has_time": False, + "time_type": None + } + } + + return result + + except Exception as e: + logger.error(f"任务2(查询重写)失败: {e}") + # 返回默认值 + return { + "rewritten_query": query, + "query_classification": { + "query_type": "detail", + "has_time": False, + "time_type": None + } + } + + async def route(self, query: str) -> Tuple[List[Dict[str, str]], str, Dict[str, Any]]: + """ + 路由标签识别:识别标签,抽取实体 + + 功能:使用LLM识别用户查询中涉及的节点类型和实体。 + 将两个任务(实体抽取和查询重写)拆分为独立的异步调用,并行执行以提高效率。 + + Args: + query: 用户查询 + + Returns: + tuple: (路由结果列表, 重写后的查询, 分类信息) + 路由结果列表格式如 [{"label": "Drug", "entity": "xxx"}] + 重写后的查询字符串,如果未获取到则返回原始query + 分类信息字典,包含 query_type, has_time, time_type + """ + try: + # ========== 并行执行两个任务 ========== + total_start = time.time() + logger.info(f"[时间统计] RouteLabel: 开始并行执行两个任务(实体抽取 + 查询重写+分类)...") + + # 使用 asyncio.gather 并行执行两个任务 + route_results, rewrite_result = await asyncio.gather( + self._extract_entities(query), + self._rewrite_query(query) + ) + logger.info(route_results) + logger.info(111111111111111111111111111111111111111) + # 从重写结果中提取信息 + if isinstance(rewrite_result, dict): + rewritten_query = rewrite_result.get("rewritten_query", query) + query_classification = rewrite_result.get("query_classification", { + "query_type": "detail", + "has_time": False, + "time_type": None + }) + else: + # 兼容旧格式(如果返回的是字符串) + rewritten_query = rewrite_result if isinstance(rewrite_result, str) else query + query_classification = { + "query_type": "detail", + "has_time": False, + "time_type": None + } + + total_elapsed = (time.time() - total_start) * 1000 + logger.info(f"[时间统计] RouteLabel: 两个任务并行执行完成,总耗时: {total_elapsed:.2f}ms") + logger.info(f"最终结果 - 入口节点标签与实体: {route_results}") + logger.info(f"最终结果 - 原始查询: '{query}' -> 重写后查询: '{rewritten_query}'") + logger.info(f"最终结果 - 分类信息: {query_classification}") + + return route_results, rewritten_query, query_classification + + except Exception as e: + logger.error(f"路由标签识别失败: {e}") + return [], query, { + "query_type": "detail", + "has_time": False, + "time_type": None + } + diff --git a/graph_search/schema_sample.py b/graph_search/schema_sample.py new file mode 100644 index 0000000..0aec76b --- /dev/null +++ b/graph_search/schema_sample.py @@ -0,0 +1,224 @@ +SCHEMA_SAMPLE = """ +- **设备** + - `备注`: STRING Example: "目标解算" + - `是否为关重件`: STRING Available options: ['是', '否'] + - `是否为寿命件`: STRING Available options: ['否', '是', '1', '一'] + - `组成编码`: STRING Example: "0401" + - `名称`: STRING Example: "火控系统" + - `型号/零件号`: STRING Example: "FCS-MK99-MOD12" +- **维修项目** + - `名称`: STRING Example: "保养机座与机架组件" +- **舰艇** + - `舷号`: STRING Available options: ['163', '122'] + - `名称`: STRING Available options: ['JZ贱', '122舰'] +- **系统** + - `系统编码`: STRING Available options: ['06'] + - `名称`: STRING Available options: ['汽车配件', '设备手册', 'JZ贱-动力系统', 'JZ贱-导航系统', 'JZ贱-武器系统', '122舰-动力系统', '122舰-导航系统', '122舰-武器系统'] +- **操作项目** + - `名称`: STRING Example: "使用前检查和准备" +- **备品备件** + - `名称`: STRING Available options: ['06A0014的器材保障'] +- **子系统** + - `名称`: STRING Example: "汽车主配件" +- **故障模式** + - `维修方案`: STRING Example: "执行以下维修项目:MT004 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损" + - `故障现象`: STRING Example: "主机运行中振动异常增大" + - `故障原因`: STRING Example: "主轴承或连杆大端轴承磨损" + - `名称`: STRING Example: "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" +- **维修工作** + - `名称`: STRING Example: "船舶主发动机的维修工作" +- **安全警告** + - `名称`: STRING Available options: ['船舶主发动机的安全警告', 'None的安全警告', '设备手册的安全警告', '发动机的安全警告', '螺旋桨的安全警告', '雷达的安全警告', '声呐的安全警告', '06A0014的安全警告'] +- **基本情况** + - `名称`: STRING Example: "船舶主发动机的基本情况" +- **工作原理** + - `名称`: STRING Example: "船舶主发动机的工作原理" +- **组成** + - `名称`: STRING Example: "活塞与活塞杆组件的组成" +- **布置情况** + - `名称`: STRING Example: "船舶主发动机的布置情况" +- **维修安全防护及注意事项汇总表** + - `名称`: STRING Available options: ['船舶主发动机的维修安全防护及注意事项汇总表', 'None的维修安全防护及注意事项汇总表', '设备手册的维修安全防护及注意事项汇总表', '发动机的维修安全防护及注意事项汇总表', '雷达的维修安全防护及注意事项汇总表', '声呐的维修安全防护及注意事项汇总表'] +- **图册** + - `原理图`: STRING Available options: ['http://192.168.0.46:59085/files/163-06A0015-B01001'] + - `名称`: STRING Example: "船舶主发动机的原理图" + - `接线图`: STRING Available options: ['http://192.168.0.111:9085/files/发动机船舶接线图.pdf'] +- **维护保养** + - `名称`: STRING Example: "None的维护保养" +- **接口** + - `名称`: STRING Available options: ['船舶主发动机的接口', 'None的接口', '设备手册的接口', '发动机的接口', '雷达的接口', '声呐的接口', '06A0014的接口'] +- **器材保障** + - `名称`: STRING Available options: ['船舶主发动机的器材保障', 'None的器材保障', '设备手册的器材保障', '发动机的器材保障', '雷达的器材保障', '声呐的器材保障'] +- **功能** + - `名称`: STRING Example: "船舶主发动机的功能" +- **环境条件** + - `名称`: STRING Example: "船舶主发动机的环境条件" +- **技术指标参数** + - `名称`: STRING Available options: ['船舶主发动机的技术指标参数', 'None的技术指标参数', '设备手册的技术指标参数', '发动机的技术指标参数', '螺旋桨的技术指标参数', '雷达的技术指标参数', '声呐的技术指标参数'] +- **调试** + - `名称`: STRING Example: "None的调试" +- **接口情况** + - `名称`: STRING Available options: ['船舶主发动机的接口情况', 'None的接口情况', '设备手册的接口情况', '螺旋桨的接口情况', '雷达的接口情况'] +- **操作使用** + - `名称`: STRING Example: "船舶主发动机的操作使用" +- **使用期间安全防护及注意事项** + - `名称`: STRING Available options: ['船舶主发动机的使用期间安全防护及注意事项', 'None的使用期间安全防护及注意事项', '设备手册的使用期间安全防护及注意事项', '螺旋桨的使用期间安全防护及注意事项', '雷达的使用期间安全防护及注意事项'] +- **设计单位** + - `名称`: STRING Available options: ['设计单位一', '设计单位二', '设计单位三', '设计单位四', '设计单位五', '设计单位六'] +- **操作程序** + - `名称`: STRING Example: "船舶主发动机的操作程序" +- **技术参数** + - `名称`: STRING Example: "None的技术参数" +- **舰船** + - `名称`: STRING Available options: ['舰号'] +Relationship properties: +- **包含** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Example: "火控系统 包含 火控系统的组成" + - `fact_timeline: LIST` Min Size: 1, Max Size: 10 +- **使用** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Example: "船舶主发动机的操作使用 使用 船舶主发动机的操作程序" + - `fact_timeline: LIST` Min Size: 1, Max Size: 8 +- **具有** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Available options: ['船舶主发动机 具有 船舶主发动机的技术指标参数', '设备手册 具有 设备手册的技术指标参数', '发动机 具有 发动机的技术指标参数', '螺旋桨 具有 螺旋桨的技术指标参数', '雷达 具有 雷达的技术指标参数', '声呐 具有 声呐的技术指标参数', '06A0014 具有 06A0014的环境条件', '06A0014 具有 06A0014的安全警告', '06A0014 具有 06A0014的接口', '06A0014 具有 06A0014的功能'] + - `fact_timeline: LIST` Min Size: 1, Max Size: 10 +- **修理** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Example: "保养机座与机架组件 修理 活塞杆填料函磨损导致机座与机架组件润滑油消耗异常增加" + - `fact_timeline: LIST` Min Size: 6, Max Size: 10 +- **包含故障** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Example: "机座与机架组件维修工作指导 包含故障 调速系统响应异常导致机座与机架组件功率输出不稳定" + - `fact_timeline: LIST` Min Size: 6, Max Size: 10 +- **发生故障使用维修工作** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Example: "管束芯体 发生故障使用维修工作 管束芯体维修工作指导" + - `fact_timeline: LIST` Min Size: 6, Max Size: 10 +- **操作时使用** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Example: "船舶主发动机的操作程序 操作时使用 执行发动机燃油泄漏应急封堵操作" + - `fact_timeline: LIST` Min Size: 1, Max Size: 8 +- **配备** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Available options: ['船舶主发动机 配备 船舶主发动机的接口', '设备手册 配备 设备手册的接口', '发动机 配备 发动机的接口', '雷达 配备 雷达的接口', '声呐 配备 声呐的接口'] + - `fact_timeline: LIST` Min Size: 1, Max Size: 10 +- **安全警告** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Available options: ['船舶主发动机 安全警告 船舶主发动机的安全警告', '设备手册 安全警告 设备手册的安全警告', '发动机 安全警告 发动机的安全警告', '螺旋桨 安全警告 螺旋桨的安全警告', '雷达 安全警告 雷达的安全警告', '声呐 安全警告 声呐的安全警告'] + - `fact_timeline: LIST` Min Size: 1, Max Size: 10 +- **适用** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Example: "冷却系统 适用 冷却系统的环境条件" + - `fact_timeline: LIST` Min Size: 1, Max Size: 10 +- **包括** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Example: "冷却系统 包括 冷却系统的组成" + - `fact_timeline: LIST` Min Size: 1, Max Size: 10 +- **依赖** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Example: "冷却系统 依赖 冷却系统的维修工作" + - `fact_timeline: LIST` Min Size: 1, Max Size: 10 +- **实现** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Example: "冷却系统 实现 冷却系统的功能" + - `fact_timeline: LIST` Min Size: 1, Max Size: 10 +- **支持操作** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Example: "冷却系统 支持操作 冷却系统的操作使用" + - `fact_timeline: LIST` Min Size: 1, Max Size: 8 +- **维修** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Available options: ['船舶主发动机 维修 船舶主发动机的维修工作', '设备手册 维修 设备手册的维修工作', '发动机 维修 发动机的维修工作', '雷达 维修 雷达的维修工作', '声呐 维修 声呐的维修工作'] + - `fact_timeline: LIST` Min Size: 1, Max Size: 10 +- **配套** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Example: "船舶主发动机 配套 船舶主发动机的原理图" + - `fact_timeline: LIST` Min Size: 1, Max Size: 9 +- **调试** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Example: "冷却系统 调试 冷却系统的调试" + - `fact_timeline: LIST` Min Size: 1, Max Size: 2 +- **表征** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Example: "船舶主发动机的维修工作 表征 高压油管接头密封失效导致高压燃油管路附近有油渍" + - `fact_timeline: LIST` Min Size: 1, Max Size: 10 +- **设计** + - `update_count: INTEGER` Min: 1, Max: 1 + - `fact: STRING` Available options: ['06A0014 设计 设计单位一', '06A0014 设计 设计单位二', '06A0014 设计 设计单位三', '06A0014 设计 设计单位四'] + - `fact_timeline: LIST` Min Size: 1, Max Size: 1 +The relationships: +(:设备)-[:包含]->(:子系统) +(:设备)-[:包含]->(:组成) +(:设备)-[:包含]->(:操作员与设备之间操作员与其他设备或系统设备员之间关系) +(:设备)-[:包含]->(:维护保养) +(:设备)-[:包含]->(:安全保护措施及故障处理) +(:设备)-[:包含]->(:工作原理) +(:设备)-[:包含]->(:主要附件仪表的规格型号及性能参数) +(:设备)-[:包含]->(:布置情况) +(:设备)-[:包含]->(:技术参数) +(:设备)-[:包含]->(:结构特点) +(:设备)-[:包含]->(:使用期间安全防护及注意事项) +(:设备)-[:包含]->(:接口情况) +(:设备)-[:包含]->(:维修安全防护及注意事项汇总表) +(:设备)-[:发生故障使用维修工作]->(:维修工作) +(:设备)-[:调试]->(:调试) +(:设备)-[:适用]->(:环境条件) +(:设备)-[:包括]->(:组成) +(:设备)-[:依赖]->(:维修工作) +(:设备)-[:依赖]->(:器材保障) +(:设备)-[:实现]->(:功能) +(:设备)-[:实现]->(:基本情况) +(:设备)-[:支持操作]->(:操作使用) +(:设备)-[:维修]->(:维修工作) +(:设备)-[:配套]->(:图册) +(:设备)-[:具有]->(:技术指标参数) +(:设备)-[:配备]->(:接口) +(:设备)-[:安全警告]->(:安全警告) +(:设备)-[:设计]->(:设计单位) +(:维修项目)-[:修理]->(:故障模式) +(:舰艇)-[:包含]->(:系统) +(:舰艇)-[:隶属]->(:舰船) +(:系统)-[:包含]->(:子系统) +(:系统)-[:包含]->(:维修安全防护及注意事项汇总表) +(:系统)-[:包含]->(:主要附件仪表的规格型号及性能参数) +(:系统)-[:包含]->(:工作原理) +(:系统)-[:包含]->(:使用期间安全防护及注意事项) +(:系统)-[:包含]->(:结构特点) +(:系统)-[:包含]->(:接口情况) +(:系统)-[:包含]->(:安全保护措施及故障处理) +(:系统)-[:包含]->(:操作员与设备之间操作员与其他设备或系统设备员之间关系) +(:系统)-[:包含]->(:布置情况) +(:系统)-[:包含]->(:维护保养) +(:系统)-[:包含]->(:技术参数) +(:系统)-[:维修]->(:维修工作) +(:系统)-[:调试]->(:调试) +(:系统)-[:具有]->(:技术指标参数) +(:系统)-[:配备]->(:接口) +(:系统)-[:安全警告]->(:安全警告) +(:系统)-[:适用]->(:环境条件) +(:系统)-[:包括]->(:组成) +(:系统)-[:依赖]->(:器材保障) +(:系统)-[:依赖]->(:维修工作) +(:系统)-[:实现]->(:功能) +(:系统)-[:实现]->(:基本情况) +(:系统)-[:支持操作]->(:操作使用) +(:子系统)-[:包含]->(:设备) +(:子系统)-[:包含]->(:维修项目) +(:子系统)-[:包含]->(:调试) +(:子系统)-[:包含]->(:操作项目) +(:子系统)-[:配套]->(:图册) +(:子系统)-[:具有]->(:环境条件) +(:子系统)-[:具有]->(:安全警告) +(:子系统)-[:具有]->(:接口) +(:子系统)-[:具有]->(:功能) +(:子系统)-[:依赖]->(:备品备件) +(:子系统)-[:设计]->(:设计单位) +(:维修工作)-[:表征]->(:故障模式) +(:维修工作)-[:包含故障]->(:故障模式) +(:组成)-[:包含]->(:设备) +(:操作使用)-[:使用]->(:操作程序) +(:操作程序)-[:操作时使用]->(:操作项目) +(:舰船)-[:包含]->(:舰艇) +""" diff --git a/graphsearch.py b/graphsearch.py new file mode 100644 index 0000000..2f06273 --- /dev/null +++ b/graphsearch.py @@ -0,0 +1,1143 @@ +import os +import httpx +import json +import requests +import warnings +from typing import List, Set, Tuple, Dict, Optional +import ast +warnings.filterwarnings("ignore", category=UserWarning, module='jieba._compat') +import re +import jieba +import jieba.posseg as pseg # ← 新增:词性标注,用于提取名词/关键词 +from neo4j import GraphDatabase +from neo4j_graphrag.retrievers import HybridCypherRetriever +from neo4j_graphrag.embeddings.base import Embedder +from langchain_community.graphs.neo4j_graph import Neo4jGraph +from openai import OpenAI +from modelsAPI.model_api import OpenaiAPI + + +# ================== 1. 本地 bge-m3 嵌入模型 ================== +class LocalBgeM3Embeddings(Embedder): + def __init__(self, base_url: str, api_key: str, model_name: str = "bge-m3"): + self.base_url = base_url.rstrip("/") + self.api_key = api_key + self.model_name = model_name + + def embed_query(self, text: str) -> List[float]: + return self.embed_documents([text])[0] + + def embed_documents(self, texts: List[str]) -> List[List[float]]: + embedding_base_url = os.path.join(self.base_url, "embeddings") + with httpx.Client(timeout=60) as client: + response = client.post( + embedding_base_url, + json={"model": self.model_name, "input": texts}, + headers={"Authorization": f"Bearer {self.api_key}"}, + ) + embedding_list = [item["embedding"] for item in response.json()["data"]] + return embedding_list + + +# ================== 2. 基础配置 ================== +os.environ["LOCAL_EMBEDDING_BASE"] = "http://192.168.0.46:59700/v1" +os.environ["LOCAL_API_KEY"] = "none" + +URI = "bolt://192.168.0.46:57687" +AUTH = ("neo4j", "zdht123@") +NAME_PROPERTY = "名称" +FULLTEXT_PROPERTY = "fulltext" # ← 新增:fulltext 字段名 +EMBEDDING_PROPERTY = "embedding" +SEARCH_LABEL = "Searchable" +VECTOR_INDEX_NAME = "searchable_vector" # 向量索引(embedding 字段) +FULLTEXT_INDEX_NAME = "global_searchable_content_search" # 名称全文索引(名称 字段) +FULLTEXT_FIELD_INDEX_NAME = "searchable_fulltext" # fulltext 字段全文索引 +EXCLUDED_BUSINESS_LABELS: Set[str] = { + "Entity", "Chunk", "Document", "_Bloom_Perspective_", SEARCH_LABEL, +} +VECTOR_DIMENSION = 1024 +_JIEBA_POS_WHITELIST = {"n", "nr", "ns", "nt", "nz", "vn", "eng"} + + +# ================== 5. 检索结果解析辅助 ================== +def parse_record_string(s: str): + name_match = re.search(r"name='([^']*)'", s) + labels_match = re.search(r"labels=(\[[^\]]*\])", s) + score_match = re.search(r"score=([\d.]+)", s) + name = name_match.group(1) if name_match else "未知名称" + labels = ["未知标签"] + if labels_match: + try: + labels = ast.literal_eval(labels_match.group(1)) + except (ValueError, SyntaxError): + pass + score = float(score_match.group(1)) if score_match else 0.0 + return name, labels, score + + +def _build_retriever(driver, embedder) -> HybridCypherRetriever: + return HybridCypherRetriever( + driver=driver, + vector_index_name=VECTOR_INDEX_NAME, + fulltext_index_name=FULLTEXT_INDEX_NAME, + embedder=embedder, + retrieval_query=f""" + RETURN + node.`{NAME_PROPERTY}` AS name, + [lbl IN labels(node) WHERE lbl <> '{SEARCH_LABEL}'] AS labels, + score + """ + ) + + +# ================== 6. Schema 解析与 N 跳标签扩展 ================== +def parse_schema_relationships(schema_str: str) -> List[Tuple[str, str, str]]: + pattern = re.compile(r"\(:([^)]+)\)-\[:([^\]]+)\]->\(:([^)]+)\)") + return [ + (m.group(1).strip(), m.group(2).strip(), m.group(3).strip()) + for m in pattern.finditer(schema_str) + ] + + +def expand_labels_n_hops( + seed_labels: Set[str], + triples: List[Tuple[str, str, str]], + hops: int = 3, + include_reverse: bool = True, + skip_labels: Set[str] = None, +) -> Set[str]: + if skip_labels is None: + skip_labels = set() + adj: Dict[str, Set[str]] = {} + for src, _rel, tgt in triples: + if src in skip_labels or tgt in skip_labels: + continue + adj.setdefault(src, set()).add(tgt) + if include_reverse: + adj.setdefault(tgt, set()).add(src) + visited: Set[str] = set(seed_labels) + frontier: Set[str] = set(seed_labels) - skip_labels + for _ in range(hops): + next_frontier: Set[str] = set() + for node in frontier: + for nbr in adj.get(node, ()): + if nbr not in visited: + next_frontier.add(nbr) + if not next_frontier: + break + visited |= next_frontier + frontier = next_frontier + return visited + + +def build_compact_schema( + triples: List[Tuple[str, str, str]], + keep_labels: Set[str], +) -> str: + kept_triples = [ + (src, rel, tgt) for src, rel, tgt in triples + if src in keep_labels and tgt in keep_labels + ] + entities_in_use: Set[str] = set() + for src, _rel, tgt in kept_triples: + entities_in_use.add(src) + entities_in_use.add(tgt) + all_entities = sorted(keep_labels | entities_in_use) + entities_str = "[" + ", ".join(f'"{e}"' for e in all_entities) + "]" + unique_triples = sorted(set(kept_triples)) + rels_lines = [f"(:{src})-[:{rel}]->(:{tgt})" for src, rel, tgt in unique_triples] + return "\n".join([f"实体: {entities_str}", "", "关系:"] + rels_lines) + + +# ================== 7. Rerank 重排序 ================== +def rerank_query(query: str, documents: List[str], top_n: int = 3) -> List[dict]: + headers = { + "Content-Type": "application/json", + "Authorization": f'Bearer {os.getenv("OPENAI_API_KEY", "none")}', + } + data = { + "model": "bge-rerank", + "query": query, + "top_n": top_n, + "documents": documents, + } + response = requests.post( + "http://192.168.0.46:59600/v1/rerank", + headers=headers, + data=json.dumps(data), + ) + if response.status_code != 200: + raise Exception(f"Rerank Error {response.status_code}: {response.text}") + + result_json = response.json() + results_list = [] + for result in result_json["results"]: + results_list.append({ + "index": result["index"], + "text": result["document"]["text"], + "scores": result["relevance_score"], + }) + return results_list + + +def apply_rerank( + query: str, + search_results: List[Dict], + top_n: int = 5, + verbose: bool = True, +) -> List[Dict]: + """ + 用 rerank 对 search_results 重新排序,返回重排后的 search_results 子集。 + 来源字段(source)会被透传保留,方便追溯是哪一路检索命中的。 + """ + if not search_results: + return search_results + + # rerank 文档内容 = 名称,若有 fulltext 片段则拼接进去提升语义匹配质量 + documents = [ + (r.get("名称", "") + " " + r.get("fulltext_snippet", "")).strip() + for r in search_results + ] + + if verbose: + print(f"\n🔀 开始 Rerank(top_n={top_n})...") + + try: + reranked = rerank_query(query=query, documents=documents, top_n=top_n) + except Exception as e: + print(f"⚠️ Rerank 调用失败,跳过重排序,保持原顺序。原因: {e}") + return search_results[:top_n] + + reranked_results = [] + for item in reranked: + original = search_results[item["index"]] + reranked_results.append({ + "标签": original["标签"], + "名称": original["名称"], + "得分": item["scores"], + "向量得分": original["得分"], + "来源": original.get("来源", "hybrid"), # ← 保留来源标注 + "fulltext_snippet": original.get("fulltext_snippet", ""), + }) + + reranked_results.sort(key=lambda x: x["得分"], reverse=True) + + if verbose: + print(f"✅ Rerank 完成,保留 {len(reranked_results)} 条结果:") + for i, r in enumerate(reranked_results, 1): + print( + f" [{i:2d}] rerank={r['得分']:.4f} | " + f"向量={r['向量得分']:.4f} | " + f"来源={r['来源']:<12} | " + f"{r['名称']} 标签={r['标签']}" + ) + + return reranked_results + + +# ================== 8-NEW. jieba 关键词提取 ================== + +def extract_keywords_jieba( + text: str, + pos_whitelist: Set[str] = _JIEBA_POS_WHITELIST, + min_len: int = 2, + max_keywords: int = 8, +) -> List[str]: + """ + 用 jieba 词性标注提取名词/关键词,去除停用词和过短词条。 + + 返回:去重后的关键词列表(保持出现顺序)。 + """ + words_pos = pseg.cut(text) + seen: Set[str] = set() + keywords: List[str] = [] + for word, flag in words_pos: + w = word.strip() + # 词性白名单过滤 + 长度过滤 + 去重 + if ( + len(w) >= min_len + and any(flag.startswith(p) for p in pos_whitelist) + and w not in seen + ): + seen.add(w) + keywords.append(w) + if len(keywords) >= max_keywords: + break + + if not keywords: + # 兜底:直接分词,取长度 >= min_len 的词 + keywords = list(dict.fromkeys( + w for w in jieba.cut(text) if len(w.strip()) >= min_len + ))[:max_keywords] + + return keywords + + +# ================== 8-NEW. fulltext 字段关键词检索 ================== + +def search_fulltext_field( + query: str, + driver, + top_k: int = 10, + min_keyword_len: int = 2, + max_keywords: int = 8, + score_threshold: float = 0.0, + verbose: bool = True, +) -> List[Dict]: + """ + 对节点的 `fulltext` 属性字段做关键词全文检索。 + + 流程: + 1. jieba 分词 → 提取名词/关键词 + 2. 拼接成 Lucene 查询式(空格分隔 = OR,可按需改成 AND) + 3. 调用 Neo4j 全文索引 FULLTEXT_FIELD_INDEX_NAME + 4. 返回与 search_results 格式一致的列表,附加 来源='fulltext' 标注 + + Returns: + List[Dict],每项含: 标签、名称、得分、来源、fulltext_snippet + """ + keywords = extract_keywords_jieba( + query, + pos_whitelist=_JIEBA_POS_WHITELIST, + min_len=min_keyword_len, + max_keywords=max_keywords, + ) + + if not keywords: + if verbose: + print("⚠️ jieba 未提取到有效关键词,跳过 fulltext 字段检索。") + return [] + + # Lucene 查询:各关键词 OR 连接;若需要更精确可改为 " AND ".join(...) + lucene_query = " OR ".join(keywords) + + if verbose: + print(f"\n🔑 jieba 提取关键词: {keywords}") + print(f"📄 Lucene 查询式: {lucene_query}") + print(f"🔍 正在对 fulltext 字段做全文检索...") + + cypher = f""" + CALL db.index.fulltext.queryNodes( + '{FULLTEXT_FIELD_INDEX_NAME}', + $lucene_query + ) + YIELD node, score + WHERE score > $score_threshold + RETURN + node.`{NAME_PROPERTY}` AS name, + [lbl IN labels(node) + WHERE lbl <> '{SEARCH_LABEL}'] AS labels, + score, + left(node.`{FULLTEXT_PROPERTY}`, 200) AS snippet -- 截取前 200 字符作为片段 + ORDER BY score DESC + LIMIT $top_k + """ + + results: List[Dict] = [] + try: + with driver.session() as session: + rows = list(session.run( + cypher, + lucene_query=lucene_query, + score_threshold=score_threshold, + top_k=top_k, + )) + for row in rows: + results.append({ + "标签": row["labels"] or ["未知标签"], + "名称": row["name"] or "未知名称", + "得分": row["score"], + "来源": "fulltext", # ← 标注来源 + "fulltext_snippet": row["snippet"] or "", + }) + + if verbose: + print(f"✅ fulltext 字段检索完成,命中 {len(results)} 条:") + for i, r in enumerate(results, 1): + print( + f" [{i:2d}] score={r['得分']:.4f} | " + f"{r['名称']} 标签={r['标签']}" + ) + except Exception as e: + print(f"⚠️ fulltext 字段检索出错(可能索引尚未就绪): {e}") + + return results + + +# ================== 8. 检索(原有 hybrid + 新增 fulltext 合并) ================== + +def _merge_search_results( + hybrid_results: List[Dict], + fulltext_results: List[Dict], + verbose: bool = True, +) -> List[Dict]: + """ + 合并两路检索结果: + - hybrid_results 来源标注为 'hybrid' + - fulltext_results 来源已标注为 'fulltext' + 去重策略:以「名称」为 key,保留得分更高的那条;来源冲突时记为 'hybrid+fulltext'。 + """ + merged: Dict[str, Dict] = {} + + for r in hybrid_results: + r.setdefault("来源", "hybrid") + r.setdefault("fulltext_snippet", "") + key = r["名称"] + if key not in merged or r["得分"] > merged[key]["得分"]: + merged[key] = r + + for r in fulltext_results: + key = r["名称"] + if key not in merged: + merged[key] = r + else: + existing = merged[key] + # 同一节点被两路命中:保留最高分,来源合并 + if r["得分"] > existing["得分"]: + existing["得分"] = r["得分"] + if existing["来源"] != r["来源"]: + existing["来源"] = "hybrid+fulltext" + # 补充 fulltext_snippet(hybrid 路通常没有此字段) + if not existing.get("fulltext_snippet") and r.get("fulltext_snippet"): + existing["fulltext_snippet"] = r["fulltext_snippet"] + + result_list = list(merged.values()) + result_list.sort(key=lambda x: x["得分"], reverse=True) + + if verbose: + hybrid_cnt = sum(1 for r in result_list if r["来源"] == "hybrid") + fulltext_cnt = sum(1 for r in result_list if r["来源"] == "fulltext") + both_cnt = sum(1 for r in result_list if r["来源"] == "hybrid+fulltext") + print( + f"\n🔀 合并结果: 共 {len(result_list)} 条 " + f"(hybrid={hybrid_cnt}, fulltext={fulltext_cnt}, 两路命中={both_cnt})" + ) + + return result_list + + +def search( + sentence: str, + driver, + embedder, + top_k: int = 10, + hops: int = 3, + include_reverse: bool = True, + fulltext_top_k: int = 10, # ← 新增参数:fulltext 检索条数 + fulltext_score_threshold: float = 0.0, # ← 新增参数:fulltext 分数阈值 + verbose: bool = True, +) -> Dict: + if verbose: + print(f"\n🔍 正在对整句话进行混合检索:「{sentence}」\n") + + # ── 原有 hybrid 检索 ───────────────────────────────────────────────────── + retriever = _build_retriever(driver, embedder) + hybrid_results: List[Dict] = [] + try: + results = retriever.search(query_text=sentence, top_k=top_k) + for item in results.items: + item_content = item.content + name = "未知名称"; labels = ["未知标签"]; score = 0.0 + if hasattr(item_content, "keys"): + if "name" in item_content.keys(): name = item_content["name"] + if "labels" in item_content.keys(): labels = item_content["labels"] + if "score" in item_content.keys(): score = item_content["score"] + elif isinstance(item_content, str): + if item_content.startswith(" 维修工作 -> 故障模式 -> 维修项目)。 +3. **最高分实体绑定原则(核心规则)**:在编写 `WHERE` 过滤条件时,必须严格遵循"最高分优先"原则。请仔细分析 `search_results`,**依次为路径中的每一个节点(如设备、维修工作、故障模式、维修项目等)匹配并绑定其对应的得分(Score)最高的实体名称**。从而构建出一条全链路得分最高的精准查询路径。 +4. **无冗余查询**:只返回与用户问题直接相关的节点属性,不要包含无关的查询或返回字段。 +5. 检索的相关实体关系是根据用户问题进行语义匹配,从而获取到的实体关系(标签表示实体类型,名称表示实体名称,得分表示该实体与问题的相关性),来源于图数据库真实保存,不能包含任何假设或推理。提供给你参考的实体类型和实体关系则主要是为了帮助你理解用户问题的语义,根据检索的实体关系构建Cypher查询语句,而不是为了直接查询数据库。 +6. 根据给你的实体关系,仔细分析用户的问题,撰写一条精准的Cypher查询语句,语句中不要出现任何假设或推理,只能根据提供给你的实体关系进行查询。 +#用户问题如下: +{query} +#实体类型和实体关系如下: +{filtered_schema} +#根据用户问题,从数据库中检索的相关实体如下: +{search_results} + +示例1: +用户问题:连杆大端轴承发生损坏异常该如何解决? +实体类型和实体关系如下: +实体: ["主要附件仪表的规格型号及性能参数", "使用期间安全防护及注意事项", "功能", "器材保障", "图册", "基本情况", "备品备件", "子系统", "安全保护措施及故障处理", "安全警告", "工作原理", "布置情况", "技术参数", "技术指标参数", "接口", "接口情况", "操作使用", "操作员与设备之间操作员与其他设备或系统设备员之间关系", "操作程序", "操作项目", "故障模式", "环境条件", "系统", "组成", "结构特点", "维修安全防护及注意事项汇总表", "维修工作", "维修项目", "维护保养", "舰船", "舰艇", "设备", "设计单位", "调试"] +关系: +(:组成)-[:包含]->(:设备) +(:维修工作)-[:包含故障]->(:故障模式) +(:维修工作)-[:表征]->(:故障模式) +(:维修项目)-[:修理]->(:故障模式) +(:设备)-[:包含]->(:工作原理) +(:设备)-[:包含]->(:布置情况) +(:设备)-[:包含]->(:技术参数) +(:设备)-[:包含]->(:接口情况) +(:设备)-[:包含]->(:操作员与设备之间操作员与其他设备或系统设备员之间关系) +(:设备)-[:包含]->(:组成) +(:设备)-[:包含]->(:结构特点) +(:设备)-[:包含]->(:维修安全防护及注意事项汇总表) +(:设备)-[:包含]->(:维护保养) +(:设备)-[:包括]->(:组成) +(:设备)-[:发生故障使用维修工作]->(:维修工作) +(:设备)-[:安全警告]->(:安全警告) +(:设备)-[:实现]->(:功能) +(:设备)-[:实现]->(:基本情况) +(:设备)-[:支持操作]->(:操作使用) +(:设备)-[:维修]->(:维修工作) +(:设备)-[:设计]->(:设计单位) +(:设备)-[:调试]->(:调试) +(:设备)-[:适用]->(:环境条件) +(:设备)-[:配备]->(:接口) +(:设备)-[:配套]->(:图册) +#根据用户问题,从数据库中找到的相关实体如下: +{{'标签': ['维修项目'], '名称': '修复连杆大端轴承异常磨损', '得分': 1.0}} +{{'标签': ['维修项目'], '名称': '更换连杆大端轴承', '得分': 0.9839502279586991}} +{{'标签': ['维修工作'], '名称': '连杆大端轴承维修工作指导', '得分': 0.9601912347183726}} +{{'标签': ['设备'], '名称': '连杆大端轴承', '得分': 0.9378418041605234}} +{{'标签': ['维修项目'], '名称': '更换连杆小段轴承', '得分': 0.9370194814204257}} +{{'标签': ['设备'], '名称': '连杆小端轴承', '得分': 0.9056004631162252}} +{{'标签': ['故障模式'], '名称': '主轴承或连杆大端轴承磨损导致主机运行中振动异常增大', '得分': 0.890951410907792}} +{{'标签': ['故障模式'], '名称': '主轴承或连杆大端轴承磨损导致机座与机架组件运行中振动异常增大', '得分': 0.8895577902640475}} +{{'标签': ['设备'], '名称': '连杆小段轴承', '得分': 0.8785823193324869}} +{{'标签': ['维修工作'], '名称': '传动轴的维修工作', '得分': 0.8768441389219146}} +输出为: +MATCH (d:设备)-[:发生故障使用维修工作]->(w:维修工作)-[:包含故障]->(f:故障模式)<-[:修理]-(p:维修项目) +WHERE d.名称 = '连杆大端轴承' + AND w.名称 = '连杆大端轴承维修工作指导' + AND f.名称 = '主轴承或连杆大端轴承磨损导致主机运行中振动异常增大' + AND p.名称 = '修复连杆大端轴承异常磨损' +RETURN w.名称 AS 维修工作名称, f.名称 AS 故障模式, p.名称 AS 维修项目名称 + +请根据上述规则、Schema定义以及检索到的相关实体,为用户问题"{query}"编写Cypher查询语句。 +输出为: +""" + + +def build_cypher_prompt(query: str, filtered_schema: str, search_results: list) -> str: + return CYPHER_PROMPT.format( + query=query, + filtered_schema=filtered_schema, + search_results=search_results, + ) + + +# ================== 10. LLM 调用 ================== +def call_llm(prompt: str, model: str = "Qwen3.5-35B-A3B") -> str: + response = OpenAI( + api_key="none", + base_url="http://192.168.0.46:59800/v1", + ).chat.completions.create( + model=model, + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": prompt}, + ], + temperature=0.1, + stream=False, + extra_body={"chat_template_kwargs": {"enable_thinking": False}}, + ) + return response.choices[0].message.content + + +def extract_cypher(llm_output: str) -> str: + match = re.search(r"(MATCH[\s\S]+?RETURN[^\n]+(?:\n[^\n]+)*)", llm_output) + return match.group(1).strip() if match else llm_output.strip() + + +# ================== 11. Cypher 诊断基础工具 ================== + +def _run_query(session, cypher: str, **params) -> list: + try: + return list(session.run(cypher, **params)) + except Exception: + return [] + + +def _parse_alias_label(cypher: str) -> Dict[str, str]: + return { + alias: label.strip() + for alias, label in re.findall(r"\((\w+):([^\)]+)\)", cypher) + } + + +def _parse_alias_name(cypher: str) -> Dict[str, str]: + return { + alias: name + for alias, name in re.findall(r"(\w+)\.`?名称`?\s*=\s*'([^']+)'", cypher) + } + + +def _parse_segments(cypher: str) -> List[Tuple[str, str, str, str, str]]: + return [ + (sa.strip(), sl.strip(), r.strip(), ta.strip(), tl.strip()) + for sa, sl, r, ta, tl in re.findall( + r"\((\w+):([^\)]+)\)-\[:([^\]]+)\]->\((\w+):([^\)]+)\)", cypher + ) + ] + + +def _candidates_for_label(search_results: list, label: str) -> list: + return sorted( + [r for r in search_results if label in r.get("标签", [])], + key=lambda x: x.get("得分", 0), + reverse=True, + ) + + +def _test_segment( + session, + src_label: str, src_name: Optional[str], + rel: str, + tgt_label: str, tgt_name: Optional[str], +) -> int: + wheres = [] + if src_name: wheres.append("a.`名称` = $src") + if tgt_name: wheres.append("b.`名称` = $tgt") + where_clause = ("WHERE " + " AND ".join(wheres)) if wheres else "" + q = f"MATCH (a:{src_label})-[:{rel}]->(b:{tgt_label}) {where_clause} RETURN count(*) AS c" + rows = _run_query(session, q, src=src_name, tgt=tgt_name) + return rows[0]["c"] if rows else 0 + + +def _find_verified_replacement( + session, + src_label: str, src_name: Optional[str], + rel: str, + tgt_label: str, + candidates: list, + verbose: bool, +) -> Optional[str]: + for i, cand in enumerate(candidates): + cand_name = cand.get("名称", "") + if not cand_name: + continue + cnt = _test_segment(session, src_label, src_name, rel, tgt_label, cand_name) + icon = "✅" if cnt > 0 else " " + if verbose: + print(f" [{i+1}] {icon} '{cand_name}' (得分={cand.get('得分',0):.4f}) → 匹配:{cnt}") + if cnt > 0: + return cand_name + return None + + +# ================== 11b. 关系回退 + 最短路径工具 ================== + +def _relations_between_labels( + triples: List[Tuple[str, str, str]], + src_label: str, + tgt_label: str, +) -> List[str]: + return [ + rel for s, rel, t in triples + if s == src_label and t == tgt_label + ] + + +def _test_segment_with_rel( + session, + src_label: str, src_name: Optional[str], + rel: str, + tgt_label: str, tgt_name: Optional[str], +) -> int: + wheres = [] + if src_name: wheres.append("a.`名称` = $src") + if tgt_name: wheres.append("b.`名称` = $tgt") + where_clause = ("WHERE " + " AND ".join(wheres)) if wheres else "" + q = ( + f"MATCH (a:{src_label})-[:{rel}]->(b:{tgt_label}) " + f"{where_clause} RETURN count(*) AS c" + ) + rows = _run_query(session, q, src=src_name, tgt=tgt_name) + return rows[0]["c"] if rows else 0 + + +def _find_shortest_path( + session, + src_label: str, src_name: str, + tgt_label: str, tgt_name: str, + max_hops: int = 4, + verbose: bool = True, +) -> Optional[List[dict]]: + if tgt_name: + q = f""" + MATCH p = allShortestPaths( + (a:{src_label})-[*1..{max_hops}]->(b:{tgt_label}) + ) + WHERE a.`名称` = $src AND b.`名称` = $tgt + RETURN + [r IN relationships(p) | type(r)] AS rels, + [n IN nodes(p) | labels(n)[0]] AS node_labels, + [n IN nodes(p) | n.`名称`] AS node_names + LIMIT 1 + """ + rows = _run_query(session, q, src=src_name, tgt=tgt_name) + else: + q = f""" + MATCH p = allShortestPaths( + (a:{src_label})-[*1..{max_hops}]->(b:{tgt_label}) + ) + WHERE a.`名称` = $src + RETURN + [r IN relationships(p) | type(r)] AS rels, + [n IN nodes(p) | labels(n)[0]] AS node_labels, + [n IN nodes(p) | n.`名称`] AS node_names + LIMIT 1 + """ + rows = _run_query(session, q, src=src_name) + + if not rows: + if verbose: + print(f" ⚠️ allShortestPaths: 未找到路径 " + f"({src_label}:'{src_name}') → ({tgt_label}:'{tgt_name}')") + return None + + row = rows[0] + rels, labels_, names = row["rels"], row["node_labels"], row["node_names"] + if verbose: + path_str = " → ".join( + f"[:{r}]→({labels_[i+1]}:'{names[i+1]}')" + for i, r in enumerate(rels) + ) + print(f" ✅ 最短路径: ({src_label}:'{src_name}') → {path_str}") + + return [ + {"rel": rel, "tgt_label": labels_[i + 1], "tgt_name": names[i + 1]} + for i, rel in enumerate(rels) + ] + + +def _rebuild_cypher_from_path( + src_alias: str, + src_label: str, + src_name: str, + steps: List[dict], + return_clause: str, +) -> str: + aliases = [src_alias] + [f"n{i+1}" for i in range(len(steps))] + labels_ = [src_label] + [s["tgt_label"] for s in steps] + names = [src_name] + [s["tgt_name"] for s in steps] + rels = [s["rel"] for s in steps] + + path_parts = [f"({aliases[0]}:{labels_[0]})"] + for i, rel in enumerate(rels): + path_parts.append(f"-[:{rel}]->({aliases[i+1]}:{labels_[i+1]})") + match_clause = "MATCH " + "".join(path_parts) + + where_parts = [ + f"{alias}.`名称` = '{name}'" + for alias, name in zip(aliases, names) + if name + ] + where_clause = "WHERE " + "\n AND ".join(where_parts) if where_parts else "" + + return f"{match_clause}\n{where_clause}\nRETURN {return_clause}" + + +def strip_unverified_name_conditions(cypher: str, search_results: list) -> str: + valid_names = {r["名称"] for r in search_results} + pattern = re.compile(r"(\w+)\.`?名称`?\s*=\s*'([^']+)'") + + def remove_condition(cypher_str: str, alias: str, name: str) -> str: + patterns_to_try = [ + re.compile( + r"\s*AND\s+" + re.escape(alias) + r"\.`?名称`?\s*=\s*'" + re.escape(name) + r"'", + re.IGNORECASE, + ), + re.compile( + re.escape(alias) + r"\.`?名称`?\s*=\s*'" + re.escape(name) + r"'\s*AND\s*", + re.IGNORECASE, + ), + re.compile( + r"WHERE\s+" + re.escape(alias) + r"\.`?名称`?\s*=\s*'" + re.escape(name) + r"'", + re.IGNORECASE, + ), + ] + for p in patterns_to_try: + new_str = p.sub("", cypher_str) + if new_str != cypher_str: + new_str = re.sub(r"WHERE\s*(RETURN|$)", r"\1", new_str, flags=re.IGNORECASE) + return new_str.strip() + return cypher_str + + stripped = cypher + for match in pattern.finditer(cypher): + alias, name = match.group(1), match.group(2) + if name not in valid_names: + print(f"⚠️ 名称 '{name}' 不在检索结果中,移除条件: {alias}.名称 = '{name}'") + stripped = remove_condition(stripped, alias, name) + + return stripped + + +# ================== 12. 端到端链路诊断与修复 ================== + +def diagnose_and_fix_cypher( + cypher: str, + driver, + search_results: list, + schema_triples: List[Tuple[str, str, str]] = None, + verbose: bool = True, +) -> dict: + alias_label = _parse_alias_label(cypher) + alias_name = _parse_alias_name(cypher) + segments = _parse_segments(cypher) + current_names = dict(alias_name) + + return_match = re.search(r"RETURN\s+(.+)$", cypher, re.IGNORECASE | re.DOTALL) + return_clause = return_match.group(1).strip() if return_match else "*" + + if verbose: + print("\n" + "=" * 60) + print("🩺 端到端链路诊断(Pass A: 换名 / Pass B: 换关系 / Pass C: 最短路径)") + print("=" * 60) + print(f"📝 原始 Cypher:\n{cypher}\n") + print(f"🗂️ 初始名称绑定: {current_names}\n") + + with driver.session() as session: + + if _run_query(session, cypher): + if verbose: + print("✅ 完整查询有结果,无需修复。") + return { + "status": "ok", "chain_verified": True, + "diagnosis": "查询正常,有结果返回。", + "broken_segments": [], "fixed_cypher": None, + "final_names": current_names, + } + if verbose: + print("⚠️ 完整查询结果为空,开始逐段诊断...\n") + + broken_segments: list = [] + segment_reports: list = [] + + for seg_idx, (src_alias, src_label, rel, tgt_alias, tgt_label) in enumerate(segments): + src_name = current_names.get(src_alias) + tgt_name = current_names.get(tgt_alias) + + seg_desc = ( + f"段[{seg_idx+1}] " + f"({src_alias}:{src_label} '{src_name}')" + f" -[:{rel}]-> " + f"({tgt_alias}:{tgt_label} '{tgt_name}')" + ) + if verbose: + print(f" 验证 {seg_desc}") + + cnt = _test_segment(session, src_label, src_name, rel, tgt_label, tgt_name) + + if cnt > 0: + if verbose: + print(f" ✅ 通过 (匹配数: {cnt})\n") + segment_reports.append(f"✅ {seg_desc}") + continue + + # Pass A + if verbose: + print(f" ❌ 断链!Pass A: 尝试替换节点名称,保持关系 [:{rel}] 不变...") + cands = _candidates_for_label(search_results, tgt_label) + verified = _find_verified_replacement( + session, src_label, src_name, rel, tgt_label, cands, verbose + ) + if verified: + if verbose: + print(f" ✅ Pass A 修复: '{tgt_name}' → '{verified}'\n") + current_names[tgt_alias] = verified + segment_reports.append( + f"🔧 {seg_desc}\n → Pass A: 节点名 '{tgt_name}' 替换为 '{verified}'" + ) + broken_segments.append({ + "seg_idx": seg_idx + 1, "pass": "A", + "tgt_alias": tgt_alias, "tgt_label": tgt_label, + "original": tgt_name, "fixed": verified, + }) + continue + + # Pass B + if verbose: + print(f" ❌ Pass A 失败。Pass B: 遍历 schema 中 {src_label}→{tgt_label} 的所有关系...") + alt_rels = ( + _relations_between_labels(schema_triples, src_label, tgt_label) + if schema_triples else [] + ) + alt_rels = [r for r in alt_rels if r != rel] + + fixed_rel = None + fixed_tgt = tgt_name + + for alt_rel in alt_rels: + cnt2 = _test_segment_with_rel( + session, src_label, src_name, alt_rel, tgt_label, tgt_name + ) + if verbose: + icon = "✅" if cnt2 > 0 else " " + print(f" {icon} rel='{alt_rel}', tgt='{tgt_name}' → 匹配:{cnt2}") + if cnt2 > 0: + fixed_rel = alt_rel + break + + for cand in cands: + cname = cand.get("名称", "") + if not cname or cname == tgt_name: + continue + cnt3 = _test_segment_with_rel( + session, src_label, src_name, alt_rel, tgt_label, cname + ) + if verbose: + icon = "✅" if cnt3 > 0 else " " + print(f" {icon} rel='{alt_rel}', tgt='{cname}' → 匹配:{cnt3}") + if cnt3 > 0: + fixed_rel = alt_rel + fixed_tgt = cname + break + if fixed_rel: + break + + if fixed_rel: + cypher = cypher.replace(f"[:{rel}]", f"[:{fixed_rel}]", 1) + segments[seg_idx] = (src_alias, src_label, fixed_rel, tgt_alias, tgt_label) + if fixed_tgt != tgt_name: + current_names[tgt_alias] = fixed_tgt + if verbose: + print( + f" ✅ Pass B 修复: " + f"rel '[:{rel}]' → '[:{fixed_rel}]'" + + (f", 节点名 '{tgt_name}' → '{fixed_tgt}'" if fixed_tgt != tgt_name else "") + + "\n" + ) + segment_reports.append( + f"🔧 {seg_desc}\n" + f" → Pass B: rel '[:{rel}]'→'[:{fixed_rel}]'" + + (f", 节点名 '{tgt_name}'→'[:{fixed_tgt}]'" if fixed_tgt != tgt_name else "") + ) + broken_segments.append({ + "seg_idx": seg_idx + 1, "pass": "B", + "original_rel": rel, "fixed_rel": fixed_rel, + "tgt_alias": tgt_alias, + "original": tgt_name, "fixed": fixed_tgt, + }) + continue + + # Pass C + if verbose: + print(f" ❌ Pass B 失败。Pass C: allShortestPaths 探测真实路径...") + + first_alias = segments[0][0] + first_label = alias_label.get(first_alias, segments[0][1]) + first_name = current_names.get(first_alias, "") + + sp_steps = None + if first_name: + sp_steps = _find_shortest_path( + session, + src_label=first_label, src_name=first_name, + tgt_label=tgt_label, tgt_name=tgt_name or "", + max_hops=4, verbose=verbose, + ) + + if sp_steps: + new_cypher = _rebuild_cypher_from_path( + src_alias=first_alias, + src_label=first_label, + src_name=first_name, + steps=sp_steps, + return_clause=return_clause, + ) + if verbose: + print(f" ✅ Pass C 重建 Cypher:\n{new_cypher}\n") + if _run_query(session, new_cypher): + if verbose: + print("=" * 60) + print("✅ Pass C 链路修复成功(最短路径)") + print(f"\n💡 修正后的 Cypher:\n{new_cypher}") + print("=" * 60) + return { + "status": "fixed_by_shortest_path", + "chain_verified": True, + "diagnosis": "\n".join(segment_reports) + "\n✅ Pass C: 最短路径修复", + "broken_segments": broken_segments, + "fixed_cypher": new_cypher, + "final_names": current_names, + } + + if verbose: + print(f" ❌ Pass C 失败,三种策略均无法修复此段。\n") + segment_reports.append(f"❌ {seg_desc}\n → Pass A/B/C 均失败") + broken_segments.append({ + "seg_idx": seg_idx + 1, "pass": "failed", + "tgt_alias": tgt_alias, "tgt_label": tgt_label, + "original": tgt_name, "fixed": None, + }) + + fixed_cypher = cypher + for alias, original in alias_name.items(): + new = current_names.get(alias) + if new and new != original: + fixed_cypher = fixed_cypher.replace(f"'{original}'", f"'{new}'") + + chain_ok = bool(_run_query(session, fixed_cypher)) + + if verbose: + print("=" * 60) + print("📋 逐段诊断报告:") + for line in segment_reports: + print(f" {line}") + print(f"\n🗂️ 最终名称绑定: {current_names}") + status = "✅ 链路修复成功" if chain_ok else "⚠️ 仍有断链段(建议扩大 top_k 或检查数据)" + print(f"\n{status}") + print(f"\n💡 修正后的 Cypher:\n{fixed_cypher}") + print("=" * 60) + + return { + "status": "fixed" if chain_ok else "partial", + "chain_verified": chain_ok, + "diagnosis": "\n".join(segment_reports), + "broken_segments": broken_segments, + "fixed_cypher": fixed_cypher, + "final_names": current_names, + } + + +# ================== 13. 主程序 ================== +if __name__ == "__main__": + driver = GraphDatabase.driver(URI, auth=AUTH) + embedder = LocalBgeM3Embeddings( + base_url=os.getenv("LOCAL_EMBEDDING_BASE"), + api_key=os.getenv("LOCAL_API_KEY"), + ) + query = "发动机中喷油器工作不一致导致机座与机架组件功率输出不稳定如何解决" + + try: + # ── 阶段二:三路混合检索(hybrid + fulltext 字段,rerank 前候选池) ── + search_result = search( + sentence=query, + driver=driver, + embedder=OpenaiAPI.batch_embeddings, + top_k=40, # hybrid 检索条数 + hops=3, + include_reverse=True, + fulltext_top_k=15, # ← fulltext 字段检索条数 + fulltext_score_threshold=0.0, + verbose=True, + ) + search_results = search_result["search_results"] + filtered_schema = search_result["filtered_schema"] + triples = search_result["triples"] + + print("\n检索到的实体(rerank 前,已合并两路):") + for r in search_results: + src = r.get("来源", "?") + print(f" [{src:<16}] {r['名称']} 得分={r['得分']:.4f} 标签={r['标签']}") + + # ── 阶段三:Rerank 重排序(统一对合并结果排序)──────────────────────── + # # search_results = apply_rerank( + # # query=query, + # # search_results=search_results, + # # top_n=15, + # # verbose=True, + # # ) + + # # print("\n检索到的实体(rerank 后):") + # # for r in search_results: + # # print(r) + # print("\n精简 Schema:\n", filtered_schema) + + # ── 阶段四:LLM 生成 Cypher ─────────────────────────────────────── + prompt = build_cypher_prompt(query, filtered_schema, search_results) + print(prompt) + print("=" * 60) + llm_output = call_llm(prompt) + cypher = extract_cypher(llm_output) + cypher = strip_unverified_name_conditions(cypher, search_results) + + print("\n" + "=" * 60) + print("🤖 LLM 生成的 Cypher:") + print("=" * 60) + print(cypher) + + # ── 阶段五:端到端链路诊断与修复 ───────────────────────────────── + diag = diagnose_and_fix_cypher( + cypher=cypher, + driver=driver, + search_results=search_results, + schema_triples=triples, + verbose=True, + ) + + # ── 阶段六:执行最终 Cypher 并输出结果 ─────────────────────────── + final_cypher = diag["fixed_cypher"] if diag["fixed_cypher"] else cypher + print("\n" + "=" * 60) + print("🚀 执行最终 Cypher:") + print("=" * 60) + print(final_cypher) + + with driver.session() as session: + final_results = list(session.run(final_cypher)) + print(f"\n📊 查询结果 ({len(final_results)} 条):") + for row in final_results: + print(dict(row)) + + finally: + driver.close() diff --git a/huizong_node_rela.json b/huizong_node_rela.json new file mode 100644 index 0000000..572ecec --- /dev/null +++ b/huizong_node_rela.json @@ -0,0 +1,1460 @@ +{ + "entities": [ + { + "type": "故障模式", + "properties": { + "名称": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大", + "故障现象": "主机运行中振动异常增大", + "故障原因": "主轴承或连杆大端轴承磨损", + "维修方案": "执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "曲轴主轴颈跳动超差导致主机运行中振动异常增大", + "故障现象": "主机运行中振动异常增大", + "故障原因": "曲轴主轴颈跳动超差", + "维修方案": "执行以下维修项目:MTO03 检测曲轴主轴颈跳动量", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低", + "故障现象": "单缸功率下降、排温偏低", + "故障原因": "活塞头烧蚀或活塞环断裂", + "维修方案": "执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "气缸套严重磨损导致单缸功率下降、排温偏低", + "故障现象": "单缸功率下降、排温偏低", + "故障原因": "气缸套严重磨损", + "维修方案": "执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低", + "故障现象": "单缸功率下降、排温偏低", + "故障原因": "喷油嘴偶件雾化不良", + "维修方案": "执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高", + "故障现象": "排气温度异常升高", + "故障原因": "排气阀密封面磨损或阀座烧蚀", + "维修方案": "执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "涡轮增压器轴承损坏导致排气温度异常升高", + "故障现象": "排气温度异常升高", + "故障原因": "涡轮增压器轴承损坏", + "维修方案": "执行以下维修项目:MT015 更换涡轮增压器轴承组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏", + "故障现象": "扫气箱内发现润滑油泄漏", + "故障原因": "活塞杆填料函密封失效", + "维修方案": "执行以下维修项目:MTO01保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "缸盖密封环老化失效导致主机启动困难或压缩压力不足", + "故障现象": "主机启动困难或压缩压力不足", + "故障原因": "缸盖密封环老化失效", + "维修方案": "执行以下维修项目:MT001保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "喷油器工作不一致导致主机功率输出不稳定", + "故障现象": "主机功率输出不稳定", + "故障原因": "喷油器工作不一致", + "维修方案": "执行以下维修项目:MT019 排除喷油器雾化不良故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "调速系统响应异常导致主机功率输出不稳定", + "故障现象": "主机功率输出不稳定", + "故障原因": "调速系统响应异常", + "维修方案": "执行以下维修项目:MT020 排除主机功率异常波动故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高", + "故障现象": "空冷器后扫气温度持续偏高", + "故障原因": "空冷器管束芯体结垢或堵塞", + "维修方案": "执行以下维修项目:MT016 清洗空冷器管束芯体", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞环磨损或断裂导致主机润滑油消耗异常增加", + "故障现象": "主机润滑油消耗异常增加", + "故障原因": "活塞环磨损或断裂", + "维修方案": "执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞杆填料函磨损导致", + "故障现象": "", + "故障原因": "活塞杆填料函磨损", + "维修方案": "执行以下维修项目:MT001保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "高压油管接头密封失效导致高压燃油管路附近有油渍", + "故障现象": "高压燃油管路附近有油渍", + "故障原因": "高压油管接头密封失效", + "维修方案": "执行以下维修项目:MT014 更换高压油泵柱塞偶件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "润滑油压力骤降导致主机紧急停机", + "故障现象": "主机紧急停机", + "故障原因": "润滑油压力骤降", + "维修方案": "执行以下维修项目:MT001保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "多缸燃烧严重失衡导致主机紧急停机", + "故障现象": "主机紧急停机", + "故障原因": "多缸燃烧严重失衡", + "维修方案": "执行以下维修项目:MT020 排除主机功率异常波动故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "发动机的维修工作" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "保养机座与机架组件", + "编号": "MT001", + "内容": "表 4.3 MT001 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT00101机座与机架组件保养机座与机架组件1MJY级
安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。
安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。
序号名称规格/型号数量及单位备注
1液压升降平台HLP-30001台用于接近主机上部
2扭矩扳手TB-200N·m1把精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FIT1套厂家配套
4工业吸油泵VAC-0IL501台防爆型
2)备品备件
名称规格/型号消耗数量备注
1高压燃油泵HD-45A2个原厂件
2涡轮增压器TC-80B1个耐高温氟橡胶
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1柴油机专用润滑油Shell Mysella S5N8050L符合MAN 97101标准
2无纺布抹布Industrial Grade5张不掉屑
3清洗剂CRC Brakleen1罐用于清洁滤座
\n\n
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师主导保养流程
2电气专业1技师监控主机ECU状 态
修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识;
3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油;
图 MT001.1旋松螺塞
(2)检查排出机油中是否有金属屑,若有则记录并上报异常。
图MT001.2检查
2)更换机油滤芯
\n图 MT001.3 拆卸\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\n图 MT001.4 滤芯安装扭矩示意图\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\n图 MT001.5 滤芯安装扭矩示意图\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\n(2)静置 10 分钟后复查油位,补充至标准范围。\n图 MT001.6 油位检查\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\n图 MT001.7 安装放油螺塞\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\n\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\n图 MT001.8 油污清理\n
3)拆除“禁止启动”牌,通知集控室保养完成。
验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下);
2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。
页码:2/2版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.3 MT001 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT00101机座与机架组件保养机座与机架组件1MJY级
安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。
安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。
序号名称规格/型号数量及单位备注
1液压升降平台HLP-30001台用于接近主机上部
2扭矩扳手TB-200N·m1把精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FIT1套厂家配套
4工业吸油泵VAC-0IL501台防爆型
2)备品备件
名称规格/型号消耗数量备注
1高压燃油泵HD-45A2个原厂件
2涡轮增压器TC-80B1个耐高温氟橡胶
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1柴油机专用润滑油Shell Mysella S5N8050L符合MAN 97101标准
2无纺布抹布Industrial Grade5张不掉屑
3清洗剂CRC Brakleen1罐用于清洁滤座
\\n\\n
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师主导保养流程
2电气专业1技师监控主机ECU状 态
修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识;
3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油;
图 MT001.1旋松螺塞
(2)检查排出机油中是否有金属屑,若有则记录并上报异常。
图MT001.2检查
2)更换机油滤芯
\\n图 MT001.3 拆卸\\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\\n图 MT001.4 滤芯安装扭矩示意图\\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\\n图 MT001.5 滤芯安装扭矩示意图\\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\\n(2)静置 10 分钟后复查油位,补充至标准范围。\\n图 MT001.6 油位检查\\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\\n图 MT001.7 安装放油螺塞\\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\\n\\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\\n图 MT001.8 油污清理\\n
3)拆除“禁止启动”牌,通知集控室保养完成。
验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下);
2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。
页码:2/2版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3e87ad34-4dc0-427a-b3a2-364164392059.pdf#page=20\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "机座与机架组件", + "组成编码": "01", + "维修项目名称": "保养机座与机架组件", + "维修项目编号": "MT001", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.3 MT001 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT00101机座与机架组件保养机座与机架组件1MJY级
安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。
安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。
序号名称规格/型号数量及单位备注
1液压升降平台HLP-30001台用于接近主机上部
2扭矩扳手TB-200N·m1把精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FIT1套厂家配套
4工业吸油泵VAC-0IL501台防爆型
2)备品备件
名称规格/型号消耗数量备注
1高压燃油泵HD-45A2个原厂件
2涡轮增压器TC-80B1个耐高温氟橡胶
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1柴油机专用润滑油Shell Mysella S5N8050L符合MAN 97101标准
2无纺布抹布Industrial Grade5张不掉屑
3清洗剂CRC Brakleen1罐用于清洁滤座
\\n\\n
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师主导保养流程
2电气专业1技师监控主机ECU状 态
修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识;
3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油;
图 MT001.1旋松螺塞
(2)检查排出机油中是否有金属屑,若有则记录并上报异常。
图MT001.2检查
2)更换机油滤芯
\\n图 MT001.3 拆卸\\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\\n图 MT001.4 滤芯安装扭矩示意图\\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\\n图 MT001.5 滤芯安装扭矩示意图\\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\\n(2)静置 10 分钟后复查油位,补充至标准范围。\\n图 MT001.6 油位检查\\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\\n图 MT001.7 安装放油螺塞\\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\\n\\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\\n图 MT001.8 油污清理\\n
3)拆除“禁止启动”牌,通知集控室保养完成。
验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下);
2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。
页码:2/2版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3e87ad34-4dc0-427a-b3a2-364164392059.pdf#page=20\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检查主轴承座安装状态", + "编号": "MT002", + "内容": "表 4.4 MT002 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0020101焊接机座组件检查主轴承座安装状态6M/200hJY级
安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。
安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。
序号名称规格/型号数量及单位备注
1激光对中仪SKF TKSA 711套用于轴承同轴度检测
2塞尺组0.02 -1.00 mm1套精度±0.005mm
3液压拉伸器HYTORC AVANTI-101台用于地脚螺栓预紧
4内径千分尺200-300mm1把校验有效期内
2)备品备件
名称规格/型号消耗数量备注
1排气阀PV-1001
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁酒精AR Grade100mL
2防锈纸VCI-2002张
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师
修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;
\n图 MT002.1 换油前清洗\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\n图 MT002.2 检查\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\n图 MT002.3 塞尺测量\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\n图 MT002.4 激光对中仪\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\n图 MT002.5 测量轴线偏移量\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\n\n
判定与处理
1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。
验收标准
1.主轴承座与机座结合面间隙≤0.05mm(全周);
2.相邻主轴承同轴度偏差≤0.08 mm/m;
3.地脚螺栓预紧力在设计值 ±5% 范围内。
页码:1/1版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.4 MT002 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0020101焊接机座组件检查主轴承座安装状态6M/200hJY级
安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。
安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。
序号名称规格/型号数量及单位备注
1激光对中仪SKF TKSA 711套用于轴承同轴度检测
2塞尺组0.02 -1.00 mm1套精度±0.005mm
3液压拉伸器HYTORC AVANTI-101台用于地脚螺栓预紧
4内径千分尺200-300mm1把校验有效期内
2)备品备件
名称规格/型号消耗数量备注
1排气阀PV-1001
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁酒精AR Grade100mL
2防锈纸VCI-2002张
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师
修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;
\\n图 MT002.1 换油前清洗\\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\\n图 MT002.2 检查\\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\\n图 MT002.3 塞尺测量\\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\\n图 MT002.4 激光对中仪\\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\\n图 MT002.5 测量轴线偏移量\\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\\n\\n
判定与处理
1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。
验收标准
1.主轴承座与机座结合面间隙≤0.05mm(全周);
2.相邻主轴承同轴度偏差≤0.08 mm/m;
3.地脚螺栓预紧力在设计值 ±5% 范围内。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1416a6cb-7b91-466b-9287-ff15f275e8c7.pdf#page=23\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "焊接机座组件", + "组成编码": "0101", + "维修项目名称": "检查主轴承座安装状态", + "维修项目编号": "MT002", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.4 MT002 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0020101焊接机座组件检查主轴承座安装状态6M/200hJY级
安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。
安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。
序号名称规格/型号数量及单位备注
1激光对中仪SKF TKSA 711套用于轴承同轴度检测
2塞尺组0.02 -1.00 mm1套精度±0.005mm
3液压拉伸器HYTORC AVANTI-101台用于地脚螺栓预紧
4内径千分尺200-300mm1把校验有效期内
2)备品备件
名称规格/型号消耗数量备注
1排气阀PV-1001
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁酒精AR Grade100mL
2防锈纸VCI-2002张
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师
修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;
\\n图 MT002.1 换油前清洗\\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\\n图 MT002.2 检查\\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\\n图 MT002.3 塞尺测量\\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\\n图 MT002.4 激光对中仪\\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\\n图 MT002.5 测量轴线偏移量\\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\\n\\n
判定与处理
1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。
验收标准
1.主轴承座与机座结合面间隙≤0.05mm(全周);
2.相邻主轴承同轴度偏差≤0.08 mm/m;
3.地脚螺栓预紧力在设计值 ±5% 范围内。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1416a6cb-7b91-466b-9287-ff15f275e8c7.pdf#page=23\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检测曲轴主轴颈跳动量", + "编号": "MT003", + "内容": "表 4.5 MT003 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0030201曲轴组件检测曲轴主轴颈跳动量1A/8000hJY级
安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。
安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg
序号名称规格/型号数量及单位备注
1精密千分表Mitutoyo 543-791D1套分辨率0.001 mm
2磁力表座Starrett 16B1个带万向关节
3V型支撑架Custom-Crank-V3002组承重≥500kg
\n\n
4盘车手轮OEM-MAN-BW-PCW1个原厂配套
\n\n
名称规格/型号消耗数量备注
1排气阀PV-1001
\n\n
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%50mL清洁轴颈表面
2无绒擦拭布Kimwipe EX-L3张防刮伤轴面
\n\n
序号专业人数技能等级备注
1机械专业2总工+工程师总工复刻数据
\n图 MT003.1 清洁\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\n图 MT003.2 标记测量基准点\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\n2)安装千分表\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\n图 MT003.3 千分尺\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\n(2)预压千分表 0.3 mm,归零。\n3)盘车测量\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\n(2)跳动量 = 最大值 - 最小值;\n(3)重复上述步骤,依次测量其余主轴颈。\n数据判定\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\n\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.5 MT003 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0030201曲轴组件检测曲轴主轴颈跳动量1A/8000hJY级
安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。
安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg
序号名称规格/型号数量及单位备注
1精密千分表Mitutoyo 543-791D1套分辨率0.001 mm
2磁力表座Starrett 16B1个带万向关节
3V型支撑架Custom-Crank-V3002组承重≥500kg
\\n\\n
4盘车手轮OEM-MAN-BW-PCW1个原厂配套
\\n\\n
名称规格/型号消耗数量备注
1排气阀PV-1001
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%50mL清洁轴颈表面
2无绒擦拭布Kimwipe EX-L3张防刮伤轴面
\\n\\n
序号专业人数技能等级备注
1机械专业2总工+工程师总工复刻数据
\\n图 MT003.1 清洁\\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\\n图 MT003.2 标记测量基准点\\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\\n2)安装千分表\\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\\n图 MT003.3 千分尺\\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\\n(2)预压千分表 0.3 mm,归零。\\n3)盘车测量\\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\\n(2)跳动量 = 最大值 - 最小值;\\n(3)重复上述步骤,依次测量其余主轴颈。\\n数据判定\\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\\n\\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8e20bf10-c161-4a3f-89fc-2cd7afd91b16.pdf#page=27\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "曲轴组件", + "组成编码": "0201", + "维修项目名称": "检测曲轴主轴颈跳动量", + "维修项目编号": "MT003", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.5 MT003 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0030201曲轴组件检测曲轴主轴颈跳动量1A/8000hJY级
安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。
安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg
序号名称规格/型号数量及单位备注
1精密千分表Mitutoyo 543-791D1套分辨率0.001 mm
2磁力表座Starrett 16B1个带万向关节
3V型支撑架Custom-Crank-V3002组承重≥500kg
\\n\\n
4盘车手轮OEM-MAN-BW-PCW1个原厂配套
\\n\\n
名称规格/型号消耗数量备注
1排气阀PV-1001
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%50mL清洁轴颈表面
2无绒擦拭布Kimwipe EX-L3张防刮伤轴面
\\n\\n
序号专业人数技能等级备注
1机械专业2总工+工程师总工复刻数据
\\n图 MT003.1 清洁\\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\\n图 MT003.2 标记测量基准点\\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\\n2)安装千分表\\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\\n图 MT003.3 千分尺\\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\\n(2)预压千分表 0.3 mm,归零。\\n3)盘车测量\\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\\n(2)跳动量 = 最大值 - 最小值;\\n(3)重复上述步骤,依次测量其余主轴颈。\\n数据判定\\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\\n\\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8e20bf10-c161-4a3f-89fc-2cd7afd91b16.pdf#page=27\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换连杆大端轴承", + "编号": "MT004", + "内容": "表 4.6 MT004 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT004020201连杆大端轴承更换连杆大端轴承2A/12000hJT级
安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。
安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。
序号名称规格/型号数量及单位备注
1液压拉伸器HYTORC RS-201套
2扭矩扳手Norbar 1500N·m1把精度±2%
3轴承安装导向套OEM-MAN-BW-BG-041个
4内窥镜GE Mentor Visual iQ1台
2)备品备件
名称规格/型号消耗数量备注
1连杆大端轴承上瓦MAN 5L35MC-BRG-UP1副原厂高锡合金
2连杆大端轴承下瓦MAN 5L35MC-BRG-DN1副
3连杆螺栓M30 ×2.0 Grade 12.92根次性使用,强制更换
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\n\n
1轴承装配润滑脂Kluber Isoflex LDS18 Special A10g仅涂瓦背
2螺纹锁固胶Loctite 2701少量用于螺栓螺纹(如适用)
3清洗剂Brulin 815GD200mL清洁连杆结合面
\n4)人力人员\n\n
序号专业人数技能等级备注
1机械专业3总工+2x工程师总工监督关键步骤
\n修理步骤及工艺\n更换前提确认\n1)主机已完成停机冷却,滑油系统泄压;\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\n拆卸旧轴承\n1)拆连杆盖\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\n(2)取下螺栓及连杆大端盖,放置于专用托架。\n2)取出旧轴承\n(1)轻敲连杆体侧面,使下瓦自然脱落;\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\n安装新轴承\n1)清洁与检查\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\n(2)目视检查新瓦背面涂层均匀,无裂纹。\n2)装配\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\n(2)将下瓦装入连杆盖,同样对准定位;\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\n3)紧固螺栓\n(1)安装新连杆螺栓,手工旋入到底;\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\n(3)最终用角度法复核(如适用)。\n图 MT004.1 连杆大端轴承结构分解图\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.6 MT004 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT004020201连杆大端轴承更换连杆大端轴承2A/12000hJT级
安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。
安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。
序号名称规格/型号数量及单位备注
1液压拉伸器HYTORC RS-201套
2扭矩扳手Norbar 1500N·m1把精度±2%
3轴承安装导向套OEM-MAN-BW-BG-041个
4内窥镜GE Mentor Visual iQ1台
2)备品备件
名称规格/型号消耗数量备注
1连杆大端轴承上瓦MAN 5L35MC-BRG-UP1副原厂高锡合金
2连杆大端轴承下瓦MAN 5L35MC-BRG-DN1副
3连杆螺栓M30 ×2.0 Grade 12.92根次性使用,强制更换
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1轴承装配润滑脂Kluber Isoflex LDS18 Special A10g仅涂瓦背
2螺纹锁固胶Loctite 2701少量用于螺栓螺纹(如适用)
3清洗剂Brulin 815GD200mL清洁连杆结合面
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业3总工+2x工程师总工监督关键步骤
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成停机冷却,滑油系统泄压;\\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\\n拆卸旧轴承\\n1)拆连杆盖\\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\\n(2)取下螺栓及连杆大端盖,放置于专用托架。\\n2)取出旧轴承\\n(1)轻敲连杆体侧面,使下瓦自然脱落;\\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\\n安装新轴承\\n1)清洁与检查\\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\\n(2)目视检查新瓦背面涂层均匀,无裂纹。\\n2)装配\\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\\n(2)将下瓦装入连杆盖,同样对准定位;\\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\\n3)紧固螺栓\\n(1)安装新连杆螺栓,手工旋入到底;\\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\\n(3)最终用角度法复核(如适用)。\\n图 MT004.1 连杆大端轴承结构分解图\\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3c8cb01b-bfd0-4e6d-9fd7-d7490b0cc28f.pdf#page=29\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "连杆大端轴承", + "组成编码": "020201", + "维修项目名称": "更换连杆大端轴承", + "维修项目编号": "MT004", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.6 MT004 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT004020201连杆大端轴承更换连杆大端轴承2A/12000hJT级
安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。
安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。
序号名称规格/型号数量及单位备注
1液压拉伸器HYTORC RS-201套
2扭矩扳手Norbar 1500N·m1把精度±2%
3轴承安装导向套OEM-MAN-BW-BG-041个
4内窥镜GE Mentor Visual iQ1台
2)备品备件
名称规格/型号消耗数量备注
1连杆大端轴承上瓦MAN 5L35MC-BRG-UP1副原厂高锡合金
2连杆大端轴承下瓦MAN 5L35MC-BRG-DN1副
3连杆螺栓M30 ×2.0 Grade 12.92根次性使用,强制更换
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1轴承装配润滑脂Kluber Isoflex LDS18 Special A10g仅涂瓦背
2螺纹锁固胶Loctite 2701少量用于螺栓螺纹(如适用)
3清洗剂Brulin 815GD200mL清洁连杆结合面
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业3总工+2x工程师总工监督关键步骤
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成停机冷却,滑油系统泄压;\\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\\n拆卸旧轴承\\n1)拆连杆盖\\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\\n(2)取下螺栓及连杆大端盖,放置于专用托架。\\n2)取出旧轴承\\n(1)轻敲连杆体侧面,使下瓦自然脱落;\\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\\n安装新轴承\\n1)清洁与检查\\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\\n(2)目视检查新瓦背面涂层均匀,无裂纹。\\n2)装配\\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\\n(2)将下瓦装入连杆盖,同样对准定位;\\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\\n3)紧固螺栓\\n(1)安装新连杆螺栓,手工旋入到底;\\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\\n(3)最终用角度法复核(如适用)。\\n图 MT004.1 连杆大端轴承结构分解图\\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3c8cb01b-bfd0-4e6d-9fd7-d7490b0cc28f.pdf#page=29\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换连杆小段轴承", + "编号": "MT005", + "内容": "表 4.7 MT005 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT005020203连杆小段轴承更换连杆小段轴承2A/12000hJY级
安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。
安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。
序号名称规格/型号数量及单位备注
1活塞吊装专用吊具OEM-MAN-BW-PST-051套带缓冲橡胶夹头
2感应加热器EFD Induction Minac161台温控精度±5℃
3内径千分尺40 - 50 mm1把校验有效期内
4铜棒与塑料锤Φ20×300 mm各1把
2)备品备件
名称规格/型号消耗数量备注
1连杆小端衬套(上)MAN 5L35MC-BUSH-UP1件锡青铜基
2连杆小端衬套(下)MAN 5L35MC-BUSH-DN1件
3活塞销卡簧Φ50×2.5 mm2个不锈钢,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\n\n
1高温装配润滑脂Molycote G-10525g
2清洗剂Brulin 815GD150mL
3耐高温标记笔Markal 900°F1支
\n4)人力人员\n\n
序号专业人数技能等级备注
1机械专业2工程师+技师工程师主导热装
\n修理步骤及工艺\n更换前提确认\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\n拆卸旧衬套\n1)抽出活塞-连杆总成\n(1)拆除缸头、喷油器及冷却水管路;\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\n2)压出旧衬套\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\n安装新衬套\n1)清洁与预装检查\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\n(2)测量座孔内径,记录作为过盈量计算依据。\n2)热装新衬套\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\n(2)迅速将热衬套套入连杆小端,确保完全到位;\n(3)自然冷却至室温,禁止强制冷却。\n3)精铰与研配(如需要)\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\n组装活塞销与卡簧\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\n\n
验收标准
1.衬套与座孔过盈配合牢固,无松动或轴向位移;
2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。
页码:1/1版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.7 MT005 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT005020203连杆小段轴承更换连杆小段轴承2A/12000hJY级
安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。
安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。
序号名称规格/型号数量及单位备注
1活塞吊装专用吊具OEM-MAN-BW-PST-051套带缓冲橡胶夹头
2感应加热器EFD Induction Minac161台温控精度±5℃
3内径千分尺40 - 50 mm1把校验有效期内
4铜棒与塑料锤Φ20×300 mm各1把
2)备品备件
名称规格/型号消耗数量备注
1连杆小端衬套(上)MAN 5L35MC-BUSH-UP1件锡青铜基
2连杆小端衬套(下)MAN 5L35MC-BUSH-DN1件
3活塞销卡簧Φ50×2.5 mm2个不锈钢,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1高温装配润滑脂Molycote G-10525g
2清洗剂Brulin 815GD150mL
3耐高温标记笔Markal 900°F1支
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业2工程师+技师工程师主导热装
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\\n拆卸旧衬套\\n1)抽出活塞-连杆总成\\n(1)拆除缸头、喷油器及冷却水管路;\\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\\n2)压出旧衬套\\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\\n安装新衬套\\n1)清洁与预装检查\\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\\n(2)测量座孔内径,记录作为过盈量计算依据。\\n2)热装新衬套\\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\\n(2)迅速将热衬套套入连杆小端,确保完全到位;\\n(3)自然冷却至室温,禁止强制冷却。\\n3)精铰与研配(如需要)\\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\\n组装活塞销与卡簧\\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\\n\\n
验收标准
1.衬套与座孔过盈配合牢固,无松动或轴向位移;
2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_989f92a1-7f51-4cdf-8bbb-2aeba9ccac07.pdf#page=31\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "连杆小段轴承", + "组成编码": "020203", + "维修项目名称": "更换连杆小段轴承", + "维修项目编号": "MT005", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.7 MT005 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT005020203连杆小段轴承更换连杆小段轴承2A/12000hJY级
安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。
安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。
序号名称规格/型号数量及单位备注
1活塞吊装专用吊具OEM-MAN-BW-PST-051套带缓冲橡胶夹头
2感应加热器EFD Induction Minac161台温控精度±5℃
3内径千分尺40 - 50 mm1把校验有效期内
4铜棒与塑料锤Φ20×300 mm各1把
2)备品备件
名称规格/型号消耗数量备注
1连杆小端衬套(上)MAN 5L35MC-BUSH-UP1件锡青铜基
2连杆小端衬套(下)MAN 5L35MC-BUSH-DN1件
3活塞销卡簧Φ50×2.5 mm2个不锈钢,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1高温装配润滑脂Molycote G-10525g
2清洗剂Brulin 815GD150mL
3耐高温标记笔Markal 900°F1支
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业2工程师+技师工程师主导热装
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\\n拆卸旧衬套\\n1)抽出活塞-连杆总成\\n(1)拆除缸头、喷油器及冷却水管路;\\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\\n2)压出旧衬套\\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\\n安装新衬套\\n1)清洁与预装检查\\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\\n(2)测量座孔内径,记录作为过盈量计算依据。\\n2)热装新衬套\\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\\n(2)迅速将热衬套套入连杆小端,确保完全到位;\\n(3)自然冷却至室温,禁止强制冷却。\\n3)精铰与研配(如需要)\\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\\n组装活塞销与卡簧\\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\\n\\n
验收标准
1.衬套与座孔过盈配合牢固,无松动或轴向位移;
2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_989f92a1-7f51-4cdf-8bbb-2aeba9ccac07.pdf#page=31\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "拆检活塞头磨损情况", + "编号": "MT006", + "内容": "表 4.8 MT006 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT006030201活塞头拆检活塞头磨损情况1A/8000hJY级
安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。
安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配350mm活塞
2内窥镜GE Mentor Visual iQ1台
3深度规0-150mm1把
4放大镜10× with scale1个
2)备品备件
名称规格/型号消耗数量备注
11本项目为检查类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1积碳清洗剂CRC Carbon CleanPro200mL环保型
2无纺布Industrial Grade5张
3防锈油CRC 3-3650mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。
抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态
1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查
(1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。
判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008;
3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.8 MT006 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT006030201活塞头拆检活塞头磨损情况1A/8000hJY级
安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。
安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配350mm活塞
2内窥镜GE Mentor Visual iQ1台
3深度规0-150mm1把
4放大镜10× with scale1个
2)备品备件
名称规格/型号消耗数量备注
11本项目为检查类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1积碳清洗剂CRC Carbon CleanPro200mL环保型
2无纺布Industrial Grade5张
3防锈油CRC 3-3650mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。
抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态
1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查
(1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。
判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008;
3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_5617ece6-b596-47da-a2c7-4218c18390b7.pdf#page=32\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "活塞头", + "组成编码": "030201", + "维修项目名称": "拆检活塞头磨损情况", + "维修项目编号": "MT006", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.8 MT006 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT006030201活塞头拆检活塞头磨损情况1A/8000hJY级
安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。
安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配350mm活塞
2内窥镜GE Mentor Visual iQ1台
3深度规0-150mm1把
4放大镜10× with scale1个
2)备品备件
名称规格/型号消耗数量备注
11本项目为检查类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1积碳清洗剂CRC Carbon CleanPro200mL环保型
2无纺布Industrial Grade5张
3防锈油CRC 3-3650mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。
抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态
1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查
(1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。
判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008;
3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_5617ece6-b596-47da-a2c7-4218c18390b7.pdf#page=32\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换1号压缩环", + "编号": "MT007", + "内容": "表 4.9 MT007 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0070302031号压缩环更换1号压缩环1A/8000hJY级
安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。
安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。
\n\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配Φ350 mm活塞
2环口间隙测量规Feeler Gauge Set1套0.05-1.00mm
3环槽清洁刮刀Custom-Piston-Groove-Scraper1把铜质刃口
4扭矩扳手20-100 N·m1把
2)备品备件
名称规格/型号消耗数量备注
1第一道压缩环MAN 5L35MC-RING-11件梯形截面,表面镀铬
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus5g
2无绒布Kimwipe EX-L3张
3清洗剂Brulin 815GD100mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师复刻还口间隙
修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。
验收标准
1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内;
页码:1/13.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.9 MT007 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0070302031号压缩环更换1号压缩环1A/8000hJY级
安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。
安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配Φ350 mm活塞
2环口间隙测量规Feeler Gauge Set1套0.05-1.00mm
3环槽清洁刮刀Custom-Piston-Groove-Scraper1把铜质刃口
4扭矩扳手20-100 N·m1把
2)备品备件
名称规格/型号消耗数量备注
1第一道压缩环MAN 5L35MC-RING-11件梯形截面,表面镀铬
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus5g
2无绒布Kimwipe EX-L3张
3清洗剂Brulin 815GD100mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师复刻还口间隙
修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。
验收标准
1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内;
页码:1/13.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_11764560-e529-4268-a045-e036ba8ba667.pdf#page=33\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "1号压缩环", + "组成编码": "030203", + "维修项目名称": "更换1号压缩环", + "维修项目编号": "MT007", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.9 MT007 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0070302031号压缩环更换1号压缩环1A/8000hJY级
安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。
安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配Φ350 mm活塞
2环口间隙测量规Feeler Gauge Set1套0.05-1.00mm
3环槽清洁刮刀Custom-Piston-Groove-Scraper1把铜质刃口
4扭矩扳手20-100 N·m1把
2)备品备件
名称规格/型号消耗数量备注
1第一道压缩环MAN 5L35MC-RING-11件梯形截面,表面镀铬
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus5g
2无绒布Kimwipe EX-L3张
3清洗剂Brulin 815GD100mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师复刻还口间隙
修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。
验收标准
1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内;
页码:1/13.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_11764560-e529-4268-a045-e036ba8ba667.pdf#page=33\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换2-4号活塞环", + "编号": "MT008", + "内容": "表 4.10 MT008 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0080302042-4号活塞环更换2-4号活塞环1A/8000hJY级
安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。
安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个同MT007
2环口定位夹具Custom-Ring-Aligner1套控制各环开口相位
3放大镜(带LED)5X with light1个检查环体缺陷
2)备品备件
名称规格/型号消耗数量备注
1第二道压缩环MAN 5L35MC-RING-21件锥面环
2第三道刮油环(组合式)MAN 5L35MC-RING-31套含轨环+弹簧胀圈
3第四道刮油环(组合式)MAN 5L35MC-RING-41套同上
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus10g涂所有环外圆
2缸套润滑机油Shell Mysella S5N8050mL涂缸壁
3标记笔(耐油)Marka1Oil-Resistant1支标记环开口位置
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+ 技师工程师监督相位布置
修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。
拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。
差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120°
(1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证
1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.10 MT008 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0080302042-4号活塞环更换2-4号活塞环1A/8000hJY级
安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。
安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个同MT007
2环口定位夹具Custom-Ring-Aligner1套控制各环开口相位
3放大镜(带LED)5X with light1个检查环体缺陷
2)备品备件
名称规格/型号消耗数量备注
1第二道压缩环MAN 5L35MC-RING-21件锥面环
2第三道刮油环(组合式)MAN 5L35MC-RING-31套含轨环+弹簧胀圈
3第四道刮油环(组合式)MAN 5L35MC-RING-41套同上
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus10g涂所有环外圆
2缸套润滑机油Shell Mysella S5N8050mL涂缸壁
3标记笔(耐油)Marka1Oil-Resistant1支标记环开口位置
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+ 技师工程师监督相位布置
修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。
拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。
差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120°
(1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证
1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_c8dc7bf9-e9b4-4423-91ad-4afb1911fadd.pdf#page=35\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "2-4号活塞环", + "组成编码": "030204", + "维修项目名称": "更换2-4号活塞环", + "维修项目编号": "MT008", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.10 MT008 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0080302042-4号活塞环更换2-4号活塞环1A/8000hJY级
安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。
安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个同MT007
2环口定位夹具Custom-Ring-Aligner1套控制各环开口相位
3放大镜(带LED)5X with light1个检查环体缺陷
2)备品备件
名称规格/型号消耗数量备注
1第二道压缩环MAN 5L35MC-RING-21件锥面环
2第三道刮油环(组合式)MAN 5L35MC-RING-31套含轨环+弹簧胀圈
3第四道刮油环(组合式)MAN 5L35MC-RING-41套同上
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus10g涂所有环外圆
2缸套润滑机油Shell Mysella S5N8050mL涂缸壁
3标记笔(耐油)Marka1Oil-Resistant1支标记环开口位置
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+ 技师工程师监督相位布置
修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。
拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。
差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120°
(1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证
1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_c8dc7bf9-e9b4-4423-91ad-4afb1911fadd.pdf#page=35\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检测气缸套内径磨损量", + "编号": "MT009", + "内容": "表 4.11 MT009 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT009030301气缸套检测气缸套内径磨损量1A/8000hJY级
安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。
安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1内径千分尺(三点式) Mitutoyo 204-304 mm1套分辨率0.001mm
2缸套磨损测量记录仪Custom-Bore-Wear-Log1台自动生成磨损曲线
3防爆LED手电Streamlight 880401个24V安全电压
4清洁气枪Industrial Air BlowGun1把压力≤0.5 MPa
2)备品
名称规格/型号消耗数量备注
11本项目为检测类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%100mL清洁测量接触面
2无绒布Kimwipe EX-L5张防刮伤缸壁
3防锈纸VCI-2002张测量后临时覆盖
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工审核磨损趋势
\n\n\n\n
3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略)
验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。
页码:1/1版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.11 MT009 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT009030301气缸套检测气缸套内径磨损量1A/8000hJY级
安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。
安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1内径千分尺(三点式) Mitutoyo 204-304 mm1套分辨率0.001mm
2缸套磨损测量记录仪Custom-Bore-Wear-Log1台自动生成磨损曲线
3防爆LED手电Streamlight 880401个24V安全电压
4清洁气枪Industrial Air BlowGun1把压力≤0.5 MPa
2)备品
名称规格/型号消耗数量备注
11本项目为检测类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%100mL清洁测量接触面
2无绒布Kimwipe EX-L5张防刮伤缸壁
3防锈纸VCI-2002张测量后临时覆盖
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工审核磨损趋势
\\n\\n\\n\\n
3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略)
验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1352eb4a-1f16-4fb9-b64d-4c5786cb8e8d.pdf#page=36\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "气缸套", + "组成编码": "030301", + "维修项目名称": "检测气缸套内径磨损量", + "维修项目编号": "MT009", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.11 MT009 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT009030301气缸套检测气缸套内径磨损量1A/8000hJY级
安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。
安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1内径千分尺(三点式) Mitutoyo 204-304 mm1套分辨率0.001mm
2缸套磨损测量记录仪Custom-Bore-Wear-Log1台自动生成磨损曲线
3防爆LED手电Streamlight 880401个24V安全电压
4清洁气枪Industrial Air BlowGun1把压力≤0.5 MPa
2)备品
名称规格/型号消耗数量备注
11本项目为检测类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%100mL清洁测量接触面
2无绒布Kimwipe EX-L5张防刮伤缸壁
3防锈纸VCI-2002张测量后临时覆盖
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工审核磨损趋势
\\n\\n\\n\\n
3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略)
验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1352eb4a-1f16-4fb9-b64d-4c5786cb8e8d.pdf#page=36\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换气缸套", + "编号": "MT010", + "内容": "表 4.12 MT010 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT010030301气缸套更换气缸套4A/32000hJY级
安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。
安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。
序号名称规格/型号数量及单位备注
1液压压装机HYDRA-PRESS-50T1台带压力与位移监控
2缸套拔出器OEM-MAN-BW-LINER-PULL1套螺纹顶压式
3冷却水腔密封测试仪LeakTest-CT3001台0.3 MPa保压
4深度规0- 300 mm1把测量缸套凸肩高度
2)备品备件
名称规格/型号消耗数量备注
1气缸套总成MAN5L35MC-LINER-ASSY1件含0形圈、定位销
2缸套水封0形圈Viton Φ380×5.02个耐高温氟橡胶
3缸套油封环NBR Φ352×3.01个下部密封
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1装配润滑脂Kluber Isoflex LDS18 Special A20g涂缸套外壁
2密封胶Loctite 518少量水腔法兰面(如适用)
3清洗剂Brulin 815GD300mL清洁缸体座孔
4)人力人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工监督压装对中
\n\n
修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。
3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm;
2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.12 MT010 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT010030301气缸套更换气缸套4A/32000hJY级
安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。
安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。
序号名称规格/型号数量及单位备注
1液压压装机HYDRA-PRESS-50T1台带压力与位移监控
2缸套拔出器OEM-MAN-BW-LINER-PULL1套螺纹顶压式
3冷却水腔密封测试仪LeakTest-CT3001台0.3 MPa保压
4深度规0- 300 mm1把测量缸套凸肩高度
2)备品备件
名称规格/型号消耗数量备注
1气缸套总成MAN5L35MC-LINER-ASSY1件含0形圈、定位销
2缸套水封0形圈Viton Φ380×5.02个耐高温氟橡胶
3缸套油封环NBR Φ352×3.01个下部密封
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1装配润滑脂Kluber Isoflex LDS18 Special A20g涂缸套外壁
2密封胶Loctite 518少量水腔法兰面(如适用)
3清洗剂Brulin 815GD300mL清洁缸体座孔
4)人力人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工监督压装对中
\\n\\n
修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。
3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm;
2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1b7daafc-9c60-4d7d-acbf-581d29ddb984.pdf#page=38\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "气缸套", + "组成编码": "030301", + "维修项目名称": "更换气缸套", + "维修项目编号": "MT010", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.12 MT010 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT010030301气缸套更换气缸套4A/32000hJY级
安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。
安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。
序号名称规格/型号数量及单位备注
1液压压装机HYDRA-PRESS-50T1台带压力与位移监控
2缸套拔出器OEM-MAN-BW-LINER-PULL1套螺纹顶压式
3冷却水腔密封测试仪LeakTest-CT3001台0.3 MPa保压
4深度规0- 300 mm1把测量缸套凸肩高度
2)备品备件
名称规格/型号消耗数量备注
1气缸套总成MAN5L35MC-LINER-ASSY1件含0形圈、定位销
2缸套水封0形圈Viton Φ380×5.02个耐高温氟橡胶
3缸套油封环NBR Φ352×3.01个下部密封
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1装配润滑脂Kluber Isoflex LDS18 Special A20g涂缸套外壁
2密封胶Loctite 518少量水腔法兰面(如适用)
3清洗剂Brulin 815GD300mL清洁缸体座孔
4)人力人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工监督压装对中
\\n\\n
修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。
3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm;
2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1b7daafc-9c60-4d7d-acbf-581d29ddb984.pdf#page=38\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检查排气阀杆密封面磨损", + "编号": "MT011", + "内容": "表 4.13 MT011 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT011040102阀杆检查排气阀杆密封面磨损6M/4000hJY级
安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。
安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。
\n\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1排气阀专用吊具OEM-MAN-BW-VALVE-HOOK1套带隔热手柄
2红外测温仪Fluke 62 Max+1台测量阀杆温度
3密封面检测平板Optical Flat λ/101块用于着色法检查
4着色剂套装Dykem Steel Blue +Developer1套检查接触印痕
2)备品备件
名称规格/型号消耗数量备注
本项目为检查类,无备件消耗(但可能触发MT012)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温清洁剂CRC Brakleen HT100mL清除积碳
2无绒布Kimwipe EX-L5张防刮伤密封面
3防锈油CRC 3-3630mL检查后临时防护
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座);
3)记录检查结果于《排气阀状态档案》。
验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm;
2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。
页码:1/1版本号:1
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.13 MT011 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT011040102阀杆检查排气阀杆密封面磨损6M/4000hJY级
安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。
安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1排气阀专用吊具OEM-MAN-BW-VALVE-HOOK1套带隔热手柄
2红外测温仪Fluke 62 Max+1台测量阀杆温度
3密封面检测平板Optical Flat λ/101块用于着色法检查
4着色剂套装Dykem Steel Blue +Developer1套检查接触印痕
2)备品备件
名称规格/型号消耗数量备注
本项目为检查类,无备件消耗(但可能触发MT012)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温清洁剂CRC Brakleen HT100mL清除积碳
2无绒布Kimwipe EX-L5张防刮伤密封面
3防锈油CRC 3-3630mL检查后临时防护
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座);
3)记录检查结果于《排气阀状态档案》。
验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm;
2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。
页码:1/1版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_934fd518-5e85-488e-be09-aa2728a92334.pdf#page=39\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "阀杆", + "组成编码": "040102", + "维修项目名称": "检查排气阀杆密封面磨损", + "维修项目编号": "MT011", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.13 MT011 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT011040102阀杆检查排气阀杆密封面磨损6M/4000hJY级
安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。
安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1排气阀专用吊具OEM-MAN-BW-VALVE-HOOK1套带隔热手柄
2红外测温仪Fluke 62 Max+1台测量阀杆温度
3密封面检测平板Optical Flat λ/101块用于着色法检查
4着色剂套装Dykem Steel Blue +Developer1套检查接触印痕
2)备品备件
名称规格/型号消耗数量备注
本项目为检查类,无备件消耗(但可能触发MT012)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温清洁剂CRC Brakleen HT100mL清除积碳
2无绒布Kimwipe EX-L5张防刮伤密封面
3防锈油CRC 3-3630mL检查后临时防护
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座);
3)记录检查结果于《排气阀状态档案》。
验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm;
2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。
页码:1/1版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_934fd518-5e85-488e-be09-aa2728a92334.pdf#page=39\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换排气阀座", + "编号": "MT012", + "内容": "表 4.14 MT012 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT012040103阀座更换排气阀座2A/16000hJY级
安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。
安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。
序号名称规格/型号数量及单位备注
1便携式阀座镗床SUNNEN SV-201台带角度调节
2液压阀座压装机HYDRA-SEAT-PRESS1台用于过盈配合座
3渗透探伤套装Magnaflux ZL-27A1套PT检测裂纹
4角度规0-90°Protractor1把检查密封锥角
2)备品备件
名称规格/型号消耗数量备注
1排气阀座MAN5L35MC-EXH-SEAT1件Stellite合金堆焊
2定位销(如适用)Φ8×20 mm1个不锈钢
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温镍基焊条ENiCrFe-31根用于焊接固定(如需要)
2清洗剂Brulin 815GD150mL清洁阀座孔
3研磨膏(细)Clover Leaf Green20g配合研磨
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工批准焊接/压装方案
修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座
1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。
2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座);
3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。
页码:1/1 版本号:1
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.14 MT012 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT012040103阀座更换排气阀座2A/16000hJY级
安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。
安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。
序号名称规格/型号数量及单位备注
1便携式阀座镗床SUNNEN SV-201台带角度调节
2液压阀座压装机HYDRA-SEAT-PRESS1台用于过盈配合座
3渗透探伤套装Magnaflux ZL-27A1套PT检测裂纹
4角度规0-90°Protractor1把检查密封锥角
2)备品备件
名称规格/型号消耗数量备注
1排气阀座MAN5L35MC-EXH-SEAT1件Stellite合金堆焊
2定位销(如适用)Φ8×20 mm1个不锈钢
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温镍基焊条ENiCrFe-31根用于焊接固定(如需要)
2清洗剂Brulin 815GD150mL清洁阀座孔
3研磨膏(细)Clover Leaf Green20g配合研磨
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工批准焊接/压装方案
修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座
1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。
2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座);
3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。
页码:1/1 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_a654d966-cd48-4143-b1db-32286e025f22.pdf#page=41\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "阀座", + "组成编码": "040103", + "维修项目名称": "更换排气阀座", + "维修项目编号": "MT012", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.14 MT012 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT012040103阀座更换排气阀座2A/16000hJY级
安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。
安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。
序号名称规格/型号数量及单位备注
1便携式阀座镗床SUNNEN SV-201台带角度调节
2液压阀座压装机HYDRA-SEAT-PRESS1台用于过盈配合座
3渗透探伤套装Magnaflux ZL-27A1套PT检测裂纹
4角度规0-90°Protractor1把检查密封锥角
2)备品备件
名称规格/型号消耗数量备注
1排气阀座MAN5L35MC-EXH-SEAT1件Stellite合金堆焊
2定位销(如适用)Φ8×20 mm1个不锈钢
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温镍基焊条ENiCrFe-31根用于焊接固定(如需要)
2清洗剂Brulin 815GD150mL清洁阀座孔
3研磨膏(细)Clover Leaf Green20g配合研磨
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工批准焊接/压装方案
修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座
1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。
2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座);
3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。
页码:1/1 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_a654d966-cd48-4143-b1db-32286e025f22.pdf#page=41\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换喷油嘴偶件", + "编号": "MT013", + "内容": "表 4.15 MT013 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT013050201喷油嘴偶件更换喷油嘴偶件6M/4000hJY级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火
安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2高压燃油压力表0-20 MPa1个校验有效期内
3喷油雾化测试台Bosch EPS 8151台可测开启压力与雾化角
4扭矩扳手40 -200 N·m1把用于喷油器压紧螺母
名称规格/型号消耗数量备注
1喷油嘴偶件(针阀+阀体)MAN5L35MC-INJ-NOZZLE-KIT1套原厂高精度配对
2喷油器铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
\n\n
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200 mL用于冲洗油道
2 3无绒布 高温润滑脂Kimwipe EX-L5张 少量擦拭偶件表面
4)人力人员Molycote G-1052涂压紧螺纹
序号专业人数技能等级备注
修理步骤及工艺1机械专业2工程师+技师工程师操作测试 台
更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件
(1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5°
无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa;
2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.15 MT013 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT013050201喷油嘴偶件更换喷油嘴偶件6M/4000hJY级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火
安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2高压燃油压力表0-20 MPa1个校验有效期内
3喷油雾化测试台Bosch EPS 8151台可测开启压力与雾化角
4扭矩扳手40 -200 N·m1把用于喷油器压紧螺母
名称规格/型号消耗数量备注
1喷油嘴偶件(针阀+阀体)MAN5L35MC-INJ-NOZZLE-KIT1套原厂高精度配对
2喷油器铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
\\n\\n
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200 mL用于冲洗油道
2 3无绒布 高温润滑脂Kimwipe EX-L5张 少量擦拭偶件表面
4)人力人员Molycote G-1052涂压紧螺纹
序号专业人数技能等级备注
修理步骤及工艺1机械专业2工程师+技师工程师操作测试 台
更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件
(1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5°
无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa;
2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_b333c56d-9e77-429b-88f9-9329465ba601.pdf#page=42\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "喷油嘴偶件", + "组成编码": "050201", + "维修项目名称": "更换喷油嘴偶件", + "维修项目编号": "MT013", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.15 MT013 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT013050201喷油嘴偶件更换喷油嘴偶件6M/4000hJY级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火
安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2高压燃油压力表0-20 MPa1个校验有效期内
3喷油雾化测试台Bosch EPS 8151台可测开启压力与雾化角
4扭矩扳手40 -200 N·m1把用于喷油器压紧螺母
名称规格/型号消耗数量备注
1喷油嘴偶件(针阀+阀体)MAN5L35MC-INJ-NOZZLE-KIT1套原厂高精度配对
2喷油器铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
\\n\\n
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200 mL用于冲洗油道
2 3无绒布 高温润滑脂Kimwipe EX-L5张 少量擦拭偶件表面
4)人力人员Molycote G-1052涂压紧螺纹
序号专业人数技能等级备注
修理步骤及工艺1机械专业2工程师+技师工程师操作测试 台
更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件
(1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5°
无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa;
2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_b333c56d-9e77-429b-88f9-9329465ba601.pdf#page=42\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换高压油泵柱塞偶件", + "编号": "MT014", + "内容": "表 4.16 MT014 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT014050301柱塞偶件更换高压油泵柱塞偶件1A/8000hJY级
安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。
安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖
序号名称规格/型号数量及单位备注
1柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDE1个防止划伤
2供油定时检测仪AVL 5451台测量喷油始点
3精密塞尺0.02-1.00mm1套检查齿条间隙
4扭矩扳手30-150 N·m1把用于泵体检修盖
2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用)
名称规格/型号消耗数量备注
1柱塞+套筒偶件MAN5L35MC-PLUNGER-KIT1套配对编号一致
2出油阀组件MAN 5L35MC-DV-ASSY1套含弹簧、阀座
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高压泵专用润滑油Shell Tellus S4 VX32100mL用于偶件润滑
2密封胶Loctite 577少量泵体结合面(如适用)
3清洗柴油ISO 4020 Grade A300mL冲洗油道
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工确认供油定时
修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m;
(2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA;
验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA;
3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1
\n\n\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.16 MT014 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT014050301柱塞偶件更换高压油泵柱塞偶件1A/8000hJY级
安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。
安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖
序号名称规格/型号数量及单位备注
1柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDE1个防止划伤
2供油定时检测仪AVL 5451台测量喷油始点
3精密塞尺0.02-1.00mm1套检查齿条间隙
4扭矩扳手30-150 N·m1把用于泵体检修盖
2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用)
名称规格/型号消耗数量备注
1柱塞+套筒偶件MAN5L35MC-PLUNGER-KIT1套配对编号一致
2出油阀组件MAN 5L35MC-DV-ASSY1套含弹簧、阀座
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高压泵专用润滑油Shell Tellus S4 VX32100mL用于偶件润滑
2密封胶Loctite 577少量泵体结合面(如适用)
3清洗柴油ISO 4020 Grade A300mL冲洗油道
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工确认供油定时
修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m;
(2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA;
验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA;
3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_e4164aa5-a4e0-42da-8ce9-84075ff9b2f6.pdf#page=43\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "柱塞偶件", + "组成编码": "050301", + "维修项目名称": "更换高压油泵柱塞偶件", + "维修项目编号": "MT014", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.16 MT014 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT014050301柱塞偶件更换高压油泵柱塞偶件1A/8000hJY级
安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。
安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖
序号名称规格/型号数量及单位备注
1柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDE1个防止划伤
2供油定时检测仪AVL 5451台测量喷油始点
3精密塞尺0.02-1.00mm1套检查齿条间隙
4扭矩扳手30-150 N·m1把用于泵体检修盖
2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用)
名称规格/型号消耗数量备注
1柱塞+套筒偶件MAN5L35MC-PLUNGER-KIT1套配对编号一致
2出油阀组件MAN 5L35MC-DV-ASSY1套含弹簧、阀座
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高压泵专用润滑油Shell Tellus S4 VX32100mL用于偶件润滑
2密封胶Loctite 577少量泵体结合面(如适用)
3清洗柴油ISO 4020 Grade A300mL冲洗油道
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工确认供油定时
修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m;
(2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA;
验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA;
3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_e4164aa5-a4e0-42da-8ce9-84075ff9b2f6.pdf#page=43\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换涡轮增压器轴承组件", + "编号": "MT015", + "内容": "表 4.17 MT015 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT015060103轴承组件更换涡轮增压器轴承组件2A/16000hZJ级
安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。
安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。
序号名称规格/型号数量及单位备注
1涡轮增压器专用拆装台Custom-Turbo-Bench1台带V型支撑
2感应加热器EFD Minac 101台温控±5℃
3动平衡检测仪Schenck BALANCER V1台G2.5级精度
4扭矩扳手10-80 N·m1把用于壳体螺栓
2)备品备件
名称规格/型号消耗数量备注
1径向轴承(主轴)MAN TCA77-BRG-RAD1套铜铅合金
2止推轴承组件MANTCA77-BRG-THRUST1套含瓦片+垫片组
3轴封环Carbon Seal Φ60X32个石墨基
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温润滑脂Kluber Isoflex LDS18 Special A15g仅涂轴承外圈
2清洗剂Brulin 815GD200mL清洁轴承座
3密封胶Loctite 518少量壳体结合面
4)人力人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导装配
2电子专业1中级监测振动传感器
\n\n
(如适用)
修理步骤及工艺
更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换;
拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃;
2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.17 MT015 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT015060103轴承组件更换涡轮增压器轴承组件2A/16000hZJ级
安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。
安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。
序号名称规格/型号数量及单位备注
1涡轮增压器专用拆装台Custom-Turbo-Bench1台带V型支撑
2感应加热器EFD Minac 101台温控±5℃
3动平衡检测仪Schenck BALANCER V1台G2.5级精度
4扭矩扳手10-80 N·m1把用于壳体螺栓
2)备品备件
名称规格/型号消耗数量备注
1径向轴承(主轴)MAN TCA77-BRG-RAD1套铜铅合金
2止推轴承组件MANTCA77-BRG-THRUST1套含瓦片+垫片组
3轴封环Carbon Seal Φ60X32个石墨基
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温润滑脂Kluber Isoflex LDS18 Special A15g仅涂轴承外圈
2清洗剂Brulin 815GD200mL清洁轴承座
3密封胶Loctite 518少量壳体结合面
4)人力人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导装配
2电子专业1中级监测振动传感器
\\n\\n
(如适用)
修理步骤及工艺
更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换;
拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃;
2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_409e2d92-62f0-4056-b862-0aa45116ad9d.pdf#page=45\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "轴承组件", + "组成编码": "060103", + "维修项目名称": "更换涡轮增压器轴承组件", + "维修项目编号": "MT015", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.17 MT015 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT015060103轴承组件更换涡轮增压器轴承组件2A/16000hZJ级
安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。
安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。
序号名称规格/型号数量及单位备注
1涡轮增压器专用拆装台Custom-Turbo-Bench1台带V型支撑
2感应加热器EFD Minac 101台温控±5℃
3动平衡检测仪Schenck BALANCER V1台G2.5级精度
4扭矩扳手10-80 N·m1把用于壳体螺栓
2)备品备件
名称规格/型号消耗数量备注
1径向轴承(主轴)MAN TCA77-BRG-RAD1套铜铅合金
2止推轴承组件MANTCA77-BRG-THRUST1套含瓦片+垫片组
3轴封环Carbon Seal Φ60X32个石墨基
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温润滑脂Kluber Isoflex LDS18 Special A15g仅涂轴承外圈
2清洗剂Brulin 815GD200mL清洁轴承座
3密封胶Loctite 518少量壳体结合面
4)人力人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导装配
2电子专业1中级监测振动传感器
\\n\\n
(如适用)
修理步骤及工艺
更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换;
拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃;
2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_409e2d92-62f0-4056-b862-0aa45116ad9d.pdf#page=45\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "清洗空冷器管束芯体", + "编号": "MT016", + "内容": "表 4.18 MT016 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT016060201管束芯体清洗空冷器管束芯体3MZJ级
安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。
安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。
\n\n
序号名称规格/型号数量及单位备注
1高压清洗机Kärcher HD 7/15-41台压力0-5MPa可调
2管束专用清洗喷头Rotating Nozzle 3mm2个自旋式
3风压干燥机Industrial AirDryer1台0.6 MPa
4泄漏测试装置Air/Water LeakTester1套0.4 MPa 保压
\n\n
名称规格/型号消耗数量备注
本项目为清洗 类,无备件消耗 (但可能触发堵 管修复
\n\n
序号名称牌号/品级/规格消耗数量备注
1中性清洗剂Alconox Detojet2kgpH=9.5,环保型
2软化水Deionized Water200L配制清洗液
3防锈剂CRC 3-36100mL清洗后喷涂
\n\n
序号专业人数技能等级备注
1机械专业2中级+初级中级操作高压设备
\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\n\n
1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥
(1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准
1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.18 MT016 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT016060201管束芯体清洗空冷器管束芯体3MZJ级
安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。
安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。
\\n\\n
序号名称规格/型号数量及单位备注
1高压清洗机Kärcher HD 7/15-41台压力0-5MPa可调
2管束专用清洗喷头Rotating Nozzle 3mm2个自旋式
3风压干燥机Industrial AirDryer1台0.6 MPa
4泄漏测试装置Air/Water LeakTester1套0.4 MPa 保压
\\n\\n
名称规格/型号消耗数量备注
本项目为清洗 类,无备件消耗 (但可能触发堵 管修复
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1中性清洗剂Alconox Detojet2kgpH=9.5,环保型
2软化水Deionized Water200L配制清洗液
3防锈剂CRC 3-36100mL清洗后喷涂
\\n\\n
序号专业人数技能等级备注
1机械专业2中级+初级中级操作高压设备
\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\\n\\n
1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥
(1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准
1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_35c6181a-f8c1-4baa-9e11-c605d980ad41.pdf#page=47\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "管束芯体", + "组成编码": "060201", + "维修项目名称": "清洗空冷器管束芯体", + "维修项目编号": "MT016", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.18 MT016 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT016060201管束芯体清洗空冷器管束芯体3MZJ级
安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。
安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。
\\n\\n
序号名称规格/型号数量及单位备注
1高压清洗机Kärcher HD 7/15-41台压力0-5MPa可调
2管束专用清洗喷头Rotating Nozzle 3mm2个自旋式
3风压干燥机Industrial AirDryer1台0.6 MPa
4泄漏测试装置Air/Water LeakTester1套0.4 MPa 保压
\\n\\n
名称规格/型号消耗数量备注
本项目为清洗 类,无备件消耗 (但可能触发堵 管修复
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1中性清洗剂Alconox Detojet2kgpH=9.5,环保型
2软化水Deionized Water200L配制清洗液
3防锈剂CRC 3-36100mL清洗后喷涂
\\n\\n
序号专业人数技能等级备注
1机械专业2中级+初级中级操作高压设备
\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\\n\\n
1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥
(1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准
1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_35c6181a-f8c1-4baa-9e11-c605d980ad41.pdf#page=47\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "修复连杆大端轴承异常磨损", + "编号": "T017", + "内容": "表 4.19 MT017 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
T017030200连杆大端轴承修复连杆大端轴承异常磨损故障触发ZJ级
安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。
安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。
序号名称规格/型号数量及单位备注
1防爆型扫气箱清洗机器人SCB-CLEANBOT-X11台自动高压水射流
2内窥镜(防爆)GE Mentor VisualiQ-Ex1台检查缸套下部
3红外热像仪FLIR T8601台检测局部热点
4可燃气体检测仪MSA Altair 5X1台多气体复合
2)备品备件
名称规格/型号消耗数量备注
1全套活塞环组MAN5L35MC-RING-SET1套含1-4号环
2活塞头(如需更换)MAN5L35MC-PISTON-HEAD1件铸钢整体式
3扫气口密封条Viton Strip 5×10mm若干更换烧损件
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1生物降解清洗剂Envirox SC-905L清除碳化油泥
2耐高温防火毯Fiberglass Mat1200°C2m局部隔热防护
3防锈剂CRC 3-36200mL修复后防护
4)人力人员人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工主导故障分析
2安全监督1高级安全员全程监护受限空间作业
修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头;
2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。
验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。
页码:1/1版本号:1
\n\n\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.19 MT017 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
T017030200连杆大端轴承修复连杆大端轴承异常磨损故障触发ZJ级
安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。
安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。
序号名称规格/型号数量及单位备注
1防爆型扫气箱清洗机器人SCB-CLEANBOT-X11台自动高压水射流
2内窥镜(防爆)GE Mentor VisualiQ-Ex1台检查缸套下部
3红外热像仪FLIR T8601台检测局部热点
4可燃气体检测仪MSA Altair 5X1台多气体复合
2)备品备件
名称规格/型号消耗数量备注
1全套活塞环组MAN5L35MC-RING-SET1套含1-4号环
2活塞头(如需更换)MAN5L35MC-PISTON-HEAD1件铸钢整体式
3扫气口密封条Viton Strip 5×10mm若干更换烧损件
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1生物降解清洗剂Envirox SC-905L清除碳化油泥
2耐高温防火毯Fiberglass Mat1200°C2m局部隔热防护
3防锈剂CRC 3-36200mL修复后防护
4)人力人员人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工主导故障分析
2安全监督1高级安全员全程监护受限空间作业
修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头;
2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。
验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_6daa944c-849a-4f46-8a4a-342424b06d3b.pdf#page=48\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "连杆大端轴承", + "组成编码": "030200", + "维修项目名称": "修复连杆大端轴承异常磨损", + "维修项目编号": "T017", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.19 MT017 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
T017030200连杆大端轴承修复连杆大端轴承异常磨损故障触发ZJ级
安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。
安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。
序号名称规格/型号数量及单位备注
1防爆型扫气箱清洗机器人SCB-CLEANBOT-X11台自动高压水射流
2内窥镜(防爆)GE Mentor VisualiQ-Ex1台检查缸套下部
3红外热像仪FLIR T8601台检测局部热点
4可燃气体检测仪MSA Altair 5X1台多气体复合
2)备品备件
名称规格/型号消耗数量备注
1全套活塞环组MAN5L35MC-RING-SET1套含1-4号环
2活塞头(如需更换)MAN5L35MC-PISTON-HEAD1件铸钢整体式
3扫气口密封条Viton Strip 5×10mm若干更换烧损件
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1生物降解清洗剂Envirox SC-905L清除碳化油泥
2耐高温防火毯Fiberglass Mat1200°C2m局部隔热防护
3防锈剂CRC 3-36200mL修复后防护
4)人力人员人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工主导故障分析
2安全监督1高级安全员全程监护受限空间作业
修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头;
2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。
验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_6daa944c-849a-4f46-8a4a-342424b06d3b.pdf#page=48\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "修复活塞头部烧蚀熔损", + "编号": "MT018", + "内容": "表 4.20 MT018 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT018030201活塞头修复活塞头部烧蚀熔损故障触发ZJ级
安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。
安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。
序号名称规格/型号数量及单位备注
1等离子堆焊机PLASMAD 50001台自动送粉
2热处理炉Box Furnace 800° C1台控温±10℃
3超声波探伤仪Olympus Epoch 6501台检测内部缺陷
4三维扫描仪FARO Arm Quantum1台修复前后形貌比对
2)备品备件
名称规格/型号消耗数量备注
1本项目为修复类,通常不消耗新活塞(除非报废)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1镍基合金焊粉INCONEL 625300g耐高温抗烧蚀
2渗透探伤剂Magnaflux ZL-27A1套PT检测裂纹
3保温棉Ceramic FiberBlanket2 kg焊后包裹缓冷
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+高级技师总工批准修复方案
2焊接专业1高级焊工(ASMEIX认证)执行堆焊
\n\n
修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理
3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证
2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm);
3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.20 MT018 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT018030201活塞头修复活塞头部烧蚀熔损故障触发ZJ级
安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。
安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。
序号名称规格/型号数量及单位备注
1等离子堆焊机PLASMAD 50001台自动送粉
2热处理炉Box Furnace 800° C1台控温±10℃
3超声波探伤仪Olympus Epoch 6501台检测内部缺陷
4三维扫描仪FARO Arm Quantum1台修复前后形貌比对
2)备品备件
名称规格/型号消耗数量备注
1本项目为修复类,通常不消耗新活塞(除非报废)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1镍基合金焊粉INCONEL 625300g耐高温抗烧蚀
2渗透探伤剂Magnaflux ZL-27A1套PT检测裂纹
3保温棉Ceramic FiberBlanket2 kg焊后包裹缓冷
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+高级技师总工批准修复方案
2焊接专业1高级焊工(ASMEIX认证)执行堆焊
\\n\\n
修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理
3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证
2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm);
3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_ce42d490-31ba-4c97-afad-26cf5192f901.pdf#page=50\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "活塞头", + "组成编码": "030201", + "维修项目名称": "修复活塞头部烧蚀熔损", + "维修项目编号": "MT018", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.20 MT018 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT018030201活塞头修复活塞头部烧蚀熔损故障触发ZJ级
安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。
安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。
序号名称规格/型号数量及单位备注
1等离子堆焊机PLASMAD 50001台自动送粉
2热处理炉Box Furnace 800° C1台控温±10℃
3超声波探伤仪Olympus Epoch 6501台检测内部缺陷
4三维扫描仪FARO Arm Quantum1台修复前后形貌比对
2)备品备件
名称规格/型号消耗数量备注
1本项目为修复类,通常不消耗新活塞(除非报废)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1镍基合金焊粉INCONEL 625300g耐高温抗烧蚀
2渗透探伤剂Magnaflux ZL-27A1套PT检测裂纹
3保温棉Ceramic FiberBlanket2 kg焊后包裹缓冷
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+高级技师总工批准修复方案
2焊接专业1高级焊工(ASMEIX认证)执行堆焊
\\n\\n
修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理
3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证
2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm);
3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_ce42d490-31ba-4c97-afad-26cf5192f901.pdf#page=50\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "排除喷油器雾化不良故障", + "编号": "MT019", + "内容": "表 4.21 MT019 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0190502喷油器组件排除喷油器雾化不良故障1UZJ级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2喷油雾化测试台Bosch EPS815或等效1台可调压、可视窗
3扭矩扳手40-200 N·m1把用于压紧螺母回装
名称规格/型号消耗数量备注
1喷油嘴偶件MAN5L35MC-INJ-NOZZLE-KIT1套原厂配对
2铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200mL冲洗油道
2无绒布Kimwipe EX-L5张
3高温润滑脂Molycote G-1052少量
4)人力人员
序号专业人数技能等级
1机械专业2高级+中级
修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m;
2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。
验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。
页码:1/1版本号:1
\n\n\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.21 MT019 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0190502喷油器组件排除喷油器雾化不良故障1UZJ级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2喷油雾化测试台Bosch EPS815或等效1台可调压、可视窗
3扭矩扳手40-200 N·m1把用于压紧螺母回装
名称规格/型号消耗数量备注
1喷油嘴偶件MAN5L35MC-INJ-NOZZLE-KIT1套原厂配对
2铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200mL冲洗油道
2无绒布Kimwipe EX-L5张
3高温润滑脂Molycote G-1052少量
4)人力人员
序号专业人数技能等级
1机械专业2高级+中级
修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m;
2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。
验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3f9bb979-7000-46a7-bdb1-01ff0824fd89.pdf#page=51\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "喷油器组件", + "组成编码": "0502", + "维修项目名称": "排除喷油器雾化不良故障", + "维修项目编号": "MT019", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.21 MT019 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0190502喷油器组件排除喷油器雾化不良故障1UZJ级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2喷油雾化测试台Bosch EPS815或等效1台可调压、可视窗
3扭矩扳手40-200 N·m1把用于压紧螺母回装
名称规格/型号消耗数量备注
1喷油嘴偶件MAN5L35MC-INJ-NOZZLE-KIT1套原厂配对
2铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200mL冲洗油道
2无绒布Kimwipe EX-L5张
3高温润滑脂Molycote G-1052少量
4)人力人员
序号专业人数技能等级
1机械专业2高级+中级
修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m;
2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。
验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3f9bb979-7000-46a7-bdb1-01ff0824fd89.pdf#page=51\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "排除主机功率异常波动故障", + "编号": "MT020", + "内容": "表 4.22 MT020 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT02001机座与机架组件排除主机功率异常波动故障1UZJ级
安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。
安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。
序号名称规格/型号数量及单位备注
1主机监控系统(PMS)Integrated BridgeSystem1套读取实时功率曲线
2调速器性能测试仪 Woodward Test Bench1台检测响应滞后
3燃油黏度计MarconiViscotester1台测 HFO黏度
4多通道数据记录仪DataTaker DT801套同步录负荷/转速
2)备品
名称规格/型号消耗数量备注
1调速器伺服阀滤芯OEM-GOV-FILTER1个如堵塞
2燃油温度传感器PT100,0-200°C1个如漂移
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1标准测试燃油ISO 8217 RMG380300L用于稳定测试
2密封胶Loctite 577少量传感器安装
4)人力人员人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导系统分析
2自动化专业1中级负责调速器信号检测
修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。
分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。
针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟;
验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下);
3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1
\n\n\n5器材保障\n5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n
序号名称规格/型号生产单位通用/专用体积山重量8)参考价(元)存放位置备注
1液压升降平台HLP-3000OEM 或市场品专用120045085,000主机车间东侧工具架A区用于接近主机上部
2扭矩扳手TB-200N·mOEM 或市场品通用32.51,200工具柜 B-02精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FITOEM专用53.82,500主机备件柜M-07厂家配套
4工业吸油泵VAC-0IL50OEM 或市场品专用25186,800油料间防爆柜防爆型
5激光对SKF TKSA 71SKF专用84.298,000精密仪器室轴承
中仪C-01同轴度检测
6塞尺组0.02 - 1.00 mm市品通用0.80.6180量具盒D-05精度土0.005m
7液压拉伸器HYTORCAVANTI-10 /RS-20HYTORC专用302242,000螺栓工具架E区用于地脚螺栓/连杆螺栓
8内径千分尺200-300mm /40-50mmMitutoyo 等通用21.43,600量具柜F-03校验有效期内
9精密千分表 Mitutoyo543-791DMitutoyo专用1.20.94,200精密仪器室C-02分辨率0.001mm
10磁力表座Starrett 16BStarrett通用1.51.81,500量具柜F-04带万向关节
11V型支撑架Custom-Crank-V300OEM专用8012018,000曲轴检修平台旁承重≥500kg
12盘车手轮OEM-MAN-BW-PCWOEM专用15125,500主机附件箱G-01原厂配套
13内窥镜GE MentorVisual iQ /iQ-ExGE专用63.575,000探伤设备柜H-02防爆型用于故障排查
14轴承安装导向套OEM-MAN-BW-BG-04OEM专用45.23,800轴承装配区I-03防止瓦片移位
15活塞吊装专用吊具 OEM-MAN-BW-PST-05OEM专用202812,000吊具架J-01带缓冲橡胶夹头
16感应加热器EFD InductionMinac 16 /EFD专用453568,000热装工具区K-02温控精度
序号名称规格/型号生产单位通用/专用体积U重量(kg)参考价(元)存放位置备注
Minac 10±5℃
17铜棒与塑料锤Φ20×300 mm市品通用22.1150普通工具箱L-05用于轻敲装配
18活塞环压缩器OEM-MAN-BW-RCC-06OEM专用86.54,200活塞维修台M-03适配350活塞
19环槽清洁刮刀Custom-Piston-Groove-ScraperOEM专用0.50.4320活塞工具盒N-01铜质加
20环口定位夹具Custom-Ring-AlignerOEM专用32.31,800活塞维修台M-04控制环开□相位
21缸套拔出器OEM-MAN-BW-LINER-PULLOEM专用25329,500缸体检修区0-02螺纹顶压式
22液压压装机HYDRA-PRESS-50TOEM或市品专用600800180,000压装工位P区带压力与位移监控
23冷却水腔密封测试仪LeakTest-CT300OEM专用181528,000密封测试台Q-010.3MPa保压
24深度规0-150mm/0-300mm市品通用10.7600量具柜F-05
25放大镜(带LED)5×/10×withscale/light市品通用0.60.3220检验工具盒R-01检查裂纹/印痕
26防爆LED手电Streamlight88040Streamlight专用0.40.51,100防爆工具柜S-0124V安全电压
27清洁气枪Industrial AirBlow Gun市品通用1.20.9180气动工具架T-02压力≤0.5MPa
28排气阀专用吊具OEM-MAN-BW-VALVE-HOOKOEM专用12166,200阀件吊装区U-01带隔热手柄
29红外测温仪Fluke 62 Max+Fluke通用0.80.352,400电子仪表柜V-03测量高温
序号名称规格/型号生产单位通用/专用体积山重量(kg)参考价(元)存放位置备注
部件
30密封面检测平板Optical Flat/10市品专用10815,000精密测量台W-01着色法检查
31便携式阀座镗床SUNNEN SV-20SUNNEN专用9075130,000阀维修区X-01带角度调节
32液压阀座压装机 HYDRA-SEAT-PRESSOEM专用12018078,000阀维修区X-02过盈配合
33角度规0-90°Protractor市品通用1.51.2300量具柜F-06检查锥角
34喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCHOEM专用43.62,800喷油器工具箱Y-01防滑齿设计
35高压燃油压力表0-20 MPa市品通用0.90.8950仪表校验柜Z-02校验有效期内
36喷油雾化测试台Bosch EPS 815Bosch专用200220220,000喷油器测试室AA-01测开启压力与雾化角
37柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDEOEM专用21.71,600喷油泵维修台AB-02防划伤
38供油定时检测仪AVL 545AVL专用151285,000燃油系统测试区AC-01测喷油始点
39涡轮增压器专用拆装台Custom-Turbo-BenchOEM专用30040095,000增压器维修区AD-01带V型支撑
40动平衡检测仪SchenckBALANCER VSchenck专用500600680,000平衡实验室AE-01G2.5级精度
41高压清洗机Kärcher HD7/15-4Karcher通用806532,000清洗站 AF-01压力0-5MPa可调
42管束专RotatingOEM专用0.30.2800清洗配件柜自旋
序号名称规格/型号生产单位通用/专用体积U重量8)参考价(元)存放位置备注
用清洗喷头Nozzle 3mm5AG-01
43风压干燥机Industrial AirDryer市品通用1209025,000空压站 AH-010.6MPa
44泄漏测试装置Air/Water LeakTesterOEM专用252036,000密封测试台Q-020.4MPa保压
45防爆型扫气箱清洗机器人SCB-CLEANBOT-X1OEM专用150130420,000机器人存放区AI-01自动高压水射流
46红外热像仪FLIR T860FLIR专用52.1120,000电气检测室AJ-01检测热点
47可燃气体检测仪MSA Altair 5XMSA专用10.78,500安全设备柜AK-01多气体复合
48等离子堆焊机PLASMAD 5000OEM专用400350580,000焊接修复区AL-01自动送粉
49热处理炉Box Furnace800°COEM专用10001200320,000热处理间AM-01控温土10℃
50超声波探伤仪Olympus Epoch650Olympus专用63.295,000探伤设备柜H-03检测内部缺陷
51三维扫描仪FARO ArmQuantumFARO专用3025750,000测绘室AN-01修复形貌比对
52主机监控系统(PMS)IntegratedBridge System船厂集成专用1,200,000集控室A0-01读取功率曲线
53调速器性能测试仪Woodward TestBenchWoodward专用180200480,000调速器测试间AP-01检测响应滞后
54燃油黏度计MarconiViscotesterMarconi专用12942,000燃油化验室AQ-01测HFO黏度
55多通道数据记录仪DataTaker DT80DataTaker通用32.418,000数据采集柜AR-01同步录负荷/转速
\n\n\n\n\n\n\n\n\n5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n
序号名称牌号/品级/规格生产单位备注
1柴油机专用润滑油 Shell Mysella S5 N80Shell符合MAN 97101标准
2无纺布抹布Industrial Grade市场品不掉屑
3清洗剂CRC Brakleen /Brulin 815GD/ CRC Carbon Clean ProCRC /Brulin多用途清洁
4主机油滤芯MAN B&W 5L35MC-FIL-01MAN原厂件
5机油放油螺塞密封圈Viton Φ22×2.5市场品耐高温氟橡胶
6清洁酒精AR Grade / ≥99.5%市场品
7防锈纸VCI-200市场品
8无绒擦拭布Kimwipe EX-LKimberly-Clark防刮伤
9轴承装配润滑脂 Kluber Isoflex LDS 18Special AKluber仅涂瓦背
10螺纹锁固胶Loctite 2701Henke1用于螺栓(如适用)
11高温装配润滑脂Molycote G-1052Dow Corning活塞销/螺纹
12积碳清洗剂CRC Carbon Clean ProCRC环保型
13防锈油CRC 3-36CRC临时防护
14二硫化钼润滑膏 Molycote BR2 PlusDow Corning涂活塞环外圆
15缸套润滑机油Shell Mysella S5 N80Shell同主滑油
16耐油标记笔Markal Oil-ResistantMarkal标记环开口
17耐高温标记笔Markal 900° FMarkal高温环境
18装配润滑脂 Kluber Isoflex LDS 18Special AKluber缸套外壁
19密封胶Loctite 518 / 577Henke1水腔/泵体法兰
20高温镍基焊条ENiCrFe-3市场品阀座焊接
21研磨膏(细)Clover Leaf GreenClover阀座研配
22清洁柴油ISO 4020 Grade A市场品冲洗油道
23高压泵专用润滑油 Shell Tellus S4 VX 32Shell偶件润滑
24中性清洗剂Alconox DetojetAlconoxpH=9.5,环保
25软化水Deionized Water市场品配清洗液
26生物降解清洗剂Envirox SC-90Envirox清除碳化油泥
27耐高温防火毯Fiberglass Mat 1200°C市场品局部隔热
28镍基合金焊粉INCONEL 625Special Metals堆焊修复
29渗透探伤剂Magnaflux ZL-27AMagnafluxPT检测裂纹
30保温棉Ceramic Fiber Blanket市场品焊后缓冷
31标准测试燃油ISO 8217 RMG380市场品稳定测试用
\n\n\n6 维修安全防护及注意事项汇总表\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\n6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n
序号维修项目安全防护要求备注
1MT001保养机座与机架组件1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡防止误启与油污扩散
2MT002检查主轴承座1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区防止转动伤人
3MT003检测曲轴跳动1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固防止测量中曲轴转动
4MT004更换连杆大端轴承1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区防止异物落入/坠落
5MT005更换连杆小端轴承1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫防止活塞坠落损坏
6MT006 拆检活塞头1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁防爆防误启
2.缸内作业使用≤24V防爆照明
7MT007/008更换活塞环1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩防止工具/异物落入
8MT009 检测缸套磨损1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳高空/旋转风险
9MT010 更换气缸套1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布防水防砸
10MT011 检查排气阀杆1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识防高温/误动作
11MT012 更换排气阀座1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线防金属屑/电击
12MT013/019 更换/排除喷油器1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火防燃防爆
13MT014 更换柱塞偶件隔离燃油系统,LOTO 挂牌上锁防燃油泄漏
14MT015 更换增压器轴承1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫防气体倒流/坠落
15MT016 清洗空冷器1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服防高压水伤人
16MT017 修复连杆异常磨损1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体防复燃/室息
17MT018修复活塞烧蚀1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证防火灾
18MT020 排除功率波动1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范防飞车/电火花
\n\n\n6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n
序号维修项目注意事项备注
1MT0011.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜防烫伤
2MT0021.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间防夹伤
3MT0031.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油防滑脱
4MT0041.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整防损伤
5MT0051.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套防烫/变形
6MT0061.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩防吸入积碳
7MT007/0081.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180°防划伤/装反
8MT0091.冷却水未排空不得测量2.手不得置于千分尺与缸壁间防夹伤
9MT0101.禁用火焰加热缸体2.压装时人员不得站压机正下方防裂纹/砸伤
10MT0111.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜防碎屑/热辐射
11MT0121.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测防热应力/裂纹
12MT013/0191.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装防卡死/污染
13MT0141.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确防相位错误
14MT0151.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形防误判/失效
15MT0161.禁用酸性清洗剂2.清洗压力≤5 MPa防腐蚀/翅片倒伏
16MT0171.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温防自燃
17MT0181.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷防二次裂纹
18MT0201.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认防飞车
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.22 MT020 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT02001机座与机架组件排除主机功率异常波动故障1UZJ级
安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。
安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。
序号名称规格/型号数量及单位备注
1主机监控系统(PMS)Integrated BridgeSystem1套读取实时功率曲线
2调速器性能测试仪 Woodward Test Bench1台检测响应滞后
3燃油黏度计MarconiViscotester1台测 HFO黏度
4多通道数据记录仪DataTaker DT801套同步录负荷/转速
2)备品
名称规格/型号消耗数量备注
1调速器伺服阀滤芯OEM-GOV-FILTER1个如堵塞
2燃油温度传感器PT100,0-200°C1个如漂移
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1标准测试燃油ISO 8217 RMG380300L用于稳定测试
2密封胶Loctite 577少量传感器安装
4)人力人员人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导系统分析
2自动化专业1中级负责调速器信号检测
修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。
分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。
针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟;
验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下);
3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1
\\n\\n\\n5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n
序号名称规格/型号生产单位通用/专用体积山重量8)参考价(元)存放位置备注
1液压升降平台HLP-3000OEM 或市场品专用120045085,000主机车间东侧工具架A区用于接近主机上部
2扭矩扳手TB-200N·mOEM 或市场品通用32.51,200工具柜 B-02精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FITOEM专用53.82,500主机备件柜M-07厂家配套
4工业吸油泵VAC-0IL50OEM 或市场品专用25186,800油料间防爆柜防爆型
5激光对SKF TKSA 71SKF专用84.298,000精密仪器室轴承
中仪C-01同轴度检测
6塞尺组0.02 - 1.00 mm市品通用0.80.6180量具盒D-05精度土0.005m
7液压拉伸器HYTORCAVANTI-10 /RS-20HYTORC专用302242,000螺栓工具架E区用于地脚螺栓/连杆螺栓
8内径千分尺200-300mm /40-50mmMitutoyo 等通用21.43,600量具柜F-03校验有效期内
9精密千分表 Mitutoyo543-791DMitutoyo专用1.20.94,200精密仪器室C-02分辨率0.001mm
10磁力表座Starrett 16BStarrett通用1.51.81,500量具柜F-04带万向关节
11V型支撑架Custom-Crank-V300OEM专用8012018,000曲轴检修平台旁承重≥500kg
12盘车手轮OEM-MAN-BW-PCWOEM专用15125,500主机附件箱G-01原厂配套
13内窥镜GE MentorVisual iQ /iQ-ExGE专用63.575,000探伤设备柜H-02防爆型用于故障排查
14轴承安装导向套OEM-MAN-BW-BG-04OEM专用45.23,800轴承装配区I-03防止瓦片移位
15活塞吊装专用吊具 OEM-MAN-BW-PST-05OEM专用202812,000吊具架J-01带缓冲橡胶夹头
16感应加热器EFD InductionMinac 16 /EFD专用453568,000热装工具区K-02温控精度
序号名称规格/型号生产单位通用/专用体积U重量(kg)参考价(元)存放位置备注
Minac 10±5℃
17铜棒与塑料锤Φ20×300 mm市品通用22.1150普通工具箱L-05用于轻敲装配
18活塞环压缩器OEM-MAN-BW-RCC-06OEM专用86.54,200活塞维修台M-03适配350活塞
19环槽清洁刮刀Custom-Piston-Groove-ScraperOEM专用0.50.4320活塞工具盒N-01铜质加
20环口定位夹具Custom-Ring-AlignerOEM专用32.31,800活塞维修台M-04控制环开□相位
21缸套拔出器OEM-MAN-BW-LINER-PULLOEM专用25329,500缸体检修区0-02螺纹顶压式
22液压压装机HYDRA-PRESS-50TOEM或市品专用600800180,000压装工位P区带压力与位移监控
23冷却水腔密封测试仪LeakTest-CT300OEM专用181528,000密封测试台Q-010.3MPa保压
24深度规0-150mm/0-300mm市品通用10.7600量具柜F-05
25放大镜(带LED)5×/10×withscale/light市品通用0.60.3220检验工具盒R-01检查裂纹/印痕
26防爆LED手电Streamlight88040Streamlight专用0.40.51,100防爆工具柜S-0124V安全电压
27清洁气枪Industrial AirBlow Gun市品通用1.20.9180气动工具架T-02压力≤0.5MPa
28排气阀专用吊具OEM-MAN-BW-VALVE-HOOKOEM专用12166,200阀件吊装区U-01带隔热手柄
29红外测温仪Fluke 62 Max+Fluke通用0.80.352,400电子仪表柜V-03测量高温
序号名称规格/型号生产单位通用/专用体积山重量(kg)参考价(元)存放位置备注
部件
30密封面检测平板Optical Flat/10市品专用10815,000精密测量台W-01着色法检查
31便携式阀座镗床SUNNEN SV-20SUNNEN专用9075130,000阀维修区X-01带角度调节
32液压阀座压装机 HYDRA-SEAT-PRESSOEM专用12018078,000阀维修区X-02过盈配合
33角度规0-90°Protractor市品通用1.51.2300量具柜F-06检查锥角
34喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCHOEM专用43.62,800喷油器工具箱Y-01防滑齿设计
35高压燃油压力表0-20 MPa市品通用0.90.8950仪表校验柜Z-02校验有效期内
36喷油雾化测试台Bosch EPS 815Bosch专用200220220,000喷油器测试室AA-01测开启压力与雾化角
37柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDEOEM专用21.71,600喷油泵维修台AB-02防划伤
38供油定时检测仪AVL 545AVL专用151285,000燃油系统测试区AC-01测喷油始点
39涡轮增压器专用拆装台Custom-Turbo-BenchOEM专用30040095,000增压器维修区AD-01带V型支撑
40动平衡检测仪SchenckBALANCER VSchenck专用500600680,000平衡实验室AE-01G2.5级精度
41高压清洗机Kärcher HD7/15-4Karcher通用806532,000清洗站 AF-01压力0-5MPa可调
42管束专RotatingOEM专用0.30.2800清洗配件柜自旋
序号名称规格/型号生产单位通用/专用体积U重量8)参考价(元)存放位置备注
用清洗喷头Nozzle 3mm5AG-01
43风压干燥机Industrial AirDryer市品通用1209025,000空压站 AH-010.6MPa
44泄漏测试装置Air/Water LeakTesterOEM专用252036,000密封测试台Q-020.4MPa保压
45防爆型扫气箱清洗机器人SCB-CLEANBOT-X1OEM专用150130420,000机器人存放区AI-01自动高压水射流
46红外热像仪FLIR T860FLIR专用52.1120,000电气检测室AJ-01检测热点
47可燃气体检测仪MSA Altair 5XMSA专用10.78,500安全设备柜AK-01多气体复合
48等离子堆焊机PLASMAD 5000OEM专用400350580,000焊接修复区AL-01自动送粉
49热处理炉Box Furnace800°COEM专用10001200320,000热处理间AM-01控温土10℃
50超声波探伤仪Olympus Epoch650Olympus专用63.295,000探伤设备柜H-03检测内部缺陷
51三维扫描仪FARO ArmQuantumFARO专用3025750,000测绘室AN-01修复形貌比对
52主机监控系统(PMS)IntegratedBridge System船厂集成专用1,200,000集控室A0-01读取功率曲线
53调速器性能测试仪Woodward TestBenchWoodward专用180200480,000调速器测试间AP-01检测响应滞后
54燃油黏度计MarconiViscotesterMarconi专用12942,000燃油化验室AQ-01测HFO黏度
55多通道数据记录仪DataTaker DT80DataTaker通用32.418,000数据采集柜AR-01同步录负荷/转速
\\n\\n\\n\\n\\n\\n\\n\\n\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n
序号名称牌号/品级/规格生产单位备注
1柴油机专用润滑油 Shell Mysella S5 N80Shell符合MAN 97101标准
2无纺布抹布Industrial Grade市场品不掉屑
3清洗剂CRC Brakleen /Brulin 815GD/ CRC Carbon Clean ProCRC /Brulin多用途清洁
4主机油滤芯MAN B&W 5L35MC-FIL-01MAN原厂件
5机油放油螺塞密封圈Viton Φ22×2.5市场品耐高温氟橡胶
6清洁酒精AR Grade / ≥99.5%市场品
7防锈纸VCI-200市场品
8无绒擦拭布Kimwipe EX-LKimberly-Clark防刮伤
9轴承装配润滑脂 Kluber Isoflex LDS 18Special AKluber仅涂瓦背
10螺纹锁固胶Loctite 2701Henke1用于螺栓(如适用)
11高温装配润滑脂Molycote G-1052Dow Corning活塞销/螺纹
12积碳清洗剂CRC Carbon Clean ProCRC环保型
13防锈油CRC 3-36CRC临时防护
14二硫化钼润滑膏 Molycote BR2 PlusDow Corning涂活塞环外圆
15缸套润滑机油Shell Mysella S5 N80Shell同主滑油
16耐油标记笔Markal Oil-ResistantMarkal标记环开口
17耐高温标记笔Markal 900° FMarkal高温环境
18装配润滑脂 Kluber Isoflex LDS 18Special AKluber缸套外壁
19密封胶Loctite 518 / 577Henke1水腔/泵体法兰
20高温镍基焊条ENiCrFe-3市场品阀座焊接
21研磨膏(细)Clover Leaf GreenClover阀座研配
22清洁柴油ISO 4020 Grade A市场品冲洗油道
23高压泵专用润滑油 Shell Tellus S4 VX 32Shell偶件润滑
24中性清洗剂Alconox DetojetAlconoxpH=9.5,环保
25软化水Deionized Water市场品配清洗液
26生物降解清洗剂Envirox SC-90Envirox清除碳化油泥
27耐高温防火毯Fiberglass Mat 1200°C市场品局部隔热
28镍基合金焊粉INCONEL 625Special Metals堆焊修复
29渗透探伤剂Magnaflux ZL-27AMagnafluxPT检测裂纹
30保温棉Ceramic Fiber Blanket市场品焊后缓冷
31标准测试燃油ISO 8217 RMG380市场品稳定测试用
\\n\\n\\n6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n
序号维修项目安全防护要求备注
1MT001保养机座与机架组件1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡防止误启与油污扩散
2MT002检查主轴承座1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区防止转动伤人
3MT003检测曲轴跳动1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固防止测量中曲轴转动
4MT004更换连杆大端轴承1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区防止异物落入/坠落
5MT005更换连杆小端轴承1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫防止活塞坠落损坏
6MT006 拆检活塞头1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁防爆防误启
2.缸内作业使用≤24V防爆照明
7MT007/008更换活塞环1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩防止工具/异物落入
8MT009 检测缸套磨损1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳高空/旋转风险
9MT010 更换气缸套1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布防水防砸
10MT011 检查排气阀杆1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识防高温/误动作
11MT012 更换排气阀座1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线防金属屑/电击
12MT013/019 更换/排除喷油器1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火防燃防爆
13MT014 更换柱塞偶件隔离燃油系统,LOTO 挂牌上锁防燃油泄漏
14MT015 更换增压器轴承1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫防气体倒流/坠落
15MT016 清洗空冷器1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服防高压水伤人
16MT017 修复连杆异常磨损1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体防复燃/室息
17MT018修复活塞烧蚀1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证防火灾
18MT020 排除功率波动1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范防飞车/电火花
\\n\\n\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n
序号维修项目注意事项备注
1MT0011.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜防烫伤
2MT0021.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间防夹伤
3MT0031.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油防滑脱
4MT0041.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整防损伤
5MT0051.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套防烫/变形
6MT0061.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩防吸入积碳
7MT007/0081.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180°防划伤/装反
8MT0091.冷却水未排空不得测量2.手不得置于千分尺与缸壁间防夹伤
9MT0101.禁用火焰加热缸体2.压装时人员不得站压机正下方防裂纹/砸伤
10MT0111.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜防碎屑/热辐射
11MT0121.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测防热应力/裂纹
12MT013/0191.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装防卡死/污染
13MT0141.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确防相位错误
14MT0151.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形防误判/失效
15MT0161.禁用酸性清洗剂2.清洗压力≤5 MPa防腐蚀/翅片倒伏
16MT0171.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温防自燃
17MT0181.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷防二次裂纹
18MT0201.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认防飞车
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_bfa2402a-7784-4dcf-a836-3569e52ccafc.pdf#page=60\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "机座与机架组件", + "组成编码": "01", + "维修项目名称": "排除主机功率异常波动故障", + "维修项目编号": "MT020", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.22 MT020 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT02001机座与机架组件排除主机功率异常波动故障1UZJ级
安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。
安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。
序号名称规格/型号数量及单位备注
1主机监控系统(PMS)Integrated BridgeSystem1套读取实时功率曲线
2调速器性能测试仪 Woodward Test Bench1台检测响应滞后
3燃油黏度计MarconiViscotester1台测 HFO黏度
4多通道数据记录仪DataTaker DT801套同步录负荷/转速
2)备品
名称规格/型号消耗数量备注
1调速器伺服阀滤芯OEM-GOV-FILTER1个如堵塞
2燃油温度传感器PT100,0-200°C1个如漂移
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1标准测试燃油ISO 8217 RMG380300L用于稳定测试
2密封胶Loctite 577少量传感器安装
4)人力人员人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导系统分析
2自动化专业1中级负责调速器信号检测
修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。
分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。
针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟;
验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下);
3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1
\\n\\n\\n5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n
序号名称规格/型号生产单位通用/专用体积山重量8)参考价(元)存放位置备注
1液压升降平台HLP-3000OEM 或市场品专用120045085,000主机车间东侧工具架A区用于接近主机上部
2扭矩扳手TB-200N·mOEM 或市场品通用32.51,200工具柜 B-02精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FITOEM专用53.82,500主机备件柜M-07厂家配套
4工业吸油泵VAC-0IL50OEM 或市场品专用25186,800油料间防爆柜防爆型
5激光对SKF TKSA 71SKF专用84.298,000精密仪器室轴承
中仪C-01同轴度检测
6塞尺组0.02 - 1.00 mm市品通用0.80.6180量具盒D-05精度土0.005m
7液压拉伸器HYTORCAVANTI-10 /RS-20HYTORC专用302242,000螺栓工具架E区用于地脚螺栓/连杆螺栓
8内径千分尺200-300mm /40-50mmMitutoyo 等通用21.43,600量具柜F-03校验有效期内
9精密千分表 Mitutoyo543-791DMitutoyo专用1.20.94,200精密仪器室C-02分辨率0.001mm
10磁力表座Starrett 16BStarrett通用1.51.81,500量具柜F-04带万向关节
11V型支撑架Custom-Crank-V300OEM专用8012018,000曲轴检修平台旁承重≥500kg
12盘车手轮OEM-MAN-BW-PCWOEM专用15125,500主机附件箱G-01原厂配套
13内窥镜GE MentorVisual iQ /iQ-ExGE专用63.575,000探伤设备柜H-02防爆型用于故障排查
14轴承安装导向套OEM-MAN-BW-BG-04OEM专用45.23,800轴承装配区I-03防止瓦片移位
15活塞吊装专用吊具 OEM-MAN-BW-PST-05OEM专用202812,000吊具架J-01带缓冲橡胶夹头
16感应加热器EFD InductionMinac 16 /EFD专用453568,000热装工具区K-02温控精度
序号名称规格/型号生产单位通用/专用体积U重量(kg)参考价(元)存放位置备注
Minac 10±5℃
17铜棒与塑料锤Φ20×300 mm市品通用22.1150普通工具箱L-05用于轻敲装配
18活塞环压缩器OEM-MAN-BW-RCC-06OEM专用86.54,200活塞维修台M-03适配350活塞
19环槽清洁刮刀Custom-Piston-Groove-ScraperOEM专用0.50.4320活塞工具盒N-01铜质加
20环口定位夹具Custom-Ring-AlignerOEM专用32.31,800活塞维修台M-04控制环开□相位
21缸套拔出器OEM-MAN-BW-LINER-PULLOEM专用25329,500缸体检修区0-02螺纹顶压式
22液压压装机HYDRA-PRESS-50TOEM或市品专用600800180,000压装工位P区带压力与位移监控
23冷却水腔密封测试仪LeakTest-CT300OEM专用181528,000密封测试台Q-010.3MPa保压
24深度规0-150mm/0-300mm市品通用10.7600量具柜F-05
25放大镜(带LED)5×/10×withscale/light市品通用0.60.3220检验工具盒R-01检查裂纹/印痕
26防爆LED手电Streamlight88040Streamlight专用0.40.51,100防爆工具柜S-0124V安全电压
27清洁气枪Industrial AirBlow Gun市品通用1.20.9180气动工具架T-02压力≤0.5MPa
28排气阀专用吊具OEM-MAN-BW-VALVE-HOOKOEM专用12166,200阀件吊装区U-01带隔热手柄
29红外测温仪Fluke 62 Max+Fluke通用0.80.352,400电子仪表柜V-03测量高温
序号名称规格/型号生产单位通用/专用体积山重量(kg)参考价(元)存放位置备注
部件
30密封面检测平板Optical Flat/10市品专用10815,000精密测量台W-01着色法检查
31便携式阀座镗床SUNNEN SV-20SUNNEN专用9075130,000阀维修区X-01带角度调节
32液压阀座压装机 HYDRA-SEAT-PRESSOEM专用12018078,000阀维修区X-02过盈配合
33角度规0-90°Protractor市品通用1.51.2300量具柜F-06检查锥角
34喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCHOEM专用43.62,800喷油器工具箱Y-01防滑齿设计
35高压燃油压力表0-20 MPa市品通用0.90.8950仪表校验柜Z-02校验有效期内
36喷油雾化测试台Bosch EPS 815Bosch专用200220220,000喷油器测试室AA-01测开启压力与雾化角
37柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDEOEM专用21.71,600喷油泵维修台AB-02防划伤
38供油定时检测仪AVL 545AVL专用151285,000燃油系统测试区AC-01测喷油始点
39涡轮增压器专用拆装台Custom-Turbo-BenchOEM专用30040095,000增压器维修区AD-01带V型支撑
40动平衡检测仪SchenckBALANCER VSchenck专用500600680,000平衡实验室AE-01G2.5级精度
41高压清洗机Kärcher HD7/15-4Karcher通用806532,000清洗站 AF-01压力0-5MPa可调
42管束专RotatingOEM专用0.30.2800清洗配件柜自旋
序号名称规格/型号生产单位通用/专用体积U重量8)参考价(元)存放位置备注
用清洗喷头Nozzle 3mm5AG-01
43风压干燥机Industrial AirDryer市品通用1209025,000空压站 AH-010.6MPa
44泄漏测试装置Air/Water LeakTesterOEM专用252036,000密封测试台Q-020.4MPa保压
45防爆型扫气箱清洗机器人SCB-CLEANBOT-X1OEM专用150130420,000机器人存放区AI-01自动高压水射流
46红外热像仪FLIR T860FLIR专用52.1120,000电气检测室AJ-01检测热点
47可燃气体检测仪MSA Altair 5XMSA专用10.78,500安全设备柜AK-01多气体复合
48等离子堆焊机PLASMAD 5000OEM专用400350580,000焊接修复区AL-01自动送粉
49热处理炉Box Furnace800°COEM专用10001200320,000热处理间AM-01控温土10℃
50超声波探伤仪Olympus Epoch650Olympus专用63.295,000探伤设备柜H-03检测内部缺陷
51三维扫描仪FARO ArmQuantumFARO专用3025750,000测绘室AN-01修复形貌比对
52主机监控系统(PMS)IntegratedBridge System船厂集成专用1,200,000集控室A0-01读取功率曲线
53调速器性能测试仪Woodward TestBenchWoodward专用180200480,000调速器测试间AP-01检测响应滞后
54燃油黏度计MarconiViscotesterMarconi专用12942,000燃油化验室AQ-01测HFO黏度
55多通道数据记录仪DataTaker DT80DataTaker通用32.418,000数据采集柜AR-01同步录负荷/转速
\\n\\n\\n\\n\\n\\n\\n\\n\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n
序号名称牌号/品级/规格生产单位备注
1柴油机专用润滑油 Shell Mysella S5 N80Shell符合MAN 97101标准
2无纺布抹布Industrial Grade市场品不掉屑
3清洗剂CRC Brakleen /Brulin 815GD/ CRC Carbon Clean ProCRC /Brulin多用途清洁
4主机油滤芯MAN B&W 5L35MC-FIL-01MAN原厂件
5机油放油螺塞密封圈Viton Φ22×2.5市场品耐高温氟橡胶
6清洁酒精AR Grade / ≥99.5%市场品
7防锈纸VCI-200市场品
8无绒擦拭布Kimwipe EX-LKimberly-Clark防刮伤
9轴承装配润滑脂 Kluber Isoflex LDS 18Special AKluber仅涂瓦背
10螺纹锁固胶Loctite 2701Henke1用于螺栓(如适用)
11高温装配润滑脂Molycote G-1052Dow Corning活塞销/螺纹
12积碳清洗剂CRC Carbon Clean ProCRC环保型
13防锈油CRC 3-36CRC临时防护
14二硫化钼润滑膏 Molycote BR2 PlusDow Corning涂活塞环外圆
15缸套润滑机油Shell Mysella S5 N80Shell同主滑油
16耐油标记笔Markal Oil-ResistantMarkal标记环开口
17耐高温标记笔Markal 900° FMarkal高温环境
18装配润滑脂 Kluber Isoflex LDS 18Special AKluber缸套外壁
19密封胶Loctite 518 / 577Henke1水腔/泵体法兰
20高温镍基焊条ENiCrFe-3市场品阀座焊接
21研磨膏(细)Clover Leaf GreenClover阀座研配
22清洁柴油ISO 4020 Grade A市场品冲洗油道
23高压泵专用润滑油 Shell Tellus S4 VX 32Shell偶件润滑
24中性清洗剂Alconox DetojetAlconoxpH=9.5,环保
25软化水Deionized Water市场品配清洗液
26生物降解清洗剂Envirox SC-90Envirox清除碳化油泥
27耐高温防火毯Fiberglass Mat 1200°C市场品局部隔热
28镍基合金焊粉INCONEL 625Special Metals堆焊修复
29渗透探伤剂Magnaflux ZL-27AMagnafluxPT检测裂纹
30保温棉Ceramic Fiber Blanket市场品焊后缓冷
31标准测试燃油ISO 8217 RMG380市场品稳定测试用
\\n\\n\\n6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n
序号维修项目安全防护要求备注
1MT001保养机座与机架组件1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡防止误启与油污扩散
2MT002检查主轴承座1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区防止转动伤人
3MT003检测曲轴跳动1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固防止测量中曲轴转动
4MT004更换连杆大端轴承1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区防止异物落入/坠落
5MT005更换连杆小端轴承1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫防止活塞坠落损坏
6MT006 拆检活塞头1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁防爆防误启
2.缸内作业使用≤24V防爆照明
7MT007/008更换活塞环1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩防止工具/异物落入
8MT009 检测缸套磨损1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳高空/旋转风险
9MT010 更换气缸套1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布防水防砸
10MT011 检查排气阀杆1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识防高温/误动作
11MT012 更换排气阀座1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线防金属屑/电击
12MT013/019 更换/排除喷油器1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火防燃防爆
13MT014 更换柱塞偶件隔离燃油系统,LOTO 挂牌上锁防燃油泄漏
14MT015 更换增压器轴承1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫防气体倒流/坠落
15MT016 清洗空冷器1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服防高压水伤人
16MT017 修复连杆异常磨损1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体防复燃/室息
17MT018修复活塞烧蚀1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证防火灾
18MT020 排除功率波动1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范防飞车/电火花
\\n\\n\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n
序号维修项目注意事项备注
1MT0011.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜防烫伤
2MT0021.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间防夹伤
3MT0031.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油防滑脱
4MT0041.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整防损伤
5MT0051.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套防烫/变形
6MT0061.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩防吸入积碳
7MT007/0081.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180°防划伤/装反
8MT0091.冷却水未排空不得测量2.手不得置于千分尺与缸壁间防夹伤
9MT0101.禁用火焰加热缸体2.压装时人员不得站压机正下方防裂纹/砸伤
10MT0111.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜防碎屑/热辐射
11MT0121.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测防热应力/裂纹
12MT013/0191.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装防卡死/污染
13MT0141.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确防相位错误
14MT0151.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形防误判/失效
15MT0161.禁用酸性清洗剂2.清洗压力≤5 MPa防腐蚀/翅片倒伏
16MT0171.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温防自燃
17MT0181.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷防二次裂纹
18MT0201.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认防飞车
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_bfa2402a-7784-4dcf-a836-3569e52ccafc.pdf#page=60\"}]" + } + }, + { + "type": "安全警告", + "properties": { + "名称": "发动机的安全警告", + "概述": "本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。", + "警告": "1.1 警告\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。", + "注意": "1.2 注意\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "内容": "1 安全警告\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\n1.1 警告\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\n1.2 注意\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"1 安全警告\\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\\n1.1 警告\\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\\n1.2 注意\\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\\n6) 所有密封件(O形圈、金属密封环)拆装必换。\\n7) 紧固件必须按规定力矩和顺序紧固。\\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_4fcabb82-02ab-49a9-8a9a-16af0fb6477e.pdf#page=3\"}]" + } + }, + { + "type": "功能", + "properties": { + "名称": "发动机的功能", + "内容": "2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑;\n2) 曲柄连杆机构:实现往复—旋转运动转换;\n3) 燃烧室部件:完成燃烧做功;\n4) 排气阀驱动系统:控制废气排放;\n5) 燃油喷射系统:完成燃油定时、定量喷射;\n6) 扫气与增压系统:提高换气效率与功率密度。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"2.1 主要功能\\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\\n发动机主要由以下子系统组成:\\n1) 机座与机架组件:承载与结构支撑;\\n2) 曲柄连杆机构:实现往复—旋转运动转换;\\n3) 燃烧室部件:完成燃烧做功;\\n4) 排气阀驱动系统:控制废气排放;\\n5) 燃油喷射系统:完成燃油定时、定量喷射;\\n6) 扫气与增压系统:提高换气效率与功率密度。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_d9af3a31-8ac8-4a27-a14a-a5650442afca.pdf#page=4\"}]" + } + }, + { + "type": "环境条件", + "properties": { + "名称": "发动机的环境条件", + "内容": "2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件\n长期纵倾:±5°;横倾:±15°;\n短期纵摇: $\\pm 1 0 ^ { \\circ } \\mathrm { ~ ~ { ~ ( ~ 5 \\sim 8 ~ \\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\pm 4 5 ^ { \\circ } \\mathrm { ~ ~ { ~ ( 8 \\sim 1 3 ~ s ) } ~ }$\n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$\n相对湿度:≤93%(40 ℃)。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"2.2 工作条件\\n2.2.1 正常运行条件\\n1)环境条件\\n长期纵倾:±5°;横倾:±15°;\\n短期纵摇: $\\\\pm 1 0 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( ~ 5 \\\\sim 8 ~ \\\\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\\\pm 4 5 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( 8 \\\\sim 1 3 ~ s ) } ~ }$\\n环境温度: $+ 5 \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } \\\\sim \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ + 5 5 ~ \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } ~ }$\\n相对湿度:≤93%(40 ℃)。\\n2)能源条件\\n表 2.1 冷水机组正常使用时的能源条件\\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\\n2.2.2 非正常运行条件\\n表 2.2 非正常输入条件及产生后果\\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\\n表 2.3 设备故障非正常输出条件及可能产生后果\\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_cb835a58-a43b-49ba-b0e9-b129bda925ad.pdf#page=4\"}]" + } + }, + { + "type": "基本情况", + "properties": { + "名称": "发动机的基本情况", + "主要功能": "2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑;\n2) 曲柄连杆机构:实现往复—旋转运动转换;\n3) 燃烧室部件:完成燃烧做功;\n4) 排气阀驱动系统:控制废气排放;\n5) 燃油喷射系统:完成燃油定时、定量喷射;\n6) 扫气与增压系统:提高换气效率与功率密度。", + "工作条件": "2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件\n长期纵倾:±5°;横倾:±15°;\n短期纵摇: $\\pm 1 0 ^ { \\circ } \\mathrm { ~ ~ { ~ ( ~ 5 \\sim 8 ~ \\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\pm 4 5 ^ { \\circ } \\mathrm { ~ ~ { ~ ( 8 \\sim 1 3 ~ s ) } ~ }$\n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$\n相对湿度:≤93%(40 ℃)。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "内容": "2 概述\n2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑;\n2) 曲柄连杆机构:实现往复—旋转运动转换;\n3) 燃烧室部件:完成燃烧做功;\n4) 排气阀驱动系统:控制废气排放;\n5) 燃油喷射系统:完成燃油定时、定量喷射;\n6) 扫气与增压系统:提高换气效率与功率密度。\n2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件\n长期纵倾:±5°;横倾:±15°;\n短期纵摇: $\\pm 1 0 ^ { \\circ } \\mathrm { ~ ~ { ~ ( ~ 5 \\sim 8 ~ \\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\pm 4 5 ^ { \\circ } \\mathrm { ~ ~ { ~ ( 8 \\sim 1 3 ~ s ) } ~ }$\n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$\n相对湿度:≤93%(40 ℃)。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"2 概述\\n2.1 主要功能\\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\\n发动机主要由以下子系统组成:\\n1) 机座与机架组件:承载与结构支撑;\\n2) 曲柄连杆机构:实现往复—旋转运动转换;\\n3) 燃烧室部件:完成燃烧做功;\\n4) 排气阀驱动系统:控制废气排放;\\n5) 燃油喷射系统:完成燃油定时、定量喷射;\\n6) 扫气与增压系统:提高换气效率与功率密度。\\n2.2 工作条件\\n2.2.1 正常运行条件\\n1)环境条件\\n长期纵倾:±5°;横倾:±15°;\\n短期纵摇: $\\\\pm 1 0 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( ~ 5 \\\\sim 8 ~ \\\\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\\\pm 4 5 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( 8 \\\\sim 1 3 ~ s ) } ~ }$\\n环境温度: $+ 5 \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } \\\\sim \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ + 5 5 ~ \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } ~ }$\\n相对湿度:≤93%(40 ℃)。\\n2)能源条件\\n表 2.1 冷水机组正常使用时的能源条件\\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\\n2.2.2 非正常运行条件\\n表 2.2 非正常输入条件及产生后果\\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\\n表 2.3 设备故障非正常输出条件及可能产生后果\\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8f1569bb-15ae-48a7-b876-5f88ce2a265c.pdf#page=4\"}]" + } + }, + { + "type": "组成", + "properties": { + "名称": "发动机的组成", + "内容": "3.1 组成\n船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\n图 3.1 船舶主发动机组成图\nimages/fdb1588e2f75e0e8a15a765fd0e2c1e3b5a3cc0a623d68df5ab0f4230839e240.jpg\n表 3.1 船舶主发动机组成部分\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.1 组成\\n船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\\n图 3.1 船舶主发动机组成图\\nimages/fdb1588e2f75e0e8a15a765fd0e2c1e3b5a3cc0a623d68df5ab0f4230839e240.jpg\\n表 3.1 船舶主发动机组成部分\\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_987bb73e-0a19-4804-bd8b-740633a1004c.pdf#page=5\"}]" + } + }, + { + "type": "工作原理", + "properties": { + "名称": "发动机的工作原理", + "内容": "3.2 工作原理\n主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\n船舶主发动机工作原理\n图 3.2 船舶主发动机组成图\nimages/ae9bcbc029d318bd8189bbb9c67cd730ea4c950b1e383ed8454834040d7d16ae.jpg\n图 3.3 机座与机架组件整体图\nimages/8adac92aca5096dde35f5be2420796b45d0e94ca723aae8ba857624de66aa758.jpg\n图 3.4 曲柄连杆机构工作原理图\nimages/23fa41fea5e5b5458d6f7df3f8e7e8033b6665bd23203946646651c3e56c2da7.jpg\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\n图 3.5 燃烧室部件工作原理图\nimages/ebfc008f330e9041518542ffd9cde5df5143a441eaada1b7e225cef8063aa904.jpg\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\n图 3.6 排气阀驱动系统工作原理图\nimages/bd853c17f04663c1afbaa7935da38fddd1bc94764f23539c044fdf3fc0ca42ed.jpg\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\n核心原理与步骤\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\n图 3.7 燃油喷射系统工作原理图\nimages/141c6a9ab46f9b8b4bd5ee3355ab569bbd8c17f0436343e32bf4429a742c40d9.jpg\n如图3.7中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\n图 3.8 扫气与增压系统工作原理图\nimages/d21cb32df23febcd28812d8e8d1a0fbfff2bc35be920932d6cd4a166663f1de4.jpg\n用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 700-900°C 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.2 工作原理\\n主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\\n船舶主发动机工作原理\\n图 3.2 船舶主发动机组成图\\nimages/ae9bcbc029d318bd8189bbb9c67cd730ea4c950b1e383ed8454834040d7d16ae.jpg\\n图 3.3 机座与机架组件整体图\\nimages/8adac92aca5096dde35f5be2420796b45d0e94ca723aae8ba857624de66aa758.jpg\\n图 3.4 曲柄连杆机构工作原理图\\nimages/23fa41fea5e5b5458d6f7df3f8e7e8033b6665bd23203946646651c3e56c2da7.jpg\\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\\n图 3.5 燃烧室部件工作原理图\\nimages/ebfc008f330e9041518542ffd9cde5df5143a441eaada1b7e225cef8063aa904.jpg\\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\\n图 3.6 排气阀驱动系统工作原理图\\nimages/bd853c17f04663c1afbaa7935da38fddd1bc94764f23539c044fdf3fc0ca42ed.jpg\\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\\n核心原理与步骤\\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\\n图 3.7 燃油喷射系统工作原理图\\nimages/141c6a9ab46f9b8b4bd5ee3355ab569bbd8c17f0436343e32bf4429a742c40d9.jpg\\n如图3.7中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\\n图 3.8 扫气与增压系统工作原理图\\nimages/d21cb32df23febcd28812d8e8d1a0fbfff2bc35be920932d6cd4a166663f1de4.jpg\\n用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 700-900°C 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_e3899eeb-febe-4f34-b93e-152cd28a3fe9.pdf#page=9\"}]" + } + }, + { + "type": "技术指标参数", + "properties": { + "名称": "发动机的技术指标参数", + "内容": "3.3 技术指标\n船舶主发动机的基本指标参见表3.2。\n表 3.2 船舶主发动机基本参数\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度≤700cSt@ 50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径 ×行程 500 mm × 2200 mm 平均有效压力(BMEP) ~ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50 ℃ 冷却水进口温度 ≤ 36 ℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25 年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.3 技术指标\\n船舶主发动机的基本指标参见表3.2。\\n表 3.2 船舶主发动机基本参数\\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度≤700cSt@ 50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径 ×行程 500 mm × 2200 mm 平均有效压力(BMEP) ~ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50 ℃ 冷却水进口温度 ≤ 36 ℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25 年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_fe841c75-4516-4760-97f9-564b9eefb74e.pdf#page=11\"}]" + } + }, + { + "type": "接口", + "properties": { + "名称": "发动机的接口", + "内容": "3.4 接口关系\n船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\n1) 安装接口\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48×320 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\n2) 能源接口\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管(040202 / 0503 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\n3) 信息与监测接口\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.4 接口关系\\n船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\\n1) 安装接口\\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48×320 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\\n2) 能源接口\\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管(040202 / 0503 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\\n3) 信息与监测接口\\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_0a6e660d-c85d-4ca9-aa75-9f41252a8086.pdf#page=13\"}]" + } + }, + { + "type": "布置情况", + "properties": { + "名称": "发动机的布置情况", + "内容": "3.5 布置情况\n全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\n船舶主发动机布置情况见表 3.3。\n表 3.3 船舶主发动机布置情况\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵触线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.5 布置情况\\n全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\\n船舶主发动机布置情况见表 3.3。\\n表 3.3 船舶主发动机布置情况\\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵触线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8f08d8fa-0421-4cc0-bc63-4e520a59ff83.pdf#page=14\"}]" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "发动机的维修工作", + "维修项目索引表": "4.1 维修项目索引表\n表 4.1 船舶主发动机维修项目索引表\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 页码 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 20 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/2000h JY级 22 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 24 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JY级 26 MT005 020203 连杆小端轴承 更换连杆小端轴承 2A/12000h JY级 29 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 31 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 33 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 35 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 37 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 40 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 43 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 45 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 47 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 49 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 52 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 54 MT017 020201 连杆大端轴承 修复连杆大端轴承异常磨损 1U ZJ级 57 MT018 030201 活塞头 修复活塞头部烧蚀 1U ZJ级 59 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 61 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 63", + "内容": "4维修工作指导\n4.1 维修项目索引表\n表 4.1 船舶主发动机维修项目索引表\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 页码 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 20 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/2000h JY级 22 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 24 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JY级 26 MT005 020203 连杆小端轴承 更换连杆小端轴承 2A/12000h JY级 29 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 31 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 33 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 35 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 37 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 40 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 43 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 45 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 47 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 49 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 52 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 54 MT017 020201 连杆大端轴承 修复连杆大端轴承异常磨损 1U ZJ级 57 MT018 030201 活塞头 修复活塞头部烧蚀 1U ZJ级 59 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 61 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 63\n4.2 常见故障表\n表 4.2 船舶主发动机常见故障表\n序号 故障现象 故障原因 维修项目 1 主机运行中振动异常增大 主轴承或连杆大端轴承磨损 执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损 曲轴主轴颈跳动超差 执行以下维修项目:MTO03 检测曲轴主轴颈跳动量 2 单缸功率下降、排温偏低 活塞头烧蚀或活塞环断裂 执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀 气缸套严重磨损 执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套 喷油嘴偶件雾化不良 执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障 3 排气温度异常升高 排气阀密封面磨损或阀座烧蚀 执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座 涡轮增压器轴承损坏 执行以下维修项目:MT015 更换涡轮增压器轴承组件 4 扫气箱内发现润滑油泄漏 活塞杆填料函密封失效 执行以下维修项目:MTO01保养机座与机架组件 5 主机启动困难或压缩压力不足 缸盖密封环老化失效 执行以下维修项目:MT001保养机座与机架组件 6 主机功率输出不稳定 喷油器工作不一致 执行以下维修项目:MT019 排除喷油器雾化不良故障 调速系统响应异常 执行以下维修项目:MT020 排除主机功率异常波动故障 7 空冷器后扫气温度持续偏高 空冷器管束芯体结垢或堵塞 执行以下维修项目:MT016 清洗空冷器管束芯体 8 主机润滑油消耗异常增加 活塞环磨损或断裂 执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环 活塞杆填料函磨损 执行以下维修项目:MT001保养机座与机架组件 9 高压燃油管路附近有油渍 高压油管接头密封失效 执行以下维修项目:MT014 更换高压油泵柱塞偶件 10 主机紧急停机 润滑油压力骤降 执行以下维修项目:MT001保养机座与机架组件 多缸燃烧严重失衡 执行以下维修项目:MT020 排除主机功率异常波动故障\n4.3 维修项目表\n本节主要填写各维修项目的修理表,包括预防性、恢复性维修、故障排查项目。\n表 4.3 MT001 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。 安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。 序号 名称 规格/型号 数量及单位 备注 1 液压升降平台 HLP-3000 1台 用于接近主机上部 2 扭矩扳手 TB-200N·m 1把 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT 1套 厂家配套 4 工业吸油泵 VAC-0IL50 1台 防爆型 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 高压燃油泵 HD-45A 2个 原厂件 2 涡轮增压器 TC-80B 1个 耐高温氟橡胶 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 柴油机专用润滑油 Shell Mysella S5N80 50L 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 5张 不掉屑 3 清洗剂 CRC Brakleen 1罐 用于清洁滤座\n4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师 主导保养流程 2 电气专业 1 技师 监控主机ECU状 态 修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识; 3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油; 图 MT001.1旋松螺塞 (2)检查排出机油中是否有金属屑,若有则记录并上报异常。 图MT001.2检查 2)更换机油滤芯\n图 MT001.3 拆卸\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\n图 MT001.4 滤芯安装扭矩示意图\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\n图 MT001.5 滤芯安装扭矩示意图\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\n(2)静置 10 分钟后复查油位,补充至标准范围。\n图 MT001.6 油位检查\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\n图 MT001.7 安装放油螺塞\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\n图 MT001.8 油污清理\n3)拆除“禁止启动”牌,通知集控室保养完成。 验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下); 2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。 页码:2/2 版本号:1\n表 4.4 MT002 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/200h JY级 安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。 安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。 序号 名称 规格/型号 数量及单位 备注 1 激光对中仪 SKF TKSA 71 1套 用于轴承同轴度检测 2 塞尺组 0.02 -1.00 mm 1套 精度±0.005mm 3 液压拉伸器 HYTORC AVANTI-10 1台 用于地脚螺栓预紧 4 内径千分尺 200-300mm 1把 校验有效期内 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁酒精 AR Grade 100mL 2 防锈纸 VCI-200 2张 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;\n图 MT002.1 换油前清洗\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\n图 MT002.2 检查\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\n图 MT002.3 塞尺测量\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\n图 MT002.4 激光对中仪\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\n图 MT002.5 测量轴线偏移量\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\n判定与处理 1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。 验收标准 1.主轴承座与机座结合面间隙≤0.05mm(全周); 2.相邻主轴承同轴度偏差≤0.08 mm/m; 3.地脚螺栓预紧力在设计值 ±5% 范围内。 页码:1/1 版本号:1\n表 4.5 MT003 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。 安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg 序号 名称 规格/型号 数量及单位 备注 1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm 2 磁力表座 Starrett 16B 1个 带万向关节 3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg\n4 盘车手轮 OEM-MAN-BW-PCW 1个 原厂配套\n序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1\n序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 50mL 清洁轴颈表面 2 无绒擦拭布 Kimwipe EX-L 3张 防刮伤轴面\n序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工复刻数据\n图 MT003.1 清洁\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\n图 MT003.2 标记测量基准点\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\n2)安装千分表\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\n图 MT003.3 千分尺\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\n(2)预压千分表 0.3 mm,归零。\n3)盘车测量\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\n(2)跳动量 = 最大值 - 最小值;\n(3)重复上述步骤,依次测量其余主轴颈。\n数据判定\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\n表 4.6 MT004 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JT级 安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。 安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。 序号 名称 规格/型号 数量及单位 备注 1 液压拉伸器 HYTORC RS-20 1套 2 扭矩扳手 Norbar 1500N·m 1把 精度±2% 3 轴承安装导向套 OEM-MAN-BW-BG-04 1个 4 内窥镜 GE Mentor Visual iQ 1台 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆大端轴承上瓦 MAN 5L35MC-BRG-UP 1副 原厂高锡合金 2 连杆大端轴承下瓦 MAN 5L35MC-BRG-DN 1副 3 连杆螺栓 M30 ×2.0 Grade 12.9 2根 次性使用,强制更换 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\n1 轴承装配润滑脂 Kluber Isoflex LDS18 Special A 10g 仅涂瓦背 2 螺纹锁固胶 Loctite 2701 少量 用于螺栓螺纹(如适用) 3 清洗剂 Brulin 815GD 200mL 清洁连杆结合面\n4)人力人员\n序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2x工程师 总工监督关键步骤\n修理步骤及工艺\n更换前提确认\n1)主机已完成停机冷却,滑油系统泄压;\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\n拆卸旧轴承\n1)拆连杆盖\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\n(2)取下螺栓及连杆大端盖,放置于专用托架。\n2)取出旧轴承\n(1)轻敲连杆体侧面,使下瓦自然脱落;\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\n安装新轴承\n1)清洁与检查\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\n(2)目视检查新瓦背面涂层均匀,无裂纹。\n2)装配\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\n(2)将下瓦装入连杆盖,同样对准定位;\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\n3)紧固螺栓\n(1)安装新连杆螺栓,手工旋入到底;\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\n(3)最终用角度法复核(如适用)。\n图 MT004.1 连杆大端轴承结构分解图\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\n表 4.7 MT005 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT005 020203 连杆小段轴承 更换连杆小段轴承 2A/12000h JY级 安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。 安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。 序号 名称 规格/型号 数量及单位 备注 1 活塞吊装专用吊具 OEM-MAN-BW-PST-05 1套 带缓冲橡胶夹头 2 感应加热器 EFD Induction Minac16 1台 温控精度±5℃ 3 内径千分尺 40 - 50 mm 1把 校验有效期内 4 铜棒与塑料锤 Φ20×300 mm 各1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆小端衬套(上) MAN 5L35MC-BUSH-UP 1件 锡青铜基 2 连杆小端衬套(下) MAN 5L35MC-BUSH-DN 1件 3 活塞销卡簧 Φ50×2.5 mm 2个 不锈钢,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\n1 高温装配润滑脂 Molycote G-1052 5g 2 清洗剂 Brulin 815GD 150mL 3 耐高温标记笔 Markal 900°F 1支\n4)人力人员\n序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师主导热装\n修理步骤及工艺\n更换前提确认\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\n拆卸旧衬套\n1)抽出活塞-连杆总成\n(1)拆除缸头、喷油器及冷却水管路;\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\n2)压出旧衬套\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\n安装新衬套\n1)清洁与预装检查\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\n(2)测量座孔内径,记录作为过盈量计算依据。\n2)热装新衬套\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\n(2)迅速将热衬套套入连杆小端,确保完全到位;\n(3)自然冷却至室温,禁止强制冷却。\n3)精铰与研配(如需要)\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\n组装活塞销与卡簧\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\n验收标准 1.衬套与座孔过盈配合牢固,无松动或轴向位移; 2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。 页码:1/1 版本号:1\n表 4.8 MT006 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。 安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配350mm活塞 2 内窥镜 GE Mentor Visual iQ 1台 3 深度规 0-150mm 1把 4 放大镜 10× with scale 1个 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检查类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 积碳清洗剂 CRC Carbon CleanPro 200mL 环保型 2 无纺布 Industrial Grade 5张 3 防锈油 CRC 3-36 50mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。 抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态 1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查 (1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。 判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008; 3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。\n表 4.9 MT007 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。 安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配Φ350 mm活塞 2 环口间隙测量规 Feeler Gauge Set 1套 0.05-1.00mm 3 环槽清洁刮刀 Custom-Piston-Groove-Scraper 1把 铜质刃口 4 扭矩扳手 20-100 N·m 1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第一道压缩环 MAN 5L35MC-RING-1 1件 梯形截面,表面镀铬 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 5g 2 无绒布 Kimwipe EX-L 3张 3 清洗剂 Brulin 815GD 100mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师复刻还口间隙 修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。 验收标准 1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内; 页码:1/1 3.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1\n表 4.10 MT008 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。 安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 同MT007 2 环口定位夹具 Custom-Ring-Aligner 1套 控制各环开口相位 3 放大镜(带LED) 5X with light 1个 检查环体缺陷 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第二道压缩环 MAN 5L35MC-RING-2 1件 锥面环 2 第三道刮油环(组合式) MAN 5L35MC-RING-3 1套 含轨环+弹簧胀圈 3 第四道刮油环(组合式) MAN 5L35MC-RING-4 1套 同上 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 10g 涂所有环外圆 2 缸套润滑机油 Shell Mysella S5N80 50mL 涂缸壁 3 标记笔(耐油) Marka1Oil-Resistant 1支 标记环开口位置 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+ 技师 工程师监督相位布置 修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。 拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。 差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120° (1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证 1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;\n表 4.11 MT009 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。 安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 内径千分尺(三点式) Mitutoyo 204-304 mm 1套 分辨率0.001mm 2 缸套磨损测量记录仪 Custom-Bore-Wear-Log 1台 自动生成磨损曲线 3 防爆LED手电 Streamlight 88040 1个 24V安全电压 4 清洁气枪 Industrial Air BlowGun 1把 压力≤0.5 MPa 2)备品 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检测类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 100mL 清洁测量接触面 2 无绒布 Kimwipe EX-L 5张 防刮伤缸壁 3 防锈纸 VCI-200 2张 测量后临时覆盖 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工审核磨损趋势\n3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略) 验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。 页码:1/1 版本号:1\n表 4.12 MT010 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。 安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。 序号 名称 规格/型号 数量及单位 备注 1 液压压装机 HYDRA-PRESS-50T 1台 带压力与位移监控 2 缸套拔出器 OEM-MAN-BW-LINER-PULL 1套 螺纹顶压式 3 冷却水腔密封测试仪 LeakTest-CT300 1台 0.3 MPa保压 4 深度规 0- 300 mm 1把 测量缸套凸肩高度 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 气缸套总成 MAN5L35MC-LINER-ASSY 1件 含0形圈、定位销 2 缸套水封0形圈 Viton Φ380×5.0 2个 耐高温氟橡胶 3 缸套油封环 NBR Φ352×3.0 1个 下部密封 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 装配润滑脂 Kluber Isoflex LDS18 Special A 20g 涂缸套外壁 2 密封胶 Loctite 518 少量 水腔法兰面(如适用) 3 清洗剂 Brulin 815GD 300mL 清洁缸体座孔 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工监督压装对中\n修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。 3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm; 2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1\n表 4.13 MT011 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。 安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK 1套 带隔热手柄 2 红外测温仪 Fluke 62 Max+ 1台 测量阀杆温度 3 密封面检测平板 Optical Flat λ/10 1块 用于着色法检查 4 着色剂套装 Dykem Steel Blue +Developer 1套 检查接触印痕 2)备品备件 序 名称 规格/型号 消耗数量 备注 一 本项目为检查类,无备件消耗(但可能触发MT012) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温清洁剂 CRC Brakleen HT 100mL 清除积碳 2 无绒布 Kimwipe EX-L 5张 防刮伤密封面 3 防锈油 CRC 3-36 30mL 检查后临时防护 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座); 3)记录检查结果于《排气阀状态档案》。 验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm; 2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。 页码:1/1 版本号:1\n表 4.14 MT012 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。 安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。 序号 名称 规格/型号 数量及单位 备注 1 便携式阀座镗床 SUNNEN SV-20 1台 带角度调节 2 液压阀座压装机 HYDRA-SEAT-PRESS 1台 用于过盈配合座 3 渗透探伤套装 Magnaflux ZL-27A 1套 PT检测裂纹 4 角度规 0-90°Protractor 1把 检查密封锥角 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀座 MAN5L35MC-EXH-SEAT 1件 Stellite合金堆焊 2 定位销(如适用) Φ8×20 mm 1个 不锈钢 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温镍基焊条 ENiCrFe-3 1根 用于焊接固定(如需要) 2 清洗剂 Brulin 815GD 150mL 清洁阀座孔 3 研磨膏(细) Clover Leaf Green 20g 配合研磨 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工批准焊接/压装方案 修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座 1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。 2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座); 3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。 页码:1/1 版本号:1\n表 4.15 MT013 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火 安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 高压燃油压力表 0-20 MPa 1个 校验有效期内 3 喷油雾化测试台 Bosch EPS 815 1台 可测开启压力与雾化角 4 扭矩扳手 40 -200 N·m 1把 用于喷油器压紧螺母 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件(针阀+阀体) MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂高精度配对 2 喷油器铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性\n3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200 mL 用于冲洗油道 2 3 无绒布 高温润滑脂 Kimwipe EX-L 5张 少量 擦拭偶件表面 4)人力人员 Molycote G-1052 涂压紧螺纹 序号 专业 人数 技能等级 备注 修理步骤及工艺 1 机械专业 2 工程师+技师 工程师操作测试 台 更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件 (1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5° 无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa; 2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。\n表 4.16 MT014 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。 安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖 序号 名称 规格/型号 数量及单位 备注 1 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤 2 供油定时检测仪 AVL 545 1台 测量喷油始点 3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙 4 扭矩扳手 30-150 N·m 1把 用于泵体检修盖 2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用) 序 名称 规格/型号 消耗数量 备注 1 柱塞+套筒偶件 MAN5L35MC-PLUNGER-KIT 1套 配对编号一致 2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高压泵专用润滑油 Shell Tellus S4 VX32 100mL 用于偶件润滑 2 密封胶 Loctite 577 少量 泵体结合面(如适用) 3 清洗柴油 ISO 4020 Grade A 300mL 冲洗油道 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工确认供油定时 修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m; (2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA; 验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA; 3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1\n表 4.17 MT015 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。 安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。 序号 名称 规格/型号 数量及单位 备注 1 涡轮增压器专用拆装台 Custom-Turbo-Bench 1台 带V型支撑 2 感应加热器 EFD Minac 10 1台 温控±5℃ 3 动平衡检测仪 Schenck BALANCER V 1台 G2.5级精度 4 扭矩扳手 10-80 N·m 1把 用于壳体螺栓 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 径向轴承(主轴) MAN TCA77-BRG-RAD 1套 铜铅合金 2 止推轴承组件 MANTCA77-BRG-THRUST 1套 含瓦片+垫片组 3 轴封环 Carbon Seal Φ60X3 2个 石墨基 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温润滑脂 Kluber Isoflex LDS18 Special A 15g 仅涂轴承外圈 2 清洗剂 Brulin 815GD 200mL 清洁轴承座 3 密封胶 Loctite 518 少量 壳体结合面 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导装配 2 电子专业 1 中级 监测振动传感器\n(如适用) 修理步骤及工艺 更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换; 拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃; 2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。\n表 4.18 MT016 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。 安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。\n序号 名称 规格/型号 数量及单位 备注 1 高压清洗机 Kärcher HD 7/15-4 1台 压力0-5MPa可调 2 管束专用清洗喷头 Rotating Nozzle 3mm 2个 自旋式 3 风压干燥机 Industrial AirDryer 1台 0.6 MPa 4 泄漏测试装置 Air/Water LeakTester 1套 0.4 MPa 保压\n序 名称 规格/型号 消耗数量 备注 本项目为清洗 类,无备件消耗 (但可能触发堵 管修复\n序号 名称 牌号/品级/规格 消耗数量 备注 1 中性清洗剂 Alconox Detojet 2kg pH=9.5,环保型 2 软化水 Deionized Water 200L 配制清洗液 3 防锈剂 CRC 3-36 100mL 清洗后喷涂\n序号 专业 人数 技能等级 备注 1 机械专业 2 中级+初级 中级操作高压设备\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\n1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥 (1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准 1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1\n表 4.19 MT017 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 T017 030200 连杆大端轴承 修复连杆大端轴承异常磨损 故障触发 ZJ级 安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。 安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。 序号 名称 规格/型号 数量及单位 备注 1 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 1台 自动高压水射流 2 内窥镜(防爆) GE Mentor VisualiQ-Ex 1台 检查缸套下部 3 红外热像仪 FLIR T860 1台 检测局部热点 4 可燃气体检测仪 MSA Altair 5X 1台 多气体复合 2)备品 备件 序 名称 规格/型号 消耗数量 备注 1 全套活塞环组 MAN5L35MC-RING-SET 1套 含1-4号环 2 活塞头(如需更换) MAN5L35MC-PISTON-HEAD 1件 铸钢整体式 3 扫气口密封条 Viton Strip 5×10mm 若干 更换烧损件 3)消耗 材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 生物降解清洗剂 Envirox SC-90 5L 清除碳化油泥 2 耐高温防火毯 Fiberglass Mat1200°C 2m 局部隔热防护 3 防锈剂 CRC 3-36 200mL 修复后防护 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工主导故障分析 2 安全监督 1 高级安全员 全程监护受限空间作业 修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头; 2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。 验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。 页码:1/1 版本号:1\n表 4.20 MT018 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT018 030201 活塞头 修复活塞头部烧蚀熔损 故障触发 ZJ级 安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。 安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。 序号 名称 规格/型号 数量及单位 备注 1 等离子堆焊机 PLASMAD 5000 1台 自动送粉 2 热处理炉 Box Furnace 800° C 1台 控温±10℃ 3 超声波探伤仪 Olympus Epoch 650 1台 检测内部缺陷 4 三维扫描仪 FARO Arm Quantum 1台 修复前后形貌比对 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 本项目为修复类,通常不消耗新活塞(除非报废) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 镍基合金焊粉 INCONEL 625 300g 耐高温抗烧蚀 2 渗透探伤剂 Magnaflux ZL-27A 1套 PT检测裂纹 3 保温棉 Ceramic FiberBlanket 2 kg 焊后包裹缓冷 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+高级技师 总工批准修复方案 2 焊接专业 1 高级焊工(ASMEIX认证) 执行堆焊\n修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理 3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证 2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm); 3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1\n表 4.21 MT019 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗 3 扭矩扳手 40-200 N·m 1把 用于压紧螺母回装 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件 MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂配对 2 铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道 2 无绒布 Kimwipe EX-L 5张 3 高温润滑脂 Molycote G-1052 少量 4)人力人员 序号 专业 人数 技能等级 1 机械专业 2 高级+中级 修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m; 2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。 验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。 页码:1/1 版本号:1\n表 4.22 MT020 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。 安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。 序号 名称 规格/型号 数量及单位 备注 1 主机监控系统(PMS) Integrated BridgeSystem 1套 读取实时功率曲线 2 调速器性能测试仪 Woodward Test Bench 1台 检测响应滞后 3 燃油黏度计 MarconiViscotester 1台 测 HFO黏度 4 多通道数据记录仪 DataTaker DT80 1套 同步录负荷/转速 2)备品 序 名称 规格/型号 消耗数量 备注 1 调速器伺服阀滤芯 OEM-GOV-FILTER 1个 如堵塞 2 燃油温度传感器 PT100,0-200°C 1个 如漂移 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 标准测试燃油 ISO 8217 RMG380 300L 用于稳定测试 2 密封胶 Loctite 577 少量 传感器安装 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导系统分析 2 自动化专业 1 中级 负责调速器信号检测 修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。 分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。 针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟; 验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下); 3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4维修工作指导\\n4.1 维修项目索引表\\n表 4.1 船舶主发动机维修项目索引表\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 页码 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 20 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/2000h JY级 22 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 24 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JY级 26 MT005 020203 连杆小端轴承 更换连杆小端轴承 2A/12000h JY级 29 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 31 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 33 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 35 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 37 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 40 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 43 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 45 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 47 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 49 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 52 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 54 MT017 020201 连杆大端轴承 修复连杆大端轴承异常磨损 1U ZJ级 57 MT018 030201 活塞头 修复活塞头部烧蚀 1U ZJ级 59 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 61 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 63\\n4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n序号 故障现象 故障原因 维修项目 1 主机运行中振动异常增大 主轴承或连杆大端轴承磨损 执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损 曲轴主轴颈跳动超差 执行以下维修项目:MTO03 检测曲轴主轴颈跳动量 2 单缸功率下降、排温偏低 活塞头烧蚀或活塞环断裂 执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀 气缸套严重磨损 执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套 喷油嘴偶件雾化不良 执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障 3 排气温度异常升高 排气阀密封面磨损或阀座烧蚀 执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座 涡轮增压器轴承损坏 执行以下维修项目:MT015 更换涡轮增压器轴承组件 4 扫气箱内发现润滑油泄漏 活塞杆填料函密封失效 执行以下维修项目:MTO01保养机座与机架组件 5 主机启动困难或压缩压力不足 缸盖密封环老化失效 执行以下维修项目:MT001保养机座与机架组件 6 主机功率输出不稳定 喷油器工作不一致 执行以下维修项目:MT019 排除喷油器雾化不良故障 调速系统响应异常 执行以下维修项目:MT020 排除主机功率异常波动故障 7 空冷器后扫气温度持续偏高 空冷器管束芯体结垢或堵塞 执行以下维修项目:MT016 清洗空冷器管束芯体 8 主机润滑油消耗异常增加 活塞环磨损或断裂 执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环 活塞杆填料函磨损 执行以下维修项目:MT001保养机座与机架组件 9 高压燃油管路附近有油渍 高压油管接头密封失效 执行以下维修项目:MT014 更换高压油泵柱塞偶件 10 主机紧急停机 润滑油压力骤降 执行以下维修项目:MT001保养机座与机架组件 多缸燃烧严重失衡 执行以下维修项目:MT020 排除主机功率异常波动故障\\n4.3 维修项目表\\n本节主要填写各维修项目的修理表,包括预防性、恢复性维修、故障排查项目。\\n表 4.3 MT001 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。 安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。 序号 名称 规格/型号 数量及单位 备注 1 液压升降平台 HLP-3000 1台 用于接近主机上部 2 扭矩扳手 TB-200N·m 1把 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT 1套 厂家配套 4 工业吸油泵 VAC-0IL50 1台 防爆型 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 高压燃油泵 HD-45A 2个 原厂件 2 涡轮增压器 TC-80B 1个 耐高温氟橡胶 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 柴油机专用润滑油 Shell Mysella S5N80 50L 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 5张 不掉屑 3 清洗剂 CRC Brakleen 1罐 用于清洁滤座\\n4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师 主导保养流程 2 电气专业 1 技师 监控主机ECU状 态 修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识; 3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油; 图 MT001.1旋松螺塞 (2)检查排出机油中是否有金属屑,若有则记录并上报异常。 图MT001.2检查 2)更换机油滤芯\\n图 MT001.3 拆卸\\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\\n图 MT001.4 滤芯安装扭矩示意图\\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\\n图 MT001.5 滤芯安装扭矩示意图\\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\\n(2)静置 10 分钟后复查油位,补充至标准范围。\\n图 MT001.6 油位检查\\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\\n图 MT001.7 安装放油螺塞\\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\\n图 MT001.8 油污清理\\n3)拆除“禁止启动”牌,通知集控室保养完成。 验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下); 2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。 页码:2/2 版本号:1\\n表 4.4 MT002 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/200h JY级 安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。 安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。 序号 名称 规格/型号 数量及单位 备注 1 激光对中仪 SKF TKSA 71 1套 用于轴承同轴度检测 2 塞尺组 0.02 -1.00 mm 1套 精度±0.005mm 3 液压拉伸器 HYTORC AVANTI-10 1台 用于地脚螺栓预紧 4 内径千分尺 200-300mm 1把 校验有效期内 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁酒精 AR Grade 100mL 2 防锈纸 VCI-200 2张 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;\\n图 MT002.1 换油前清洗\\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\\n图 MT002.2 检查\\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\\n图 MT002.3 塞尺测量\\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\\n图 MT002.4 激光对中仪\\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\\n图 MT002.5 测量轴线偏移量\\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\\n判定与处理 1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。 验收标准 1.主轴承座与机座结合面间隙≤0.05mm(全周); 2.相邻主轴承同轴度偏差≤0.08 mm/m; 3.地脚螺栓预紧力在设计值 ±5% 范围内。 页码:1/1 版本号:1\\n表 4.5 MT003 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。 安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg 序号 名称 规格/型号 数量及单位 备注 1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm 2 磁力表座 Starrett 16B 1个 带万向关节 3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg\\n4 盘车手轮 OEM-MAN-BW-PCW 1个 原厂配套\\n序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1\\n序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 50mL 清洁轴颈表面 2 无绒擦拭布 Kimwipe EX-L 3张 防刮伤轴面\\n序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工复刻数据\\n图 MT003.1 清洁\\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\\n图 MT003.2 标记测量基准点\\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\\n2)安装千分表\\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\\n图 MT003.3 千分尺\\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\\n(2)预压千分表 0.3 mm,归零。\\n3)盘车测量\\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\\n(2)跳动量 = 最大值 - 最小值;\\n(3)重复上述步骤,依次测量其余主轴颈。\\n数据判定\\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\\n表 4.6 MT004 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JT级 安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。 安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。 序号 名称 规格/型号 数量及单位 备注 1 液压拉伸器 HYTORC RS-20 1套 2 扭矩扳手 Norbar 1500N·m 1把 精度±2% 3 轴承安装导向套 OEM-MAN-BW-BG-04 1个 4 内窥镜 GE Mentor Visual iQ 1台 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆大端轴承上瓦 MAN 5L35MC-BRG-UP 1副 原厂高锡合金 2 连杆大端轴承下瓦 MAN 5L35MC-BRG-DN 1副 3 连杆螺栓 M30 ×2.0 Grade 12.9 2根 次性使用,强制更换 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\\n1 轴承装配润滑脂 Kluber Isoflex LDS18 Special A 10g 仅涂瓦背 2 螺纹锁固胶 Loctite 2701 少量 用于螺栓螺纹(如适用) 3 清洗剂 Brulin 815GD 200mL 清洁连杆结合面\\n4)人力人员\\n序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2x工程师 总工监督关键步骤\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成停机冷却,滑油系统泄压;\\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\\n拆卸旧轴承\\n1)拆连杆盖\\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\\n(2)取下螺栓及连杆大端盖,放置于专用托架。\\n2)取出旧轴承\\n(1)轻敲连杆体侧面,使下瓦自然脱落;\\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\\n安装新轴承\\n1)清洁与检查\\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\\n(2)目视检查新瓦背面涂层均匀,无裂纹。\\n2)装配\\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\\n(2)将下瓦装入连杆盖,同样对准定位;\\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\\n3)紧固螺栓\\n(1)安装新连杆螺栓,手工旋入到底;\\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\\n(3)最终用角度法复核(如适用)。\\n图 MT004.1 连杆大端轴承结构分解图\\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\\n表 4.7 MT005 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT005 020203 连杆小段轴承 更换连杆小段轴承 2A/12000h JY级 安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。 安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。 序号 名称 规格/型号 数量及单位 备注 1 活塞吊装专用吊具 OEM-MAN-BW-PST-05 1套 带缓冲橡胶夹头 2 感应加热器 EFD Induction Minac16 1台 温控精度±5℃ 3 内径千分尺 40 - 50 mm 1把 校验有效期内 4 铜棒与塑料锤 Φ20×300 mm 各1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆小端衬套(上) MAN 5L35MC-BUSH-UP 1件 锡青铜基 2 连杆小端衬套(下) MAN 5L35MC-BUSH-DN 1件 3 活塞销卡簧 Φ50×2.5 mm 2个 不锈钢,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\\n1 高温装配润滑脂 Molycote G-1052 5g 2 清洗剂 Brulin 815GD 150mL 3 耐高温标记笔 Markal 900°F 1支\\n4)人力人员\\n序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师主导热装\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\\n拆卸旧衬套\\n1)抽出活塞-连杆总成\\n(1)拆除缸头、喷油器及冷却水管路;\\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\\n2)压出旧衬套\\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\\n安装新衬套\\n1)清洁与预装检查\\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\\n(2)测量座孔内径,记录作为过盈量计算依据。\\n2)热装新衬套\\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\\n(2)迅速将热衬套套入连杆小端,确保完全到位;\\n(3)自然冷却至室温,禁止强制冷却。\\n3)精铰与研配(如需要)\\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\\n组装活塞销与卡簧\\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\\n验收标准 1.衬套与座孔过盈配合牢固,无松动或轴向位移; 2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。 页码:1/1 版本号:1\\n表 4.8 MT006 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。 安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配350mm活塞 2 内窥镜 GE Mentor Visual iQ 1台 3 深度规 0-150mm 1把 4 放大镜 10× with scale 1个 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检查类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 积碳清洗剂 CRC Carbon CleanPro 200mL 环保型 2 无纺布 Industrial Grade 5张 3 防锈油 CRC 3-36 50mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。 抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态 1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查 (1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。 判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008; 3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。\\n表 4.9 MT007 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。 安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。\\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配Φ350 mm活塞 2 环口间隙测量规 Feeler Gauge Set 1套 0.05-1.00mm 3 环槽清洁刮刀 Custom-Piston-Groove-Scraper 1把 铜质刃口 4 扭矩扳手 20-100 N·m 1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第一道压缩环 MAN 5L35MC-RING-1 1件 梯形截面,表面镀铬 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 5g 2 无绒布 Kimwipe EX-L 3张 3 清洗剂 Brulin 815GD 100mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师复刻还口间隙 修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。 验收标准 1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内; 页码:1/1 3.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1\\n表 4.10 MT008 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。 安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 同MT007 2 环口定位夹具 Custom-Ring-Aligner 1套 控制各环开口相位 3 放大镜(带LED) 5X with light 1个 检查环体缺陷 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第二道压缩环 MAN 5L35MC-RING-2 1件 锥面环 2 第三道刮油环(组合式) MAN 5L35MC-RING-3 1套 含轨环+弹簧胀圈 3 第四道刮油环(组合式) MAN 5L35MC-RING-4 1套 同上 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 10g 涂所有环外圆 2 缸套润滑机油 Shell Mysella S5N80 50mL 涂缸壁 3 标记笔(耐油) Marka1Oil-Resistant 1支 标记环开口位置 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+ 技师 工程师监督相位布置 修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。 拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。 差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120° (1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证 1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;\\n表 4.11 MT009 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。 安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 内径千分尺(三点式) Mitutoyo 204-304 mm 1套 分辨率0.001mm 2 缸套磨损测量记录仪 Custom-Bore-Wear-Log 1台 自动生成磨损曲线 3 防爆LED手电 Streamlight 88040 1个 24V安全电压 4 清洁气枪 Industrial Air BlowGun 1把 压力≤0.5 MPa 2)备品 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检测类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 100mL 清洁测量接触面 2 无绒布 Kimwipe EX-L 5张 防刮伤缸壁 3 防锈纸 VCI-200 2张 测量后临时覆盖 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工审核磨损趋势\\n3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略) 验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。 页码:1/1 版本号:1\\n表 4.12 MT010 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。 安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。 序号 名称 规格/型号 数量及单位 备注 1 液压压装机 HYDRA-PRESS-50T 1台 带压力与位移监控 2 缸套拔出器 OEM-MAN-BW-LINER-PULL 1套 螺纹顶压式 3 冷却水腔密封测试仪 LeakTest-CT300 1台 0.3 MPa保压 4 深度规 0- 300 mm 1把 测量缸套凸肩高度 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 气缸套总成 MAN5L35MC-LINER-ASSY 1件 含0形圈、定位销 2 缸套水封0形圈 Viton Φ380×5.0 2个 耐高温氟橡胶 3 缸套油封环 NBR Φ352×3.0 1个 下部密封 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 装配润滑脂 Kluber Isoflex LDS18 Special A 20g 涂缸套外壁 2 密封胶 Loctite 518 少量 水腔法兰面(如适用) 3 清洗剂 Brulin 815GD 300mL 清洁缸体座孔 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工监督压装对中\\n修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。 3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm; 2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1\\n表 4.13 MT011 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。 安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。\\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK 1套 带隔热手柄 2 红外测温仪 Fluke 62 Max+ 1台 测量阀杆温度 3 密封面检测平板 Optical Flat λ/10 1块 用于着色法检查 4 着色剂套装 Dykem Steel Blue +Developer 1套 检查接触印痕 2)备品备件 序 名称 规格/型号 消耗数量 备注 一 本项目为检查类,无备件消耗(但可能触发MT012) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温清洁剂 CRC Brakleen HT 100mL 清除积碳 2 无绒布 Kimwipe EX-L 5张 防刮伤密封面 3 防锈油 CRC 3-36 30mL 检查后临时防护 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座); 3)记录检查结果于《排气阀状态档案》。 验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm; 2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。 页码:1/1 版本号:1\\n表 4.14 MT012 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。 安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。 序号 名称 规格/型号 数量及单位 备注 1 便携式阀座镗床 SUNNEN SV-20 1台 带角度调节 2 液压阀座压装机 HYDRA-SEAT-PRESS 1台 用于过盈配合座 3 渗透探伤套装 Magnaflux ZL-27A 1套 PT检测裂纹 4 角度规 0-90°Protractor 1把 检查密封锥角 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀座 MAN5L35MC-EXH-SEAT 1件 Stellite合金堆焊 2 定位销(如适用) Φ8×20 mm 1个 不锈钢 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温镍基焊条 ENiCrFe-3 1根 用于焊接固定(如需要) 2 清洗剂 Brulin 815GD 150mL 清洁阀座孔 3 研磨膏(细) Clover Leaf Green 20g 配合研磨 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工批准焊接/压装方案 修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座 1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。 2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座); 3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。 页码:1/1 版本号:1\\n表 4.15 MT013 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火 安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 高压燃油压力表 0-20 MPa 1个 校验有效期内 3 喷油雾化测试台 Bosch EPS 815 1台 可测开启压力与雾化角 4 扭矩扳手 40 -200 N·m 1把 用于喷油器压紧螺母 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件(针阀+阀体) MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂高精度配对 2 喷油器铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性\\n3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200 mL 用于冲洗油道 2 3 无绒布 高温润滑脂 Kimwipe EX-L 5张 少量 擦拭偶件表面 4)人力人员 Molycote G-1052 涂压紧螺纹 序号 专业 人数 技能等级 备注 修理步骤及工艺 1 机械专业 2 工程师+技师 工程师操作测试 台 更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件 (1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5° 无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa; 2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。\\n表 4.16 MT014 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。 安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖 序号 名称 规格/型号 数量及单位 备注 1 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤 2 供油定时检测仪 AVL 545 1台 测量喷油始点 3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙 4 扭矩扳手 30-150 N·m 1把 用于泵体检修盖 2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用) 序 名称 规格/型号 消耗数量 备注 1 柱塞+套筒偶件 MAN5L35MC-PLUNGER-KIT 1套 配对编号一致 2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高压泵专用润滑油 Shell Tellus S4 VX32 100mL 用于偶件润滑 2 密封胶 Loctite 577 少量 泵体结合面(如适用) 3 清洗柴油 ISO 4020 Grade A 300mL 冲洗油道 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工确认供油定时 修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m; (2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA; 验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA; 3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1\\n表 4.17 MT015 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。 安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。 序号 名称 规格/型号 数量及单位 备注 1 涡轮增压器专用拆装台 Custom-Turbo-Bench 1台 带V型支撑 2 感应加热器 EFD Minac 10 1台 温控±5℃ 3 动平衡检测仪 Schenck BALANCER V 1台 G2.5级精度 4 扭矩扳手 10-80 N·m 1把 用于壳体螺栓 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 径向轴承(主轴) MAN TCA77-BRG-RAD 1套 铜铅合金 2 止推轴承组件 MANTCA77-BRG-THRUST 1套 含瓦片+垫片组 3 轴封环 Carbon Seal Φ60X3 2个 石墨基 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温润滑脂 Kluber Isoflex LDS18 Special A 15g 仅涂轴承外圈 2 清洗剂 Brulin 815GD 200mL 清洁轴承座 3 密封胶 Loctite 518 少量 壳体结合面 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导装配 2 电子专业 1 中级 监测振动传感器\\n(如适用) 修理步骤及工艺 更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换; 拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃; 2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。\\n表 4.18 MT016 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。 安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。\\n序号 名称 规格/型号 数量及单位 备注 1 高压清洗机 Kärcher HD 7/15-4 1台 压力0-5MPa可调 2 管束专用清洗喷头 Rotating Nozzle 3mm 2个 自旋式 3 风压干燥机 Industrial AirDryer 1台 0.6 MPa 4 泄漏测试装置 Air/Water LeakTester 1套 0.4 MPa 保压\\n序 名称 规格/型号 消耗数量 备注 本项目为清洗 类,无备件消耗 (但可能触发堵 管修复\\n序号 名称 牌号/品级/规格 消耗数量 备注 1 中性清洗剂 Alconox Detojet 2kg pH=9.5,环保型 2 软化水 Deionized Water 200L 配制清洗液 3 防锈剂 CRC 3-36 100mL 清洗后喷涂\\n序号 专业 人数 技能等级 备注 1 机械专业 2 中级+初级 中级操作高压设备\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥 (1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准 1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1\\n表 4.19 MT017 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 T017 030200 连杆大端轴承 修复连杆大端轴承异常磨损 故障触发 ZJ级 安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。 安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。 序号 名称 规格/型号 数量及单位 备注 1 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 1台 自动高压水射流 2 内窥镜(防爆) GE Mentor VisualiQ-Ex 1台 检查缸套下部 3 红外热像仪 FLIR T860 1台 检测局部热点 4 可燃气体检测仪 MSA Altair 5X 1台 多气体复合 2)备品 备件 序 名称 规格/型号 消耗数量 备注 1 全套活塞环组 MAN5L35MC-RING-SET 1套 含1-4号环 2 活塞头(如需更换) MAN5L35MC-PISTON-HEAD 1件 铸钢整体式 3 扫气口密封条 Viton Strip 5×10mm 若干 更换烧损件 3)消耗 材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 生物降解清洗剂 Envirox SC-90 5L 清除碳化油泥 2 耐高温防火毯 Fiberglass Mat1200°C 2m 局部隔热防护 3 防锈剂 CRC 3-36 200mL 修复后防护 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工主导故障分析 2 安全监督 1 高级安全员 全程监护受限空间作业 修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头; 2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。 验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。 页码:1/1 版本号:1\\n表 4.20 MT018 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT018 030201 活塞头 修复活塞头部烧蚀熔损 故障触发 ZJ级 安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。 安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。 序号 名称 规格/型号 数量及单位 备注 1 等离子堆焊机 PLASMAD 5000 1台 自动送粉 2 热处理炉 Box Furnace 800° C 1台 控温±10℃ 3 超声波探伤仪 Olympus Epoch 650 1台 检测内部缺陷 4 三维扫描仪 FARO Arm Quantum 1台 修复前后形貌比对 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 本项目为修复类,通常不消耗新活塞(除非报废) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 镍基合金焊粉 INCONEL 625 300g 耐高温抗烧蚀 2 渗透探伤剂 Magnaflux ZL-27A 1套 PT检测裂纹 3 保温棉 Ceramic FiberBlanket 2 kg 焊后包裹缓冷 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+高级技师 总工批准修复方案 2 焊接专业 1 高级焊工(ASMEIX认证) 执行堆焊\\n修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理 3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证 2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm); 3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1\\n表 4.21 MT019 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗 3 扭矩扳手 40-200 N·m 1把 用于压紧螺母回装 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件 MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂配对 2 铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道 2 无绒布 Kimwipe EX-L 5张 3 高温润滑脂 Molycote G-1052 少量 4)人力人员 序号 专业 人数 技能等级 1 机械专业 2 高级+中级 修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m; 2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。 验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。 页码:1/1 版本号:1\\n表 4.22 MT020 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。 安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。 序号 名称 规格/型号 数量及单位 备注 1 主机监控系统(PMS) Integrated BridgeSystem 1套 读取实时功率曲线 2 调速器性能测试仪 Woodward Test Bench 1台 检测响应滞后 3 燃油黏度计 MarconiViscotester 1台 测 HFO黏度 4 多通道数据记录仪 DataTaker DT80 1套 同步录负荷/转速 2)备品 序 名称 规格/型号 消耗数量 备注 1 调速器伺服阀滤芯 OEM-GOV-FILTER 1个 如堵塞 2 燃油温度传感器 PT100,0-200°C 1个 如漂移 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 标准测试燃油 ISO 8217 RMG380 300L 用于稳定测试 2 密封胶 Loctite 577 少量 传感器安装 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导系统分析 2 自动化专业 1 中级 负责调速器信号检测 修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。 分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。 针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟; 验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下); 3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_24e1514f-5346-427b-9fb3-511f59fe36d4.pdf#page=31\"}]" + } + }, + { + "type": "器材保障", + "properties": { + "名称": "发动机的器材保障", + "保障设施、保障设备(工具)信息汇总表": "5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n序号 名称 规格/型号 生产单位 通用/专用 体积山 重量8) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 中仪 C-01 同轴度检测 6 塞尺组 0.02 - 1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10 /RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300mm /40-50mm Mitutoyo 等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001mm 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ /iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量(kg) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LINER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0-300mm 市品 通用 1 0.7 600 量具柜F-05 一 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 序号 名称 规格/型号 生产单位 通用/专用 体积山 重量(kg) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flat/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Kärcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量8) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速", + "消耗材料信息汇总表": "5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n序号 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shell 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC /Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henke1 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shell 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "内容": "5器材保障\n5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n序号 名称 规格/型号 生产单位 通用/专用 体积山 重量8) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 中仪 C-01 同轴度检测 6 塞尺组 0.02 - 1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10 /RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300mm /40-50mm Mitutoyo 等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001mm 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ /iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量(kg) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LINER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0-300mm 市品 通用 1 0.7 600 量具柜F-05 一 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 序号 名称 规格/型号 生产单位 通用/专用 体积山 重量(kg) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flat/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Kärcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量8) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\n5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n序号 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shell 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC /Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henke1 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shell 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n序号 名称 规格/型号 生产单位 通用/专用 体积山 重量8) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 中仪 C-01 同轴度检测 6 塞尺组 0.02 - 1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10 /RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300mm /40-50mm Mitutoyo 等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001mm 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ /iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量(kg) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LINER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0-300mm 市品 通用 1 0.7 600 量具柜F-05 一 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 序号 名称 规格/型号 生产单位 通用/专用 体积山 重量(kg) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flat/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Kärcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量8) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n序号 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shell 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC /Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henke1 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shell 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8b54bbc9-26cb-4bb7-a7c5-6c4abbb153bc.pdf#page=54\"}]" + } + }, + { + "type": "维修安全防护及注意事项汇总表", + "properties": { + "名称": "发动机的维修安全防护及注意事项汇总表", + "概述": "以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。", + "安全防护": "6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006 拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MT009 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MT017 修复连杆异常磨损 1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花", + "注意事项": "6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "内容": "6 维修安全防护及注意事项汇总表\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\n6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006 拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MT009 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MT017 修复连杆异常磨损 1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\n6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006 拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MT009 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MT017 修复连杆异常磨损 1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_a4fb7669-e561-486c-83e2-c6e0e7d19fec.pdf#page=60\"}]" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "曲轴组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "连杆大端轴承的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "活塞头的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "1号压缩环的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "2-4号活塞环的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "气缸套的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "气缸套的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "阀杆的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "阀座的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "喷油嘴偶件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "柱塞偶件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "轴承组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "管束芯体的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "连杆大端轴承的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "活塞头的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "喷油器组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "喷油器组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "舰艇", + "properties": { + "名称": "jz坚", + "闲号": "777" + } + }, + { + "type": "系统", + "properties": { + "名称": "汽车配件", + "系统编码": "11" + } + }, + { + "type": "子系统", + "properties": { + "名称": "汽车主配件", + "子系统编码": "A1" + } + }, + { + "type": "设备", + "properties": { + "名称": "发动机", + "设备编码": "B01001" + } + } + ], + "relationships": [ + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "发动机", + "to_entity": "发动机的维修工作" + }, + { + "type": "安全警告", + "from_entity": "发动机", + "to_entity": "发动机的安全警告" + }, + { + "type": "实现", + "from_entity": "发动机", + "to_entity": "发动机的功能" + }, + { + "type": "适用", + "from_entity": "发动机", + "to_entity": "发动机的环境条件" + }, + { + "type": "实现", + "from_entity": "发动机", + "to_entity": "发动机的基本情况" + }, + { + "type": "包括", + "from_entity": "发动机", + "to_entity": "发动机的组成" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的工作原理" + }, + { + "type": "具有", + "from_entity": "发动机", + "to_entity": "发动机的技术指标参数" + }, + { + "type": "配备", + "from_entity": "发动机", + "to_entity": "发动机的接口" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的布置情况" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "发动机", + "to_entity": "发动机的维修工作" + }, + { + "type": "依赖", + "from_entity": "发动机", + "to_entity": "发动机的器材保障" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的维修安全防护及注意事项汇总表" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "修理", + "from_entity": "检测曲轴主轴颈跳动量", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "更换连杆大端轴承", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "拆检活塞头磨损情况", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "更换1号压缩环", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "更换2-4号活塞环", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "检测气缸套内径磨损量", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "更换气缸套", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "检查排气阀杆密封面磨损", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "更换排气阀座", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "更换喷油嘴偶件", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "更换高压油泵柱塞偶件", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "修理", + "from_entity": "更换涡轮增压器轴承组件", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "清洗空冷器管束芯体", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "修理", + "from_entity": "修复连杆大端轴承异常磨损", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "修复活塞头部烧蚀熔损", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "排除喷油器雾化不良故障", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "排除喷油器雾化不良故障", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "排除主机功率异常波动故障", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "排除主机功率异常波动故障", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "曲轴组件", + "to_entity": "曲轴组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "曲轴组件的维修工作", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "MT003", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "连杆大端轴承", + "to_entity": "连杆大端轴承的维修工作" + }, + { + "type": "包含故障", + "from_entity": "连杆大端轴承的维修工作", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "MT004", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "活塞头", + "to_entity": "活塞头的维修工作" + }, + { + "type": "包含故障", + "from_entity": "活塞头的维修工作", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT006", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "1号压缩环", + "to_entity": "1号压缩环的维修工作" + }, + { + "type": "包含故障", + "from_entity": "1号压缩环的维修工作", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "MT007", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "2-4号活塞环", + "to_entity": "2-4号活塞环的维修工作" + }, + { + "type": "包含故障", + "from_entity": "2-4号活塞环的维修工作", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "MT008", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "气缸套", + "to_entity": "气缸套的维修工作" + }, + { + "type": "包含故障", + "from_entity": "气缸套的维修工作", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT009", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "气缸套", + "to_entity": "气缸套的维修工作" + }, + { + "type": "包含故障", + "from_entity": "气缸套的维修工作", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT010", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "阀杆", + "to_entity": "阀杆的维修工作" + }, + { + "type": "包含故障", + "from_entity": "阀杆的维修工作", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "MT011", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "阀座", + "to_entity": "阀座的维修工作" + }, + { + "type": "包含故障", + "from_entity": "阀座的维修工作", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "MT012", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "喷油嘴偶件", + "to_entity": "喷油嘴偶件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "喷油嘴偶件的维修工作", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT013", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "柱塞偶件", + "to_entity": "柱塞偶件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "柱塞偶件的维修工作", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "修理", + "from_entity": "MT014", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "轴承组件", + "to_entity": "轴承组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "轴承组件的维修工作", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "MT015", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "管束芯体", + "to_entity": "管束芯体的维修工作" + }, + { + "type": "包含故障", + "from_entity": "管束芯体的维修工作", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "修理", + "from_entity": "MT016", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "连杆大端轴承", + "to_entity": "连杆大端轴承的维修工作" + }, + { + "type": "包含故障", + "from_entity": "连杆大端轴承的维修工作", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "T017", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "活塞头", + "to_entity": "活塞头的维修工作" + }, + { + "type": "包含故障", + "from_entity": "活塞头的维修工作", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT018", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "喷油器组件", + "to_entity": "喷油器组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "喷油器组件的维修工作", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT019", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "喷油器组件", + "to_entity": "喷油器组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "喷油器组件的维修工作", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "MT019", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "MT020", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + }, + { + "type": "修理", + "from_entity": "MT020", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + }, + { + "type": "包含", + "from_entity": "jz坚", + "to_entity": "汽车配件" + }, + { + "type": "包含", + "from_entity": "汽车配件", + "to_entity": "汽车主配件" + }, + { + "type": "包含", + "from_entity": "汽车主配件", + "to_entity": "发动机" + } + ] +} \ No newline at end of file diff --git a/kg_build/Prompt.py b/kg_build/Prompt.py new file mode 100644 index 0000000..7c9b7b3 --- /dev/null +++ b/kg_build/Prompt.py @@ -0,0 +1,1448 @@ +Prompt_guzhang = """ +你是一个故障实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系 + "故障模式"实体主要包括以下属性:"名称", "故障原因", "故障影响", "故障类型", "发生时间", "处置情况", "修复情况",“维修方案” + 文本中"故障原因"与故障实体属性相对应,进行对应填充即可,其中"名称"对应于实体的"故障现象"属性,"维修项目"字段内容对应实体的"维修项目"属性; + 每提取一组维修模式,结合故障现象字段对应文本内容分析,找出故障现象所关联的系统并建立对应的实体,并建立“存在”关系 + "系统"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间", "运行时间", "运行条件" + 如果实体的属性在文本中没有找到,请不要随意添加其他内容,可以为空;其次,抽取的系统实体应来源故障现象字段对应的文本内容中,不要随意添加,也不要将其他记录的故障现象对应别的系统实体中 + +示例: +输入为: +# 4.2 常见故障表 +船舶主发动机的常见故障如下表所示: +表 4.2 常见故障表 +
序号故障现象故障原因维修项目
1机座与机架组件运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MT004更换连杆大端轴承MT017修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MT003检测曲轴主轴颈跳动量
2气缸套排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011检查排气阀杆密封面磨损MT012更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015更换涡轮增压器轴承组件
3扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MT001保养机座与机架组件
+ +输出为: +{{ + "entities": [ + {{ + "type": "故障模式", + "properties": {{ + "名称": "机座与机架组件运行中振动异常增大", + "故障原因": "1.主轴承或连杆大端轴承磨损, + 2. 曲轴主轴颈跳动超差", + "故障影响": "", + "故障类型": "", + "发生时间": "", + "处置情况": "", + "修复情况": "", + "维修方案": "1.执行以下维修项目:MT004 更换连杆大端轴承;MT017 修复连杆大端轴承异常磨损 + 2.执行以下维修项目:MT003 检测曲轴主轴颈跳动量", + "维修项目": ["MT004","MT017","MT003"] + }} + }}, + {{ + "type": "故障模式", + "properties": {{ + "名称": "气缸套排气温度异常升高", + "故障原因": "1. 排气阀密封面磨损或阀座烧蚀 + 2.涡轮增压器轴承损坏", + "故障影响": "", + "故障类型": "", + "发生时间": "", + "处置情况": "", + "修复情况": "", + "维修方案": "1.执行以下维修项目:MT011 检查排气阀杆密封面磨损;MT012 更换排气阀座 + 2.执行以下维修项目:MT015 更换涡轮增压器轴承组件", + "维修项目": ["MT011","MT012","MT015"] + }} + }}, + {{ + "type": "故障模式", + "properties": {{ + "名称": "扫气箱内发现润滑油泄漏", + "故障原因": "活塞杆填料函密封失效", + "故障影响": "", + "故障类型": "", + "发生时间": "", + "处置情况": "", + "修复情况": "", + "维修方案": "执行以下维修项目:MT001保养机座与机架组件", + "维修项目": ["MT001"] + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "机座与机架组件", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "", + + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "气缸套", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "", + + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "涡轮增压器", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "", + + }} + }}, + ], + "relationships": [ + {{ + "type": "存在", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件运行中振动异常增大" + }}, + {{ + "type": "存在", + "from_entity": "气缸套", + "to_entity": "气缸套排气温度异常升高" + }} + {{ + "type": "存在", + "from_entity": "扫气箱", + "to_entity": "扫气箱内发现润滑油泄漏" + }}, + ] +}} + +确保抽取的故障类实体完整,不要遗漏,"名称"字段不要丢失,也不要胡乱填充其他字段内容 +只输出纯JSON,不要任何其他文本、解释或Markdown。 +抽取的实体以及实体属性值应严格来源于文本,不可以做任何擅自更改,例如将"排气温度异常升高"更改为"排气温度异常增长" +如果给出的上下文中,无法抽取出"系统",那么就不需要抽取,也没有对应的关系,即"relationships"为[] +抽取过程中,需要注意html源码多行合并的情况,尤其是故障现象字段值为同一行,但是维修项目和故障原因字段值会有多行,这种情况下,故障实体只有一个,为最近前一行的故障现象,且维修项目和故障原因字段值为多行内容合并的结果。例如”3曲轴主轴颈跳动超差执行以下维修项目:MT003检测曲轴主轴颈跳动量 +4飞轮连接螺栓松动执行以下维修项目:MT003检测曲轴组件(含飞轮紧固状态检查)",丢失了故障现象,只有故障原因和 +维修项目字段内容,那么不需要构建故障实体,而是将对应字段内容合并到前面最近一行存在故障现象的实体。即"2主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MT004更换连杆大端轴承MT017修复连杆大端轴承异常磨损" +请按照上述示例,对给出的文本进行实体抽取,给出文本为: +{text} +""" + + +Prompt_compose = """ +你是一个系统和子系统实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系 + "系统"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间", "运行时间", "运行条件" + 系统实体与子系统实体存在包含,一般系统由子系统组成 + 其中,系统实体主要来源表格html源码之前内容,主要是表格名称等,阐述该系统由表中子系统组成 + "子系统"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位" + 如果抽取设备以及设备的子零部件,那么它们之间也存在包含关系。 + + +示例: +输入为: +以下部分介绍螺旋桨的组成、工作原理、技术指标、接口情况、布置情况,从各方面知悉发动机的基本信息。 +# 3.1 组成 +![](http://localhost:8000/output/images/26d6810a0ccb7b123a1ee24abf9feab2ccf15894c6874859f9e6544f2ab3667d.jpg) +图 3.1 螺旋桨组成图 +表 3.1 螺旋桨组成部分 +
组成部分功能描述数量
桨叶核心推进部件,通过旋转推动水流产生反作用推力。其翼型、螺距和面积决定了推进效率。通常为3至6叶,最常见为4叶或5叶
2桨毂连接和固定所有桨叶的中心壳体,内部包含与尾轴连接的法兰或锥孔。1个
3桨毂帽安装在桨毂后部的流线型罩盖,用于减少桨毂后部产生的涡流阻力,提升水动力效率。1个(非所有螺旋桨标配)
+输出为: + +{{ + "entities": [ + {{ + "type": "系统", + "properties": {{ + "名称": "螺旋桨", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + }} + }}, + {{ + "type": "子系统", + "properties": {{ + "名称": "桨叶", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "功能": "核心推进部件,通过旋转推动水流产生反作用推力。其翼型、螺距和面积决定了推进效率。" + }} + }}, + {{ + "type": "子系统", + "properties": {{ + "名称": "桨毂", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "功能" : "连接和固定所有桨叶的中心壳体,内部包含与尾轴连接的法兰或锥孔。" + }} + }}, + {{ + "type": "子系统", + "properties": {{ + "名称": "桨毂帽", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "功能" : "安装在桨毂后部的流线型罩盖,用于减少桨毂后部产生的涡流阻力,提升水动力效率。" + }} + }}, + + ], + "relationships": [ + {{ + "type": "包含", + "from_entity": "螺旋桨", + "to_entity": "桨叶" + }}, + {{ + "type": "包含", + "from_entity": "螺旋桨", + "to_entity": "桨毂" + }}, + {{ + "type": "包含", + "from_entity": "螺旋桨", + "to_entity": "桨毂帽" + }}, + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +请按照上述示例,对给出的文本进行系统实体抽取,给出文本为: +{text} +""" + + +Prompt_compose_tujie1= """ +你是一个系统、子系统、部件和零部件实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系 + "系统"和"子系统"实体主要包括以下属性:"名称", "型号", "生产单位", "等级" + 其中,"系统"实体主要来源表格html源码之前内容,主要是表格名称等等内容,例如“表 2.2 FL-3.0 通信风冷装置设备组成表”中主设备为“通信风冷装置设备” + html表格源码主要阐述该主系统由表中子系统、部件、零部件组成 + 表中表格中组成编码字段值可以分析子系统、部件、一级零部件、二级零部件之间的包含关系,,表中每条记录的"组成编码"字段值代表了其实体类型, + 如果组成编码为2位数字(如02,21),那么应该为子系统实体,如果为4位等数字(如0219等),那么应该为部件实体,同时编码对应的实体存在包含关系 + 如果组成编码为6位数字(如021901,021921等),那么应该为一级零部件实体,同时与组成编码为0219的部件实体,存在包含关系 + 如果组成编码为8位数字(如02190308,02190316等),那么应该为二级零部件实体,同时与组成编码为021903的一级零部件实体,存在包含关系 + 例如表名关联的主系统实体为螺旋桨,表中组成编码字段值01表示螺旋桨的子系统,存在螺旋桨和子系统的包含关系,0101表示组成编码01子系统的部件实体,010101则表示0101组成编码对应部件的一级零部件 + "部件"、"零部件"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位" + + +示例: +输入为: +# 2.4 组成表示例 + +如表2.2所示,为FL-3.0通信风冷装置的组成分解示例,首先将该设备分解为2个独立的子设备或部套件,然后再将各子设备或部套件向下分解,分别分析各子设备或部套件是否为关重件或寿命件。设备组成表提交模板见附件一。 + +表 2.2 FL-3.0 通信风冷装置设备组成表 + +
组成编码名称是否为关重件是否为寿命件备注
01风冷装置
0101底座组件
0102下柜体组件
010201下框架组件
010202下面门组件
0103换热器8P
02电控箱
0201箱体
+ +输出为: + +{{ + "entities": [ + {{ + "type": "系统", + "properties": {{ + "名称": "通信风冷设备", + "型号": "", + "生产单位": "", + "等级": "", + }} + }}, + {{ + "type": "子系统", + "properties": {{ + "名称": "风冷装置", + "型号": "", + "生产单位": "", + "等级": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "01", + "备注" : "" + }} + }}, + {{ + "type": "设备", + "properties": {{ + "名称": "电控箱", + "型号": "", + "生产单位": "", + "等级": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "02", + "备注" : "" + }} + }}, + {{ + "type": "部件", + "properties": {{ + "名称": "底座组件", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "0101", + "备注" : "" + }} + }}, + {{ + "type": "部件", + "properties": {{ + "名称": "下柜体组件", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "0102", + "备注" : "" + }} + }}, + {{ + "type": "一级零部件", + "properties": {{ + "名称": "下框架组件", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "010201", + "备注" : "" + }} + }}, + {{ + "type": "一级零部件", + "properties": {{ + "名称": "下面门组件", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" :"010202", + "备注" : "" + }} + }}, + {{ + "type": "部件", + "properties": {{ + "名称": "换热器8P", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "是", + "是否为寿命件" : "否", + "组成编码" :"0103", + "备注" : "" + }} + }}, + {{ + "type": "部件", + "properties": {{ + "名称": "箱体", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "是", + "是否为寿命件" : "是", + "组成编码" :"0201", + "备注" : "" + }} + }}, + ], + "relationships": [ + {{ + "type": "包含", + "from_entity": "通信风冷设备", + "to_entity": "风冷装置" + }}, + {{ + "type": "包含", + "from_entity": "通信风冷设备", + "to_entity": "电控箱" + }}, + {{ + "type": "包含", + "from_entity": "风冷装置", + "to_entity": "底座组件" + }}, + {{ + "type": "包含", + "from_entity": "风冷装置", + "to_entity": "下柜体组件" + }}, + {{ + "type": "包含", + "from_entity": "下柜体组件", + "to_entity": "下框架组件" + }}, + {{ + "type": "包含", + "from_entity": "下柜体组件", + "to_entity": "下面门组件" + }}, + {{ + "type": "包含", + "from_entity": "风冷装置", + "to_entity": "换热器8P" + }}, + {{ + "type": "包含", + "from_entity": "电控箱", + "to_entity": "箱体" + }}, + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +表格前文本中提取到的主设备实体,请不要遗漏 +请不要将字段内容任意填充到其他属性值里面 +请按照上述示例,对给出的文本进行实体关系抽取,给出文本为: +{text} +""" + + +Prompt_compose_tujie2 = """ +你是一个子系统、部件和零部件实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系 + "子系统"实体主要包括以下属性:"名称", "型号", "生产单位", "等级" + html表格源码主要阐述该主系统由表中子系统、部件、零部件组成 + 表中表格中组成编码字段值可以分析子系统、部件、一级零部件、二级零部件之间的包含关系,,表中每条记录的"组成编码"字段值代表了其实体类型, + 如果组成编码为2位数字(如02,21),那么应该为子系统实体,如果为4位等数字(如0219等),那么应该为部件实体,同时编码对应的实体存在包含关系 + 如果组成编码为6位数字(如021901,021921等),那么应该为一级零部件实体,同时与组成编码为0219的部件实体,存在包含关系 + 如果组成编码为8位数字(如02190308,02190316等),那么应该为二级零部件实体,同时与组成编码为021903的一级零部件实体,存在包含关系 + 例如表名关联的主系统实体为螺旋桨,表中组成编码字段值01表示螺旋桨的子系统,存在螺旋桨和子系统的包含关系,0101表示组成编码01子系统的部件实体,010101则表示0101组成编码对应部件的一级零部件 + "零部件"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位" + + +示例: +输入为: +
房号组成编码名称型号/零件号重量(kg)数量
10701高温淡水冷却回路-1
2070101高温淡水泵KSB Etanorm SYT100-3151502
307010101泵驱动电机Siemens 1LA8 316-4AA802
+输出为: + +{{ + "entities": [ + {{ + "type": "部件", + "properties": {{ + "名称": "高温淡水冷却回路", + "型号/零件号": "", + "技术责任单位": "", + "生产单位": "", + "重量(kg)" : "", + "数量" : "1", + "组成编码" :"0701" + }} + }}, + {{ + "type": "一级零部件", + "properties": {{ + "名称": "高温淡水泵", + "型号/零件号": "KSB Etanorm SYT 100-315", + "技术责任单位": "", + "生产单位": "", + "重量(kg)" : "150", + "数量" : "2", + "组成编码" :"070101" + }} + }}, + {{ + "type": "二级零部件", + "properties": {{ + "名称": "泵驱动电机", + "型号/零件号": "Siemens 1LA8 316-4AA", + "技术责任单位": "", + "生产单位": "", + "重量(kg)" : "80", + "数量" : "2", + "组成编码" :"07010101" + }} + }}, + ], + "relationships": [ + {{ + "type": "包含", + "from_entity": "高温淡水冷却回路", + "to_entity": "高温淡水泵" + }}, + {{ + "type": "包含", + "from_entity": "高温淡水泵", + "to_entity": "泵驱动电机" + }}, + + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +不要修改表格中内容,避免填充错误的属性值;实体类型严格按照组成编码判断和定义 +请按照上述示例,对给出的文本进行实体关系抽取,给出文本为: +text +""" + + +Prompt_compose_mulu_tujie = """ +你是一个专业的HTML表格解析器,请将以下HTML表格转换为标准JSON数组,每行数据对应一个对象,对象的键来自表头(第一行非空中的文本),值为对应行的单元格内容。 + + +示例: +
序号组成编码名称型号/零件号重量(kg)数量
101螺旋桨本体总成CPP-UNIT-8500-4B12,500118,0001
202轴系与传动总成SHAFTING-SYS-85008,000 115,0001
303调距机构总成(CPP)CPP-MECH-85003,5006,0001
404控制系统总成CPP-CONTROL-S85800 11,5001
图名:船舶主发动机图解目录
图号:01
+ + +输出为: +[ + {{ + "组成编码" : "01", + "名称" : "螺旋桨本体总成", + "型号/零件号" : "CPP-UNIT-8500-4B", + "重量(kg)" : "12,500 - 18,000" + }}, + {{ + "组成编码" : "02", + "名称" : "轴系与传动总成", + "型号/零件号" : "SHAFTING-SYS-8500", + "重量(kg)" : "8,000 - 15,000" + }}, + {{ + "组成编码" : "03", + "名称" : "调距机构总成(CPP)", + "型号/零件号" : "CPP-MECH-8500", + "重量(kg)" : "3,500 - 6,000" + }}, + {{ + "组成编码" : "04", + "名称" : "控制系统总成", + "型号/零件号" : "CPP-CONTROL-S85", + "重量(kg)" : "800 - 1,500" + }} +] +只输出纯JSON,不要任何其他文本、解释或Markdown。 +请按照上述示例,对给出的文本进行抽取,给出文本为: +text +""" + + +Prompt_anli=""" +你是一个专业的装备故障信息结构化抽取助手。请根据以下规则,从提供的故障报告文本中提取“系统”和“故障模式”两类实体,并建立它们之间的关系。 +###提取规则如下: + 1、故障模式实体(type: "故障模式") + 名称:由“装备名称 + 故障关键词”构成,一般来源于文中的故障现象,例如“1号主机冷却系统温度异常升高”。 + properties 字段包括: + "故障现象":来自“故障现象”对应的具体描述文字。 + "发生时间":来自“时间”、"故障时间"字段。 + "维修方案":来自“三、故障排除”、“# 排除方法”等字段信息。 + "经验总结":来自“四、经验启示”、“# 启示”等章节字段内容。 + "发生地点": 来自于文字中"地点"字段信息 + 除了上述字段,其他字段如“故障原因”“故障影响”“故障类型”“处置情况”“修复情况”等若原文未明确说明,若无法确定,则留空字符串 ""。 + 2、系统设备实体(type: "系统") + 名称 与 properties["名称"] 均取自“装备名称”、“故障设备”等字段信息。 + properties["生产单位"] 取自“单位”字段(如“XX 舰艇保障大队”)。 + 其余属性(型号、技术责任单位、技术状态、生产日期、启用时间、运行时间、运行条件)若原文未提供,一律留空字符串 ""。 + 3、关系(relationships) + 必须包含一条 "具有" 类型的关系:from_entity 为系统设备实体的 名称,to_entity 为故障模式实体的 名称。 + 若存在更高层级设备(如“主机系统”包含“冷却系统”),但原文未提及,则不需构造“包含”关系。仅当原文明确有层级结构时才添加。本例中无上级设备,故只保留“存在”关系。 + 输出格式严格遵循 JSON 结构,不得包含额外解释、注释或 Markdown。仅输出一个 JSON 对象,包含 "entities" 和 "relationships" 两个顶层字段。 + +### 输出格式要求: +只输出纯JSON,不要任何其他文本、解释或Markdown。结构如下: +{{ + "entities": [ + {{ + "type": "系统", + "properties": {{ + "名称": "通信风冷设备", + "型号": "FL-2000", + "技术责任单位": "701所", + "生产单位": "沪东重机", + "技术状态": "正常", + "生产日期": "2021-08", + "启用时间": "2022-01", + "运行时间": "5000小时", + "运行条件": "舱内通风良好,无腐蚀性气体" + }} + }}, + {{ + "type": "故障模式", + "properties": {{ + "名称": "设备表面温度超过80℃", + "故障原因": "散热风扇停转", + "故障影响": "导致通信设备降频", + "故障类型": "硬件故障", + "发生时间": "2024-11-15", + "处置情况": "切换备用风机", + "修复情况": "更换风扇电机", + "维修方案":"进行设备的温度测试,进行降温" + }} + }} + ], + "relationships": [ + {{ + "type": "存在", + "from_entity": "通信风冷设备", + "to_entity": "设备表面温度超过80℃" + }} + ] +}} + +示例1: +输入为: +# 一、故障现象 + +单位:XX 舰艇保障大队 + +时间:2013 年 05 月 7 日 9 时 23 分 37 秒 + +舰艇状态:航行中,主机正常运行 + +装备名称:1 号主机冷却系统 + +故障现象:1 号主机冷却系统温度异常升高,监控面板显示冷却液温度持续超过警戒值$( > 9 5 ^ { \circ } C ) .$ ),伴随系统压力波动,报警指示灯常亮。 + +# 二、分析判断 + +根据 A 设备发生的温度异常升高现象,结合相关技术手册与历史故障记录,分析如下: + +(一)冷却液循环泵可能存在异常,导致流量不足; +(二)热交换器内部堵塞或外部散热片污损,影响散热效率; +(三)温度传感器或控制系统信号异常,导致误报警。 + +# 三、故障排除 + +![image](https://cdn-mineru.openxlab.org.cn/result/2026-01-19/8ca2fbe0-d6f4-4062-b40c-bb98b03b5006/fe9fb37249ebdf935ee0d237e447d5de52ac996315f572c343273a679db06785.jpg) + + +# 图:冷却系统结构简图 + +# (一)初步检查 + +关闭主机,检查冷却液液位及管路是否泄漏,确认液位正常、无泄漏。 + +# (二)系统检测 + +使用便携式流量计检测循环泵输出流量,发现流量低于标准值;拆卸热交换器检查,发现内部有沉积物堵塞。 + +# (三)故障处理 + +清洗热交换器内部,更换循环泵滤网,重新加注冷却液并排气。启动系统后,温度恢复正常,压力稳定,报警消除。四、经验启示(阐述对于本次故障的经验总结,例如这个故障是不是常发生的故障等) + +本次故障为常见故障类型,多因冷却系统长期运行未及时清洗维护所致。建议: + +(一)定期清洗热交换器与滤网; +(二)加强日常巡检,特别是高温季节; +(三)建立冷却系统维护台账,记录清洗与更换周期。 + +故障二、XXX 型号A 设备A 故障 + +输出为: +{{ + "entities": [ + {{ + "type": "系统", + "properties": {{ + "名称": "1 号主机冷却系统", + "型号": "", + "技术责任单位": "XX 舰艇保障大队", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + }} + }}, + {{ + "type": "故障模式", + "properties": {{ + "故障现象": "1 号主机冷却系统温度异常升高,监控面板显示冷却液温度持续超过警戒值$( > 9 5 ^ { \circ } C ) .$ ),伴随系统压力波动,报警指示灯常亮。", + "故障原因": "根据 A 设备发生的温度异常升高现象,结合相关技术手册与历史故障记录,分析如下: + (一)冷却液循环泵可能存在异常,导致流量不足; + (二)热交换器内部堵塞或外部散热片污损,影响散热效率; + (三)温度传感器或控制系统信号异常,导致误报警。 +", + "故障影响": "", + "故障类型": "", + "发生时间": "2013 年 05 月 7 日 9 时 23 分 37 秒", + "处置情况": " ", + "修复情况": "", + "维修方案":"![image](https://cdn-mineru.openxlab.org.cn/result/2026-01-19/8ca2fbe0-d6f4-4062-b40c-bb98b03b5006/fe9fb37249ebdf935ee0d237e447d5de52ac996315f572c343273a679db06785.jpg) + # 图:冷却系统结构简图 + # (一)初步检查 + 关闭主机,检查冷却液液位及管路是否泄漏,确认液位正常、无泄漏。 + # (二)系统检测 + 使用便携式流量计检测循环泵输出流量,发现流量低于标准值;拆卸热交换器检查,发现内部有沉积物堵塞。 + # (三)故障处理 + 清洗热交换器内部,更换循环泵滤网,重新加注冷却液并排气。启动系统后,温度恢复正常,压力稳定,报警消除。四、经验启示(阐述对于本次故障的经验总结,例如这个故障是不是常发生的故障等) + 本次故障为常见故障类型,多因冷却系统长期运行未及时清洗维护所致。建议: + (一)定期清洗热交换器与滤网; + (二)加强日常巡检,特别是高温季节; + (三)建立冷却系统维护台账,记录清洗与更换周期。" + }} + }} + ], + "relationships": [ + {{ + "type": "存在", + "from_entity": "1 号主机冷却系统", + "to_entity": "1 号主机冷却系统温度异常升高,监控面板显示冷却液温度持续超过警戒值$( > 9 5 ^ { \circ } C ) .$ ),伴随系统压力波动,报警指示灯常亮。" + }} + ] +}} + +抽取的实体以及实体属性值应严格来源于文本,不可以做任何擅自更改,例如将"设备表面温度超过80℃"更改为"设备表面温度超过100℃" +也不应该擅自中英文符号,例如将实体名称"尺寸(长X宽X高mm)"改成实体名称"尺寸(长X宽X高mm)" +输入文本: +text +""" + +prompt_extract_repair_node_rela = """ +你是一个信息抽取专家,根据给出的符合要求html源码,能够抽取出对应的核心信息 + 给你的文本是一段维修项目表,其中维修项目编号代表该维修项目的编号,请抽取出来,编号内容不要随意修改,也不要遗漏,输出为"wxbianhao":"MT001" + 其中维修项目字段代表该维修项目的名称,输出为"维修项目":"检查液压油位、油质与压力" + 其中,组成编码与名称是一一对应的,名称代表该项目使用的设备名称,组成编码代表该设备的编码,也可能有一组或者多组,请进行抽取,抽取格式如下: +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "提取到的编号 (如 OT005)", + "名称": "提取到的维修项目名称" + }} + }}, + {{ + "type": "设备", + "properties": {{ + "组成编码": "提取到的设备组成编码(如 0401)", + "名称": "提取到的设备名称", + "维修项目编号" : "提取到的编号 (如 OT005)", + "维修项目名称": "提取到的维修项目名称" + }} + }}, + ], + "relationships": [] +}} + +示例1: +输入为: +
维修项目编号组成编码名称维修项目维修间隔期
MT0210401液压动力单元检查液压油位、油质与压力1D/1W
+ +# 安全注意事项 + +1. 设备运行状态确认与防护:检查工作通常在设备运行时或刚停机时进行。必须清楚了解检查点周边环境,远离所有旋转部件(如泵轴、风扇、联轴器)和高温表面。衣物须紧束,严禁戴手套靠近旋转部位。若需在运行中检查,应事先规划好安全站位和撤离路线。 + +2. 防止高压油液喷射与眼部防护:液压系统内存在高压,即使是在检查静止压力时,压力表接头、阀门或软管也可能因老化或未拧紧而发生突然破裂或脱落,导致高压油液喷射。必须全程佩戴防护眼镜或面罩。检查时,身体不得正对压力表或测压接头正面。 + +保障设备(工具)、备件、消耗材料、人力人员需求 +输出为: + +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "MT021", + "名称": "检查液压油位、油质与压力", + }} + }}, + {{ + "type": "设备", + "properties": {{ + "组成编码": "0401", + "名称": "液压动力单元", + "维修项目编号" : "MT021", + "维修项目名称": "检查液压油位、油质与压力" + }} + }} + ], + "relationships": [] +}} + +示例2: +输入为: +
维修项目编号组成编码名称维修项目维修间隔期
MT0020402/040203机座与机架组件/焊接机座组件保养机座与机架组件、焊接机座组件1D/1W
+ +# 安全注意事项 + +1. 设备运行状态确认与防护:检查工作通常在设备运行时或刚停机时进行。必须清楚了解检查点周边环境,远离所有旋转部件(如泵轴、风扇、联轴器)和高温表面。衣物须紧束,严禁戴手套靠近旋转部位。若需在运行中检查,应事先规划好安全站位和撤离路线。 + +2. 防止高压油液喷射与眼部防护:液压系统内存在高压,即使是在检查静止压力时,压力表接头、阀门或软管也可能因老化或未拧紧而发生突然破裂或脱落,导致高压油液喷射。必须全程佩戴防护眼镜或面罩。检查时,身体不得正对压力表或测压接头正面。 + +保障设备(工具)、备件、消耗材料、人力人员需求 + +输出为: +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "MT002", + "名称": "保养机座与机架组件、焊接机座组件" + }} + }}, + {{ + "type": "设备", + "properties": {{ + "编号": "0402", + "名称": "机座与机架组件", + "维修项目编号" : "MT002", + "维修项目名称": "保养机座与机架组件、焊接机座组件" + }} + }}, + {{ + "type": "设备", + "properties": {{ + "编号": "040203", + "名称": "焊接机座组件", + "维修项目编号" : "MT002", + "维修项目名称": "保养机座与机架组件、焊接机座组件" + }} + }}, + ], + "relationships": [] +}} + +示例3: +输入为: +维修工作卡002 故障名称:阴极过压故障 +
故障现象WCC-II的BITE 显示 TR-2国021-03阴极稳压电路板
8故障原因> 02-05 阴极电源驱动电源板故障;> 022 高压电源组合故障;→ 021-03 阴极稳压电路板故障。
维修人数 11~2
维修工具场十字起子,一字起子
排除步骤1将放大链全部关机,打开放大链顶盖,等待5分钟,让高压电源放电。2拔掉插头 XP1F022,更换022高压电源组合。3开机,加高压,若仍不正常,断高压,关机,再等待5分钟,拔掉插头XP1F052和XP2F052,更换02-051和02-052板;4若仍不正常,更换021-03 阴极取样电路板。
注意事项Q
+输出为: +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "002", + "名称": "修复阴极过压故障" + }} + }}, + {{ + "type": "设备", + "properties": {{ + "名称": "阴极", + "维修项目编号" : "002", + "维修项目名称": "修复阴极过压故障" + }} + }}, + ], + "relationships": [] +}} +只输出纯JSON,不要任何其他文本、解释或Markdown。 +字段不要擅自修改,例如“组成编码”,不应该随意改成“编码”字段 +字段值也不要擅自修改,例如"MT021"改成"T021" +请按照上述示例,对给出的文本进行信息抽取,给出文本为: +text +""" + + +prompt_extract_repair_node_rela1 = """ +你是一个信息抽取专家,根据给出的符合要求html源码,能够抽取出对应的核心信息 + 给你的文本是一段维修项目表,其中维修项目编号代表该维修项目的编号,请抽取出来,编号内容不要随意修改,也不要遗漏,输出为"编号":"MT001" + 其中维修项目字段代表该维修项目的名称,输出为"维修项目":"检查液压油位、油质与压力",抽取格式如下: +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "提取到的编号 (如 OT005)", + "名称": "提取到的维修项目名称" + }} + }} + ], + "relationships": [] +}} + +示例1: +输入为: +
维修项目编号组成编码名称维修项目维修间隔期
MT0210401液压动力单元检查液压油位、油质与压力1D/1W
+ +# 安全注意事项 + +1. 设备运行状态确认与防护:检查工作通常在设备运行时或刚停机时进行。必须清楚了解检查点周边环境,远离所有旋转部件(如泵轴、风扇、联轴器)和高温表面。衣物须紧束,严禁戴手套靠近旋转部位。若需在运行中检查,应事先规划好安全站位和撤离路线。 + +2. 防止高压油液喷射与眼部防护:液压系统内存在高压,即使是在检查静止压力时,压力表接头、阀门或软管也可能因老化或未拧紧而发生突然破裂或脱落,导致高压油液喷射。必须全程佩戴防护眼镜或面罩。检查时,身体不得正对压力表或测压接头正面。 + +保障设备(工具)、备件、消耗材料、人力人员需求 +输出为: + +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "MT021", + "名称": "检查液压油位、油质与压力" + }} + }} + ], + "relationships": [] +}} + +示例2: +输入为: +
维修项目编号组成编码名称维修项目维修间隔期
MT0020402/040203机座与机架组件/焊接机座组件保养机座与机架组件、焊接机座组件1D/1W
+ +# 安全注意事项 + +1. 设备运行状态确认与防护:检查工作通常在设备运行时或刚停机时进行。必须清楚了解检查点周边环境,远离所有旋转部件(如泵轴、风扇、联轴器)和高温表面。衣物须紧束,严禁戴手套靠近旋转部位。若需在运行中检查,应事先规划好安全站位和撤离路线。 + +2. 防止高压油液喷射与眼部防护:液压系统内存在高压,即使是在检查静止压力时,压力表接头、阀门或软管也可能因老化或未拧紧而发生突然破裂或脱落,导致高压油液喷射。必须全程佩戴防护眼镜或面罩。检查时,身体不得正对压力表或测压接头正面。 + +保障设备(工具)、备件、消耗材料、人力人员需求 + +输出为: +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "MT002", + "名称": "保养机座与机架组件、焊接机座组件" + }} + }} + ], + "relationships": [] +}} + +示例3: +输入为: +维修工作卡002 故障名称:阴极过压故障 +
故障现象WCC-II的BITE 显示 TR-2国021-03阴极稳压电路板
8故障原因> 02-05 阴极电源驱动电源板故障;> 022 高压电源组合故障;→ 021-03 阴极稳压电路板故障。
维修人数 11~2
维修工具场十字起子,一字起子
排除步骤1将放大链全部关机,打开放大链顶盖,等待5分钟,让高压电源放电。2拔掉插头 XP1F022,更换022高压电源组合。3开机,加高压,若仍不正常,断高压,关机,再等待5分钟,拔掉插头XP1F052和XP2F052,更换02-051和02-052板;4若仍不正常,更换021-03 阴极取样电路板。
注意事项Q
+输出为: +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "002", + "名称": "修复阴极过压故障" + }} + }}, + ], + "relationships": [] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +字段不要擅自修改,例如“编号”,不应该随意改成“编码”字段 +字段值也不要擅自修改,例如"MT021"改成"T021" +请按照上述示例,对给出的文本进行信息抽取,给出文本为: +text +""" + + + + + +prompt_extract_operation_node_rela = """ +# Role +你是一个专业的信息抽取专家,专门从操作手册的 HTML/文本片段中提取核心操作项目信息。 + +# Task +请分析给定的文本(包含表格和描述),提取以下两个核心字段: +1. **opebianhao** (操作项目编号):通常是 "OT" 开头的编号,保持原样,不要修改。一般来源于表中的项目编号字段对应的值 +2. **operation_name** (操作项目名称):该编号对应的具体操作标题。一般来源于表中的操作项目字段对应的值 + +# Output Format (Strictly Enforced) +你必须且只能输出一个标准的 JSON 对象,格式如下: +{{ + "entities": [ + {{ + "type": "操作项目", + "properties": {{ + "编号": "提取到的编号 (如 OT005)", + "名称": "提取到的操作项目名称" + }} + }} + ], + "relationships": [] +}} + +# Constraints +1. **严禁**输出 Markdown 代码块标记(如 ```json ... ```),只输出纯 JSON 字符串。 +2. **严禁**输出任何解释性文字、前言或后语。 +3. 如果文本中包含多个操作项目,请在 "entities" 列表中添加多个对象。 +4. 如果无法找到编号或名称,该字段填 null,但仍需保持 JSON 结构完整。 +5. **绝对不要**输出类似 `["key": "value"]` 的错误格式,必须使用 `{{"key": "value"}}`。 +6. 一般一段文本中只有一个操作项目,所以只有1条记录 +# Few-Shot Example + +## Input Text +表 4.6 轴系与轴承温度、振动定期巡检与记录 +
项目编号操作项目
OT005轴系与轴承温度、振动定期巡检与记录
+安全防护:佩戴装备。 + +## Output +{{ + "entities": [ + {{ + "type": "操作项目", + "properties": {{ + "编号": "OT005", + "名称": "轴系与轴承温度、振动定期巡检与记录" + }} + }} + ], + "relationships": [] +}} + +请按照上述示例,对给出的文本进行信息抽取,给出文本为: +text +""" +prompt_extract_beipinbeijian_node_rela = """ +你是一个专业备品备件实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系: +###提取规则如下: + 1、备品备件实体(type: "备品备件") + "备品备件"实体主要包括以下属性:"名称", "型号", "规格", "备件编码", "单件重量", "计量单位", "单机数", "随机数量"等属性 + 文本中"名称", "型号", "规格", "备件编码", "单件重量", "计量单位", "单机数", "随机数量"等属性与给出html源码表格字段对应的值相对应 + 2、设备实体(type: "设备") + 名称一般来源于表html代码之前的标题或者前文文本信息中 + 其余属性(型号、技术责任单位、技术状态、生产日期、启用时间、运行时间、运行条件)若原文未提供,一律留空字符串 ""。 + 3、关系(relationships) + 必须包含一条 "存储备用" 类型的关系:from_entity 为设备实体的 名称,to_entity 为备品备件实体的 名称。设备实体一般来原于表格的标题名等信息,而表格中内容则主要为备品备件实体 + 若存在更高层级设备(如“主机系统”存储备用“发动机”),但原文未提及,则不需构造“存储备用”关系。仅当原文明确有上下文时才添加。本例中无上级设备,故只保留“存储备用”关系。 + 输出格式严格遵循 JSON 结构,不得包含额外解释、注释或 Markdown。仅输出一个 JSON 对象,包含 "entities" 和 "relationships" 两个顶层字段。 + + +示例: +输入为: +筏架舷侧门组合装置 +备品备件及工具清单 + +images/d4f3aa8c438ef1fbdc8ff22d1d5b3e275d8e63c53a0c477c53ba72adbae0439e.jpg + +
房号备件型号规格尺寸(长宽随机配备数量(90天是否可修R中南R储存要求GR备注
舰上基地环境期限
1筏筒捆扎带组合件22200长期折便换
2螺旋扣22200长期
3卸扣282000h折拆换
+ +输出为: +{{ + "entities": [ + {{ + "type": "设备", + "properties": {{ + "名称": "筏架舷侧门组合装置", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + }} + }}, + {{ + "type": "备品备件", + "properties": {{ + "名称": "筏筒捆扎带组合件", + "规格": "", + "型号": "", + "图号或标准号或代号": "", + "计量单位": "套", + "单机重量": "", + "尺寸(长X宽X高mm)": "", + "单机装配数量": "2", + "随机配备数量(90 天)_舰上":"2", + "随机配备数量(90 天)_舰上":"", + "远航配备数量(180天)":"", + "实物图片电子文档名称": "", + "MTBF(b)": "200h", + "生成厂家": "江阴市船舶设备制造有限公司", + "出厂日期": "", + "供货周期(天)": "", + "有效期(月)": "长期", + "使用寿命(h)": "拆卸时更换", + "备件箱号": "", + "储存要求_环境": "", + "储存要求_期限": "长期", + "停产后供应方式": "" + }} + }}, + {{ + "type": "备品备件", + "properties": {{ + "名称": "螺旋扣", + "规格": "", + "型号": "", + "图号或标准号或代号": "", + "计量单位": "只", + "单机重量": "", + "尺寸(长X宽X高mm)": "", + "单机装配数量": "2", + "随机配备数量(90 天)_舰上":"2", + "随机配备数量(90 天)_舰上":"", + "远航配备数量(180天)":"", + "实物图片电子文档名称": "", + "MTBF(b)": "200h", + "生成厂家": "江阴市船舶设备制造有限公司", + "出厂日期": "", + "供货周期(天)": "", + "有效期(月)": "长期", + "使用寿命(h)": "拆卸时更换", + "备件箱号": "", + "储存要求_环境": "", + "储存要求_期限": "长期", + "停产后供应方式": ""] + }} + }}, + {{ + "type": "备品备件", + "properties": {{ + "名称": "卸扣", + "规格": "", + "型号": "", + "图号或标准号或代号": "", + "计量单位": "只", + "单机重量": "", + "尺寸(长X宽X高mm)": "", + "单机装配数量": "2", + "随机配备数量(90 天)_舰上":"8", + "随机配备数量(90 天)_舰上":"", + "远航配备数量(180天)":"", + "实物图片电子文档名称": "", + "MTBF(b)": "200h", + "生成厂家": "江阴市船舶设备制造有限公司", + "出厂日期": "", + "供货周期(天)": "", + "有效期(月)": "长期", + "使用寿命(h)": "拆卸时更换", + "备件箱号": "", + "储存要求_环境": "", + "储存要求_期限": "长期", + "停产后供应方式": ""] + }} + }} + ], + "relationships": [ + {{ + "type": "存储备用", + "from_entity": "筏架舷侧门组合装置", + "to_entity": "轴系与轴承温度、筏筒捆扎带组合件" + }}, + {{ + "type": "存储备用", + "from_entity": "筏架舷侧门组合装置", + "to_entity": "螺旋扣" + }}, + {{ + "type": "存储备用", + "from_entity": "筏架舷侧门组合装置", + "to_entity": "卸扣" + }}, + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +字段不要擅自修改,例如“尺寸(长X宽X高mm)”,不应该随意改成“尺寸”字段 +请按照上述示例,对给出的文本进行备品备件实体抽取,给出文本为: +{text} +""" + + +filter_text_prompt= """ +你是一个专业的系统实体属性抽取专家,从给出的文本中按照要求抽取所有系统实体以及对应实体的属性值。 +###抽取规则: + 系统实体一般指的是一段文本的核心实体,可能会有多个,也可能只有一个,整个内容和主题都围绕这些核心实体进行阐述 + 系统实体主要包括以下属性:"名称", "型号", "生产单位", "等级" + 一般系统实体在文本的名称对应属性"名称",其他三个属性如果文本没有或者无法提取,则默认为空 + 根据给出文本,分析围绕这些实体阐述了什么额外内容,这些内容能够提供什么新的属性值,并进行抽取 + 如果存在多个系统实体,那么应该分别进行实体以及对应的属性值抽取.请严格遵守该规则 + 只需要抽取系统实体名称,如果名称后面有什么编码数字,请不要进行抽取,例如"焊接机座组件(0101)"抽取为"焊接机座组件" +### 输出格式要求: +- 必须返回标准的 JSON 数组格式 +- 即使只有一个实体,也必须用数组包裹 +- 每个数组元素是一个对象,包含 "type" 和 "properties" 字段 +- 禁止输出任何解释性文字、Markdown 标记或其他非 JSON 内容 + +### 示例1(单实体): +输入文本: +1 安全警告 +本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。 +1.1 警告 +1)主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。 +2)严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。 +3)燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。 +4)吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。 +1.2 注意 +1)所有更换件必须使用原厂或等同技术条件的认可备件。 +2)防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。 +3)为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。 +4)如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。 +5)拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。 +6)所有密封件(O形圈、金属密封环)拆装必换。 +7)紧固件必须按规定力矩和顺序紧固。 +8)起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。 +思考:这段文本提到了”冷水机组“,文本中标题为"警告",根据文本内容可以分析,主要阐述了冷水机组在使用和维修期间过程中需要注意的警告事项 +,因此只有一个系统实体,"名称"属性值应该为"冷水机组",同时可以增加"使用过程中警告事项"属性,综合分析,输出如下: +{{ + "entities": [ + {{ + "type": "安全警告", + "properties": {{ + "名称": "设备名+安全警告", + "内容": "1)严禁带电维修、保养设备!\\n2)为了防止电力冲击造成组件击穿,并可能导致伤害或死亡,本设备必须安全、可靠接地!", + "切片": + }} + }}, +] +}} + +### 示例2(多实体: +输入文本: +#2.1 主要功能 +船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。 +发动机主要由以下子系统组成: +1) 焊接机座组件(0101):承载与结构支撑; +2) 曲柄连杆机构:实现往复—旋转运动转换; +3) 燃烧室部件:完成燃烧做功; +4) 排气阀驱动系统:控制废气排放; +5) 燃油喷射系统:完成燃油定时、定量喷射; +6) 扫气与增压系统:提高换气效率与功率密度。 + +思考:这段文本首先提到了”船舶主发动机“,文本中标题为"主要功能",根据文本内容可以分析,首先"船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。"阐述了船舶主发动机主要功能; +接着通过"发动机主要由以下子系统组成"可以得知还有多个系统实体,该文本主要描述了系统实体"主要功能",因此"1) 机座与机架组件:承载与结构支撑; +2) 曲柄连杆机构:实现往复—旋转运动转换; +3) 燃烧室部件:完成燃烧做功; +4) 排气阀驱动系统:控制废气排放; +5) 燃油喷射系统:完成燃油定时、定量喷射; +6) 扫气与增压系统:提高换气效率与功率密度。 +"可以分析出,曲柄连杆机构、燃烧室部件、排气阀驱动系统等也可以抽取为系统实体,同时后面对应内容描述该系统实体的主要功能。综上分析,可以抽取实体以及属性如下: +{{ + "entities":[ + {{ + "type": "系统", + "properties": {{ + "名称": "船舶主发动机", + "型号": "", + "生产单位": "", + "等级": "", + "功能": "将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行", + "类型": "低速二冲程船用推进柴油机", + "组成": "机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀驱动系统、燃油喷射系统、扫气与增压系统" + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "机座与机架组件", + "型号": "", + "生产单位": "", + "等级": "", + "功能": "承载与结构支撑" + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "曲柄连杆机构", + "型号": "", + "生产单位": "", + "等级": "", + "功能": "实现往复—旋转运动转换" + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "燃烧室部件", + "型号": "", + "生产单位": "", + "等级": "", + "功能": "完成燃烧做功" + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "排气阀驱动系统", + "型号": "", + "生产单位": "", + "等级": "", + "功能": "控制废气排放" + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "燃油喷射系统", + "型号": "", + "生产单位": "", + "等级": "", + "功能": "完成燃油定时、定量喷射" + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "扫气与增压系统", + "型号": "", + "生产单位": "", + "等级": "", + "功能": "提高换气效率与功率密度" + }} + }} +] +}} +只输出纯JSON,不要任何其他文本、解释或Markdown。 +请按照上述示例,对给出的文本进行实体抽取,给出文本为: +text +""" +zhangjie_prompt = """ +你是一个专业的技术文档结构化提取专家。给出的文本是从技术手册中按章节切出的一个片段,已用 # 符号标记标题层级: +- `#` 开头:一级章节标题(含编号,如 `#1 概述`、`#2.3 工作原理`) +- `##` 开头:二级章节标题(含编号,如 `##1.1 主要功能`) +- 无前缀:正文内容、表格或图片说明 + +### 提取规则: + +**情况一:输入包含一级标题(`#` 开头)** +- 提取 1 个实体 +- `type` = 一级标题去掉编号和首尾空格,例如 `#1 概述` → type 为 `概述` +- `properties` 按以下规则构建: + - `名称`:留空字符串 ""(由外部代码填充,请勿自行填写) + - 一级标题之后、第一个二级标题之前的正文 → 属性键为 `概述` + - 每个二级标题(去掉编号和首尾空格)→ 属性键,该标题下的正文 → 属性值 + - 如果没有任何二级标题,全部正文 → 属性键为 `内容` + - 属性值为空时不输出该属性 + +**情况二:输入只有二级标题(`##` 开头,无一级标题)** +- 提取 1 个实体 +- `type` = 二级标题去掉编号和首尾空格,例如 `##3.1 液压系统` → type 为 `液压系统` +- `properties`:`名称` 留空,正文内容 → 属性键为 `内容` + +### 输出格式: +- 必须返回标准 JSON,包含 `entities` 数组 +- 禁止输出 relationships、解释文字、Markdown 标记 +- 属性值保留原文,不要改写或压缩 + +### 示例1(含二级标题的一级章节): +输入文本: +#1 概述 +本章介绍发动机的基本情况。 +##1.1 主要使用用途及适用范围 +本发动机主要用于船舶推进,适用于各类远洋货轮。 +##1.2 主要规格及参数 +额定功率:12000kW,转速:91rpm,气缸数:8。 + +输出: +{{ + "entities": [ + {{ + "type": "概述", + "properties": {{ + "名称": "", + "概述": "本章介绍发动机的基本情况。", + "主要使用用途及适用范围": "本发动机主要用于船舶推进,适用于各类远洋货轮。", + "主要规格及参数": "额定功率:12000kW,转速:91rpm,气缸数:8。" + }} + }} + ] +}} + +### 示例2(无二级标题的一级章节): +输入文本: +#3 工作原理 +发动机采用二冲程低速工作方式,活塞向下运动时扫气口打开,新鲜空气扫入气缸,废气经排气阀排出。 + +输出: +{{ + "entities": [ + {{ + "type": "工作原理", + "properties": {{ + "名称": "", + "内容": "发动机采用二冲程低速工作方式,活塞向下运动时扫气口打开,新鲜空气扫入气缸,废气经排气阀排出。" + }} + }} + ] +}} + +### 示例3(仅二级标题,特殊章节切片): +输入文本: +##4.2 燃油系统 +燃油系统由高压油泵、喷油器、燃油管路组成,负责将燃油定时定量喷入气缸。 +系统工作压力为900bar,喷油正时由电控单元控制。 + +输出: +{{ + "entities": [ + {{ + "type": "燃油系统", + "properties": {{ + "名称": "", + "内容": "燃油系统由高压油泵、喷油器、燃油管路组成,负责将燃油定时定量喷入气缸。\\n系统工作压力为900bar,喷油正时由电控单元控制。" + }} + }} + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +请按照上述规则,对给出的文本进行章节实体提取,给出文本为: +{{{text}}} +""" + + +toc_prompt = """ +你是一个专业的技术文档结构化提取专家。给出的文本是技术手册的目录页内容。 + +### 任务: +从目录中提取所有**一级章节**的编号和名称。 + +### 规则: +- 一级章节:编号格式为单个数字,如 `1`、`2`、`3`(不含小数点的编号) +- 去掉编号、页码、点线,只保留章节名称文字 +- **保留所有章节,不要过滤任何章节** + +### 输出格式: +```json +{{ + "chapters": [ + {{"numbering": "1", "type": "章节名1"}}, + {{"numbering": "2", "type": "章节名2"}} + ] +}} +``` + +### 示例: +目录内容: +1 安全警告 .............. 4 +2 概述 .................. 8 + 2.1 主要使用用途 ....... 9 + 2.2 主要规格及参数 ..... 10 +3 工作原理 .............. 15 +4 维修工作指导 .......... 20 +5 组成、技术特征及接口 .. 25 + +输出: +{{ + "chapters": [ + {{"numbering": "1", "type": "安全警告"}}, + {{"numbering": "2", "type": "概述"}}, + {{"numbering": "3", "type": "工作原理"}}, + {{"numbering": "4", "type": "维修工作指导"}}, + {{"numbering": "5", "type": "组成、技术特征及接口"}} + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +请从以下目录内容中提取一级章节: +{{{text}}} +""" + + diff --git a/kg_build/_post_process_entities_and_relations.py b/kg_build/_post_process_entities_and_relations.py new file mode 100644 index 0000000..8b9c0fb --- /dev/null +++ b/kg_build/_post_process_entities_and_relations.py @@ -0,0 +1,209 @@ + +def reset_entities_and_relations(entities: list, relations: list, device: str): + """ + 实体与关系的后处理中心(规则分支入口)。 + 在此处集中管理所有不需要大模型参与的规则清洗、类型修正和关系调整。 + + :param entities: 实体列表 (会被原地修改并过滤) + :param relations: 关系列表 (会被原地修改) + :param device: 设备名称 + :return: (filtered_entities, relations) 返回过滤后的实体列表和修改后的关系列表 + """ + print(f"\n[后处理] 开始执行规则清洗 (Device: {device})...") + total_changes = 0 + + # ========================================== + # 配置化规则定义:(旧类型, 新类型, 新关系类型, 名称替换逻辑) + # name_transformer: 接收 (old_name, device),返回 new_name + # ========================================== + standardization_rules = [ + { + "old_type": "接口关系", + "new_type": "接口", + "new_rel_type": "配备", + "name_transformer": lambda old, dev: f"{dev}的接口" + }, + { + "old_type": "安全警告", + "new_type": "安全警告", + "new_rel_type": "安全警告", + "name_transformer": lambda old, dev: old.replace("安全警告", "注意事项") if "注意事项" in old.replace("安全警告", "注意事项") else f"{dev}的注意事项" + }, + { + "old_type": "技术指标", + "new_type": "技术指标参数", + "new_rel_type": "具有", + "name_transformer": lambda old, dev: ( + old.replace("技术指标", "技术指标参数") if "技术指标" in old + else f"{old}参数" if old + else f"{dev}的技术指标参数" + ) + }, + { + "old_type": "安装调试", + "new_type": "调试", + "new_rel_type": "调试", # 注意:这里原代码逻辑是关系类型也变为"调试" + "name_transformer": lambda old, dev: ( + old.replace("安装调试", "调试") if "安装调试" in old + else f"{dev}的调试" + ) + }, + { + "old_type": "系统功能", + "new_type": "功能", + "new_rel_type": "实现", + "name_transformer": lambda old, dev: ( + old.replace("系统功能", "功能") if "系统功能" in old + else f"{dev}的功能" + ) + }, + { + "old_type": "调试细则", + "new_type": "调试", + "new_rel_type": "调试", + "name_transformer": lambda old, dev: ( + old.replace("调试细则", "调试") if "调试细则" in old + else f"{dev}的调试" + ) + } + ] + + # ========================================== + # 通用处理引擎:执行标准化规则 + # ========================================== + for rule in standardization_rules: + count = 0 + old_type = rule["old_type"] + new_type = rule["new_type"] + new_rel_type = rule["new_rel_type"] + transformer = rule["name_transformer"] + + old_to_new_map = {} + + # 1. 处理实体 + for ins in entities: + if ins.get("type") == old_type: + old_name = ins["properties"].get("名称", "") + + # 生成新名称 + new_name = transformer(old_name, device) + + # 兜底检查:如果生成的名字还是空的 + if not new_name: + new_name = f"{device}的{new_type}" + + # 应用修改 + ins["type"] = new_type + ins["properties"]["名称"] = new_name + + old_to_new_map[old_name] = new_name + count += 1 + print(f" - [实体] '{old_name}' ({old_type}) -> '{new_name}' ({new_type})") + + # 2. 处理关联关系 + if old_to_new_map: + for rel in relations: + to_ent = rel.get("to_entity") + if to_ent in old_to_new_map: + old_rel_type_val = rel.get("type") + rel["type"] = new_rel_type + rel["to_entity"] = old_to_new_map[to_ent] + count += 1 + print(f" - [关系] '{rel['from_entity']}' --({old_rel_type_val})--> '{to_ent}' 变更为 --({new_rel_type})--> '{rel['to_entity']}'") + + if count > 0: + print(f" [规则应用] {old_type} -> {new_type}: 共修改 {count} 处") + total_changes += count + + # ========================================== + # 特殊逻辑:拆分 "基本情况" + # 策略:先收集新生成的实体/关系,循环结束后再添加,避免遍历中修改列表 + # ========================================== + new_items_buffer = [] + basic_info_indices = [] # 记录需要被移除的"基本情况"实体的索引(如果需要彻底移除) + + for idx, ins in enumerate(entities): + if ins.get("type") == "基本情况": + gonneng = ins["properties"].get("主要功能", "") + gztj = ins["properties"].get("工作条件", "") + source_ks = ins.get("knowledge_source") + + # 构建 "功能" 实体 + func_name = f"{device}的功能" + entity_func = { + "type": "功能", + "properties": { + "名称": func_name, + "内容": gonneng, + "knowledge_source": source_ks + } + } + rela_func = { + "type": "使用", + "from_entity": device, + "to_entity": func_name, + } + + # 构建 "环境条件" 实体 + env_name = f"{device}的环境条件" + entity_env = { + "type": "环境条件", + "properties": { + "名称": env_name, + "内容": gztj, + "knowledge_source": source_ks + } + } + rela_env = { + "type": "适用", + "from_entity": device, + "to_entity": env_name, + } + + new_items_buffer.extend([entity_func, entity_env, rela_func, rela_env]) + # 标记该实体后续需要被过滤掉(根据原代码逻辑,"基本情况"最终不保留在返回的实体列表中) + basic_info_indices.append(idx) + + print(f" [拆分完成] 已从 '基本情况' 生成 '功能' 和 '环境条件' (来源已继承)。") + + # 将新生成的项加入主列表 + # 注意:new_items_buffer 中包含实体和关系,需要分开加 + # 前两个是实体,后两个是关系 (根据上面的 extend 顺序) + # 为了更安全,我们显式区分 + entities_to_add = [item for item in new_items_buffer if item.get("properties")] # 简单判断:有 properties 的是实体 + relations_to_add = [item for item in new_items_buffer if not item.get("properties")] # 没有 properties 的是关系 (假设关系结构不同) + + # 更严谨的区分方式是根据 key 判断,或者上面构建时直接分两个列表 + # 这里采用重新构建的方式确保准确,因为 buffer 里混放了 + # 实际上,上面的逻辑里 entity 有 properties, relation 没有 (或者结构不同) + # 让我们修正一下添加逻辑,直接复用上面构建的变量逻辑会更清晰,但为了适应 buffer: + + # 重新整理 buffer (刚才的 extend 混合了,这里简单按类型分离) + # 由于上面构建时 entity 都有 "properties" 键,relation 没有 (通常 relation 是 from/to/type) + for item in new_items_buffer: + if "properties" in item: + entities.append(item) + else: + relations.append(item) + + # ========================================== + # 最终过滤:移除 "基本情况" 实体 + # 原代码逻辑是:遍历 entities,如果是 "基本情况" 则跳过,否则加入 final_entity + # ========================================== + final_entities = [ins for ins in entities if ins.get("type") != "基本情况"] + + # 如果原列表中有被移除的,计算一下数量用于日志(可选) + removed_count = len(basic_info_indices) + if removed_count > 0: + print(f" [过滤完成] 移除了 {removed_count} 个 '基本情况' 实体。") + + # ========================================== + # 总结 + # ========================================== + if total_changes == 0 and removed_count == 0 and not new_items_buffer: + print(f"[后处理] 未命中任何清洗或拆分规则。") + else: + print(f"[后处理] 全部完成。标准化修改 {total_changes} 次,拆分生成 {len(new_items_buffer)//2} 组新数据,过滤移除 {removed_count} 个旧实体。\n") + + return final_entities, relations + diff --git a/kg_build/chapter_segmenter.py b/kg_build/chapter_segmenter.py new file mode 100644 index 0000000..9ac8d89 --- /dev/null +++ b/kg_build/chapter_segmenter.py @@ -0,0 +1,531 @@ +""" +chapter_segmenter.py +对外接口:segment_chapters(data) -> List[Chapter] + +纯规则章节切分,不依赖大模型,不依赖 extract_util / entity_registry。 +输入:content_list JSON(list of dict,每条含 type/text/text_level/page_idx/bbox 等字段) +输出:Chapter 列表,每个 Chapter 包含标题信息、所属 records、以及二级子章节。 + +多信号融合标题识别(v8): + - 两遍扫描:先扫描所有候选标题 → 全局校验编号连续性 → 再切分 + - 置信度融合:text_level + 编号格式 + 文本长度 + 标点密度 + - 全局校验:编号跳跃过大的假标题自动剔除 +""" + +import re +from dataclasses import dataclass, field +from typing import List, Dict, Optional, Set + + +# ============================== +# 配置(可在调用前修改模块级变量) +# ============================== + +# 一级标题含以下关键词时整章跳过 +FILTER_KEYWORDS: List[str] = [ + "维修工作卡", "维修项目索引", + "常见故障", "维修项目表" +] + +# 二级标题含以下关键词时跳过该二级节 +FILTER_L2_KEYWORDS: List[str] = [ + "常见故障表", "维修项目表", "维修工作卡","操作程序" +] + +# 特殊章节关键词:一级标题含以下任一时,不作为整体实体,二级标题各自独立 +SPECIAL_CHAPTER_KEYWORDS: List[str] = [ + "组成、技术特征及接口", + "组成和技术特征", + "组成与技术特征", + "组成、技术特征", +] + +# 目录关键词(去空格后匹配,兼容"目 次"/"目 录"等 OCR 带空格的写法) +TOC_KEYWORDS: List[str] = ["目次", "目录", "contents"] + +# 置信度阈值:低于此值的不认为是标题 +HEADING_CONFIDENCE_THRESHOLD: float = 0.5 + +# 一级标题编号最大允许跳跃数(连续性校验) +MAX_L1_GAP: int = 3 + + +# ============================== +# 数据结构 +# ============================== + +@dataclass +class L2Section: + """二级子章节""" + title: str # 去编号后的标题名 + numbering: str # 编号,如 "3.2" + records: List[dict] = field(default_factory=list) # 该二级节的所有 records + + +@dataclass +class Chapter: + """一级章节(含所有二级子节)""" + title: str # 去编号后的标题名(已应用 L1_TITLE_MAPPING 等由调用方处理) + raw_title: str # 原始文本(含编号) + numbering: str # 编号,如 "3" + is_special: bool # 是否特殊章节(二级各自独立) + is_skipped: bool # 是否被 FILTER_KEYWORDS 过滤 + records: List[dict] = field(default_factory=list) # 本章所有 records(含标题行) + loose_records: List[dict] = field(default_factory=list) # 一级标题到第一个二级标题之间的 records + l2_sections: List[L2Section] = field(default_factory=list) # 二级子章节列表 + + +@dataclass +class _HeadingNode: + """内部用:统一的标题节点""" + raw_text: str + clean_title: str + numbering: str + level: int + index_in_data: int + confidence: float = 1.0 + + +# ============================== +# 正则 +# ============================== + +_CHAPTER_NUM_RE = re.compile(r'^(\d{1,2}(?:\.\d{1,2})*\.?)') +_LIST_ITEM_RE = re.compile(r'^[\d]+[)\)]\s*') +_ALPHA_LIST_RE = re.compile(r'^[a-zA-Z][)\)\.]\s*') +_TOC_ENTRY_SUFFIX_RE = re.compile(r'([\s.]+\d{1,4}|\.{2,})\s*$') + + +# ============================== +# 标题工具函数 +# ============================== + +def _is_real_chapter_title(text: str) -> bool: + text = text.strip() + if _LIST_ITEM_RE.match(text): + return False + if _ALPHA_LIST_RE.match(text): + return False + if re.search(r'[。!?:]\s*$', text): + return False + chapter_num = r'^\d{1,2}(?:\.\d{1,2})*' + if re.match(chapter_num + r'\s+\S', text): + return True + if re.match(chapter_num + r'\.\s+\S', text): + return True + if re.match(chapter_num + r'\.?[\u4e00-\u9fff]', text): + return True + return False + + +def _is_toc_entry_line(text: str) -> bool: + if '\n' in text: + return False + return bool(_TOC_ENTRY_SUFFIX_RE.search(text)) + + +def _get_chapter_level(text: str) -> int: + match = _CHAPTER_NUM_RE.match(text.strip()) + if match: + num = match.group(1).rstrip('.') + return num.count('.') + 1 + return 0 + + +def _get_chapter_numbering(text: str) -> str: + match = _CHAPTER_NUM_RE.match(text.strip()) + return match.group(1).rstrip('.') if match else "" + + +def _clean_title(text: str) -> str: + return re.sub(r'^\d{1,2}(?:\.\d{1,2})*\.?\s*', '', text.strip()).strip() + + +def _should_skip_l2(title_clean: str) -> bool: + return any(kw in title_clean for kw in FILTER_L2_KEYWORDS) + + +def _is_special_chapter(title: str) -> bool: + return any(kw in title for kw in SPECIAL_CHAPTER_KEYWORDS) + + +# ============================== +# 目录页检测 +# ============================== + +def _is_toc_content(ins: dict) -> bool: + """ + 判断是否是目录页内容(三层判断)。 + + 层1:text_level>=1 且含目录关键词 → 直接判定 + 层2:严格目录条目格式("文字..页码" ≥2次) + 层3:宽松兜底:换行多 + '..'密集 + 排除正文列表/技术参数 + """ + text = ins.get("text", "") + text_level = ins.get("text_level", 0) + + text_nospace = text.replace(" ", "").replace("\u3000", "") + if text_level and any(kw in text_nospace.lower() for kw in TOC_KEYWORDS): + return True + + toc_entry_re = re.compile( + r'[\u4e00-\u9fffa-zA-Z)\)]\s*\.{2,}\s*\.?\s*(\d{1,4})\s*$', + re.MULTILINE + ) + if len(toc_entry_re.findall(text)) >= 2: + return True + + if text.count('\n') > 3 and '..' in text: + has_list_markers = bool(re.search( + r'(?:^|\n)\s*(?:\d+[)\)]|[a-zA-Z][)\).])', text + )) + if has_list_markers: + return False + range_pattern_count = len(re.findall(r'[\d℃%]\.\.[+\-\d]', text)) + dot_count = len(re.findall(r'\.{2,}', text)) + if range_pattern_count > 0 and range_pattern_count >= dot_count * 0.5: + return False + line_count = text.count('\n') + 1 + if dot_count >= max(3, line_count * 0.3): + return True + + return False + + +def _get_toc_pages(data: list) -> Set[int]: + """找出所有目录页的 page_idx,支持多页目录,并向后延伸。""" + toc_pages: Set[int] = set() + for ins in data: + if _is_toc_content(ins): + toc_pages.add(ins.get("page_idx", -1)) + text = ins.get("text", "") + text_level = ins.get("text_level", 0) + text_nospace = text.replace(" ", "").replace("\u3000", "") + if text_level and any(kw in text_nospace.lower() for kw in TOC_KEYWORDS): + toc_pages.add(ins.get("page_idx", -1)) + toc_pages.discard(-1) + + if not toc_pages: + return toc_pages + + pages_records: Dict[int, list] = {} + for ins in data: + p = ins.get("page_idx", -1) + if p < 0: + continue + pages_records.setdefault(p, []).append(ins) + + max_toc = max(toc_pages) + for next_page in range(max_toc + 1, max_toc + 10): + if next_page not in pages_records: + break + records = pages_records[next_page] + text_records = [ + r for r in records + if r.get("type") == "text" and (r.get("text") or "").strip() + ] + if not text_records: + toc_pages.add(next_page) + continue + toc_like = sum( + 1 for r in text_records + if _is_toc_content(r) or _is_toc_entry_line((r.get("text") or "")) + ) + if toc_like == len(text_records): + toc_pages.add(next_page) + else: + break + + return toc_pages + + +# ============================== +# 多信号融合标题识别 +# ============================== + +def _compute_heading_confidence(ins: dict, text: str, level: int) -> float: + """ + 4个信号融合(0~1): + text_level>=1(0.35)+ 编号格式规范(0.30)+ 长度合理(0.20)+ 标点密度低(0.15) + """ + score = 0.0 + text_level = ins.get("text_level", 0) + + if text_level >= 1: + score += 0.35 + + normalized = re.sub(r'\s+', ' ', text.replace('\u3000', ' ')) + if re.match(r'^\d{1,2}(?:\.\d{1,2})*\.?\s+[\u4e00-\u9fffa-zA-Z]', normalized): + score += 0.30 + elif re.match(r'^\d{1,2}(?:\.\d{1,2})*[\u4e00-\u9fff]', normalized): + score += 0.20 + + clean = _clean_title(text) + if 1 <= len(clean) <= 20: + score += 0.20 + elif len(clean) <= 35: + score += 0.10 + + punct_count = len(re.findall(r'[,。;:、!?,.;:!?]', clean)) + if punct_count <= 1: + score += 0.15 + elif punct_count <= 3: + score += 0.05 + + return score + + +def _scan_all_headings(data: list, toc_pages: Set[int] = None) -> List[_HeadingNode]: + """第一遍:识别所有置信度足够的标题节点。""" + headings = [] + debug_rejected = [] + + for i, ins in enumerate(data): + if ins.get("type") != "text": + continue + if toc_pages and ins.get("page_idx") in toc_pages: + continue + + text = ins.get("text", "").strip() + if not text: + continue + if _is_toc_content(ins): + debug_rejected.append(f" [i={i}] 目录页跳过: {text[:40]!r}") + continue + if _is_toc_entry_line(text): + debug_rejected.append(f" [i={i}] 目录条目行: {text[:60]!r}") + continue + if not _is_real_chapter_title(text): + first_char = text[0] if text else '' + if first_char.isdigit() and len(debug_rejected) < 50: + debug_rejected.append(f" [i={i}] 非章节标题格式: {text[:60]!r}") + continue + + level = _get_chapter_level(text) + if level == 0: + continue + + numbering = _get_chapter_numbering(text) + clean = _clean_title(text) + confidence = _compute_heading_confidence(ins, text, level) + + if confidence >= HEADING_CONFIDENCE_THRESHOLD: + headings.append(_HeadingNode( + raw_text=text, + clean_title=clean, + numbering=numbering, + level=level, + index_in_data=i, + confidence=confidence, + )) + else: + debug_rejected.append( + f" [i={i}] 置信度不足({confidence:.2f}): {text[:60]!r} " + f"(text_level={ins.get('text_level', 0)})" + ) + + print(f"\n [DEBUG] data总条数={len(data)}, " + f"text类型条数={sum(1 for x in data if x.get('type')=='text')}") + print(f" [DEBUG] 候选标题={len(headings)}, 被拒绝={len(debug_rejected)}") + if debug_rejected: + print(" [DEBUG] 被拒绝样本(最多20条):") + for msg in debug_rejected[:20]: + print(msg) + + return headings + + +def _validate_heading_sequence(headings: List[_HeadingNode]) -> List[_HeadingNode]: + """第二遍:全局校验编号连续性,去除可疑标题并去重。""" + if not headings: + return headings + + level1_nums = sorted(set( + int(h.numbering) for h in headings if h.level == 1 + )) + + valid_level1: Set[int] = set() + if level1_nums: + for i, num in enumerate(level1_nums): + if i == 0: + valid_level1.add(num) + continue + gap = num - level1_nums[i - 1] + if gap <= MAX_L1_GAP: + valid_level1.add(num) + else: + print(f" ⚠️ 一级标题编号跳跃过大: {level1_nums[i-1]} → {num},丢弃 {num}") + + validated = [] + for h in headings: + if h.level == 1: + if int(h.numbering) in valid_level1: + validated.append(h) + elif h.level >= 2: + parent_num = int(h.numbering.split('.')[0]) + if parent_num in valid_level1: + validated.append(h) + else: + validated.append(h) + + def _has_lower_l2_after(h: _HeadingNode) -> bool: + if h.level != 1: + return False + h_num = int(h.numbering) + after_l2 = [x for x in validated if x.index_in_data > h.index_in_data and x.level == 2] + for x in after_l2[:8]: + parent = int(x.numbering.split('.')[0]) + if parent < h_num: + return True + if parent >= h_num: + break + return False + + from collections import defaultdict + by_num: Dict[str, list] = defaultdict(list) + for h in validated: + by_num[h.numbering].append(h) + + best: Dict[str, _HeadingNode] = {} + for numbering, candidates in by_num.items(): + if len(candidates) == 1: + best[numbering] = candidates[0] + else: + ok = [c for c in candidates if not _has_lower_l2_after(c)] + chosen = ok[0] if ok else candidates[-1] + for c in candidates: + if c is not chosen: + print(f" ⚠️ 编号重复,丢弃误识别: {c.numbering} 【{c.clean_title}】") + best[numbering] = chosen + + return [h for h in validated if best.get(h.numbering) is h] + + +def _build_heading_index(data: list) -> Dict[int, _HeadingNode]: + """构建 data索引 → HeadingNode 的映射。""" + toc_pages = _get_toc_pages(data) + if toc_pages: + print(f" [TOC页] 检测到目录页 page_idx={sorted(toc_pages)},跳过这些页的标题识别") + + headings = _scan_all_headings(data, toc_pages) + headings = _validate_heading_sequence(headings) + + if headings: + print(f" [标题识别] 共识别 {len(headings)} 个有效标题:") + for h in headings: + indent = " " * h.level + conf_str = f" (conf={h.confidence:.2f})" if h.confidence < 1.0 else "" + print(f" {indent}{h.numbering} {h.clean_title}{conf_str}") + + return {h.index_in_data: h for h in headings} + + +# ============================== +# 对外接口 +# ============================== + +def segment_chapters(data: list) -> List[Chapter]: + """ + 对外唯一接口。 + + 将 content_list JSON 按章节结构切分,返回 Chapter 列表。 + 每个 Chapter 包含: + - title / raw_title / numbering:标题信息 + - is_special:是否特殊章节(二级节各自独立,不合并) + - is_skipped:是否被 FILTER_KEYWORDS 过滤(内容为空) + - records:本章全部 records(含标题行,不含目录页记录) + - loose_records:一级标题到第一个二级标题之间的 records + - l2_sections:List[L2Section],每个二级节含 title/numbering/records + + :param data: content_list JSON,list of dict + :return: List[Chapter],按文档顺序排列 + """ + toc_pages = _get_toc_pages(data) + heading_index = _build_heading_index(data) + + chapters: List[Chapter] = [] + + # 当前章节状态 + cur: Optional[Chapter] = None + cur_l2: Optional[L2Section] = None + has_met_l2 = False + + def _flush_l2(): + nonlocal cur_l2 + if cur_l2 is not None and cur is not None: + if not _should_skip_l2(cur_l2.title): + cur.l2_sections.append(cur_l2) + cur_l2 = None + + def _flush_chapter(): + nonlocal cur, cur_l2, has_met_l2 + if cur is None: + return + _flush_l2() + chapters.append(cur) + cur = None + cur_l2 = None + has_met_l2 = False + + for i, ins in enumerate(data): + # 跳过目录页 + if toc_pages and ins.get("page_idx") in toc_pages: + continue + if _is_toc_content(ins): + continue + # discarded 记录:仍然归入当前章节(保留位置信息供调用方使用) + if ins.get("type") == "discarded": + if cur is not None and not cur.is_skipped: + cur.records.append(ins) + continue + + heading = heading_index.get(i) + + if heading is not None and heading.level == 1: + # 新的一级标题 → 刷出上一章 + _flush_chapter() + is_skipped = any(kw in heading.raw_text for kw in FILTER_KEYWORDS) + cur = Chapter( + title=heading.clean_title, + raw_title=heading.raw_text, + numbering=heading.numbering, + is_special=_is_special_chapter(heading.raw_text), + is_skipped=is_skipped, + ) + has_met_l2 = False + if not is_skipped: + cur.records.append(ins) + tag = " [特殊]" if cur.is_special else "" + print(f"\n[一级标题] {heading.raw_text}{tag} (conf={heading.confidence:.2f})") + continue + + if cur is None or cur.is_skipped: + continue + + if heading is not None and heading.level == 2: + # 二级标题 + _flush_l2() + l2_clean = heading.clean_title + if not _should_skip_l2(l2_clean): + cur_l2 = L2Section( + title=l2_clean, + numbering=heading.numbering, + records=[ins], + ) + has_met_l2 = True + cur.records.append(ins) + continue + + # 普通内容记录 + cur.records.append(ins) + if has_met_l2: + if cur_l2 is not None: + cur_l2.records.append(ins) + else: + cur.loose_records.append(ins) + + _flush_chapter() + + print(f"\n[chapter_segmenter] 共切分章节: {len(chapters)} 个") + return chapters + diff --git a/kg_build/entity_registry.py b/kg_build/entity_registry.py new file mode 100644 index 0000000..2a1ef55 --- /dev/null +++ b/kg_build/entity_registry.py @@ -0,0 +1,74 @@ +""" +entity_registry.py +实体类型注册中心。 + +- extract_filtertext_v8.py 在生成实体时调用 register() 写入 +- app.py 启动时调用 get_ontology_description() / get_node_types() 合并进配置 +- 注册信息持久化到 entity_registry.json,跨进程保留 +""" + +import json +import os + +_REGISTRY_DIR = os.path.join(os.path.dirname(__file__), "registry") +_REGISTRY_FILE = os.path.join(_REGISTRY_DIR, "entity_registry.json") + +os.makedirs(_REGISTRY_DIR, exist_ok=True) + +# 内存缓存,避免每次读文件 +_cache: dict = {} + + +def _load(): + global _cache + if _cache: + return + if os.path.exists(_REGISTRY_FILE): + with open(_REGISTRY_FILE, encoding="utf-8") as f: + _cache = json.load(f) + else: + _cache = {} + + +def _save(): + with open(_REGISTRY_FILE, "w", encoding="utf-8") as f: + json.dump(_cache, f, ensure_ascii=False, indent=2) + + +def register(entity_type: str, description: str = "", properties: list = None): + """ + 注册一个实体类型。已存在则跳过,不覆盖。 + + 参数: + entity_type: 实体类型名,如 "维修工作指导" + description: 对该类型的描述(可为空) + properties: 该类型的属性列表,如 ["名称", "内容", "knowledge_source"] + """ + _load() + if entity_type in _cache: + return # 已注册,不覆盖 + _cache[entity_type] = { + "description": description, + "properties": properties or ["名称", "内容", "knowledge_source"] + } + _save() + print(f" [registry] 注册新实体类型: 【{entity_type}】") + + +def get_ontology_description() -> dict: + """返回 {type: [description]} 格式,可直接合并进 Ontology_DESCRIPTION。""" + _load() + return {k: [v["description"]] for k, v in _cache.items()} + + +def get_node_types() -> dict: + """返回 {type: [properties]} 格式,可直接合并进 node_types。""" + _load() + return {k: v["properties"] for k, v in _cache.items()} + + +def get_ontology_list() -> list: + """返回所有已注册的实体类型名列表,可合并进 ontology。""" + _load() + return list(_cache.keys()) + diff --git a/kg_build/extract_beipinbeijian_table.py b/kg_build/extract_beipinbeijian_table.py new file mode 100644 index 0000000..0e5203f --- /dev/null +++ b/kg_build/extract_beipinbeijian_table.py @@ -0,0 +1,178 @@ +import json +import fitz # PyMuPDF +import os +from collections import Counter +from kg_build.Prompt import prompt_extract_beipinbeijian_node_rela +from openai import OpenAI +from extract_util import safe_json_loads, highlight_pdf_file, get_content_bbox +from modelsAPI.model_api import OpenaiAPI + +# 指定 JSON 文件路径 +# file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/122-06A0014-B01001_发动机-维修手册_content_list.json' + +# try: +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) +# except Exception as e: +# print(f"读取 JSON 文件时出错:{e}") +# data = [] + +# 为每条记录添加 id(从1开始) + + +def get_beipinbeijian_chunk_bbox_and_removed_data(data): + # 定义三种可能的表头格式 + labels = [ + '', + '
名称型专规格
', + '<
序号名称型号规格
', + '
序号名称型号规格
', + '
序号名称型号规格
', + '
名称型专规格
', + '
备品备件、附件和工具清单
设备备品备件清单设备型号设备装舰台套数
', + '
序号名 称型号规格图号或标准号
' + ] + + record_map = {item["id"]: item for item in data} + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + table_body = ins.get("table_body", "") + if any(label in table_body for label in labels): + current_id = ins["id"] + # 获取当前及前4个记录的 id(确保 >=1) + group_ids = [current_id - i for i in range(4, -1, -1) if current_id - i >= 1] + ids_to_remove.update(group_ids) + # 按顺序构建 group(从最早到当前) + group = [record_map[pid] for pid in group_ids if pid in record_map] + results.append(group) + + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + return results, filtered_data + + +async def extract_beipinbeijian_table_entity(chunk): + + print("提取备品备件类实体和关系") + + final_prompt = prompt_extract_beipinbeijian_node_rela.format(text=chunk) + raw_response = await OpenaiAPI.openai_chat_aysnc(final_prompt,timeout=600) + + if raw_response is None: + print("API 调用失败,跳过当前 chunk") + return [] + + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = safe_json_loads(cleaned) + if json_result is None: + print("JSON 解析失败: 返回 None") + return [] + + return json_result + + except Exception as e: + print(f"⚠️ JSON 解析异常: {e}") + print(f"原始响应片段: {repr(raw_response[:500])}") + return [] + + + + +async def get_beipinbeijian_node_relation(input_pdf_path,data,prefix_url = "http://192.168.0.46:59085"): + for idx, item in enumerate(data, start=1): + item["id"] = idx + # 主流程 + guzhang_groups, cleaned_data = get_beipinbeijian_chunk_bbox_and_removed_data(data) + + if not guzhang_groups: + print("未找到符合条件的备品备件表格,跳过处理。") + all_entity_results,all_relation_results = [],[] + else: + all_entity_results,all_relation_results = [],[] # 用于收集所有成功提取的结果 + + for i, compose in enumerate(guzhang_groups): + try: + print(f"开始处理第{i+1}个备品备件表") + # 获取内容和高亮信息 + content, highlight_list = get_content_bbox(compose) + print("备品备件表切片内容为:",content) + + # 提取实体 + result =await extract_beipinbeijian_table_entity(content) + if result is []: + print(f"第 {i+1} 组:实体提取失败,跳过") + continue + + # 安全访问 entities 字段 + entities = result.get("entities", []) + if not isinstance(entities, list): + print(f"第 {i+1} 组:entities 字段格式异常,跳过") + continue + relationships = result.get("relationships", []) + + # 为每个 entity 添加 knowledge_source + + highlight_filename, most_common_page,filename = highlight_pdf_file(input_pdf_path,highlight_list) + url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + # for entity in entities: + # knowledge_source = [{ + # "filename": filename, + # "info": content, + # "url": url + # }] + # # 确保 properties 存在 + # if "properties" not in entity or not isinstance(entity["properties"], dict): + # entity["properties"] = {} + # entity["properties"]["knowledge_source"] = knowledge_source + for entity in entities: + # 构造原始数据对象 (List of Dict) + source_data_list = [{ + "filename": filename, + "info": content, + "url": url + }] + + # 2. 【关键修改】将列表序列化为 JSON 字符串 + # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + + # 确保 properties 存在且是字典 + if "properties" not in entity or not isinstance(entity["properties"], dict): + entity["properties"] = {} + + # 3. 赋值字符串而不是对象列表 + entity["properties"]["knowledge_source"] = knowledge_source_str + # 更新 result 中的 entities + all_entity_results.extend(entities) + all_relation_results.extend(relationships) + + except Exception as e: + print(f"处理第 {i+1} 组时发生未预期错误: {e}") + continue # 跳过当前组,继续下一轮 + return all_entity_results,all_relation_results + +# if __name__ == "__main__": +# file_path = '/app/files/122-06A0014-B01001_发动机-维修手册_content_list.json' +# input_pdf_path = "/app/files/122-06A0014-B01001_发动机-维修手册.pdf" + +# try: +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) +# except Exception as e: +# print(f"读取 JSON 文件时出错:{e}") +# data = [] +# all_entity_results,all_relation_results = get_guzhang_node_relation(input_pdf_path,data=data) +# length_entity = len(all_entity_results) +# length_relation = len(all_relation_results) + +# print(f"抽取{length_entity}个实体,抽取{length_relation}个关系") + + diff --git a/kg_build/extract_compose_table.py b/kg_build/extract_compose_table.py new file mode 100644 index 0000000..a15c165 --- /dev/null +++ b/kg_build/extract_compose_table.py @@ -0,0 +1,247 @@ +import json +import fitz # PyMuPDF +import os +import fitz +from collections import Counter +import uuid +from openai import OpenAI +from kg_build.Prompt import Prompt_compose +from extract_util import safe_json_loads,highlight_pdf_file,get_content_bbox +import re +from typing import List, Dict, Any, Tuple +from modelsAPI.model_api import OpenaiAPI +import asyncio # <-- 新增导入 + +import re + +def is_compose_table_by_first_tr(table_body: str) -> bool: + if not isinstance(table_body, str): + return False + + # 非贪婪匹配第一个 ... + match = re.search(r']*>(.*?)', table_body, re.IGNORECASE | re.DOTALL) + if not match: + return False + + first_tr_html = match.group(1) + + # 去除所有 HTML 标签,只保留纯文本 + text_in_first_tr = re.sub(r'<[^>]+>', '', first_tr_html) + + # 统一转为小写便于匹配 + text_lower = text_in_first_tr.lower() + + # 定义多组关键词组合(任意一组满足即可) + keyword_groups = [ + ["序号", "组成部分", "功能", "数量"], + ["序号", "组成部分", "功能"] + ] + + # 检查是否存在至少一组关键词全部出现在首行中 + for group in keyword_groups: + if all(kw in text_lower for kw in group): + return True + + return False + + +async def get_compose_chunk_bbox_and_removed_data(data): + """ + 返回: + - 符合条件的组成表分组(每组 [前前, 前, 当前]) + - 从原始 data 中移除了所有相关记录后的新 data 列表 + """ + record_map = {item["id"]: item for item in data} + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + table_body = ins.get("table_body", "") + + # 使用关键词组合判断是否为“组成表” + if is_compose_table_by_first_tr(table_body): + current_id = ins["id"] + prev_ids = [current_id - 2, current_id - 1] + + # 收集要移除的 ID(前两条 + 当前) + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + + # 构建分组 + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + # 过滤原始 data + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + + return results, filtered_data + + +# def openai_chat(query: str, model="Qwen3-32B"): +# """调用OpenAI API""" +# try: +# client = OpenAI( +# api_key="none", +# base_url="http://192.168.0.46:59800/v1" +# ) + +# response = client.chat.completions.create( +# model=model, +# messages=[ +# {"role": "user", "content": query}, +# ], +# temperature=0.1, +# stream=False, +# response_format={"type": "json_object"}, +# extra_body={"chat_template_kwargs": {"enable_thinking": False}} +# ) +# return response.choices[0].message.content +# except Exception as e: +# print(f"调用OpenAI API时出错: {e}") +# return None + +async def extract_compose_table_entity(chunk): + """ + 提取组成表的设备、零部件实体以及关系 + """ + print("提取组成表实体和关系") + + # 建议:将 all_results 改为复数形式以符合习惯 + + + final_prompt = Prompt_compose.format(text=chunk) + raw_response = await OpenaiAPI.openai_chat_aysnc(final_prompt,timeout=480) + + if raw_response is None: + print(f" ⚠️ 切片 API 调用失败") + + # 尝试解析 JSON + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = safe_json_loads(cleaned) + + # 打印美化版 + # print(json.dumps(json_result, ensure_ascii=False, indent=2)) + + except Exception as e: + print(f" ⚠️切片 JSON 解析失败: {e}") + print(f" 原始响应: {repr(raw_response[:500])}") + json_result = [] + + + # 返回按切片分组的结果列表 + return json_result + + +async def get_compose_node_relation(input_pdf_path,data,prefix_url = "http://192.168.0.46:59085"): + for idx, item in enumerate(data, start=1): + item["id"] = idx + results, filtered_data =await get_compose_chunk_bbox_and_removed_data(data=data) + print(f"抽取的组成表总数量为:{len(results)}") + + + if not results: + print("未找到符合条件的组成表格,跳过处理。") + all_entity_results,all_relation_results = [],[] + else: + all_entity_results,all_relation_results = [],[] # 用于收集所有成功提取的结果 + + for i, compose in enumerate(results): + try: + # 获取内容和高亮信息 + print(f"开始处理第{i+1}个组成表") + + content, highlight_list = get_content_bbox(compose) + print("组成表切片内容为:",content) + print(len(content)) + # 提取实体 + result =await extract_compose_table_entity(content) + if result is None: + print(f"第 {i+1} 组:实体提取失败,跳过") + continue + + # 安全访问 entities 字段 + entities = result.get("entities", []) + if not isinstance(entities, list): + print(f"第 {i+1} 组:entities 字段格式异常,跳过") + continue + relationships = result.get("relationships", []) + + # 为每个 entity 添加 knowledge_source + highlight_filename, most_common_page,filename = highlight_pdf_file(input_pdf_path,highlight_list) + url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + # for entity in entities: + # knowledge_source = [{ + # "filename": filename, + # "info": content, + # "url": url + # }] + # # 确保 properties 存在 + # if "properties" not in entity or not isinstance(entity["properties"], dict): + # entity["properties"] = {} + # entity["properties"]["knowledge_source"] = knowledge_source + for entity in entities: + # 构造原始数据对象 (List of Dict) + source_data_list = [{ + "filename": filename, + "info": content, + "url": url + }] + + # 2. 【关键修改】将列表序列化为 JSON 字符串 + # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + + # 确保 properties 存在且是字典 + if "properties" not in entity or not isinstance(entity["properties"], dict): + entity["properties"] = {} + + # 3. 赋值字符串而不是对象列表 + entity["properties"]["knowledge_source"] = knowledge_source_str + # 更新 result 中的 entities + all_entity_results.extend(entities) + all_relation_results.extend(relationships) + + except Exception as e: + print(f"处理第 {i+1} 组时发生未预期错误: {e}") + continue # 跳过当前组,继续下一轮 + return all_entity_results,all_relation_results + +# if __name__ == "__main__": +# file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/output1/122-06A0014-B01001_发动机-维修手册_content_list.json' +# input_pdf_path = "/storage01/home/hdf/project/agent/测试.pdf" +# output_json_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/output2/组成表抽取结果.json' # 你可以自定义路径 + +# try: +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) +# except Exception as e: +# print(f"读取 JSON 文件时出错:{e}") +# data = [] +# all_entity_results, all_relation_results = asyncio.run( +# get_compose_node_relation(input_pdf_path, data=data) +# ) + +# length_entity = len(all_entity_results) +# length_relation = len(all_relation_results) + +# print(f"抽取{length_entity}个实体,抽取{length_relation}个关系") +# result = { +# "entities": all_entity_results, +# "relations": all_relation_results +# } + +# # 保存为 JSON 文件 +# try: +# with open(output_json_path, 'w', encoding='utf-8') as f: +# json.dump(result, f, ensure_ascii=False, indent=4) +# print(f"结果已保存至:{output_json_path}") +# except Exception as e: +# print(f"保存 JSON 文件时出错:{e}") + diff --git a/kg_build/extract_compose_tujie_table.py b/kg_build/extract_compose_tujie_table.py new file mode 100644 index 0000000..1bf7446 --- /dev/null +++ b/kg_build/extract_compose_tujie_table.py @@ -0,0 +1,590 @@ +import json +import fitz # PyMuPDF +import os +import fitz +from collections import Counter +import uuid +from kg_build.Prompt import Prompt_compose_tujie1,Prompt_compose_tujie2 +from kg_build.extract_util import safe_json_loads,highlight_pdf_file,get_content_bbox +# from modelsAPI.model_api import OpenaiAPI +import re +from openai import AsyncOpenAI +import asyncio +import json +import re +import copy +import pandas as pd +from io import StringIO +import json +from collections import defaultdict +import traceback + + +def is_tujie_compose_table_by_first_tr(table_body: str) -> bool: + if not isinstance(table_body, str) or not table_body.strip(): + return False + + text_without_tags = re.sub(r'<[^>]+>', '', table_body) + text_lower = text_without_tags.lower() + + keyword_groups = [ + ["组成编码", "名称", "是否为关重件", "是否为寿命件"], + ["组成编码", "名称", "型号/零件号", "重量(kg)", "数量"] + ] + + for group in keyword_groups: + if all(kw in text_lower for kw in group): + return True + + return False + + +def is_tujie_compose_mulus_table_by_first_tr(table_body: str) -> bool: + if not isinstance(table_body, str) or not table_body.strip(): + return False + + text_without_tags = re.sub(r'<[^>]+>', '', table_body) + text_lower = text_without_tags.lower() + + keyword_groups = [ + ["组成编码", "名称", "型号/零件号", "重量(kg)", "数量"] + ] + + for group in keyword_groups: + if all(kw in text_lower for kw in group): + return True + + return False + + +def get_tujiecompose_chunk_bbox_and_removed_data(data): + """ + 返回: + - 符合条件的图解组成表分组(每组 [前前, 前, 当前]) + - 从原始 data 中移除了所有相关记录后的新 data 列表 + """ + title = "组成" + record_map = {item["id"]: item for item in data} + + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + caption_has_title = any(title in caption for caption in ins.get("table_caption", [])) + + table_body = ins.get("table_body", "") + body_matches_keywords = is_tujie_compose_table_by_first_tr(table_body) + + if caption_has_title and body_matches_keywords: + current_id = ins["id"] + prev_ids = [current_id - 2, current_id - 1] + + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + return results, filtered_data + + +def get_tujiecompose_mulu_chunk_bbox_and_removed_data(data): + title = "组成" + record_map = {item["id"]: item for item in data} + + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + caption_has_title = any(title in caption for caption in ins.get("table_caption", [])) + + table_body = ins.get("table_body", "") + body_matches_keywords = is_tujie_compose_mulus_table_by_first_tr(table_body) + + if body_matches_keywords: + current_id = ins["id"] + prev_ids = [current_id - 2, current_id - 1] + + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + return results, filtered_data + + +def format_compose_code(val): + """将 int/float 型组成编码转换为偶数位字符串,不足偶数位则前补 0""" + if pd.isna(val): + return None + if isinstance(val, (int, float)): + s = str(int(val)) + if len(s) % 2 != 0: + s = '0' + s + return s + return str(val) + + +def merge_compose(records): + """ + 合并相同组成编码的记录。 + 特殊处理:将 knowledge_source 字段的多个值解析并合并到一个新的扁平列表中。 + """ + grouped_data = defaultdict(list) + + for record in records: + code = record.get('组成编码') + if code: + grouped_data[code].append(record) + + merged_data = [] + + for key, group in grouped_data.items(): + merged_record = group[0].copy() + + all_sources = [] + + for record in group: + source_val = record.get('knowledge_source') + if source_val: + try: + if isinstance(source_val, str): + parsed_source = json.loads(source_val) + else: + parsed_source = source_val + + if isinstance(parsed_source, list): + all_sources.extend(parsed_source) + else: + all_sources.append(parsed_source) + except (json.JSONDecodeError, TypeError): + all_sources.append(source_val) + + if all_sources: + merged_record['knowledge_source'] = json.dumps(all_sources, ensure_ascii=False) + else: + merged_record['knowledge_source'] = "[]" + + for record in group[1:]: + for k, v in record.items(): + if k == 'knowledge_source': + continue + + existing = merged_record.get(k) + + if v and existing and existing != v: + if isinstance(existing, list): + if v not in existing: + existing.append(v) + else: + merged_record[k] = [existing, v] + elif not existing and v: + merged_record[k] = v + + merged_data.append(merged_record) + + return merged_data + + +def remove_fields(data_list, fields_to_remove): + """ + 遍历列表中的每个字典,移除指定的字段(键)。 + 如果字段不存在,则跳过该字段。 + """ + cleaned_data = [] + + for item in data_list: + new_item = item.copy() + + for field in fields_to_remove: + if field in new_item: + del new_item[field] + + cleaned_data.append(new_item) + + return cleaned_data + + +# def generate_entities_and_relations(data_list): +# """ +# 所有实体统一 type="设备"。 +# 关系构建:若父节点在数据中不存在,自动补充占位实体,确保所有关系都成功建立。 +# """ +# entities = [] +# relationships = [] + +# code_name_map = {} # {code: name} +# clean_nodes = [] + +# # --- 第一步:数据清洗与标准化 --- +# for item in data_list: +# code = item.get('组成编码', '') + +# if not code or not isinstance(code, str): +# continue +# if not code.isdigit(): +# continue +# if len(code) < 2 or len(code) % 2 != 0: +# continue + +# cleaned_item = {} +# for key, value in item.items(): +# if isinstance(value, list): +# cleaned_item[key] = str(value[0]) if value else "" +# elif value is None: +# cleaned_item[key] = "" +# else: +# cleaned_item[key] = value + +# code_name_map[code] = cleaned_item.get('名称', f'未知_{code}') +# clean_nodes.append(cleaned_item) + +# # --- 第二步:找出所有缺失的父节点,自动递归向上补全 --- +# placeholder_codes = {} # {code: name} 仅补充的占位节点 + +# for node in clean_nodes: +# code = node['组成编码'] +# length = len(code) + +# if length < 4: +# continue # 2位根节点无父节点,跳过 + +# current = code[:-2] +# while current: +# if current in code_name_map or current in placeholder_codes: +# break # 已存在,无需补全 +# placeholder_name = f'未知_{current}' +# placeholder_codes[current] = placeholder_name +# print(f" ⚠️ 父节点缺失,自动补充占位实体: 编码={current}, 名称={placeholder_name}") +# if len(current) >= 4: +# current = current[:-2] +# else: +# break + +# # 将占位节点合并进 code_name_map,供关系构建使用 +# code_name_map.update(placeholder_codes) + +# # --- 第三步:构建实体列表,所有节点 type="设备" --- +# # 真实节点 +# for node in clean_nodes: +# entities.append({ +# "type": "设备", +# "properties": node +# }) + +# # 占位节点(最简属性,标记 _is_placeholder 便于下游过滤) +# for code, name in placeholder_codes.items(): +# entities.append({ +# "type": "设备", +# "properties": { +# "组成编码": code, +# "名称": name, +# "knowledge_source": "[]", +# "_is_placeholder": True +# } +# }) + +# # --- 第四步:构建关系列表,保证全部成功 --- +# success_count = 0 +# skip_count = 0 + +# for node in clean_nodes: +# code = node['组成编码'] +# length = len(code) + +# if length < 4 or length % 2 != 0: +# skip_count += 1 +# continue # 2位根节点无父,正常跳过 + +# parent_code = code[:-2] +# child_name = node.get('名称', f'未知_{code}') +# parent_name = code_name_map.get(parent_code) + +# if parent_name: +# relationships.append({ +# "type": "包含", +# "from_entity": parent_name, +# "to_entity": child_name +# }) +# success_count += 1 +# else: +# # 经过第二步补全后理论上不会进入此分支 +# print(f" ❌ 关系构建失败(不应出现): 子编码={code}, 父编码={parent_code} 仍未找到") +# skip_count += 1 + +# print(f" 📊 关系构建完成:成功={success_count}, 跳过根节点={skip_count}") +# return entities, relationships +def generate_entities_and_relations(data_list): + """ + 实体分两类: + - type="设备":原始组成表中的真实/占位节点 + - type="组成":每个有子节点的设备自动生成的中间节点,名称为 "{设备名}的组成" + + 关系: + - 父节点(设备)→ 中间节点(组成):包含 + - 中间节点(组成)→ 子节点(设备):包含 + """ + entities = [] + relationships = [] + + code_name_map = {} # {code: name} + clean_nodes = [] + + # ── 第一步:数据清洗与标准化 ────────────────────────────────────── + for item in data_list: + code = item.get('组成编码', '') + if not code or not isinstance(code, str): + continue + if not code.isdigit(): + continue + if len(code) < 2 or len(code) % 2 != 0: + continue + + cleaned_item = {} + for key, value in item.items(): + if isinstance(value, list): + cleaned_item[key] = str(value[0]) if value else "" + elif value is None: + cleaned_item[key] = "" + else: + cleaned_item[key] = value + + code_name_map[code] = cleaned_item.get('名称', f'未知_{code}') + clean_nodes.append(cleaned_item) + + # ── 第二步:自动补全缺失的父节点占位实体 ───────────────────────── + placeholder_codes = {} # {code: name} + + for node in clean_nodes: + code = node['组成编码'] + current = code[:-2] + while current: + if current in code_name_map or current in placeholder_codes: + break + placeholder_name = f'未知_{current}' + placeholder_codes[current] = placeholder_name + print(f" ⚠️ 父节点缺失,自动补充占位实体: 编码={current}, 名称={placeholder_name}") + current = current[:-2] if len(current) >= 4 else "" + + code_name_map.update(placeholder_codes) + + # ── 第三步:构建"设备"实体(真实节点 + 占位节点)──────────────── + for node in clean_nodes: + entities.append({"type": "设备", "properties": node}) + + for code, name in placeholder_codes.items(): + entities.append({ + "type": "设备", + "properties": { + "组成编码": code, + "名称": name, + "knowledge_source": "[]", + } + }) + + # ── 第四步:为每个"有子节点的父设备"生成"组成"中间实体 ────────── + # 收集所有实际存在父子关系的父编码 + parent_codes_needed = set() + for node in clean_nodes: + code = node['组成编码'] + if len(code) >= 4 and len(code) % 2 == 0: + parent_codes_needed.add(code[:-2]) + + # {parent_code: "组成中间实体名称"} + compose_node_map = {} + for parent_code in parent_codes_needed: + parent_name = code_name_map.get(parent_code) + if not parent_name: + print(f" ❌ 找不到父编码对应名称(不应出现): {parent_code}") + continue + compose_name = f"{parent_name}的组成" + compose_node_map[parent_code] = compose_name + + # 生成"组成"中间实体 + entities.append({ + "type": "组成", + "properties": { + "名称": compose_name, + "knowledge_source": "[]", + } + }) + + # 父设备 → 组成中间节点 + relationships.append({ + "type": "包含", + "from_entity": parent_name, + "to_entity": compose_name + }) + + # ── 第五步:构建"组成中间节点 → 子设备"关系 ────────────────────── + success_count, skip_count = 0, 0 + + for node in clean_nodes: + code = node['组成编码'] + if len(code) < 4 or len(code) % 2 != 0: + skip_count += 1 + continue # 根节点无父,正常跳过 + + parent_code = code[:-2] + compose_name = compose_node_map.get(parent_code) + child_name = node.get('名称', f'未知_{code}') + + if compose_name: + relationships.append({ + "type": "包含", + "from_entity": compose_name, + "to_entity": child_name + }) + success_count += 1 + else: + print(f" ❌ 找不到组成中间节点(不应出现): 子编码={code}, 父编码={parent_code}") + skip_count += 1 + + print(f" 📊 关系构建完成:成功={success_count}, 跳过根节点={skip_count}") + return entities, relationships + +async def get_tujiecompose_node_relation(input_pdf_path, data, prefix_url="http://192.168.0.46:59085", device="发动机", lower_entity_type="设备"): + # 初始化默认返回值(空列表) + all_entity_results = [] + all_relation_results = [] + devicename = device + lower_entity_type = lower_entity_type + + try: + # 1. 初始化 ID(确保从 1 开始连续) + for idx, item in enumerate(data, start=1): + item["id"] = idx + + # 2. 获取分组数据 + results, filtered_data = get_tujiecompose_chunk_bbox_and_removed_data(data=data) + compose_mulu_result, filtered_data_mulu = get_tujiecompose_mulu_chunk_bbox_and_removed_data(data=data) + + # 3. 合并所有需要处理的组 + all_results = results + compose_mulu_result + + # 初始化中间结果容器 + all_htmltojson_results = [] + + print(f"共发现 {len(all_results)} 个图解组成表组,开始处理...") + + for i, compose_group in enumerate(all_results): + try: + print(f"开始处理第 {i+1} 个图解组成表") + + content, highlight_list = get_content_bbox(compose_group) + + if not content: + print(f" ⚠️ 第 {i+1} 组未获取到有效内容,跳过") + continue + + # 文本清洗 + content = content.replace("香", "否") + content = content.replace("房号", "序号") + + # 解析 HTML 表格 + html_obj = StringIO(content) + df_list = pd.read_html(html_obj, header=0) + + if not df_list: + print(f" ⚠️ 第 {i+1} 组未解析到表格,跳过") + continue + + df = df_list[0] + + # 清洗数据:删除全为空的行 + df.dropna(how='all', inplace=True) + + # 格式化组成编码 + if '组成编码' in df.columns and pd.api.types.is_numeric_dtype(df['组成编码']): + df['组成编码'] = df['组成编码'].apply(format_compose_code) + + # 转换为 JSON 列表 + json_data = df.to_json(orient='records', force_ascii=False) + result_list = json.loads(json_data) + highlight_filename, most_common_page,filename = highlight_pdf_file(input_pdf_path,highlight_list) + url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + if result_list: + for ins in result_list: + source_data_list = [{ + "filename": filename, + "info": content, + "url": url + }] + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + ins["knowledge_source"] = knowledge_source_str + + all_htmltojson_results.extend(result_list) + print(f" ✅ 第 {i+1} 组提取成功,包含 {len(result_list)} 条记录") + else: + print(f" ⚠️ 第 {i+1} 组提取结果为空") + + except Exception as e: + print(f"❌ 处理第 {i+1} 组时发生错误: {e}") + traceback.print_exc() + continue + + # 后处理步骤 + if all_htmltojson_results: + all_htmltojson_results = merge_compose(all_htmltojson_results) + all_htmltojson_results = remove_fields(all_htmltojson_results, ["序号"]) + + # ✅ 修复:先生成实体和关系 + all_entity_results, all_relation_results = generate_entities_and_relations(all_htmltojson_results) + + # ✅ 修复:循环移到 generate 之后,此时 all_entity_results 才有数据 + for ins in all_entity_results: + if ins["properties"].get("名称") == devicename: + ins["type"] = lower_entity_type + else: + print("⚠️ 没有提取到任何有效数据,跳过实体关系生成。") + + return all_entity_results, all_relation_results + + except Exception as e: + print(f"❌ get_tujiecompose_node_relation 主流程发生严重错误: {e}") + traceback.print_exc() + return [], [] + + +if __name__ == "__main__": + file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/output1/122-06A0014-B01001_发动机-图解目录_content_list.json' + input_pdf_path = "/storage01/home/hdf/project/wxkgrag/kgextract/know/122-06A0014-B01001_发动机-维修手册_highlighted_fdb9e9db-98d2-4ef6-bc72-52f875453f85.pdf" + output_json_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/output2/图解组成表抽取结果.json' + + try: + with open(file_path, 'r', encoding='utf-8') as file: + data = json.load(file) + except Exception as e: + print(f"读取 JSON 文件时出错:{e}") + data = [] + + all_entity_results, all_relation_results = asyncio.run( + get_tujiecompose_node_relation(input_pdf_path, data=data) + ) + + length_entity = len(all_entity_results) + length_relation = len(all_relation_results) + + print(f"抽取 {length_entity} 个实体,抽取 {length_relation} 个关系") + + result = { + "entities": all_entity_results, + "relations": all_relation_results + } + for ins in result["entities"]: + print(ins) + print(111111111111111111111) + + try: + with open(output_json_path, 'w', encoding='utf-8') as f: + json.dump(result, f, ensure_ascii=False, indent=4) + print(f"结果已保存至:{output_json_path}") + except Exception as e: + print(f"保存 JSON 文件时出错:{e}") + + diff --git a/kg_build/extract_filtertext.py b/kg_build/extract_filtertext.py new file mode 100644 index 0000000..d283418 --- /dev/null +++ b/kg_build/extract_filtertext.py @@ -0,0 +1,570 @@ +""" +extract_filtertext_serial.py +对外接口:get_filtertext_node_relation(input_pdf_path, data, prefix_url, device) + +全程不调用大模型,纯规则处理。 + +逻辑分支: + - 文件名含 备品备件/图解目录 → 直接跳过,不做任何解析 + - 文件名含 接线图/原理图/总图/连接图 → 直接生成"图录"实体 + 关系 + - 文件名含 芯线表 → 直接生成"芯线表"实体 + 关系 + - 文件名含 随机文件目录/随机文件 → 直接生成"文件目录"实体 + 关系 + - 其他文件(如维修手册等) → 按章节结构提取实体 + 关系 + +关系统一格式: + {"type": "包含", "from_entity": device, "to_entity": 实体type} + +章节切分逻辑已迁移至 chapter_segmenter.py,本文件直接调用。 +""" + +import json +import os +import re +from typing import List +from kg_build.extract_util import highlight_pdf_file +from entity_registry import register as _register_entity_type +from kg_build.chapter_segmenter import segment_chapters, Chapter + + +# ============================== +# 配置 +# ============================== + +DEVICE_NAME = "发动机" + +# 一级标题映射:去编号后的标题文本 → 替换为指定名称(精确匹配) +L1_TITLE_MAPPING = { + "概述": "基本情况", + "使用操作": "操作使用", + "系统结构组成" : "组成", + "设备组成" : "组成", + "设备功能" : "功能", + "安装与调试" : "调试", + "调试细则" : "调试", + "系统功能" : "功能", + "系统组成" : "组成", + "维修工作指导" : "维修工作" +} + +# 二级标题(特殊章节独立实体)类型映射 +L2_TYPE_MAPPING = { + "技术指标": "技术指标参数", + "工作条件": "环境条件", + "组成简介" : "组成", + "主要用途及适用范围" :"功能", + "主要功能" : "功能", + "接口关系" : "接口", + "主要性能参数" : "性能", +} + +# 实体 type → 关系 type(未命中默认"包含") +ENTITY_RELATION_MAPPING = { + "基本情况": "实现", + "功能": "实现", + "环境条件": "适用", + "组成": "包括", + "技术指标参数": "具有", + "接口": "配备", + "安全警告": "安全警告", + "操作使用": "支持操作", + "维修工作": "发生故障使用维修工作", + "调试": "调试", + "器材保障": "依赖", + "图册": "配套", + "设计单位": "设计", + "性能" : "具有", +} + +# 设计单位识别关键词(出现在封面 page_idx=0 的文本中) +DESIGN_UNIT_KEYWORDS = ["研究所", "集团公司", "有限公司", "工厂", "研究院", "研究中心"] + +# ---------- 文件名关键词配置 ---------- +#DIAGRAM_KEYWORDS = ["接线图", "原理图", "总图", "连接图"] +#TABLE_KEYWORDS = ["芯线表"] +DIAGRAM_KEYWORDS = ["原理图", "接线图", "总图","连接图","线图","布置图","安装图","曲线图","标志图","综合图","结构图","基座图","型线图","展开图","编号图","剖面图","吊装图","总装图","曲线图","代号图","视界图","射角图","管路图","周界图","外形图","关系图","装配图","覆盖图","尺寸图","完工图"] +TABLE_KEYWORDS = ["芯线表","明细表","接线表","编制表","值表册","线路表","矩阵表","汇总表","信息表","连接表"] +CATALOG_KEYWORDS = ["随机文件目录", "随机文件"] +SPARE_KEYWORDS = ["备品备件"] +SKIP_KEYWORDS = ["图解目录"] + + +# ============================== +# 文件名判断 +# ============================== + +def _should_skip(filename: str) -> bool: + """文件名包含跳过关键词时返回True,直接不处理。""" + basename = os.path.basename(filename) + return any(kw in basename for kw in SKIP_KEYWORDS) + + +def _detect_nomodel_category(filename: str): + """ + 根据文件名判断属于哪种特殊类别。 + 返回: (category, keyword) 或 (None, None) 表示走通用章节提取。 + """ + basename = os.path.basename(filename) + for kw in DIAGRAM_KEYWORDS: + if kw in basename: + return "diagram", kw + for kw in TABLE_KEYWORDS: + if kw in basename: + return "table", kw + for kw in CATALOG_KEYWORDS: + if kw in basename: + return "catalog", kw + for kw in SPARE_KEYWORDS: + if kw in basename: + return "spare", kw + return None, None + + +# ============================== +# 域映射 / 关系类型 +# ============================== + +def _sanitize_label(label: str) -> str: + """ + 去除 Neo4j Cypher label 中不合法的字符(、,,()() 等标点), + 保留汉字、字母、数字、下划线。 + """ + import re + return re.sub(r"[^\w\u4e00-\u9fff]", "", label) + + +def _map_l1_title(title_clean: str) -> str: + """对一级标题做映射,如 '概述' → '基本情况',未命中则原样返回。""" + return _sanitize_label(L1_TITLE_MAPPING.get(title_clean, title_clean)) + + +def _get_relation_type(entity_type: str) -> str: + """根据实体 type 返回对应的关系 type,未命中默认'包含'。""" + return ENTITY_RELATION_MAPPING.get(entity_type, "包含") + + +# ============================== +# 设计单位提取 +# ============================== + +def _extract_design_unit(data: list) -> str: + """ + 从封面前两页(page_idx=0 或 1)提取设计单位名称。 + 规则:文本含机构关键词(不限 type,兼容 discarded 记录)。 + 返回第一个命中的文本,找不到返回空字符串。 + """ + for ins in data: + if ins.get("page_idx", -1) not in (0, 1): + continue + text = ins.get("text", "").strip() + if text and any(kw in text for kw in DESIGN_UNIT_KEYWORDS): + return text + return "" + + +# ============================== +# 单条 record 转文本 +# ============================== + +def _record_to_text(ins: dict) -> str: + """将单条 record 转为纯文本字符串。""" + if ins.get("type") in ("text", "discarded"): + return ins.get("text", "").strip() + + elif ins.get("type") == "table": + table_caption = ins.get("table_caption", "") + table_body = ins.get("table_body", "") + if isinstance(table_caption, list): + table_caption = "\n".join(str(c) for c in table_caption) + table_text = re.sub(r'<[^>]+>', ' ', table_body or "") + table_text = re.sub(r'\s+', ' ', table_text).strip() + parts = [str(table_caption), table_text] + return "\n".join(p for p in parts if p).strip() + + elif ins.get("type") == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + if isinstance(image_caption, list): + image_caption = "\n".join(str(i) for i in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + parts = [image_caption, img_path] + return "\n".join(p for p in parts if p).strip() + + return "" + + +# ============================== +# 高亮相关 +# ============================== + +def _collect_highlights(records: list) -> list: + """从 records 中收集高亮信息。""" + highlight_list = [] + for ins in records: + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + if bbox and page_idx >= 0: + highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + return highlight_list + + + +def _build_highlight_url(input_pdf_path, highlight_list, prefix_url, include_page=True): + """调用 highlight_pdf_file 生成高亮PDF并返回URL。""" + if not highlight_list: + return "" + try: + highlight_filename, most_common_page, filename = highlight_pdf_file( + input_pdf_path, highlight_list + ) + if include_page: + return f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + return f"{prefix_url}/upload/{highlight_filename}" + except Exception as e: + print(f" ⚠️ highlight_pdf_file 失败: {e}") + return "" + + +# ============================== +# 图/表/目录类:直接生成实体 + 关系 +# ============================== + +def _special_file_generate_entities(input_pdf_path, prefix_url, device, category, keyword): + """ + 对于图/表/目录类文件,直接根据类别生成实体和关系。 + 返回: (entities, relations) + """ + filename = os.path.basename(input_pdf_path) + #url = f"{prefix_url}/upload/{filename}" + # url = f"{prefix_url}/files/uploads_v1/{filename}" + url = f"{prefix_url}/files/{filename}" + entities = [] + relations = [] + + if category == "diagram": + entity_type = f"{device}的{keyword}" + entity = { + "type": "图册", + "properties": { + "名称": entity_type, + keyword: url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type("图册", properties=["名称", keyword, "knowledge_source"]) + entities.append(entity) + relations.append({"type": "配套", "from_entity": device, "to_entity": entity_type}) + print(f" [图/表/目录] 生成图册实体: {entity_type}") + + elif category == "table": + entity_type = f"{device}的{keyword}" + entity = { + "type": keyword, + "properties": { + "名称": entity_type, + keyword: url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type(keyword, properties=["名称", keyword, "knowledge_source"]) + entities.append(entity) + relations.append({"type": "包含", "from_entity": device, "to_entity": entity_type}) + print(f" [图/表/目录] 生成表实体: {entity_type}") + + elif category == "catalog": + entity_type = f"{device}的文件目录" + entity = { + "type": "文件目录", + "properties": { + "名称": entity_type, + "文件目录": url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type("文件目录", properties=["名称", "文件目录", "knowledge_source"]) + entities.append(entity) + relations.append({"type": "包含", "from_entity": device, "to_entity": entity_type}) + print(f" [图/表/目录] 生成文件目录实体: {entity_type}") + + elif category == "spare": + entity_name = f"{device}的备品备件及清单" + entity = { + "type": "备品备件及清单", + "properties": { + "名称": entity_name, + "备品备件及清单": url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type("备品备件及清单", properties=["名称", "备品备件及清单", "knowledge_source"]) + #entities.append(entity) + relations.append({ + "type": "包含", + "from_entity": f"{device}的保障资源", + "to_entity": entity_name + }) + print(f" [图/表/目录] 生成备品备件及清单实体: {entity_name}") + + return entities, relations + + +# ============================== +# 通用文件:按章节结构提取实体 + 关系 +# ============================== + +def _chapter_structure_extract(input_pdf_path, data, prefix_url, device): + """ + 调用 chapter_segmenter.segment_chapters 切分章节,再将每个章节转为实体+关系。 + + 普通章节:一级标题 → 实体,二级标题内容 → 属性字段 + 特殊章节:每个二级节各自独立成为实体 + 返回: (entities, relations) + """ + chapters: List[Chapter] = segment_chapters(data) + + all_entities = [] + all_relations = [] + filename = os.path.basename(input_pdf_path) + + for chapter in chapters: + if chapter.is_skipped: + continue + + if chapter.is_special: + # 特殊章节:每个二级节独立成为实体 + for l2 in chapter.l2_sections: + content_text = "\n".join( + p for p in (_record_to_text(r) for r in l2.records) if p + ).strip() + if not content_text: + continue + mapped_l2_type = _sanitize_label(L2_TYPE_MAPPING.get(l2.title, l2.title)) + entity_name = f"{device}的{mapped_l2_type}" + hl = _collect_highlights(l2.records) + url = _build_highlight_url(input_pdf_path, hl, prefix_url) + entity = { + "type": mapped_l2_type, + "properties": { + "名称": entity_name, + "内容": content_text, + "knowledge_source": json.dumps( + [{"filename": filename, "info": content_text, "url": url}], + ensure_ascii=False + ) + } + } + _register_entity_type(mapped_l2_type, properties=["名称", "内容", "knowledge_source"]) + all_entities.append(entity) + all_relations.append({ + "type": _get_relation_type(mapped_l2_type), + "from_entity": device, + "to_entity": entity_name + }) + print(f" → [特殊] 实体 type=【{mapped_l2_type}】名称=【{entity_name}】") + + else: + # 普通章节:一级标题 → 实体 + mapped_title = _map_l1_title(chapter.title) + entity_name = f"{device}的{mapped_title}" + + properties = {"名称": entity_name} + + # 一级标题到第一个二级标题之间的内容 → 概述 + loose_text = "\n".join( + p for p in (_record_to_text(r) for r in chapter.loose_records) if p + ).strip() + if loose_text: + properties["概述"] = loose_text + + # 各二级节:命中 L2_TYPE_MAPPING 的独立成实体,否则作为属性 + for l2 in chapter.l2_sections: + content_text = "\n".join( + p for p in (_record_to_text(r) for r in l2.records) if p + ).strip() + if not content_text: + continue + if l2.title in L2_TYPE_MAPPING: + mapped_l2_type = _sanitize_label(L2_TYPE_MAPPING[l2.title]) + l2_entity_name = f"{device}的{mapped_l2_type}" + hl = _collect_highlights(l2.records) + l2_url = _build_highlight_url(input_pdf_path, hl, prefix_url) + l2_entity = { + "type": mapped_l2_type, + "properties": { + "名称": l2_entity_name, + "内容": content_text, + "knowledge_source": json.dumps( + [{"filename": filename, "info": content_text, "url": l2_url}], + ensure_ascii=False + ) + } + } + _register_entity_type(mapped_l2_type, properties=["名称", "内容", "knowledge_source"]) + all_entities.append(l2_entity) + all_relations.append({ + "type": _get_relation_type(mapped_l2_type), + "from_entity": device, + "to_entity": l2_entity_name + }) + print(f" → [L2独立] 实体 type=【{mapped_l2_type}】名称=【{l2_entity_name}】") + properties[l2.title] = content_text + + # 整章原文 + raw_parts = [_record_to_text(r) for r in chapter.records] + full_content = "\n".join(p for p in raw_parts if p).strip() + print(f" [DEBUG内容] 章节={mapped_title} records={len(chapter.records)} 内容长度={len(full_content)}") + if full_content: + properties["内容"] = full_content + + hl = _collect_highlights(chapter.records) + url = _build_highlight_url(input_pdf_path, hl, prefix_url) + properties["knowledge_source"] = json.dumps( + [{"filename": filename, "info": full_content, "url": url}], + ensure_ascii=False + ) + + prop_names = [k for k in properties if k not in ("名称", "knowledge_source")] + _register_entity_type(mapped_title, properties=["名称"] + prop_names + ["knowledge_source"]) + all_entities.append({"type": mapped_title, "properties": properties}) + all_relations.append({ + "type": _get_relation_type(mapped_title), + "from_entity": device, + "to_entity": entity_name + }) + print(f" → 实体 type=【{mapped_title}】名称=【{entity_name}】属性: {prop_names}") + + print(f"\n[章节提取] 共生成实体: {len(all_entities)},关系: {len(all_relations)}") + return all_entities, all_relations + + +# ============================== +# 对外唯一接口 +# ============================== + +async def get_filtertext_node_relation( + input_pdf_path: str, + data: list, + prefix_url: str = "http://192.168.0.111:9085", + device: str = DEVICE_NAME +): + """ + 对外唯一接口。 + + 自动判断文件名: + - 含"备品备件"或"图解目录" → 直接跳过,返回空 + - 含 接线图/原理图/总图/连接图/芯线表/随机文件目录 → 直接生成对应实体+关系 + - 其他文件 → 按一级标题=实体、二级标题=属性 的规则提取,同时生成关系 + + :param input_pdf_path: PDF文件路径 + :param data: content_list JSON数据 + :param prefix_url: highlight文件服务地址 + :param device: 设备名称,默认"发动机" + :return: (all_entity_results, all_relation_results) + """ + # ---- 1. 跳过不需要解析的文件 ---- + if _should_skip(input_pdf_path): + print(f"[跳过] 文件名命中跳过关键词,不做任何解析: {os.path.basename(input_pdf_path)}") + return [], [] + + # ---- 公共:从封面提取设计单位 ---- + design_unit_entities = [] + design_unit_relations = [] + design_unit_name = _extract_design_unit(data) + if not design_unit_name: + p0_texts = [ins.get("text", "")[:40] for ins in data if ins.get("page_idx", -1) == 0] + print(f" [设计单位] 未找到,page_idx=0 共{len(p0_texts)}条: {p0_texts}") + if design_unit_name: + design_unit_entities.append({ + "type": "设计单位", + "properties": { + "名称": design_unit_name, + "knowledge_source": "" + } + }) + design_unit_relations.append({ + "type": "设计", + "from_entity": device, + "to_entity": design_unit_name + }) + _register_entity_type("设计单位", properties=["名称", "knowledge_source"]) + print(f"[设计单位] {design_unit_name}") + + # ---- 2. 图/表/目录类 ---- + category, keyword = _detect_nomodel_category(input_pdf_path) + if category is not None: + print(f"[图/表/目录] 文件类别={category}, 关键词={keyword}, device={device}") + entities, relations = _special_file_generate_entities( + input_pdf_path, prefix_url, device, category, keyword + ) + entities = design_unit_entities + entities + relations = design_unit_relations + relations + print(f"完成,共生成实体: {len(entities)},关系: {len(relations)}") + return entities, relations + + # ---- 3. 其他文件:按章节结构提取 ---- + print(f"[章节提取] 按一级标题→实体、二级标题→属性 提取, device={device}") + entities, relations = _chapter_structure_extract( + input_pdf_path, data, prefix_url, device + ) + entities = design_unit_entities + entities + relations = design_unit_relations + relations + print(f"全部完成,共生成实体: {len(entities)},关系: {len(relations)}") + return entities, relations + + +# ============================== +# 本地测试入口 +# ============================== + +if __name__ == "__main__": + import asyncio + + test_cases = [ + { + "pdf": "/app/kg_build/test/122-06A0014-B01001_发动机-维修手册.pdf", + "json": "/app/kg_build/test/122-06A0014-B01001_发动机-维修手册_content_list.json", + }, + ] + + all_results = {"entities": [], "relations": []} + + for t in test_cases: + pdf_path = t["pdf"] + json_path = t["json"] + + if not os.path.exists(json_path): + print(f"跳过(文件不存在): {json_path}") + continue + + print(f"\n{'='*60}") + print(f"处理: {pdf_path}") + print(f"{'='*60}") + + try: + with open(json_path, 'r', encoding='utf-8') as f: + data = json.load(f) + except Exception as e: + print(f"读取JSON出错: {e}") + continue + + entities, relations = asyncio.run( + get_filtertext_node_relation( + pdf_path, data=data, device=DEVICE_NAME + ) + ) + all_results["entities"].extend(entities) + all_results["relations"].extend(relations) + + output_path = "/app/kg_build/test/过滤文本抽取结果.json" + try: + with open(output_path, 'w', encoding='utf-8') as f: + json.dump(all_results, f, ensure_ascii=False, indent=4) + print(f"\n结果已保存至: {output_path}") + except Exception as e: + print(f"保存结果出错: {e}") + + diff --git a/kg_build/extract_filtertext.py.0408 b/kg_build/extract_filtertext.py.0408 new file mode 100644 index 0000000..7a62822 --- /dev/null +++ b/kg_build/extract_filtertext.py.0408 @@ -0,0 +1,570 @@ +""" +extract_filtertext_serial.py +对外接口:get_filtertext_node_relation(input_pdf_path, data, prefix_url, device) + +全程不调用大模型,纯规则处理。 + +逻辑分支: + - 文件名含 备品备件/图解目录 → 直接跳过,不做任何解析 + - 文件名含 接线图/原理图/总图/连接图 → 直接生成"图录"实体 + 关系 + - 文件名含 芯线表 → 直接生成"芯线表"实体 + 关系 + - 文件名含 随机文件目录/随机文件 → 直接生成"文件目录"实体 + 关系 + - 其他文件(如维修手册等) → 按章节结构提取实体 + 关系 + +关系统一格式: + {"type": "包含", "from_entity": device, "to_entity": 实体type} + +章节切分逻辑已迁移至 chapter_segmenter.py,本文件直接调用。 +""" + +import json +import os +import re +from typing import List +from kg_build.extract_util import highlight_pdf_file +from entity_registry import register as _register_entity_type +from kg_build.chapter_segmenter import segment_chapters, Chapter + + +# ============================== +# 配置 +# ============================== + +DEVICE_NAME = "发动机" + +# 一级标题映射:去编号后的标题文本 → 替换为指定名称(精确匹配) +L1_TITLE_MAPPING = { + "概述": "基本情况", + "使用操作": "操作使用", + "系统结构组成" : "组成", + "设备组成" : "组成", + "设备功能" : "功能", + "安装与调试" : "调试", + "调试细则" : "调试", + "系统功能" : "功能", + "系统组成" : "组成", + "维修工作指导" : "维修工作" +} + +# 二级标题(特殊章节独立实体)类型映射 +L2_TYPE_MAPPING = { + "技术指标": "技术指标参数", + "工作条件": "环境条件", + "组成简介" : "组成", + "主要用途及适用范围" :"功能", + "主要功能" : "功能", + "接口关系" : "接口", + "主要性能参数" : "性能", +} + +# 实体 type → 关系 type(未命中默认"包含") +ENTITY_RELATION_MAPPING = { + "基本情况": "实现", + "功能": "实现", + "环境条件": "适用", + "组成": "包括", + "技术指标参数": "具有", + "接口": "配备", + "安全警告": "安全警告", + "操作使用": "支持操作", + "维修工作": "维修", + "调试": "调试", + "器材保障": "依赖", + "图册": "配套", + "设计单位": "设计", + "性能" : "具有", +} + +# 设计单位识别关键词(出现在封面 page_idx=0 的文本中) +DESIGN_UNIT_KEYWORDS = ["研究所", "集团公司", "有限公司", "工厂", "研究院", "研究中心"] + +# ---------- 文件名关键词配置 ---------- +#DIAGRAM_KEYWORDS = ["接线图", "原理图", "总图", "连接图"] +#TABLE_KEYWORDS = ["芯线表"] +DIAGRAM_KEYWORDS = ["原理图", "接线图", "总图","连接图","线图","布置图","安装图","曲线图","标志图","综合图","结构图","基座图","型线图","展开图","编号图","剖面图","吊装图","总装图","曲线图","代号图","视界图","射角图","管路图","周界图","外形图","关系图","装配图","覆盖图","尺寸图","完工图"] +TABLE_KEYWORDS = ["芯线表","明细表","接线表","编制表","值表册","线路表","矩阵表","汇总表","信息表","连接表"] +CATALOG_KEYWORDS = ["随机文件目录", "随机文件"] +SPARE_KEYWORDS = ["备品备件"] +SKIP_KEYWORDS = ["图解目录"] + + +# ============================== +# 文件名判断 +# ============================== + +def _should_skip(filename: str) -> bool: + """文件名包含跳过关键词时返回True,直接不处理。""" + basename = os.path.basename(filename) + return any(kw in basename for kw in SKIP_KEYWORDS) + + +def _detect_nomodel_category(filename: str): + """ + 根据文件名判断属于哪种特殊类别。 + 返回: (category, keyword) 或 (None, None) 表示走通用章节提取。 + """ + basename = os.path.basename(filename) + for kw in DIAGRAM_KEYWORDS: + if kw in basename: + return "diagram", kw + for kw in TABLE_KEYWORDS: + if kw in basename: + return "table", kw + for kw in CATALOG_KEYWORDS: + if kw in basename: + return "catalog", kw + for kw in SPARE_KEYWORDS: + if kw in basename: + return "spare", kw + return None, None + + +# ============================== +# 域映射 / 关系类型 +# ============================== + +def _sanitize_label(label: str) -> str: + """ + 去除 Neo4j Cypher label 中不合法的字符(、,,()() 等标点), + 保留汉字、字母、数字、下划线。 + """ + import re + return re.sub(r"[^\w\u4e00-\u9fff]", "", label) + + +def _map_l1_title(title_clean: str) -> str: + """对一级标题做映射,如 '概述' → '基本情况',未命中则原样返回。""" + return _sanitize_label(L1_TITLE_MAPPING.get(title_clean, title_clean)) + + +def _get_relation_type(entity_type: str) -> str: + """根据实体 type 返回对应的关系 type,未命中默认'包含'。""" + return ENTITY_RELATION_MAPPING.get(entity_type, "包含") + + +# ============================== +# 设计单位提取 +# ============================== + +def _extract_design_unit(data: list) -> str: + """ + 从封面前两页(page_idx=0 或 1)提取设计单位名称。 + 规则:文本含机构关键词(不限 type,兼容 discarded 记录)。 + 返回第一个命中的文本,找不到返回空字符串。 + """ + for ins in data: + if ins.get("page_idx", -1) not in (0, 1): + continue + text = ins.get("text", "").strip() + if text and any(kw in text for kw in DESIGN_UNIT_KEYWORDS): + return text + return "" + + +# ============================== +# 单条 record 转文本 +# ============================== + +def _record_to_text(ins: dict) -> str: + """将单条 record 转为纯文本字符串。""" + if ins.get("type") in ("text", "discarded"): + return ins.get("text", "").strip() + + elif ins.get("type") == "table": + table_caption = ins.get("table_caption", "") + table_body = ins.get("table_body", "") + if isinstance(table_caption, list): + table_caption = "\n".join(str(c) for c in table_caption) + table_text = re.sub(r'<[^>]+>', ' ', table_body or "") + table_text = re.sub(r'\s+', ' ', table_text).strip() + parts = [str(table_caption), table_text] + return "\n".join(p for p in parts if p).strip() + + elif ins.get("type") == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + if isinstance(image_caption, list): + image_caption = "\n".join(str(i) for i in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + parts = [image_caption, img_path] + return "\n".join(p for p in parts if p).strip() + + return "" + + +# ============================== +# 高亮相关 +# ============================== + +def _collect_highlights(records: list) -> list: + """从 records 中收集高亮信息。""" + highlight_list = [] + for ins in records: + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + if bbox and page_idx >= 0: + highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + return highlight_list + + + +def _build_highlight_url(input_pdf_path, highlight_list, prefix_url, include_page=True): + """调用 highlight_pdf_file 生成高亮PDF并返回URL。""" + if not highlight_list: + return "" + try: + highlight_filename, most_common_page, filename = highlight_pdf_file( + input_pdf_path, highlight_list + ) + if include_page: + return f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + return f"{prefix_url}/upload/{highlight_filename}" + except Exception as e: + print(f" ⚠️ highlight_pdf_file 失败: {e}") + return "" + + +# ============================== +# 图/表/目录类:直接生成实体 + 关系 +# ============================== + +def _special_file_generate_entities(input_pdf_path, prefix_url, device, category, keyword): + """ + 对于图/表/目录类文件,直接根据类别生成实体和关系。 + 返回: (entities, relations) + """ + filename = os.path.basename(input_pdf_path) + #url = f"{prefix_url}/upload/{filename}" + # url = f"{prefix_url}/files/uploads_v1/{filename}" + url = f"{prefix_url}/files/{filename}" + entities = [] + relations = [] + + if category == "diagram": + entity_type = f"{device}的{keyword}" + entity = { + "type": "图册", + "properties": { + "名称": entity_type, + keyword: url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type("图册", properties=["名称", keyword, "knowledge_source"]) + entities.append(entity) + relations.append({"type": "配套", "from_entity": device, "to_entity": entity_type}) + print(f" [图/表/目录] 生成图册实体: {entity_type}") + + elif category == "table": + entity_type = f"{device}的{keyword}" + entity = { + "type": keyword, + "properties": { + "名称": entity_type, + keyword: url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type(keyword, properties=["名称", keyword, "knowledge_source"]) + entities.append(entity) + relations.append({"type": "包含", "from_entity": device, "to_entity": entity_type}) + print(f" [图/表/目录] 生成表实体: {entity_type}") + + elif category == "catalog": + entity_type = f"{device}的文件目录" + entity = { + "type": "文件目录", + "properties": { + "名称": entity_type, + "文件目录": url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type("文件目录", properties=["名称", "文件目录", "knowledge_source"]) + entities.append(entity) + relations.append({"type": "包含", "from_entity": device, "to_entity": entity_type}) + print(f" [图/表/目录] 生成文件目录实体: {entity_type}") + + elif category == "spare": + entity_name = f"{device}的备品备件及清单" + entity = { + "type": "备品备件及清单", + "properties": { + "名称": entity_name, + "备品备件及清单": url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type("备品备件及清单", properties=["名称", "备品备件及清单", "knowledge_source"]) + #entities.append(entity) + relations.append({ + "type": "包含", + "from_entity": f"{device}的保障资源", + "to_entity": entity_name + }) + print(f" [图/表/目录] 生成备品备件及清单实体: {entity_name}") + + return entities, relations + + +# ============================== +# 通用文件:按章节结构提取实体 + 关系 +# ============================== + +def _chapter_structure_extract(input_pdf_path, data, prefix_url, device): + """ + 调用 chapter_segmenter.segment_chapters 切分章节,再将每个章节转为实体+关系。 + + 普通章节:一级标题 → 实体,二级标题内容 → 属性字段 + 特殊章节:每个二级节各自独立成为实体 + 返回: (entities, relations) + """ + chapters: List[Chapter] = segment_chapters(data) + + all_entities = [] + all_relations = [] + filename = os.path.basename(input_pdf_path) + + for chapter in chapters: + if chapter.is_skipped: + continue + + if chapter.is_special: + # 特殊章节:每个二级节独立成为实体 + for l2 in chapter.l2_sections: + content_text = "\n".join( + p for p in (_record_to_text(r) for r in l2.records) if p + ).strip() + if not content_text: + continue + mapped_l2_type = _sanitize_label(L2_TYPE_MAPPING.get(l2.title, l2.title)) + entity_name = f"{device}的{mapped_l2_type}" + hl = _collect_highlights(l2.records) + url = _build_highlight_url(input_pdf_path, hl, prefix_url) + entity = { + "type": mapped_l2_type, + "properties": { + "名称": entity_name, + "内容": content_text, + "knowledge_source": json.dumps( + [{"filename": filename, "info": content_text, "url": url}], + ensure_ascii=False + ) + } + } + _register_entity_type(mapped_l2_type, properties=["名称", "内容", "knowledge_source"]) + all_entities.append(entity) + all_relations.append({ + "type": _get_relation_type(mapped_l2_type), + "from_entity": device, + "to_entity": entity_name + }) + print(f" → [特殊] 实体 type=【{mapped_l2_type}】名称=【{entity_name}】") + + else: + # 普通章节:一级标题 → 实体 + mapped_title = _map_l1_title(chapter.title) + entity_name = f"{device}的{mapped_title}" + + properties = {"名称": entity_name} + + # 一级标题到第一个二级标题之间的内容 → 概述 + loose_text = "\n".join( + p for p in (_record_to_text(r) for r in chapter.loose_records) if p + ).strip() + if loose_text: + properties["概述"] = loose_text + + # 各二级节:命中 L2_TYPE_MAPPING 的独立成实体,否则作为属性 + for l2 in chapter.l2_sections: + content_text = "\n".join( + p for p in (_record_to_text(r) for r in l2.records) if p + ).strip() + if not content_text: + continue + if l2.title in L2_TYPE_MAPPING: + mapped_l2_type = _sanitize_label(L2_TYPE_MAPPING[l2.title]) + l2_entity_name = f"{device}的{mapped_l2_type}" + hl = _collect_highlights(l2.records) + l2_url = _build_highlight_url(input_pdf_path, hl, prefix_url) + l2_entity = { + "type": mapped_l2_type, + "properties": { + "名称": l2_entity_name, + "内容": content_text, + "knowledge_source": json.dumps( + [{"filename": filename, "info": content_text, "url": l2_url}], + ensure_ascii=False + ) + } + } + _register_entity_type(mapped_l2_type, properties=["名称", "内容", "knowledge_source"]) + all_entities.append(l2_entity) + all_relations.append({ + "type": _get_relation_type(mapped_l2_type), + "from_entity": device, + "to_entity": l2_entity_name + }) + print(f" → [L2独立] 实体 type=【{mapped_l2_type}】名称=【{l2_entity_name}】") + properties[l2.title] = content_text + + # 整章原文 + raw_parts = [_record_to_text(r) for r in chapter.records] + full_content = "\n".join(p for p in raw_parts if p).strip() + print(f" [DEBUG内容] 章节={mapped_title} records={len(chapter.records)} 内容长度={len(full_content)}") + if full_content: + properties["内容"] = full_content + + hl = _collect_highlights(chapter.records) + url = _build_highlight_url(input_pdf_path, hl, prefix_url) + properties["knowledge_source"] = json.dumps( + [{"filename": filename, "info": full_content, "url": url}], + ensure_ascii=False + ) + + prop_names = [k for k in properties if k not in ("名称", "knowledge_source")] + _register_entity_type(mapped_title, properties=["名称"] + prop_names + ["knowledge_source"]) + all_entities.append({"type": mapped_title, "properties": properties}) + all_relations.append({ + "type": _get_relation_type(mapped_title), + "from_entity": device, + "to_entity": entity_name + }) + print(f" → 实体 type=【{mapped_title}】名称=【{entity_name}】属性: {prop_names}") + + print(f"\n[章节提取] 共生成实体: {len(all_entities)},关系: {len(all_relations)}") + return all_entities, all_relations + + +# ============================== +# 对外唯一接口 +# ============================== + +async def get_filtertext_node_relation( + input_pdf_path: str, + data: list, + prefix_url: str = "http://192.168.0.111:9085", + device: str = DEVICE_NAME +): + """ + 对外唯一接口。 + + 自动判断文件名: + - 含"备品备件"或"图解目录" → 直接跳过,返回空 + - 含 接线图/原理图/总图/连接图/芯线表/随机文件目录 → 直接生成对应实体+关系 + - 其他文件 → 按一级标题=实体、二级标题=属性 的规则提取,同时生成关系 + + :param input_pdf_path: PDF文件路径 + :param data: content_list JSON数据 + :param prefix_url: highlight文件服务地址 + :param device: 设备名称,默认"发动机" + :return: (all_entity_results, all_relation_results) + """ + # ---- 1. 跳过不需要解析的文件 ---- + if _should_skip(input_pdf_path): + print(f"[跳过] 文件名命中跳过关键词,不做任何解析: {os.path.basename(input_pdf_path)}") + return [], [] + + # ---- 公共:从封面提取设计单位 ---- + design_unit_entities = [] + design_unit_relations = [] + design_unit_name = _extract_design_unit(data) + if not design_unit_name: + p0_texts = [ins.get("text", "")[:40] for ins in data if ins.get("page_idx", -1) == 0] + print(f" [设计单位] 未找到,page_idx=0 共{len(p0_texts)}条: {p0_texts}") + if design_unit_name: + design_unit_entities.append({ + "type": "设计单位", + "properties": { + "名称": design_unit_name, + "knowledge_source": "" + } + }) + design_unit_relations.append({ + "type": "设计", + "from_entity": device, + "to_entity": design_unit_name + }) + _register_entity_type("设计单位", properties=["名称", "knowledge_source"]) + print(f"[设计单位] {design_unit_name}") + + # ---- 2. 图/表/目录类 ---- + category, keyword = _detect_nomodel_category(input_pdf_path) + if category is not None: + print(f"[图/表/目录] 文件类别={category}, 关键词={keyword}, device={device}") + entities, relations = _special_file_generate_entities( + input_pdf_path, prefix_url, device, category, keyword + ) + entities = design_unit_entities + entities + relations = design_unit_relations + relations + print(f"完成,共生成实体: {len(entities)},关系: {len(relations)}") + return entities, relations + + # ---- 3. 其他文件:按章节结构提取 ---- + print(f"[章节提取] 按一级标题→实体、二级标题→属性 提取, device={device}") + entities, relations = _chapter_structure_extract( + input_pdf_path, data, prefix_url, device + ) + entities = design_unit_entities + entities + relations = design_unit_relations + relations + print(f"全部完成,共生成实体: {len(entities)},关系: {len(relations)}") + return entities, relations + + +# ============================== +# 本地测试入口 +# ============================== + +if __name__ == "__main__": + import asyncio + + test_cases = [ + { + "pdf": "/app/kg_build/test/122-06A0014-B01001_发动机-维修手册.pdf", + "json": "/app/kg_build/test/122-06A0014-B01001_发动机-维修手册_content_list.json", + }, + ] + + all_results = {"entities": [], "relations": []} + + for t in test_cases: + pdf_path = t["pdf"] + json_path = t["json"] + + if not os.path.exists(json_path): + print(f"跳过(文件不存在): {json_path}") + continue + + print(f"\n{'='*60}") + print(f"处理: {pdf_path}") + print(f"{'='*60}") + + try: + with open(json_path, 'r', encoding='utf-8') as f: + data = json.load(f) + except Exception as e: + print(f"读取JSON出错: {e}") + continue + + entities, relations = asyncio.run( + get_filtertext_node_relation( + pdf_path, data=data, device=DEVICE_NAME + ) + ) + all_results["entities"].extend(entities) + all_results["relations"].extend(relations) + + output_path = "/app/kg_build/test/过滤文本抽取结果.json" + try: + with open(output_path, 'w', encoding='utf-8') as f: + json.dump(all_results, f, ensure_ascii=False, indent=4) + print(f"\n结果已保存至: {output_path}") + except Exception as e: + print(f"保存结果出错: {e}") + + diff --git a/kg_build/extract_filtertext.py.04081124 b/kg_build/extract_filtertext.py.04081124 new file mode 100644 index 0000000..4cebf49 --- /dev/null +++ b/kg_build/extract_filtertext.py.04081124 @@ -0,0 +1,563 @@ +""" +extract_filtertext_serial.py +对外接口:get_filtertext_node_relation(input_pdf_path, data, prefix_url, device) + +全程不调用大模型,纯规则处理。 + +逻辑分支: + - 文件名含 备品备件/图解目录 → 直接跳过,不做任何解析 + - 文件名含 接线图/原理图/总图/连接图 → 直接生成"图录"实体 + 关系 + - 文件名含 芯线表 → 直接生成"芯线表"实体 + 关系 + - 文件名含 随机文件目录/随机文件 → 直接生成"文件目录"实体 + 关系 + - 其他文件(如维修手册等) → 按章节结构提取实体 + 关系 + +关系统一格式: + {"type": "包含", "from_entity": device, "to_entity": 实体type} + +章节切分逻辑已迁移至 chapter_segmenter.py,本文件直接调用。 +""" + +import json +import os +import re +from collections import Counter +from typing import List +from kg_build.extract_util import highlight_pdf_file +from entity_registry import register as _register_entity_type +from kg_build.chapter_segmenter import segment_chapters, Chapter + + +# ============================== +# 配置 +# ============================== + +DEVICE_NAME = "发动机" + +# 一级标题映射:去编号后的标题文本 → 替换为指定名称(精确匹配) +L1_TITLE_MAPPING = { + "概述": "基本情况", + "使用操作": "操作使用", + "系统结构组成" : "组成", + "设备组成" : "组成", + "设备功能" : "功能", + "安装与调试" : "调试", + "调试细则" : "调试", + "系统功能" : "功能", + "系统组成" : "组成", + "维修工作指导" : "维修工作" +} + +# 二级标题(特殊章节独立实体)类型映射 +L2_TYPE_MAPPING = { + "技术指标": "技术指标参数", + "工作条件": "环境条件", + "组成简介" : "组成", + "主要用途及适用范围" :"功能", + "主要功能" : "功能", + "接口关系" : "接口", + "主要性能参数" : "性能", +} + +# 实体 type → 关系 type(未命中默认"包含") +ENTITY_RELATION_MAPPING = { + "基本情况": "实现", + "功能": "实现", + "环境条件": "适用", + "组成": "包括", + "技术指标参数": "具有", + "接口": "配备", + "安全警告": "安全警告", + "操作使用": "支持操作", + "维修工作": "维修", + "调试": "调试", + "器材保障": "依赖", + "图册": "配套", + "设计单位": "设计", + "性能" : "具有", +} + +# 设计单位识别关键词(出现在封面 page_idx=0 的文本中) +DESIGN_UNIT_KEYWORDS = ["研究所", "集团公司", "有限公司", "工厂", "研究院", "研究中心"] + +# ---------- 文件名关键词配置 ---------- +DIAGRAM_KEYWORDS = ["原理图", "接线图", "总图","连接图","线图","布置图","安装图","曲线图","标志图","综合图","结构图","基座图","型线图","展开图","编号图","剖面图","吊装图","总装图","曲线图","代号图","视界图","射角图","管路图","周界图","外形图","关系图","装配图","覆盖图","尺寸图","完工图"] +TABLE_KEYWORDS = ["芯线表","明细表","接线表","编制表","值表册","线路表","矩阵表","汇总表","信息表","连接表"] +CATALOG_KEYWORDS = ["随机文件目录", "随机文件"] +SPARE_KEYWORDS = ["备品备件"] +SKIP_KEYWORDS = ["图解目录"] + + +# ============================== +# 文件名判断 +# ============================== + +def _should_skip(filename: str) -> bool: + """文件名包含跳过关键词时返回True,直接不处理。""" + basename = os.path.basename(filename) + return any(kw in basename for kw in SKIP_KEYWORDS) + + +def _detect_nomodel_category(filename: str): + """ + 根据文件名判断属于哪种特殊类别。 + 返回: (category, keyword) 或 (None, None) 表示走通用章节提取。 + """ + basename = os.path.basename(filename) + for kw in DIAGRAM_KEYWORDS: + if kw in basename: + return "diagram", kw + for kw in TABLE_KEYWORDS: + if kw in basename: + return "table", kw + for kw in CATALOG_KEYWORDS: + if kw in basename: + return "catalog", kw + for kw in SPARE_KEYWORDS: + if kw in basename: + return "spare", kw + return None, None + + +# ============================== +# 域映射 / 关系类型 +# ============================== + +def _sanitize_label(label: str) -> str: + """ + 去除 Neo4j Cypher label 中不合法的字符(、,,()() 等标点), + 保留汉字、字母、数字、下划线。 + """ + import re + return re.sub(r"[^\w\u4e00-\u9fff]", "", label) + + +def _map_l1_title(title_clean: str) -> str: + """对一级标题做映射,如 '概述' → '基本情况',未命中则原样返回。""" + return _sanitize_label(L1_TITLE_MAPPING.get(title_clean, title_clean)) + + +def _get_relation_type(entity_type: str) -> str: + """根据实体 type 返回对应的关系 type,未命中默认'包含'。""" + return ENTITY_RELATION_MAPPING.get(entity_type, "包含") + + +# ============================== +# 设计单位提取 +# ============================== + +def _extract_design_unit(data: list) -> str: + """ + 从封面前两页(page_idx=0 或 1)提取设计单位名称。 + 规则:文本含机构关键词(不限 type,兼容 discarded 记录)。 + 返回第一个命中的文本,找不到返回空字符串。 + """ + for ins in data: + if ins.get("page_idx", -1) not in (0, 1): + continue + text = ins.get("text", "").strip() + if text and any(kw in text for kw in DESIGN_UNIT_KEYWORDS): + return text + return "" + + +# ============================== +# 单条 record 转文本 +# ============================== + +def _record_to_text(ins: dict) -> str: + """将单条 record 转为纯文本字符串。""" + if ins.get("type") in ("text", "discarded"): + return ins.get("text", "").strip() + + elif ins.get("type") == "table": + table_caption = ins.get("table_caption", "") + table_body = ins.get("table_body", "") + if isinstance(table_caption, list): + table_caption = "\n".join(str(c) for c in table_caption) + table_text = re.sub(r'<[^>]+>', ' ', table_body or "") + table_text = re.sub(r'\s+', ' ', table_text).strip() + parts = [str(table_caption), table_text] + return "\n".join(p for p in parts if p).strip() + + elif ins.get("type") == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + if isinstance(image_caption, list): + image_caption = "\n".join(str(i) for i in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + parts = [image_caption, img_path] + return "\n".join(p for p in parts if p).strip() + + return "" + + +# ============================== +# 高亮相关 +# ============================== + +def _collect_highlights(records: list) -> list: + """从 records 中收集高亮信息。""" + highlight_list = [] + for ins in records: + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + if bbox and page_idx >= 0: + highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + return highlight_list + + + +def _build_highlight_url(input_pdf_path, highlight_list, prefix_url, include_page=True): + """返回原始PDF的URL,暂时不生成高亮PDF。""" + filename = os.path.basename(input_pdf_path) + if not highlight_list: + return f"{prefix_url}/upload/{filename}" + most_common_page = Counter(h["page_idx"] for h in highlight_list).most_common(1)[0][0] + 1 if include_page else None + if most_common_page is not None: + return f"{prefix_url}/upload/{filename}#page={most_common_page}" + return f"{prefix_url}/upload/{filename}" + + +# ============================== +# 图/表/目录类:直接生成实体 + 关系 +# ============================== + +def _special_file_generate_entities(input_pdf_path, prefix_url, device, category, keyword): + """ + 对于图/表/目录类文件,直接根据类别生成实体和关系。 + 返回: (entities, relations) + """ + filename = os.path.basename(input_pdf_path) + #url = f"{prefix_url}/upload/{filename}" + # url = f"{prefix_url}/files/uploads_v1/{filename}" + url = f"{prefix_url}/files/{filename}" + entities = [] + relations = [] + + if category == "diagram": + entity_type = f"{device}的{keyword}" + entity = { + "type": "图册", + "properties": { + "名称": entity_type, + keyword: url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type("图册", properties=["名称", keyword, "knowledge_source"]) + entities.append(entity) + relations.append({"type": "配套", "from_entity": device, "to_entity": entity_type}) + print(f" [图/表/目录] 生成图册实体: {entity_type}") + + elif category == "table": + entity_type = f"{device}的{keyword}" + entity = { + "type": keyword, + "properties": { + "名称": entity_type, + keyword: url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type(keyword, properties=["名称", keyword, "knowledge_source"]) + entities.append(entity) + relations.append({"type": "包含", "from_entity": device, "to_entity": entity_type}) + print(f" [图/表/目录] 生成表实体: {entity_type}") + + elif category == "catalog": + entity_type = f"{device}的文件目录" + entity = { + "type": "文件目录", + "properties": { + "名称": entity_type, + "文件目录": url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type("文件目录", properties=["名称", "文件目录", "knowledge_source"]) + entities.append(entity) + relations.append({"type": "包含", "from_entity": device, "to_entity": entity_type}) + print(f" [图/表/目录] 生成文件目录实体: {entity_type}") + + elif category == "spare": + entity_name = f"{device}的备品备件及清单" + entity = { + "type": "备品备件及清单", + "properties": { + "名称": entity_name, + "备品备件及清单": url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type("备品备件及清单", properties=["名称", "备品备件及清单", "knowledge_source"]) + #entities.append(entity) + relations.append({ + "type": "包含", + "from_entity": f"{device}的保障资源", + "to_entity": entity_name + }) + print(f" [图/表/目录] 生成备品备件及清单实体: {entity_name}") + + return entities, relations + + +# ============================== +# 通用文件:按章节结构提取实体 + 关系 +# ============================== + +def _chapter_structure_extract(input_pdf_path, data, prefix_url, device): + """ + 调用 chapter_segmenter.segment_chapters 切分章节,再将每个章节转为实体+关系。 + + 普通章节:一级标题 → 实体,二级标题内容 → 属性字段 + 特殊章节:每个二级节各自独立成为实体 + 返回: (entities, relations) + """ + chapters: List[Chapter] = segment_chapters(data) + + all_entities = [] + all_relations = [] + filename = os.path.basename(input_pdf_path) + + for chapter in chapters: + if chapter.is_skipped: + continue + + if chapter.is_special: + # 特殊章节:每个二级节独立成为实体 + for l2 in chapter.l2_sections: + content_text = "\n".join( + p for p in (_record_to_text(r) for r in l2.records) if p + ).strip() + if not content_text: + continue + mapped_l2_type = _sanitize_label(L2_TYPE_MAPPING.get(l2.title, l2.title)) + entity_name = f"{device}的{mapped_l2_type}" + hl = _collect_highlights(l2.records) + url = _build_highlight_url(input_pdf_path, hl, prefix_url) + entity = { + "type": mapped_l2_type, + "properties": { + "名称": entity_name, + "内容": content_text, + "knowledge_source": json.dumps( + [{"filename": filename, "info": content_text, "url": url, "bbox": hl}], + ensure_ascii=False + ) + } + } + _register_entity_type(mapped_l2_type, properties=["名称", "内容", "knowledge_source"]) + all_entities.append(entity) + all_relations.append({ + "type": _get_relation_type(mapped_l2_type), + "from_entity": device, + "to_entity": entity_name + }) + print(f" → [特殊] 实体 type=【{mapped_l2_type}】名称=【{entity_name}】") + + else: + # 普通章节:一级标题 → 实体 + mapped_title = _map_l1_title(chapter.title) + entity_name = f"{device}的{mapped_title}" + + properties = {"名称": entity_name} + + # 一级标题到第一个二级标题之间的内容 → 概述 + loose_text = "\n".join( + p for p in (_record_to_text(r) for r in chapter.loose_records) if p + ).strip() + if loose_text: + properties["概述"] = loose_text + + # 各二级节:命中 L2_TYPE_MAPPING 的独立成实体,否则作为属性 + for l2 in chapter.l2_sections: + content_text = "\n".join( + p for p in (_record_to_text(r) for r in l2.records) if p + ).strip() + if not content_text: + continue + if l2.title in L2_TYPE_MAPPING: + mapped_l2_type = _sanitize_label(L2_TYPE_MAPPING[l2.title]) + l2_entity_name = f"{device}的{mapped_l2_type}" + hl = _collect_highlights(l2.records) + l2_url = _build_highlight_url(input_pdf_path, hl, prefix_url) + l2_entity = { + "type": mapped_l2_type, + "properties": { + "名称": l2_entity_name, + "内容": content_text, + "knowledge_source": json.dumps( + [{"filename": filename, "info": content_text, "url": l2_url, "bbox": hl}], + ensure_ascii=False + ) + } + } + _register_entity_type(mapped_l2_type, properties=["名称", "内容", "knowledge_source"]) + all_entities.append(l2_entity) + all_relations.append({ + "type": _get_relation_type(mapped_l2_type), + "from_entity": device, + "to_entity": l2_entity_name + }) + print(f" → [L2独立] 实体 type=【{mapped_l2_type}】名称=【{l2_entity_name}】") + properties[l2.title] = content_text + + # 整章原文 + raw_parts = [_record_to_text(r) for r in chapter.records] + full_content = "\n".join(p for p in raw_parts if p).strip() + print(f" [DEBUG内容] 章节={mapped_title} records={len(chapter.records)} 内容长度={len(full_content)}") + if full_content: + properties["内容"] = full_content + + hl = _collect_highlights(chapter.records) + url = _build_highlight_url(input_pdf_path, hl, prefix_url) + properties["knowledge_source"] = json.dumps( + [{"filename": filename, "info": full_content, "url": url, "bbox": hl}], + ensure_ascii=False + ) + + prop_names = [k for k in properties if k not in ("名称", "knowledge_source")] + _register_entity_type(mapped_title, properties=["名称"] + prop_names + ["knowledge_source"]) + all_entities.append({"type": mapped_title, "properties": properties}) + all_relations.append({ + "type": _get_relation_type(mapped_title), + "from_entity": device, + "to_entity": entity_name + }) + print(f" → 实体 type=【{mapped_title}】名称=【{entity_name}】属性: {prop_names}") + + print(f"\n[章节提取] 共生成实体: {len(all_entities)},关系: {len(all_relations)}") + return all_entities, all_relations + + +# ============================== +# 对外唯一接口 +# ============================== + +async def get_filtertext_node_relation( + input_pdf_path: str, + data: list, + prefix_url: str = "http://192.168.0.111:9085", + device: str = DEVICE_NAME +): + """ + 对外唯一接口。 + + 自动判断文件名: + - 含"备品备件"或"图解目录" → 直接跳过,返回空 + - 含 接线图/原理图/总图/连接图/芯线表/随机文件目录 → 直接生成对应实体+关系 + - 其他文件 → 按一级标题=实体、二级标题=属性 的规则提取,同时生成关系 + + :param input_pdf_path: PDF文件路径 + :param data: content_list JSON数据 + :param prefix_url: highlight文件服务地址 + :param device: 设备名称,默认"发动机" + :return: (all_entity_results, all_relation_results) + """ + # ---- 1. 跳过不需要解析的文件 ---- + if _should_skip(input_pdf_path): + print(f"[跳过] 文件名命中跳过关键词,不做任何解析: {os.path.basename(input_pdf_path)}") + return [], [] + + # ---- 公共:从封面提取设计单位 ---- + design_unit_entities = [] + design_unit_relations = [] + design_unit_name = _extract_design_unit(data) + if not design_unit_name: + p0_texts = [ins.get("text", "")[:40] for ins in data if ins.get("page_idx", -1) == 0] + print(f" [设计单位] 未找到,page_idx=0 共{len(p0_texts)}条: {p0_texts}") + if design_unit_name: + design_unit_entities.append({ + "type": "设计单位", + "properties": { + "名称": design_unit_name, + "knowledge_source": "" + } + }) + design_unit_relations.append({ + "type": "设计", + "from_entity": device, + "to_entity": design_unit_name + }) + _register_entity_type("设计单位", properties=["名称", "knowledge_source"]) + print(f"[设计单位] {design_unit_name}") + + # ---- 2. 图/表/目录类 ---- + category, keyword = _detect_nomodel_category(input_pdf_path) + if category is not None: + print(f"[图/表/目录] 文件类别={category}, 关键词={keyword}, device={device}") + entities, relations = _special_file_generate_entities( + input_pdf_path, prefix_url, device, category, keyword + ) + entities = design_unit_entities + entities + relations = design_unit_relations + relations + print(f"完成,共生成实体: {len(entities)},关系: {len(relations)}") + return entities, relations + + # ---- 3. 其他文件:按章节结构提取 ---- + print(f"[章节提取] 按一级标题→实体、二级标题→属性 提取, device={device}") + entities, relations = _chapter_structure_extract( + input_pdf_path, data, prefix_url, device + ) + entities = design_unit_entities + entities + relations = design_unit_relations + relations + print(f"全部完成,共生成实体: {len(entities)},关系: {len(relations)}") + return entities, relations + + +# ============================== +# 本地测试入口 +# ============================== + +if __name__ == "__main__": + import asyncio + + test_cases = [ + { + "pdf": "/app/kg_build/test/122-06A0014-B01001_发动机-维修手册.pdf", + "json": "/app/kg_build/test/122-06A0014-B01001_发动机-维修手册_content_list.json", + }, + ] + + all_results = {"entities": [], "relations": []} + + for t in test_cases: + pdf_path = t["pdf"] + json_path = t["json"] + + if not os.path.exists(json_path): + print(f"跳过(文件不存在): {json_path}") + continue + + print(f"\n{'='*60}") + print(f"处理: {pdf_path}") + print(f"{'='*60}") + + try: + with open(json_path, 'r', encoding='utf-8') as f: + data = json.load(f) + except Exception as e: + print(f"读取JSON出错: {e}") + continue + + entities, relations = asyncio.run( + get_filtertext_node_relation( + pdf_path, data=data, device=DEVICE_NAME + ) + ) + all_results["entities"].extend(entities) + all_results["relations"].extend(relations) + + output_path = "/app/kg_build/test/过滤文本抽取结果.json" + try: + with open(output_path, 'w', encoding='utf-8') as f: + json.dump(all_results, f, ensure_ascii=False, indent=4) + print(f"\n结果已保存至: {output_path}") + except Exception as e: + print(f"保存结果出错: {e}") + diff --git a/kg_build/extract_guzhang_table.py b/kg_build/extract_guzhang_table.py new file mode 100644 index 0000000..9cede09 --- /dev/null +++ b/kg_build/extract_guzhang_table.py @@ -0,0 +1,379 @@ +import pandas as pd +from io import StringIO # 1. 导入 StringIO +import json +import requests +import json +import os +from collections import Counter +from extract_util import safe_json_loads,highlight_pdf_file,get_content_bbox +import re +import asyncio +from bs4 import BeautifulSoup +import logging +# 配置 logger +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", + datefmt="%Y-%m-%d %H:%M:%S" +) +logger = logging.getLogger(__name__) +# ================= 函数定义 ================= +def save_to_file(data, filepath, is_json=True): + """通用保存函数""" + try: + with open(filepath, "w", encoding="utf-8") as f: + if is_json: + json.dump(data, f, ensure_ascii=False, indent=2) + else: + f.write(data) + print(f"✅ 已保存: {filepath}") + return True + except Exception as e: + print(f"❌ 保存失败 {filepath}: {e}") + return False +def is_fault_table_by_first_tr(table_body: str) -> bool: + if not isinstance(table_body, str): + return False + + # 非贪婪匹配第一个 ... + match = re.search(r']*>(.*?)', table_body, re.IGNORECASE | re.DOTALL) + if not match: + + return False + + first_tr_html = match.group(1) + + # 提取所有 ', table_body, re.IGNORECASE | re.DOTALL) + if not match: + return None + + text_lower = re.sub(r'<[^>]+>', '', match.group(1)).lower() + + if all(kw in text_lower for kw in ["故障现象", "故障原因", "维修项目"]): + return "type1" + elif all(kw in text_lower for kw in ["故障现象", "可能原因", "排除方法"]): + return "type2" + elif all(kw in text_lower for kw in ["故障外部现象", "故障可能原因", "操作员指导","排除方法"]): + return "type3" + return None + + +# ================= 修改:返回时携带 table_type ================= +def get_guzhang_chunk_bbox_and_removed_data(data): + results = [] # 元素格式: {"group": [...], "table_type": "type1"/"type2"} + ids_to_remove = set() + record_map = {item["id"]: item for item in data} + + for ins in data: + if ins.get("type") == "table": + table_type = get_fault_table_type(ins.get("table_body", "")) + + if table_type is not None: + current_id = ins["id"] + prev_ids = [current_id - 1] + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append({"group": group, "table_type": table_type}) # ← 携带类型 + + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + return results, filtered_data + +import re + +def _expand_rowspans(content: str) -> list[list[str]]: + """ + 将含 rowspan 的 HTML 表格展开为完整二维列表。 + 每个被合并的单元格都会被填充为原始内容。 + """ + all_rows = re.findall(r"(.*?)", content, flags=re.DOTALL) + if not all_rows: + return [] + + matrix = [] + pending = {} # {col_index: (remaining_rows, cell_text)} + + for row_html in all_rows: + cells = re.findall(r"]*)>(.*?)", row_html, flags=re.DOTALL) + row = [] + col = 0 + cell_idx = 0 + + while cell_idx < len(cells) or any(c >= col for c in pending): + if col in pending: + # 该列被上方 rowspan 占用,直接填充 + remaining, text = pending[col] + row.append(text) + if remaining - 1 > 0: + pending[col] = (remaining - 1, text) + else: + del pending[col] + col += 1 + + elif cell_idx < len(cells): + attrs_str, text = cells[cell_idx] + text = text.strip() + + rowspan_m = re.search(r'rowspan\s*=\s*["\']?(\d+)', attrs_str) + rowspan = int(rowspan_m.group(1)) if rowspan_m else 1 + + row.append(text) + if rowspan > 1: + pending[col] = (rowspan - 1, text) + + col += 1 + cell_idx += 1 + else: + break + + matrix.append(row) + + return matrix + + +def parse_table_content(content: str, chunk_size: int = 10) -> list[dict]: + """ + 先展开 rowspan,再按 chunk_size 切分,分批解析后汇总返回。 + """ + matrix = _expand_rowspans(content) + if not matrix: + print("⚠️ 未找到有效表格,返回空列表") + return [] + + header = matrix[0] # 表头 + data_rows = matrix[1:] # 数据行(rowspan 已展开) + total = len(data_rows) + + print(f"📋 展开后共 {total} 条数据行,按每批 {chunk_size} 行切分处理") + + def _to_html(rows: list[list[str]]) -> str: + def row_html(cells): + return "" + "".join(f"" for c in cells) + "" + return "
序号名称型专规格
中的文本(简单去标签) + # 更健壮的做法是递归去除标签,但这里用正则足够 + text_in_first_tr = re.sub(r'<[^>]+>', '', first_tr_html) # 去除所有 HTML 标签 + + # 统一转为字符串并检查关键词 + text_lower = text_in_first_tr.lower() + keywords = ["故障现象", "故障原因", "维修项目"] + return all(kw in text_lower for kw in keywords) + +# ================= 新增:识别故障表类型 ================= +def get_fault_table_type(table_body: str): + """ + 返回故障表类型: + 'type1' -> 包含 [故障现象, 故障原因, 维修项目] + 'type2' -> 包含 [故障现象, 可能原因, 排除方法] + None -> 非故障表 + """ + if not isinstance(table_body, str): + return None + + match = re.search(r']*>(.*?)
{c}
" + row_html(header) + "".join(row_html(r) for r in rows) + "
" + + result_list = [] + + for chunk_start in range(0, total, chunk_size): + chunk = data_rows[chunk_start: chunk_start + chunk_size] + chunk_html = _to_html(chunk) + + try: + chunk_df_list = pd.read_html(StringIO(chunk_html), header=0) + if not chunk_df_list: + print(f" ⚠️ 切片 [{chunk_start}:{chunk_start+chunk_size}] 解析失败,跳过") + continue + + chunk_result = json.loads( + chunk_df_list[0].to_json(orient='records', force_ascii=False) + ) + result_list.extend(chunk_result) + print(f" ✅ 切片 [{chunk_start}:{chunk_start+chunk_size}] 解析 {len(chunk_result)} 条") + + except Exception as e: + print(f" ❌ 切片 [{chunk_start}:{chunk_start+chunk_size}] 处理异常: {e}") + continue + + print(f"共汇总 {len(result_list)} 条记录") + return result_list +# ================= 修改:主函数按类型分支处理 ================= +async def get_guzhang_node_relation(input_pdf_path, data, prefix_url="http://192.168.0.46:59085", device="发动机"): + for idx, item in enumerate(data, start=1): + item["id"] = idx + + guzhang_groups, cleaned_data = get_guzhang_chunk_bbox_and_removed_data(data) + print(f"抽取的故障表总数量为:{len(guzhang_groups)}") + + if not guzhang_groups: + print("未找到符合条件的组成表格,跳过处理。") + all_entity_results, all_relation_results = [], [] + + else: + all_entity_results, all_relation_results = [], [] + + for i, item in enumerate(guzhang_groups): + compose = item["group"] + table_type = item["table_type"] + + try: + print(f"开始处理第 {i+1} 个故障表,类型: {table_type}") + content, highlight_list = get_content_bbox(compose) + print("故障表切片内容为:", content[:200]) + + result_list = parse_table_content(content, chunk_size=10) + if not result_list: + continue + + highlight_filename, most_common_page, filename = highlight_pdf_file(input_pdf_path, highlight_list) + url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + logger.info(f"处理完成,高亮文件:{highlight_filename},高亮页码:{most_common_page}") + + # ---------- type1: 故障现象 / 故障原因 / 维修项目 ---------- + if table_type == "type1": + for ins in result_list: + # 安全获取字段,如果是 None 则转为空字符串 + guzhang_xianxiang = ins.get("故障现象") or "" + guzhang_yuanyin = ins.get("故障原因") or "" + weixiu_xiangmu = ins.get("维修项目") or "" + + # 只有当现象或原因不为空时才构建故障名,避免生成 "导致" 这种无意义字符串 + if guzhang_xianxiang or guzhang_yuanyin: + guzhangname = f"{guzhang_yuanyin}导致{guzhang_xianxiang}" + else: + continue # 如果关键信息缺失,跳过该行 + + source_data_list = [{"filename": filename, "info": content, "url": url, "bbox": highlight_list}] + + all_entity_results.append({ + "type": "故障模式", + "properties": { + "名称": guzhangname, + "故障现象": guzhang_xianxiang, + "故障原因": guzhang_yuanyin, + "维修方案": weixiu_xiangmu, + "knowledge_source": json.dumps(source_data_list, ensure_ascii=False) + } + }) + all_relation_results.append({ + "type": "包含故障", + "from_entity": f"{device}的维修工作", + "to_entity": guzhangname + }) + + # ---------- type2: 故障现象 / 可能原因 / 排除方法 ---------- + elif table_type == "type2": + for ins in result_list: + guzhang_xianxiang = ins.get("故障现象") or "" + guzhang_yuanyin = ins.get("可能原因") or "" + weixiu_fangfa = ins.get("排除方法") or "" + + if guzhang_xianxiang or guzhang_yuanyin: + guzhangname = f"{guzhang_yuanyin}导致{guzhang_xianxiang}" + else: + continue + + source_data_list = [{"filename": filename, "info": content, "url": url, "bbox": highlight_list}] + + all_entity_results.append({ + "type": "故障模式", + "properties": { + "名称": guzhangname, + "故障现象": guzhang_xianxiang, + "故障原因": guzhang_yuanyin, + "维修方案": weixiu_fangfa, + "knowledge_source": json.dumps(source_data_list, ensure_ascii=False) + } + }) + all_relation_results.append({ + "type": "包含故障", + "from_entity": f"{device}的维修工作", + "to_entity": guzhangname + }) + + elif table_type == "type3": + for ins in result_list: + guzhang_xianxiang = ins.get("故障外部现象") or "" + guzhang_yuanyin = ins.get("故障可能原因") or "" + caozuoyuan_zhidao = ins.get("操作员指导") or "" + weixiu_fangfa = ins.get("排除方法") or "" + + if guzhang_xianxiang or guzhang_yuanyin: + guzhangname = f"{guzhang_yuanyin}导致{guzhang_xianxiang}" + else: + continue + + source_data_list = [{"filename": filename, "info": content, "url": url, "bbox": highlight_list}] + + all_entity_results.append({ + "type": "故障模式", + "properties": { + "名称": guzhangname, + "故障现象": guzhang_xianxiang, + "故障原因": guzhang_yuanyin, + "操作员指导": caozuoyuan_zhidao, + "维修方案": weixiu_fangfa, + "knowledge_source": json.dumps(source_data_list, ensure_ascii=False) + } + }) + all_relation_results.append({ + "type": "包含故障", + "from_entity": f"{device}的维修工作", + "to_entity": guzhangname + }) + except Exception as e: + print(f"处理第 {i+1} 组时发生未预期错误: {e}") + continue + + # 设备 → 维修工作指导 节点和关系(两种类型共用) + all_entity_results.append({ + "type": "维修工作", + "properties": {"名称": f"{device}的维修工作"} + }) + all_relation_results.append({ + "type": "发生故障使用维修工作", + "from_entity": device, + "to_entity": f"{device}的维修工作" + }) + + return all_entity_results, all_relation_results + + + +""" +实体:设备、维修工作、故障、维修项目 +关系:设备---发生故障使用维修工作--->维修工作 +维修工作---表征--->故障 +故障---被修复--->维修项目 +""" +if __name__ == "__main__": + file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/122-06A0014-B01001_发动机-维修手册_content_list.json' + input_pdf_path = "/storage01/home/hdf/project/wxkgrag/kgextract/122-06A0014-B01001_发动机-维修手册.pdf" + output_json_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/output2/维修细目表抽取结果.json' # 你可以自定义路径 + + try: + with open(file_path, 'r', encoding='utf-8') as file: + data = json.load(file) + except Exception as e: + print(f"读取 JSON 文件时出错:{e}") + data = [] + all_entity_results, all_relation_results = asyncio.run( + get_guzhang_node_relation(input_pdf_path, data=data) + ) + for ins in all_entity_results: + print(ins) + length_entity = len(all_entity_results) + length_relation = len(all_relation_results) + + print(f"抽取{length_entity}个实体,抽取{length_relation}个关系") + result = { + "entities": all_entity_results, + "relations": all_relation_results + } + + # 保存为 JSON 文件 + try: + with open(output_json_path, 'w', encoding='utf-8') as f: + json.dump(result, f, ensure_ascii=False, indent=4) + print(f"结果已保存至:{output_json_path}") + except Exception as e: + print(f"保存 JSON 文件时出错:{e}") + diff --git a/kg_build/extract_guzhang_table.py.0408 b/kg_build/extract_guzhang_table.py.0408 new file mode 100644 index 0000000..63706a0 --- /dev/null +++ b/kg_build/extract_guzhang_table.py.0408 @@ -0,0 +1,387 @@ +import pandas as pd +from io import StringIO # 1. 导入 StringIO +import json +import requests +import json +import os +from kg_build.extract_util import safe_json_loads,highlight_pdf_file,get_content_bbox +import re +import asyncio +from bs4 import BeautifulSoup +import logging +# 配置 logger +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", + datefmt="%Y-%m-%d %H:%M:%S" +) +logger = logging.getLogger(__name__) +# ================= 函数定义 ================= +def save_to_file(data, filepath, is_json=True): + """通用保存函数""" + try: + with open(filepath, "w", encoding="utf-8") as f: + if is_json: + json.dump(data, f, ensure_ascii=False, indent=2) + else: + f.write(data) + print(f"✅ 已保存: {filepath}") + return True + except Exception as e: + print(f"❌ 保存失败 {filepath}: {e}") + return False +def is_fault_table_by_first_tr(table_body: str) -> bool: + if not isinstance(table_body, str): + return False + + # 非贪婪匹配第一个 ... + match = re.search(r']*>(.*?)', table_body, re.IGNORECASE | re.DOTALL) + if not match: + + return False + + first_tr_html = match.group(1) + + # 提取所有 或 中的文本(简单去标签) + # 更健壮的做法是递归去除标签,但这里用正则足够 + text_in_first_tr = re.sub(r'<[^>]+>', '', first_tr_html) # 去除所有 HTML 标签 + + # 统一转为字符串并检查关键词 + text_lower = text_in_first_tr.lower() + keywords = ["故障现象", "故障原因", "维修项目"] + return all(kw in text_lower for kw in keywords) + +# ================= 新增:识别故障表类型 ================= +def get_fault_table_type(table_body: str): + """ + 返回故障表类型: + 'type1' -> 包含 [故障现象, 故障原因, 维修项目] + 'type2' -> 包含 [故障现象, 可能原因, 排除方法] + None -> 非故障表 + """ + if not isinstance(table_body, str): + return None + + match = re.search(r']*>(.*?)', table_body, re.IGNORECASE | re.DOTALL) + if not match: + return None + + text_lower = re.sub(r'<[^>]+>', '', match.group(1)).lower() + + if all(kw in text_lower for kw in ["故障现象", "故障原因", "维修项目"]): + return "type1" + elif all(kw in text_lower for kw in ["故障现象", "可能原因", "排除方法"]): + return "type2" + elif all(kw in text_lower for kw in ["故障外部现象", "故障可能原因", "操作员指导","排除方法"]): + return "type3" + return None + + +# ================= 修改:返回时携带 table_type ================= +def get_guzhang_chunk_bbox_and_removed_data(data): + results = [] # 元素格式: {"group": [...], "table_type": "type1"/"type2"} + ids_to_remove = set() + record_map = {item["id"]: item for item in data} + + for ins in data: + if ins.get("type") == "table": + table_type = get_fault_table_type(ins.get("table_body", "")) + + if table_type is not None: + current_id = ins["id"] + prev_ids = [current_id - 1] + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append({"group": group, "table_type": table_type}) # ← 携带类型 + + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + return results, filtered_data + +import re + +def _expand_rowspans(content: str) -> list[list[str]]: + """ + 将含 rowspan 的 HTML 表格展开为完整二维列表。 + 每个被合并的单元格都会被填充为原始内容。 + """ + all_rows = re.findall(r"(.*?)", content, flags=re.DOTALL) + if not all_rows: + return [] + + matrix = [] + pending = {} # {col_index: (remaining_rows, cell_text)} + + for row_html in all_rows: + cells = re.findall(r"]*)>(.*?)", row_html, flags=re.DOTALL) + row = [] + col = 0 + cell_idx = 0 + + while cell_idx < len(cells) or any(c >= col for c in pending): + if col in pending: + # 该列被上方 rowspan 占用,直接填充 + remaining, text = pending[col] + row.append(text) + if remaining - 1 > 0: + pending[col] = (remaining - 1, text) + else: + del pending[col] + col += 1 + + elif cell_idx < len(cells): + attrs_str, text = cells[cell_idx] + text = text.strip() + + rowspan_m = re.search(r'rowspan\s*=\s*["\']?(\d+)', attrs_str) + rowspan = int(rowspan_m.group(1)) if rowspan_m else 1 + + row.append(text) + if rowspan > 1: + pending[col] = (rowspan - 1, text) + + col += 1 + cell_idx += 1 + else: + break + + matrix.append(row) + + return matrix + + +def parse_table_content(content: str, chunk_size: int = 10) -> list[dict]: + """ + 先展开 rowspan,再按 chunk_size 切分,分批解析后汇总返回。 + """ + matrix = _expand_rowspans(content) + if not matrix: + print("⚠️ 未找到有效表格,返回空列表") + return [] + + header = matrix[0] # 表头 + data_rows = matrix[1:] # 数据行(rowspan 已展开) + total = len(data_rows) + + print(f"📋 展开后共 {total} 条数据行,按每批 {chunk_size} 行切分处理") + + def _to_html(rows: list[list[str]]) -> str: + def row_html(cells): + return "" + "".join(f"{c}" for c in cells) + "" + return "" + row_html(header) + "".join(row_html(r) for r in rows) + "
" + + result_list = [] + + for chunk_start in range(0, total, chunk_size): + chunk = data_rows[chunk_start: chunk_start + chunk_size] + chunk_html = _to_html(chunk) + + try: + chunk_df_list = pd.read_html(StringIO(chunk_html), header=0) + if not chunk_df_list: + print(f" ⚠️ 切片 [{chunk_start}:{chunk_start+chunk_size}] 解析失败,跳过") + continue + + chunk_result = json.loads( + chunk_df_list[0].to_json(orient='records', force_ascii=False) + ) + result_list.extend(chunk_result) + print(f" ✅ 切片 [{chunk_start}:{chunk_start+chunk_size}] 解析 {len(chunk_result)} 条") + + except Exception as e: + print(f" ❌ 切片 [{chunk_start}:{chunk_start+chunk_size}] 处理异常: {e}") + continue + + print(f"共汇总 {len(result_list)} 条记录") + return result_list +# ================= 修改:主函数按类型分支处理 ================= +async def get_guzhang_node_relation(input_pdf_path, data, prefix_url="http://192.168.0.46:59085", device="发动机"): + for idx, item in enumerate(data, start=1): + item["id"] = idx + + guzhang_groups, cleaned_data = get_guzhang_chunk_bbox_and_removed_data(data) + print(f"抽取的故障表总数量为:{len(guzhang_groups)}") + + if not guzhang_groups: + print("未找到符合条件的组成表格,跳过处理。") + all_entity_results, all_relation_results = [], [] + + else: + all_entity_results, all_relation_results = [], [] + + for i, item in enumerate(guzhang_groups): + compose = item["group"] + table_type = item["table_type"] + + try: + print(f"开始处理第 {i+1} 个故障表,类型: {table_type}") + content, highlight_list = get_content_bbox(compose) + print("故障表切片内容为:", content[:200]) + + # df_list = pd.read_html(StringIO(content), header=0) + # if not df_list: + # print(f" ⚠️ 第 {i+1} 组未解析到表格,跳过") + # continue + + # df = df_list[0] + # df.dropna(how='all', inplace=True) + # result_list = json.loads(df.to_json(orient='records', force_ascii=False)) + result_list = parse_table_content(content, chunk_size=10) + if not result_list: + continue +# for ins in result_list: + # print(ins) + # print(1111111111111111111111) + #highlight_filename, most_common_page, filename = highlight_pdf_file(input_pdf_path, highlight_list) + #url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + url = '' + # logger.info(f"处理完成,高亮文件:{highlight_filename},高亮页码:{most_common_page}") + # ---------- type1: 故障现象 / 故障原因 / 维修项目 ---------- + if table_type == "type1": + for ins in result_list: + # 安全获取字段,如果是 None 则转为空字符串 + guzhang_xianxiang = ins.get("故障现象") or "" + guzhang_yuanyin = ins.get("故障原因") or "" + weixiu_xiangmu = ins.get("维修项目") or "" + + # 只有当现象或原因不为空时才构建故障名,避免生成 "导致" 这种无意义字符串 + if guzhang_xianxiang or guzhang_yuanyin: + guzhangname = f"{guzhang_yuanyin}导致{guzhang_xianxiang}" + else: + continue # 如果关键信息缺失,跳过该行 + + source_data_list = [{"filename": 'filename', "info": 'content', "url": 'url'}] + + all_entity_results.append({ + "type": "故障模式", + "properties": { + "名称": guzhangname, + "故障现象": guzhang_xianxiang, + "故障原因": guzhang_yuanyin, + "维修方案": weixiu_xiangmu, + "knowledge_source": json.dumps(source_data_list, ensure_ascii=False) + } + }) + all_relation_results.append({ + "type": "包含故障", + "from_entity": f"{device}的维修工作", + "to_entity": guzhangname + }) + + # ---------- type2: 故障现象 / 可能原因 / 排除方法 ---------- + elif table_type == "type2": + for ins in result_list: + guzhang_xianxiang = ins.get("故障现象") or "" + guzhang_yuanyin = ins.get("可能原因") or "" + weixiu_fangfa = ins.get("排除方法") or "" + + if guzhang_xianxiang or guzhang_yuanyin: + guzhangname = f"{guzhang_yuanyin}导致{guzhang_xianxiang}" + else: + continue + + source_data_list = [{"filename": filename, "info": content, "url": url}] + + all_entity_results.append({ + "type": "故障模式", + "properties": { + "名称": guzhangname, + "故障现象": guzhang_xianxiang, + "故障原因": guzhang_yuanyin, + "维修方案": weixiu_fangfa, + "knowledge_source": json.dumps(source_data_list, ensure_ascii=False) + } + }) + all_relation_results.append({ + "type": "包含故障", + "from_entity": f"{device}的维修工作", + "to_entity": guzhangname + }) + + elif table_type == "type3": + for ins in result_list: + guzhang_xianxiang = ins.get("故障外部现象") or "" + guzhang_yuanyin = ins.get("故障可能原因") or "" + caozuoyuan_zhidao = ins.get("操作员指导") or "" + weixiu_fangfa = ins.get("排除方法") or "" + + if guzhang_xianxiang or guzhang_yuanyin: + guzhangname = f"{guzhang_yuanyin}导致{guzhang_xianxiang}" + else: + continue + + source_data_list = [{"filename": filename, "info": content, "url": url}] + + all_entity_results.append({ + "type": "故障模式", + "properties": { + "名称": guzhangname, + "故障现象": guzhang_xianxiang, + "故障原因": guzhang_yuanyin, + "操作员指导": caozuoyuan_zhidao, + "维修方案": weixiu_fangfa, + "knowledge_source": json.dumps(source_data_list, ensure_ascii=False) + } + }) + all_relation_results.append({ + "type": "包含故障", + "from_entity": f"{device}的维修工作", + "to_entity": guzhangname + }) + except Exception as e: + print(f"处理第 {i+1} 组时发生未预期错误: {e}") + continue + + # 设备 → 维修工作指导 节点和关系(两种类型共用) + all_entity_results.append({ + "type": "维修工作", + "properties": {"名称": f"{device}的维修工作"} + }) + all_relation_results.append({ + "type": "发生故障使用维修工作", + "from_entity": device, + "to_entity": f"{device}维修工作" + }) + + return all_entity_results, all_relation_results + + + +""" +实体:设备、维修工作、故障、维修项目 +关系:设备---发生故障使用维修工作--->维修工作 +维修工作---包含--->故障 +故障---被修复--->维修项目 +""" +if __name__ == "__main__": + file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/122-06A0014-B01001_发动机-维修手册_content_list.json' + input_pdf_path = "/storage01/home/hdf/project/wxkgrag/kgextract/122-06A0014-B01001_发动机-维修手册.pdf" + output_json_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/output2/维修细目表抽取结果.json' # 你可以自定义路径 + + try: + with open(file_path, 'r', encoding='utf-8') as file: + data = json.load(file) + except Exception as e: + print(f"读取 JSON 文件时出错:{e}") + data = [] + all_entity_results, all_relation_results = asyncio.run( + get_guzhang_node_relation(input_pdf_path, data=data) + ) + for ins in all_entity_results: + print(ins) + length_entity = len(all_entity_results) + length_relation = len(all_relation_results) + + print(f"抽取{length_entity}个实体,抽取{length_relation}个关系") + result = { + "entities": all_entity_results, + "relations": all_relation_results + } + + # 保存为 JSON 文件 + try: + with open(output_json_path, 'w', encoding='utf-8') as f: + json.dump(result, f, ensure_ascii=False, indent=4) + print(f"结果已保存至:{output_json_path}") + except Exception as e: + print(f"保存 JSON 文件时出错:{e}") diff --git a/kg_build/extract_operation_table.py b/kg_build/extract_operation_table.py new file mode 100644 index 0000000..bf9bb96 --- /dev/null +++ b/kg_build/extract_operation_table.py @@ -0,0 +1,347 @@ +import json +import fitz # PyMuPDF +import os +from collections import Counter +import uuid +# 假设 Prompt 和 extract_util 是你本地已有的模块 +from kg_build.Prompt import prompt_extract_operation_node_rela +from kg_build.extract_util import safe_json_loads, highlight_pdf_file, get_content_bbox, get_most_common_page, highlight_pdf_file_batch +import re +import asyncio +from openai import AsyncOpenAI +# from modelsAPI.model_api import OpenaiAPI + + +async def openai_chat_aysnc(query: str, timeout: int = 180) -> str | None: + """异步调用 OpenAI 兼容 API(如本地部署的 Qwen、vLLM、Ollama 等)""" + client = None + try: + base_url = "http://192.168.0.46:59800/v1" + api_key = "none" + + client = AsyncOpenAI( + api_key=api_key, + base_url=base_url, + timeout=timeout + ) + + response = await client.chat.completions.create( + model="46-qwen3.6-35B", + messages=[ + {"role": "user", "content": query}, + ], + temperature=0.1, + stream=False, + response_format={"type": "json_object"}, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + + except Exception as e: + print(f"调用 OpenAI API 时出错: {e}") + return None + finally: + if client: + await client.close() + +def is_operation_table_by_first_tr(table_body: str) -> bool: + """ + 判断 table_body 是否为操作项目表,依据是第一行 中是否包含 '项目编号' 和 '操作项目' + """ + if not isinstance(table_body, str): + return False + + # 非贪婪匹配第一个 ... + match = re.search(r']*>(.*?)', table_body, re.IGNORECASE | re.DOTALL) + if not match: + return False + + first_tr_html = match.group(1) + + # 去除所有 HTML 标签,提取纯文本 + text_in_first_tr = re.sub(r'<[^>]+>', '', first_tr_html) + + # 转为小写(中文无所谓大小写,但统一处理更安全) + text_clean = text_in_first_tr.strip() + + # 检查是否同时包含两个关键词 + has_code = "项目编号" in text_clean + has_item = "操作项目" in text_clean + return has_code and has_item + + +def extract_operation_groups_and_remaining(records, max_following_for_last=None): + """ + 通过语义判断表格是否为操作项目表(基于第一行内容),并分组。 + + 普通起始标记:组 = [start, ..., next_start - 1] + 最后一个起始标记:组 = [start, ..., start + max_following_for_last] (若指定) + """ + groups = [] + current_group = None + used_ids = set() + + for record in records: + is_start = ( + record.get("type") == "table" + and is_operation_table_by_first_tr(record.get("table_body", "")) + ) + + if is_start: + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + current_group = [record] + else: + if current_group is not None: + current_group.append(record) + + # 处理最后一个组 + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + # —————— 后处理:截断最后一个组(如果需要) —————— + if groups and max_following_for_last is not None: + last_group = groups[-1] + if len(last_group) > max_following_for_last + 1: # +1 是起始记录本身 + truncated = last_group[:max_following_for_last + 1] + removed_ids = {r["id"] for r in last_group[max_following_for_last + 1:]} + used_ids -= removed_ids + groups[-1] = truncated + + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + + + + +async def extract_entity_relation(chunk): + """ + 批量处理一个文档的多个切片(chunks),每个切片调用大模型结构化,并返回全部结果。 + """ + final_prompt = prompt_extract_operation_node_rela.replace("text", chunk) + + raw_response = await openai_chat_aysnc(final_prompt, timeout=600) + + if raw_response is None: + print(f" ⚠️ 切片 API 调用失败") + return [] + + # 尝试解析 JSON + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = safe_json_loads(cleaned) + return json_result + + except Exception as e: + print(f" ⚠️ 切片 JSON 解析失败: {e}") + print(f" 原始响应: {repr(raw_response[:500])}") + return [] + + + +async def get_operation_node_relation(input_pdf_path, data, prefix_url="http://192.168.0.46:59085", device="发动机"): + # 1. 初始化数据 ID (如果输入数据还没有ID) + for idx, item in enumerate(data, start=1): + if "id" not in item: + item["id"] = idx + + devicename = device + + # 2. 数据预处理:获取故障组 and 清洗数据 + groups1, remaining_records1 = extract_operation_groups_and_remaining(data) + groups = groups1[1:] if len(groups1) > 1 else [] + + all_entity_results = [] + all_relation_results = [] + device_operation = { + "type" : "操作程序", + "properties": { + "名称": f"{devicename}的操作程序", + } + } + + _filename = os.path.basename(input_pdf_path) + # _base, _ext = os.path.splitext(_filename) + # highlight_filename = f"{_base}_{uuid.uuid4()}{_ext}" + filename = _filename + # all_highlights = [] + + if not groups: + print("未找到符合条件的操作项目组,跳过后续处理。") + else: + # 3. 遍历每个维修项目组进行抽取 + for i, repair_group in enumerate(groups): + try: + print(f"开始处理第 {i+1} 个操作项目表") + + # 获取内容和高亮区域 + content, highlight_list = get_content_bbox(repair_group) + if not content: + print(f"第 {i+1} 组:内容为空,跳过") + continue + + # ================= 重试逻辑开始 ================= + result = None + max_retries = 20 + retry_delay = 0.5 + highlight_filename, most_common_page,filename = highlight_pdf_file(input_pdf_path,highlight_list) + url = f"http://192.168.0.46:59085/upload/{highlight_filename}#page={most_common_page}" + for attempt in range(1, max_retries + 2): + # print(content[:500]) # 调试时可打开,避免日志过多 + # 1. 调用 API + result = await extract_entity_relation(content) + + # 2. 验证结果有效性 + is_valid = False + if result is not None and isinstance(result, dict): + # 情况 1: 标准格式 {'entities': [...], 'relationships': [...]} + if "entities" in result and isinstance(result["entities"], list) and len(result["entities"]) > 0: + is_valid = True + # 情况 2: 兼容日志中的格式 {'result': [...]} + elif "result" in result and isinstance(result["result"], list) and len(result["result"]) > 0: + is_valid = True + + # 3. 判断是否成功 + if is_valid: + if attempt > 1: + print(f" ✅ 第 {attempt} 次尝试成功获取有效数据。") + break + + # 4. 如果失败且还有重试机会 + if attempt <= max_retries: + reason = "API 返回为空" if result is None else "返回数据格式异常或内容为空" + print(f" ⚠️ 第 {attempt} 次尝试失败:{reason}。等待 {retry_delay} 秒后重试...") + await asyncio.sleep(retry_delay) + else: + print(f" ❌ 经过 {max_retries + 1} 次尝试仍无法获取有效数据,跳过该组。") + result = None + break + # ================= 重试逻辑结束 ================= + + if result is None: + continue + + # 构造知识来源字符串 (此处保持原有逻辑,实际项目中可能需要动态生成真实 URL) + source_data_list = [{ + "filename": filename, + "info": content, + "url": url, + "bbox": highlight_list + }] + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + + # 兼容不同返回格式 + entities = result.get("entities", result.get("result", [])) + relationships = result.get("relationships", []) + + for entity in entities: + if "properties" not in entity or not isinstance(entity["properties"], dict): + entity["properties"] = {} + entity["properties"]["knowledge_source"] = knowledge_source_str + if entity.get("type") == "操作项目": + entity["properties"]["内容"] = content + # 构建基础关系:设备 -> 操作项目 + rela = { + "type": "操作时使用", + "from_entity": f"{devicename}的操作程序", + "to_entity": entity.get("properties", {}).get("名称", "未知实体") + } + all_relation_results.append(rela) + + all_entity_results.extend(entities) + all_relation_results.extend(relationships) + + except Exception as e: + print(f"处理第 {i+1} 组时发生未预期错误: {e}") + import traceback + traceback.print_exc() + continue + + + + # ================= 【新增】实体和关系去重逻辑 ================= + print(f"去重前统计:实体数量={len(all_entity_results)}, 关系数量={len(all_relation_results)}") + + # 1. 实体去重 + unique_entities = [] + seen_entity_keys = set() + + for entity in all_entity_results: + props = entity.get("properties", {}) + # 定义唯一键:优先使用 "编号",如果没有则使用 "名称" + # 这样可以防止 OT001 出现两次 + entity_id = props.get("编号") or props.get("名称") + + # 如果连名称都没有,生成一个临时ID避免报错,但这种情况通常视为无效数据 + if not entity_id: + entity_id = str(uuid.uuid4()) + + if entity_id not in seen_entity_keys: + seen_entity_keys.add(entity_id) + unique_entities.append(entity) + else: + # 可选:打印跳过的重复项 + # print(f" ⚠️ 跳过重复实体: {entity_id} - {props.get('名称')}") + pass + + all_entity_results = unique_entities + + # 2. 关系去重 + unique_relations = [] + seen_relation_keys = set() + + for rela in all_relation_results: + # 定义关系唯一键:类型 + 源 + 目标 + r_key = (rela.get("type"), rela.get("from_entity"), rela.get("to_entity")) + + if r_key not in seen_relation_keys: + seen_relation_keys.add(r_key) + unique_relations.append(rela) + + all_relation_results = unique_relations + + relation = {'type': '使用', 'from_entity': f'{device}的操作使用', 'to_entity': f'{device}的操作程序'} + all_relation_results.append(relation) + all_entity_results.append(device_operation) + + print(f"去重后统计:实体数量={len(all_entity_results)}, 关系数量={len(all_relation_results)}") + # ======================================================== + + + return all_entity_results, all_relation_results + + +if __name__ == "__main__": + file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/output1/122-06A0014-B01001_发动机-操作使用手册_content_list.json' + input_pdf_path = "/storage01/home/hdf/project/wxkgrag/kgextract/output/output1/122-06A0014-B01001_发动机-操作使用手册.pdf" + + try: + with open(file_path, 'r', encoding='utf-8') as file: + data = json.load(file) + except Exception as e: + print(f"读取 JSON 文件时出错:{e}") + data = [] + + all_entity_results, all_relation_results = asyncio.run( + get_operation_node_relation(input_pdf_path, data=data, device="发动机") + ) + + length_entity = len(all_entity_results) + length_relation = len(all_relation_results) + for ins in all_entity_results: + print(ins) + print(11111111111111111111111) + for ins in all_relation_results: + print(ins) + print(22222222222222222222) + print(f"最终抽取结果:{length_entity}个实体,{length_relation}个关系") + + + diff --git a/kg_build/extract_repair_table.py b/kg_build/extract_repair_table.py new file mode 100644 index 0000000..64e15f2 --- /dev/null +++ b/kg_build/extract_repair_table.py @@ -0,0 +1,678 @@ +import json +import fitz # PyMuPDF +import os +from collections import Counter +import uuid +from kg_build.Prompt import prompt_extract_repair_node_rela +from openai import OpenAI +import re +from kg_build.extract_util import safe_json_loads, highlight_pdf_file, get_content_bbox +from modelsAPI.model_api import OpenaiAPI +import re +from typing import List, Dict, Any, Tuple +import json +import re +import copy +import asyncio +from openai import AsyncOpenAI +import pandas as pd +from io import StringIO # 1. 导入 StringIO +def optimize_component_type(data): + """ + 根据组成编码的位数优化记录的type字段 + + 规则: + - 2位数 → 子系统 + - 4位数 → 部件 + - 6位数 → 一级零部件 + - 8位数 → 二级零部件 + """ + + # type映射关系 + type_mapping = { + 2: '子系统', + 4: '部件', + 6: '一级零部件', + 8: '二级零部件' + } + + optimized_data = [] + stats = { + 'total': 0, + 'modified': 0, + 'unchanged': 0, + 'no_code': 0 + } + + for record in data: + stats['total'] += 1 + new_record = copy.deepcopy(record) + + # 检查是否存在properties和组成编码 + if 'properties' in record and '组成编码' in record['properties']: + code = str(record['properties']['组成编码']).strip() + + # 提取纯数字部分(去除可能的特殊字符) + code_digits = re.sub(r'[^\d]', '', code) + code_length = len(code_digits) + + # 根据位数判断type + if code_length in type_mapping: + expected_type = type_mapping[code_length] + current_type = record.get('type', '') + + if current_type != expected_type: + new_record['type'] = expected_type + stats['modified'] += 1 + print(f"【修正】{record['properties'].get('名称', '未知')}:{current_type} → {expected_type} (编码:{code})") + else: + stats['unchanged'] += 1 + else: + print(f"【警告】{record['properties'].get('名称', '未知')}:编码位数{code_length}不在映射范围内 (编码:{code})") + stats['unchanged'] += 1 + else: + stats['no_code'] += 1 + print(f"【跳过】{record.get('type', '未知')} - {record.get('properties', {}).get('名称', '未知')}:无组成编码字段") + + optimized_data.append(new_record) + + + return optimized_data + + + + +def is_fault_table_by_first_tr(table_body: str) -> bool: + if not isinstance(table_body, str): + return False + + # 非贪婪匹配第一个 ... + match = re.search(r']*>(.*?)', table_body, re.IGNORECASE | re.DOTALL) + if not match: + return False + + first_tr_html = match.group(1) + + # 提取所有 或 中的文本(简单去标签) + # 更健壮的做法是递归去除标签,但这里用正则足够 + text_in_first_tr = re.sub(r'<[^>]+>', '', first_tr_html) # 去除所有 HTML 标签 + + # 统一转为字符串并检查关键词 + text_lower = text_in_first_tr.lower() + keywords = ["故障现象", "故障原因", "维修项目"] + return all(kw in text_lower for kw in keywords) + + +def get_guzhang_chunk_bbox_and_removed_data(data): + title_keywords = {"故障"} # 可选:仍保留标题中有“故障”的约束 + results = [] + ids_to_remove = set() + record_map = {item["id"]: item for item in data} + + for ins in data: + if ins.get("type") == "table": + table_body = ins.get("table_body", "") + + # 核心判断:是否包含三个关键字段 + if is_fault_table_by_first_tr(table_body): + current_id = ins["id"] + + # 可选:向上找最近的标题(更智能),但若坚持用前3条也可保留 + # 这里先按你的原逻辑:取前3条 + 当前 + prev_ids = [current_id - 3, current_id - 2, current_id - 1] + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + return results, filtered_data + +async def openai_chat_aysnc(query: str, timeout: int = 180) -> str | None: + """异步调用 OpenAI 兼容 API(如本地部署的 Qwen、vLLM、Ollama 等)""" + try: + base_url = os.getenv("OPENAI_API_BASE", "http://192.168.0.46:59800/v1") + api_key = os.getenv("OPENAI_API_KEY", "none") + + client = AsyncOpenAI( + api_key=api_key, + base_url=base_url, + timeout=timeout # 整体请求超时(秒) + ) + + response = await client.chat.completions.create( + model="46-qwen3.6-35B", + messages=[ + {"role": "user", "content": query}, + ], + temperature=0.1, + stream=False, + response_format={"type": "json_object"}, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + + except Exception as e: + print(f"调用 OpenAI API 时出错: {e}") + return None + finally: + # 可选:显式关闭客户端(通常不需要,但可避免警告) + await client.close() + +async def extract_wxindextable(chunk): + final_prompt = prompt_extract_repair_node_rela.replace("text",chunk) + raw_response =await OpenaiAPI.openai_chat_aysnc(final_prompt,timeout=420) + + if raw_response is None: + print("⚠️ 切片 API 调用失败") + return None + + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + json_result = safe_json_loads(cleaned) + return json_result + except Exception as e: + print(f"⚠️ 切片 JSON 解析失败: {e}") + print(f"原始响应: {repr(raw_response[:500])}") + return None + + +def extract_text_from_first_tr(html: str) -> str: + """提取 HTML 表格中第一个 内的文本(去除标签)""" + # if not isinstance(html, str): + # return "" + # match = re.search(r']*>(.*?)', html, re.IGNORECASE | re.DOTALL) + # if not match: + # return "" + # first_tr_content = match.group(1) + # 去除所有 HTML 标签 + text = re.sub(r'<[^>]+>', '', html) + return text.strip() + + +def matches_any_pattern(text: str, patterns: List[List[str]]) -> bool: + """检查文本是否包含任意一组关键词(全部命中)""" + if not text: + return False + text_lower = text.lower() + for pattern in patterns: + if all(keyword in text_lower for keyword in pattern): + return True + return False + + +def is_maintenance_table(table_body: str, patterns: List[List[str]]) -> bool: + """判断是否为维修项目表格:仅检查第一个 是否匹配任一模式""" + first_tr_text = extract_text_from_first_tr(table_body) + return matches_any_pattern(first_tr_text, patterns) + + +# ============================== +# 维修项目表格的关键词模式(可按需扩展) +# ============================== + +MAINTENANCE_TABLE_PATTERNS: List[List[str]] = [ + ["维修项目编号", "组成编码", "名称", "维修项目", "维修间隔期"], + ["故障现象", "编码", "维修内容", "周期"], + ["序号", "维修项", "标准", "频次"], # 示例:可继续添加业务变体 + ["设备名称", "维修级别", "维修项目编号", "维修间隔期"], # 示例:可继续添加业务变体 + ["设备名称", "设备型号"], # 示例:可继续添加业务变体 + ["维修项", "组成编码", "名称", "维修项目", "维修间隔期"], # 示例:可继续添加业务变体 + +] + + +# ============================== +# 主函数:提取维修项目表格及其后续内容组 +# ============================== + +def extract_maintenance_groups_and_remaining( + records: List[Dict[str, Any]], + patterns: List[List[str]] = MAINTENANCE_TABLE_PATTERNS, + max_following_for_last: int | None = None +) -> Tuple[List[List[Dict]], List[Dict]]: + groups = [] + current_group = None + used_ids = set() + + # 标记是否已经遇到第一个维修表格(用于跳过) + skipped_first = False + + for record in records: + is_start = ( + record.get("type") == "table" and + is_maintenance_table(record.get("table_body", ""), patterns) + ) + + if is_start: + # 如果是第一个维修表,跳过(不加入 groups,也不标记 used_ids) + if not skipped_first: + skipped_first = True + # 注意:这里不清空 current_group,因为前面不可能有 group(第一个 start) + current_group = None # 确保不会把之前的非 start 内容误加 + continue # 跳过这个 record,不加入任何 group + + # 从第二个维修表开始,才正常分组 + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + current_group = [record] + else: + if current_group is not None: + current_group.append(record) + + # 处理最后一个 group(仅当有有效 group 时) + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + # 限制最后一个 group 长度 + if groups and max_following_for_last is not None: + last_group = groups[-1] + max_len = max_following_for_last + 1 + if len(last_group) > max_len: + truncated = last_group[:max_len] + removed_ids = {r["id"] for r in last_group[max_len:]} + used_ids -= removed_ids + groups[-1] = truncated + + # remaining_records 包含所有未被 used_ids 标记的记录 + # 由于第一个 group 没有加入 used_ids,所以会保留在 remaining_records 中 + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + + +FAULT_TABLE_KEYWORDS_wxsm = ["故障现象", "故障原因", "维修人数", "维修工具", "排除步骤"] + +def is_fault_table_wxsm(table_body: str) -> bool: + if not isinstance(table_body, str): + return False + return all(kw in table_body for kw in FAULT_TABLE_KEYWORDS_wxsm) + + +def extract_fault_groups_and_remaining_wxsm( + records: List[Dict[str, Any]], +) -> Tuple[List[List[Dict]], List[Dict]]: + groups = [] + current_group = None + used_ids = set() + + for record in records: + is_start = ( + record.get("type") == "table" and + is_fault_table_wxsm(record.get("table_body", "")) + ) + + if is_start: + # 遇到新的故障表,先保存上一组 + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + # 开启新组 + current_group = [record] + else: + # 非故障表,追加到当前组 + if current_group is not None: + current_group.append(record) + + # 处理最后一组 + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + +def format_compose_code(val): + """将 int/float 型组成编码转换为偶数位字符串,不足偶数位则前补 0""" + if pd.isna(val): + return None + # 统一处理 int 和 float + if isinstance(val, (int, float)): + s = str(int(val)) # 101 / 101.0 → '101' + if len(s) % 2 != 0: # 奇数位 → 前补 0 + s = '0' + s # '101' → '0101' + return s + return str(val) + # 已经是字符串则直接返回 + + +async def get_repair_node_relation(input_pdf_path, data, prefix_url="http://192.168.0.111:9085"): + # 1. 初始化数据 ID + for idx, item in enumerate(data, start=1): + item["id"] = idx + + # 2. 数据预处理:获取故障组 and 清洗数据 + guzhang_groups, cleaned_data = get_guzhang_chunk_bbox_and_removed_data(data) + groups_wxxm, remaining_records = extract_maintenance_groups_and_remaining(cleaned_data) + groups_wxsm, remaining_records_wxsm =extract_fault_groups_and_remaining_wxsm(remaining_records) # 可选:先抽取故障表,进一步清洗数据 + print(f"维修项目表格总数量: {len(groups_wxxm)}") + print(f"维修说明表格总数量: {len(groups_wxsm)}") + groups = groups_wxxm + groups_wxsm # 合并维修项目表和维修说明表的结果,后续一起处理 + all_entity_results = [] + all_relation_results = [] + + final_filename = None + final_url = None + + if not groups_wxxm: + print("未找到符合条件的维修项目组,跳过后续处理。") + else: + for i, repair_group in enumerate(groups_wxxm): + try: + + print(f"开始处理第 {i+1} 个维修项目表") + # 获取内容和高亮区域 + content, highlight_list = get_content_bbox(repair_group) + if not content: + print(f"第 {i+1} 组:内容为空,跳过") + continue + html_obj = StringIO(content) + df_list = pd.read_html(html_obj, header=0) + + if not df_list: + print(f" ⚠️ 第 {i+1} 组未解析到表格,跳过") + continue + + df = df_list[0] + + # 清洗数据:删除全为空的行 + df.dropna(how='all', inplace=True) + + # 格式化组成编码 + if '组成编码' in df.columns and pd.api.types.is_numeric_dtype(df['组成编码']): + df['组成编码'] = df['组成编码'].apply(format_compose_code) + + # 转换为 JSON 列表 + json_data = df.to_json(orient='records', force_ascii=False) + result_list = json.loads(json_data) + + wx_bianhao = result_list[0].get("维修项目编号") + wx_mingcheng = result_list[0].get("维修项目") + device_bianma = result_list[0].get("组成编码") + device_name = result_list[0].get("名称") + highlight_filename, most_common_page, filename = highlight_pdf_file(input_pdf_path, highlight_list) + url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + if not wx_bianhao or not wx_mingcheng or not device_bianma or not device_name: + print("html解析不成功,需要大模型進行抽取") + result = await extract_wxindextable(content) + if result is None: + continue + entities = result.get("entities", []) + + if not isinstance(entities, list): + print(f"第 {i+1} 组:entities 字段格式异常,跳过") + continue + + relationships = result.get("relationships", []) + # 更新全局文件信息 (用于最后创建手册节点) + + for entity in entities: + if entity['type'] == '维修项目': + entity["properties"]["内容"] = content + for entity in entities: + # 构造原始数据对象 (List of Dict) + source_data_list = [{ + "filename": filename, + "info": content, + "url": url + }] + + # 2. 【关键修改】将列表序列化为 JSON 字符串 + # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + + # 确保 properties 存在且是字典 + if "properties" not in entity or not isinstance(entity["properties"], dict): + entity["properties"] = {} + + # 3. 赋值字符串而不是对象列表 + entity["properties"]["knowledge_source"] = knowledge_source_str + all_entity_results.extend(entities) + all_relation_results.extend(relationships) + else: + source_data_list = [{ + "filename": filename, + "info": content, + "url":url + }] + + # 2. 【关键修改】将列表序列化为 JSON 字符串 + # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + wxentity = { + "type" : "维修项目", + "properties":{ + "名称" : wx_mingcheng, + "编号" : wx_bianhao, + "内容" : content, + "knowledge_source" :knowledge_source_str + } + } + deviceentity ={ + "type" : "设备", + "properties":{ + "名称" : device_name, + "组成编码" : device_bianma, + "维修项目名称" : wx_mingcheng, + "维修项目编号" : wx_bianhao, + "knowledge_source" :knowledge_source_str + } + } + all_entity_results.append(wxentity) + all_entity_results.append(deviceentity) + + except Exception as e: + print(f"处理第 {i+1} 组时发生未预期错误: {e}") + import traceback + traceback.print_exc() + continue + + if not groups_wxsm: + print("未找到符合条件的维修说明表,跳过后续处理。") + else: + for i, repair_group in enumerate(groups_wxsm): + try: + + print(f"开始处理第 {i+1} 个维修说明表") + # 获取内容和高亮区域 + content, highlight_list = get_content_bbox(repair_group) + if not content: + print(f"第 {i+1} 组:内容为空,跳过") + continue + html_obj = StringIO(content) + df_list = pd.read_html(html_obj, header=0) + + if not df_list: + print(f" ⚠️ 第 {i+1} 组未解析到表格,跳过") + continue + + df = df_list[0] + + # 清洗数据:删除全为空的行 + df.dropna(how='all', inplace=True) + + # 转换为 JSON 列表 + json_data = df.to_json(orient='records', force_ascii=False) + result_list = json.loads(json_data) + wx_bianhao = result_list[0].get("维修项目编号") + wx_mingcheng = result_list[0].get("维修项目") + highlight_filename, most_common_page, filename = highlight_pdf_file(input_pdf_path, highlight_list) + url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + if not wx_bianhao or not wx_mingcheng: + result = await extract_wxindextable(content) + if result is None: + continue + entities = result.get("entities", []) + + if not isinstance(entities, list): + print(f"第 {i+1} 组:entities 字段格式异常,跳过") + continue + + relationships = result.get("relationships", []) + # 更新全局文件信息 (用于最后创建手册节点) + + for entity in entities: + if entity['type'] == '维修项目': + entity["properties"]["内容"] = 'content' + for entity in entities: + # 构造原始数据对象 (List of Dict) + source_data_list = [{ + "filename": filename, + "info": content, + "url": url + }] + + # 2. 【关键修改】将列表序列化为 JSON 字符串 + # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + + # 确保 properties 存在且是字典 + if "properties" not in entity or not isinstance(entity["properties"], dict): + entity["properties"] = {} + + # 3. 赋值字符串而不是对象列表 + entity["properties"]["knowledge_source"] = knowledge_source_str + all_entity_results.extend(entities) + all_relation_results.extend(relationships) + else: + source_data_list = [{ + "filename": filename, + "info": content, + "url": url + }] + + # 2. 【关键修改】将列表序列化为 JSON 字符串 + # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + wxentity = { + "type" : "维修项目", + "properties":{ + "名称" : wx_mingcheng, + "编号" : wx_bianhao, + "内容" : content, + "knowledge_source" :knowledge_source_str + } + } + all_entity_results.append(wxentity) + + + except Exception as e: + print(f"处理第 {i+1} 组时发生未预期错误: {e}") + import traceback + traceback.print_exc() + continue + + + # if not groups: + # print("未找到符合条件的维修项目组,跳过后续处理。") + # else: + # # 3. 遍历每个维修项目组进行抽取 + # for i, repair_group in enumerate(groups): + # try: + # print(f"开始处理第 {i+1} 个维修项目表") + + # # 获取内容和高亮区域 + # content, highlight_list = get_content_bbox(repair_group) + # if not content: + # print(f"第 {i+1} 组:内容为空,跳过") + # continue + # result = await extract_wxindextable(content) + # # highlight_filename, most_common_page,filename = highlight_pdf_file(input_pdf_path,highlight_list) + # # url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + + # if result is None: + # continue + # entities = result.get("entities", []) + + # if not isinstance(entities, list): + # print(f"第 {i+1} 组:entities 字段格式异常,跳过") + # continue + + # relationships = result.get("relationships", []) + # highlight_filename, most_common_page, filename = highlight_pdf_file(input_pdf_path, highlight_list) + # url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + + # # 更新全局文件信息 (用于最后创建手册节点) + + # for entity in entities: + # if entity['type'] == '维修项目': + # entity["properties"]["内容"] = content + # for entity in entities: + # # 构造原始数据对象 (List of Dict) + # source_data_list = [{ + # "filename": filename, + # "info": content, + # "url": url + # }] + + # # 2. 【关键修改】将列表序列化为 JSON 字符串 + # # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + # knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + + # # 确保 properties 存在且是字典 + # if "properties" not in entity or not isinstance(entity["properties"], dict): + # entity["properties"] = {} + + # # 3. 赋值字符串而不是对象列表 + # entity["properties"]["knowledge_source"] = knowledge_source_str + # # 累积结果 + # all_entity_results.extend(entities) + # all_relation_results.extend(relationships) + + + # except Exception as e: + # print(f"处理第 {i+1} 组时发生未预期错误: {e}") + # import traceback + # traceback.print_exc() + # continue + # 5. 最终优化 + # all_entity_results = optimize_component_type(all_entity_results) + + return all_entity_results, all_relation_results + +""" +实体:设备、子设备、维修项目 +关系:设备-维修时使用-维修项目 +""" + +if __name__ == "__main__": + file_path = '/app/wxceshi/files/雷达/output/101-0440011-B04001_HLJP-349型跟踪雷达维修说明书-秘密_content_list.json' + input_pdf_path = "/app/wxceshi/files/雷达/101-0440011-B04001_HLJP-349型跟踪雷达维修说明书-秘密.pdf" + output_json_path = '/app/wxceshi/files/雷达/output/维修细目表抽取结果.json' + + try: + with open(file_path, 'r', encoding='utf-8') as file: + data = json.load(file) + except Exception as e: + print(f"读取 JSON 文件时出错:{e}") + data = [] + all_entity_results, all_relation_results = asyncio.run( + get_repair_node_relation(input_pdf_path, data=data) + ) + length_entity = len(all_entity_results) + length_relation = len(all_relation_results) + + print(f"抽取{length_entity}个实体,抽取{length_relation}个关系") + result = { + "entities": all_entity_results, + "relations": all_relation_results + } + for ins in all_entity_results: + print(ins) + print(11111111111111111) + + # 保存为 JSON 文件 + try: + with open(output_json_path, 'w', encoding='utf-8') as f: + json.dump(result, f, ensure_ascii=False, indent=4) + print(f"结果已保存至:{output_json_path}") + except Exception as e: + print(f"保存 JSON 文件时出错:{e}") + + + diff --git a/kg_build/extract_text.py b/kg_build/extract_text.py new file mode 100644 index 0000000..9169f70 --- /dev/null +++ b/kg_build/extract_text.py @@ -0,0 +1,338 @@ +import json +import fitz # PyMuPDF +import os +from collections import Counter +from kg_build.Prompt import Prompt_guzhang +from openai import OpenAI + + +def get_compose_chunk_bbox_and_removed_data(data): + """ + 返回: + - 符合条件的故障表分组(每组 [前前, 前, 当前]) + - 从原始 data 中移除了所有相关记录后的新 data 列表 + """ + title = "组成" + + # 支持多个 label 模式(可扩展) + labels = [ + '', + # 可在此添加更多变体,例如: + # '
序号组成部分功能数量
1
', + # '
序号故障现象故障原因维修项目
', + ] + + # 构建 id -> record 映射 + record_map = {item["id"]: item for item in data} + + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + # 检查 caption 是否包含 "故障表" + caption_has_title = any(title in caption for caption in ins.get("table_caption", [])) + + # 检查 body 是否匹配任意一个 label + body = ins.get("table_body", "") + body_matches_any_label = any(label in body for label in labels) + + if caption_has_title and body_matches_any_label: + current_id = ins["id"] + prev_ids = [current_id - 2, current_id - 1] + + # 收集要移除的 ID(前两条 + 当前) + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + + # 构建分组 + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + # 过滤原始 data + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + + return results, filtered_data + +def get_tujiecompose_chunk_bbox_and_removed_data(data): + """ + 返回: + - 符合条件的故障表分组(每组 [前前, 前, 当前]) + - 从原始 data 中移除了所有相关记录后的新 data 列表 + """ + title = "组成" + + # 支持多个 label 模式(可扩展) + labels = [ + '
序号故障现象故障原因维修项目
', + '
组成编码名称是否为关重件是否为寿命件
' + # 可在此添加更多变体,例如: + # '
序号组成部分功能数量
1
', + # '
序号故障现象故障原因维修项目
', + ] + + # 构建 id -> record 映射 + record_map = {item["id"]: item for item in data} + + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + # 检查 caption 是否包含 "故障表" + caption_has_title = any(title in caption for caption in ins.get("table_caption", [])) + + # 检查 body 是否匹配任意一个 label + body = ins.get("table_body", "") + body_matches_any_label = any(label in body for label in labels) + + if caption_has_title and body_matches_any_label: + current_id = ins["id"] + prev_ids = [current_id - 2, current_id - 1] + + # 收集要移除的 ID(前两条 + 当前) + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + + # 构建分组 + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + # 过滤原始 data + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + + return results, filtered_data + +def get_guzhang_chunk_bbox_and_removed_data(data): + title = "故障表" + label = "
序号故障现象故障原因维修项目
" + + record_map = {item["id"]: item for item in data} + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + caption_has_title = any(title in caption for caption in ins.get("table_caption", [])) + body_has_label = label in ins.get("table_body", "") + if caption_has_title and body_has_label: + current_id = ins["id"] + prev_ids = [current_id - 2, current_id - 1] + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + return results, filtered_data + + +START_MARKERS = [ + # 标准格式(带 rowspan/colspan) + "
序号故障现象故障原因维修项目
", + + # 可在此添加其他格式,例如: + # "
维修项目编号组成编码名称维修项目维修间隔期
", +] + +def extract_maintenance_groups_and_remaining(records, markers=START_MARKERS, max_following_for_last=None): + """ + 普通起始标记:组 = [start, ..., next_start - 1] + 最后一个起始标记:组 = [start, ..., start + max_following_for_last] (若指定) + """ + groups = [] + current_group = None + used_ids = set() + + for record in records: + body = record.get("table_body", "") + is_start = (record.get("type") == "table" and + any(marker in body for marker in markers)) + + if is_start: + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + current_group = [record] + else: + if current_group is not None: + # 如果指定了 max_following_for_last,且这是最后一个组(暂时不知道是不是最后一个) + # 我们无法在遍历时知道“这是不是最后一个起始标记” + # 所以更好的办法是:先按原逻辑分组,再处理最后一个组 + current_group.append(record) + + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + # —————— 关键:后处理最后一个组 —————— + if groups and max_following_for_last is not None: + last_group = groups[-1] + if len(last_group) > max_following_for_last + 1: # +1 包含起始记录 + truncated = last_group[:max_following_for_last + 1] + # 更新 used_ids:移除被截掉的 ID + removed_ids = {r["id"] for r in last_group[max_following_for_last + 1:]} + used_ids -= removed_ids + groups[-1] = truncated + + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + + +START_MARKERS_ope = [ + '
维修项目编号组成编码名称维修项目维修间隔期
', + '
项目编号操作项目
', + '
项目编号操作项目
' +] + +def extract_operation_groups_and_remaining(records, markers=START_MARKERS_ope, max_following_for_last=None): + """ + 普通起始标记:组 = [start, ..., next_start - 1] + 最后一个起始标记:组 = [start, ..., start + max_following_for_last] (若指定) + """ + groups = [] + current_group = None + used_ids = set() + + for record in records: + body = record.get("table_body", "") + is_start = (record.get("type") == "table" and + any(marker in body for marker in markers)) + + if is_start: + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + current_group = [record] + else: + if current_group is not None: + # 如果指定了 max_following_for_last,且这是最后一个组(暂时不知道是不是最后一个) + # 我们无法在遍历时知道“这是不是最后一个起始标记” + # 所以更好的办法是:先按原逻辑分组,再处理最后一个组 + current_group.append(record) + + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + # —————— 关键:后处理最后一个组 —————— + if groups and max_following_for_last is not None: + last_group = groups[-1] + if len(last_group) > max_following_for_last + 1: # +1 包含起始记录 + truncated = last_group[:max_following_for_last + 1] + # 更新 used_ids:移除被截掉的 ID + removed_ids = {r["id"] for r in last_group[max_following_for_last + 1:]} + used_ids -= removed_ids + groups[-1] = truncated + + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + + + +# def get_chunk_filter(data,max_length=7000): +# for idx, item in enumerate(data, start=1): +# item["id"] = idx +# groups, remaining_records_repair = extract_maintenance_groups_and_remaining(data) +# groups, remaining_records_operation = extract_operation_groups_and_remaining(remaining_records_repair) +# groups, remaining_records_compose = get_compose_chunk_bbox_and_removed_data(remaining_records_operation) +# groups, remaining_records_composetujie =get_tujiecompose_chunk_bbox_and_removed_data(remaining_records_compose) +# results, filtered_data=get_guzhang_chunk_bbox_and_removed_data(remaining_records_composetujie) +# res = filter_content_bbox(filtered_data,max_length=max_length) +# return res +def get_chunk_filter(data,max_length=10000): + """ + 将 data 中的 text/table/image 内容按字符长度分块(每块不超过 max_length), + 返回 [{"content": str, "highlight_list": list}, ...] + """ + chunks = [] + current_content = "" + current_highlight_list = [] + + def _flush_chunk(): + """内部函数:将当前内容打包进 chunks,并重置""" + if current_content or current_highlight_list: + chunks.append({ + "content": current_content, + "highlight_list": current_highlight_list.copy() + }) + + for ins in data: + if "type" not in ins: + continue + + added_content = "" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + + if ins["type"] == "text": + text_content = ins.get("text", "") + added_content = text_content + "\n" + + elif ins["type"] == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + + if isinstance(image_caption, list): + image_caption = "\n".join(str(item) for item in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + + if image_caption or img_path: + added_content = image_caption + "\n" + img_path + "\n" + else: + continue # 跳过空图像项 + else: + continue + + # 检查加上 added_content 后是否超限 + if len(current_content) + len(added_content) > max_length: + # 如果当前块非空,先 flush + if current_content: + _flush_chunk() + current_content = "" + current_highlight_list = [] + + # 如果单个 added_content 超过 max_length,仍需保留(避免丢弃) + if len(added_content) > max_length: + # 强制截断或直接放入(这里选择直接放入,避免信息丢失) + current_content = added_content[:max_length] + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + _flush_chunk() + # 剩余部分?此处简化处理:忽略超长部分(或可递归拆分,但复杂) + continue + else: + current_content = added_content + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + else: + current_content += added_content + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + + # 处理最后一块 + if current_content or current_highlight_list: + chunks.append({ + "content": current_content, + "highlight_list": current_highlight_list + }) + + return chunks + +# if __name__ == "__main__": +# file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/122-06A0014-B01001_发动机-维修手册_content_list.json' +# input_pdf_path = "/storage01/home/hdf/project/wxkgrag/kgextract/know/122-06A0014-B01001_发动机-维修手册_highlighted_fdb9e9db-98d2-4ef6-bc72-52f875453f85.pdf" +# try: +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) +# except Exception as e: +# print(f"读取 JSON 文件时出错:{e}") +# data = [] +# res = get_chunk_filter(data=data) +# for ins in res: +# print(ins) +# print(11111111111111111) + diff --git a/kg_build/extract_util.py b/kg_build/extract_util.py new file mode 100644 index 0000000..60e4631 --- /dev/null +++ b/kg_build/extract_util.py @@ -0,0 +1,516 @@ +import json +import fitz # PyMuPDF +import os +import fitz +from collections import Counter +import uuid +import re +import logging +# 配置 logger +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", + datefmt="%Y-%m-%d %H:%M:%S" +) +logger = logging.getLogger(__name__) +def safe_json_loads(s: str): + try: + return json.loads(s) + except json.JSONDecodeError as e: + # 尝试修复常见问题 + s = s.replace("\\n", "\\\n").replace("\r", "\\r").replace("\t", "\\t") + # 或者直接清理非法字符 + s = re.sub(r'[\x00-\x1f\x7f]', '', s) # 移除控制字符 + try: + return json.loads(s) + except: + raise e + +def highlight_pdf_file(input_pdf_path, highlights, color=(1, 1, 0)): + """ + 在单个 PDF 文件的多个位置添加高亮注释。 + 逻辑融合: + 1. 输入参数与保存路径遵循参考代码 B (输出到 /app/files/uploads_v1)。 + 2. 坐标处理遵循参考代码 A (假设 bbox 为 0-1000 归一化坐标,需转换为实际像素坐标)。 + 3. 返回值格式遵循参考代码 B (highlight_filename, most_common_page_1based, original_filename)。 + + :param input_pdf_path: 输入 PDF 文件路径(字符串) + :param highlights: 高亮区域列表,每个元素为 dict,格式: + {"page_idx": int, "bbox": [x0, y0, x1, y1]} + 注意:bbox 应为 0-1000 归一化坐标 + :param color: 高亮颜色,RGB 元组,范围 0~1,例如黄色 (1, 1, 0) + :return: tuple (highlight_filename: str, most_common_page: int or None, original_filename: str) + """ + unique_id = uuid.uuid4() + + # 调试打印 (参照参考代码 B) + print(input_pdf_path) + logger.info(input_pdf_path) + + if not highlights: + logger.info("⚠️ 无高亮区域,跳过处理。") + filename = os.path.basename(input_pdf_path) + return filename, None, filename + + # 提取所有有效的 page_idx 用于统计 + valid_page_indices = [] + + # 打开 PDF + try: + doc = fitz.open(input_pdf_path) + logger.info(f"已打开 PDF: {input_pdf_path}") + except Exception as e: + logger.info(f"❌ 无法打开 PDF: {e}") + filename = os.path.basename(input_pdf_path) + return filename, None, filename + #logger.info(f"打印高亮像素位置:{highlights}") + for item in highlights: + page_idx = item.get("page_idx") + bbox = item.get("bbox") + + # 基本校验 (参照参考代码 B) + if page_idx is None or bbox is None: + logger.info(f"⚠️ 跳过高亮项(缺少 page_idx 或 bbox): {item}") + continue + if not (0 <= page_idx < doc.page_count): + logger.info(f"⚠️ 页面索引 {page_idx} 超出范围(总页数: {doc.page_count}),跳过。") + continue + if len(bbox) != 4: + logger.info(f"⚠️ bbox 格式错误(需 [x0,y0,x1,y1]): {bbox},跳过。") + continue + + try: + + page = doc[page_idx] + + # --- 核心逻辑:坐标转换 (参照参考代码 A) --- + # 假设输入 bbox 是 0-1000 的归一化坐标 + page_rect = page.rect + page_width = page_rect.width + page_height = page_rect.height + #logger.info("222222222222222222") + + # 公式:实际坐标 = (归一化坐标 / 1000) * 页面实际尺寸 + x0 = (bbox[0] / 1000) * page_width + y0 = (bbox[1] / 1000) * page_height + x1 = (bbox[2] / 1000) * page_width + y1 = (bbox[3] / 1000) * page_height + + rect = fitz.Rect(x0, y0, x1, y1) + + # 添加高亮标注 + highlight_annot = page.add_highlight_annot(rect) + highlight_annot.set_colors(stroke=color) + highlight_annot.update() + + valid_page_indices.append(page_idx) # 记录成功处理的 page_idx + except Exception as e: + logger.info(f"❌ 在 page={page_idx}, bbox={bbox} 添加高亮失败: {e}") + + # 确定输出路径 (参照参考代码 B 的固定路径) + filename = os.path.basename(input_pdf_path) + base, ext = os.path.splitext(filename) + output_dir = "/app/files/uploads_v1" + + # 确保目录存在 + os.makedirs(output_dir, exist_ok=True) + + output_pdf_path = os.path.join(output_dir, f"{base}_{unique_id}{ext}") + highlight_filename = f"{base}_{unique_id}{ext}" + #logger.info(f"path为{output_pdf_path}") + # 保存 PDF (参照参考代码 B 的参数) + doc.save(output_pdf_path) + doc.close() + logger.info(f"✅ 高亮完成!已保存至: {output_pdf_path}") + + # 统计最常出现的 page_idx (参照参考代码 B 的逻辑,返回 1-based) + most_common_page = None + if valid_page_indices: + counter = Counter(valid_page_indices) + most_common_page_0based, _ = counter.most_common(1)[0] + most_common_page = most_common_page_0based + 1 # 转换为 1-based 页码 + + # 返回值格式:(highlight_filename, most_common_page, original_filename) + return highlight_filename, most_common_page, filename +def highlight_pdf_file1(input_pdf_path, highlights, color=(1, 1, 0)): + """ + 在单个 PDF 文件的多个位置添加高亮注释。 + 逻辑融合: + 1. 输入参数与保存路径遵循参考代码 B (输出到 /app/files/uploads_v1)。 + 2. 坐标处理遵循参考代码 A (假设 bbox 为 0-1000 归一化坐标,需转换为实际像素坐标)。 + 3. 返回值格式遵循参考代码 B (highlight_filename, most_common_page_1based, original_filename)。 + + :param input_pdf_path: 输入 PDF 文件路径(字符串) + :param highlights: 高亮区域列表,每个元素为 dict,格式: + {"page_idx": int, "bbox": [x0, y0, x1, y1]} + 注意:bbox 应为 0-1000 归一化坐标 + :param color: 高亮颜色,RGB 元组,范围 0~1,例如黄色 (1, 1, 0) + :return: tuple (highlight_filename: str, most_common_page: int or None, original_filename: str) + """ + unique_id = uuid.uuid4() + + # 调试打印 (参照参考代码 B) +# print(input_pdf_path) + logger.info(input_pdf_path) + + if not highlights: + logger.info("⚠️ 无高亮区域,跳过处理。") + filename = os.path.basename(input_pdf_path) + return filename, None, filename + + # 提取所有有效的 page_idx 用于统计 + valid_page_indices = [] + + # 打开 PDF + try: + doc = fitz.open(input_pdf_path) + logger.info(f"已打开 PDF: {input_pdf_path}") + except Exception as e: + logger.info(f"❌ 无法打开 PDF: {e}") + filename = os.path.basename(input_pdf_path) + return filename, None, filename + # logger.info(f"打印高亮像素位置:{highlights}") + for item in highlights: + page_idx = item.get("page_idx") + bbox = item.get("bbox") + + # 基本校验 (参照参考代码 B) + if page_idx is None or bbox is None: + logger.info(f"⚠️ 跳过高亮项(缺少 page_idx 或 bbox): {item}") + continue + if not (0 <= page_idx < doc.page_count): + logger.info(f"⚠️ 页面索引 {page_idx} 超出范围(总页数: {doc.page_count}),跳过。") + continue + if len(bbox) != 4: + logger.info(f"⚠️ bbox 格式错误(需 [x0,y0,x1,y1]): {bbox},跳过。") + continue + + try: + + page = doc[page_idx] + + # --- 核心逻辑:坐标转换 (参照参考代码 A) --- + # 假设输入 bbox 是 0-1000 的归一化坐标 + page_rect = page.rect + page_width = page_rect.width + page_height = page_rect.height + # logger.info("222222222222222222") + + # 公式:实际坐标 = (归一化坐标 / 1000) * 页面实际尺寸 + x0 = (bbox[0] / 1000) * page_width + y0 = (bbox[1] / 1000) * page_height + x1 = (bbox[2] / 1000) * page_width + y1 = (bbox[3] / 1000) * page_height + + rect = fitz.Rect(x0, y0, x1, y1) + + # 添加高亮标注 + highlight_annot = page.add_highlight_annot(rect) + highlight_annot.set_colors(stroke=color) + highlight_annot.update() + + valid_page_indices.append(page_idx) # 记录成功处理的 page_idx + except Exception as e: + logger.info(f"❌ 在 page={page_idx}, bbox={bbox} 添加高亮失败: {e}") + + # 确定输出路径 (参照参考代码 B 的固定路径) + filename = os.path.basename(input_pdf_path) + base, ext = os.path.splitext(filename) + output_dir = "/app/files/uploads_v1" + + # 确保目录存在 + os.makedirs(output_dir, exist_ok=True) + + output_pdf_path = os.path.join(output_dir, f"{base}_{unique_id}{ext}") + highlight_filename = f"{base}_{unique_id}{ext}" +# logger.info(f"path为{output_pdf_path}") + # 保存 PDF (参照参考代码 B 的参数) + doc.save(output_pdf_path) + doc.close() + logger.info(f"✅ 高亮完成!已保存至: {output_pdf_path}") + + # 统计最常出现的 page_idx (参照参考代码 B 的逻辑,返回 1-based) + most_common_page = None + if valid_page_indices: + counter = Counter(valid_page_indices) + most_common_page_0based, _ = counter.most_common(1)[0] + most_common_page = most_common_page_0based + 1 # 转换为 1-based 页码 + + # 返回值格式:(highlight_filename, most_common_page, original_filename) + return highlight_filename, most_common_page, filename + + + +def get_content_bbox(data): + content = "" + highlight_list = [] + for ins in data: + if "type" not in ins: + continue + + if ins["type"] == "text": + text_content = ins.get("text", "") + content += text_content + "\n" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + highlight_list.append({ + "page_idx": page_idx, + "bbox": bbox + }) + + elif ins["type"] == "table": + table_caption = ins.get("table_caption") + table_body = ins.get("table_body") + + # 处理 table_caption:可能是 list 或 str + caption_str = "" + if table_caption: + if isinstance(table_caption, list): + caption_str = "\n".join(str(c) for c in table_caption) + else: + caption_str = str(table_caption) + + content += caption_str + "\n" + (table_body or "") + "\n" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + highlight_list.append({ + "page_idx": page_idx, + "bbox": bbox + }) + + elif ins["type"] == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + + # 关键修复:处理 image_caption 可能是 list 的情况 + if isinstance(image_caption, list): + image_caption = "\n".join(str(item) for item in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + + if image_caption or img_path: + content += image_caption + "\n" + img_path + "\n" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + highlight_list.append({ + "page_idx": page_idx, + "bbox": bbox + }) + else: + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + highlight_list.append({ + "page_idx": page_idx, + "bbox": bbox + }) + + return content, highlight_list + +#获取指定表格过滤后的文本 +def filter_content_bbox(data, max_length=3000): + """ + 将 data 中的 text/table/image 内容按字符长度分块(每块不超过 max_length), + 返回 [{"content": str, "highlight_list": list}, ...] + """ + chunks = [] + current_content = "" + current_highlight_list = [] + + def _flush_chunk(): + """内部函数:将当前内容打包进 chunks,并重置""" + if current_content or current_highlight_list: + chunks.append({ + "content": current_content, + "highlight_list": current_highlight_list.copy() + }) + + for ins in data: + if "type" not in ins: + continue + + added_content = "" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1)+1 + + if ins["type"] == "text": + text_content = ins.get("text", "") + added_content = text_content + "\n" + + elif ins["type"] == "table": + table_caption = ins.get("table_caption") + table_body = ins.get("table_body") + + caption_str = "" + if table_caption: + if isinstance(table_caption, list): + caption_str = "\n".join(str(c) for c in table_caption) + else: + caption_str = str(table_caption) + + added_content = caption_str + "\n" + (table_body or "") + "\n" + + elif ins["type"] == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + + if isinstance(image_caption, list): + image_caption = "\n".join(str(item) for item in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + + if image_caption or img_path: + added_content = image_caption + "\n" + img_path + "\n" + else: + continue # 跳过空图像项 + else: + continue + + # 检查加上 added_content 后是否超限 + if len(current_content) + len(added_content) > max_length: + # 如果当前块非空,先 flush + if current_content: + _flush_chunk() + current_content = "" + current_highlight_list = [] + + # 如果单个 added_content 超过 max_length,仍需保留(避免丢弃) + if len(added_content) > max_length: + # 强制截断或直接放入(这里选择直接放入,避免信息丢失) + current_content = added_content[:max_length] + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + _flush_chunk() + # 剩余部分?此处简化处理:忽略超长部分(或可递归拆分,但复杂) + continue + else: + current_content = added_content + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + else: + current_content += added_content + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + + # 处理最后一块 + if current_content or current_highlight_list: + chunks.append({ + "content": current_content, + "highlight_list": current_highlight_list + }) + + return chunks + +import json + +def data_replace(data, host_ip: str,port:int): + """ + 遍历 data 列表,若元素包含 'img_path' 字段,则为其添加前缀。 + """ + for ins in data: + if isinstance(ins, dict) and "img_path" in ins: + # 原路径可能是相对路径,如 'images/xxx.jpg' + original_path = ins["img_path"] + # 拼接完整 URL + ins["img_path"] = f"http://{host_ip}:{port}/output/{original_path}" + # 可选:打印调试信息 + return data + +def get_most_common_page(highlights): + """从高亮列表计算最常出现的页码(1-based),不做任何文件 I/O""" + valid_page_indices = [ + item["page_idx"] for item in highlights + if item.get("page_idx") is not None + ] + if not valid_page_indices: + return None + counter = Counter(valid_page_indices) + most_common_0based, _ = counter.most_common(1)[0] + return most_common_0based + 1 + + +def highlight_pdf_file_batch(input_pdf_path, all_highlights, color=(1, 1, 0), output_filename=None): + """ + 批量高亮:将所有表格的高亮区域一次性写入 PDF,只打开/保存一次。 + + :param input_pdf_path: 原始 PDF 路径 + :param all_highlights: 合并后的所有高亮列表 List[{"page_idx": int, "bbox": [...]}] + :param output_filename: 可选,指定输出文件名(不含目录);不传则自动生成 + :return: (highlight_filename, filename) + """ + filename = os.path.basename(input_pdf_path) + if output_filename is None: + unique_id = uuid.uuid4() + base, ext = os.path.splitext(filename) + output_filename = f"{base}_{unique_id}{ext}" + + if not all_highlights: + return filename, filename + + try: + doc = fitz.open(input_pdf_path) + except Exception as e: + print(f"❌ 无法打开 PDF: {e}") + return filename, filename + + for item in all_highlights: + page_idx = item.get("page_idx") + bbox = item.get("bbox") + if page_idx is None or bbox is None: + continue + if not (0 <= page_idx < doc.page_count): + continue + if len(bbox) != 4: + continue + try: + page = doc[page_idx] + page_rect = page.rect + x0 = (bbox[0] / 1000) * page_rect.width + y0 = (bbox[1] / 1000) * page_rect.height + x1 = (bbox[2] / 1000) * page_rect.width + y1 = (bbox[3] / 1000) * page_rect.height + rect = fitz.Rect(x0, y0, x1, y1) + annot = page.add_highlight_annot(rect) + annot.set_colors(stroke=color) + annot.update() + except Exception as e: + print(f"❌ 添加高亮失败 page={page_idx}: {e}") + + output_dir = "/app/files/uploads_v1" + os.makedirs(output_dir, exist_ok=True) + highlight_filename = output_filename + output_pdf_path = os.path.join(output_dir, highlight_filename) + doc.save(output_pdf_path, garbage=3, deflate=True) + doc.close() + print(f"✅ 批量高亮完成,已保存至: {output_pdf_path}") + return highlight_filename, filename + + +if __name__ == "__main__": + data = [{'page_idx': 23, 'bbox': [186, 285, 472, 304]}, {'page_idx': 23, 'bbox': [137, 319, 860, 907]}] + path = "/app/parsefiles/163datawx/wxscbingxing/files1/163-0310004-C03001_052D驱逐舰电站用柴油机基地级修理手册-非密.pdf" + highlight_filename, most_common_page, filename = highlight_pdf_file(path,data) +# host_ip = "192.168.0.46" # 👈 替换为你实际的主机 IP 或域名 + +# file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/122-06A0014-B01001_发动机-维修手册_content_list.json' +# try: +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) +# except Exception as e: +# print(f"读取 JSON 文件时出错:{e}") +# data = [] + +# # 修改 img_path 字段 +# data_replace(data=data, host_ip=host_ip) + +# # 可选:保存回文件或打印验证 +# # 示例:打印所有包含 img_path 的项 +# for item in data: +# if "img_path" in item: +# print(item["img_path"]) diff --git a/kg_build/extract_wxanli_table.py b/kg_build/extract_wxanli_table.py new file mode 100644 index 0000000..757209a --- /dev/null +++ b/kg_build/extract_wxanli_table.py @@ -0,0 +1,263 @@ +import json +import fitz # PyMuPDF +import os +import fitz +from collections import Counter +import uuid +from openai import OpenAI +from kg_build.Prompt import Prompt_anli +from extract_util import safe_json_loads,highlight_pdf_file,get_content_bbox +from modelsAPI.model_api import OpenaiAPI + +# 指定 JSON 文件路径 +# file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/890DAA发动机装备故障案例_content_list.json' + +# try: +# # 打开并读取 JSON 文件 +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) + +# except Exception as e: +# print(f"发生未知错误:{e}") + + +# for idx, item in enumerate(data, start=1): +# item["id"] = idx +def extract_chunks_by_start_keywords(data, start_keywords): + """ + 通用版:根据多个起始关键词提取段落块。 + + 参数: + - data: List[dict],每项含 "id", "type", "text"(若 type=="text") + - start_keywords: List[str],如 ["一、故障现象", "二、原因分析"] + + 规则: + - 起始点:type == "text" 且 text.strip() in start_keywords + - 每个段落包含: + a) 起始点的前一条记录(id-1,如果存在) + b) 起始点本身 + c) 起始点之后的所有连续记录(任意 type),直到(但不包含)下一个起始关键词出现 + - 所有被选中的记录将从原始 data 中移除 + + 返回: + - groups: List[List[record]],每个 group 是一个完整段落(含前一条) + - filtered_data: 剩余未被移除的记录列表 + """ + if not data or not start_keywords: + return [], data + + # 构建 id -> record 映射 + record_map = {item["id"]: item for item in data} + max_id = max(record_map.keys()) + + # 第一步:找出所有起始关键词的位置(按 id 顺序) + start_keyword_set = set(kw.strip() for kw in start_keywords) + start_records = [] + + for item in data: + if item.get("type") == "text": + text_content = item.get("text", "").strip() + if text_content in start_keyword_set: + start_records.append(item) + + if not start_records: + return [], data + + # 按 id 排序(虽然 data 通常有序,但保险起见) + start_records.sort(key=lambda x: x["id"]) + + groups = [] + ids_to_remove = set() + + # 第二步:遍历每个起始点,构建段落 + for record in start_records: + start_id = record["id"] + group = [] + + # 1. 添加前一条记录(id-1) + prev_id = start_id - 1 + if prev_id >= 1 and prev_id in record_map: + group.append(record_map[prev_id]) + ids_to_remove.add(prev_id) + + # 2. 添加当前起始记录 + group.append(record) + ids_to_remove.add(start_id) + + # 3. 向后收集,直到遇到下一个起始关键词(不含) + next_id = start_id + 1 + while next_id <= max_id: + next_record = record_map.get(next_id) + if next_record is None: + break + + # 检查是否是任意一个起始关键词 + if (next_record.get("type") == "text" and + next_record.get("text", "").strip() in start_keyword_set): + break # 遇到下一个起始点,停止 + + group.append(next_record) + ids_to_remove.add(next_id) + next_id += 1 + + groups.append(group) + + # 第三步:过滤原始 data + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + + return groups, filtered_data + +# def openai_chat(query: str, model="Qwen3-32B"): +# """调用OpenAI API""" +# try: +# client = OpenAI( +# api_key="none", +# base_url="http://192.168.0.46:59800/v1" +# ) + +# response = client.chat.completions.create( +# model=model, +# messages=[ +# {"role": "user", "content": query}, +# ], +# temperature=0.1, +# stream=False, +# response_format={"type": "json_object"}, +# extra_body={"chat_template_kwargs": {"enable_thinking": False}} +# ) +# return response.choices[0].message.content +# except Exception as e: +# print(f"调用OpenAI API时出错: {e}") +# return None + +async def extract_wxanli(chunk): + """ + 成功时返回 {'entities': [...], 'relationships': [...]}, + 任何失败(超时、解析错、格式错)都返回 []。 + """ + final_prompt = Prompt_anli.replace("text", chunk) + raw_response =await OpenaiAPI.openai_chat_aysnc(final_prompt,timeout=600) + + # 如果模型没返回内容(如超时),直接返回 [] + if raw_response is None: + return [] + + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = safe_json_loads(cleaned) + + # 必须是 dict,且包含 entities 字段(且为 list) + if not isinstance(json_result, dict): + return [] + + entities = json_result.get("entities", []) + relationships = json_result.get("relationships", []) + + if not isinstance(entities, list) or not isinstance(relationships, list): + return [] + + # 返回标准结构 + return { + "entities": entities, + "relationships": relationships + } + + except Exception: + # 任何解析异常都返回 [] + return [] + +async def get_wxanli_node_relation(input_pdf_path,data,prefix_url = "http://192.168.0.46:59085"): + + filter = [ + "一、故障现象", + "单位:", + "故障名称:", + "一、基本情况", + "故障现象及原因:", + "故障名称:", + "实例故障" + ] + results, filtered_data = extract_chunks_by_start_keywords(data=data,start_keywords=filter) + if not results: + print("未找到符合条件的图解组成表格,跳过处理。") + all_entity_results,all_relation_results = [],[] + else: + all_entity_results = [] + all_relation_results = [] + + for i, compose in enumerate(results): + try: + print(f"开始处理第{i+1}个维修案例") + content, highlight_list = get_content_bbox(compose) + print("维修案例切片内容为:", content[:200]) + + result =await extract_wxanli(content) + + # 关键判断:只有 result 是 dict 才继续 + if not isinstance(result, dict): + print(f" ⚠️ 第 {i+1} 组:提取结果无效,跳过") + continue + + entities = result.get("entities", []) + relationships = result.get("relationships", []) + + # 添加 knowledge_source + highlight_filename, most_common_page,filename = highlight_pdf_file(input_pdf_path,highlight_list) + url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + # for entity in entities: + # knowledge_source = [{ + # "filename": filename, + # "info": content, + # "url": url + # }] + # if "properties" not in entity or not isinstance(entity["properties"], dict): + # entity["properties"] = {} + # entity["properties"]["knowledge_source"] = knowledge_source + for entity in entities: + # 构造原始数据对象 (List of Dict) + source_data_list = [{ + "filename": filename, + "info": content, + "url": url + }] + + # 2. 【关键修改】将列表序列化为 JSON 字符串 + # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + + # 确保 properties 存在且是字典 + if "properties" not in entity or not isinstance(entity["properties"], dict): + entity["properties"] = {} + + # 3. 赋值字符串而不是对象列表 + entity["properties"]["knowledge_source"] = knowledge_source_str + # 安全追加 + all_entity_results.extend(entities) + all_relation_results.extend(relationships) + + except Exception as e: + print(f" ❌ 处理第 {i+1} 组时发生未预期错误: {e}") + # 不 re-raise,继续下一轮 + continue + return all_entity_results,all_relation_results +# if __name__ == "__main__": +# file_path = '/app/files/890DAA发动机装备故障案例_content_list.json' +# input_pdf_path = "/app/files/890DAA发动机装备故障案例.pdf" + +# try: +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) +# except Exception as e: +# print(f"读取 JSON 文件时出错:{e}") +# data = [] +# all_entity_results,all_relation_results = get_wxanli_node_relation(input_pdf_path,data=data) +# length_entity = len(all_entity_results) +# length_relation = len(all_relation_results) + +# print(f"抽取{length_entity}个实体,抽取{length_relation}个关系") + diff --git a/kg_build/filter_node_relation.py b/kg_build/filter_node_relation.py new file mode 100644 index 0000000..29ac329 --- /dev/null +++ b/kg_build/filter_node_relation.py @@ -0,0 +1,1112 @@ +from neo4j import GraphDatabase +import json +import hashlib +import json +from collections import defaultdict +import json +import numpy as np +from sklearn.cluster import DBSCAN +from sklearn.preprocessing import normalize +from sklearn.metrics.pairwise import cosine_similarity +from collections import defaultdict +import copy +import json +from datetime import datetime, timezone +from typing import Dict, List, Optional, Tuple, Union +from neo4j import GraphDatabase +# from kgsave import MilitaryKnowledgeGraph +from neo4j import GraphDatabase +import json +import hashlib +import json +from collections import defaultdict +import json +import numpy as np +from sklearn.cluster import DBSCAN +from sklearn.preprocessing import normalize +from sklearn.metrics.pairwise import cosine_similarity +from collections import defaultdict +import copy +import json +from datetime import datetime, timezone +from typing import Dict, List, Optional, Tuple, Union +from neo4j import GraphDatabase +import json +from datetime import datetime, timezone +from typing import Dict, List, Optional, Tuple, Union +from neo4j import GraphDatabase + + + +class MilitaryKnowledgeGraph: + def __init__(self, uri: str, auth: Tuple[str, str], Ontology: List[str] = None): + """ + 初始化知识图谱 + + Args: + uri: Neo4j 数据库连接地址 + auth: 认证信息 (用户名, 密码) + Ontology: 节点类型列表,用于创建唯一性约束和类型校验 + """ + self.driver = GraphDatabase.driver(uri, auth=auth) + + # 默认节点类型 + self.Ontology = Ontology or ["舰艇", "系统", "子系统", "部件", "一级零部件", "二级零部件", "故障模式", "维修方案", "操作项目", "备品备件", "维修手册", "操作使用手册"] + + self._setup_constraints() + + def close(self): + """关闭数据库连接""" + self.driver.close() + + def _setup_constraints(self): + """为每个节点类型设置 名称 字段的唯一性约束""" + with self.driver.session() as session: + for node_type in self.Ontology: + try: + session.run(f"CREATE CONSTRAINT IF NOT EXISTS FOR (n:{node_type}) REQUIRE n.名称 IS UNIQUE") + except Exception as e: + print(f"创建约束失败 {node_type}: {e}") + + def construct_fact(self, from_name: str, to_name: str, rel_type: str, attributes: Dict) -> str: + """构造关系的自然语言描述(fact)""" + attr_str = ", ".join([f"{k}:{v}" for k, v in attributes.items() if v]) + if attr_str: + return f"{from_name} {rel_type} {to_name},{attr_str}" + else: + return f"{from_name} {rel_type} {to_name}" + + # def _resolve_attribute_conflicts(self, existing_attrs: Dict, new_attrs: Dict) -> Dict: + # """解决属性冲突(保留最新状态、最早开始时间、最晚结束时间等)""" + # resolved = existing_attrs.copy() + # current_time = datetime.now(timezone.utc).isoformat() + + # for key, new_value in new_attrs.items(): + # if new_value is None or new_value == "": + # continue + + # if key not in existing_attrs: + # resolved[key] = new_value + # elif existing_attrs[key] != new_value: + # if key in ["当前状态", "执行状态", "完成状态"]: + # resolved[key] = new_value + # elif key in ["开始时间", "下达时间", "承担时间"]: + # if new_value < existing_attrs[key]: + # resolved[key] = new_value + # elif key in ["结束时间", "执行时限"]: + # if new_value > existing_attrs[key]: + # resolved[key] = new_value + # else: + # resolved[key] = new_value + # if f"{key}_history" not in resolved: + # resolved[f"{key}_history"] = [] + # resolved[f"{key}_history"].append({ + # "previous_value": existing_attrs[key], + # "new_value": new_value, + # "update_time": current_time + # }) + + # return resolved + def _resolve_attribute_conflicts(self, existing_attrs: Dict, new_attrs: Dict) -> Dict: + resolved = existing_attrs.copy() + current_time = datetime.now(timezone.utc).isoformat() + + for key, new_value in new_attrs.items(): + if new_value is None or new_value == "": + continue + + if key not in existing_attrs: + resolved[key] = new_value + elif existing_attrs[key] != new_value: + if key in ["当前状态", "执行状态", "完成状态"]: + resolved[key] = new_value + elif key in ["开始时间", "下达时间", "承担时间"]: + if new_value < existing_attrs[key]: + resolved[key] = new_value + elif key in ["结束时间", "执行时限"]: + if new_value > existing_attrs[key]: + resolved[key] = new_value + else: + resolved[key] = new_value + history_key = f"{key}_history" + + # ✅ 防御:确保 history 字段始终是列表 + if history_key not in resolved: + resolved[history_key] = [] + elif isinstance(resolved[history_key], str): + # 兼容旧数据:JSON字符串 → list + try: + parsed = json.loads(resolved[history_key]) + resolved[history_key] = parsed if isinstance(parsed, list) else [resolved[history_key]] + except (json.JSONDecodeError, TypeError): + resolved[history_key] = [resolved[history_key]] + + # ✅ 序列化为 JSON 字符串存储(避免 Neo4j Map 类型报错) + history_entry = json.dumps({ + "previous_value": existing_attrs[key], + "new_value": new_value, + "update_time": current_time + }, ensure_ascii=False) + resolved[history_key].append(history_entry) + + return resolved + def _create_relationship_with_timeline(self, tx, from_name: str, to_name: str, + rel_type: str, attributes: Dict) -> bool: + """创建或更新带有时间线的关系""" + current_time = datetime.now(timezone.utc).isoformat() + clean_attributes = {k: v for k, v in attributes.items() if v is not None and v != ""} + + fact = self.construct_fact(from_name, to_name, rel_type, attributes) + clean_attributes["fact"] = fact + + existing_rel = tx.run(""" + MATCH (a {名称: $from_name})-[r]->(b {名称: $to_name}) + WHERE type(r) = $rel_type + RETURN r, properties(r) as props + """, from_name=from_name, to_name=to_name, rel_type=rel_type).single() + + if existing_rel: + existing_props = existing_rel["props"] + updated_props = existing_props.copy() + + for key, new_value in clean_attributes.items(): + if key == "fact": + continue + if key not in existing_props or existing_props[key] != new_value: + timeline_key = f"{key}_timeline" + if timeline_key not in updated_props: + updated_props[timeline_key] = [] + + timeline_entry_dict = { + "value": new_value, + "timestamp": current_time, + "source": "text_extraction" + } + if key in existing_props: + timeline_entry_dict["previous_value"] = existing_props[key] + + timeline_entry_str = json.dumps(timeline_entry_dict, ensure_ascii=False) + updated_props[timeline_key].append(timeline_entry_str) + updated_props[key] = new_value + + if "fact" in clean_attributes: + fact_timeline_key = "fact_timeline" + if fact_timeline_key not in updated_props: + updated_props[fact_timeline_key] = [] + + fact_entry_str = json.dumps({ + "value": clean_attributes["fact"], + "timestamp": current_time, + "source": "text_extraction" + }, ensure_ascii=False) + updated_props[fact_timeline_key].append(fact_entry_str) + updated_props["fact"] = clean_attributes["fact"] + + updated_props["last_updated"] = current_time + + query = f""" + MATCH (a {{名称: $from_name}})-[r:{rel_type}]->(b {{名称: $to_name}}) + SET r = $properties + RETURN r + """ + tx.run(query, from_name=from_name, to_name=to_name, properties=updated_props) + print(f"更新关系: {from_name} -[{rel_type}]-> {to_name}") + + else: + relationship_props = clean_attributes.copy() + + for key, value in clean_attributes.items(): + timeline_key = f"{key}_timeline" + timeline_entry_dict = { + "value": value, + "timestamp": current_time, + "source": "text_extraction" + } + timeline_entry_str = json.dumps(timeline_entry_dict, ensure_ascii=False) + relationship_props[timeline_key] = [timeline_entry_str] + + relationship_props["created_at"] = current_time + relationship_props["last_updated"] = current_time + relationship_props["update_count"] = 1 + + query = f""" + MATCH (a {{名称: $from_name}}), (b {{名称: $to_name}}) + CREATE (a)-[r:{rel_type} $properties]->(b) + RETURN r + """ + tx.run(query, from_name=from_name, to_name=to_name, properties=relationship_props) + print(f"创建关系: {from_name} -[{rel_type}]-> {to_name}") + + return True + + def _create_or_update_node(self, tx, node_type: str, 名称: str, attributes: Dict) -> bool: + """ + 创建或更新节点,支持 knowledge_source 等复杂字段 + + Args: + tx: Neo4j 事务对象 + node_type: 节点类型 + 名称: 节点名称(唯一标识) + attributes: 节点属性字典 + """ + if not 名称 or not node_type: + return False + + # 安全校验:只允许预定义的节点类型 + if node_type not in self.Ontology: + print(f"跳过未知节点类型: {node_type}") + return False + + # 预处理 attributes:将 knowledge_source 转为 JSON 字符串 + clean_attributes = {"名称": 名称} # 确保名称字段存在 + for k, v in attributes.items(): + if v is None or v == "": + continue + if k == "knowledge_source" and isinstance(v, list): + clean_attributes[k] = json.dumps(v, ensure_ascii=False) + else: + clean_attributes[k] = v + + existing_node = tx.run( + f"MATCH (n:{node_type} {{名称: $名称}}) RETURN n, properties(n) as props", + 名称=名称 + ).single() + + current_time = datetime.now(timezone.utc).isoformat() + + if existing_node: + existing_props = existing_node["props"] + existing_attrs = {k: v for k, v in existing_props.items() + if not k.endswith('_timeline') and k not in ['created_at', 'last_updated']} + + resolved_attributes = self._resolve_attribute_conflicts(existing_attrs, clean_attributes) + + timeline_data = {k: v for k, v in existing_props.items() + if k.endswith('_timeline') or k in ['created_at', 'last_updated']} + + final_attributes = {**timeline_data, **resolved_attributes} + final_attributes["last_updated"] = current_time + + query = f""" + MATCH (n:{node_type} {{名称: $名称}}) + SET n = $attributes + RETURN n + """ + tx.run(query, 名称=名称, attributes=final_attributes) + print(f"更新节点: {node_type} - {名称}") + else: + clean_attributes["created_at"] = current_time + clean_attributes["last_updated"] = current_time + + query = f""" + CREATE (n:{node_type} $attributes) + RETURN n + """ + tx.run(query, attributes=clean_attributes) + print(f"创建节点: {node_type} - {名称}") + + return True + + def process_data(self, data: Dict) -> Tuple[int, int]: + """ + 处理字典数据并写入Neo4j + + Args: + data: 包含 entities 和 relationships 的字典 + + Returns: + Tuple[int, int]: (实体数量, 关系数量) + """ + if not data or not isinstance(data, dict): + print("无效的数据格式,需要字典类型") + return 0, 0 + + entity_count = 0 + relationship_count = 0 + + with self.driver.session() as session: + # 创建/更新实体节点 + for entity in data.get("entities", []): + try: + # 提取 properties,并注入 knowledge_source(如果存在) + props = entity.get("properties", {}).copy() + if "knowledge_source" in entity: + props["knowledge_source"] = entity["knowledge_source"] + + # 从 properties 中提取名称 + 名称 = props.pop("名称", None) + if not 名称: + print(f"跳过无名称节点: {entity}") + continue + + success = session.execute_write( + self._create_or_update_node, + entity["type"], + 名称, + props + ) + if success: + entity_count += 1 + except Exception as e: + print(f"处理节点失败: {entity}, 错误: {e}") + + # 创建/更新关系 + for relationship in data.get("relationships", []): + try: + success = session.execute_write( + self._create_relationship_with_timeline, + relationship["from_entity"], + relationship["to_entity"], + relationship["type"], + relationship.get("properties", {}) + ) + if success: + relationship_count += 1 + except Exception as e: + print(f"处理关系失败: {relationship}, 错误: {e}") + + print(f"成功处理 {entity_count} 个节点和 {relationship_count} 个关系") + return entity_count, relationship_count + + def get_relationship_history(self, from_name: str, to_name: str, rel_type: str) -> Optional[Dict]: + """获取关系的完整历史记录""" + with self.driver.session() as session: + result = session.run(""" + MATCH (a {名称: $from_name})-[r]->(b {名称: $to_name}) + WHERE type(r) = $rel_type + RETURN properties(r) as props + """, from_name=from_name, to_name=to_name, rel_type=rel_type) + + record = result.single() + return record["props"] if record else None + + def get_property_timeline(self, from_name: str, to_name: str, rel_type: str, + property_name: str) -> Optional[List]: + """获取特定属性的时间线(返回字符串列表,需 json.loads 解析)""" + history = self.get_relationship_history(from_name, to_name, rel_type) + if history: + return history.get(f"{property_name}_timeline", []) + return None + + def clear_database(self): + """清空数据库(谨慎使用)""" + with self.driver.session() as session: + session.run("MATCH (n) DETACH DELETE n") + print("数据库已清空") + +# def merge_records(record_list): +# grouped = defaultdict(list) + +# for record in record_list: +# key = (record['type'], record['properties']['名称']) +# grouped[key].append(record) + +# merged_list = [] + +# for key, group in grouped.items(): +# if len(group) == 1: +# merged_list.append(group[0]) +# else: +# base = group[0].copy() +# props_merged = base['properties'].copy() +# ks_set = set() + +# for rec in group: +# try: +# ks_value = rec['properties']['knowledge_source'] +# # 🔧 修复:处理不同类型的 knowledge_source +# if isinstance(ks_value, list): +# ks_list = ks_value +# elif isinstance(ks_value, str): +# ks_list = json.loads(ks_value) +# else: +# ks_list = [] + +# for item in ks_list: +# ks_set.add(json.dumps(item, sort_keys=True, ensure_ascii=False)) +# except (json.JSONDecodeError, KeyError, TypeError): +# pass + +# for k, v in rec['properties'].items(): +# if k != 'knowledge_source': +# if props_merged.get(k) in ("", "香", None) and v not in ("", "香", None): +# props_merged[k] = v +# elif k not in props_merged: +# props_merged[k] = v + +# merged_ks = [json.loads(s) for s in ks_set] +# props_merged['knowledge_source'] = json.dumps(merged_ks, ensure_ascii=False) + +# base['properties'] = props_merged +# merged_list.append(base) + +# return merged_list +def merge_records(record_list): + grouped = defaultdict(list) + + for record in record_list: + # 1. 安全获取 type 和 名称,确保它们是字符串(可哈希) + node_type = record.get('type', 'Unknown') + if isinstance(node_type, list): + node_type = node_type[0] if node_type else 'Unknown' + node_type = str(node_type) # 强制转为字符串 + + # 获取名称字段 + raw_name = record.get('properties', {}).get('名称') + + # 2. 处理名称可能是列表的情况 (修复 unhashable type: 'list') + if isinstance(raw_name, list): + if len(raw_name) > 0: + node_name = raw_name[0] + else: + node_name = "Unnamed_Node" + elif raw_name is None or raw_name == "": + node_name = "Unnamed_Node" + else: + node_name = raw_name + + # 确保最终是字符串 + node_name = str(node_name) + + # 3. 现在 key 肯定是可哈希的 (str, str) + key = (node_type, node_name) + + grouped[key].append(record) + + merged_list = [] + + for key, group in grouped.items(): + if len(group) == 1: + merged_list.append(group[0]) + else: + base = group[0].copy() + # 深度复制 properties 以防修改影响原数据 + props_merged = copy.deepcopy(base['properties']) + + # 修正:确保合并后的名称是字符串,而不是列表 + if isinstance(props_merged.get('名称'), list): + props_merged['名称'] = props_merged['名称'][0] if props_merged['名称'] else key[1] + + ks_set = set() + + for rec in group: + try: + ks_value = rec['properties'].get('knowledge_source') + # 处理不同类型的 knowledge_source + if isinstance(ks_value, list): + ks_list = ks_value + elif isinstance(ks_value, str): + try: + parsed = json.loads(ks_value) + ks_list = parsed if isinstance(parsed, list) else [parsed] + except (json.JSONDecodeError, TypeError): + ks_list = [ks_value] if ks_value else [] + else: + ks_list = [] + + for item in ks_list: + if isinstance(item, dict): + # 使用 sort_keys 确保字典顺序不影响去重 + ks_set.add(json.dumps(item, sort_keys=True, ensure_ascii=False)) + else: + ks_set.add(str(item)) + except Exception as e: + print(f"解析 knowledge_source 失败: {e}") + pass + + # 合并其他属性 + for k, v in rec['properties'].items(): + if k == 'knowledge_source': + continue + + # 跳过名称字段的重复合并,保持上面处理过的字符串 + if k == '名称': + continue + + current_val = props_merged.get(k) + + # 如果当前值是空或无效值,直接替换 + if current_val in ("", "香", None, []): + props_merged[k] = v + # 如果新值有效且当前值不同,且当前没值,则填入 + elif k not in props_merged: + props_merged[k] = v + # 如果双方都有值且不同,可以考虑保留非空值或转为列表(视需求而定,这里保持简单覆盖或忽略) + elif current_val != v and v not in ("", "香", None): + # 策略:如果现有值是“香”或空,替换;否则保留现有值(避免冲突) + if current_val in ("", "香"): + props_merged[k] = v + + # 处理 knowledge_source 的最终合并 + if ks_set: + merged_ks = [] + for s in ks_set: + try: + # 尝试还原为对象 + obj = json.loads(s) + merged_ks.append(obj) + except: + merged_ks.append(s) + + # 存回为 JSON 字符串 + props_merged['knowledge_source'] = json.dumps(merged_ks, ensure_ascii=False) + else: + # 如果没有提取到有效的 KS,保留原有的或设为空列表字符串 + if 'knowledge_source' not in props_merged: + props_merged['knowledge_source'] = "[]" + + base['properties'] = props_merged + merged_list.append(base) + + return merged_list + + +def fetch_all_nodes_and_rels(tx): + query = """ + MATCH (n) + OPTIONAL MATCH (n)-[r]->() + WITH + collect(DISTINCT { + id: toString(id(n)), + labels: labels(n), + properties: properties(n) + }) AS nodes, + collect(DISTINCT r) AS rels + UNWIND rels AS r + WITH nodes, r + WHERE r IS NOT NULL + RETURN + nodes, + collect({ + id: toString(id(r)), + source: toString(id(startNode(r))), + target: toString(id(endNode(r))), + type: type(r), + properties: properties(r) + }) AS relationships + """ + result = tx.run(query) + record = result.single() + if record: + return record["nodes"], record["relationships"] + else: + return [], [] + + +#从已有数据库导出已存在的关系 +def reconstruct_relationships(entities, relationships): + # 构建 id -> entity 的映射字典 + entity_map = {entity["id"]: entity for entity in entities} + + reconstructed_rela = [] + for rel in relationships: + source_id = rel.get("source") + target_id = rel.get("target") + rel_type = rel.get("type") + + # 检查 source 和 target 是否存在 + source_entity = entity_map.get(source_id) + target_entity = entity_map.get(target_id) + + if not source_entity or not target_entity: + continue # 跳过任一实体缺失的关系 + + # 安全获取“名称”字段(注意:根据你的数据,“名称”在顶层,不在 properties 中!) + from_name = source_entity["properties"].get("名称") + to_name = target_entity["properties"].get("名称") + + # 如果任一名称缺失,也跳过 + if from_name is None or to_name is None: + continue + + # 构建新关系 + reconstructed_rela.append({ + "type": rel_type, + "from_entity": from_name, + "to_entity": to_name + }) + + return reconstructed_rela + +def reconstruct_entities(entities): + # 要排除的字段(无论在顶层还是 properties 内部) + excluded_keys = {"last_updated", "fulltext", "created_at"} + + reconstructed_rela = [] + for entity in entities: + labels = entity.get("labels") + if not isinstance(labels, list) or len(labels) == 0: + continue + + entity_type = labels[0] + + # 合并顶层字段 + properties 内部字段 + combined_props = {} + + # 添加顶层字段(除了 id, labels, 和可能存在的 properties) + for k, v in entity.items(): + if k in ("id", "labels", "properties"): + continue + combined_props[k] = v + + # 添加 properties 内部字段(如果存在) + inner_props = entity.get("properties", {}) + if isinstance(inner_props, dict): + for k, v in inner_props.items(): + combined_props[k] = v + + # 剔除不需要的字段 + filtered_props = { + k: v for k, v in combined_props.items() + if k not in excluded_keys + } + + # 只有当 properties 非空时才保留(可选) + if not filtered_props: + continue + + reconstructed_rela.append({ + "type": entity_type, + "properties": filtered_props + }) + + return reconstructed_rela +def deduplicate_relations(relations): + seen = set() + unique_relations = [] + for rel in relations: + # 构造唯一键(必须是可哈希的) + key = (rel["type"], rel["from_entity"], rel["to_entity"]) + if key not in seen: + seen.add(key) + unique_relations.append(rel) + return unique_relations + +def parse_knowledge_source(ks) -> list: + if ks is None or ks == "" or ks == []: + return [] + if isinstance(ks, list): + result = [] + for item in ks: + if isinstance(item, dict): + result.append(item) + elif isinstance(item, str): + try: + parsed = json.loads(item) + if isinstance(parsed, list): + result.extend(parsed) + elif isinstance(parsed, dict): + result.append(parsed) + except (json.JSONDecodeError, TypeError): + pass + return result + if isinstance(ks, str): + try: + parsed = json.loads(ks) + if isinstance(parsed, list): + return parsed + if isinstance(parsed, dict): + return [parsed] + except (json.JSONDecodeError, TypeError): + pass + return [] + + +def merge_knowledge_source(master_ks, slave_ks) -> list: + master_list = parse_knowledge_source(master_ks) + slave_list = parse_knowledge_source(slave_ks) + seen = {(item.get("filename", ""), item.get("url", "")) for item in master_list} + for item in slave_list: + key = (item.get("filename", ""), item.get("url", "")) + if key not in seen: + master_list.append(item) + seen.add(key) + return master_list + + +# ============================================================ +# Step 1: 加载数据 +# ============================================================ +def load_data(path: str): + with open(path, "r", encoding="utf-8") as f: + data = json.load(f) + entities = data["entities"] + relationships = data.get("relationships", []) + print(f"[Step 1] 共加载 {len(entities)} 个实体," + f"Embedding 维度: {np.array(entities[0]['properties']['embedding']).shape[0]}," + f"{len(relationships)} 条关系") + return data, entities, relationships + + +# ============================================================ +# Step 2: DBSCAN 聚类(仅用于目标类型) +# ============================================================ +def cluster_entities(entities: list, eps: float, min_samples: int) -> np.ndarray: + embeddings = np.array([e["properties"]["embedding"] for e in entities], dtype=np.float32) + embeddings_norm = normalize(embeddings, norm="l2") + labels = DBSCAN( + eps=eps, + min_samples=min_samples, + metric="cosine", + algorithm="brute", + n_jobs=-1 + ).fit_predict(embeddings_norm) + n_clusters = len(set(labels)) - (1 if -1 in labels else 0) + print(f"[Step 2] DBSCAN 聚类完成,共发现 {n_clusters} 个簇(eps={eps})") + return labels + + +# ============================================================ +# Step 3: 属性合并(单对主从) +# ============================================================ +PROTECTED_KEYS = {"名称", "型号", "组成编码"} + +def merge_properties(master: dict, slave: dict) -> list: + changes = [] + + for key, val in slave["properties"].items(): + if key == "embedding": + continue + + if key == "knowledge_source": + master_ks = master["properties"].get("knowledge_source") + merged_ks = merge_knowledge_source(master_ks, val) + master["properties"]["knowledge_source"] = json.dumps(merged_ks, ensure_ascii=False) + changes.append(f"knowledge_source extend {len(merged_ks)} items") + continue + + if key in PROTECTED_KEYS: + continue + + existing = master["properties"].get(key) + if existing in (None, "", []): + master["properties"][key] = val + changes.append(f"{key}={val}") + elif val not in (None, "", []) and existing != val: + merged = existing if isinstance(existing, list) else [existing] + for item in (val if isinstance(val, list) else [val]): + if item not in merged: + merged.append(item) + master["properties"][key] = merged + changes.append(f"{key} merged={merged}") + + return changes + + +# ============================================================ +# 辅助:从一组实体中选主实体 +# 优先有"组成编码",其次属性最丰富 +# ============================================================ +def pick_master(indices: list, entities: list) -> int: + master_idx = next( + (idx for idx in indices if entities[idx]["properties"].get("组成编码")), + None + ) + if master_idx is None: + master_idx = max( + indices, + key=lambda idx: sum( + 1 for k, v in entities[idx]["properties"].items() + if k != "embedding" and v not in (None, "", []) + ) + ) + return master_idx + + +# ============================================================ +# Step 4: 目标类型实体合并 +# 规则:余弦相似度 >= NAME_SIM_THRESH 即合并(不要求名称一致) +# ============================================================ +def merge_target_entities( + entities: list, + labels: np.ndarray, + target_types: set, + sim_thresh: float, +) -> tuple: + + clusters = defaultdict(list) + for idx, label in enumerate(labels): + clusters[label].append(idx) + + to_delete: set = set() + name_remap: dict = {} + merge_log: list = [] + + for label, indices in clusters.items(): + if label == -1 or len(indices) <= 1: + continue + + target_indices = [idx for idx in indices if entities[idx]["type"] in target_types] + if len(target_indices) <= 1: + continue + + # Union-Find:相似度 >= sim_thresh 则合并 + parent = {idx: idx for idx in target_indices} + + def find(x): + while parent[x] != x: + parent[x] = parent[parent[x]] + x = parent[x] + return x + + def union(x, y): + parent[find(x)] = find(y) + + for i in range(len(target_indices)): + for j in range(i + 1, len(target_indices)): + ei = entities[target_indices[i]] + ej = entities[target_indices[j]] + emb_i = np.array(ei["properties"]["embedding"], dtype=np.float32).reshape(1, -1) + emb_j = np.array(ej["properties"]["embedding"], dtype=np.float32).reshape(1, -1) + sim = cosine_similarity(emb_i, emb_j)[0][0] + if sim >= sim_thresh: + union(target_indices[i], target_indices[j]) + + groups = defaultdict(list) + for idx in target_indices: + groups[find(idx)].append(idx) + + for root, group_indices in groups.items(): + if len(group_indices) <= 1: + continue + + master_idx = pick_master(group_indices, entities) + master = entities[master_idx] + master_name = master["properties"]["名称"] + if isinstance(master_name, list): + master_name = master_name[0] if master_name else "" + master["properties"]["名称"] = master_name + + slave_indices = [idx for idx in group_indices if idx != master_idx] + log_entry = { + "阶段": "目标类型合并", + "簇ID": label, "名称": master_name, + "主实体类型": master["type"], + "被合并实体": [], "新增属性": [] + } + + for s_idx in slave_indices: + slave = entities[s_idx] + slave_name = slave["properties"].get("名称", "") + if isinstance(slave_name, list): + slave_name = slave_name[0] if slave_name else "" + + log_entry["被合并实体"].append({ + "类型": slave["type"], + "原属性": copy.deepcopy(slave["properties"]) + }) + + if slave_name and slave_name != master_name: + name_remap[slave_name] = master_name + + changes = merge_properties(master, slave) + log_entry["新增属性"].extend(changes) + to_delete.add(s_idx) + + merge_log.append(log_entry) + + print(f"[Step 4] 目标类型合并:{len(merge_log)} 组合并," + f"删除 {len(to_delete)} 个从实体,名称映射 {len(name_remap)} 条") + return to_delete, name_remap, merge_log + + +# ============================================================ +# Step 5: 非目标类型实体合并 +# 规则:type 与 name(名称)字段值完全一致才合并 +# 全局遍历,不依赖 DBSCAN 簇 +# ============================================================ +def merge_other_entities( + entities: list, + target_types: set, + existing_to_delete: set, +) -> tuple: + + # 按 (type, name) 分组,跳过目标类型和已被删除的实体 + groups: dict = defaultdict(list) + for idx, e in enumerate(entities): + if idx in existing_to_delete: + continue + if e["type"] in target_types: + continue + name = e["properties"].get("名称", "") + if isinstance(name, list): + name = name[0] if name else "" + key = (e["type"], name) + if name: # 名称为空时不参与合并 + groups[key].append(idx) + + to_delete: set = set() + name_remap: dict = {} + merge_log: list = [] + + for (etype, ename), indices in groups.items(): + if len(indices) <= 1: + continue + + master_idx = pick_master(indices, entities) + master = entities[master_idx] + slave_indices = [idx for idx in indices if idx != master_idx] + + log_entry = { + "阶段": "非目标类型合并", + "类型": etype, "名称": ename, + "被合并实体": [], "新增属性": [] + } + + for s_idx in slave_indices: + slave = entities[s_idx] + slave_name = slave["properties"].get("名称", "") + if isinstance(slave_name, list): + slave_name = slave_name[0] if slave_name else "" + + log_entry["被合并实体"].append({ + "类型": slave["type"], + "原属性": copy.deepcopy(slave["properties"]) + }) + + # 名称相同时无需添加映射,但保留以防万一 + if slave_name and slave_name != ename: + name_remap[slave_name] = ename + + changes = merge_properties(master, slave) + log_entry["新增属性"].extend(changes) + to_delete.add(s_idx) + + merge_log.append(log_entry) + + print(f"[Step 5] 非目标类型合并:{len(merge_log)} 组合并," + f"删除 {len(to_delete)} 个从实体,名称映射 {len(name_remap)} 条") + return to_delete, name_remap, merge_log + + +# ============================================================ +# Step 6: 清理所有实体的"名称"字段(防止历史脏数据) +# ============================================================ +def clean_entity_names(entities: list) -> list: + for e in entities: + name = e["properties"].get("名称") + if isinstance(name, list): + e["properties"]["名称"] = name[0] if name else "" + return entities + + +# ============================================================ +# Step 7: 更新 relationships 并去重 +# ============================================================ +def update_relationships(relationships: list, name_remap: dict) -> tuple: + updated_count = 0 + for rel in relationships: + orig_from, orig_to = rel["from_entity"], rel["to_entity"] + rel["from_entity"] = name_remap.get(rel["from_entity"], rel["from_entity"]) + rel["to_entity"] = name_remap.get(rel["to_entity"], rel["to_entity"]) + if rel["from_entity"] != orig_from or rel["to_entity"] != orig_to: + updated_count += 1 + + seen, deduped = set(), [] + for rel in relationships: + key = (rel["type"], rel["from_entity"], rel["to_entity"]) + if key not in seen: + seen.add(key) + deduped.append(rel) + + removed = len(relationships) - len(deduped) + print(f"[Step 7] 关系更新完成:更新 {updated_count} 条," + f"去重删除 {removed} 条,剩余 {len(deduped)} 条") + return deduped, updated_count, removed + + +def filter_node_relationship(URI,USERNAME,PASSWORD,merged_output_data): + DBSCAN_EPS = 0.1 + DBSCAN_MIN_SPL = 1 + TARGET_TYPES = {"系统", "子系统", "部件", "一级零部件", "二级零部件"} + NAME_SIM_THRESH = 0.9 # 目标类型:embedding 余弦相似度阈值 + OUTPUT_FILE1 = "./huizong_node_rela.json" + + OUTPUT_FILE = "./neo4j_export_deduplicated.json" + + driver = GraphDatabase.driver(URI, auth=(USERNAME, PASSWORD)) + + try: + with driver.session() as session: + print("正在从 Neo4j 获取所有节点和关系...") + nodes, relationships = session.execute_read(fetch_all_nodes_and_rels) + + print(f"原始数据: {len(nodes)} 个实体, {len(relationships)} 条关系") + final_entity = [] + final_relation = [] + all_entity_old = reconstruct_entities(nodes) + all_relationships_old = reconstruct_relationships(nodes, relationships) + all_entity_new = merged_output_data["entities"] + all_relationships_new = merged_output_data["relationships"] + final_entity.extend(all_entity_old) + final_entity.extend(all_entity_new) + final_relation.extend(all_relationships_old) + final_relation.extend(all_relationships_new) + print(f"汇总数据: {len(final_entity)} 个实体, {len(final_relation)} 条关系") + + filter_data1 = { + "entities": final_entity, + "relationships": final_relation + } + with open(OUTPUT_FILE1, 'w', encoding='utf-8') as f: + json.dump(filter_data1, f, indent=2, ensure_ascii=False) + filter_node = merge_records(final_entity) + filter_relationships = deduplicate_relations(final_relation) + print(f"过滤后数据: {len(filter_node)} 个实体, {len(filter_relationships)} 条关系") + + # print("进行DBSCAN聚类") + # entities = clean_entity_names(filter_node) + + # # Step 3: DBSCAN 聚类(全量,用于目标类型相似度筛选) + # labels = cluster_entities(entities, eps=DBSCAN_EPS, min_samples=DBSCAN_MIN_SPL) + + # # Step 4: 目标类型合并(相似度 >= NAME_SIM_THRESH) + # to_delete_target, name_remap_target, merge_log_target = merge_target_entities( + # entities, labels, TARGET_TYPES, NAME_SIM_THRESH + # ) + + # # Step 5: 非目标类型合并(type + name 完全一致) + # to_delete_other, name_remap_other, merge_log_other = merge_other_entities( + # entities, TARGET_TYPES, existing_to_delete=to_delete_target + # ) + + # 汇总 + # all_to_delete = to_delete_target | to_delete_other + # all_name_remap = {**name_remap_target, **name_remap_other} # 目标类型映射优先级更高时可调整顺序 + + # new_entities = [e for idx, e in enumerate(entities) if idx not in all_to_delete] + # print(f" 总计删除 {len(all_to_delete)} 个从实体,剩余实体数量: {len(new_entities)}") + + # # Step 6: 更新关系 + # new_relationships, _, _ = update_relationships(filter_relationships, all_name_remap) + + filter_data = { + "entities": filter_node, + "relationships": filter_relationships + } + with open(OUTPUT_FILE, 'w', encoding='utf-8') as f: + json.dump(filter_data, f, indent=2, ensure_ascii=False) + + return filter_data + except Exception as e: + print(f"? 导出失败: {e}") + + import traceback + traceback.print_exc() + return merged_output_data + finally: + driver.close() + + +# if __name__ == "__main__": +# URI = "bolt://192.168.0.46:57687" +# USERNAME = "neo4j" +# PASSWORD = "zdht123@" +# with open("/storage01/home/hdf/project/wxkgrag/kgextract/output/output3/neo4j_export_merged1.json", "r", encoding="utf-8") as f: +# data = json.load(f) +# filter_data = filter_node_relationship(URI=URI,USERNAME=USERNAME,PASSWORD=PASSWORD,merged_output_data=data) +# kg = MilitaryKnowledgeGraph( +# uri="bolt://192.168.0.46:57687", +# auth=("neo4j", "zdht123@"), +# ) +# entity_count, rel_count = kg.process_data(filter_data) diff --git a/kg_build/filter_node_relation.py.111 b/kg_build/filter_node_relation.py.111 new file mode 100644 index 0000000..e77a3ca --- /dev/null +++ b/kg_build/filter_node_relation.py.111 @@ -0,0 +1,288 @@ +from neo4j import GraphDatabase +import json +import hashlib +import json +from collections import defaultdict +def merge_records(record_list): + grouped = defaultdict(list) + + for record in record_list: + key = (record['type'], record['properties']['名称']) + grouped[key].append(record) + + merged_list = [] + + for key, group in grouped.items(): + if len(group) == 1: + merged_list.append(group[0]) + else: + base = group[0].copy() + props_merged = base['properties'].copy() + ks_set = set() + + for rec in group: + try: + ks_value = rec['properties']['knowledge_source'] + # 🔧 修复:处理不同类型的 knowledge_source + if isinstance(ks_value, list): + ks_list = ks_value + elif isinstance(ks_value, str): + ks_list = json.loads(ks_value) + else: + ks_list = [] + + for item in ks_list: + ks_set.add(json.dumps(item, sort_keys=True, ensure_ascii=False)) + except (json.JSONDecodeError, KeyError, TypeError): + pass + + for k, v in rec['properties'].items(): + if k != 'knowledge_source': + if props_merged.get(k) in ("", "香", None) and v not in ("", "香", None): + props_merged[k] = v + elif k not in props_merged: + props_merged[k] = v + + merged_ks = [json.loads(s) for s in ks_set] + props_merged['knowledge_source'] = json.dumps(merged_ks, ensure_ascii=False) + + base['properties'] = props_merged + merged_list.append(base) + + return merged_list +# def merge_records(record_list): +# # 使用 (type, 名称) 作为 key 的字典来分组 +# grouped = defaultdict(list) + +# for record in record_list: +# key = (record['type'], record['properties']['名称']) +# grouped[key].append(record) + +# merged_list = [] + +# for key, group in grouped.items(): +# if len(group) == 1: +# # 没有重复,直接加入 +# merged_list.append(group[0]) +# else: +# # 合并多个记录 +# base = group[0].copy() +# props_merged = base['properties'].copy() +# ks_set = set() + +# # 合并所有 knowledge_source +# for rec in group: +# # 解析 knowledge_source(字符串形式的 JSON 列表) +# try: +# ks_list = json.loads(rec['properties']['knowledge_source']) +# for item in ks_list: +# # 转为字符串以便去重(或用 tuple/frozenset 如果结构固定) +# ks_set.add(json.dumps(item, sort_keys=True)) +# except (json.JSONDecodeError, KeyError): +# pass # 忽略无效或缺失的 knowledge_source + +# # 合并 properties 中的其他字段(覆盖式合并,但只保留非空/非"香"等?这里按全合并) +# for k, v in rec['properties'].items(): +# if k != 'knowledge_source': +# # 如果字段值不同且都不为空,可以选择保留非"香"、非空等策略 +# # 这里简单策略:如果当前为空或为"香",则用新值覆盖 +# if props_merged.get(k) in ("", "香", None) and v not in ("", "香", None): +# props_merged[k] = v +# elif props_merged.get(k) in ("", "香", None) and v in ("", "香", None): +# # 都是无效值,保留原样 +# pass +# elif k not in props_merged: +# props_merged[k] = v +# # 如果两者都有效且不同,也可以选择保留第一个或报冲突(这里暂不处理冲突) + +# # 重建 knowledge_source +# merged_ks = [json.loads(s) for s in ks_set] +# props_merged['knowledge_source'] = json.dumps(merged_ks, ensure_ascii=False) + +# base['properties'] = props_merged +# merged_list.append(base) + +# return merged_list + + +def fetch_all_nodes_and_rels(tx): + query = """ + MATCH (n) + OPTIONAL MATCH (n)-[r]->() + WITH + collect(DISTINCT { + id: toString(id(n)), + labels: labels(n), + properties: properties(n) + }) AS nodes, + collect(DISTINCT r) AS rels + UNWIND rels AS r + WITH nodes, r + WHERE r IS NOT NULL + RETURN + nodes, + collect({ + id: toString(id(r)), + source: toString(id(startNode(r))), + target: toString(id(endNode(r))), + type: type(r), + properties: properties(r) + }) AS relationships + """ + result = tx.run(query) + record = result.single() + if record: + return record["nodes"], record["relationships"] + else: + return [], [] + + +#从已有数据库导出已存在的关系 +def reconstruct_relationships(entities, relationships): + # 构建 id -> entity 的映射字典 + entity_map = {entity["id"]: entity for entity in entities} + + reconstructed_rela = [] + for rel in relationships: + source_id = rel.get("source") + target_id = rel.get("target") + rel_type = rel.get("type") + + # 检查 source 和 target 是否存在 + source_entity = entity_map.get(source_id) + target_entity = entity_map.get(target_id) + + if not source_entity or not target_entity: + continue # 跳过任一实体缺失的关系 + + # 安全获取“名称”字段(注意:根据你的数据,“名称”在顶层,不在 properties 中!) + from_name = source_entity["properties"].get("名称") + to_name = target_entity["properties"].get("名称") + + # 如果任一名称缺失,也跳过 + if from_name is None or to_name is None: + continue + + # 构建新关系 + reconstructed_rela.append({ + "type": rel_type, + "from_entity": from_name, + "to_entity": to_name + }) + + return reconstructed_rela + +def reconstruct_entities(entities): + # 要排除的字段(无论在顶层还是 properties 内部) + excluded_keys = {"last_updated", "fulltext", "created_at"} + + reconstructed_rela = [] + for entity in entities: + labels = entity.get("labels") + if not isinstance(labels, list) or len(labels) == 0: + continue + + entity_type = labels[0] + + # 合并顶层字段 + properties 内部字段 + combined_props = {} + + # 添加顶层字段(除了 id, labels, 和可能存在的 properties) + for k, v in entity.items(): + if k in ("id", "labels", "properties"): + continue + combined_props[k] = v + + # 添加 properties 内部字段(如果存在) + inner_props = entity.get("properties", {}) + if isinstance(inner_props, dict): + for k, v in inner_props.items(): + combined_props[k] = v + + # 剔除不需要的字段 + filtered_props = { + k: v for k, v in combined_props.items() + if k not in excluded_keys + } + + # 只有当 properties 非空时才保留(可选) + if not filtered_props: + continue + + reconstructed_rela.append({ + "type": entity_type, + "properties": filtered_props + }) + + return reconstructed_rela +def deduplicate_relations(relations): + seen = set() + unique_relations = [] + for rel in relations: + # 构造唯一键(必须是可哈希的) + key = (rel["type"], rel["from_entity"], rel["to_entity"]) + if key not in seen: + seen.add(key) + unique_relations.append(rel) + return unique_relations + + +def filter_node_relationship(URI,USERNAME,PASSWORD,merged_output_data): + OUTPUT_FILE1 = "./huizong_node_rela.json" + + OUTPUT_FILE = "./neo4j_export_deduplicated.json" + + driver = GraphDatabase.driver(URI, auth=(USERNAME, PASSWORD)) + + try: + with driver.session() as session: + print("正在从 Neo4j 获取所有节点和关系...") + nodes, relationships = session.execute_read(fetch_all_nodes_and_rels) + + print(f"原始数据: {len(nodes)} 个实体, {len(relationships)} 条关系") + final_entity = [] + final_relation = [] + all_entity_old = reconstruct_entities(nodes) + all_relationships_old = reconstruct_relationships(nodes, relationships) + all_entity_new = merged_output_data["entities"] + all_relationships_new = merged_output_data["relationships"] + final_entity.extend(all_entity_old) + final_entity.extend(all_entity_new) + final_relation.extend(all_relationships_old) + final_relation.extend(all_relationships_new) + print(f"汇总数据: {len(final_entity)} 个实体, {len(final_relation)} 条关系") + + filter_data1 = { + "entities": final_entity, + "relationships": final_relation + } + with open(OUTPUT_FILE1, 'w', encoding='utf-8') as f: + json.dump(filter_data1, f, indent=2, ensure_ascii=False) + filter_node = merge_records(final_entity) + filter_relationships = deduplicate_relations(final_relation) + print(f"过滤后数据: {len(filter_node)} 个实体, {len(filter_relationships)} 条关系") + + filter_data = { + "entities": filter_node, + "relationships": filter_relationships + } + + with open(OUTPUT_FILE, 'w', encoding='utf-8') as f: + json.dump(filter_data, f, indent=2, ensure_ascii=False) + + return filter_data + except Exception as e: + print(f"❌ 导出失败: {e}") + + import traceback + traceback.print_exc() + return merged_output_data + finally: + driver.close() + +# if __name__ == "__main__": +# URI = "bolt://192.168.0.46:57687" +# USERNAME = "neo4j" +# PASSWORD = "zdht123@" +# # filter_node_relationship(URI=URI,USERNAME=USERNAME,PASSWORD=PASSWORD) + diff --git a/kg_build/get_text_node_reala.py b/kg_build/get_text_node_reala.py new file mode 100644 index 0000000..147e359 --- /dev/null +++ b/kg_build/get_text_node_reala.py @@ -0,0 +1,335 @@ +from openai import OpenAI +from typing import List, Dict +import json +from langchain_text_splitters import MarkdownHeaderTextSplitter, CharacterTextSplitter +import requests +import json +from modelsAPI.model_api import OpenaiAPI + +def _split_markdown(text, chunk_size=2048, chunk_overlap=50): + """ + 根据 max_level 动态生成 headers_to_split_on 配置 + 规则: + - max_level=1 → 只按 # 分割 + - max_level=2 → 按 # 和 ## 分割 + - 以此类推 + """ + # 动态生成 headers_to_split_on 配置(目前固定为 Header_1) + headers_to_split_on = [("#", "Header_1")] + + # 初始化分割器 + splitter = MarkdownHeaderTextSplitter( + headers_to_split_on=headers_to_split_on, + strip_headers=True + ) + chunks = splitter.split_text(text) + + char_splitter = CharacterTextSplitter( + chunk_size=chunk_size, + chunk_overlap=chunk_overlap, + length_function=len, + separator="\n\n" # 更合理的分隔符 + ) + + final_chunks = [] + start_chars = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "第", "十", + "一", "二", "三", "四", "五", "六", "七", "八", "九"," 故障"] + new_header = [] + + # 提取所有 Header_1 并筛选出“有效标题” + for chunk in chunks: + header_1 = chunk.metadata.get('Header_1', '') + if header_1 and header_1[0] in start_chars: + new_header.append(header_1) + + new_header_set = set(new_header) + + # 构建带标题前缀的 final_chunks + for chunk in chunks: + header_1 = chunk.metadata.get('Header_1', '') + content = chunk.page_content + if len(content) <= 20000: + chunk_with_header = f"{header_1}\n{content}" if header_1 else content + final_chunks.append(chunk_with_header) + else: + split_texts = char_splitter.split_documents([chunk]) + for split_chunk in split_texts: + chunk_with_header = f"{header_1}\n{split_chunk.page_content}" if header_1 else split_chunk.page_content + final_chunks.append(chunk_with_header) + + # ===== 重新分组,并记录每个组的 header ===== + rechunked = [] + rechunked_headers = [] # 新增:每个 rechunked 块对应的 header + current = "" + current_header = "" # 当前正在构建的块所属的标题 + + for chunk in final_chunks: + is_new_section = False + matched_header = "" + + # 检查是否以某个 new_header 开头 + for h in new_header_set: + if chunk.startswith(h + "\n"): + is_new_section = True + matched_header = h + break + + if is_new_section: + # 保存上一段 + if current: + rechunked.append(current) + rechunked_headers.append(current_header) + # 开启新段 + current = chunk + current_header = matched_header + else: + # 合并到当前段 + if current: + current += "\n" + chunk + else: + current = chunk + current_header = "" # 如果开头无标题,则 header 为空 + + # 添加最后一段 + if current: + rechunked.append(current) + rechunked_headers.append(current_header) + + return rechunked, rechunked_headers + +Ontology = ["舰艇", "系统", "子系统", "部件", "一级零部件", "二级零部件", "故障模式", "维修方案", "操作项目", "备品备件", "维修手册", "操作使用手册"] +Relationships = ["包含", "存在", "修理", "操作时使用", "依据","存储备用","维修时使用"] + +# 节点类型及其属性定义 + +NODE_TYPES = { + "舰艇": ["名称", "型号", "弦号", "设计单位", "总装工厂", "所属部队"], + "系统": ["名称", "型号", "生产单位", "等级","功能"], + "子系统": ["名称", "型号", "生产单位", "等级","功能"], + "一级零部件": ["名称", "型号", "技术责任单位", "生产单位"], + "二级零部件": ["名称", "型号", "技术责任单位", "生产单位"], + "故障模式": ["名称", "故障原因", "故障影响", "故障类型", "发生时间", "处置情况", "修复情况","维修方案"], + "维修方案": ["名称", "维修项目编号","维修间隔期", "安全注意事项", "保障设备(工具)", "备品备件", "消耗材料", "人力人员", "备品备件", "修前判据", "修理步骤及工艺", "验收标准"], + "操作项目": ["名称", "操作项目编号", "安全防护", "注意事项", "保障设施、保障设备(工具)", "人力人员", "操作步骤"], + "备品备件" : ["名称", "规格", "型号", "图号或标准号或代号","计量单位", "单机重量", "尺寸(长X宽X高mm)", "单机装配数量","实物图片电子文档名称","MTBF(b)","生成厂家", + "出厂日期", + "供货周期(天)", + "有效期(月)", + "使用寿命(h)", + "备件箱号", + "储存要求_环境", + "储存要求_期限", + "停产后供应方式"], + "维修手册": ["名称", "url"], + "操作使用手册": ["名称", "url"], + } + +Ontology_DESCRIPTION = { + "舰艇": ["代表一艘完整海上作战或保障平台的实体,是所有系统、设备和零部件的最高层级载体。区别于“系统”或“设备”,舰艇具有独立的型号、弦号和部队归属,不可作为其他舰艇的组成部分。"], + "系统": ["舰艇中实现某一类功能(如动力、导航、通信)的集成化功能单元,由多个设备协同组成。与“设备”不同,系统本身不直接对应物理装置,而是逻辑/功能层面的集合;与“舰艇”不同,系统不具备独立航行能力或部队归属。"], + "子系统": ["系统内部为实现特定子功能而划分的独立功能模块,是系统的直接组成部分。子系统既具备相对独立的功能完整性(可单独测试或隔离),又必须依赖所属系统才能发挥最终战术效能,是连接系统逻辑与物理设备的中间层级。"], + "部件": ["构成子系统或设备的最小可独立拆卸、更换的物理实体单元(常称为LRU,即外场可更换单元)。部件具有明确的物理边界和接口,通常无需深层拆解即可进行整体替换,是维修作业中直接操作的主要对象。"], + "一级零部件": ["部件内部的核心功能组件,是部件的直接构成元素。一级零部件通常承担部件内的主要能量转换、信号处理或机械传动任务,其故障往往导致整个部件功能失效,需通过专业工具拆解部件后方可触及。"], + "二级零部件": ["一级零部件的细分构成单元,属于更深层次的基礎元件(如电阻、电容、密封圈、轴承等)。二级零部件通常不具备独立的功能意义,主要作为基础材料或标准件存在,一般仅在车间级深度维修或制造过程中涉及。"], + "故障模式": ["对舰艇装备在运行过程中表现出的异常状态、性能退化或功能丧失现象的标准化描述。故障模式明确了“发生了什么错误”(如断裂、短路、泄漏、卡滞),是关联故障现象与维修方案的桥梁,不包含原因分析或解决措施。"], + "维修方案": ["针对特定故障模式或预防性维护需求,制定的一套标准化的技术处置流程集合。维修方案详细规定了诊断步骤、拆装工艺、测试标准及所需资源,旨在指导维修人员恢复装备的技术战术性能,是维修决策的核心依据。"], + "操作项目": ["舰员在日常使用、值更或训练过程中,对装备执行的具体动作指令或检查任务(如启动、切换模式、参数读取、日常擦拭)。操作项目侧重于装备的正确使用与状态监控,区别于以修复为目的的“维修方案”。"], + "备品备件": ["为保障舰艇装备持续运行和及时修复,预先储备的可替换物理实体的总称。备品备件涵盖了从部件到二级零部件的各个层级,其管理核心在于平衡库存成本与战备完好率,确保在故障发生时能立即供应。"], + "维修手册": ["记载装备维修理论、故障排查逻辑、详细修理工艺、测试规范及安全技术要求的权威性技术文档。维修手册主要面向维修技术人员,提供“如何修”的深度指导,是实施维修方案的法定依据。"], + "操作使用手册": ["指导舰员正确、安全、高效地使用装备的功能说明与操作规程文档。操作使用手册主要面向装备操作人员,内容涵盖工作原理简介、操作步骤、应急处置及日常保养要求,侧重于“如何用”而非“如何修”。"] +} + +RELATIONSHIP_TYPES = { + "包含": ["舰艇包含系统", "系统包含子系统", "子系统包含部件", "部件包含一级零部件", "一级零部件包含二级零部件"], + "操作项目时使用": ["设备操作项目时使用操作项目"], + "维修时使用": ["设备维修时使用维修项目"], + "存在": ["子系统存在故障模式","部件存在故障模式","一级零部件存在故障模式","二级零部件存在故障模式"], + "存储备用" : ["设备存储备用备品备件"], + "依据" : ["维修方案依据维修手册","操作项目依据操作使用手册"], +} +def create_extraction_prompt( + text: str, + ontology: List[str], + Ontology_DESCRIPTION: Dict[str, List[str]], + relationships: List[str], + node_types: Dict[str, List[str]], + relationship_types: Dict[str, List[str]] +) -> str: + # 构建已有本体的定义(用于上下文) + ontology_def_descriptions = [] + for etype in ontology: + clean_etype = etype.strip() + if clean_etype in Ontology_DESCRIPTION: + desc = ";".join(Ontology_DESCRIPTION[clean_etype]) + ontology_def_descriptions.append(f"- {clean_etype}:{desc}") + else: + ontology_def_descriptions.append(f"- {clean_etype}:无明确定义") + + # 构建关系示例 + rel_examples = [] + for rtype, examples in relationship_types.items(): + for ex in examples[:1]: + rel_examples.append(f" - {ex}") + + prompt = f"""你是一个专业的舰艇维修领域工程师。请基于给出的本体和属性等信息,抽取出实体、关系以及相关属性值。 + +> ⚠️ 重要说明: +> - **本体(Ontology Class)是抽象概念类别**,是对特定领域中概念体系的形式化、结构化规范,用于明确定义该领域内的实体类型(类)。 + + +### 已有本体类型: +{chr(10).join(ontology_def_descriptions)} + +### 已有关系类型: +- {"、".join(relationships)} +典型用法示例: +{chr(10).join(rel_examples)} + +### 待分析文本: +{text.strip()} + +### 你的任务: +1、根据给出的本体、关系以及相应的属性,从文本中抽取出所有可能的实体、关系以及相关属性值。 +2、不要随意添加无效属性,抽取的实体属于本体范围内,关系属于关系范围内。、 + +### 输出格式: +请输出json格式内容,不要输出其他格式和额外内容 +{{ + "entities": [ + {{ + "type": "系统", + "name": "1 号主机冷却系统", + "properties": {{ + "名称": "1 号主机冷却系统", + "型号": "", + "技术责任单位": "XX 舰艇保障大队", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + }} + }}, + {{ + "type": "故障模式", + "name": "1 号主机冷却系统温度异常升高", + "properties": {{ + "故障现象": "1 号主机冷却系统温度异常升高", + "故障原因": "根据 A 设备发生的温度异常升高现象,结合相关技术手册与历史故障记录,分析如下: + (一)冷却液循环泵可能存在异常,导致流量不足; + (二)热交换器内部堵塞或外部散热片污损,影响散热效率; + (三)温度传感器或控制系统信号异常,导致误报警。 +", + "故障影响": "", + "故障类型": "", + "发生时间": "2013 年 05 月 7 日 9 时 23 分 37 秒", + "处置情况": " ", + "修复情况": "", + “” + }} + }} + ], + "relationships": [ + {{ + "type": "存在", + "from_entity": "1 号主机冷却系统", + "to_entity": "1 号主机冷却系统温度异常升高" + }} + ] +}} + +注意: +- 不要生成一些关系,如果没有就不要推荐 +- 如果文本没有符合的关系和实体,不要进行强行抽取 +""" + + return prompt + +async def extract_text_node_relationship( + text: str, + ontology: List[str], + Ontology_DESCRIPTION: Dict[str, List[str]], + relationships: List[str], + node_types: Dict[str, List[str]], + relationship_types: Dict[str, List[str]] +): + + + final_prompt = create_extraction_prompt( + text=text, + ontology=ontology, + Ontology_DESCRIPTION=Ontology_DESCRIPTION, + relationships=relationships, + relationship_types=relationship_types, + node_types=node_types + ) + res_str = await OpenaiAPI.openai_chat_aysnc(final_prompt,timeout=600) + + # 处理 API 调用失败 + if res_str is None: + print("⚠️ 跳过当前 chunk:API 调用失败") + + # 尝试解析 JSON + try: + res = json.loads(res_str) + except json.JSONDecodeError as e: + print(f"❌ JSON 解析失败: {e}") + print(f"原始响应内容: {repr(res_str)}") + + # 安全访问字段 + new_entities = res.get("entities", []) + new_relationships = res.get("relationships", []) + + # 可选:最后汇总输出 + # print("\n=== 最终结果 ===") + # print("生成文本本体:", new_entities_result) + # print("生成文本关系:", new_relationships_result) + return new_entities,new_relationships + + +# if __name__ == "__main__": +# text = """ +# # 1)螺旋桨本体 + +# 功能与特性:能量转换的核心。它将主机的旋转动能转化为水流的反作用力(推力)。其特性由材料(如镍铝青铜、锰青铜)、桨叶数(3-6叶)、盘面比、螺距比等决定,直接影响效率、空泡和振动性能。 + +# 相互关系:直接安装在尾轴(螺旋桨轴) 末端,其扭矩由尾轴传递,其推力通过推力轴承传递给船体。 + +# 2)轴系 + +# 功能与特性:动力传递的桥梁。包括: +# s +# 推力轴及推力轴承:承受螺旋桨产生的巨大轴向推力,并将其传递给船体结构,是决定船舶能否前进、后退的关键。 + +# 中间轴:连接主机输出端与推力轴/尾轴。 + +# 尾轴(螺旋桨轴):穿过尾轴管,末端安装螺旋桨,工作环境恶劣(浸没海水中),通常需包覆铜套防腐。 + +# 相互关系:将主机的旋转输出与螺旋桨本体刚性连接,形成一个完整的动力传递链。推力轴承是轴系与船体结构之间的关键受力界面。 + +# 3)尾轴管与密封系统功能与特性: + +# 尾轴管:固定于船体尾端,支撑尾轴并形成从船内(机舱)到船外(海水)的通道。 + +# 密封系统(首尾密封):绝对关键的安全设备。防止海水沿尾轴流入机舱(尾密封),同时防止润滑油泄漏(首尾密封均有此功能)。通常采用唇式密封或面式密封,材料耐磨、耐腐蚀。 + +# 相互关系:为尾轴提供支撑和润滑(油润滑或水润滑),其密封系统直接保护尾轴并确保机舱安全,与轴系和船体结构紧密集成。 + +# 4)毂帽与导流罩功能与特性: + +# 毂帽:安装在螺旋桨毂后端,呈流线型,用于减少桨毂后部产生的涡流阻力,提高效率。 + +# 导流罩(如桨毂涡流消除器):安装在桨毂前方,改善流入桨叶的水流状态,尤其适用于肥大船型,能提升效率、减少振动。 + +# 相互关系:直接安装在螺旋桨本体的毂上,是其水动力性能的优化附件。 + +# 系统相互关系总结: + +# 主机驱动轴系旋转,轴系末端的尾轴带动螺旋桨本体旋转。螺旋桨产生的推力通过尾轴传递至推力轴承,最终作用在船体上使其运动。尾轴管及密封系统为这一旋转运动提供支撑、润滑和至关重要的水密保障。毂帽和导流罩则作为螺旋桨本体的附件,优化其水动力性能。所有子设备协同工作的核心目标,是确保主机功率被高效、平稳、可靠地转化为推进船舶前进的有效推力。 任何一环失效(如密封泄漏、轴承损坏)都将导致整个推进系统瘫痪。 +# """ +# content = [] +# content.append(text) +# extract_text_node_relationship(content,ontology=Ontology,Ontology_DESCRIPTION=Ontology_DESCRIPTION,relationships=Relationships,relationship_types=RELATIONSHIP_TYPES,node_types=NODE_TYPES) + + diff --git a/kg_build/kg_save.py b/kg_build/kg_save.py new file mode 100644 index 0000000..57465e0 --- /dev/null +++ b/kg_build/kg_save.py @@ -0,0 +1,581 @@ +import json +from datetime import datetime, timezone +from typing import Dict, List, Optional, Tuple, Union +from neo4j import GraphDatabase + + +class MilitaryKnowledgeGraph: + def __init__(self, uri: str, auth: Tuple[str, str], Ontology: List[str] = None): + """ + 初始化知识图谱 + + Args: + uri: Neo4j 数据库连接地址 + auth: 认证信息 (用户名, 密码) + Ontology: 节点类型列表,用于创建唯一性约束和类型校验 + """ + self.driver = GraphDatabase.driver(uri, auth=auth) + + # 默认节点类型 + self.Ontology = Ontology or ["舰艇", "系统", "子系统", "部件", "一级零部件", "二级零部件", "故障模式", "维修方案", "操作项目", "备品备件", "维修手册", "操作使用手册"] + + self._setup_constraints() + + def close(self): + """关闭数据库连接""" + self.driver.close() + + def _setup_constraints(self): + """为每个节点类型设置 名称 字段的唯一性约束""" + with self.driver.session() as session: + for node_type in self.Ontology: + try: + session.run(f"CREATE CONSTRAINT IF NOT EXISTS FOR (n:{node_type}) REQUIRE n.名称 IS UNIQUE") + except Exception as e: + print(f"创建约束失败 {node_type}: {e}") + + def construct_fact(self, from_name: str, to_name: str, rel_type: str, attributes: Dict) -> str: + """构造关系的自然语言描述(fact)""" + attr_str = ", ".join([f"{k}:{v}" for k, v in attributes.items() if v]) + if attr_str: + return f"{from_name} {rel_type} {to_name},{attr_str}" + else: + return f"{from_name} {rel_type} {to_name}" + + # def _resolve_attribute_conflicts(self, existing_attrs: Dict, new_attrs: Dict) -> Dict: + # """解决属性冲突(保留最新状态、最早开始时间、最晚结束时间等)""" + # resolved = existing_attrs.copy() + # current_time = datetime.now(timezone.utc).isoformat() + + # for key, new_value in new_attrs.items(): + # if new_value is None or new_value == "": + # continue + + # if key not in existing_attrs: + # resolved[key] = new_value + # elif existing_attrs[key] != new_value: + # if key in ["当前状态", "执行状态", "完成状态"]: + # resolved[key] = new_value + # elif key in ["开始时间", "下达时间", "承担时间"]: + # if new_value < existing_attrs[key]: + # resolved[key] = new_value + # elif key in ["结束时间", "执行时限"]: + # if new_value > existing_attrs[key]: + # resolved[key] = new_value + # else: + # resolved[key] = new_value + # if f"{key}_history" not in resolved: + # resolved[f"{key}_history"] = [] + # resolved[f"{key}_history"].append({ + # "previous_value": existing_attrs[key], + # "new_value": new_value, + # "update_time": current_time + # }) + + # return resolved + def _resolve_attribute_conflicts(self, existing_attrs: Dict, new_attrs: Dict) -> Dict: + """ + 解决属性冲突: + 1. 状态类:直接覆盖 + 2. 开始时间类:取最早时间 + 3. 结束时间类:取最晚时间 + 4. 其他类:直接覆盖 (不再记录历史) + """ + resolved = existing_attrs.copy() + # current_time 在此版本中不再需要,但保留导入以防后续扩展使用 + # current_time = datetime.now(timezone.utc).isoformat() + + for key, new_value in new_attrs.items(): + if new_value is None or new_value == "": + continue + + if key not in existing_attrs: + # 新属性直接添加 + resolved[key] = new_value + elif existing_attrs[key] != new_value: + # 属性存在且值不同,根据类型处理 + if key in ["当前状态", "执行状态", "完成状态"]: + # 状态类:直接覆盖为新值 + resolved[key] = new_value + + elif key in ["开始时间", "下达时间", "承担时间"]: + # 开始时间类:保留更早的时间 + if new_value < existing_attrs[key]: + resolved[key] = new_value + + elif key in ["结束时间", "执行时限"]: + # 结束时间类:保留更晚的时间 + if new_value > existing_attrs[key]: + resolved[key] = new_value + + else: + # 其他普通属性:直接覆盖,不再生成 _history 字段 + resolved[key] = new_value + + return resolved + def _create_relationship_with_timeline(self, tx, from_name: str, to_name: str, + rel_type: str, attributes: Dict) -> bool: + """创建或更新带有时间线的关系""" + current_time = datetime.now(timezone.utc).isoformat() + clean_attributes = {k: v for k, v in attributes.items() if v is not None and v != ""} + + fact = self.construct_fact(from_name, to_name, rel_type, attributes) + clean_attributes["fact"] = fact + + existing_rel = tx.run(""" + MATCH (a {名称: $from_name})-[r]->(b {名称: $to_name}) + WHERE type(r) = $rel_type + RETURN r, properties(r) as props + """, from_name=from_name, to_name=to_name, rel_type=rel_type).single() + + if existing_rel: + existing_props = existing_rel["props"] + updated_props = existing_props.copy() + + for key, new_value in clean_attributes.items(): + if key == "fact": + continue + if key not in existing_props or existing_props[key] != new_value: + timeline_key = f"{key}_timeline" + if timeline_key not in updated_props: + updated_props[timeline_key] = [] + + timeline_entry_dict = { + "value": new_value, + "timestamp": current_time, + "source": "text_extraction" + } + if key in existing_props: + timeline_entry_dict["previous_value"] = existing_props[key] + + timeline_entry_str = json.dumps(timeline_entry_dict, ensure_ascii=False) + updated_props[timeline_key].append(timeline_entry_str) + updated_props[key] = new_value + + if "fact" in clean_attributes: + fact_timeline_key = "fact_timeline" + if fact_timeline_key not in updated_props: + updated_props[fact_timeline_key] = [] + + fact_entry_str = json.dumps({ + "value": clean_attributes["fact"], + "timestamp": current_time, + "source": "text_extraction" + }, ensure_ascii=False) + updated_props[fact_timeline_key].append(fact_entry_str) + updated_props["fact"] = clean_attributes["fact"] + + updated_props["last_updated"] = current_time + + query = f""" + MATCH (a {{名称: $from_name}})-[r:{rel_type}]->(b {{名称: $to_name}}) + SET r = $properties + RETURN r + """ + tx.run(query, from_name=from_name, to_name=to_name, properties=updated_props) + print(f"更新关系: {from_name} -[{rel_type}]-> {to_name}") + + else: + relationship_props = clean_attributes.copy() + + for key, value in clean_attributes.items(): + timeline_key = f"{key}_timeline" + timeline_entry_dict = { + "value": value, + "timestamp": current_time, + "source": "text_extraction" + } + timeline_entry_str = json.dumps(timeline_entry_dict, ensure_ascii=False) + relationship_props[timeline_key] = [timeline_entry_str] + + relationship_props["created_at"] = current_time + relationship_props["last_updated"] = current_time + relationship_props["update_count"] = 1 + + query = f""" + MATCH (a {{名称: $from_name}}), (b {{名称: $to_name}}) + CREATE (a)-[r:{rel_type} $properties]->(b) + RETURN r + """ + tx.run(query, from_name=from_name, to_name=to_name, properties=relationship_props) + print(f"创建关系: {from_name} -[{rel_type}]-> {to_name}") + + return True + + def _create_or_update_node(self, tx, node_type: str, 名称: str, attributes: Dict) -> bool: + """ + 创建或更新节点,支持 knowledge_source 等复杂字段 + + Args: + tx: Neo4j 事务对象 + node_type: 节点类型 + 名称: 节点名称(唯一标识) + attributes: 节点属性字典 + """ + if not 名称 or not node_type: + return False + + # 安全校验:只允许预定义的节点类型 + if node_type not in self.Ontology: + print(f"跳过未知节点类型: {node_type}") + return False + + # 预处理 attributes:将 knowledge_source 转为 JSON 字符串 + clean_attributes = {"名称": 名称} # 确保名称字段存在 + for k, v in attributes.items(): + if v is None or v == "": + continue + if k == "knowledge_source" and isinstance(v, list): + clean_attributes[k] = json.dumps(v, ensure_ascii=False) + else: + clean_attributes[k] = v + + existing_node = tx.run( + f"MATCH (n:{node_type} {{名称: $名称}}) RETURN n, properties(n) as props", + 名称=名称 + ).single() + + current_time = datetime.now(timezone.utc).isoformat() + + if existing_node: + existing_props = existing_node["props"] + existing_attrs = {k: v for k, v in existing_props.items() + if not k.endswith('_timeline') and k not in ['created_at', 'last_updated']} + + resolved_attributes = self._resolve_attribute_conflicts(existing_attrs, clean_attributes) + + timeline_data = {k: v for k, v in existing_props.items() + if k.endswith('_timeline') or k in ['created_at', 'last_updated']} + + final_attributes = {**timeline_data, **resolved_attributes} + final_attributes["last_updated"] = current_time + + query = f""" + MATCH (n:{node_type} {{名称: $名称}}) + SET n = $attributes + RETURN n + """ + tx.run(query, 名称=名称, attributes=final_attributes) + print(f"更新节点: {node_type} - {名称}") + else: + clean_attributes["created_at"] = current_time + clean_attributes["last_updated"] = current_time + + query = f""" + CREATE (n:{node_type} $attributes) + RETURN n + """ + tx.run(query, attributes=clean_attributes) + print(f"创建节点: {node_type} - {名称}") + + return True + + def process_data(self, data: Dict) -> Tuple[int, int]: + """ + 处理字典数据并写入Neo4j(批量版:按类型分组,减少 Neo4j 往返次数) + + Args: + data: 包含 entities 和 relationships 的字典 + + Returns: + Tuple[int, int]: (实体数量, 关系数量) + """ + if not data or not isinstance(data, dict): + print("无效的数据格式,需要字典类型") + return 0, 0 + + BATCH_SIZE = 50 + entity_count = 0 + relationship_count = 0 + current_time = datetime.now(timezone.utc).isoformat() + + # ── 1. 预处理实体,按类型分组 ────────────────────────────── + entities_by_type: Dict[str, List[dict]] = {} + for entity in data.get("entities", []): + node_type = entity.get("type", "") + if node_type not in self.Ontology: + print(f"跳过未知节点类型: {node_type}") + continue + props = entity.get("properties", {}).copy() + if "knowledge_source" in entity: + props["knowledge_source"] = entity["knowledge_source"] + 名称 = props.pop("名称", None) + if not 名称: + print(f"跳过无名称节点: {entity}") + continue + clean: Dict = {"名称": 名称} + for k, v in props.items(): + if v is None or v == "": + continue + if k == "knowledge_source" and isinstance(v, list): + clean[k] = json.dumps(v, ensure_ascii=False) + else: + clean[k] = v + entities_by_type.setdefault(node_type, []).append(clean) + + # ── 2. 按类型批量读取已存在节点,Python侧合并属性,批量写入 ── + with self.driver.session() as session: + for node_type, type_entities in entities_by_type.items(): + names = [e["名称"] for e in type_entities] + + # 一次读取该类型下所有涉及名称 + existing_list = session.execute_read( + self._batch_fetch_nodes, node_type, names + ) + existing_map = {r["名称"]: r for r in existing_list} + + to_create: List[dict] = [] + to_update: List[dict] = [] + + for clean_attrs in type_entities: + name = clean_attrs["名称"] + if name in existing_map: + existing_props = existing_map[name] + existing_attrs = { + k: v for k, v in existing_props.items() + if not k.endswith("_timeline") + and k not in ("created_at", "last_updated") + } + resolved = self._resolve_attribute_conflicts(existing_attrs, clean_attrs) + timeline_data = { + k: v for k, v in existing_props.items() + if k.endswith("_timeline") or k in ("created_at", "last_updated") + } + final = {**timeline_data, **resolved} + final["last_updated"] = current_time + to_update.append({"名称": name, "props": final}) + else: + new_attrs = dict(clean_attrs) + new_attrs["created_at"] = current_time + new_attrs["last_updated"] = current_time + to_create.append(new_attrs) + + for i in range(0, len(to_create), BATCH_SIZE): + batch = to_create[i: i + BATCH_SIZE] + try: + session.execute_write(self._batch_create_nodes, node_type, batch) + entity_count += len(batch) + except Exception as e: + print(f"批量创建节点失败 ({node_type} 批次{i // BATCH_SIZE}): {e}") + + for i in range(0, len(to_update), BATCH_SIZE): + batch = to_update[i: i + BATCH_SIZE] + try: + session.execute_write(self._batch_update_nodes, node_type, batch) + entity_count += len(batch) + except Exception as e: + print(f"批量更新节点失败 ({node_type} 批次{i // BATCH_SIZE}): {e}") + + # ── 3. 预处理关系,按类型分组 ────────────────────────────── + rels_by_type: Dict[str, List[dict]] = {} + for rel in data.get("relationships", []): + rel_type = rel.get("type", "") + if not rel_type or not rel.get("from_entity") or not rel.get("to_entity"): + continue + rels_by_type.setdefault(rel_type, []).append(rel) + + # ── 4. 按类型批量读取已存在关系,Python侧计算 timeline,批量写入 ── + with self.driver.session() as session: + for rel_type, type_rels in rels_by_type.items(): + pairs = [(r["from_entity"], r["to_entity"]) for r in type_rels] + + existing_list = session.execute_read( + self._batch_fetch_relationships, rel_type, pairs + ) + existing_map = { + (r["from_name"], r["to_name"]): r["props"] for r in existing_list + } + + to_create_r: List[dict] = [] + to_update_r: List[dict] = [] + + for rel in type_rels: + from_name = rel["from_entity"] + to_name = rel["to_entity"] + attributes = rel.get("properties", {}) + clean_attrs = {k: v for k, v in attributes.items() if v is not None and v != ""} + clean_attrs["fact"] = self.construct_fact(from_name, to_name, rel_type, attributes) + + key = (from_name, to_name) + if key in existing_map: + existing_props = existing_map[key] + updated_props = dict(existing_props) + + for k, new_value in clean_attrs.items(): + if k == "fact": + continue + if k not in existing_props or existing_props[k] != new_value: + tl_key = f"{k}_timeline" + if tl_key not in updated_props: + updated_props[tl_key] = [] + entry: dict = { + "value": new_value, + "timestamp": current_time, + "source": "text_extraction", + } + if k in existing_props: + entry["previous_value"] = existing_props[k] + updated_props[tl_key].append( + json.dumps(entry, ensure_ascii=False) + ) + updated_props[k] = new_value + + fact_tl_key = "fact_timeline" + if fact_tl_key not in updated_props: + updated_props[fact_tl_key] = [] + updated_props[fact_tl_key].append( + json.dumps( + {"value": clean_attrs["fact"], "timestamp": current_time, "source": "text_extraction"}, + ensure_ascii=False, + ) + ) + updated_props["fact"] = clean_attrs["fact"] + updated_props["last_updated"] = current_time + + to_update_r.append( + {"from_name": from_name, "to_name": to_name, "props": updated_props} + ) + else: + rel_props = dict(clean_attrs) + for k, v in clean_attrs.items(): + rel_props[f"{k}_timeline"] = [ + json.dumps( + {"value": v, "timestamp": current_time, "source": "text_extraction"}, + ensure_ascii=False, + ) + ] + rel_props["created_at"] = current_time + rel_props["last_updated"] = current_time + rel_props["update_count"] = 1 + to_create_r.append( + {"from_name": from_name, "to_name": to_name, "props": rel_props} + ) + + for i in range(0, len(to_create_r), BATCH_SIZE): + batch = to_create_r[i: i + BATCH_SIZE] + try: + session.execute_write(self._batch_create_relationships, rel_type, batch) + relationship_count += len(batch) + except Exception as e: + print(f"批量创建关系失败 ({rel_type} 批次{i // BATCH_SIZE}): {e}") + + for i in range(0, len(to_update_r), BATCH_SIZE): + batch = to_update_r[i: i + BATCH_SIZE] + try: + session.execute_write(self._batch_update_relationships, rel_type, batch) + relationship_count += len(batch) + except Exception as e: + print(f"批量更新关系失败 ({rel_type} 批次{i // BATCH_SIZE}): {e}") + + print(f"成功处理 {entity_count} 个节点和 {relationship_count} 个关系") + return entity_count, relationship_count + + # ── 批量辅助方法 ──────────────────────────────────────────────── + + @staticmethod + def _batch_fetch_nodes(tx, node_type: str, names: List[str]) -> List[dict]: + """一次性读取指定类型下所有涉及名称的节点属性""" + result = tx.run( + f"MATCH (n:{node_type}) WHERE n.名称 IN $names RETURN properties(n) AS props", + names=names, + ) + return [record["props"] for record in result] + + @staticmethod + def _batch_create_nodes(tx, node_type: str, nodes: List[dict]): + """批量创建节点(仅用于确认不存在的新节点)""" + tx.run( + f"UNWIND $nodes AS n CREATE (x:{node_type}) SET x = n", + nodes=nodes, + ) + + @staticmethod + def _batch_update_nodes(tx, node_type: str, updates: List[dict]): + """批量更新节点属性(完整覆盖,已在Python侧完成属性合并)""" + tx.run( + f"UNWIND $updates AS u " + f"MATCH (n:{node_type} {{名称: u.名称}}) " + f"SET n = u.props", + updates=updates, + ) + + @staticmethod + def _batch_fetch_relationships(tx, rel_type: str, pairs: List[Tuple[str, str]]) -> List[dict]: + """一次性读取指定类型下所有涉及节点对的关系属性""" + result = tx.run( + f"UNWIND $pairs AS pair " + f"MATCH (a {{名称: pair[0]}})-[r:{rel_type}]->(b {{名称: pair[1]}}) " + f"RETURN pair[0] AS from_name, pair[1] AS to_name, properties(r) AS props", + pairs=[[p[0], p[1]] for p in pairs], + ) + return [ + {"from_name": r["from_name"], "to_name": r["to_name"], "props": r["props"]} + for r in result + ] + + @staticmethod + def _batch_create_relationships(tx, rel_type: str, items: List[dict]): + """批量创建关系(仅用于确认不存在的新关系)""" + tx.run( + f"UNWIND $items AS item " + f"MATCH (a {{名称: item.from_name}}), (b {{名称: item.to_name}}) " + f"CREATE (a)-[r:{rel_type}]->(b) SET r = item.props", + items=items, + ) + + @staticmethod + def _batch_update_relationships(tx, rel_type: str, items: List[dict]): + """批量更新关系属性(完整覆盖,已在Python侧完成 timeline 合并)""" + tx.run( + f"UNWIND $items AS item " + f"MATCH (a {{名称: item.from_name}})-[r:{rel_type}]->(b {{名称: item.to_name}}) " + f"SET r = item.props", + items=items, + ) + + def get_relationship_history(self, from_name: str, to_name: str, rel_type: str) -> Optional[Dict]: + """获取关系的完整历史记录""" + with self.driver.session() as session: + result = session.run(""" + MATCH (a {名称: $from_name})-[r]->(b {名称: $to_name}) + WHERE type(r) = $rel_type + RETURN properties(r) as props + """, from_name=from_name, to_name=to_name, rel_type=rel_type) + + record = result.single() + return record["props"] if record else None + + def get_property_timeline(self, from_name: str, to_name: str, rel_type: str, + property_name: str) -> Optional[List]: + """获取特定属性的时间线(返回字符串列表,需 json.loads 解析)""" + history = self.get_relationship_history(from_name, to_name, rel_type) + if history: + return history.get(f"{property_name}_timeline", []) + return None + + def clear_database(self): + """清空数据库(谨慎使用)""" + with self.driver.session() as session: + session.run("MATCH (n) DETACH DELETE n") + print("数据库已清空") + +# if __name__ == "__main__": +# # 连接本地 Neo4j(请确保服务已启动) +# try: +# URI = "bolt://192.168.0.46:57687" +# USERNAME = "neo4j" +# PASSWORD = "zdht123@" +# with open("/storage01/home/hdf/project/wxkgrag/kgextract/output/output3/neo4j_export_merged1.json", "r", encoding="utf-8") as f: +# data = json.load(f) +# kg = MilitaryKnowledgeGraph( +# uri="bolt://192.168.0.46:57687", +# auth=("neo4j", "zdht123@"), +# ) +# entity_count, rel_count = kg.process_data(data) + + +# finally: +# # kg.clear_database() # 取消注释以清理测试数据 +# kg.close() + + diff --git a/kg_build/model_api.py b/kg_build/model_api.py new file mode 100644 index 0000000..bb8f1a9 --- /dev/null +++ b/kg_build/model_api.py @@ -0,0 +1,580 @@ +import httpx +from openai import OpenAI +import os +import requests +import json +import asyncio +import aiohttp +from typing import List, Dict, Any,Optional +from tqdm import tqdm # 进度条支持(可选) +from openai import AsyncOpenAI + +class OpenaiAPI: + # def __init__(self): + # self.openai_embedding_api_base = os.getenv("OPENAI_API_EMBEDDING_BASE") + # self.openai_embedding_model = os.getenv("OPENAI_EMBEDDING_MODEL") + # self.openai_chat_api_base = os.getenv("OPENAI_API_BASE") + # self.openai_chat_model = os.getenv("OPENAI_MODEL") + # self.openai_api_key = os.getenv("OPENAI_API_KEY") + # self.openai_reranker_api_base = os.getenv("OPENAI_API_RERANKER_BASE") + # self.openai_reranker_model = os.getenv("OPENAI_RERANKER_MODEL") + + # self.embedding_client = OpenAI( + # api_key=self.openai_api_key, + # base_url=self.openai_embedding_api_base, + # ) + # self.chat_client = OpenAI( + # api_key=self.openai_api_key, + # base_url=self.openai_chat_api_base, + # ) + # self.rerank_client = OpenAI( + # api_key=self.openai_api_key, + # base_url=self.openai_reranker_api_base, + # ) + @staticmethod + def get_embeddings(embedding_texts: List[str]): + base_url=os.getenv("OPENAI_API_EMBEDDING_BASE") + embedding_base_url = os.path.join(base_url, "embeddings") + with httpx.Client(timeout=60) as client: + response = client.post( + embedding_base_url, + json={"model": "bge-m3", "input": embedding_texts}, + headers={"Authorization": os.getenv("OPENAI_API_KEY")}, + ) + embedding_list = response.json()["data"][0]["embedding"] + # response = OpenAI( + # api_key=os.getenv("OPENAI_API_KEY","EMPTY"), + # base_url=os.getenv("OPENAI_API_EMBEDDING_BASE","http://172.18.30.122:40052/v1"), + # ).embeddings.create( + # model=os.getenv("OPENAI_EMBEDDING_MODEL","bge-m3"), + # input=embedding_texts, + # ) + # embedding_list = response.data[0].embedding + return embedding_list + + @staticmethod + def batch_embeddings(embedding_texts: List[str]): + base_url=os.getenv("OPENAI_API_EMBEDDING_BASE") + embedding_base_url = os.path.join(base_url, "embeddings") + with httpx.Client(timeout=60) as client: + response = client.post( + embedding_base_url, + json={"model": "bge-m3", "input": embedding_texts}, + headers={"Authorization": os.getenv("OPENAI_API_KEY")}, + ) + embedding_list = response.json()["data"] + + return embedding_list + + @staticmethod + def rerank_query(query:str, documents:List[str], top_n: str =3): + """ + 发送重排序请求到 GPUStack API。 + + :param query: 查询字符串 + :param documents: 文档列表(字符串列表) + :param top_n: 返回的文档数量 + :param model: 使用的模型名称 + :param api_key: API 密钥 + :param server_url: API 服务器地址 + :return: API 的响应结果(JSON 格式) + + return : + { + "id": "rerank-1446b27f0d8642288578ee26707253a1", + "model": "bge-reranker-v2-m3", + "usage": { + "total_tokens": 53 + }, + "results": [ + { + "index": 2, + "document": { + "text": "I have a dog named Dollor" + }, + "relevance_score": 0.297119140625 + }, + { + "index": 1, + "document": { + "text": "hi" + }, + "relevance_score": 0.0009255409240722656 + }, + { + "index": 0, + "document": { + "text": "what is panda?" + }, + "relevance_score": 0.0008897781372070312 + } + ] + } + """ + + # 请求头 + headers = { + 'Content-Type': 'application/json', + 'Authorization': f'Bearer {os.getenv("OPENAI_API_KEY")}' + } + + # 请求体 + data = { + "model": os.getenv("OPENAI_RERANKER_MODEL"), + "query": query, + "top_n": top_n, + "documents": documents + } + + # 发送 POST 请求 + response = requests.post(os.getenv("OPENAI_API_RERANKER_BASE") + "/rerank", headers=headers, data=json.dumps(data)) + results_list = [] + + # 检查响应状态码 + if response.status_code == 200: + result_json= response.json() # 返回解析后的 JSON 数据 + for result in result_json["results"]: + results_list.append({"index":result["index"],"text":result["document"]["text"],"scores":result["relevance_score"]}) + # results_list.append(result["document"]["text"]) + # relevance_scores.append(result["relevance_score"]) + return results_list + + else: + raise Exception(f"Error: {response.status_code}\n{response.text}") # 抛出异常 + @staticmethod + def embedding_cosine_similarity(text_1, text_2): + # 请求头 + headers = { + 'Content-Type': 'application/json', + 'Authorization': f'Bearer {os.getenv("OPENAI_API_KEY")}' + } + + # 请求体 + data = { + "text_1": text_1, + "text_2": text_2, + "model": "bge-rerank" + } + + # # 发送 POST 请求 + # response = requests.post(os.getenv("OPENAI_API_EMBEDDING_BASE") + "/score", headers=headers, data=json.dumps(data)) + response = requests.post(os.getenv("OPENAI_API_RERANKER_BASE") + "/score", headers=headers, data=json.dumps(data)) + if response.status_code == 200: + result_json= response.json() + score = result_json["data"][0]["score"] + return score + else: + raise Exception(f"Error: {response.status_code}\n{response.text}") # 抛出异常 + @staticmethod + def open_api_chat(query: str,model: str): + response = OpenAI( + api_key=os.getenv("OPENAI_API_KEY"), + base_url=os.getenv("OPENAI_API_BASE"), + ).chat.completions.create( + model=model, + messages=[ + {"role":"system","content":"You are a helpful assistant."}, + {"role": "user", "content": query}, + ], + temperature=0.6, + stream=False + ) + return response.choices[0].message.content + + @staticmethod + async def open_api_chat_async(query: str, model: str = None, temperature: float = 0): + """ + async Chat API(graph search) + + Args: + query: + model: (OPENAI_MODEL) + temperature: + + Returns: + str: LLM return + """ + if model is None: + model = os.getenv("OPENAI_MODEL") + + api_key = os.getenv("OPENAI_API_KEY") + base_url = os.getenv("OPENAI_API_BASE") + + if not api_key or not base_url: + raise ValueError("Missing OpenAI API configuration") + + async with aiohttp.ClientSession() as session: + async with session.post( + f"{base_url}/chat/completions", + headers={ + "Authorization": f"Bearer {api_key}", + "Content-Type": "application/json" + }, + json={ + "model": model, + "messages": [ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": query} + ], + "temperature": temperature, + "stream": False + }, + timeout=aiohttp.ClientTimeout(total=60) + ) as response: + if response.status == 200: + data = await response.json() + return data["choices"][0]["message"]["content"] + else: + error_text = await response.text() + raise Exception(f"API") + @staticmethod + async def open_api_chat_async_json(query: str, model: str = None, temperature: float = 0.6): + """ + async Chat API (graph search) - 强制 JSON 输出模式(若后端支持) + + Args: + query: 用户提示(应包含明确的 JSON 输出指令) + model: 模型名称 + temperature: 温度参数 + + Returns: + str: LLM 返回的纯 JSON 字符串(理想情况下) + """ + if model is None: + model = os.getenv("OPENAI_MODEL") + + api_key = os.getenv("OPENAI_API_KEY") + base_url = os.getenv("OPENAI_API_BASE") + + if not api_key or not base_url: + raise ValueError("Missing OpenAI API configuration") + + # 构造请求体 + payload = { + "model": model, + "messages": [ + {"role": "system", "content": "You are a helpful assistant that outputs only valid JSON."}, + {"role": "user", "content": query} + ], + "temperature": temperature, + "stream": False, + "response_format": {"type": "json_object"} # ←←← 关键:强制 JSON 模式 + } + + # 某些后端(如旧版)可能不支持 extra_body,可移除 + # 如果你确定后端是 DashScope/Qwen,可以保留或删除 extra_body + # payload["extra_body"] = {"chat_template_kwargs": {"enable_thinking": False}} + + async with aiohttp.ClientSession() as session: + async with session.post( + f"{base_url}/chat/completions", + headers={ + "Authorization": f"Bearer {api_key}", + "Content-Type": "application/json" + }, + json=payload, + timeout=aiohttp.ClientTimeout(total=60) + ) as response: + if response.status == 200: + data = await response.json() + return data["choices"][0]["message"]["content"] + else: + error_text = await response.text() + raise Exception(f"API调用失败: {response.status} - {error_text}") + @staticmethod + def open_api_caht_without_thinking(query:str,model:str): + response = OpenAI( + api_key=os.getenv("OPENAI_API_KEY"), + base_url=os.getenv("OPENAI_API_BASE"), + ).chat.completions.create( + model=model, + messages=[ + {"role":"system","content":"You are a helpful assistant."}, + {"role": "user", "content": query},], + + temperature=0.1, + stream=False, + extra_body={"chat_template_kwargs": {"enable_thinking": False}}) + return response.choices[0].message.content + + @staticmethod + def open_api_chat_stream(query: str,model: str): + response = OpenAI( + api_key=os.getenv("OPENAI_API_KEY"), + base_url=os.getenv("OPENAI_API_BASE"), + ).chat.completions.create( + model=model, + messages=[ + {"role":"system","content":"You are a helpful assistant."}, + {"role": "user", "content": query}, + ], + temperature=0.6, + stream=True + ) + for chunk in response: + content = chunk.choices[0].delta.content + if content: + yield content.encode('utf-8') + + + @staticmethod + def context_chunk_process(markdown_context: str, chunks: List[Dict[str, Any]]) -> List[Dict[str, Any]]: + """同步调用入口""" + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + try: + result = loop.run_until_complete( + batch_chunk_process(markdown_context, chunks) + ) + finally: + loop.close() + return result + + @staticmethod + def openai_chat(query:str,timeout:int=60): + """调用OpenAI API""" + try: + base = os.getenv("OPENAI_API_BASE","http://192.168.0.46:59800/v1") + + client = OpenAI( + api_key=os.getenv("OPENAI_API_KEY","none"), + base_url=os.getenv("OPENAI_API_BASE","http://192.168.0.46:59800/v1"), + timeout=timeout # 👈 设置整体请求超时(秒) + + ) + + response = client.chat.completions.create( + model="Qwen3.5-35B-A3B", + messages=[ + {"role": "user", "content": query}, + ], + temperature=0.1, + stream=False, + response_format = {"type": "json_object"}, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + except Exception as e: + print(f"调用OpenAI API时出错: {e}") + return None + + @staticmethod + async def openai_chat_aysnc(query: str, timeout: int = 180) -> str | None: + """异步调用 OpenAI 兼容 API(如本地部署的 Qwen、vLLM、Ollama 等)""" + try: + base_url = os.getenv("OPENAI_API_BASE", "http://192.168.0.46:59800/v1") + api_key = os.getenv("OPENAI_API_KEY", "none") + + client = AsyncOpenAI( + api_key=api_key, + base_url=base_url, + timeout=timeout # 整体请求超时(秒) + ) + + response = await client.chat.completions.create( + model="Qwen3.5-35B-A3B", + messages=[ + {"role": "user", "content": query}, + ], + temperature=0.1, + stream=False, + response_format={"type": "json_object"}, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + + except Exception as e: + print(f"调用 OpenAI API 时出错: {e}") + return None + finally: + # 可选:显式关闭客户端(通常不需要,但可避免警告) + await client.close() + + + @staticmethod + def generate_embedding(text: str) -> Optional[List[float]]: + """调用OpenAI生成文本embedding""" + try: + client = OpenAI( + api_key=os.getenv("OPENAI_API_KEY", "EMPTY"), + base_url=os.getenv("OPENAI_API_EMBEDDING_BASE", "http://192.168.0.46/v1"), + ) + response = client.embeddings.create( + model="bge-m3", # 或你部署的embedding模型名 + input=text + ) + return response.data[0].embedding + except Exception as e: + print(f"生成embedding失败: {e}") + return None + +async def batch_chunk_process( + markdown_context: str, + chunks: List[Dict[str, Any]], + batch_size: int = 5, + timeout: int = 30 + ) -> List[Dict[str, Any]]: + """ + 批量处理文档块(异步并发) + + Args: + markdown_context: 完整文档内容 + chunks: 文档块列表,每个块需包含"text"键 + batch_size: 并发请求数 (默认5) + timeout: 单个请求超时时间(秒) + + Returns: + 处理后的文档块列表 + """ + # 初始化参数 + api_key = os.getenv("OPENAI_API_KEY") + base_url = os.getenv("OPENAI_API_BASE") + model = os.getenv("OPENAI_MODEL", "qwen3.5-35b") + + if not api_key or not base_url: + raise ValueError("Missing OpenAI API configuration") + + async def process_single_chunk( + session: aiohttp.ClientSession, + chunk: Dict[str, Any], + semaphore: asyncio.Semaphore + ) -> Dict[str, Any]: + """处理单个chunk的异步函数""" + async with semaphore: + text = chunk.get("text", "").strip() + if not text: + return chunk + + prompt = f""" + {markdown_context} + {text} + Please provide a succinct context for this chunk within the document. + Respond ONLY with the context text, no additional commentary. + """ + chinese_prompt = f""" + <文档> + {markdown_context} + + 以下是需要定位到整体文档中的片段 + <片段> + {text} + + 请简要说明该片段在整体文档中的上下文关系,以提升片段搜索效果。只需给出简洁的上下文说明,无需其他内容。 + """ + + try: + async with session.post( + f"{base_url}/chat/completions", + headers={"Authorization": f"Bearer {api_key}"}, + json={ + "model": model, + "messages": [ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": chinese_prompt} + ], + "temperature": 0.1, + "extra_body": {"chat_template_kwargs": {"enable_thinking": False}} + }, + timeout=timeout + ) as response: + if response.status == 200: + data = await response.json() + if data.get("choices"): + chunk["text"] = data["choices"][0]["message"]["content"].strip() + else: + print(f"API error for chunk: {await response.text()}") + except Exception as e: + print(f"Error processing chunk: {e}") + + return chunk + + # 创建信号量控制并发数 + semaphore = asyncio.Semaphore(batch_size) + + # 异步处理所有chunks + async with aiohttp.ClientSession() as session: + tasks = [ + process_single_chunk(session, chunk, semaphore) + for chunk in chunks + ] + + # 使用tqdm显示进度(可选) + processed_chunks = [] + for future in tqdm(asyncio.as_completed(tasks), total=len(tasks)): + processed_chunks.append(await future) + + return processed_chunks + +def prepare_rag_prompt(query, documents): + docs = "" + for i, doc in enumerate(documents): + docs += f"文本信息{i+1}:{doc}\n" + return f"""你作为一个文档检索问答专家,请你从以下文本信息中选取有用的内容作为参考,仔细思考后用中文回答用户的问题,如果文本中没有关于问题的答案,则回答不知道: + ----- + {docs} + ----- + 用户提问:{query} + 你的回答:""" + +def query_rewrite(query): + prompt = f""" + 你是一个专业的搜索查询优化助手。你的任务是根据用户输入的原始查询,生成更清晰、更易被搜索引擎理解的改写版本。请遵循以下规则: + + 1. **保持原意**:改写后的查询必须与用户意图一致,不能曲解原意。 + 2. **简洁清晰**:去掉冗余词,优化表达,但不要过度缩写。 + 3. **结构化**:如果查询适合拆解,可以适当结构化(如添加隐含的限定条件)。 + 4. **自然语言**:确保改写后的查询仍然符合自然语言习惯。 + 5. **多语言支持**:如果查询是中文,优先用中文改写;如果是英文,用英文优化。 + + 请改写以下查询,直接返回优化后的内容,不要额外解释: + 【用户查询开始】 + {query} + 【用户查询结束】 + """ + return OpenaiAPI.open_api_chat(prompt) + + +def RAG_PROMPT(QUERY,CONTEXT): + PROMPT = f""" +### Task: +Respond to the user query using the provided context, incorporating inline citations in the format [source_id] **only when the tag is explicitly provided** in the context. + +### Guidelines: +- If you don't know the answer, clearly state that. +- If uncertain, ask the user for clarification. +- Respond in the same language as the user's query. +- If the context is unreadable or of poor quality, inform the user and provide the best possible answer. +- If the answer isn't present in the context but you possess the knowledge, explain this to the user and provide the answer using your own understanding. +- When you find corresponding content in the provided sources, try to quote it verbatim as much as possible. +- When quoting from sources, reproduce the original text verbatim—do not omit, paraphrase, or add content. +- **Only include inline citations using [source_id] (e.g., [1], [2]) when a `` tag is explicitly provided in the context.** +- If the source file has a .glb extension, directly mark the corresponding content with the source_id in the relevant position. +- Do not cite if the or tag is not provided in the context. +- Do not use XML tags in your response. +- **If none of the provided sources contain relevant information to answer the question, respond only with: "没有找到相关来源" (No relevant sources found). Do not add any other content. +- Ensure citations are concise and directly related to the information provided. + +### Example of Citation: +If the user asks about a specific topic and the information is found in "whitepaper.pdf" with a provided , the response should include the citation like so: +* "According to the study, the proposed method increases efficiency by 20% [whitepaper.pdf]." +If no is present, the response should omit the citation. + +### Output: +Provide a clear and direct response to the user's query, including inline citations in the format [source_id] only when the tag is present in the context. + + +{CONTEXT} + + + +{QUERY} + +""" + return PROMPT + +# for chunk in response: +# content = chunk.choices[0].delta.content +# if content: +# print(content, end='', flush=True) +# print('\n') + # return response diff --git a/kg_build/test/杩囨护鏂囨湰鎶藉彇缁撴灉.json b/kg_build/test/杩囨护鏂囨湰鎶藉彇缁撴灉.json new file mode 100644 index 0000000..2a1db22 --- /dev/null +++ b/kg_build/test/杩囨护鏂囨湰鎶藉彇缁撴灉.json @@ -0,0 +1,133 @@ +{ + "entities": [ + { + "type": "安全警告", + "properties": { + "名称": "发动机的安全警告", + "概述": "本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。", + "警告": "1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。", + "注意": "1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "内容": "1 安全警告\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\n1.1 警告\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\n1.2 注意\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"1 安全警告\\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\\n1.1 警告\\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\\n1.2 注意\\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\\n6) 所有密封件(O形圈、金属密封环)拆装必换。\\n7) 紧固件必须按规定力矩和顺序紧固。\\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_028fe60d-1c91-46ff-bd49-c3ea2b02242e.pdf#page=2\"}]" + } + }, + { + "type": "基本情况", + "properties": { + "名称": "发动机的基本情况", + "主要功能": "船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑; \n2) 曲柄连杆机构:实现往复—旋转运动转换; \n3) 燃烧室部件:完成燃烧做功; \n4) 排气阀驱动系统:控制废气排放; \n5) 燃油喷射系统:完成燃油定时、定量喷射; \n6) 扫气与增压系统:提高换气效率与功率密度。", + "工作条件": "2.2.1 正常运行条件\n1)环境条件长期纵倾: $\\pm 5 ^ { \\circ }$ ;横倾: $\\pm 1 5 ^ { \\circ }$ ; \n短期纵摇: $\\pm 1 0 ^ { \\circ }$ ( $5 { \\sim } 8 \\ \\textrm { s }$ );横摇: $\\pm 4 5 ^ { \\circ }$ ( $\\mathord { \\left. \\left( 8 \\sim 1 3 \\right. \\right. }$ s); \n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$ ; \n相对湿度: ${ \\leqslant } 9 3 \\%$ ( $4 0 \\textrm { ‰}$ )。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "内容": "2 概述\n2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑; \n2) 曲柄连杆机构:实现往复—旋转运动转换; \n3) 燃烧室部件:完成燃烧做功; \n4) 排气阀驱动系统:控制废气排放; \n5) 燃油喷射系统:完成燃油定时、定量喷射; \n6) 扫气与增压系统:提高换气效率与功率密度。\n2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件长期纵倾: $\\pm 5 ^ { \\circ }$ ;横倾: $\\pm 1 5 ^ { \\circ }$ ; \n短期纵摇: $\\pm 1 0 ^ { \\circ }$ ( $5 { \\sim } 8 \\ \\textrm { s }$ );横摇: $\\pm 4 5 ^ { \\circ }$ ( $\\mathord { \\left. \\left( 8 \\sim 1 3 \\right. \\right. }$ s); \n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$ ; \n相对湿度: ${ \\leqslant } 9 3 \\%$ ( $4 0 \\textrm { ‰}$ )。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"2 概述\\n2.1 主要功能\\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\\n发动机主要由以下子系统组成:\\n1) 机座与机架组件:承载与结构支撑; \\n2) 曲柄连杆机构:实现往复—旋转运动转换; \\n3) 燃烧室部件:完成燃烧做功; \\n4) 排气阀驱动系统:控制废气排放; \\n5) 燃油喷射系统:完成燃油定时、定量喷射; \\n6) 扫气与增压系统:提高换气效率与功率密度。\\n2.2 工作条件\\n2.2.1 正常运行条件\\n1)环境条件长期纵倾: $\\\\pm 5 ^ { \\\\circ }$ ;横倾: $\\\\pm 1 5 ^ { \\\\circ }$ ; \\n短期纵摇: $\\\\pm 1 0 ^ { \\\\circ }$ ( $5 { \\\\sim } 8 \\\\ \\\\textrm { s }$ );横摇: $\\\\pm 4 5 ^ { \\\\circ }$ ( $\\\\mathord { \\\\left. \\\\left( 8 \\\\sim 1 3 \\\\right. \\\\right. }$ s); \\n环境温度: $+ 5 \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } \\\\sim \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ + 5 5 ~ \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } ~ }$ ; \\n相对湿度: ${ \\\\leqslant } 9 3 \\\\%$ ( $4 0 \\\\textrm { ‰}$ )。\\n2)能源条件\\n表 2.1 冷水机组正常使用时的能源条件\\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\\n2.2.2 非正常运行条件\\n表 2.2 非正常输入条件及产生后果\\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\\n表 2.3 设备故障非正常输出条件及可能产生后果\\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_6fe19ec0-e33a-4f1a-ad05-d2c016af02db.pdf#page=3\"}]" + } + }, + { + "type": "组成", + "properties": { + "名称": "发动机的组成", + "内容": "船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\n图 3.1 船舶主发动机组成图\nimages/6fc722802de6802965af72c518cabcfe8396a3964a9870d16b4f6eb3f902b616.jpg\n表 3.1 船舶主发动机组成部分\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\\n图 3.1 船舶主发动机组成图\\nimages/6fc722802de6802965af72c518cabcfe8396a3964a9870d16b4f6eb3f902b616.jpg\\n表 3.1 船舶主发动机组成部分\\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_5aa1720a-ed5e-4f38-8f3f-452a73e60b2a.pdf#page=5\"}]" + } + }, + { + "type": "工作原理", + "properties": { + "名称": "发动机的工作原理", + "内容": "主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\n船舶主发动机工作原理\n图 3.2 船舶主发动机组成图\nimages/bd4258956b20d9dcabbd0c712d8e534e398fb374d0cb399f464c893b45134f3a.jpg\n机座与机架组件用于称重与结构支持,其整体图如图 3.3所示。\n图 3.3 机座与机架组件整体图\nimages/bfa885471a29ea79161508b99ccbe8b105ed5d34631d52f844f80a67bb26c9f5.jpg\n图 3.4 曲柄连杆机构工作原理图\nimages/5eccda7191be7f95f7ee738c15a5e3bc2e1dab428a10d5f74cc8dd2b0fd3da8b.jpg\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\n图 3.5 燃烧室部件工作原理图\nimages/5801f66aca8813958597a692b39a88de267c365557f9698663ed1b0304c1b184.jpg\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\n图 3.6 排气阀驱动系统工作原理图\nimages/4356ee5a81d0ad1af582209f40cc3f53218918ee4dd2b4b1be17896313c12585.jpg\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\n核心原理与步骤\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\n图 3.7 燃油喷射系统工作原理图\nimages/5228256a4a600e6a4fd77ac68044c055b8eaafb6c7d3721b58e28d279b1fbc01.jpg\n如图 3.7 中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\n图 3.8 扫气与增压系统工作原理图\nimages/1ef200926265e45dc11f24e9cb9cd849bb679b4e2f49f60d6b92e8fad6dee1ba.jpg\n船舶柴油机扫气与增压系统原理核心在于废气涡轮增压和扫气过程配合,利用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 $7 0 0 { - } 9 0 0 ^ { \\circ } \\mathrm { ~ C ~ }$ 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\\n船舶主发动机工作原理\\n图 3.2 船舶主发动机组成图\\nimages/bd4258956b20d9dcabbd0c712d8e534e398fb374d0cb399f464c893b45134f3a.jpg\\n机座与机架组件用于称重与结构支持,其整体图如图 3.3所示。\\n图 3.3 机座与机架组件整体图\\nimages/bfa885471a29ea79161508b99ccbe8b105ed5d34631d52f844f80a67bb26c9f5.jpg\\n图 3.4 曲柄连杆机构工作原理图\\nimages/5eccda7191be7f95f7ee738c15a5e3bc2e1dab428a10d5f74cc8dd2b0fd3da8b.jpg\\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\\n图 3.5 燃烧室部件工作原理图\\nimages/5801f66aca8813958597a692b39a88de267c365557f9698663ed1b0304c1b184.jpg\\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\\n图 3.6 排气阀驱动系统工作原理图\\nimages/4356ee5a81d0ad1af582209f40cc3f53218918ee4dd2b4b1be17896313c12585.jpg\\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\\n核心原理与步骤\\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\\n图 3.7 燃油喷射系统工作原理图\\nimages/5228256a4a600e6a4fd77ac68044c055b8eaafb6c7d3721b58e28d279b1fbc01.jpg\\n如图 3.7 中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\\n图 3.8 扫气与增压系统工作原理图\\nimages/1ef200926265e45dc11f24e9cb9cd849bb679b4e2f49f60d6b92e8fad6dee1ba.jpg\\n船舶柴油机扫气与增压系统原理核心在于废气涡轮增压和扫气过程配合,利用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 $7 0 0 { - } 9 0 0 ^ { \\\\circ } \\\\mathrm { ~ C ~ }$ 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_5701c7c6-5506-446a-9f86-135098dc1ad9.pdf#page=8\"}]" + } + }, + { + "type": "技术指标参数", + "properties": { + "名称": "发动机的技术指标参数", + "内容": "船舶主发动机的基本指标参见表3.2。\n表 3.2 船舶主发动机基本参数\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度 ≤700cSt@50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径×行程 500 mm × 2200 mm 平均有效压力(BMEP) ≈ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640 kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50℃ 冷却水进口温度 ≤ 36℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"船舶主发动机的基本指标参见表3.2。\\n表 3.2 船舶主发动机基本参数\\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度 ≤700cSt@50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径×行程 500 mm × 2200 mm 平均有效压力(BMEP) ≈ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640 kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50℃ 冷却水进口温度 ≤ 36℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_7948264a-4ef1-4c21-a8ef-0dd71ff2500a.pdf#page=10\"}]" + } + }, + { + "type": "接口关系", + "properties": { + "名称": "发动机的接口关系", + "内容": "船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与舰船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\n1) 安装接口\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48$\\times 3 2 0$ 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\n2) 能源接口\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管( $\\mathrm { 0 4 0 2 0 2 / 0 5 0 3 }$ 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\n3) 信息与监测接口\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与舰船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\\n1) 安装接口\\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48$\\\\times 3 2 0$ 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\\n2) 能源接口\\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管( $\\\\mathrm { 0 4 0 2 0 2 / 0 5 0 3 }$ 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\\n3) 信息与监测接口\\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_2f82725d-9018-4257-bda6-b650d0d9c538.pdf#page=12\"}]" + } + }, + { + "type": "布置情况", + "properties": { + "名称": "发动机的布置情况", + "内容": "全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\n船舶主发动机布置情况见表 3.3。\n表 3.3 船舶主发动机布置情况\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵肿线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\\n船舶主发动机布置情况见表 3.3。\\n表 3.3 船舶主发动机布置情况\\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵肿线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_1351c597-87e5-4b9e-beb7-4bcf38d95f3d.pdf#page=13\"}]" + } + }, + { + "type": "器材保障", + "properties": { + "名称": "发动机的器材保障", + "保障设施、保障设备(工具)信息汇总表": "表 5.1 船舶主发动机工具信息汇总表\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速", + "消耗材料信息汇总表": "表 5.2 船舶主发动机消耗材料信息汇总表\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "内容": "5器材保障\n5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\n5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_da75bf1b-5c65-4651-a9a7-a8dd291ccd32.pdf#page=52\"}]" + } + }, + { + "type": "维修安全防护及注意事项汇总表", + "properties": { + "名称": "发动机的维修安全防护及注意事项汇总表", + "概述": "以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。", + "安全防护": "将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花", + "注意事项": "将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "内容": "6 维修安全防护及注意事项汇总表\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\n6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\n6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_3fd2cce1-8da3-4ef2-8274-526d282982d1.pdf#page=58\"}]" + } + } + ], + "relations": [ + { + "type": "安全警告", + "from_entity": "发动机", + "to_entity": "发动机的安全警告" + }, + { + "type": "实现", + "from_entity": "发动机", + "to_entity": "发动机的基本情况" + }, + { + "type": "包括", + "from_entity": "发动机", + "to_entity": "发动机的组成" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的工作原理" + }, + { + "type": "具有", + "from_entity": "发动机", + "to_entity": "发动机的技术指标参数" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的接口关系" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的布置情况" + }, + { + "type": "依赖", + "from_entity": "发动机", + "to_entity": "发动机的器材保障" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的维修安全防护及注意事项汇总表" + } + ] +} \ No newline at end of file diff --git a/kg_build/test/杩囨护鏂囨湰鎶藉彇缁撴灉_0318.json b/kg_build/test/杩囨护鏂囨湰鎶藉彇缁撴灉_0318.json new file mode 100644 index 0000000..767e18d --- /dev/null +++ b/kg_build/test/杩囨护鏂囨湰鎶藉彇缁撴灉_0318.json @@ -0,0 +1,257 @@ +{ + "entities": [ + { + "type": "警告", + "properties": { + "名称": "发动机的警告", + "内容": "1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_1af43462-bf76-401e-8077-1c094011fa11.pdf#page=2\"}]" + } + }, + { + "type": "注意", + "properties": { + "名称": "发动机的注意", + "内容": "1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"1) 所有更换件必须使用原厂或等同技术条件的认可备件。\\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\\n6) 所有密封件(O形圈、金属密封环)拆装必换。\\n7) 紧固件必须按规定力矩和顺序紧固。\\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_c12adc65-81d0-4045-8452-b8da4f99da97.pdf#page=2\"}]" + } + }, + { + "type": "安全警告", + "properties": { + "名称": "发动机的安全警告", + "概述": "本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。", + "警告": "1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。", + "注意": "1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "内容": "1 安全警告\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\n1.1 警告\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\n1.2 注意\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"1 安全警告\\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\\n1.1 警告\\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\\n1.2 注意\\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\\n6) 所有密封件(O形圈、金属密封环)拆装必换。\\n7) 紧固件必须按规定力矩和顺序紧固。\\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_ba867d46-d66e-4bc7-8386-219463942da3.pdf#page=2\"}]" + } + }, + { + "type": "主要功能", + "properties": { + "名称": "发动机的主要功能", + "内容": "船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑; \n2) 曲柄连杆机构:实现往复—旋转运动转换; \n3) 燃烧室部件:完成燃烧做功; \n4) 排气阀驱动系统:控制废气排放; \n5) 燃油喷射系统:完成燃油定时、定量喷射; \n6) 扫气与增压系统:提高换气效率与功率密度。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\\n发动机主要由以下子系统组成:\\n1) 机座与机架组件:承载与结构支撑; \\n2) 曲柄连杆机构:实现往复—旋转运动转换; \\n3) 燃烧室部件:完成燃烧做功; \\n4) 排气阀驱动系统:控制废气排放; \\n5) 燃油喷射系统:完成燃油定时、定量喷射; \\n6) 扫气与增压系统:提高换气效率与功率密度。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_a911158c-71c4-467d-9aae-75cf6db172dd.pdf#page=3\"}]" + } + }, + { + "type": "环境条件", + "properties": { + "名称": "发动机的环境条件", + "正常运行条件": "1)环境条件长期纵倾: $\\pm 5 ^ { \\circ }$ ;横倾: $\\pm 1 5 ^ { \\circ }$ ; \n短期纵摇: $\\pm 1 0 ^ { \\circ }$ ( $5 { \\sim } 8 \\ \\textrm { s }$ );横摇: $\\pm 4 5 ^ { \\circ }$ ( $\\mathord { \\left. \\left( 8 \\sim 1 3 \\right. \\right. }$ s); \n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$ ; \n相对湿度: ${ \\leqslant } 9 3 \\%$ ( $4 0 \\textrm { ‰}$ )。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz", + "非正常运行条件": "表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "内容": "2.2.1 正常运行条件\n1)环境条件长期纵倾: $\\pm 5 ^ { \\circ }$ ;横倾: $\\pm 1 5 ^ { \\circ }$ ; \n短期纵摇: $\\pm 1 0 ^ { \\circ }$ ( $5 { \\sim } 8 \\ \\textrm { s }$ );横摇: $\\pm 4 5 ^ { \\circ }$ ( $\\mathord { \\left. \\left( 8 \\sim 1 3 \\right. \\right. }$ s); \n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$ ; \n相对湿度: ${ \\leqslant } 9 3 \\%$ ( $4 0 \\textrm { ‰}$ )。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"2.2.1 正常运行条件\\n1)环境条件长期纵倾: $\\\\pm 5 ^ { \\\\circ }$ ;横倾: $\\\\pm 1 5 ^ { \\\\circ }$ ; \\n短期纵摇: $\\\\pm 1 0 ^ { \\\\circ }$ ( $5 { \\\\sim } 8 \\\\ \\\\textrm { s }$ );横摇: $\\\\pm 4 5 ^ { \\\\circ }$ ( $\\\\mathord { \\\\left. \\\\left( 8 \\\\sim 1 3 \\\\right. \\\\right. }$ s); \\n环境温度: $+ 5 \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } \\\\sim \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ + 5 5 ~ \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } ~ }$ ; \\n相对湿度: ${ \\\\leqslant } 9 3 \\\\%$ ( $4 0 \\\\textrm { ‰}$ )。\\n2)能源条件\\n表 2.1 冷水机组正常使用时的能源条件\\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\\n2.2.2 非正常运行条件\\n表 2.2 非正常输入条件及产生后果\\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\\n表 2.3 设备故障非正常输出条件及可能产生后果\\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_24de725a-4b83-4c4c-b212-841d623265a4.pdf#page=3\"}]" + } + }, + { + "type": "基本情况", + "properties": { + "名称": "发动机的基本情况", + "主要功能": "船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑; \n2) 曲柄连杆机构:实现往复—旋转运动转换; \n3) 燃烧室部件:完成燃烧做功; \n4) 排气阀驱动系统:控制废气排放; \n5) 燃油喷射系统:完成燃油定时、定量喷射; \n6) 扫气与增压系统:提高换气效率与功率密度。", + "工作条件": "2.2.1 正常运行条件\n1)环境条件长期纵倾: $\\pm 5 ^ { \\circ }$ ;横倾: $\\pm 1 5 ^ { \\circ }$ ; \n短期纵摇: $\\pm 1 0 ^ { \\circ }$ ( $5 { \\sim } 8 \\ \\textrm { s }$ );横摇: $\\pm 4 5 ^ { \\circ }$ ( $\\mathord { \\left. \\left( 8 \\sim 1 3 \\right. \\right. }$ s); \n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$ ; \n相对湿度: ${ \\leqslant } 9 3 \\%$ ( $4 0 \\textrm { ‰}$ )。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "内容": "2 概述\n2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑; \n2) 曲柄连杆机构:实现往复—旋转运动转换; \n3) 燃烧室部件:完成燃烧做功; \n4) 排气阀驱动系统:控制废气排放; \n5) 燃油喷射系统:完成燃油定时、定量喷射; \n6) 扫气与增压系统:提高换气效率与功率密度。\n2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件长期纵倾: $\\pm 5 ^ { \\circ }$ ;横倾: $\\pm 1 5 ^ { \\circ }$ ; \n短期纵摇: $\\pm 1 0 ^ { \\circ }$ ( $5 { \\sim } 8 \\ \\textrm { s }$ );横摇: $\\pm 4 5 ^ { \\circ }$ ( $\\mathord { \\left. \\left( 8 \\sim 1 3 \\right. \\right. }$ s); \n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$ ; \n相对湿度: ${ \\leqslant } 9 3 \\%$ ( $4 0 \\textrm { ‰}$ )。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"2 概述\\n2.1 主要功能\\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\\n发动机主要由以下子系统组成:\\n1) 机座与机架组件:承载与结构支撑; \\n2) 曲柄连杆机构:实现往复—旋转运动转换; \\n3) 燃烧室部件:完成燃烧做功; \\n4) 排气阀驱动系统:控制废气排放; \\n5) 燃油喷射系统:完成燃油定时、定量喷射; \\n6) 扫气与增压系统:提高换气效率与功率密度。\\n2.2 工作条件\\n2.2.1 正常运行条件\\n1)环境条件长期纵倾: $\\\\pm 5 ^ { \\\\circ }$ ;横倾: $\\\\pm 1 5 ^ { \\\\circ }$ ; \\n短期纵摇: $\\\\pm 1 0 ^ { \\\\circ }$ ( $5 { \\\\sim } 8 \\\\ \\\\textrm { s }$ );横摇: $\\\\pm 4 5 ^ { \\\\circ }$ ( $\\\\mathord { \\\\left. \\\\left( 8 \\\\sim 1 3 \\\\right. \\\\right. }$ s); \\n环境温度: $+ 5 \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } \\\\sim \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ + 5 5 ~ \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } ~ }$ ; \\n相对湿度: ${ \\\\leqslant } 9 3 \\\\%$ ( $4 0 \\\\textrm { ‰}$ )。\\n2)能源条件\\n表 2.1 冷水机组正常使用时的能源条件\\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\\n2.2.2 非正常运行条件\\n表 2.2 非正常输入条件及产生后果\\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\\n表 2.3 设备故障非正常输出条件及可能产生后果\\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_4961c3e7-92c5-4ed6-bdac-170bca04ed0e.pdf#page=3\"}]" + } + }, + { + "type": "组成", + "properties": { + "名称": "发动机的组成", + "内容": "船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\n图 3.1 船舶主发动机组成图\nimages/6fc722802de6802965af72c518cabcfe8396a3964a9870d16b4f6eb3f902b616.jpg\n表 3.1 船舶主发动机组成部分\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\\n图 3.1 船舶主发动机组成图\\nimages/6fc722802de6802965af72c518cabcfe8396a3964a9870d16b4f6eb3f902b616.jpg\\n表 3.1 船舶主发动机组成部分\\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_f15b8deb-f268-480d-aabd-2dec131beaa3.pdf#page=5\"}]" + } + }, + { + "type": "工作原理", + "properties": { + "名称": "发动机的工作原理", + "内容": "主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\n船舶主发动机工作原理\n图 3.2 船舶主发动机组成图\nimages/bd4258956b20d9dcabbd0c712d8e534e398fb374d0cb399f464c893b45134f3a.jpg\n机座与机架组件用于称重与结构支持,其整体图如图 3.3所示。\n图 3.3 机座与机架组件整体图\nimages/bfa885471a29ea79161508b99ccbe8b105ed5d34631d52f844f80a67bb26c9f5.jpg\n图 3.4 曲柄连杆机构工作原理图\nimages/5eccda7191be7f95f7ee738c15a5e3bc2e1dab428a10d5f74cc8dd2b0fd3da8b.jpg\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\n图 3.5 燃烧室部件工作原理图\nimages/5801f66aca8813958597a692b39a88de267c365557f9698663ed1b0304c1b184.jpg\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\n图 3.6 排气阀驱动系统工作原理图\nimages/4356ee5a81d0ad1af582209f40cc3f53218918ee4dd2b4b1be17896313c12585.jpg\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\n核心原理与步骤\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\n图 3.7 燃油喷射系统工作原理图\nimages/5228256a4a600e6a4fd77ac68044c055b8eaafb6c7d3721b58e28d279b1fbc01.jpg\n如图 3.7 中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\n图 3.8 扫气与增压系统工作原理图\nimages/1ef200926265e45dc11f24e9cb9cd849bb679b4e2f49f60d6b92e8fad6dee1ba.jpg\n船舶柴油机扫气与增压系统原理核心在于废气涡轮增压和扫气过程配合,利用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 $7 0 0 { - } 9 0 0 ^ { \\circ } \\mathrm { ~ C ~ }$ 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\\n船舶主发动机工作原理\\n图 3.2 船舶主发动机组成图\\nimages/bd4258956b20d9dcabbd0c712d8e534e398fb374d0cb399f464c893b45134f3a.jpg\\n机座与机架组件用于称重与结构支持,其整体图如图 3.3所示。\\n图 3.3 机座与机架组件整体图\\nimages/bfa885471a29ea79161508b99ccbe8b105ed5d34631d52f844f80a67bb26c9f5.jpg\\n图 3.4 曲柄连杆机构工作原理图\\nimages/5eccda7191be7f95f7ee738c15a5e3bc2e1dab428a10d5f74cc8dd2b0fd3da8b.jpg\\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\\n图 3.5 燃烧室部件工作原理图\\nimages/5801f66aca8813958597a692b39a88de267c365557f9698663ed1b0304c1b184.jpg\\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\\n图 3.6 排气阀驱动系统工作原理图\\nimages/4356ee5a81d0ad1af582209f40cc3f53218918ee4dd2b4b1be17896313c12585.jpg\\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\\n核心原理与步骤\\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\\n图 3.7 燃油喷射系统工作原理图\\nimages/5228256a4a600e6a4fd77ac68044c055b8eaafb6c7d3721b58e28d279b1fbc01.jpg\\n如图 3.7 中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\\n图 3.8 扫气与增压系统工作原理图\\nimages/1ef200926265e45dc11f24e9cb9cd849bb679b4e2f49f60d6b92e8fad6dee1ba.jpg\\n船舶柴油机扫气与增压系统原理核心在于废气涡轮增压和扫气过程配合,利用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 $7 0 0 { - } 9 0 0 ^ { \\\\circ } \\\\mathrm { ~ C ~ }$ 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_cec554da-5fc4-4071-8a01-4eeb47570327.pdf#page=8\"}]" + } + }, + { + "type": "技术指标参数", + "properties": { + "名称": "发动机的技术指标参数", + "内容": "船舶主发动机的基本指标参见表3.2。\n表 3.2 船舶主发动机基本参数\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度 ≤700cSt@50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径×行程 500 mm × 2200 mm 平均有效压力(BMEP) ≈ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640 kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50℃ 冷却水进口温度 ≤ 36℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"船舶主发动机的基本指标参见表3.2。\\n表 3.2 船舶主发动机基本参数\\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度 ≤700cSt@50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径×行程 500 mm × 2200 mm 平均有效压力(BMEP) ≈ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640 kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50℃ 冷却水进口温度 ≤ 36℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_4b7c445b-778f-40fa-be35-22037e17e021.pdf#page=10\"}]" + } + }, + { + "type": "接口关系", + "properties": { + "名称": "发动机的接口关系", + "内容": "船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与舰船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\n1) 安装接口\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48$\\times 3 2 0$ 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\n2) 能源接口\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管( $\\mathrm { 0 4 0 2 0 2 / 0 5 0 3 }$ 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\n3) 信息与监测接口\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与舰船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\\n1) 安装接口\\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48$\\\\times 3 2 0$ 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\\n2) 能源接口\\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管( $\\\\mathrm { 0 4 0 2 0 2 / 0 5 0 3 }$ 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\\n3) 信息与监测接口\\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_988196fc-8297-486d-a7b7-4881ca1ef827.pdf#page=12\"}]" + } + }, + { + "type": "布置情况", + "properties": { + "名称": "发动机的布置情况", + "内容": "全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\n船舶主发动机布置情况见表 3.3。\n表 3.3 船舶主发动机布置情况\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵肿线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\\n船舶主发动机布置情况见表 3.3。\\n表 3.3 船舶主发动机布置情况\\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵肿线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_b851b473-86f9-421f-ad06-dbc2391d8ef3.pdf#page=13\"}]" + } + }, + { + "type": "组成、技术特征及接口", + "properties": { + "名称": "发动机的组成、技术特征及接口", + "组成": "船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\n图 3.1 船舶主发动机组成图\nimages/6fc722802de6802965af72c518cabcfe8396a3964a9870d16b4f6eb3f902b616.jpg\n表 3.1 船舶主发动机组成部分\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1", + "工作原理": "主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\n船舶主发动机工作原理\n图 3.2 船舶主发动机组成图\nimages/bd4258956b20d9dcabbd0c712d8e534e398fb374d0cb399f464c893b45134f3a.jpg\n机座与机架组件用于称重与结构支持,其整体图如图 3.3所示。\n图 3.3 机座与机架组件整体图\nimages/bfa885471a29ea79161508b99ccbe8b105ed5d34631d52f844f80a67bb26c9f5.jpg\n图 3.4 曲柄连杆机构工作原理图\nimages/5eccda7191be7f95f7ee738c15a5e3bc2e1dab428a10d5f74cc8dd2b0fd3da8b.jpg\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\n图 3.5 燃烧室部件工作原理图\nimages/5801f66aca8813958597a692b39a88de267c365557f9698663ed1b0304c1b184.jpg\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\n图 3.6 排气阀驱动系统工作原理图\nimages/4356ee5a81d0ad1af582209f40cc3f53218918ee4dd2b4b1be17896313c12585.jpg\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\n核心原理与步骤\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\n图 3.7 燃油喷射系统工作原理图\nimages/5228256a4a600e6a4fd77ac68044c055b8eaafb6c7d3721b58e28d279b1fbc01.jpg\n如图 3.7 中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\n图 3.8 扫气与增压系统工作原理图\nimages/1ef200926265e45dc11f24e9cb9cd849bb679b4e2f49f60d6b92e8fad6dee1ba.jpg\n船舶柴油机扫气与增压系统原理核心在于废气涡轮增压和扫气过程配合,利用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 $7 0 0 { - } 9 0 0 ^ { \\circ } \\mathrm { ~ C ~ }$ 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。", + "技术指标": "船舶主发动机的基本指标参见表3.2。\n表 3.2 船舶主发动机基本参数\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度 ≤700cSt@50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径×行程 500 mm × 2200 mm 平均有效压力(BMEP) ≈ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640 kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50℃ 冷却水进口温度 ≤ 36℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护", + "接口关系": "船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与舰船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\n1) 安装接口\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48$\\times 3 2 0$ 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\n2) 能源接口\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管( $\\mathrm { 0 4 0 2 0 2 / 0 5 0 3 }$ 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\n3) 信息与监测接口\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。", + "布置情况": "全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\n船舶主发动机布置情况见表 3.3。\n表 3.3 船舶主发动机布置情况\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵肿线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域", + "内容": "3 组成、技术特征及接口\n3.1 组成\n船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\n图 3.1 船舶主发动机组成图\nimages/6fc722802de6802965af72c518cabcfe8396a3964a9870d16b4f6eb3f902b616.jpg\n表 3.1 船舶主发动机组成部分\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1\n3.2 工作原理\n主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\n船舶主发动机工作原理\n图 3.2 船舶主发动机组成图\nimages/bd4258956b20d9dcabbd0c712d8e534e398fb374d0cb399f464c893b45134f3a.jpg\n机座与机架组件用于称重与结构支持,其整体图如图 3.3所示。\n图 3.3 机座与机架组件整体图\nimages/bfa885471a29ea79161508b99ccbe8b105ed5d34631d52f844f80a67bb26c9f5.jpg\n图 3.4 曲柄连杆机构工作原理图\nimages/5eccda7191be7f95f7ee738c15a5e3bc2e1dab428a10d5f74cc8dd2b0fd3da8b.jpg\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\n图 3.5 燃烧室部件工作原理图\nimages/5801f66aca8813958597a692b39a88de267c365557f9698663ed1b0304c1b184.jpg\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\n图 3.6 排气阀驱动系统工作原理图\nimages/4356ee5a81d0ad1af582209f40cc3f53218918ee4dd2b4b1be17896313c12585.jpg\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\n核心原理与步骤\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\n图 3.7 燃油喷射系统工作原理图\nimages/5228256a4a600e6a4fd77ac68044c055b8eaafb6c7d3721b58e28d279b1fbc01.jpg\n如图 3.7 中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\n图 3.8 扫气与增压系统工作原理图\nimages/1ef200926265e45dc11f24e9cb9cd849bb679b4e2f49f60d6b92e8fad6dee1ba.jpg\n船舶柴油机扫气与增压系统原理核心在于废气涡轮增压和扫气过程配合,利用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 $7 0 0 { - } 9 0 0 ^ { \\circ } \\mathrm { ~ C ~ }$ 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。\n3.3 技术指标\n船舶主发动机的基本指标参见表3.2。\n表 3.2 船舶主发动机基本参数\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度 ≤700cSt@50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径×行程 500 mm × 2200 mm 平均有效压力(BMEP) ≈ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640 kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50℃ 冷却水进口温度 ≤ 36℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护\n3.4 接口关系\n船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与舰船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\n1) 安装接口\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48$\\times 3 2 0$ 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\n2) 能源接口\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管( $\\mathrm { 0 4 0 2 0 2 / 0 5 0 3 }$ 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\n3) 信息与监测接口\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。\n3.5 布置情况\n全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\n船舶主发动机布置情况见表 3.3。\n表 3.3 船舶主发动机布置情况\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵肿线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"3 组成、技术特征及接口\\n3.1 组成\\n船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\\n图 3.1 船舶主发动机组成图\\nimages/6fc722802de6802965af72c518cabcfe8396a3964a9870d16b4f6eb3f902b616.jpg\\n表 3.1 船舶主发动机组成部分\\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1\\n3.2 工作原理\\n主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\\n船舶主发动机工作原理\\n图 3.2 船舶主发动机组成图\\nimages/bd4258956b20d9dcabbd0c712d8e534e398fb374d0cb399f464c893b45134f3a.jpg\\n机座与机架组件用于称重与结构支持,其整体图如图 3.3所示。\\n图 3.3 机座与机架组件整体图\\nimages/bfa885471a29ea79161508b99ccbe8b105ed5d34631d52f844f80a67bb26c9f5.jpg\\n图 3.4 曲柄连杆机构工作原理图\\nimages/5eccda7191be7f95f7ee738c15a5e3bc2e1dab428a10d5f74cc8dd2b0fd3da8b.jpg\\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\\n图 3.5 燃烧室部件工作原理图\\nimages/5801f66aca8813958597a692b39a88de267c365557f9698663ed1b0304c1b184.jpg\\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\\n图 3.6 排气阀驱动系统工作原理图\\nimages/4356ee5a81d0ad1af582209f40cc3f53218918ee4dd2b4b1be17896313c12585.jpg\\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\\n核心原理与步骤\\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\\n图 3.7 燃油喷射系统工作原理图\\nimages/5228256a4a600e6a4fd77ac68044c055b8eaafb6c7d3721b58e28d279b1fbc01.jpg\\n如图 3.7 中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\\n图 3.8 扫气与增压系统工作原理图\\nimages/1ef200926265e45dc11f24e9cb9cd849bb679b4e2f49f60d6b92e8fad6dee1ba.jpg\\n船舶柴油机扫气与增压系统原理核心在于废气涡轮增压和扫气过程配合,利用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 $7 0 0 { - } 9 0 0 ^ { \\\\circ } \\\\mathrm { ~ C ~ }$ 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。\\n3.3 技术指标\\n船舶主发动机的基本指标参见表3.2。\\n表 3.2 船舶主发动机基本参数\\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度 ≤700cSt@50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径×行程 500 mm × 2200 mm 平均有效压力(BMEP) ≈ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640 kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50℃ 冷却水进口温度 ≤ 36℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护\\n3.4 接口关系\\n船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与舰船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\\n1) 安装接口\\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48$\\\\times 3 2 0$ 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\\n2) 能源接口\\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管( $\\\\mathrm { 0 4 0 2 0 2 / 0 5 0 3 }$ 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\\n3) 信息与监测接口\\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。\\n3.5 布置情况\\n全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\\n船舶主发动机布置情况见表 3.3。\\n表 3.3 船舶主发动机布置情况\\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵肿线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_82c03b67-2af5-432f-8e75-9387a9628735.pdf#page=12\"}]" + } + }, + { + "type": "保障设施、保障设备(工具)信息汇总表", + "properties": { + "名称": "发动机的保障设施、保障设备(工具)信息汇总表", + "内容": "表 5.1 船舶主发动机工具信息汇总表\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"表 5.1 船舶主发动机工具信息汇总表\\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_e609552e-93c7-4eda-ac2b-c696fe05cf75.pdf#page=52\"}]" + } + }, + { + "type": "消耗材料信息汇总表", + "properties": { + "名称": "发动机的消耗材料信息汇总表", + "内容": "表 5.2 船舶主发动机消耗材料信息汇总表\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"表 5.2 船舶主发动机消耗材料信息汇总表\\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_5bbdba5a-57ec-4216-92d9-99952bfa3a1a.pdf#page=57\"}]" + } + }, + { + "type": "器材保障", + "properties": { + "名称": "发动机的器材保障", + "保障设施、保障设备(工具)信息汇总表": "表 5.1 船舶主发动机工具信息汇总表\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速", + "消耗材料信息汇总表": "表 5.2 船舶主发动机消耗材料信息汇总表\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "内容": "5器材保障\n5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\n5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_49ac80ea-6e18-42d3-a92b-9872cca0f980.pdf#page=52\"}]" + } + }, + { + "type": "安全防护", + "properties": { + "名称": "发动机的安全防护", + "内容": "将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_ab335b73-4b94-4d4f-a7c1-867ab08d2c9c.pdf#page=58\"}]" + } + }, + { + "type": "注意事项", + "properties": { + "名称": "发动机的注意事项", + "内容": "将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_8bdd73be-f240-4a53-9044-5e6f836fc62c.pdf#page=59\"}]" + } + }, + { + "type": "维修安全防护及注意事项汇总表", + "properties": { + "名称": "发动机的维修安全防护及注意事项汇总表", + "概述": "以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。", + "安全防护": "将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花", + "注意事项": "将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "内容": "6 维修安全防护及注意事项汇总表\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\n6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\n6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_a6252cbb-8f2c-40a7-93e8-bfd2ab6bed89.pdf#page=58\"}]" + } + } + ], + "relations": [ + { + "type": "属于", + "from_entity": "发动机的警告", + "to_entity": "发动机的安全警告" + }, + { + "type": "属于", + "from_entity": "发动机的注意", + "to_entity": "发动机的安全警告" + }, + { + "type": "安全警告", + "from_entity": "发动机", + "to_entity": "发动机的安全警告" + }, + { + "type": "属于", + "from_entity": "发动机的主要功能", + "to_entity": "发动机的基本情况" + }, + { + "type": "属于", + "from_entity": "发动机的环境条件", + "to_entity": "发动机的基本情况" + }, + { + "type": "实现", + "from_entity": "发动机", + "to_entity": "发动机的基本情况" + }, + { + "type": "属于", + "from_entity": "发动机的组成", + "to_entity": "发动机的组成、技术特征及接口" + }, + { + "type": "属于", + "from_entity": "发动机的工作原理", + "to_entity": "发动机的组成、技术特征及接口" + }, + { + "type": "属于", + "from_entity": "发动机的技术指标参数", + "to_entity": "发动机的组成、技术特征及接口" + }, + { + "type": "属于", + "from_entity": "发动机的接口关系", + "to_entity": "发动机的组成、技术特征及接口" + }, + { + "type": "属于", + "from_entity": "发动机的布置情况", + "to_entity": "发动机的组成、技术特征及接口" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的组成、技术特征及接口" + }, + { + "type": "属于", + "from_entity": "发动机的保障设施、保障设备(工具)信息汇总表", + "to_entity": "发动机的器材保障" + }, + { + "type": "属于", + "from_entity": "发动机的消耗材料信息汇总表", + "to_entity": "发动机的器材保障" + }, + { + "type": "依赖", + "from_entity": "发动机", + "to_entity": "发动机的器材保障" + }, + { + "type": "属于", + "from_entity": "发动机的安全防护", + "to_entity": "发动机的维修安全防护及注意事项汇总表" + }, + { + "type": "属于", + "from_entity": "发动机的注意事项", + "to_entity": "发动机的维修安全防护及注意事项汇总表" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的维修安全防护及注意事项汇总表" + } + ] +} \ No newline at end of file diff --git a/kg_build_0409/Prompt.py b/kg_build_0409/Prompt.py new file mode 100644 index 0000000..7c9b7b3 --- /dev/null +++ b/kg_build_0409/Prompt.py @@ -0,0 +1,1448 @@ +Prompt_guzhang = """ +你是一个故障实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系 + "故障模式"实体主要包括以下属性:"名称", "故障原因", "故障影响", "故障类型", "发生时间", "处置情况", "修复情况",“维修方案” + 文本中"故障原因"与故障实体属性相对应,进行对应填充即可,其中"名称"对应于实体的"故障现象"属性,"维修项目"字段内容对应实体的"维修项目"属性; + 每提取一组维修模式,结合故障现象字段对应文本内容分析,找出故障现象所关联的系统并建立对应的实体,并建立“存在”关系 + "系统"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间", "运行时间", "运行条件" + 如果实体的属性在文本中没有找到,请不要随意添加其他内容,可以为空;其次,抽取的系统实体应来源故障现象字段对应的文本内容中,不要随意添加,也不要将其他记录的故障现象对应别的系统实体中 + +示例: +输入为: +# 4.2 常见故障表 +船舶主发动机的常见故障如下表所示: +表 4.2 常见故障表 +
项目编号操作项目
序号故障现象故障原因维修项目
1机座与机架组件运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MT004更换连杆大端轴承MT017修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MT003检测曲轴主轴颈跳动量
2气缸套排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011检查排气阀杆密封面磨损MT012更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015更换涡轮增压器轴承组件
3扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MT001保养机座与机架组件
+ +输出为: +{{ + "entities": [ + {{ + "type": "故障模式", + "properties": {{ + "名称": "机座与机架组件运行中振动异常增大", + "故障原因": "1.主轴承或连杆大端轴承磨损, + 2. 曲轴主轴颈跳动超差", + "故障影响": "", + "故障类型": "", + "发生时间": "", + "处置情况": "", + "修复情况": "", + "维修方案": "1.执行以下维修项目:MT004 更换连杆大端轴承;MT017 修复连杆大端轴承异常磨损 + 2.执行以下维修项目:MT003 检测曲轴主轴颈跳动量", + "维修项目": ["MT004","MT017","MT003"] + }} + }}, + {{ + "type": "故障模式", + "properties": {{ + "名称": "气缸套排气温度异常升高", + "故障原因": "1. 排气阀密封面磨损或阀座烧蚀 + 2.涡轮增压器轴承损坏", + "故障影响": "", + "故障类型": "", + "发生时间": "", + "处置情况": "", + "修复情况": "", + "维修方案": "1.执行以下维修项目:MT011 检查排气阀杆密封面磨损;MT012 更换排气阀座 + 2.执行以下维修项目:MT015 更换涡轮增压器轴承组件", + "维修项目": ["MT011","MT012","MT015"] + }} + }}, + {{ + "type": "故障模式", + "properties": {{ + "名称": "扫气箱内发现润滑油泄漏", + "故障原因": "活塞杆填料函密封失效", + "故障影响": "", + "故障类型": "", + "发生时间": "", + "处置情况": "", + "修复情况": "", + "维修方案": "执行以下维修项目:MT001保养机座与机架组件", + "维修项目": ["MT001"] + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "机座与机架组件", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "", + + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "气缸套", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "", + + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "涡轮增压器", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "", + + }} + }}, + ], + "relationships": [ + {{ + "type": "存在", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件运行中振动异常增大" + }}, + {{ + "type": "存在", + "from_entity": "气缸套", + "to_entity": "气缸套排气温度异常升高" + }} + {{ + "type": "存在", + "from_entity": "扫气箱", + "to_entity": "扫气箱内发现润滑油泄漏" + }}, + ] +}} + +确保抽取的故障类实体完整,不要遗漏,"名称"字段不要丢失,也不要胡乱填充其他字段内容 +只输出纯JSON,不要任何其他文本、解释或Markdown。 +抽取的实体以及实体属性值应严格来源于文本,不可以做任何擅自更改,例如将"排气温度异常升高"更改为"排气温度异常增长" +如果给出的上下文中,无法抽取出"系统",那么就不需要抽取,也没有对应的关系,即"relationships"为[] +抽取过程中,需要注意html源码多行合并的情况,尤其是故障现象字段值为同一行,但是维修项目和故障原因字段值会有多行,这种情况下,故障实体只有一个,为最近前一行的故障现象,且维修项目和故障原因字段值为多行内容合并的结果。例如”3曲轴主轴颈跳动超差执行以下维修项目:MT003检测曲轴主轴颈跳动量 +4飞轮连接螺栓松动执行以下维修项目:MT003检测曲轴组件(含飞轮紧固状态检查)",丢失了故障现象,只有故障原因和 +维修项目字段内容,那么不需要构建故障实体,而是将对应字段内容合并到前面最近一行存在故障现象的实体。即"2主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MT004更换连杆大端轴承MT017修复连杆大端轴承异常磨损" +请按照上述示例,对给出的文本进行实体抽取,给出文本为: +{text} +""" + + +Prompt_compose = """ +你是一个系统和子系统实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系 + "系统"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间", "运行时间", "运行条件" + 系统实体与子系统实体存在包含,一般系统由子系统组成 + 其中,系统实体主要来源表格html源码之前内容,主要是表格名称等,阐述该系统由表中子系统组成 + "子系统"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位" + 如果抽取设备以及设备的子零部件,那么它们之间也存在包含关系。 + + +示例: +输入为: +以下部分介绍螺旋桨的组成、工作原理、技术指标、接口情况、布置情况,从各方面知悉发动机的基本信息。 +# 3.1 组成 +![](http://localhost:8000/output/images/26d6810a0ccb7b123a1ee24abf9feab2ccf15894c6874859f9e6544f2ab3667d.jpg) +图 3.1 螺旋桨组成图 +表 3.1 螺旋桨组成部分 +
组成部分功能描述数量
桨叶核心推进部件,通过旋转推动水流产生反作用推力。其翼型、螺距和面积决定了推进效率。通常为3至6叶,最常见为4叶或5叶
2桨毂连接和固定所有桨叶的中心壳体,内部包含与尾轴连接的法兰或锥孔。1个
3桨毂帽安装在桨毂后部的流线型罩盖,用于减少桨毂后部产生的涡流阻力,提升水动力效率。1个(非所有螺旋桨标配)
+输出为: + +{{ + "entities": [ + {{ + "type": "系统", + "properties": {{ + "名称": "螺旋桨", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + }} + }}, + {{ + "type": "子系统", + "properties": {{ + "名称": "桨叶", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "功能": "核心推进部件,通过旋转推动水流产生反作用推力。其翼型、螺距和面积决定了推进效率。" + }} + }}, + {{ + "type": "子系统", + "properties": {{ + "名称": "桨毂", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "功能" : "连接和固定所有桨叶的中心壳体,内部包含与尾轴连接的法兰或锥孔。" + }} + }}, + {{ + "type": "子系统", + "properties": {{ + "名称": "桨毂帽", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "功能" : "安装在桨毂后部的流线型罩盖,用于减少桨毂后部产生的涡流阻力,提升水动力效率。" + }} + }}, + + ], + "relationships": [ + {{ + "type": "包含", + "from_entity": "螺旋桨", + "to_entity": "桨叶" + }}, + {{ + "type": "包含", + "from_entity": "螺旋桨", + "to_entity": "桨毂" + }}, + {{ + "type": "包含", + "from_entity": "螺旋桨", + "to_entity": "桨毂帽" + }}, + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +请按照上述示例,对给出的文本进行系统实体抽取,给出文本为: +{text} +""" + + +Prompt_compose_tujie1= """ +你是一个系统、子系统、部件和零部件实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系 + "系统"和"子系统"实体主要包括以下属性:"名称", "型号", "生产单位", "等级" + 其中,"系统"实体主要来源表格html源码之前内容,主要是表格名称等等内容,例如“表 2.2 FL-3.0 通信风冷装置设备组成表”中主设备为“通信风冷装置设备” + html表格源码主要阐述该主系统由表中子系统、部件、零部件组成 + 表中表格中组成编码字段值可以分析子系统、部件、一级零部件、二级零部件之间的包含关系,,表中每条记录的"组成编码"字段值代表了其实体类型, + 如果组成编码为2位数字(如02,21),那么应该为子系统实体,如果为4位等数字(如0219等),那么应该为部件实体,同时编码对应的实体存在包含关系 + 如果组成编码为6位数字(如021901,021921等),那么应该为一级零部件实体,同时与组成编码为0219的部件实体,存在包含关系 + 如果组成编码为8位数字(如02190308,02190316等),那么应该为二级零部件实体,同时与组成编码为021903的一级零部件实体,存在包含关系 + 例如表名关联的主系统实体为螺旋桨,表中组成编码字段值01表示螺旋桨的子系统,存在螺旋桨和子系统的包含关系,0101表示组成编码01子系统的部件实体,010101则表示0101组成编码对应部件的一级零部件 + "部件"、"零部件"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位" + + +示例: +输入为: +# 2.4 组成表示例 + +如表2.2所示,为FL-3.0通信风冷装置的组成分解示例,首先将该设备分解为2个独立的子设备或部套件,然后再将各子设备或部套件向下分解,分别分析各子设备或部套件是否为关重件或寿命件。设备组成表提交模板见附件一。 + +表 2.2 FL-3.0 通信风冷装置设备组成表 + +
组成编码名称是否为关重件是否为寿命件备注
01风冷装置
0101底座组件
0102下柜体组件
010201下框架组件
010202下面门组件
0103换热器8P
02电控箱
0201箱体
+ +输出为: + +{{ + "entities": [ + {{ + "type": "系统", + "properties": {{ + "名称": "通信风冷设备", + "型号": "", + "生产单位": "", + "等级": "", + }} + }}, + {{ + "type": "子系统", + "properties": {{ + "名称": "风冷装置", + "型号": "", + "生产单位": "", + "等级": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "01", + "备注" : "" + }} + }}, + {{ + "type": "设备", + "properties": {{ + "名称": "电控箱", + "型号": "", + "生产单位": "", + "等级": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "02", + "备注" : "" + }} + }}, + {{ + "type": "部件", + "properties": {{ + "名称": "底座组件", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "0101", + "备注" : "" + }} + }}, + {{ + "type": "部件", + "properties": {{ + "名称": "下柜体组件", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "0102", + "备注" : "" + }} + }}, + {{ + "type": "一级零部件", + "properties": {{ + "名称": "下框架组件", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "010201", + "备注" : "" + }} + }}, + {{ + "type": "一级零部件", + "properties": {{ + "名称": "下面门组件", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" :"010202", + "备注" : "" + }} + }}, + {{ + "type": "部件", + "properties": {{ + "名称": "换热器8P", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "是", + "是否为寿命件" : "否", + "组成编码" :"0103", + "备注" : "" + }} + }}, + {{ + "type": "部件", + "properties": {{ + "名称": "箱体", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "是", + "是否为寿命件" : "是", + "组成编码" :"0201", + "备注" : "" + }} + }}, + ], + "relationships": [ + {{ + "type": "包含", + "from_entity": "通信风冷设备", + "to_entity": "风冷装置" + }}, + {{ + "type": "包含", + "from_entity": "通信风冷设备", + "to_entity": "电控箱" + }}, + {{ + "type": "包含", + "from_entity": "风冷装置", + "to_entity": "底座组件" + }}, + {{ + "type": "包含", + "from_entity": "风冷装置", + "to_entity": "下柜体组件" + }}, + {{ + "type": "包含", + "from_entity": "下柜体组件", + "to_entity": "下框架组件" + }}, + {{ + "type": "包含", + "from_entity": "下柜体组件", + "to_entity": "下面门组件" + }}, + {{ + "type": "包含", + "from_entity": "风冷装置", + "to_entity": "换热器8P" + }}, + {{ + "type": "包含", + "from_entity": "电控箱", + "to_entity": "箱体" + }}, + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +表格前文本中提取到的主设备实体,请不要遗漏 +请不要将字段内容任意填充到其他属性值里面 +请按照上述示例,对给出的文本进行实体关系抽取,给出文本为: +{text} +""" + + +Prompt_compose_tujie2 = """ +你是一个子系统、部件和零部件实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系 + "子系统"实体主要包括以下属性:"名称", "型号", "生产单位", "等级" + html表格源码主要阐述该主系统由表中子系统、部件、零部件组成 + 表中表格中组成编码字段值可以分析子系统、部件、一级零部件、二级零部件之间的包含关系,,表中每条记录的"组成编码"字段值代表了其实体类型, + 如果组成编码为2位数字(如02,21),那么应该为子系统实体,如果为4位等数字(如0219等),那么应该为部件实体,同时编码对应的实体存在包含关系 + 如果组成编码为6位数字(如021901,021921等),那么应该为一级零部件实体,同时与组成编码为0219的部件实体,存在包含关系 + 如果组成编码为8位数字(如02190308,02190316等),那么应该为二级零部件实体,同时与组成编码为021903的一级零部件实体,存在包含关系 + 例如表名关联的主系统实体为螺旋桨,表中组成编码字段值01表示螺旋桨的子系统,存在螺旋桨和子系统的包含关系,0101表示组成编码01子系统的部件实体,010101则表示0101组成编码对应部件的一级零部件 + "零部件"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位" + + +示例: +输入为: +
房号组成编码名称型号/零件号重量(kg)数量
10701高温淡水冷却回路-1
2070101高温淡水泵KSB Etanorm SYT100-3151502
307010101泵驱动电机Siemens 1LA8 316-4AA802
+输出为: + +{{ + "entities": [ + {{ + "type": "部件", + "properties": {{ + "名称": "高温淡水冷却回路", + "型号/零件号": "", + "技术责任单位": "", + "生产单位": "", + "重量(kg)" : "", + "数量" : "1", + "组成编码" :"0701" + }} + }}, + {{ + "type": "一级零部件", + "properties": {{ + "名称": "高温淡水泵", + "型号/零件号": "KSB Etanorm SYT 100-315", + "技术责任单位": "", + "生产单位": "", + "重量(kg)" : "150", + "数量" : "2", + "组成编码" :"070101" + }} + }}, + {{ + "type": "二级零部件", + "properties": {{ + "名称": "泵驱动电机", + "型号/零件号": "Siemens 1LA8 316-4AA", + "技术责任单位": "", + "生产单位": "", + "重量(kg)" : "80", + "数量" : "2", + "组成编码" :"07010101" + }} + }}, + ], + "relationships": [ + {{ + "type": "包含", + "from_entity": "高温淡水冷却回路", + "to_entity": "高温淡水泵" + }}, + {{ + "type": "包含", + "from_entity": "高温淡水泵", + "to_entity": "泵驱动电机" + }}, + + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +不要修改表格中内容,避免填充错误的属性值;实体类型严格按照组成编码判断和定义 +请按照上述示例,对给出的文本进行实体关系抽取,给出文本为: +text +""" + + +Prompt_compose_mulu_tujie = """ +你是一个专业的HTML表格解析器,请将以下HTML表格转换为标准JSON数组,每行数据对应一个对象,对象的键来自表头(第一行非空中的文本),值为对应行的单元格内容。 + + +示例: +
序号组成编码名称型号/零件号重量(kg)数量
101螺旋桨本体总成CPP-UNIT-8500-4B12,500118,0001
202轴系与传动总成SHAFTING-SYS-85008,000 115,0001
303调距机构总成(CPP)CPP-MECH-85003,5006,0001
404控制系统总成CPP-CONTROL-S85800 11,5001
图名:船舶主发动机图解目录
图号:01
+ + +输出为: +[ + {{ + "组成编码" : "01", + "名称" : "螺旋桨本体总成", + "型号/零件号" : "CPP-UNIT-8500-4B", + "重量(kg)" : "12,500 - 18,000" + }}, + {{ + "组成编码" : "02", + "名称" : "轴系与传动总成", + "型号/零件号" : "SHAFTING-SYS-8500", + "重量(kg)" : "8,000 - 15,000" + }}, + {{ + "组成编码" : "03", + "名称" : "调距机构总成(CPP)", + "型号/零件号" : "CPP-MECH-8500", + "重量(kg)" : "3,500 - 6,000" + }}, + {{ + "组成编码" : "04", + "名称" : "控制系统总成", + "型号/零件号" : "CPP-CONTROL-S85", + "重量(kg)" : "800 - 1,500" + }} +] +只输出纯JSON,不要任何其他文本、解释或Markdown。 +请按照上述示例,对给出的文本进行抽取,给出文本为: +text +""" + + +Prompt_anli=""" +你是一个专业的装备故障信息结构化抽取助手。请根据以下规则,从提供的故障报告文本中提取“系统”和“故障模式”两类实体,并建立它们之间的关系。 +###提取规则如下: + 1、故障模式实体(type: "故障模式") + 名称:由“装备名称 + 故障关键词”构成,一般来源于文中的故障现象,例如“1号主机冷却系统温度异常升高”。 + properties 字段包括: + "故障现象":来自“故障现象”对应的具体描述文字。 + "发生时间":来自“时间”、"故障时间"字段。 + "维修方案":来自“三、故障排除”、“# 排除方法”等字段信息。 + "经验总结":来自“四、经验启示”、“# 启示”等章节字段内容。 + "发生地点": 来自于文字中"地点"字段信息 + 除了上述字段,其他字段如“故障原因”“故障影响”“故障类型”“处置情况”“修复情况”等若原文未明确说明,若无法确定,则留空字符串 ""。 + 2、系统设备实体(type: "系统") + 名称 与 properties["名称"] 均取自“装备名称”、“故障设备”等字段信息。 + properties["生产单位"] 取自“单位”字段(如“XX 舰艇保障大队”)。 + 其余属性(型号、技术责任单位、技术状态、生产日期、启用时间、运行时间、运行条件)若原文未提供,一律留空字符串 ""。 + 3、关系(relationships) + 必须包含一条 "具有" 类型的关系:from_entity 为系统设备实体的 名称,to_entity 为故障模式实体的 名称。 + 若存在更高层级设备(如“主机系统”包含“冷却系统”),但原文未提及,则不需构造“包含”关系。仅当原文明确有层级结构时才添加。本例中无上级设备,故只保留“存在”关系。 + 输出格式严格遵循 JSON 结构,不得包含额外解释、注释或 Markdown。仅输出一个 JSON 对象,包含 "entities" 和 "relationships" 两个顶层字段。 + +### 输出格式要求: +只输出纯JSON,不要任何其他文本、解释或Markdown。结构如下: +{{ + "entities": [ + {{ + "type": "系统", + "properties": {{ + "名称": "通信风冷设备", + "型号": "FL-2000", + "技术责任单位": "701所", + "生产单位": "沪东重机", + "技术状态": "正常", + "生产日期": "2021-08", + "启用时间": "2022-01", + "运行时间": "5000小时", + "运行条件": "舱内通风良好,无腐蚀性气体" + }} + }}, + {{ + "type": "故障模式", + "properties": {{ + "名称": "设备表面温度超过80℃", + "故障原因": "散热风扇停转", + "故障影响": "导致通信设备降频", + "故障类型": "硬件故障", + "发生时间": "2024-11-15", + "处置情况": "切换备用风机", + "修复情况": "更换风扇电机", + "维修方案":"进行设备的温度测试,进行降温" + }} + }} + ], + "relationships": [ + {{ + "type": "存在", + "from_entity": "通信风冷设备", + "to_entity": "设备表面温度超过80℃" + }} + ] +}} + +示例1: +输入为: +# 一、故障现象 + +单位:XX 舰艇保障大队 + +时间:2013 年 05 月 7 日 9 时 23 分 37 秒 + +舰艇状态:航行中,主机正常运行 + +装备名称:1 号主机冷却系统 + +故障现象:1 号主机冷却系统温度异常升高,监控面板显示冷却液温度持续超过警戒值$( > 9 5 ^ { \circ } C ) .$ ),伴随系统压力波动,报警指示灯常亮。 + +# 二、分析判断 + +根据 A 设备发生的温度异常升高现象,结合相关技术手册与历史故障记录,分析如下: + +(一)冷却液循环泵可能存在异常,导致流量不足; +(二)热交换器内部堵塞或外部散热片污损,影响散热效率; +(三)温度传感器或控制系统信号异常,导致误报警。 + +# 三、故障排除 + +![image](https://cdn-mineru.openxlab.org.cn/result/2026-01-19/8ca2fbe0-d6f4-4062-b40c-bb98b03b5006/fe9fb37249ebdf935ee0d237e447d5de52ac996315f572c343273a679db06785.jpg) + + +# 图:冷却系统结构简图 + +# (一)初步检查 + +关闭主机,检查冷却液液位及管路是否泄漏,确认液位正常、无泄漏。 + +# (二)系统检测 + +使用便携式流量计检测循环泵输出流量,发现流量低于标准值;拆卸热交换器检查,发现内部有沉积物堵塞。 + +# (三)故障处理 + +清洗热交换器内部,更换循环泵滤网,重新加注冷却液并排气。启动系统后,温度恢复正常,压力稳定,报警消除。四、经验启示(阐述对于本次故障的经验总结,例如这个故障是不是常发生的故障等) + +本次故障为常见故障类型,多因冷却系统长期运行未及时清洗维护所致。建议: + +(一)定期清洗热交换器与滤网; +(二)加强日常巡检,特别是高温季节; +(三)建立冷却系统维护台账,记录清洗与更换周期。 + +故障二、XXX 型号A 设备A 故障 + +输出为: +{{ + "entities": [ + {{ + "type": "系统", + "properties": {{ + "名称": "1 号主机冷却系统", + "型号": "", + "技术责任单位": "XX 舰艇保障大队", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + }} + }}, + {{ + "type": "故障模式", + "properties": {{ + "故障现象": "1 号主机冷却系统温度异常升高,监控面板显示冷却液温度持续超过警戒值$( > 9 5 ^ { \circ } C ) .$ ),伴随系统压力波动,报警指示灯常亮。", + "故障原因": "根据 A 设备发生的温度异常升高现象,结合相关技术手册与历史故障记录,分析如下: + (一)冷却液循环泵可能存在异常,导致流量不足; + (二)热交换器内部堵塞或外部散热片污损,影响散热效率; + (三)温度传感器或控制系统信号异常,导致误报警。 +", + "故障影响": "", + "故障类型": "", + "发生时间": "2013 年 05 月 7 日 9 时 23 分 37 秒", + "处置情况": " ", + "修复情况": "", + "维修方案":"![image](https://cdn-mineru.openxlab.org.cn/result/2026-01-19/8ca2fbe0-d6f4-4062-b40c-bb98b03b5006/fe9fb37249ebdf935ee0d237e447d5de52ac996315f572c343273a679db06785.jpg) + # 图:冷却系统结构简图 + # (一)初步检查 + 关闭主机,检查冷却液液位及管路是否泄漏,确认液位正常、无泄漏。 + # (二)系统检测 + 使用便携式流量计检测循环泵输出流量,发现流量低于标准值;拆卸热交换器检查,发现内部有沉积物堵塞。 + # (三)故障处理 + 清洗热交换器内部,更换循环泵滤网,重新加注冷却液并排气。启动系统后,温度恢复正常,压力稳定,报警消除。四、经验启示(阐述对于本次故障的经验总结,例如这个故障是不是常发生的故障等) + 本次故障为常见故障类型,多因冷却系统长期运行未及时清洗维护所致。建议: + (一)定期清洗热交换器与滤网; + (二)加强日常巡检,特别是高温季节; + (三)建立冷却系统维护台账,记录清洗与更换周期。" + }} + }} + ], + "relationships": [ + {{ + "type": "存在", + "from_entity": "1 号主机冷却系统", + "to_entity": "1 号主机冷却系统温度异常升高,监控面板显示冷却液温度持续超过警戒值$( > 9 5 ^ { \circ } C ) .$ ),伴随系统压力波动,报警指示灯常亮。" + }} + ] +}} + +抽取的实体以及实体属性值应严格来源于文本,不可以做任何擅自更改,例如将"设备表面温度超过80℃"更改为"设备表面温度超过100℃" +也不应该擅自中英文符号,例如将实体名称"尺寸(长X宽X高mm)"改成实体名称"尺寸(长X宽X高mm)" +输入文本: +text +""" + +prompt_extract_repair_node_rela = """ +你是一个信息抽取专家,根据给出的符合要求html源码,能够抽取出对应的核心信息 + 给你的文本是一段维修项目表,其中维修项目编号代表该维修项目的编号,请抽取出来,编号内容不要随意修改,也不要遗漏,输出为"wxbianhao":"MT001" + 其中维修项目字段代表该维修项目的名称,输出为"维修项目":"检查液压油位、油质与压力" + 其中,组成编码与名称是一一对应的,名称代表该项目使用的设备名称,组成编码代表该设备的编码,也可能有一组或者多组,请进行抽取,抽取格式如下: +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "提取到的编号 (如 OT005)", + "名称": "提取到的维修项目名称" + }} + }}, + {{ + "type": "设备", + "properties": {{ + "组成编码": "提取到的设备组成编码(如 0401)", + "名称": "提取到的设备名称", + "维修项目编号" : "提取到的编号 (如 OT005)", + "维修项目名称": "提取到的维修项目名称" + }} + }}, + ], + "relationships": [] +}} + +示例1: +输入为: +
维修项目编号组成编码名称维修项目维修间隔期
MT0210401液压动力单元检查液压油位、油质与压力1D/1W
+ +# 安全注意事项 + +1. 设备运行状态确认与防护:检查工作通常在设备运行时或刚停机时进行。必须清楚了解检查点周边环境,远离所有旋转部件(如泵轴、风扇、联轴器)和高温表面。衣物须紧束,严禁戴手套靠近旋转部位。若需在运行中检查,应事先规划好安全站位和撤离路线。 + +2. 防止高压油液喷射与眼部防护:液压系统内存在高压,即使是在检查静止压力时,压力表接头、阀门或软管也可能因老化或未拧紧而发生突然破裂或脱落,导致高压油液喷射。必须全程佩戴防护眼镜或面罩。检查时,身体不得正对压力表或测压接头正面。 + +保障设备(工具)、备件、消耗材料、人力人员需求 +输出为: + +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "MT021", + "名称": "检查液压油位、油质与压力", + }} + }}, + {{ + "type": "设备", + "properties": {{ + "组成编码": "0401", + "名称": "液压动力单元", + "维修项目编号" : "MT021", + "维修项目名称": "检查液压油位、油质与压力" + }} + }} + ], + "relationships": [] +}} + +示例2: +输入为: +
维修项目编号组成编码名称维修项目维修间隔期
MT0020402/040203机座与机架组件/焊接机座组件保养机座与机架组件、焊接机座组件1D/1W
+ +# 安全注意事项 + +1. 设备运行状态确认与防护:检查工作通常在设备运行时或刚停机时进行。必须清楚了解检查点周边环境,远离所有旋转部件(如泵轴、风扇、联轴器)和高温表面。衣物须紧束,严禁戴手套靠近旋转部位。若需在运行中检查,应事先规划好安全站位和撤离路线。 + +2. 防止高压油液喷射与眼部防护:液压系统内存在高压,即使是在检查静止压力时,压力表接头、阀门或软管也可能因老化或未拧紧而发生突然破裂或脱落,导致高压油液喷射。必须全程佩戴防护眼镜或面罩。检查时,身体不得正对压力表或测压接头正面。 + +保障设备(工具)、备件、消耗材料、人力人员需求 + +输出为: +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "MT002", + "名称": "保养机座与机架组件、焊接机座组件" + }} + }}, + {{ + "type": "设备", + "properties": {{ + "编号": "0402", + "名称": "机座与机架组件", + "维修项目编号" : "MT002", + "维修项目名称": "保养机座与机架组件、焊接机座组件" + }} + }}, + {{ + "type": "设备", + "properties": {{ + "编号": "040203", + "名称": "焊接机座组件", + "维修项目编号" : "MT002", + "维修项目名称": "保养机座与机架组件、焊接机座组件" + }} + }}, + ], + "relationships": [] +}} + +示例3: +输入为: +维修工作卡002 故障名称:阴极过压故障 +
故障现象WCC-II的BITE 显示 TR-2国021-03阴极稳压电路板
8故障原因> 02-05 阴极电源驱动电源板故障;> 022 高压电源组合故障;→ 021-03 阴极稳压电路板故障。
维修人数 11~2
维修工具场十字起子,一字起子
排除步骤1将放大链全部关机,打开放大链顶盖,等待5分钟,让高压电源放电。2拔掉插头 XP1F022,更换022高压电源组合。3开机,加高压,若仍不正常,断高压,关机,再等待5分钟,拔掉插头XP1F052和XP2F052,更换02-051和02-052板;4若仍不正常,更换021-03 阴极取样电路板。
注意事项Q
+输出为: +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "002", + "名称": "修复阴极过压故障" + }} + }}, + {{ + "type": "设备", + "properties": {{ + "名称": "阴极", + "维修项目编号" : "002", + "维修项目名称": "修复阴极过压故障" + }} + }}, + ], + "relationships": [] +}} +只输出纯JSON,不要任何其他文本、解释或Markdown。 +字段不要擅自修改,例如“组成编码”,不应该随意改成“编码”字段 +字段值也不要擅自修改,例如"MT021"改成"T021" +请按照上述示例,对给出的文本进行信息抽取,给出文本为: +text +""" + + +prompt_extract_repair_node_rela1 = """ +你是一个信息抽取专家,根据给出的符合要求html源码,能够抽取出对应的核心信息 + 给你的文本是一段维修项目表,其中维修项目编号代表该维修项目的编号,请抽取出来,编号内容不要随意修改,也不要遗漏,输出为"编号":"MT001" + 其中维修项目字段代表该维修项目的名称,输出为"维修项目":"检查液压油位、油质与压力",抽取格式如下: +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "提取到的编号 (如 OT005)", + "名称": "提取到的维修项目名称" + }} + }} + ], + "relationships": [] +}} + +示例1: +输入为: +
维修项目编号组成编码名称维修项目维修间隔期
MT0210401液压动力单元检查液压油位、油质与压力1D/1W
+ +# 安全注意事项 + +1. 设备运行状态确认与防护:检查工作通常在设备运行时或刚停机时进行。必须清楚了解检查点周边环境,远离所有旋转部件(如泵轴、风扇、联轴器)和高温表面。衣物须紧束,严禁戴手套靠近旋转部位。若需在运行中检查,应事先规划好安全站位和撤离路线。 + +2. 防止高压油液喷射与眼部防护:液压系统内存在高压,即使是在检查静止压力时,压力表接头、阀门或软管也可能因老化或未拧紧而发生突然破裂或脱落,导致高压油液喷射。必须全程佩戴防护眼镜或面罩。检查时,身体不得正对压力表或测压接头正面。 + +保障设备(工具)、备件、消耗材料、人力人员需求 +输出为: + +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "MT021", + "名称": "检查液压油位、油质与压力" + }} + }} + ], + "relationships": [] +}} + +示例2: +输入为: +
维修项目编号组成编码名称维修项目维修间隔期
MT0020402/040203机座与机架组件/焊接机座组件保养机座与机架组件、焊接机座组件1D/1W
+ +# 安全注意事项 + +1. 设备运行状态确认与防护:检查工作通常在设备运行时或刚停机时进行。必须清楚了解检查点周边环境,远离所有旋转部件(如泵轴、风扇、联轴器)和高温表面。衣物须紧束,严禁戴手套靠近旋转部位。若需在运行中检查,应事先规划好安全站位和撤离路线。 + +2. 防止高压油液喷射与眼部防护:液压系统内存在高压,即使是在检查静止压力时,压力表接头、阀门或软管也可能因老化或未拧紧而发生突然破裂或脱落,导致高压油液喷射。必须全程佩戴防护眼镜或面罩。检查时,身体不得正对压力表或测压接头正面。 + +保障设备(工具)、备件、消耗材料、人力人员需求 + +输出为: +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "MT002", + "名称": "保养机座与机架组件、焊接机座组件" + }} + }} + ], + "relationships": [] +}} + +示例3: +输入为: +维修工作卡002 故障名称:阴极过压故障 +
故障现象WCC-II的BITE 显示 TR-2国021-03阴极稳压电路板
8故障原因> 02-05 阴极电源驱动电源板故障;> 022 高压电源组合故障;→ 021-03 阴极稳压电路板故障。
维修人数 11~2
维修工具场十字起子,一字起子
排除步骤1将放大链全部关机,打开放大链顶盖,等待5分钟,让高压电源放电。2拔掉插头 XP1F022,更换022高压电源组合。3开机,加高压,若仍不正常,断高压,关机,再等待5分钟,拔掉插头XP1F052和XP2F052,更换02-051和02-052板;4若仍不正常,更换021-03 阴极取样电路板。
注意事项Q
+输出为: +{{ + "entities": [ + {{ + "type": "维修项目", + "properties": {{ + "编号": "002", + "名称": "修复阴极过压故障" + }} + }}, + ], + "relationships": [] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +字段不要擅自修改,例如“编号”,不应该随意改成“编码”字段 +字段值也不要擅自修改,例如"MT021"改成"T021" +请按照上述示例,对给出的文本进行信息抽取,给出文本为: +text +""" + + + + + +prompt_extract_operation_node_rela = """ +# Role +你是一个专业的信息抽取专家,专门从操作手册的 HTML/文本片段中提取核心操作项目信息。 + +# Task +请分析给定的文本(包含表格和描述),提取以下两个核心字段: +1. **opebianhao** (操作项目编号):通常是 "OT" 开头的编号,保持原样,不要修改。一般来源于表中的项目编号字段对应的值 +2. **operation_name** (操作项目名称):该编号对应的具体操作标题。一般来源于表中的操作项目字段对应的值 + +# Output Format (Strictly Enforced) +你必须且只能输出一个标准的 JSON 对象,格式如下: +{{ + "entities": [ + {{ + "type": "操作项目", + "properties": {{ + "编号": "提取到的编号 (如 OT005)", + "名称": "提取到的操作项目名称" + }} + }} + ], + "relationships": [] +}} + +# Constraints +1. **严禁**输出 Markdown 代码块标记(如 ```json ... ```),只输出纯 JSON 字符串。 +2. **严禁**输出任何解释性文字、前言或后语。 +3. 如果文本中包含多个操作项目,请在 "entities" 列表中添加多个对象。 +4. 如果无法找到编号或名称,该字段填 null,但仍需保持 JSON 结构完整。 +5. **绝对不要**输出类似 `["key": "value"]` 的错误格式,必须使用 `{{"key": "value"}}`。 +6. 一般一段文本中只有一个操作项目,所以只有1条记录 +# Few-Shot Example + +## Input Text +表 4.6 轴系与轴承温度、振动定期巡检与记录 +
项目编号操作项目
OT005轴系与轴承温度、振动定期巡检与记录
+安全防护:佩戴装备。 + +## Output +{{ + "entities": [ + {{ + "type": "操作项目", + "properties": {{ + "编号": "OT005", + "名称": "轴系与轴承温度、振动定期巡检与记录" + }} + }} + ], + "relationships": [] +}} + +请按照上述示例,对给出的文本进行信息抽取,给出文本为: +text +""" +prompt_extract_beipinbeijian_node_rela = """ +你是一个专业备品备件实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系: +###提取规则如下: + 1、备品备件实体(type: "备品备件") + "备品备件"实体主要包括以下属性:"名称", "型号", "规格", "备件编码", "单件重量", "计量单位", "单机数", "随机数量"等属性 + 文本中"名称", "型号", "规格", "备件编码", "单件重量", "计量单位", "单机数", "随机数量"等属性与给出html源码表格字段对应的值相对应 + 2、设备实体(type: "设备") + 名称一般来源于表html代码之前的标题或者前文文本信息中 + 其余属性(型号、技术责任单位、技术状态、生产日期、启用时间、运行时间、运行条件)若原文未提供,一律留空字符串 ""。 + 3、关系(relationships) + 必须包含一条 "存储备用" 类型的关系:from_entity 为设备实体的 名称,to_entity 为备品备件实体的 名称。设备实体一般来原于表格的标题名等信息,而表格中内容则主要为备品备件实体 + 若存在更高层级设备(如“主机系统”存储备用“发动机”),但原文未提及,则不需构造“存储备用”关系。仅当原文明确有上下文时才添加。本例中无上级设备,故只保留“存储备用”关系。 + 输出格式严格遵循 JSON 结构,不得包含额外解释、注释或 Markdown。仅输出一个 JSON 对象,包含 "entities" 和 "relationships" 两个顶层字段。 + + +示例: +输入为: +筏架舷侧门组合装置 +备品备件及工具清单 + +images/d4f3aa8c438ef1fbdc8ff22d1d5b3e275d8e63c53a0c477c53ba72adbae0439e.jpg + +
房号备件型号规格尺寸(长宽随机配备数量(90天是否可修R中南R储存要求GR备注
舰上基地环境期限
1筏筒捆扎带组合件22200长期折便换
2螺旋扣22200长期
3卸扣282000h折拆换
+ +输出为: +{{ + "entities": [ + {{ + "type": "设备", + "properties": {{ + "名称": "筏架舷侧门组合装置", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + }} + }}, + {{ + "type": "备品备件", + "properties": {{ + "名称": "筏筒捆扎带组合件", + "规格": "", + "型号": "", + "图号或标准号或代号": "", + "计量单位": "套", + "单机重量": "", + "尺寸(长X宽X高mm)": "", + "单机装配数量": "2", + "随机配备数量(90 天)_舰上":"2", + "随机配备数量(90 天)_舰上":"", + "远航配备数量(180天)":"", + "实物图片电子文档名称": "", + "MTBF(b)": "200h", + "生成厂家": "江阴市船舶设备制造有限公司", + "出厂日期": "", + "供货周期(天)": "", + "有效期(月)": "长期", + "使用寿命(h)": "拆卸时更换", + "备件箱号": "", + "储存要求_环境": "", + "储存要求_期限": "长期", + "停产后供应方式": "" + }} + }}, + {{ + "type": "备品备件", + "properties": {{ + "名称": "螺旋扣", + "规格": "", + "型号": "", + "图号或标准号或代号": "", + "计量单位": "只", + "单机重量": "", + "尺寸(长X宽X高mm)": "", + "单机装配数量": "2", + "随机配备数量(90 天)_舰上":"2", + "随机配备数量(90 天)_舰上":"", + "远航配备数量(180天)":"", + "实物图片电子文档名称": "", + "MTBF(b)": "200h", + "生成厂家": "江阴市船舶设备制造有限公司", + "出厂日期": "", + "供货周期(天)": "", + "有效期(月)": "长期", + "使用寿命(h)": "拆卸时更换", + "备件箱号": "", + "储存要求_环境": "", + "储存要求_期限": "长期", + "停产后供应方式": ""] + }} + }}, + {{ + "type": "备品备件", + "properties": {{ + "名称": "卸扣", + "规格": "", + "型号": "", + "图号或标准号或代号": "", + "计量单位": "只", + "单机重量": "", + "尺寸(长X宽X高mm)": "", + "单机装配数量": "2", + "随机配备数量(90 天)_舰上":"8", + "随机配备数量(90 天)_舰上":"", + "远航配备数量(180天)":"", + "实物图片电子文档名称": "", + "MTBF(b)": "200h", + "生成厂家": "江阴市船舶设备制造有限公司", + "出厂日期": "", + "供货周期(天)": "", + "有效期(月)": "长期", + "使用寿命(h)": "拆卸时更换", + "备件箱号": "", + "储存要求_环境": "", + "储存要求_期限": "长期", + "停产后供应方式": ""] + }} + }} + ], + "relationships": [ + {{ + "type": "存储备用", + "from_entity": "筏架舷侧门组合装置", + "to_entity": "轴系与轴承温度、筏筒捆扎带组合件" + }}, + {{ + "type": "存储备用", + "from_entity": "筏架舷侧门组合装置", + "to_entity": "螺旋扣" + }}, + {{ + "type": "存储备用", + "from_entity": "筏架舷侧门组合装置", + "to_entity": "卸扣" + }}, + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +字段不要擅自修改,例如“尺寸(长X宽X高mm)”,不应该随意改成“尺寸”字段 +请按照上述示例,对给出的文本进行备品备件实体抽取,给出文本为: +{text} +""" + + +filter_text_prompt= """ +你是一个专业的系统实体属性抽取专家,从给出的文本中按照要求抽取所有系统实体以及对应实体的属性值。 +###抽取规则: + 系统实体一般指的是一段文本的核心实体,可能会有多个,也可能只有一个,整个内容和主题都围绕这些核心实体进行阐述 + 系统实体主要包括以下属性:"名称", "型号", "生产单位", "等级" + 一般系统实体在文本的名称对应属性"名称",其他三个属性如果文本没有或者无法提取,则默认为空 + 根据给出文本,分析围绕这些实体阐述了什么额外内容,这些内容能够提供什么新的属性值,并进行抽取 + 如果存在多个系统实体,那么应该分别进行实体以及对应的属性值抽取.请严格遵守该规则 + 只需要抽取系统实体名称,如果名称后面有什么编码数字,请不要进行抽取,例如"焊接机座组件(0101)"抽取为"焊接机座组件" +### 输出格式要求: +- 必须返回标准的 JSON 数组格式 +- 即使只有一个实体,也必须用数组包裹 +- 每个数组元素是一个对象,包含 "type" 和 "properties" 字段 +- 禁止输出任何解释性文字、Markdown 标记或其他非 JSON 内容 + +### 示例1(单实体): +输入文本: +1 安全警告 +本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。 +1.1 警告 +1)主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。 +2)严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。 +3)燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。 +4)吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。 +1.2 注意 +1)所有更换件必须使用原厂或等同技术条件的认可备件。 +2)防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。 +3)为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。 +4)如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。 +5)拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。 +6)所有密封件(O形圈、金属密封环)拆装必换。 +7)紧固件必须按规定力矩和顺序紧固。 +8)起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。 +思考:这段文本提到了”冷水机组“,文本中标题为"警告",根据文本内容可以分析,主要阐述了冷水机组在使用和维修期间过程中需要注意的警告事项 +,因此只有一个系统实体,"名称"属性值应该为"冷水机组",同时可以增加"使用过程中警告事项"属性,综合分析,输出如下: +{{ + "entities": [ + {{ + "type": "安全警告", + "properties": {{ + "名称": "设备名+安全警告", + "内容": "1)严禁带电维修、保养设备!\\n2)为了防止电力冲击造成组件击穿,并可能导致伤害或死亡,本设备必须安全、可靠接地!", + "切片": + }} + }}, +] +}} + +### 示例2(多实体: +输入文本: +#2.1 主要功能 +船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。 +发动机主要由以下子系统组成: +1) 焊接机座组件(0101):承载与结构支撑; +2) 曲柄连杆机构:实现往复—旋转运动转换; +3) 燃烧室部件:完成燃烧做功; +4) 排气阀驱动系统:控制废气排放; +5) 燃油喷射系统:完成燃油定时、定量喷射; +6) 扫气与增压系统:提高换气效率与功率密度。 + +思考:这段文本首先提到了”船舶主发动机“,文本中标题为"主要功能",根据文本内容可以分析,首先"船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。"阐述了船舶主发动机主要功能; +接着通过"发动机主要由以下子系统组成"可以得知还有多个系统实体,该文本主要描述了系统实体"主要功能",因此"1) 机座与机架组件:承载与结构支撑; +2) 曲柄连杆机构:实现往复—旋转运动转换; +3) 燃烧室部件:完成燃烧做功; +4) 排气阀驱动系统:控制废气排放; +5) 燃油喷射系统:完成燃油定时、定量喷射; +6) 扫气与增压系统:提高换气效率与功率密度。 +"可以分析出,曲柄连杆机构、燃烧室部件、排气阀驱动系统等也可以抽取为系统实体,同时后面对应内容描述该系统实体的主要功能。综上分析,可以抽取实体以及属性如下: +{{ + "entities":[ + {{ + "type": "系统", + "properties": {{ + "名称": "船舶主发动机", + "型号": "", + "生产单位": "", + "等级": "", + "功能": "将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行", + "类型": "低速二冲程船用推进柴油机", + "组成": "机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀驱动系统、燃油喷射系统、扫气与增压系统" + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "机座与机架组件", + "型号": "", + "生产单位": "", + "等级": "", + "功能": "承载与结构支撑" + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "曲柄连杆机构", + "型号": "", + "生产单位": "", + "等级": "", + "功能": "实现往复—旋转运动转换" + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "燃烧室部件", + "型号": "", + "生产单位": "", + "等级": "", + "功能": "完成燃烧做功" + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "排气阀驱动系统", + "型号": "", + "生产单位": "", + "等级": "", + "功能": "控制废气排放" + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "燃油喷射系统", + "型号": "", + "生产单位": "", + "等级": "", + "功能": "完成燃油定时、定量喷射" + }} + }}, + {{ + "type": "系统", + "properties": {{ + "名称": "扫气与增压系统", + "型号": "", + "生产单位": "", + "等级": "", + "功能": "提高换气效率与功率密度" + }} + }} +] +}} +只输出纯JSON,不要任何其他文本、解释或Markdown。 +请按照上述示例,对给出的文本进行实体抽取,给出文本为: +text +""" +zhangjie_prompt = """ +你是一个专业的技术文档结构化提取专家。给出的文本是从技术手册中按章节切出的一个片段,已用 # 符号标记标题层级: +- `#` 开头:一级章节标题(含编号,如 `#1 概述`、`#2.3 工作原理`) +- `##` 开头:二级章节标题(含编号,如 `##1.1 主要功能`) +- 无前缀:正文内容、表格或图片说明 + +### 提取规则: + +**情况一:输入包含一级标题(`#` 开头)** +- 提取 1 个实体 +- `type` = 一级标题去掉编号和首尾空格,例如 `#1 概述` → type 为 `概述` +- `properties` 按以下规则构建: + - `名称`:留空字符串 ""(由外部代码填充,请勿自行填写) + - 一级标题之后、第一个二级标题之前的正文 → 属性键为 `概述` + - 每个二级标题(去掉编号和首尾空格)→ 属性键,该标题下的正文 → 属性值 + - 如果没有任何二级标题,全部正文 → 属性键为 `内容` + - 属性值为空时不输出该属性 + +**情况二:输入只有二级标题(`##` 开头,无一级标题)** +- 提取 1 个实体 +- `type` = 二级标题去掉编号和首尾空格,例如 `##3.1 液压系统` → type 为 `液压系统` +- `properties`:`名称` 留空,正文内容 → 属性键为 `内容` + +### 输出格式: +- 必须返回标准 JSON,包含 `entities` 数组 +- 禁止输出 relationships、解释文字、Markdown 标记 +- 属性值保留原文,不要改写或压缩 + +### 示例1(含二级标题的一级章节): +输入文本: +#1 概述 +本章介绍发动机的基本情况。 +##1.1 主要使用用途及适用范围 +本发动机主要用于船舶推进,适用于各类远洋货轮。 +##1.2 主要规格及参数 +额定功率:12000kW,转速:91rpm,气缸数:8。 + +输出: +{{ + "entities": [ + {{ + "type": "概述", + "properties": {{ + "名称": "", + "概述": "本章介绍发动机的基本情况。", + "主要使用用途及适用范围": "本发动机主要用于船舶推进,适用于各类远洋货轮。", + "主要规格及参数": "额定功率:12000kW,转速:91rpm,气缸数:8。" + }} + }} + ] +}} + +### 示例2(无二级标题的一级章节): +输入文本: +#3 工作原理 +发动机采用二冲程低速工作方式,活塞向下运动时扫气口打开,新鲜空气扫入气缸,废气经排气阀排出。 + +输出: +{{ + "entities": [ + {{ + "type": "工作原理", + "properties": {{ + "名称": "", + "内容": "发动机采用二冲程低速工作方式,活塞向下运动时扫气口打开,新鲜空气扫入气缸,废气经排气阀排出。" + }} + }} + ] +}} + +### 示例3(仅二级标题,特殊章节切片): +输入文本: +##4.2 燃油系统 +燃油系统由高压油泵、喷油器、燃油管路组成,负责将燃油定时定量喷入气缸。 +系统工作压力为900bar,喷油正时由电控单元控制。 + +输出: +{{ + "entities": [ + {{ + "type": "燃油系统", + "properties": {{ + "名称": "", + "内容": "燃油系统由高压油泵、喷油器、燃油管路组成,负责将燃油定时定量喷入气缸。\\n系统工作压力为900bar,喷油正时由电控单元控制。" + }} + }} + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +请按照上述规则,对给出的文本进行章节实体提取,给出文本为: +{{{text}}} +""" + + +toc_prompt = """ +你是一个专业的技术文档结构化提取专家。给出的文本是技术手册的目录页内容。 + +### 任务: +从目录中提取所有**一级章节**的编号和名称。 + +### 规则: +- 一级章节:编号格式为单个数字,如 `1`、`2`、`3`(不含小数点的编号) +- 去掉编号、页码、点线,只保留章节名称文字 +- **保留所有章节,不要过滤任何章节** + +### 输出格式: +```json +{{ + "chapters": [ + {{"numbering": "1", "type": "章节名1"}}, + {{"numbering": "2", "type": "章节名2"}} + ] +}} +``` + +### 示例: +目录内容: +1 安全警告 .............. 4 +2 概述 .................. 8 + 2.1 主要使用用途 ....... 9 + 2.2 主要规格及参数 ..... 10 +3 工作原理 .............. 15 +4 维修工作指导 .......... 20 +5 组成、技术特征及接口 .. 25 + +输出: +{{ + "chapters": [ + {{"numbering": "1", "type": "安全警告"}}, + {{"numbering": "2", "type": "概述"}}, + {{"numbering": "3", "type": "工作原理"}}, + {{"numbering": "4", "type": "维修工作指导"}}, + {{"numbering": "5", "type": "组成、技术特征及接口"}} + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +请从以下目录内容中提取一级章节: +{{{text}}} +""" + + diff --git a/kg_build_0409/_post_process_entities_and_relations.py b/kg_build_0409/_post_process_entities_and_relations.py new file mode 100644 index 0000000..8b9c0fb --- /dev/null +++ b/kg_build_0409/_post_process_entities_and_relations.py @@ -0,0 +1,209 @@ + +def reset_entities_and_relations(entities: list, relations: list, device: str): + """ + 实体与关系的后处理中心(规则分支入口)。 + 在此处集中管理所有不需要大模型参与的规则清洗、类型修正和关系调整。 + + :param entities: 实体列表 (会被原地修改并过滤) + :param relations: 关系列表 (会被原地修改) + :param device: 设备名称 + :return: (filtered_entities, relations) 返回过滤后的实体列表和修改后的关系列表 + """ + print(f"\n[后处理] 开始执行规则清洗 (Device: {device})...") + total_changes = 0 + + # ========================================== + # 配置化规则定义:(旧类型, 新类型, 新关系类型, 名称替换逻辑) + # name_transformer: 接收 (old_name, device),返回 new_name + # ========================================== + standardization_rules = [ + { + "old_type": "接口关系", + "new_type": "接口", + "new_rel_type": "配备", + "name_transformer": lambda old, dev: f"{dev}的接口" + }, + { + "old_type": "安全警告", + "new_type": "安全警告", + "new_rel_type": "安全警告", + "name_transformer": lambda old, dev: old.replace("安全警告", "注意事项") if "注意事项" in old.replace("安全警告", "注意事项") else f"{dev}的注意事项" + }, + { + "old_type": "技术指标", + "new_type": "技术指标参数", + "new_rel_type": "具有", + "name_transformer": lambda old, dev: ( + old.replace("技术指标", "技术指标参数") if "技术指标" in old + else f"{old}参数" if old + else f"{dev}的技术指标参数" + ) + }, + { + "old_type": "安装调试", + "new_type": "调试", + "new_rel_type": "调试", # 注意:这里原代码逻辑是关系类型也变为"调试" + "name_transformer": lambda old, dev: ( + old.replace("安装调试", "调试") if "安装调试" in old + else f"{dev}的调试" + ) + }, + { + "old_type": "系统功能", + "new_type": "功能", + "new_rel_type": "实现", + "name_transformer": lambda old, dev: ( + old.replace("系统功能", "功能") if "系统功能" in old + else f"{dev}的功能" + ) + }, + { + "old_type": "调试细则", + "new_type": "调试", + "new_rel_type": "调试", + "name_transformer": lambda old, dev: ( + old.replace("调试细则", "调试") if "调试细则" in old + else f"{dev}的调试" + ) + } + ] + + # ========================================== + # 通用处理引擎:执行标准化规则 + # ========================================== + for rule in standardization_rules: + count = 0 + old_type = rule["old_type"] + new_type = rule["new_type"] + new_rel_type = rule["new_rel_type"] + transformer = rule["name_transformer"] + + old_to_new_map = {} + + # 1. 处理实体 + for ins in entities: + if ins.get("type") == old_type: + old_name = ins["properties"].get("名称", "") + + # 生成新名称 + new_name = transformer(old_name, device) + + # 兜底检查:如果生成的名字还是空的 + if not new_name: + new_name = f"{device}的{new_type}" + + # 应用修改 + ins["type"] = new_type + ins["properties"]["名称"] = new_name + + old_to_new_map[old_name] = new_name + count += 1 + print(f" - [实体] '{old_name}' ({old_type}) -> '{new_name}' ({new_type})") + + # 2. 处理关联关系 + if old_to_new_map: + for rel in relations: + to_ent = rel.get("to_entity") + if to_ent in old_to_new_map: + old_rel_type_val = rel.get("type") + rel["type"] = new_rel_type + rel["to_entity"] = old_to_new_map[to_ent] + count += 1 + print(f" - [关系] '{rel['from_entity']}' --({old_rel_type_val})--> '{to_ent}' 变更为 --({new_rel_type})--> '{rel['to_entity']}'") + + if count > 0: + print(f" [规则应用] {old_type} -> {new_type}: 共修改 {count} 处") + total_changes += count + + # ========================================== + # 特殊逻辑:拆分 "基本情况" + # 策略:先收集新生成的实体/关系,循环结束后再添加,避免遍历中修改列表 + # ========================================== + new_items_buffer = [] + basic_info_indices = [] # 记录需要被移除的"基本情况"实体的索引(如果需要彻底移除) + + for idx, ins in enumerate(entities): + if ins.get("type") == "基本情况": + gonneng = ins["properties"].get("主要功能", "") + gztj = ins["properties"].get("工作条件", "") + source_ks = ins.get("knowledge_source") + + # 构建 "功能" 实体 + func_name = f"{device}的功能" + entity_func = { + "type": "功能", + "properties": { + "名称": func_name, + "内容": gonneng, + "knowledge_source": source_ks + } + } + rela_func = { + "type": "使用", + "from_entity": device, + "to_entity": func_name, + } + + # 构建 "环境条件" 实体 + env_name = f"{device}的环境条件" + entity_env = { + "type": "环境条件", + "properties": { + "名称": env_name, + "内容": gztj, + "knowledge_source": source_ks + } + } + rela_env = { + "type": "适用", + "from_entity": device, + "to_entity": env_name, + } + + new_items_buffer.extend([entity_func, entity_env, rela_func, rela_env]) + # 标记该实体后续需要被过滤掉(根据原代码逻辑,"基本情况"最终不保留在返回的实体列表中) + basic_info_indices.append(idx) + + print(f" [拆分完成] 已从 '基本情况' 生成 '功能' 和 '环境条件' (来源已继承)。") + + # 将新生成的项加入主列表 + # 注意:new_items_buffer 中包含实体和关系,需要分开加 + # 前两个是实体,后两个是关系 (根据上面的 extend 顺序) + # 为了更安全,我们显式区分 + entities_to_add = [item for item in new_items_buffer if item.get("properties")] # 简单判断:有 properties 的是实体 + relations_to_add = [item for item in new_items_buffer if not item.get("properties")] # 没有 properties 的是关系 (假设关系结构不同) + + # 更严谨的区分方式是根据 key 判断,或者上面构建时直接分两个列表 + # 这里采用重新构建的方式确保准确,因为 buffer 里混放了 + # 实际上,上面的逻辑里 entity 有 properties, relation 没有 (或者结构不同) + # 让我们修正一下添加逻辑,直接复用上面构建的变量逻辑会更清晰,但为了适应 buffer: + + # 重新整理 buffer (刚才的 extend 混合了,这里简单按类型分离) + # 由于上面构建时 entity 都有 "properties" 键,relation 没有 (通常 relation 是 from/to/type) + for item in new_items_buffer: + if "properties" in item: + entities.append(item) + else: + relations.append(item) + + # ========================================== + # 最终过滤:移除 "基本情况" 实体 + # 原代码逻辑是:遍历 entities,如果是 "基本情况" 则跳过,否则加入 final_entity + # ========================================== + final_entities = [ins for ins in entities if ins.get("type") != "基本情况"] + + # 如果原列表中有被移除的,计算一下数量用于日志(可选) + removed_count = len(basic_info_indices) + if removed_count > 0: + print(f" [过滤完成] 移除了 {removed_count} 个 '基本情况' 实体。") + + # ========================================== + # 总结 + # ========================================== + if total_changes == 0 and removed_count == 0 and not new_items_buffer: + print(f"[后处理] 未命中任何清洗或拆分规则。") + else: + print(f"[后处理] 全部完成。标准化修改 {total_changes} 次,拆分生成 {len(new_items_buffer)//2} 组新数据,过滤移除 {removed_count} 个旧实体。\n") + + return final_entities, relations + diff --git a/kg_build_0409/chapter_segmenter.py b/kg_build_0409/chapter_segmenter.py new file mode 100644 index 0000000..9ac8d89 --- /dev/null +++ b/kg_build_0409/chapter_segmenter.py @@ -0,0 +1,531 @@ +""" +chapter_segmenter.py +对外接口:segment_chapters(data) -> List[Chapter] + +纯规则章节切分,不依赖大模型,不依赖 extract_util / entity_registry。 +输入:content_list JSON(list of dict,每条含 type/text/text_level/page_idx/bbox 等字段) +输出:Chapter 列表,每个 Chapter 包含标题信息、所属 records、以及二级子章节。 + +多信号融合标题识别(v8): + - 两遍扫描:先扫描所有候选标题 → 全局校验编号连续性 → 再切分 + - 置信度融合:text_level + 编号格式 + 文本长度 + 标点密度 + - 全局校验:编号跳跃过大的假标题自动剔除 +""" + +import re +from dataclasses import dataclass, field +from typing import List, Dict, Optional, Set + + +# ============================== +# 配置(可在调用前修改模块级变量) +# ============================== + +# 一级标题含以下关键词时整章跳过 +FILTER_KEYWORDS: List[str] = [ + "维修工作卡", "维修项目索引", + "常见故障", "维修项目表" +] + +# 二级标题含以下关键词时跳过该二级节 +FILTER_L2_KEYWORDS: List[str] = [ + "常见故障表", "维修项目表", "维修工作卡","操作程序" +] + +# 特殊章节关键词:一级标题含以下任一时,不作为整体实体,二级标题各自独立 +SPECIAL_CHAPTER_KEYWORDS: List[str] = [ + "组成、技术特征及接口", + "组成和技术特征", + "组成与技术特征", + "组成、技术特征", +] + +# 目录关键词(去空格后匹配,兼容"目 次"/"目 录"等 OCR 带空格的写法) +TOC_KEYWORDS: List[str] = ["目次", "目录", "contents"] + +# 置信度阈值:低于此值的不认为是标题 +HEADING_CONFIDENCE_THRESHOLD: float = 0.5 + +# 一级标题编号最大允许跳跃数(连续性校验) +MAX_L1_GAP: int = 3 + + +# ============================== +# 数据结构 +# ============================== + +@dataclass +class L2Section: + """二级子章节""" + title: str # 去编号后的标题名 + numbering: str # 编号,如 "3.2" + records: List[dict] = field(default_factory=list) # 该二级节的所有 records + + +@dataclass +class Chapter: + """一级章节(含所有二级子节)""" + title: str # 去编号后的标题名(已应用 L1_TITLE_MAPPING 等由调用方处理) + raw_title: str # 原始文本(含编号) + numbering: str # 编号,如 "3" + is_special: bool # 是否特殊章节(二级各自独立) + is_skipped: bool # 是否被 FILTER_KEYWORDS 过滤 + records: List[dict] = field(default_factory=list) # 本章所有 records(含标题行) + loose_records: List[dict] = field(default_factory=list) # 一级标题到第一个二级标题之间的 records + l2_sections: List[L2Section] = field(default_factory=list) # 二级子章节列表 + + +@dataclass +class _HeadingNode: + """内部用:统一的标题节点""" + raw_text: str + clean_title: str + numbering: str + level: int + index_in_data: int + confidence: float = 1.0 + + +# ============================== +# 正则 +# ============================== + +_CHAPTER_NUM_RE = re.compile(r'^(\d{1,2}(?:\.\d{1,2})*\.?)') +_LIST_ITEM_RE = re.compile(r'^[\d]+[)\)]\s*') +_ALPHA_LIST_RE = re.compile(r'^[a-zA-Z][)\)\.]\s*') +_TOC_ENTRY_SUFFIX_RE = re.compile(r'([\s.]+\d{1,4}|\.{2,})\s*$') + + +# ============================== +# 标题工具函数 +# ============================== + +def _is_real_chapter_title(text: str) -> bool: + text = text.strip() + if _LIST_ITEM_RE.match(text): + return False + if _ALPHA_LIST_RE.match(text): + return False + if re.search(r'[。!?:]\s*$', text): + return False + chapter_num = r'^\d{1,2}(?:\.\d{1,2})*' + if re.match(chapter_num + r'\s+\S', text): + return True + if re.match(chapter_num + r'\.\s+\S', text): + return True + if re.match(chapter_num + r'\.?[\u4e00-\u9fff]', text): + return True + return False + + +def _is_toc_entry_line(text: str) -> bool: + if '\n' in text: + return False + return bool(_TOC_ENTRY_SUFFIX_RE.search(text)) + + +def _get_chapter_level(text: str) -> int: + match = _CHAPTER_NUM_RE.match(text.strip()) + if match: + num = match.group(1).rstrip('.') + return num.count('.') + 1 + return 0 + + +def _get_chapter_numbering(text: str) -> str: + match = _CHAPTER_NUM_RE.match(text.strip()) + return match.group(1).rstrip('.') if match else "" + + +def _clean_title(text: str) -> str: + return re.sub(r'^\d{1,2}(?:\.\d{1,2})*\.?\s*', '', text.strip()).strip() + + +def _should_skip_l2(title_clean: str) -> bool: + return any(kw in title_clean for kw in FILTER_L2_KEYWORDS) + + +def _is_special_chapter(title: str) -> bool: + return any(kw in title for kw in SPECIAL_CHAPTER_KEYWORDS) + + +# ============================== +# 目录页检测 +# ============================== + +def _is_toc_content(ins: dict) -> bool: + """ + 判断是否是目录页内容(三层判断)。 + + 层1:text_level>=1 且含目录关键词 → 直接判定 + 层2:严格目录条目格式("文字..页码" ≥2次) + 层3:宽松兜底:换行多 + '..'密集 + 排除正文列表/技术参数 + """ + text = ins.get("text", "") + text_level = ins.get("text_level", 0) + + text_nospace = text.replace(" ", "").replace("\u3000", "") + if text_level and any(kw in text_nospace.lower() for kw in TOC_KEYWORDS): + return True + + toc_entry_re = re.compile( + r'[\u4e00-\u9fffa-zA-Z)\)]\s*\.{2,}\s*\.?\s*(\d{1,4})\s*$', + re.MULTILINE + ) + if len(toc_entry_re.findall(text)) >= 2: + return True + + if text.count('\n') > 3 and '..' in text: + has_list_markers = bool(re.search( + r'(?:^|\n)\s*(?:\d+[)\)]|[a-zA-Z][)\).])', text + )) + if has_list_markers: + return False + range_pattern_count = len(re.findall(r'[\d℃%]\.\.[+\-\d]', text)) + dot_count = len(re.findall(r'\.{2,}', text)) + if range_pattern_count > 0 and range_pattern_count >= dot_count * 0.5: + return False + line_count = text.count('\n') + 1 + if dot_count >= max(3, line_count * 0.3): + return True + + return False + + +def _get_toc_pages(data: list) -> Set[int]: + """找出所有目录页的 page_idx,支持多页目录,并向后延伸。""" + toc_pages: Set[int] = set() + for ins in data: + if _is_toc_content(ins): + toc_pages.add(ins.get("page_idx", -1)) + text = ins.get("text", "") + text_level = ins.get("text_level", 0) + text_nospace = text.replace(" ", "").replace("\u3000", "") + if text_level and any(kw in text_nospace.lower() for kw in TOC_KEYWORDS): + toc_pages.add(ins.get("page_idx", -1)) + toc_pages.discard(-1) + + if not toc_pages: + return toc_pages + + pages_records: Dict[int, list] = {} + for ins in data: + p = ins.get("page_idx", -1) + if p < 0: + continue + pages_records.setdefault(p, []).append(ins) + + max_toc = max(toc_pages) + for next_page in range(max_toc + 1, max_toc + 10): + if next_page not in pages_records: + break + records = pages_records[next_page] + text_records = [ + r for r in records + if r.get("type") == "text" and (r.get("text") or "").strip() + ] + if not text_records: + toc_pages.add(next_page) + continue + toc_like = sum( + 1 for r in text_records + if _is_toc_content(r) or _is_toc_entry_line((r.get("text") or "")) + ) + if toc_like == len(text_records): + toc_pages.add(next_page) + else: + break + + return toc_pages + + +# ============================== +# 多信号融合标题识别 +# ============================== + +def _compute_heading_confidence(ins: dict, text: str, level: int) -> float: + """ + 4个信号融合(0~1): + text_level>=1(0.35)+ 编号格式规范(0.30)+ 长度合理(0.20)+ 标点密度低(0.15) + """ + score = 0.0 + text_level = ins.get("text_level", 0) + + if text_level >= 1: + score += 0.35 + + normalized = re.sub(r'\s+', ' ', text.replace('\u3000', ' ')) + if re.match(r'^\d{1,2}(?:\.\d{1,2})*\.?\s+[\u4e00-\u9fffa-zA-Z]', normalized): + score += 0.30 + elif re.match(r'^\d{1,2}(?:\.\d{1,2})*[\u4e00-\u9fff]', normalized): + score += 0.20 + + clean = _clean_title(text) + if 1 <= len(clean) <= 20: + score += 0.20 + elif len(clean) <= 35: + score += 0.10 + + punct_count = len(re.findall(r'[,。;:、!?,.;:!?]', clean)) + if punct_count <= 1: + score += 0.15 + elif punct_count <= 3: + score += 0.05 + + return score + + +def _scan_all_headings(data: list, toc_pages: Set[int] = None) -> List[_HeadingNode]: + """第一遍:识别所有置信度足够的标题节点。""" + headings = [] + debug_rejected = [] + + for i, ins in enumerate(data): + if ins.get("type") != "text": + continue + if toc_pages and ins.get("page_idx") in toc_pages: + continue + + text = ins.get("text", "").strip() + if not text: + continue + if _is_toc_content(ins): + debug_rejected.append(f" [i={i}] 目录页跳过: {text[:40]!r}") + continue + if _is_toc_entry_line(text): + debug_rejected.append(f" [i={i}] 目录条目行: {text[:60]!r}") + continue + if not _is_real_chapter_title(text): + first_char = text[0] if text else '' + if first_char.isdigit() and len(debug_rejected) < 50: + debug_rejected.append(f" [i={i}] 非章节标题格式: {text[:60]!r}") + continue + + level = _get_chapter_level(text) + if level == 0: + continue + + numbering = _get_chapter_numbering(text) + clean = _clean_title(text) + confidence = _compute_heading_confidence(ins, text, level) + + if confidence >= HEADING_CONFIDENCE_THRESHOLD: + headings.append(_HeadingNode( + raw_text=text, + clean_title=clean, + numbering=numbering, + level=level, + index_in_data=i, + confidence=confidence, + )) + else: + debug_rejected.append( + f" [i={i}] 置信度不足({confidence:.2f}): {text[:60]!r} " + f"(text_level={ins.get('text_level', 0)})" + ) + + print(f"\n [DEBUG] data总条数={len(data)}, " + f"text类型条数={sum(1 for x in data if x.get('type')=='text')}") + print(f" [DEBUG] 候选标题={len(headings)}, 被拒绝={len(debug_rejected)}") + if debug_rejected: + print(" [DEBUG] 被拒绝样本(最多20条):") + for msg in debug_rejected[:20]: + print(msg) + + return headings + + +def _validate_heading_sequence(headings: List[_HeadingNode]) -> List[_HeadingNode]: + """第二遍:全局校验编号连续性,去除可疑标题并去重。""" + if not headings: + return headings + + level1_nums = sorted(set( + int(h.numbering) for h in headings if h.level == 1 + )) + + valid_level1: Set[int] = set() + if level1_nums: + for i, num in enumerate(level1_nums): + if i == 0: + valid_level1.add(num) + continue + gap = num - level1_nums[i - 1] + if gap <= MAX_L1_GAP: + valid_level1.add(num) + else: + print(f" ⚠️ 一级标题编号跳跃过大: {level1_nums[i-1]} → {num},丢弃 {num}") + + validated = [] + for h in headings: + if h.level == 1: + if int(h.numbering) in valid_level1: + validated.append(h) + elif h.level >= 2: + parent_num = int(h.numbering.split('.')[0]) + if parent_num in valid_level1: + validated.append(h) + else: + validated.append(h) + + def _has_lower_l2_after(h: _HeadingNode) -> bool: + if h.level != 1: + return False + h_num = int(h.numbering) + after_l2 = [x for x in validated if x.index_in_data > h.index_in_data and x.level == 2] + for x in after_l2[:8]: + parent = int(x.numbering.split('.')[0]) + if parent < h_num: + return True + if parent >= h_num: + break + return False + + from collections import defaultdict + by_num: Dict[str, list] = defaultdict(list) + for h in validated: + by_num[h.numbering].append(h) + + best: Dict[str, _HeadingNode] = {} + for numbering, candidates in by_num.items(): + if len(candidates) == 1: + best[numbering] = candidates[0] + else: + ok = [c for c in candidates if not _has_lower_l2_after(c)] + chosen = ok[0] if ok else candidates[-1] + for c in candidates: + if c is not chosen: + print(f" ⚠️ 编号重复,丢弃误识别: {c.numbering} 【{c.clean_title}】") + best[numbering] = chosen + + return [h for h in validated if best.get(h.numbering) is h] + + +def _build_heading_index(data: list) -> Dict[int, _HeadingNode]: + """构建 data索引 → HeadingNode 的映射。""" + toc_pages = _get_toc_pages(data) + if toc_pages: + print(f" [TOC页] 检测到目录页 page_idx={sorted(toc_pages)},跳过这些页的标题识别") + + headings = _scan_all_headings(data, toc_pages) + headings = _validate_heading_sequence(headings) + + if headings: + print(f" [标题识别] 共识别 {len(headings)} 个有效标题:") + for h in headings: + indent = " " * h.level + conf_str = f" (conf={h.confidence:.2f})" if h.confidence < 1.0 else "" + print(f" {indent}{h.numbering} {h.clean_title}{conf_str}") + + return {h.index_in_data: h for h in headings} + + +# ============================== +# 对外接口 +# ============================== + +def segment_chapters(data: list) -> List[Chapter]: + """ + 对外唯一接口。 + + 将 content_list JSON 按章节结构切分,返回 Chapter 列表。 + 每个 Chapter 包含: + - title / raw_title / numbering:标题信息 + - is_special:是否特殊章节(二级节各自独立,不合并) + - is_skipped:是否被 FILTER_KEYWORDS 过滤(内容为空) + - records:本章全部 records(含标题行,不含目录页记录) + - loose_records:一级标题到第一个二级标题之间的 records + - l2_sections:List[L2Section],每个二级节含 title/numbering/records + + :param data: content_list JSON,list of dict + :return: List[Chapter],按文档顺序排列 + """ + toc_pages = _get_toc_pages(data) + heading_index = _build_heading_index(data) + + chapters: List[Chapter] = [] + + # 当前章节状态 + cur: Optional[Chapter] = None + cur_l2: Optional[L2Section] = None + has_met_l2 = False + + def _flush_l2(): + nonlocal cur_l2 + if cur_l2 is not None and cur is not None: + if not _should_skip_l2(cur_l2.title): + cur.l2_sections.append(cur_l2) + cur_l2 = None + + def _flush_chapter(): + nonlocal cur, cur_l2, has_met_l2 + if cur is None: + return + _flush_l2() + chapters.append(cur) + cur = None + cur_l2 = None + has_met_l2 = False + + for i, ins in enumerate(data): + # 跳过目录页 + if toc_pages and ins.get("page_idx") in toc_pages: + continue + if _is_toc_content(ins): + continue + # discarded 记录:仍然归入当前章节(保留位置信息供调用方使用) + if ins.get("type") == "discarded": + if cur is not None and not cur.is_skipped: + cur.records.append(ins) + continue + + heading = heading_index.get(i) + + if heading is not None and heading.level == 1: + # 新的一级标题 → 刷出上一章 + _flush_chapter() + is_skipped = any(kw in heading.raw_text for kw in FILTER_KEYWORDS) + cur = Chapter( + title=heading.clean_title, + raw_title=heading.raw_text, + numbering=heading.numbering, + is_special=_is_special_chapter(heading.raw_text), + is_skipped=is_skipped, + ) + has_met_l2 = False + if not is_skipped: + cur.records.append(ins) + tag = " [特殊]" if cur.is_special else "" + print(f"\n[一级标题] {heading.raw_text}{tag} (conf={heading.confidence:.2f})") + continue + + if cur is None or cur.is_skipped: + continue + + if heading is not None and heading.level == 2: + # 二级标题 + _flush_l2() + l2_clean = heading.clean_title + if not _should_skip_l2(l2_clean): + cur_l2 = L2Section( + title=l2_clean, + numbering=heading.numbering, + records=[ins], + ) + has_met_l2 = True + cur.records.append(ins) + continue + + # 普通内容记录 + cur.records.append(ins) + if has_met_l2: + if cur_l2 is not None: + cur_l2.records.append(ins) + else: + cur.loose_records.append(ins) + + _flush_chapter() + + print(f"\n[chapter_segmenter] 共切分章节: {len(chapters)} 个") + return chapters + diff --git a/kg_build_0409/entity_registry.py b/kg_build_0409/entity_registry.py new file mode 100644 index 0000000..2a1ef55 --- /dev/null +++ b/kg_build_0409/entity_registry.py @@ -0,0 +1,74 @@ +""" +entity_registry.py +实体类型注册中心。 + +- extract_filtertext_v8.py 在生成实体时调用 register() 写入 +- app.py 启动时调用 get_ontology_description() / get_node_types() 合并进配置 +- 注册信息持久化到 entity_registry.json,跨进程保留 +""" + +import json +import os + +_REGISTRY_DIR = os.path.join(os.path.dirname(__file__), "registry") +_REGISTRY_FILE = os.path.join(_REGISTRY_DIR, "entity_registry.json") + +os.makedirs(_REGISTRY_DIR, exist_ok=True) + +# 内存缓存,避免每次读文件 +_cache: dict = {} + + +def _load(): + global _cache + if _cache: + return + if os.path.exists(_REGISTRY_FILE): + with open(_REGISTRY_FILE, encoding="utf-8") as f: + _cache = json.load(f) + else: + _cache = {} + + +def _save(): + with open(_REGISTRY_FILE, "w", encoding="utf-8") as f: + json.dump(_cache, f, ensure_ascii=False, indent=2) + + +def register(entity_type: str, description: str = "", properties: list = None): + """ + 注册一个实体类型。已存在则跳过,不覆盖。 + + 参数: + entity_type: 实体类型名,如 "维修工作指导" + description: 对该类型的描述(可为空) + properties: 该类型的属性列表,如 ["名称", "内容", "knowledge_source"] + """ + _load() + if entity_type in _cache: + return # 已注册,不覆盖 + _cache[entity_type] = { + "description": description, + "properties": properties or ["名称", "内容", "knowledge_source"] + } + _save() + print(f" [registry] 注册新实体类型: 【{entity_type}】") + + +def get_ontology_description() -> dict: + """返回 {type: [description]} 格式,可直接合并进 Ontology_DESCRIPTION。""" + _load() + return {k: [v["description"]] for k, v in _cache.items()} + + +def get_node_types() -> dict: + """返回 {type: [properties]} 格式,可直接合并进 node_types。""" + _load() + return {k: v["properties"] for k, v in _cache.items()} + + +def get_ontology_list() -> list: + """返回所有已注册的实体类型名列表,可合并进 ontology。""" + _load() + return list(_cache.keys()) + diff --git a/kg_build_0409/extract_beipinbeijian_table.py b/kg_build_0409/extract_beipinbeijian_table.py new file mode 100644 index 0000000..0e5203f --- /dev/null +++ b/kg_build_0409/extract_beipinbeijian_table.py @@ -0,0 +1,178 @@ +import json +import fitz # PyMuPDF +import os +from collections import Counter +from kg_build.Prompt import prompt_extract_beipinbeijian_node_rela +from openai import OpenAI +from extract_util import safe_json_loads, highlight_pdf_file, get_content_bbox +from modelsAPI.model_api import OpenaiAPI + +# 指定 JSON 文件路径 +# file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/122-06A0014-B01001_发动机-维修手册_content_list.json' + +# try: +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) +# except Exception as e: +# print(f"读取 JSON 文件时出错:{e}") +# data = [] + +# 为每条记录添加 id(从1开始) + + +def get_beipinbeijian_chunk_bbox_and_removed_data(data): + # 定义三种可能的表头格式 + labels = [ + '', + '
名称型专规格
', + '<
序号名称型号规格
', + '
序号名称型号规格
', + '
序号名称型号规格
', + '
名称型专规格
', + '
备品备件、附件和工具清单
设备备品备件清单设备型号设备装舰台套数
', + '
序号名 称型号规格图号或标准号
' + ] + + record_map = {item["id"]: item for item in data} + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + table_body = ins.get("table_body", "") + if any(label in table_body for label in labels): + current_id = ins["id"] + # 获取当前及前4个记录的 id(确保 >=1) + group_ids = [current_id - i for i in range(4, -1, -1) if current_id - i >= 1] + ids_to_remove.update(group_ids) + # 按顺序构建 group(从最早到当前) + group = [record_map[pid] for pid in group_ids if pid in record_map] + results.append(group) + + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + return results, filtered_data + + +async def extract_beipinbeijian_table_entity(chunk): + + print("提取备品备件类实体和关系") + + final_prompt = prompt_extract_beipinbeijian_node_rela.format(text=chunk) + raw_response = await OpenaiAPI.openai_chat_aysnc(final_prompt,timeout=600) + + if raw_response is None: + print("API 调用失败,跳过当前 chunk") + return [] + + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = safe_json_loads(cleaned) + if json_result is None: + print("JSON 解析失败: 返回 None") + return [] + + return json_result + + except Exception as e: + print(f"⚠️ JSON 解析异常: {e}") + print(f"原始响应片段: {repr(raw_response[:500])}") + return [] + + + + +async def get_beipinbeijian_node_relation(input_pdf_path,data,prefix_url = "http://192.168.0.46:59085"): + for idx, item in enumerate(data, start=1): + item["id"] = idx + # 主流程 + guzhang_groups, cleaned_data = get_beipinbeijian_chunk_bbox_and_removed_data(data) + + if not guzhang_groups: + print("未找到符合条件的备品备件表格,跳过处理。") + all_entity_results,all_relation_results = [],[] + else: + all_entity_results,all_relation_results = [],[] # 用于收集所有成功提取的结果 + + for i, compose in enumerate(guzhang_groups): + try: + print(f"开始处理第{i+1}个备品备件表") + # 获取内容和高亮信息 + content, highlight_list = get_content_bbox(compose) + print("备品备件表切片内容为:",content) + + # 提取实体 + result =await extract_beipinbeijian_table_entity(content) + if result is []: + print(f"第 {i+1} 组:实体提取失败,跳过") + continue + + # 安全访问 entities 字段 + entities = result.get("entities", []) + if not isinstance(entities, list): + print(f"第 {i+1} 组:entities 字段格式异常,跳过") + continue + relationships = result.get("relationships", []) + + # 为每个 entity 添加 knowledge_source + + highlight_filename, most_common_page,filename = highlight_pdf_file(input_pdf_path,highlight_list) + url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + # for entity in entities: + # knowledge_source = [{ + # "filename": filename, + # "info": content, + # "url": url + # }] + # # 确保 properties 存在 + # if "properties" not in entity or not isinstance(entity["properties"], dict): + # entity["properties"] = {} + # entity["properties"]["knowledge_source"] = knowledge_source + for entity in entities: + # 构造原始数据对象 (List of Dict) + source_data_list = [{ + "filename": filename, + "info": content, + "url": url + }] + + # 2. 【关键修改】将列表序列化为 JSON 字符串 + # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + + # 确保 properties 存在且是字典 + if "properties" not in entity or not isinstance(entity["properties"], dict): + entity["properties"] = {} + + # 3. 赋值字符串而不是对象列表 + entity["properties"]["knowledge_source"] = knowledge_source_str + # 更新 result 中的 entities + all_entity_results.extend(entities) + all_relation_results.extend(relationships) + + except Exception as e: + print(f"处理第 {i+1} 组时发生未预期错误: {e}") + continue # 跳过当前组,继续下一轮 + return all_entity_results,all_relation_results + +# if __name__ == "__main__": +# file_path = '/app/files/122-06A0014-B01001_发动机-维修手册_content_list.json' +# input_pdf_path = "/app/files/122-06A0014-B01001_发动机-维修手册.pdf" + +# try: +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) +# except Exception as e: +# print(f"读取 JSON 文件时出错:{e}") +# data = [] +# all_entity_results,all_relation_results = get_guzhang_node_relation(input_pdf_path,data=data) +# length_entity = len(all_entity_results) +# length_relation = len(all_relation_results) + +# print(f"抽取{length_entity}个实体,抽取{length_relation}个关系") + + diff --git a/kg_build_0409/extract_compose_table.py b/kg_build_0409/extract_compose_table.py new file mode 100644 index 0000000..a15c165 --- /dev/null +++ b/kg_build_0409/extract_compose_table.py @@ -0,0 +1,247 @@ +import json +import fitz # PyMuPDF +import os +import fitz +from collections import Counter +import uuid +from openai import OpenAI +from kg_build.Prompt import Prompt_compose +from extract_util import safe_json_loads,highlight_pdf_file,get_content_bbox +import re +from typing import List, Dict, Any, Tuple +from modelsAPI.model_api import OpenaiAPI +import asyncio # <-- 新增导入 + +import re + +def is_compose_table_by_first_tr(table_body: str) -> bool: + if not isinstance(table_body, str): + return False + + # 非贪婪匹配第一个 ... + match = re.search(r']*>(.*?)', table_body, re.IGNORECASE | re.DOTALL) + if not match: + return False + + first_tr_html = match.group(1) + + # 去除所有 HTML 标签,只保留纯文本 + text_in_first_tr = re.sub(r'<[^>]+>', '', first_tr_html) + + # 统一转为小写便于匹配 + text_lower = text_in_first_tr.lower() + + # 定义多组关键词组合(任意一组满足即可) + keyword_groups = [ + ["序号", "组成部分", "功能", "数量"], + ["序号", "组成部分", "功能"] + ] + + # 检查是否存在至少一组关键词全部出现在首行中 + for group in keyword_groups: + if all(kw in text_lower for kw in group): + return True + + return False + + +async def get_compose_chunk_bbox_and_removed_data(data): + """ + 返回: + - 符合条件的组成表分组(每组 [前前, 前, 当前]) + - 从原始 data 中移除了所有相关记录后的新 data 列表 + """ + record_map = {item["id"]: item for item in data} + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + table_body = ins.get("table_body", "") + + # 使用关键词组合判断是否为“组成表” + if is_compose_table_by_first_tr(table_body): + current_id = ins["id"] + prev_ids = [current_id - 2, current_id - 1] + + # 收集要移除的 ID(前两条 + 当前) + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + + # 构建分组 + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + # 过滤原始 data + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + + return results, filtered_data + + +# def openai_chat(query: str, model="Qwen3-32B"): +# """调用OpenAI API""" +# try: +# client = OpenAI( +# api_key="none", +# base_url="http://192.168.0.46:59800/v1" +# ) + +# response = client.chat.completions.create( +# model=model, +# messages=[ +# {"role": "user", "content": query}, +# ], +# temperature=0.1, +# stream=False, +# response_format={"type": "json_object"}, +# extra_body={"chat_template_kwargs": {"enable_thinking": False}} +# ) +# return response.choices[0].message.content +# except Exception as e: +# print(f"调用OpenAI API时出错: {e}") +# return None + +async def extract_compose_table_entity(chunk): + """ + 提取组成表的设备、零部件实体以及关系 + """ + print("提取组成表实体和关系") + + # 建议:将 all_results 改为复数形式以符合习惯 + + + final_prompt = Prompt_compose.format(text=chunk) + raw_response = await OpenaiAPI.openai_chat_aysnc(final_prompt,timeout=480) + + if raw_response is None: + print(f" ⚠️ 切片 API 调用失败") + + # 尝试解析 JSON + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = safe_json_loads(cleaned) + + # 打印美化版 + # print(json.dumps(json_result, ensure_ascii=False, indent=2)) + + except Exception as e: + print(f" ⚠️切片 JSON 解析失败: {e}") + print(f" 原始响应: {repr(raw_response[:500])}") + json_result = [] + + + # 返回按切片分组的结果列表 + return json_result + + +async def get_compose_node_relation(input_pdf_path,data,prefix_url = "http://192.168.0.46:59085"): + for idx, item in enumerate(data, start=1): + item["id"] = idx + results, filtered_data =await get_compose_chunk_bbox_and_removed_data(data=data) + print(f"抽取的组成表总数量为:{len(results)}") + + + if not results: + print("未找到符合条件的组成表格,跳过处理。") + all_entity_results,all_relation_results = [],[] + else: + all_entity_results,all_relation_results = [],[] # 用于收集所有成功提取的结果 + + for i, compose in enumerate(results): + try: + # 获取内容和高亮信息 + print(f"开始处理第{i+1}个组成表") + + content, highlight_list = get_content_bbox(compose) + print("组成表切片内容为:",content) + print(len(content)) + # 提取实体 + result =await extract_compose_table_entity(content) + if result is None: + print(f"第 {i+1} 组:实体提取失败,跳过") + continue + + # 安全访问 entities 字段 + entities = result.get("entities", []) + if not isinstance(entities, list): + print(f"第 {i+1} 组:entities 字段格式异常,跳过") + continue + relationships = result.get("relationships", []) + + # 为每个 entity 添加 knowledge_source + highlight_filename, most_common_page,filename = highlight_pdf_file(input_pdf_path,highlight_list) + url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + # for entity in entities: + # knowledge_source = [{ + # "filename": filename, + # "info": content, + # "url": url + # }] + # # 确保 properties 存在 + # if "properties" not in entity or not isinstance(entity["properties"], dict): + # entity["properties"] = {} + # entity["properties"]["knowledge_source"] = knowledge_source + for entity in entities: + # 构造原始数据对象 (List of Dict) + source_data_list = [{ + "filename": filename, + "info": content, + "url": url + }] + + # 2. 【关键修改】将列表序列化为 JSON 字符串 + # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + + # 确保 properties 存在且是字典 + if "properties" not in entity or not isinstance(entity["properties"], dict): + entity["properties"] = {} + + # 3. 赋值字符串而不是对象列表 + entity["properties"]["knowledge_source"] = knowledge_source_str + # 更新 result 中的 entities + all_entity_results.extend(entities) + all_relation_results.extend(relationships) + + except Exception as e: + print(f"处理第 {i+1} 组时发生未预期错误: {e}") + continue # 跳过当前组,继续下一轮 + return all_entity_results,all_relation_results + +# if __name__ == "__main__": +# file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/output1/122-06A0014-B01001_发动机-维修手册_content_list.json' +# input_pdf_path = "/storage01/home/hdf/project/agent/测试.pdf" +# output_json_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/output2/组成表抽取结果.json' # 你可以自定义路径 + +# try: +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) +# except Exception as e: +# print(f"读取 JSON 文件时出错:{e}") +# data = [] +# all_entity_results, all_relation_results = asyncio.run( +# get_compose_node_relation(input_pdf_path, data=data) +# ) + +# length_entity = len(all_entity_results) +# length_relation = len(all_relation_results) + +# print(f"抽取{length_entity}个实体,抽取{length_relation}个关系") +# result = { +# "entities": all_entity_results, +# "relations": all_relation_results +# } + +# # 保存为 JSON 文件 +# try: +# with open(output_json_path, 'w', encoding='utf-8') as f: +# json.dump(result, f, ensure_ascii=False, indent=4) +# print(f"结果已保存至:{output_json_path}") +# except Exception as e: +# print(f"保存 JSON 文件时出错:{e}") + diff --git a/kg_build_0409/extract_compose_tujie_table.py b/kg_build_0409/extract_compose_tujie_table.py new file mode 100644 index 0000000..2b592b7 --- /dev/null +++ b/kg_build_0409/extract_compose_tujie_table.py @@ -0,0 +1,589 @@ +import json +import fitz # PyMuPDF +import os +import fitz +from collections import Counter +import uuid +from kg_build.Prompt import Prompt_compose_tujie1,Prompt_compose_tujie2 +from kg_build.extract_util import safe_json_loads,highlight_pdf_file,get_content_bbox +# from modelsAPI.model_api import OpenaiAPI +import re +from openai import AsyncOpenAI +import asyncio +import json +import re +import copy +import pandas as pd +from io import StringIO +import json +from collections import defaultdict +import traceback + + +def is_tujie_compose_table_by_first_tr(table_body: str) -> bool: + if not isinstance(table_body, str) or not table_body.strip(): + return False + + text_without_tags = re.sub(r'<[^>]+>', '', table_body) + text_lower = text_without_tags.lower() + + keyword_groups = [ + ["组成编码", "名称", "是否为关重件", "是否为寿命件"], + ["组成编码", "名称", "型号/零件号", "重量(kg)", "数量"] + ] + + for group in keyword_groups: + if all(kw in text_lower for kw in group): + return True + + return False + + +def is_tujie_compose_mulus_table_by_first_tr(table_body: str) -> bool: + if not isinstance(table_body, str) or not table_body.strip(): + return False + + text_without_tags = re.sub(r'<[^>]+>', '', table_body) + text_lower = text_without_tags.lower() + + keyword_groups = [ + ["组成编码", "名称", "型号/零件号", "重量(kg)", "数量"] + ] + + for group in keyword_groups: + if all(kw in text_lower for kw in group): + return True + + return False + + +def get_tujiecompose_chunk_bbox_and_removed_data(data): + """ + 返回: + - 符合条件的图解组成表分组(每组 [前前, 前, 当前]) + - 从原始 data 中移除了所有相关记录后的新 data 列表 + """ + title = "组成" + record_map = {item["id"]: item for item in data} + + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + caption_has_title = any(title in caption for caption in ins.get("table_caption", [])) + + table_body = ins.get("table_body", "") + body_matches_keywords = is_tujie_compose_table_by_first_tr(table_body) + + if caption_has_title and body_matches_keywords: + current_id = ins["id"] + prev_ids = [current_id - 2, current_id - 1] + + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + return results, filtered_data + + +def get_tujiecompose_mulu_chunk_bbox_and_removed_data(data): + title = "组成" + record_map = {item["id"]: item for item in data} + + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + caption_has_title = any(title in caption for caption in ins.get("table_caption", [])) + + table_body = ins.get("table_body", "") + body_matches_keywords = is_tujie_compose_mulus_table_by_first_tr(table_body) + + if body_matches_keywords: + current_id = ins["id"] + prev_ids = [current_id - 2, current_id - 1] + + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + return results, filtered_data + + +def format_compose_code(val): + """将 int/float 型组成编码转换为偶数位字符串,不足偶数位则前补 0""" + if pd.isna(val): + return None + if isinstance(val, (int, float)): + s = str(int(val)) + if len(s) % 2 != 0: + s = '0' + s + return s + return str(val) + + +def merge_compose(records): + """ + 合并相同组成编码的记录。 + 特殊处理:将 knowledge_source 字段的多个值解析并合并到一个新的扁平列表中。 + """ + grouped_data = defaultdict(list) + + for record in records: + code = record.get('组成编码') + if code: + grouped_data[code].append(record) + + merged_data = [] + + for key, group in grouped_data.items(): + merged_record = group[0].copy() + + all_sources = [] + + for record in group: + source_val = record.get('knowledge_source') + if source_val: + try: + if isinstance(source_val, str): + parsed_source = json.loads(source_val) + else: + parsed_source = source_val + + if isinstance(parsed_source, list): + all_sources.extend(parsed_source) + else: + all_sources.append(parsed_source) + except (json.JSONDecodeError, TypeError): + all_sources.append(source_val) + + if all_sources: + merged_record['knowledge_source'] = json.dumps(all_sources, ensure_ascii=False) + else: + merged_record['knowledge_source'] = "[]" + + for record in group[1:]: + for k, v in record.items(): + if k == 'knowledge_source': + continue + + existing = merged_record.get(k) + + if v and existing and existing != v: + if isinstance(existing, list): + if v not in existing: + existing.append(v) + else: + merged_record[k] = [existing, v] + elif not existing and v: + merged_record[k] = v + + merged_data.append(merged_record) + + return merged_data + + +def remove_fields(data_list, fields_to_remove): + """ + 遍历列表中的每个字典,移除指定的字段(键)。 + 如果字段不存在,则跳过该字段。 + """ + cleaned_data = [] + + for item in data_list: + new_item = item.copy() + + for field in fields_to_remove: + if field in new_item: + del new_item[field] + + cleaned_data.append(new_item) + + return cleaned_data + + +# def generate_entities_and_relations(data_list): +# """ +# 所有实体统一 type="设备"。 +# 关系构建:若父节点在数据中不存在,自动补充占位实体,确保所有关系都成功建立。 +# """ +# entities = [] +# relationships = [] + +# code_name_map = {} # {code: name} +# clean_nodes = [] + +# # --- 第一步:数据清洗与标准化 --- +# for item in data_list: +# code = item.get('组成编码', '') + +# if not code or not isinstance(code, str): +# continue +# if not code.isdigit(): +# continue +# if len(code) < 2 or len(code) % 2 != 0: +# continue + +# cleaned_item = {} +# for key, value in item.items(): +# if isinstance(value, list): +# cleaned_item[key] = str(value[0]) if value else "" +# elif value is None: +# cleaned_item[key] = "" +# else: +# cleaned_item[key] = value + +# code_name_map[code] = cleaned_item.get('名称', f'未知_{code}') +# clean_nodes.append(cleaned_item) + +# # --- 第二步:找出所有缺失的父节点,自动递归向上补全 --- +# placeholder_codes = {} # {code: name} 仅补充的占位节点 + +# for node in clean_nodes: +# code = node['组成编码'] +# length = len(code) + +# if length < 4: +# continue # 2位根节点无父节点,跳过 + +# current = code[:-2] +# while current: +# if current in code_name_map or current in placeholder_codes: +# break # 已存在,无需补全 +# placeholder_name = f'未知_{current}' +# placeholder_codes[current] = placeholder_name +# print(f" ⚠️ 父节点缺失,自动补充占位实体: 编码={current}, 名称={placeholder_name}") +# if len(current) >= 4: +# current = current[:-2] +# else: +# break + +# # 将占位节点合并进 code_name_map,供关系构建使用 +# code_name_map.update(placeholder_codes) + +# # --- 第三步:构建实体列表,所有节点 type="设备" --- +# # 真实节点 +# for node in clean_nodes: +# entities.append({ +# "type": "设备", +# "properties": node +# }) + +# # 占位节点(最简属性,标记 _is_placeholder 便于下游过滤) +# for code, name in placeholder_codes.items(): +# entities.append({ +# "type": "设备", +# "properties": { +# "组成编码": code, +# "名称": name, +# "knowledge_source": "[]", +# "_is_placeholder": True +# } +# }) + +# # --- 第四步:构建关系列表,保证全部成功 --- +# success_count = 0 +# skip_count = 0 + +# for node in clean_nodes: +# code = node['组成编码'] +# length = len(code) + +# if length < 4 or length % 2 != 0: +# skip_count += 1 +# continue # 2位根节点无父,正常跳过 + +# parent_code = code[:-2] +# child_name = node.get('名称', f'未知_{code}') +# parent_name = code_name_map.get(parent_code) + +# if parent_name: +# relationships.append({ +# "type": "包含", +# "from_entity": parent_name, +# "to_entity": child_name +# }) +# success_count += 1 +# else: +# # 经过第二步补全后理论上不会进入此分支 +# print(f" ❌ 关系构建失败(不应出现): 子编码={code}, 父编码={parent_code} 仍未找到") +# skip_count += 1 + +# print(f" 📊 关系构建完成:成功={success_count}, 跳过根节点={skip_count}") +# return entities, relationships +def generate_entities_and_relations(data_list): + """ + 实体分两类: + - type="设备":原始组成表中的真实/占位节点 + - type="组成":每个有子节点的设备自动生成的中间节点,名称为 "{设备名}的组成" + + 关系: + - 父节点(设备)→ 中间节点(组成):包含 + - 中间节点(组成)→ 子节点(设备):包含 + """ + entities = [] + relationships = [] + + code_name_map = {} # {code: name} + clean_nodes = [] + + # ── 第一步:数据清洗与标准化 ────────────────────────────────────── + for item in data_list: + code = item.get('组成编码', '') + if not code or not isinstance(code, str): + continue + if not code.isdigit(): + continue + if len(code) < 2 or len(code) % 2 != 0: + continue + + cleaned_item = {} + for key, value in item.items(): + if isinstance(value, list): + cleaned_item[key] = str(value[0]) if value else "" + elif value is None: + cleaned_item[key] = "" + else: + cleaned_item[key] = value + + code_name_map[code] = cleaned_item.get('名称', f'未知_{code}') + clean_nodes.append(cleaned_item) + + # ── 第二步:自动补全缺失的父节点占位实体 ───────────────────────── + placeholder_codes = {} # {code: name} + + for node in clean_nodes: + code = node['组成编码'] + current = code[:-2] + while current: + if current in code_name_map or current in placeholder_codes: + break + placeholder_name = f'未知_{current}' + placeholder_codes[current] = placeholder_name + print(f" ⚠️ 父节点缺失,自动补充占位实体: 编码={current}, 名称={placeholder_name}") + current = current[:-2] if len(current) >= 4 else "" + + code_name_map.update(placeholder_codes) + + # ── 第三步:构建"设备"实体(真实节点 + 占位节点)──────────────── + for node in clean_nodes: + entities.append({"type": "设备", "properties": node}) + + for code, name in placeholder_codes.items(): + entities.append({ + "type": "设备", + "properties": { + "组成编码": code, + "名称": name, + "knowledge_source": "[]", + } + }) + + # ── 第四步:为每个"有子节点的父设备"生成"组成"中间实体 ────────── + # 收集所有实际存在父子关系的父编码 + parent_codes_needed = set() + for node in clean_nodes: + code = node['组成编码'] + if len(code) >= 4 and len(code) % 2 == 0: + parent_codes_needed.add(code[:-2]) + + # {parent_code: "组成中间实体名称"} + compose_node_map = {} + for parent_code in parent_codes_needed: + parent_name = code_name_map.get(parent_code) + if not parent_name: + print(f" ❌ 找不到父编码对应名称(不应出现): {parent_code}") + continue + compose_name = f"{parent_name}的组成" + compose_node_map[parent_code] = compose_name + + # 生成"组成"中间实体 + entities.append({ + "type": "组成", + "properties": { + "名称": compose_name, + "knowledge_source": "[]", + } + }) + + # 父设备 → 组成中间节点 + relationships.append({ + "type": "包含", + "from_entity": parent_name, + "to_entity": compose_name + }) + + # ── 第五步:构建"组成中间节点 → 子设备"关系 ────────────────────── + success_count, skip_count = 0, 0 + + for node in clean_nodes: + code = node['组成编码'] + if len(code) < 4 or len(code) % 2 != 0: + skip_count += 1 + continue # 根节点无父,正常跳过 + + parent_code = code[:-2] + compose_name = compose_node_map.get(parent_code) + child_name = node.get('名称', f'未知_{code}') + + if compose_name: + relationships.append({ + "type": "包含", + "from_entity": compose_name, + "to_entity": child_name + }) + success_count += 1 + else: + print(f" ❌ 找不到组成中间节点(不应出现): 子编码={code}, 父编码={parent_code}") + skip_count += 1 + + print(f" 📊 关系构建完成:成功={success_count}, 跳过根节点={skip_count}") + return entities, relationships + +async def get_tujiecompose_node_relation(input_pdf_path, data, prefix_url="http://192.168.0.46:59085", device="发动机", lower_entity_type="设备"): + # 初始化默认返回值(空列表) + all_entity_results = [] + all_relation_results = [] + devicename = device + lower_entity_type = lower_entity_type + + try: + # 1. 初始化 ID(确保从 1 开始连续) + for idx, item in enumerate(data, start=1): + item["id"] = idx + + # 2. 获取分组数据 + results, filtered_data = get_tujiecompose_chunk_bbox_and_removed_data(data=data) + compose_mulu_result, filtered_data_mulu = get_tujiecompose_mulu_chunk_bbox_and_removed_data(data=data) + + # 3. 合并所有需要处理的组 + all_results = results + compose_mulu_result + + # 初始化中间结果容器 + all_htmltojson_results = [] + + print(f"共发现 {len(all_results)} 个图解组成表组,开始处理...") + + for i, compose_group in enumerate(all_results): + try: + print(f"开始处理第 {i+1} 个图解组成表") + + content, highlight_list = get_content_bbox(compose_group) + + if not content: + print(f" ⚠️ 第 {i+1} 组未获取到有效内容,跳过") + continue + + # 文本清洗 + content = content.replace("香", "否") + content = content.replace("房号", "序号") + + # 解析 HTML 表格 + html_obj = StringIO(content) + df_list = pd.read_html(html_obj, header=0) + + if not df_list: + print(f" ⚠️ 第 {i+1} 组未解析到表格,跳过") + continue + + df = df_list[0] + + # 清洗数据:删除全为空的行 + df.dropna(how='all', inplace=True) + + # 格式化组成编码 + if '组成编码' in df.columns and pd.api.types.is_numeric_dtype(df['组成编码']): + df['组成编码'] = df['组成编码'].apply(format_compose_code) + + # 转换为 JSON 列表 + json_data = df.to_json(orient='records', force_ascii=False) + result_list = json.loads(json_data) + highlight_filename, most_common_page,filename = highlight_pdf_file(input_pdf_path,highlight_list) + url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + if result_list: + for ins in result_list: + source_data_list = [{ + "filename": filename, + "info": content, + "url": url + }] + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + ins["knowledge_source"] = knowledge_source_str + + all_htmltojson_results.extend(result_list) + print(f" ✅ 第 {i+1} 组提取成功,包含 {len(result_list)} 条记录") + else: + print(f" ⚠️ 第 {i+1} 组提取结果为空") + + except Exception as e: + print(f"❌ 处理第 {i+1} 组时发生错误: {e}") + traceback.print_exc() + continue + + # 后处理步骤 + if all_htmltojson_results: + all_htmltojson_results = merge_compose(all_htmltojson_results) + all_htmltojson_results = remove_fields(all_htmltojson_results, ["序号"]) + + # ✅ 修复:先生成实体和关系 + all_entity_results, all_relation_results = generate_entities_and_relations(all_htmltojson_results) + + # ✅ 修复:循环移到 generate 之后,此时 all_entity_results 才有数据 + for ins in all_entity_results: + if ins["properties"].get("名称") == devicename: + ins["type"] = lower_entity_type + else: + print("⚠️ 没有提取到任何有效数据,跳过实体关系生成。") + + return all_entity_results, all_relation_results + + except Exception as e: + print(f"❌ get_tujiecompose_node_relation 主流程发生严重错误: {e}") + traceback.print_exc() + return [], [] + + +if __name__ == "__main__": + file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/output1/122-06A0014-B01001_发动机-图解目录_content_list.json' + input_pdf_path = "/storage01/home/hdf/project/wxkgrag/kgextract/know/122-06A0014-B01001_发动机-维修手册_highlighted_fdb9e9db-98d2-4ef6-bc72-52f875453f85.pdf" + output_json_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/output2/图解组成表抽取结果.json' + + try: + with open(file_path, 'r', encoding='utf-8') as file: + data = json.load(file) + except Exception as e: + print(f"读取 JSON 文件时出错:{e}") + data = [] + + all_entity_results, all_relation_results = asyncio.run( + get_tujiecompose_node_relation(input_pdf_path, data=data) + ) + + length_entity = len(all_entity_results) + length_relation = len(all_relation_results) + + print(f"抽取 {length_entity} 个实体,抽取 {length_relation} 个关系") + + result = { + "entities": all_entity_results, + "relations": all_relation_results + } + for ins in result["entities"]: + print(ins) + print(111111111111111111111) + + try: + with open(output_json_path, 'w', encoding='utf-8') as f: + json.dump(result, f, ensure_ascii=False, indent=4) + print(f"结果已保存至:{output_json_path}") + except Exception as e: + print(f"保存 JSON 文件时出错:{e}") + diff --git a/kg_build_0409/extract_filtertext.py b/kg_build_0409/extract_filtertext.py new file mode 100644 index 0000000..2c51b3e --- /dev/null +++ b/kg_build_0409/extract_filtertext.py @@ -0,0 +1,568 @@ +""" +extract_filtertext_serial.py +对外接口:get_filtertext_node_relation(input_pdf_path, data, prefix_url, device) + +全程不调用大模型,纯规则处理。 + +逻辑分支: + - 文件名含 备品备件/图解目录 → 直接跳过,不做任何解析 + - 文件名含 接线图/原理图/总图/连接图 → 直接生成"图录"实体 + 关系 + - 文件名含 芯线表 → 直接生成"芯线表"实体 + 关系 + - 文件名含 随机文件目录/随机文件 → 直接生成"文件目录"实体 + 关系 + - 其他文件(如维修手册等) → 按章节结构提取实体 + 关系 + +关系统一格式: + {"type": "包含", "from_entity": device, "to_entity": 实体type} + +章节切分逻辑已迁移至 chapter_segmenter.py,本文件直接调用。 +""" + +import json +import os +import re +from typing import List +from kg_build.extract_util import highlight_pdf_file +from entity_registry import register as _register_entity_type +from kg_build.chapter_segmenter import segment_chapters, Chapter + + +# ============================== +# 配置 +# ============================== + +DEVICE_NAME = "发动机" + +# 一级标题映射:去编号后的标题文本 → 替换为指定名称(精确匹配) +L1_TITLE_MAPPING = { + "概述": "基本情况", + "使用操作": "操作使用", + "系统结构组成" : "组成", + "设备组成" : "组成", + "设备功能" : "功能", + "安装与调试" : "调试", + "调试细则" : "调试", + "系统功能" : "功能", + "系统组成" : "组成", + "维修工作指导" : "维修工作" +} + +# 二级标题(特殊章节独立实体)类型映射 +L2_TYPE_MAPPING = { + "技术指标": "技术指标参数", + "工作条件": "环境条件", + "组成简介" : "组成", + "主要用途及适用范围" :"功能", + "主要功能" : "功能", + "接口关系" : "接口", + "主要性能参数" : "性能", +} + +# 实体 type → 关系 type(未命中默认"包含") +ENTITY_RELATION_MAPPING = { + "基本情况": "实现", + "功能": "实现", + "环境条件": "适用", + "组成": "包括", + "技术指标参数": "具有", + "接口": "配备", + "安全警告": "安全警告", + "操作使用": "支持操作", + "维修工作": "维修", + "调试": "调试", + "器材保障": "依赖", + "图册": "配套", + "设计单位": "设计", + "性能" : "具有", +} + +# 设计单位识别关键词(出现在封面 page_idx=0 的文本中) +DESIGN_UNIT_KEYWORDS = ["研究所", "集团公司", "有限公司", "工厂", "研究院", "研究中心"] + +# ---------- 文件名关键词配置 ---------- +DIAGRAM_KEYWORDS = ["接线图", "原理图", "总图", "连接图"] +TABLE_KEYWORDS = ["芯线表"] +CATALOG_KEYWORDS = ["随机文件目录", "随机文件"] +SPARE_KEYWORDS = ["备品备件"] +SKIP_KEYWORDS = ["图解目录"] + + +# ============================== +# 文件名判断 +# ============================== + +def _should_skip(filename: str) -> bool: + """文件名包含跳过关键词时返回True,直接不处理。""" + basename = os.path.basename(filename) + return any(kw in basename for kw in SKIP_KEYWORDS) + + +def _detect_nomodel_category(filename: str): + """ + 根据文件名判断属于哪种特殊类别。 + 返回: (category, keyword) 或 (None, None) 表示走通用章节提取。 + """ + basename = os.path.basename(filename) + for kw in DIAGRAM_KEYWORDS: + if kw in basename: + return "diagram", kw + for kw in TABLE_KEYWORDS: + if kw in basename: + return "table", kw + for kw in CATALOG_KEYWORDS: + if kw in basename: + return "catalog", kw + for kw in SPARE_KEYWORDS: + if kw in basename: + return "spare", kw + return None, None + + +# ============================== +# 域映射 / 关系类型 +# ============================== + +def _sanitize_label(label: str) -> str: + """ + 去除 Neo4j Cypher label 中不合法的字符(、,,()() 等标点), + 保留汉字、字母、数字、下划线。 + """ + import re + return re.sub(r"[^\w\u4e00-\u9fff]", "", label) + + +def _map_l1_title(title_clean: str) -> str: + """对一级标题做映射,如 '概述' → '基本情况',未命中则原样返回。""" + return _sanitize_label(L1_TITLE_MAPPING.get(title_clean, title_clean)) + + +def _get_relation_type(entity_type: str) -> str: + """根据实体 type 返回对应的关系 type,未命中默认'包含'。""" + return ENTITY_RELATION_MAPPING.get(entity_type, "包含") + + +# ============================== +# 设计单位提取 +# ============================== + +def _extract_design_unit(data: list) -> str: + """ + 从封面前两页(page_idx=0 或 1)提取设计单位名称。 + 规则:文本含机构关键词(不限 type,兼容 discarded 记录)。 + 返回第一个命中的文本,找不到返回空字符串。 + """ + for ins in data: + if ins.get("page_idx", -1) not in (0, 1): + continue + text = ins.get("text", "").strip() + if text and any(kw in text for kw in DESIGN_UNIT_KEYWORDS): + return text + return "" + + +# ============================== +# 单条 record 转文本 +# ============================== + +def _record_to_text(ins: dict) -> str: + """将单条 record 转为纯文本字符串。""" + if ins.get("type") in ("text", "discarded"): + return ins.get("text", "").strip() + + elif ins.get("type") == "table": + table_caption = ins.get("table_caption", "") + table_body = ins.get("table_body", "") + if isinstance(table_caption, list): + table_caption = "\n".join(str(c) for c in table_caption) + table_text = re.sub(r'<[^>]+>', ' ', table_body or "") + table_text = re.sub(r'\s+', ' ', table_text).strip() + parts = [str(table_caption), table_text] + return "\n".join(p for p in parts if p).strip() + + elif ins.get("type") == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + if isinstance(image_caption, list): + image_caption = "\n".join(str(i) for i in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + parts = [image_caption, img_path] + return "\n".join(p for p in parts if p).strip() + + return "" + + +# ============================== +# 高亮相关 +# ============================== + +def _collect_highlights(records: list) -> list: + """从 records 中收集高亮信息。""" + highlight_list = [] + for ins in records: + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + if bbox and page_idx >= 0: + highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + return highlight_list + + + +def _build_highlight_url(input_pdf_path, highlight_list, prefix_url, include_page=True): + """调用 highlight_pdf_file 生成高亮PDF并返回URL。""" + if not highlight_list: + return "" + try: + highlight_filename, most_common_page, filename = highlight_pdf_file( + input_pdf_path, highlight_list + ) + if include_page: + return f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + return f"{prefix_url}/upload/{highlight_filename}" + except Exception as e: + print(f" ⚠️ highlight_pdf_file 失败: {e}") + return "" + + +# ============================== +# 图/表/目录类:直接生成实体 + 关系 +# ============================== + +def _special_file_generate_entities(input_pdf_path, prefix_url, device, category, keyword): + """ + 对于图/表/目录类文件,直接根据类别生成实体和关系。 + 返回: (entities, relations) + """ + filename = os.path.basename(input_pdf_path) + #url = f"{prefix_url}/upload/{filename}" + # url = f"{prefix_url}/files/uploads_v1/{filename}" + url = f"{prefix_url}/files/{filename}" + entities = [] + relations = [] + + if category == "diagram": + entity_type = f"{device}的{keyword}" + entity = { + "type": "图册", + "properties": { + "名称": entity_type, + keyword: url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type("图册", properties=["名称", keyword, "knowledge_source"]) + entities.append(entity) + relations.append({"type": "配套", "from_entity": device, "to_entity": entity_type}) + print(f" [图/表/目录] 生成图册实体: {entity_type}") + + elif category == "table": + entity_type = f"{device}的{keyword}" + entity = { + "type": keyword, + "properties": { + "名称": entity_type, + keyword: url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type(keyword, properties=["名称", keyword, "knowledge_source"]) + entities.append(entity) + relations.append({"type": "包含", "from_entity": device, "to_entity": entity_type}) + print(f" [图/表/目录] 生成表实体: {entity_type}") + + elif category == "catalog": + entity_type = f"{device}的文件目录" + entity = { + "type": "文件目录", + "properties": { + "名称": entity_type, + "文件目录": url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type("文件目录", properties=["名称", "文件目录", "knowledge_source"]) + entities.append(entity) + relations.append({"type": "包含", "from_entity": device, "to_entity": entity_type}) + print(f" [图/表/目录] 生成文件目录实体: {entity_type}") + + elif category == "spare": + entity_name = f"{device}的备品备件及清单" + entity = { + "type": "备品备件及清单", + "properties": { + "名称": entity_name, + "备品备件及清单": url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type("备品备件及清单", properties=["名称", "备品备件及清单", "knowledge_source"]) + #entities.append(entity) + relations.append({ + "type": "包含", + "from_entity": f"{device}的保障资源", + "to_entity": entity_name + }) + print(f" [图/表/目录] 生成备品备件及清单实体: {entity_name}") + + return entities, relations + + +# ============================== +# 通用文件:按章节结构提取实体 + 关系 +# ============================== + +def _chapter_structure_extract(input_pdf_path, data, prefix_url, device): + """ + 调用 chapter_segmenter.segment_chapters 切分章节,再将每个章节转为实体+关系。 + + 普通章节:一级标题 → 实体,二级标题内容 → 属性字段 + 特殊章节:每个二级节各自独立成为实体 + 返回: (entities, relations) + """ + chapters: List[Chapter] = segment_chapters(data) + + all_entities = [] + all_relations = [] + filename = os.path.basename(input_pdf_path) + + for chapter in chapters: + if chapter.is_skipped: + continue + + if chapter.is_special: + # 特殊章节:每个二级节独立成为实体 + for l2 in chapter.l2_sections: + content_text = "\n".join( + p for p in (_record_to_text(r) for r in l2.records) if p + ).strip() + if not content_text: + continue + mapped_l2_type = _sanitize_label(L2_TYPE_MAPPING.get(l2.title, l2.title)) + entity_name = f"{device}的{mapped_l2_type}" + hl = _collect_highlights(l2.records) + url = _build_highlight_url(input_pdf_path, hl, prefix_url) + entity = { + "type": mapped_l2_type, + "properties": { + "名称": entity_name, + "内容": content_text, + "knowledge_source": json.dumps( + [{"filename": filename, "info": content_text, "url": url}], + ensure_ascii=False + ) + } + } + _register_entity_type(mapped_l2_type, properties=["名称", "内容", "knowledge_source"]) + all_entities.append(entity) + all_relations.append({ + "type": _get_relation_type(mapped_l2_type), + "from_entity": device, + "to_entity": entity_name + }) + print(f" → [特殊] 实体 type=【{mapped_l2_type}】名称=【{entity_name}】") + + else: + # 普通章节:一级标题 → 实体 + mapped_title = _map_l1_title(chapter.title) + entity_name = f"{device}的{mapped_title}" + + properties = {"名称": entity_name} + + # 一级标题到第一个二级标题之间的内容 → 概述 + loose_text = "\n".join( + p for p in (_record_to_text(r) for r in chapter.loose_records) if p + ).strip() + if loose_text: + properties["概述"] = loose_text + + # 各二级节:命中 L2_TYPE_MAPPING 的独立成实体,否则作为属性 + for l2 in chapter.l2_sections: + content_text = "\n".join( + p for p in (_record_to_text(r) for r in l2.records) if p + ).strip() + if not content_text: + continue + if l2.title in L2_TYPE_MAPPING: + mapped_l2_type = _sanitize_label(L2_TYPE_MAPPING[l2.title]) + l2_entity_name = f"{device}的{mapped_l2_type}" + hl = _collect_highlights(l2.records) + l2_url = _build_highlight_url(input_pdf_path, hl, prefix_url) + l2_entity = { + "type": mapped_l2_type, + "properties": { + "名称": l2_entity_name, + "内容": content_text, + "knowledge_source": json.dumps( + [{"filename": filename, "info": content_text, "url": l2_url}], + ensure_ascii=False + ) + } + } + _register_entity_type(mapped_l2_type, properties=["名称", "内容", "knowledge_source"]) + all_entities.append(l2_entity) + all_relations.append({ + "type": _get_relation_type(mapped_l2_type), + "from_entity": device, + "to_entity": l2_entity_name + }) + print(f" → [L2独立] 实体 type=【{mapped_l2_type}】名称=【{l2_entity_name}】") + properties[l2.title] = content_text + + # 整章原文 + raw_parts = [_record_to_text(r) for r in chapter.records] + full_content = "\n".join(p for p in raw_parts if p).strip() + print(f" [DEBUG内容] 章节={mapped_title} records={len(chapter.records)} 内容长度={len(full_content)}") + if full_content: + properties["内容"] = full_content + + hl = _collect_highlights(chapter.records) + url = _build_highlight_url(input_pdf_path, hl, prefix_url) + properties["knowledge_source"] = json.dumps( + [{"filename": filename, "info": full_content, "url": url}], + ensure_ascii=False + ) + + prop_names = [k for k in properties if k not in ("名称", "knowledge_source")] + _register_entity_type(mapped_title, properties=["名称"] + prop_names + ["knowledge_source"]) + all_entities.append({"type": mapped_title, "properties": properties}) + all_relations.append({ + "type": _get_relation_type(mapped_title), + "from_entity": device, + "to_entity": entity_name + }) + print(f" → 实体 type=【{mapped_title}】名称=【{entity_name}】属性: {prop_names}") + + print(f"\n[章节提取] 共生成实体: {len(all_entities)},关系: {len(all_relations)}") + return all_entities, all_relations + + +# ============================== +# 对外唯一接口 +# ============================== + +async def get_filtertext_node_relation( + input_pdf_path: str, + data: list, + prefix_url: str = "http://192.168.0.111:9085", + device: str = DEVICE_NAME +): + """ + 对外唯一接口。 + + 自动判断文件名: + - 含"备品备件"或"图解目录" → 直接跳过,返回空 + - 含 接线图/原理图/总图/连接图/芯线表/随机文件目录 → 直接生成对应实体+关系 + - 其他文件 → 按一级标题=实体、二级标题=属性 的规则提取,同时生成关系 + + :param input_pdf_path: PDF文件路径 + :param data: content_list JSON数据 + :param prefix_url: highlight文件服务地址 + :param device: 设备名称,默认"发动机" + :return: (all_entity_results, all_relation_results) + """ + # ---- 1. 跳过不需要解析的文件 ---- + if _should_skip(input_pdf_path): + print(f"[跳过] 文件名命中跳过关键词,不做任何解析: {os.path.basename(input_pdf_path)}") + return [], [] + + # ---- 公共:从封面提取设计单位 ---- + design_unit_entities = [] + design_unit_relations = [] + design_unit_name = _extract_design_unit(data) + if not design_unit_name: + p0_texts = [ins.get("text", "")[:40] for ins in data if ins.get("page_idx", -1) == 0] + print(f" [设计单位] 未找到,page_idx=0 共{len(p0_texts)}条: {p0_texts}") + if design_unit_name: + design_unit_entities.append({ + "type": "设计单位", + "properties": { + "名称": design_unit_name, + "knowledge_source": "" + } + }) + design_unit_relations.append({ + "type": "设计", + "from_entity": device, + "to_entity": design_unit_name + }) + _register_entity_type("设计单位", properties=["名称", "knowledge_source"]) + print(f"[设计单位] {design_unit_name}") + + # ---- 2. 图/表/目录类 ---- + category, keyword = _detect_nomodel_category(input_pdf_path) + if category is not None: + print(f"[图/表/目录] 文件类别={category}, 关键词={keyword}, device={device}") + entities, relations = _special_file_generate_entities( + input_pdf_path, prefix_url, device, category, keyword + ) + entities = design_unit_entities + entities + relations = design_unit_relations + relations + print(f"完成,共生成实体: {len(entities)},关系: {len(relations)}") + return entities, relations + + # ---- 3. 其他文件:按章节结构提取 ---- + print(f"[章节提取] 按一级标题→实体、二级标题→属性 提取, device={device}") + entities, relations = _chapter_structure_extract( + input_pdf_path, data, prefix_url, device + ) + entities = design_unit_entities + entities + relations = design_unit_relations + relations + print(f"全部完成,共生成实体: {len(entities)},关系: {len(relations)}") + return entities, relations + + +# ============================== +# 本地测试入口 +# ============================== + +if __name__ == "__main__": + import asyncio + + test_cases = [ + { + "pdf": "/app/kg_build/test/163-06A0015-B01001_船舶主发动机原理图.pdf", + "json": "/app/kg_build/test/122-06A0014-B01001_发动机-维修手册_content_list.json", + }, + ] + + all_results = {"entities": [], "relations": []} + + for t in test_cases: + pdf_path = t["pdf"] + json_path = t["json"] + + if not os.path.exists(json_path): + print(f"跳过(文件不存在): {json_path}") + continue + + print(f"\n{'='*60}") + print(f"处理: {pdf_path}") + print(f"{'='*60}") + + try: + with open(json_path, 'r', encoding='utf-8') as f: + data = json.load(f) + except Exception as e: + print(f"读取JSON出错: {e}") + continue + + entities, relations = asyncio.run( + get_filtertext_node_relation( + pdf_path, data=data, device=DEVICE_NAME + ) + ) + all_results["entities"].extend(entities) + all_results["relations"].extend(relations) + + output_path = "/app/kg_build/test/过滤文本抽取结果.json" + try: + with open(output_path, 'w', encoding='utf-8') as f: + json.dump(all_results, f, ensure_ascii=False, indent=4) + print(f"\n结果已保存至: {output_path}") + except Exception as e: + print(f"保存结果出错: {e}") + + diff --git a/kg_build_0409/extract_filtertext_0329.py b/kg_build_0409/extract_filtertext_0329.py new file mode 100644 index 0000000..02fdf72 --- /dev/null +++ b/kg_build_0409/extract_filtertext_0329.py @@ -0,0 +1,558 @@ +""" +extract_filtertext_serial.py +对外接口:get_filtertext_node_relation(input_pdf_path, data, prefix_url, device) + +全程不调用大模型,纯规则处理。 + +逻辑分支: + - 文件名含 备品备件/图解目录 → 直接跳过,不做任何解析 + - 文件名含 接线图/原理图/总图/连接图 → 直接生成"图录"实体 + 关系 + - 文件名含 芯线表 → 直接生成"芯线表"实体 + 关系 + - 文件名含 随机文件目录/随机文件 → 直接生成"文件目录"实体 + 关系 + - 其他文件(如维修手册等) → 按章节结构提取实体 + 关系 + +关系统一格式: + {"type": "包含", "from_entity": device, "to_entity": 实体type} + +章节切分逻辑已迁移至 chapter_segmenter.py,本文件直接调用。 +""" + +import json +import os +import re +from typing import List +from kg_build.extract_util import highlight_pdf_file +from entity_registry import register as _register_entity_type +from kg_build.chapter_segmenter import segment_chapters, Chapter + + +# ============================== +# 配置 +# ============================== + +DEVICE_NAME = "发动机" + +# 一级标题映射:去编号后的标题文本 → 替换为指定名称(精确匹配) +L1_TITLE_MAPPING = { + "概述": "基本情况", + "使用操作": "操作使用", + "系统结构组成" : "组成", + "设备组成" : "组成", + "设备功能" : "功能", + "安装与调试" : "调试", + "调试细则" : "调试", + "系统功能" : "功能", + "系统组成" : "组成", + "维修工作指导" : "维修工作" +} + +# 二级标题(特殊章节独立实体)类型映射 +L2_TYPE_MAPPING = { + "技术指标": "技术指标参数", + "工作条件": "环境条件", + "组成简介" : "组成", + "主要用途及适用范围" :"功能", + "主要功能" : "功能", + "接口关系" : "接口", + "主要性能参数" : "性能", +} + +# 实体 type → 关系 type(未命中默认"包含") +ENTITY_RELATION_MAPPING = { + "基本情况": "实现", + "功能": "实现", + "环境条件": "适用", + "组成": "包括", + "技术指标参数": "具有", + "接口": "配备", + "安全警告": "安全警告", + "操作使用": "支持操作", + "维修工作": "维修", + "调试": "调试", + "器材保障": "依赖", + "图册": "配套", + "设计单位": "设计", + "性能" : "具有", +} + +# 设计单位识别关键词(出现在封面 page_idx=0 的文本中) +DESIGN_UNIT_KEYWORDS = ["研究所", "集团公司", "有限公司", "工厂", "研究院", "研究中心"] + +# ---------- 文件名关键词配置 ---------- +DIAGRAM_KEYWORDS = ["接线图", "原理图", "总图", "连接图"] +TABLE_KEYWORDS = ["芯线表"] +CATALOG_KEYWORDS = ["随机文件目录", "随机文件"] +SPARE_KEYWORDS = ["备品备件"] +SKIP_KEYWORDS = ["图解目录"] + + +# ============================== +# 文件名判断 +# ============================== + +def _should_skip(filename: str) -> bool: + """文件名包含跳过关键词时返回True,直接不处理。""" + basename = os.path.basename(filename) + return any(kw in basename for kw in SKIP_KEYWORDS) + + +def _detect_nomodel_category(filename: str): + """ + 根据文件名判断属于哪种特殊类别。 + 返回: (category, keyword) 或 (None, None) 表示走通用章节提取。 + """ + basename = os.path.basename(filename) + for kw in DIAGRAM_KEYWORDS: + if kw in basename: + return "diagram", kw + for kw in TABLE_KEYWORDS: + if kw in basename: + return "table", kw + for kw in CATALOG_KEYWORDS: + if kw in basename: + return "catalog", kw + for kw in SPARE_KEYWORDS: + if kw in basename: + return "spare", kw + return None, None + + +# ============================== +# 域映射 / 关系类型 +# ============================== + +def _map_l1_title(title_clean: str) -> str: + """对一级标题做映射,如 '概述' → '基本情况',未命中则原样返回。""" + return L1_TITLE_MAPPING.get(title_clean, title_clean) + + +def _get_relation_type(entity_type: str) -> str: + """根据实体 type 返回对应的关系 type,未命中默认'包含'。""" + return ENTITY_RELATION_MAPPING.get(entity_type, "包含") + + +# ============================== +# 设计单位提取 +# ============================== + +def _extract_design_unit(data: list) -> str: + """ + 从封面前两页(page_idx=0 或 1)提取设计单位名称。 + 规则:文本含机构关键词(不限 type,兼容 discarded 记录)。 + 返回第一个命中的文本,找不到返回空字符串。 + """ + for ins in data: + if ins.get("page_idx", -1) not in (0, 1): + continue + text = ins.get("text", "").strip() + if text and any(kw in text for kw in DESIGN_UNIT_KEYWORDS): + return text + return "" + + +# ============================== +# 单条 record 转文本 +# ============================== + +def _record_to_text(ins: dict) -> str: + """将单条 record 转为纯文本字符串。""" + if ins.get("type") in ("text", "discarded"): + return ins.get("text", "").strip() + + elif ins.get("type") == "table": + table_caption = ins.get("table_caption", "") + table_body = ins.get("table_body", "") + if isinstance(table_caption, list): + table_caption = "\n".join(str(c) for c in table_caption) + table_text = re.sub(r'<[^>]+>', ' ', table_body or "") + table_text = re.sub(r'\s+', ' ', table_text).strip() + parts = [str(table_caption), table_text] + return "\n".join(p for p in parts if p).strip() + + elif ins.get("type") == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + if isinstance(image_caption, list): + image_caption = "\n".join(str(i) for i in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + parts = [image_caption, img_path] + return "\n".join(p for p in parts if p).strip() + + return "" + + +# ============================== +# 高亮相关 +# ============================== + +def _collect_highlights(records: list) -> list: + """从 records 中收集高亮信息。""" + highlight_list = [] + for ins in records: + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + if bbox and page_idx >= 0: + highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + return highlight_list + + + +def _build_highlight_url(input_pdf_path, highlight_list, prefix_url, include_page=True): + """调用 highlight_pdf_file 生成高亮PDF并返回URL。""" + if not highlight_list: + return "" + try: + highlight_filename, most_common_page, filename = highlight_pdf_file( + input_pdf_path, highlight_list + ) + if include_page: + return f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + return f"{prefix_url}/upload/{highlight_filename}" + except Exception as e: + print(f" ⚠️ highlight_pdf_file 失败: {e}") + return "" + + +# ============================== +# 图/表/目录类:直接生成实体 + 关系 +# ============================== + +def _special_file_generate_entities(input_pdf_path, prefix_url, device, category, keyword): + """ + 对于图/表/目录类文件,直接根据类别生成实体和关系。 + 返回: (entities, relations) + """ + filename = os.path.basename(input_pdf_path) + #url = f"{prefix_url}/upload/{filename}" + # url = f"{prefix_url}/files/uploads_v1/{filename}" + url = f"{prefix_url}/files/{filename}" + entities = [] + relations = [] + + if category == "diagram": + entity_type = f"{device}的{keyword}" + entity = { + "type": "图册", + "properties": { + "名称": entity_type, + keyword: url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type("图册", properties=["名称", keyword, "knowledge_source"]) + entities.append(entity) + relations.append({"type": "配套", "from_entity": device, "to_entity": entity_type}) + print(f" [图/表/目录] 生成图册实体: {entity_type}") + + elif category == "table": + entity_type = f"{device}的{keyword}" + entity = { + "type": keyword, + "properties": { + "名称": entity_type, + keyword: url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type(keyword, properties=["名称", keyword, "knowledge_source"]) + entities.append(entity) + relations.append({"type": "包含", "from_entity": device, "to_entity": entity_type}) + print(f" [图/表/目录] 生成表实体: {entity_type}") + + elif category == "catalog": + entity_type = f"{device}的文件目录" + entity = { + "type": "文件目录", + "properties": { + "名称": entity_type, + "文件目录": url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type("文件目录", properties=["名称", "文件目录", "knowledge_source"]) + entities.append(entity) + relations.append({"type": "包含", "from_entity": device, "to_entity": entity_type}) + print(f" [图/表/目录] 生成文件目录实体: {entity_type}") + + elif category == "spare": + entity_name = f"{device}的备品备件及清单" + entity = { + "type": "备品备件及清单", + "properties": { + "名称": entity_name, + "备品备件及清单": url, + "knowledge_source": json.dumps([{"filename": filename, "info": "", "url": url}], ensure_ascii=False) + } + } + _register_entity_type("备品备件及清单", properties=["名称", "备品备件及清单", "knowledge_source"]) + #entities.append(entity) + relations.append({ + "type": "包含", + "from_entity": f"{device}的保障资源", + "to_entity": entity_name + }) + print(f" [图/表/目录] 生成备品备件及清单实体: {entity_name}") + + return entities, relations + + +# ============================== +# 通用文件:按章节结构提取实体 + 关系 +# ============================== + +def _chapter_structure_extract(input_pdf_path, data, prefix_url, device): + """ + 调用 chapter_segmenter.segment_chapters 切分章节,再将每个章节转为实体+关系。 + + 普通章节:一级标题 → 实体,二级标题内容 → 属性字段 + 特殊章节:每个二级节各自独立成为实体 + 返回: (entities, relations) + """ + chapters: List[Chapter] = segment_chapters(data) + + all_entities = [] + all_relations = [] + filename = os.path.basename(input_pdf_path) + + for chapter in chapters: + if chapter.is_skipped: + continue + + if chapter.is_special: + # 特殊章节:每个二级节独立成为实体 + for l2 in chapter.l2_sections: + content_text = "\n".join( + p for p in (_record_to_text(r) for r in l2.records) if p + ).strip() + if not content_text: + continue + mapped_l2_type = L2_TYPE_MAPPING.get(l2.title, l2.title) + entity_name = f"{device}的{mapped_l2_type}" + hl = _collect_highlights(l2.records) + url = _build_highlight_url(input_pdf_path, hl, prefix_url) + entity = { + "type": mapped_l2_type, + "properties": { + "名称": entity_name, + "内容": content_text, + "knowledge_source": json.dumps( + [{"filename": filename, "info": content_text, "url": url}], + ensure_ascii=False + ) + } + } + _register_entity_type(mapped_l2_type, properties=["名称", "内容", "knowledge_source"]) + all_entities.append(entity) + all_relations.append({ + "type": _get_relation_type(mapped_l2_type), + "from_entity": device, + "to_entity": entity_name + }) + print(f" → [特殊] 实体 type=【{mapped_l2_type}】名称=【{entity_name}】") + + else: + # 普通章节:一级标题 → 实体 + mapped_title = _map_l1_title(chapter.title) + entity_name = f"{device}的{mapped_title}" + + properties = {"名称": entity_name} + + # 一级标题到第一个二级标题之间的内容 → 概述 + loose_text = "\n".join( + p for p in (_record_to_text(r) for r in chapter.loose_records) if p + ).strip() + if loose_text: + properties["概述"] = loose_text + + # 各二级节:命中 L2_TYPE_MAPPING 的独立成实体,否则作为属性 + for l2 in chapter.l2_sections: + content_text = "\n".join( + p for p in (_record_to_text(r) for r in l2.records) if p + ).strip() + if not content_text: + continue + if l2.title in L2_TYPE_MAPPING: + mapped_l2_type = L2_TYPE_MAPPING[l2.title] + l2_entity_name = f"{device}的{mapped_l2_type}" + hl = _collect_highlights(l2.records) + l2_url = _build_highlight_url(input_pdf_path, hl, prefix_url) + l2_entity = { + "type": mapped_l2_type, + "properties": { + "名称": l2_entity_name, + "内容": content_text, + "knowledge_source": json.dumps( + [{"filename": filename, "info": content_text, "url": l2_url}], + ensure_ascii=False + ) + } + } + _register_entity_type(mapped_l2_type, properties=["名称", "内容", "knowledge_source"]) + all_entities.append(l2_entity) + all_relations.append({ + "type": _get_relation_type(mapped_l2_type), + "from_entity": device, + "to_entity": l2_entity_name + }) + print(f" → [L2独立] 实体 type=【{mapped_l2_type}】名称=【{l2_entity_name}】") + properties[l2.title] = content_text + + # 整章原文 + raw_parts = [_record_to_text(r) for r in chapter.records] + full_content = "\n".join(p for p in raw_parts if p).strip() + print(f" [DEBUG内容] 章节={mapped_title} records={len(chapter.records)} 内容长度={len(full_content)}") + if full_content: + properties["内容"] = full_content + + hl = _collect_highlights(chapter.records) + url = _build_highlight_url(input_pdf_path, hl, prefix_url) + properties["knowledge_source"] = json.dumps( + [{"filename": filename, "info": full_content, "url": url}], + ensure_ascii=False + ) + + prop_names = [k for k in properties if k not in ("名称", "knowledge_source")] + _register_entity_type(mapped_title, properties=["名称"] + prop_names + ["knowledge_source"]) + all_entities.append({"type": mapped_title, "properties": properties}) + all_relations.append({ + "type": _get_relation_type(mapped_title), + "from_entity": device, + "to_entity": entity_name + }) + print(f" → 实体 type=【{mapped_title}】名称=【{entity_name}】属性: {prop_names}") + + print(f"\n[章节提取] 共生成实体: {len(all_entities)},关系: {len(all_relations)}") + return all_entities, all_relations + + +# ============================== +# 对外唯一接口 +# ============================== + +async def get_filtertext_node_relation( + input_pdf_path: str, + data: list, + prefix_url: str = "http://192.168.0.111:9085", + device: str = DEVICE_NAME +): + """ + 对外唯一接口。 + + 自动判断文件名: + - 含"备品备件"或"图解目录" → 直接跳过,返回空 + - 含 接线图/原理图/总图/连接图/芯线表/随机文件目录 → 直接生成对应实体+关系 + - 其他文件 → 按一级标题=实体、二级标题=属性 的规则提取,同时生成关系 + + :param input_pdf_path: PDF文件路径 + :param data: content_list JSON数据 + :param prefix_url: highlight文件服务地址 + :param device: 设备名称,默认"发动机" + :return: (all_entity_results, all_relation_results) + """ + # ---- 1. 跳过不需要解析的文件 ---- + if _should_skip(input_pdf_path): + print(f"[跳过] 文件名命中跳过关键词,不做任何解析: {os.path.basename(input_pdf_path)}") + return [], [] + + # ---- 公共:从封面提取设计单位 ---- + design_unit_entities = [] + design_unit_relations = [] + design_unit_name = _extract_design_unit(data) + if not design_unit_name: + p0_texts = [ins.get("text", "")[:40] for ins in data if ins.get("page_idx", -1) == 0] + print(f" [设计单位] 未找到,page_idx=0 共{len(p0_texts)}条: {p0_texts}") + if design_unit_name: + design_unit_entities.append({ + "type": "设计单位", + "properties": { + "名称": design_unit_name, + "knowledge_source": "" + } + }) + design_unit_relations.append({ + "type": "设计", + "from_entity": device, + "to_entity": design_unit_name + }) + _register_entity_type("设计单位", properties=["名称", "knowledge_source"]) + print(f"[设计单位] {design_unit_name}") + + # ---- 2. 图/表/目录类 ---- + category, keyword = _detect_nomodel_category(input_pdf_path) + if category is not None: + print(f"[图/表/目录] 文件类别={category}, 关键词={keyword}, device={device}") + entities, relations = _special_file_generate_entities( + input_pdf_path, prefix_url, device, category, keyword + ) + entities = design_unit_entities + entities + relations = design_unit_relations + relations + print(f"完成,共生成实体: {len(entities)},关系: {len(relations)}") + return entities, relations + + # ---- 3. 其他文件:按章节结构提取 ---- + print(f"[章节提取] 按一级标题→实体、二级标题→属性 提取, device={device}") + entities, relations = _chapter_structure_extract( + input_pdf_path, data, prefix_url, device + ) + entities = design_unit_entities + entities + relations = design_unit_relations + relations + print(f"全部完成,共生成实体: {len(entities)},关系: {len(relations)}") + return entities, relations + + +# ============================== +# 本地测试入口 +# ============================== + +if __name__ == "__main__": + import asyncio + + test_cases = [ + { + "pdf": "/app/kg_build/test/122-06A0014-B01001_发动机-维修手册.pdf", + "json": "/app/kg_build/test/122-06A0014-B01001_发动机-维修手册_content_list.json", + }, + ] + + all_results = {"entities": [], "relations": []} + + for t in test_cases: + pdf_path = t["pdf"] + json_path = t["json"] + + if not os.path.exists(json_path): + print(f"跳过(文件不存在): {json_path}") + continue + + print(f"\n{'='*60}") + print(f"处理: {pdf_path}") + print(f"{'='*60}") + + try: + with open(json_path, 'r', encoding='utf-8') as f: + data = json.load(f) + except Exception as e: + print(f"读取JSON出错: {e}") + continue + + entities, relations = asyncio.run( + get_filtertext_node_relation( + pdf_path, data=data, device=DEVICE_NAME + ) + ) + all_results["entities"].extend(entities) + all_results["relations"].extend(relations) + + output_path = "/app/kg_build/test/过滤文本抽取结果.json" + try: + with open(output_path, 'w', encoding='utf-8') as f: + json.dump(all_results, f, ensure_ascii=False, indent=4) + print(f"\n结果已保存至: {output_path}") + except Exception as e: + print(f"保存结果出错: {e}") + diff --git a/kg_build_0409/extract_guzhang_table.py b/kg_build_0409/extract_guzhang_table.py new file mode 100644 index 0000000..ec20512 --- /dev/null +++ b/kg_build_0409/extract_guzhang_table.py @@ -0,0 +1,387 @@ +import pandas as pd +from io import StringIO # 1. 导入 StringIO +import json +import requests +import json +import os +from extract_util import safe_json_loads,highlight_pdf_file,get_content_bbox +import re +import asyncio +from bs4 import BeautifulSoup +import logging +# 配置 logger +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", + datefmt="%Y-%m-%d %H:%M:%S" +) +logger = logging.getLogger(__name__) +# ================= 函数定义 ================= +def save_to_file(data, filepath, is_json=True): + """通用保存函数""" + try: + with open(filepath, "w", encoding="utf-8") as f: + if is_json: + json.dump(data, f, ensure_ascii=False, indent=2) + else: + f.write(data) + print(f"✅ 已保存: {filepath}") + return True + except Exception as e: + print(f"❌ 保存失败 {filepath}: {e}") + return False +def is_fault_table_by_first_tr(table_body: str) -> bool: + if not isinstance(table_body, str): + return False + + # 非贪婪匹配第一个 ... + match = re.search(r']*>(.*?)', table_body, re.IGNORECASE | re.DOTALL) + if not match: + + return False + + first_tr_html = match.group(1) + + # 提取所有 ', table_body, re.IGNORECASE | re.DOTALL) + if not match: + return None + + text_lower = re.sub(r'<[^>]+>', '', match.group(1)).lower() + + if all(kw in text_lower for kw in ["故障现象", "故障原因", "维修项目"]): + return "type1" + elif all(kw in text_lower for kw in ["故障现象", "可能原因", "排除方法"]): + return "type2" + elif all(kw in text_lower for kw in ["故障外部现象", "故障可能原因", "操作员指导","排除方法"]): + return "type3" + return None + + +# ================= 修改:返回时携带 table_type ================= +def get_guzhang_chunk_bbox_and_removed_data(data): + results = [] # 元素格式: {"group": [...], "table_type": "type1"/"type2"} + ids_to_remove = set() + record_map = {item["id"]: item for item in data} + + for ins in data: + if ins.get("type") == "table": + table_type = get_fault_table_type(ins.get("table_body", "")) + + if table_type is not None: + current_id = ins["id"] + prev_ids = [current_id - 1] + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append({"group": group, "table_type": table_type}) # ← 携带类型 + + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + return results, filtered_data + +import re + +def _expand_rowspans(content: str) -> list[list[str]]: + """ + 将含 rowspan 的 HTML 表格展开为完整二维列表。 + 每个被合并的单元格都会被填充为原始内容。 + """ + all_rows = re.findall(r"(.*?)", content, flags=re.DOTALL) + if not all_rows: + return [] + + matrix = [] + pending = {} # {col_index: (remaining_rows, cell_text)} + + for row_html in all_rows: + cells = re.findall(r"]*)>(.*?)", row_html, flags=re.DOTALL) + row = [] + col = 0 + cell_idx = 0 + + while cell_idx < len(cells) or any(c >= col for c in pending): + if col in pending: + # 该列被上方 rowspan 占用,直接填充 + remaining, text = pending[col] + row.append(text) + if remaining - 1 > 0: + pending[col] = (remaining - 1, text) + else: + del pending[col] + col += 1 + + elif cell_idx < len(cells): + attrs_str, text = cells[cell_idx] + text = text.strip() + + rowspan_m = re.search(r'rowspan\s*=\s*["\']?(\d+)', attrs_str) + rowspan = int(rowspan_m.group(1)) if rowspan_m else 1 + + row.append(text) + if rowspan > 1: + pending[col] = (rowspan - 1, text) + + col += 1 + cell_idx += 1 + else: + break + + matrix.append(row) + + return matrix + + +def parse_table_content(content: str, chunk_size: int = 10) -> list[dict]: + """ + 先展开 rowspan,再按 chunk_size 切分,分批解析后汇总返回。 + """ + matrix = _expand_rowspans(content) + if not matrix: + print("⚠️ 未找到有效表格,返回空列表") + return [] + + header = matrix[0] # 表头 + data_rows = matrix[1:] # 数据行(rowspan 已展开) + total = len(data_rows) + + print(f"📋 展开后共 {total} 条数据行,按每批 {chunk_size} 行切分处理") + + def _to_html(rows: list[list[str]]) -> str: + def row_html(cells): + return "" + "".join(f"" for c in cells) + "" + return "
序号名称型专规格
中的文本(简单去标签) + # 更健壮的做法是递归去除标签,但这里用正则足够 + text_in_first_tr = re.sub(r'<[^>]+>', '', first_tr_html) # 去除所有 HTML 标签 + + # 统一转为字符串并检查关键词 + text_lower = text_in_first_tr.lower() + keywords = ["故障现象", "故障原因", "维修项目"] + return all(kw in text_lower for kw in keywords) + +# ================= 新增:识别故障表类型 ================= +def get_fault_table_type(table_body: str): + """ + 返回故障表类型: + 'type1' -> 包含 [故障现象, 故障原因, 维修项目] + 'type2' -> 包含 [故障现象, 可能原因, 排除方法] + None -> 非故障表 + """ + if not isinstance(table_body, str): + return None + + match = re.search(r']*>(.*?)
{c}
" + row_html(header) + "".join(row_html(r) for r in rows) + "
" + + result_list = [] + + for chunk_start in range(0, total, chunk_size): + chunk = data_rows[chunk_start: chunk_start + chunk_size] + chunk_html = _to_html(chunk) + + try: + chunk_df_list = pd.read_html(StringIO(chunk_html), header=0) + if not chunk_df_list: + print(f" ⚠️ 切片 [{chunk_start}:{chunk_start+chunk_size}] 解析失败,跳过") + continue + + chunk_result = json.loads( + chunk_df_list[0].to_json(orient='records', force_ascii=False) + ) + result_list.extend(chunk_result) + print(f" ✅ 切片 [{chunk_start}:{chunk_start+chunk_size}] 解析 {len(chunk_result)} 条") + + except Exception as e: + print(f" ❌ 切片 [{chunk_start}:{chunk_start+chunk_size}] 处理异常: {e}") + continue + + print(f"共汇总 {len(result_list)} 条记录") + return result_list +# ================= 修改:主函数按类型分支处理 ================= +async def get_guzhang_node_relation(input_pdf_path, data, prefix_url="http://192.168.0.46:59085", device="发动机"): + for idx, item in enumerate(data, start=1): + item["id"] = idx + + guzhang_groups, cleaned_data = get_guzhang_chunk_bbox_and_removed_data(data) + print(f"抽取的故障表总数量为:{len(guzhang_groups)}") + + if not guzhang_groups: + print("未找到符合条件的组成表格,跳过处理。") + all_entity_results, all_relation_results = [], [] + + else: + all_entity_results, all_relation_results = [], [] + + for i, item in enumerate(guzhang_groups): + compose = item["group"] + table_type = item["table_type"] + + try: + print(f"开始处理第 {i+1} 个故障表,类型: {table_type}") + content, highlight_list = get_content_bbox(compose) + print("故障表切片内容为:", content[:200]) + + # df_list = pd.read_html(StringIO(content), header=0) + # if not df_list: + # print(f" ⚠️ 第 {i+1} 组未解析到表格,跳过") + # continue + + # df = df_list[0] + # df.dropna(how='all', inplace=True) + # result_list = json.loads(df.to_json(orient='records', force_ascii=False)) + result_list = parse_table_content(content, chunk_size=10) + if not result_list: + continue + for ins in result_list: + print(ins) + print(1111111111111111111111) + highlight_filename, most_common_page, filename = highlight_pdf_file(input_pdf_path, highlight_list) + url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + logger.info(f"处理完成,高亮文件:{highlight_filename},高亮页码:{most_common_page}") + # ---------- type1: 故障现象 / 故障原因 / 维修项目 ---------- + if table_type == "type1": + for ins in result_list: + # 安全获取字段,如果是 None 则转为空字符串 + guzhang_xianxiang = ins.get("故障现象") or "" + guzhang_yuanyin = ins.get("故障原因") or "" + weixiu_xiangmu = ins.get("维修项目") or "" + + # 只有当现象或原因不为空时才构建故障名,避免生成 "导致" 这种无意义字符串 + if guzhang_xianxiang or guzhang_yuanyin: + guzhangname = f"{guzhang_yuanyin}导致{guzhang_xianxiang}" + else: + continue # 如果关键信息缺失,跳过该行 + + source_data_list = [{"filename": filename, "info": content, "url": url}] + + all_entity_results.append({ + "type": "故障模式", + "properties": { + "名称": guzhangname, + "故障现象": guzhang_xianxiang, + "故障原因": guzhang_yuanyin, + "维修方案": weixiu_xiangmu, + "knowledge_source": json.dumps(source_data_list, ensure_ascii=False) + } + }) + all_relation_results.append({ + "type": "包含故障", + "from_entity": f"{device}的维修工作", + "to_entity": guzhangname + }) + + # ---------- type2: 故障现象 / 可能原因 / 排除方法 ---------- + elif table_type == "type2": + for ins in result_list: + guzhang_xianxiang = ins.get("故障现象") or "" + guzhang_yuanyin = ins.get("可能原因") or "" + weixiu_fangfa = ins.get("排除方法") or "" + + if guzhang_xianxiang or guzhang_yuanyin: + guzhangname = f"{guzhang_yuanyin}导致{guzhang_xianxiang}" + else: + continue + + source_data_list = [{"filename": filename, "info": content, "url": url}] + + all_entity_results.append({ + "type": "故障模式", + "properties": { + "名称": guzhangname, + "故障现象": guzhang_xianxiang, + "故障原因": guzhang_yuanyin, + "维修方案": weixiu_fangfa, + "knowledge_source": json.dumps(source_data_list, ensure_ascii=False) + } + }) + all_relation_results.append({ + "type": "包含故障", + "from_entity": f"{device}的维修工作", + "to_entity": guzhangname + }) + + elif table_type == "type3": + for ins in result_list: + guzhang_xianxiang = ins.get("故障外部现象") or "" + guzhang_yuanyin = ins.get("故障可能原因") or "" + caozuoyuan_zhidao = ins.get("操作员指导") or "" + weixiu_fangfa = ins.get("排除方法") or "" + + if guzhang_xianxiang or guzhang_yuanyin: + guzhangname = f"{guzhang_yuanyin}导致{guzhang_xianxiang}" + else: + continue + + source_data_list = [{"filename": filename, "info": content, "url": url}] + + all_entity_results.append({ + "type": "故障模式", + "properties": { + "名称": guzhangname, + "故障现象": guzhang_xianxiang, + "故障原因": guzhang_yuanyin, + "操作员指导": caozuoyuan_zhidao, + "维修方案": weixiu_fangfa, + "knowledge_source": json.dumps(source_data_list, ensure_ascii=False) + } + }) + all_relation_results.append({ + "type": "包含故障", + "from_entity": f"{device}的维修工作", + "to_entity": guzhangname + }) + except Exception as e: + print(f"处理第 {i+1} 组时发生未预期错误: {e}") + continue + + # 设备 → 维修工作指导 节点和关系(两种类型共用) + all_entity_results.append({ + "type": "维修工作", + "properties": {"名称": f"{device}的维修工作"} + }) + all_relation_results.append({ + "type": "发生故障使用维修工作", + "from_entity": device, + "to_entity": f"{device}维修工作" + }) + + return all_entity_results, all_relation_results + + + +""" +实体:设备、维修工作、故障、维修项目 +关系:设备---发生故障使用维修工作--->维修工作 +维修工作---包含--->故障 +故障---被修复--->维修项目 +""" +if __name__ == "__main__": + file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/122-06A0014-B01001_发动机-维修手册_content_list.json' + input_pdf_path = "/storage01/home/hdf/project/wxkgrag/kgextract/122-06A0014-B01001_发动机-维修手册.pdf" + output_json_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/output2/维修细目表抽取结果.json' # 你可以自定义路径 + + try: + with open(file_path, 'r', encoding='utf-8') as file: + data = json.load(file) + except Exception as e: + print(f"读取 JSON 文件时出错:{e}") + data = [] + all_entity_results, all_relation_results = asyncio.run( + get_guzhang_node_relation(input_pdf_path, data=data) + ) + for ins in all_entity_results: + print(ins) + length_entity = len(all_entity_results) + length_relation = len(all_relation_results) + + print(f"抽取{length_entity}个实体,抽取{length_relation}个关系") + result = { + "entities": all_entity_results, + "relations": all_relation_results + } + + # 保存为 JSON 文件 + try: + with open(output_json_path, 'w', encoding='utf-8') as f: + json.dump(result, f, ensure_ascii=False, indent=4) + print(f"结果已保存至:{output_json_path}") + except Exception as e: + print(f"保存 JSON 文件时出错:{e}") + diff --git a/kg_build_0409/extract_operation_table.py b/kg_build_0409/extract_operation_table.py new file mode 100644 index 0000000..fbf8a88 --- /dev/null +++ b/kg_build_0409/extract_operation_table.py @@ -0,0 +1,338 @@ +import json +import fitz # PyMuPDF +import os +from collections import Counter +import uuid +# 假设 Prompt 和 extract_util 是你本地已有的模块 +from kg_build.Prompt import prompt_extract_operation_node_rela +from kg_build.extract_util import safe_json_loads, highlight_pdf_file, get_content_bbox +import re +import asyncio +from openai import AsyncOpenAI +# from modelsAPI.model_api import OpenaiAPI + + +async def openai_chat_aysnc(query: str, timeout: int = 180) -> str | None: + """异步调用 OpenAI 兼容 API(如本地部署的 Qwen、vLLM、Ollama 等)""" + client = None + try: + base_url = "http://192.168.0.46:59800/v1" + api_key = "none" + + client = AsyncOpenAI( + api_key=api_key, + base_url=base_url, + timeout=timeout + ) + + response = await client.chat.completions.create( + model="Qwen3.5-35B-A3B", + messages=[ + {"role": "user", "content": query}, + ], + temperature=0.1, + stream=False, + response_format={"type": "json_object"}, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + + except Exception as e: + print(f"调用 OpenAI API 时出错: {e}") + return None + finally: + if client: + await client.close() + +def is_operation_table_by_first_tr(table_body: str) -> bool: + """ + 判断 table_body 是否为操作项目表,依据是第一行 中是否包含 '项目编号' 和 '操作项目' + """ + if not isinstance(table_body, str): + return False + + # 非贪婪匹配第一个 ... + match = re.search(r']*>(.*?)', table_body, re.IGNORECASE | re.DOTALL) + if not match: + return False + + first_tr_html = match.group(1) + + # 去除所有 HTML 标签,提取纯文本 + text_in_first_tr = re.sub(r'<[^>]+>', '', first_tr_html) + + # 转为小写(中文无所谓大小写,但统一处理更安全) + text_clean = text_in_first_tr.strip() + + # 检查是否同时包含两个关键词 + has_code = "项目编号" in text_clean + has_item = "操作项目" in text_clean + return has_code and has_item + + +def extract_operation_groups_and_remaining(records, max_following_for_last=None): + """ + 通过语义判断表格是否为操作项目表(基于第一行内容),并分组。 + + 普通起始标记:组 = [start, ..., next_start - 1] + 最后一个起始标记:组 = [start, ..., start + max_following_for_last] (若指定) + """ + groups = [] + current_group = None + used_ids = set() + + for record in records: + is_start = ( + record.get("type") == "table" + and is_operation_table_by_first_tr(record.get("table_body", "")) + ) + + if is_start: + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + current_group = [record] + else: + if current_group is not None: + current_group.append(record) + + # 处理最后一个组 + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + # —————— 后处理:截断最后一个组(如果需要) —————— + if groups and max_following_for_last is not None: + last_group = groups[-1] + if len(last_group) > max_following_for_last + 1: # +1 是起始记录本身 + truncated = last_group[:max_following_for_last + 1] + removed_ids = {r["id"] for r in last_group[max_following_for_last + 1:]} + used_ids -= removed_ids + groups[-1] = truncated + + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + + + + +async def extract_entity_relation(chunk): + """ + 批量处理一个文档的多个切片(chunks),每个切片调用大模型结构化,并返回全部结果。 + """ + final_prompt = prompt_extract_operation_node_rela.replace("text", chunk) + + raw_response = await openai_chat_aysnc(final_prompt, timeout=600) + + if raw_response is None: + print(f" ⚠️ 切片 API 调用失败") + return [] + + # 尝试解析 JSON + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = safe_json_loads(cleaned) + return json_result + + except Exception as e: + print(f" ⚠️ 切片 JSON 解析失败: {e}") + print(f" 原始响应: {repr(raw_response[:500])}") + return [] + + + +async def get_operation_node_relation(input_pdf_path, data, prefix_url="http://192.168.0.46:59085", device="发动机"): + # 1. 初始化数据 ID (如果输入数据还没有ID) + for idx, item in enumerate(data, start=1): + if "id" not in item: + item["id"] = idx + + devicename = device + + # 2. 数据预处理:获取故障组 and 清洗数据 + groups1, remaining_records1 = extract_operation_groups_and_remaining(data) + groups = groups1[1:] if len(groups1) > 1 else [] + + all_entity_results = [] + all_relation_results = [] + device_operation = { + "type" : "操作程序", + "properties": { + "名称": f"{devicename}的操作程序", + } + } + + if not groups: + print("未找到符合条件的操作项目组,跳过后续处理。") + else: + # 3. 遍历每个维修项目组进行抽取 + for i, repair_group in enumerate(groups): + try: + print(f"开始处理第 {i+1} 个操作项目表") + + # 获取内容和高亮区域 + content, highlight_list = get_content_bbox(repair_group) + if not content: + print(f"第 {i+1} 组:内容为空,跳过") + continue + + # ================= 重试逻辑开始 ================= + result = None + max_retries = 20 + retry_delay = 0.5 + highlight_filename, most_common_page,filename = highlight_pdf_file(input_pdf_path,highlight_list) + url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + for attempt in range(1, max_retries + 2): + # print(content[:500]) # 调试时可打开,避免日志过多 + # 1. 调用 API + result = await extract_entity_relation(content) + + # 2. 验证结果有效性 + is_valid = False + if result is not None and isinstance(result, dict): + # 情况 1: 标准格式 {'entities': [...], 'relationships': [...]} + if "entities" in result and isinstance(result["entities"], list) and len(result["entities"]) > 0: + is_valid = True + # 情况 2: 兼容日志中的格式 {'result': [...]} + elif "result" in result and isinstance(result["result"], list) and len(result["result"]) > 0: + is_valid = True + + # 3. 判断是否成功 + if is_valid: + if attempt > 1: + print(f" ✅ 第 {attempt} 次尝试成功获取有效数据。") + break + + # 4. 如果失败且还有重试机会 + if attempt <= max_retries: + reason = "API 返回为空" if result is None else "返回数据格式异常或内容为空" + print(f" ⚠️ 第 {attempt} 次尝试失败:{reason}。等待 {retry_delay} 秒后重试...") + await asyncio.sleep(retry_delay) + else: + print(f" ❌ 经过 {max_retries + 1} 次尝试仍无法获取有效数据,跳过该组。") + result = None + break + # ================= 重试逻辑结束 ================= + + if result is None: + continue + + # 构造知识来源字符串 (此处保持原有逻辑,实际项目中可能需要动态生成真实 URL) + source_data_list = [{ + "filename": filename, # 建议替换为真实文件名 + "info": content, + "url": url + }] + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + + # 兼容不同返回格式 + entities = result.get("entities", result.get("result", [])) + relationships = result.get("relationships", []) + + for entity in entities: + if "properties" not in entity or not isinstance(entity["properties"], dict): + entity["properties"] = {} + entity["properties"]["knowledge_source"] = knowledge_source_str + if entity.get("type") == "操作项目": + entity["properties"]["内容"] = content + # 构建基础关系:设备 -> 操作项目 + rela = { + "type": "操作时使用", + "from_entity": f"{devicename}的操作程序", + "to_entity": entity.get("properties", {}).get("名称", "未知实体") + } + all_relation_results.append(rela) + + all_entity_results.extend(entities) + all_relation_results.extend(relationships) + + except Exception as e: + print(f"处理第 {i+1} 组时发生未预期错误: {e}") + import traceback + traceback.print_exc() + continue + + + # ================= 【新增】实体和关系去重逻辑 ================= + print(f"去重前统计:实体数量={len(all_entity_results)}, 关系数量={len(all_relation_results)}") + + # 1. 实体去重 + unique_entities = [] + seen_entity_keys = set() + + for entity in all_entity_results: + props = entity.get("properties", {}) + # 定义唯一键:优先使用 "编号",如果没有则使用 "名称" + # 这样可以防止 OT001 出现两次 + entity_id = props.get("编号") or props.get("名称") + + # 如果连名称都没有,生成一个临时ID避免报错,但这种情况通常视为无效数据 + if not entity_id: + entity_id = str(uuid.uuid4()) + + if entity_id not in seen_entity_keys: + seen_entity_keys.add(entity_id) + unique_entities.append(entity) + else: + # 可选:打印跳过的重复项 + # print(f" ⚠️ 跳过重复实体: {entity_id} - {props.get('名称')}") + pass + + all_entity_results = unique_entities + + # 2. 关系去重 + unique_relations = [] + seen_relation_keys = set() + + for rela in all_relation_results: + # 定义关系唯一键:类型 + 源 + 目标 + r_key = (rela.get("type"), rela.get("from_entity"), rela.get("to_entity")) + + if r_key not in seen_relation_keys: + seen_relation_keys.add(r_key) + unique_relations.append(rela) + + all_relation_results = unique_relations + + relation = {'type': '使用', 'from_entity': f'{device}的操作使用', 'to_entity': f'{device}的操作程序'} + all_relation_results.append(relation) + all_entity_results.append(device_operation) + + print(f"去重后统计:实体数量={len(all_entity_results)}, 关系数量={len(all_relation_results)}") + # ======================================================== + + + return all_entity_results, all_relation_results + + +if __name__ == "__main__": + file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/output1/122-06A0014-B01001_发动机-操作使用手册_content_list.json' + input_pdf_path = "/storage01/home/hdf/project/wxkgrag/kgextract/output/output1/122-06A0014-B01001_发动机-操作使用手册.pdf" + + try: + with open(file_path, 'r', encoding='utf-8') as file: + data = json.load(file) + except Exception as e: + print(f"读取 JSON 文件时出错:{e}") + data = [] + + all_entity_results, all_relation_results = asyncio.run( + get_operation_node_relation(input_pdf_path, data=data, device="发动机") + ) + + length_entity = len(all_entity_results) + length_relation = len(all_relation_results) + for ins in all_entity_results: + print(ins) + print(11111111111111111111111) + for ins in all_relation_results: + print(ins) + print(22222222222222222222) + print(f"最终抽取结果:{length_entity}个实体,{length_relation}个关系") + + diff --git a/kg_build_0409/extract_repair_table.py b/kg_build_0409/extract_repair_table.py new file mode 100644 index 0000000..d2c771a --- /dev/null +++ b/kg_build_0409/extract_repair_table.py @@ -0,0 +1,678 @@ +import json +import fitz # PyMuPDF +import os +from collections import Counter +import uuid +from kg_build.Prompt import prompt_extract_repair_node_rela +from openai import OpenAI +import re +from kg_build.extract_util import safe_json_loads, highlight_pdf_file, get_content_bbox +from modelsAPI.model_api import OpenaiAPI +import re +from typing import List, Dict, Any, Tuple +import json +import re +import copy +import asyncio +from openai import AsyncOpenAI +import pandas as pd +from io import StringIO # 1. 导入 StringIO +def optimize_component_type(data): + """ + 根据组成编码的位数优化记录的type字段 + + 规则: + - 2位数 → 子系统 + - 4位数 → 部件 + - 6位数 → 一级零部件 + - 8位数 → 二级零部件 + """ + + # type映射关系 + type_mapping = { + 2: '子系统', + 4: '部件', + 6: '一级零部件', + 8: '二级零部件' + } + + optimized_data = [] + stats = { + 'total': 0, + 'modified': 0, + 'unchanged': 0, + 'no_code': 0 + } + + for record in data: + stats['total'] += 1 + new_record = copy.deepcopy(record) + + # 检查是否存在properties和组成编码 + if 'properties' in record and '组成编码' in record['properties']: + code = str(record['properties']['组成编码']).strip() + + # 提取纯数字部分(去除可能的特殊字符) + code_digits = re.sub(r'[^\d]', '', code) + code_length = len(code_digits) + + # 根据位数判断type + if code_length in type_mapping: + expected_type = type_mapping[code_length] + current_type = record.get('type', '') + + if current_type != expected_type: + new_record['type'] = expected_type + stats['modified'] += 1 + print(f"【修正】{record['properties'].get('名称', '未知')}:{current_type} → {expected_type} (编码:{code})") + else: + stats['unchanged'] += 1 + else: + print(f"【警告】{record['properties'].get('名称', '未知')}:编码位数{code_length}不在映射范围内 (编码:{code})") + stats['unchanged'] += 1 + else: + stats['no_code'] += 1 + print(f"【跳过】{record.get('type', '未知')} - {record.get('properties', {}).get('名称', '未知')}:无组成编码字段") + + optimized_data.append(new_record) + + + return optimized_data + + + + +def is_fault_table_by_first_tr(table_body: str) -> bool: + if not isinstance(table_body, str): + return False + + # 非贪婪匹配第一个 ... + match = re.search(r']*>(.*?)', table_body, re.IGNORECASE | re.DOTALL) + if not match: + return False + + first_tr_html = match.group(1) + + # 提取所有 或 中的文本(简单去标签) + # 更健壮的做法是递归去除标签,但这里用正则足够 + text_in_first_tr = re.sub(r'<[^>]+>', '', first_tr_html) # 去除所有 HTML 标签 + + # 统一转为字符串并检查关键词 + text_lower = text_in_first_tr.lower() + keywords = ["故障现象", "故障原因", "维修项目"] + return all(kw in text_lower for kw in keywords) + + +def get_guzhang_chunk_bbox_and_removed_data(data): + title_keywords = {"故障"} # 可选:仍保留标题中有“故障”的约束 + results = [] + ids_to_remove = set() + record_map = {item["id"]: item for item in data} + + for ins in data: + if ins.get("type") == "table": + table_body = ins.get("table_body", "") + + # 核心判断:是否包含三个关键字段 + if is_fault_table_by_first_tr(table_body): + current_id = ins["id"] + + # 可选:向上找最近的标题(更智能),但若坚持用前3条也可保留 + # 这里先按你的原逻辑:取前3条 + 当前 + prev_ids = [current_id - 3, current_id - 2, current_id - 1] + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + return results, filtered_data + +async def openai_chat_aysnc(query: str, timeout: int = 180) -> str | None: + """异步调用 OpenAI 兼容 API(如本地部署的 Qwen、vLLM、Ollama 等)""" + try: + base_url = os.getenv("OPENAI_API_BASE", "http://192.168.0.111:9800/v1") + api_key = os.getenv("OPENAI_API_KEY", "none") + + client = AsyncOpenAI( + api_key=api_key, + base_url=base_url, + timeout=timeout # 整体请求超时(秒) + ) + + response = await client.chat.completions.create( + model="Qwen3.5-35B-A3B", + messages=[ + {"role": "user", "content": query}, + ], + temperature=0.1, + stream=False, + response_format={"type": "json_object"}, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + + except Exception as e: + print(f"调用 OpenAI API 时出错: {e}") + return None + finally: + # 可选:显式关闭客户端(通常不需要,但可避免警告) + await client.close() + +async def extract_wxindextable(chunk): + final_prompt = prompt_extract_repair_node_rela.replace("text",chunk) + raw_response =await OpenaiAPI.openai_chat_aysnc(final_prompt,timeout=420) + + if raw_response is None: + print("⚠️ 切片 API 调用失败") + return None + + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + json_result = safe_json_loads(cleaned) + return json_result + except Exception as e: + print(f"⚠️ 切片 JSON 解析失败: {e}") + print(f"原始响应: {repr(raw_response[:500])}") + return None + + +def extract_text_from_first_tr(html: str) -> str: + """提取 HTML 表格中第一个 内的文本(去除标签)""" + # if not isinstance(html, str): + # return "" + # match = re.search(r']*>(.*?)', html, re.IGNORECASE | re.DOTALL) + # if not match: + # return "" + # first_tr_content = match.group(1) + # 去除所有 HTML 标签 + text = re.sub(r'<[^>]+>', '', html) + return text.strip() + + +def matches_any_pattern(text: str, patterns: List[List[str]]) -> bool: + """检查文本是否包含任意一组关键词(全部命中)""" + if not text: + return False + text_lower = text.lower() + for pattern in patterns: + if all(keyword in text_lower for keyword in pattern): + return True + return False + + +def is_maintenance_table(table_body: str, patterns: List[List[str]]) -> bool: + """判断是否为维修项目表格:仅检查第一个 是否匹配任一模式""" + first_tr_text = extract_text_from_first_tr(table_body) + return matches_any_pattern(first_tr_text, patterns) + + +# ============================== +# 维修项目表格的关键词模式(可按需扩展) +# ============================== + +MAINTENANCE_TABLE_PATTERNS: List[List[str]] = [ + ["维修项目编号", "组成编码", "名称", "维修项目", "维修间隔期"], + ["故障现象", "编码", "维修内容", "周期"], + ["序号", "维修项", "标准", "频次"], # 示例:可继续添加业务变体 + ["设备名称", "维修级别", "维修项目编号", "维修间隔期"], # 示例:可继续添加业务变体 + ["设备名称", "设备型号"], # 示例:可继续添加业务变体 + ["维修项", "组成编码", "名称", "维修项目", "维修间隔期"], # 示例:可继续添加业务变体 + +] + + +# ============================== +# 主函数:提取维修项目表格及其后续内容组 +# ============================== + +def extract_maintenance_groups_and_remaining( + records: List[Dict[str, Any]], + patterns: List[List[str]] = MAINTENANCE_TABLE_PATTERNS, + max_following_for_last: int | None = None +) -> Tuple[List[List[Dict]], List[Dict]]: + groups = [] + current_group = None + used_ids = set() + + # 标记是否已经遇到第一个维修表格(用于跳过) + skipped_first = False + + for record in records: + is_start = ( + record.get("type") == "table" and + is_maintenance_table(record.get("table_body", ""), patterns) + ) + + if is_start: + # 如果是第一个维修表,跳过(不加入 groups,也不标记 used_ids) + if not skipped_first: + skipped_first = True + # 注意:这里不清空 current_group,因为前面不可能有 group(第一个 start) + current_group = None # 确保不会把之前的非 start 内容误加 + continue # 跳过这个 record,不加入任何 group + + # 从第二个维修表开始,才正常分组 + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + current_group = [record] + else: + if current_group is not None: + current_group.append(record) + + # 处理最后一个 group(仅当有有效 group 时) + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + # 限制最后一个 group 长度 + if groups and max_following_for_last is not None: + last_group = groups[-1] + max_len = max_following_for_last + 1 + if len(last_group) > max_len: + truncated = last_group[:max_len] + removed_ids = {r["id"] for r in last_group[max_len:]} + used_ids -= removed_ids + groups[-1] = truncated + + # remaining_records 包含所有未被 used_ids 标记的记录 + # 由于第一个 group 没有加入 used_ids,所以会保留在 remaining_records 中 + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + + +FAULT_TABLE_KEYWORDS_wxsm = ["故障现象", "故障原因", "维修人数", "维修工具", "排除步骤"] + +def is_fault_table_wxsm(table_body: str) -> bool: + if not isinstance(table_body, str): + return False + return all(kw in table_body for kw in FAULT_TABLE_KEYWORDS_wxsm) + + +def extract_fault_groups_and_remaining_wxsm( + records: List[Dict[str, Any]], +) -> Tuple[List[List[Dict]], List[Dict]]: + groups = [] + current_group = None + used_ids = set() + + for record in records: + is_start = ( + record.get("type") == "table" and + is_fault_table_wxsm(record.get("table_body", "")) + ) + + if is_start: + # 遇到新的故障表,先保存上一组 + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + # 开启新组 + current_group = [record] + else: + # 非故障表,追加到当前组 + if current_group is not None: + current_group.append(record) + + # 处理最后一组 + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + +def format_compose_code(val): + """将 int/float 型组成编码转换为偶数位字符串,不足偶数位则前补 0""" + if pd.isna(val): + return None + # 统一处理 int 和 float + if isinstance(val, (int, float)): + s = str(int(val)) # 101 / 101.0 → '101' + if len(s) % 2 != 0: # 奇数位 → 前补 0 + s = '0' + s # '101' → '0101' + return s + return str(val) + # 已经是字符串则直接返回 + + +async def get_repair_node_relation(input_pdf_path, data, prefix_url="http://192.168.0.111:9085"): + # 1. 初始化数据 ID + for idx, item in enumerate(data, start=1): + item["id"] = idx + + # 2. 数据预处理:获取故障组 and 清洗数据 + guzhang_groups, cleaned_data = get_guzhang_chunk_bbox_and_removed_data(data) + groups_wxxm, remaining_records = extract_maintenance_groups_and_remaining(cleaned_data) + groups_wxsm, remaining_records_wxsm =extract_fault_groups_and_remaining_wxsm(remaining_records) # 可选:先抽取故障表,进一步清洗数据 + print(f"维修项目表格总数量: {len(groups_wxxm)}") + print(f"维修说明表格总数量: {len(groups_wxsm)}") + groups = groups_wxxm + groups_wxsm # 合并维修项目表和维修说明表的结果,后续一起处理 + all_entity_results = [] + all_relation_results = [] + + final_filename = None + final_url = None + + if not groups_wxxm: + print("未找到符合条件的维修项目组,跳过后续处理。") + else: + for i, repair_group in enumerate(groups_wxxm): + try: + + print(f"开始处理第 {i+1} 个维修项目表") + # 获取内容和高亮区域 + content, highlight_list = get_content_bbox(repair_group) + if not content: + print(f"第 {i+1} 组:内容为空,跳过") + continue + html_obj = StringIO(content) + df_list = pd.read_html(html_obj, header=0) + + if not df_list: + print(f" ⚠️ 第 {i+1} 组未解析到表格,跳过") + continue + + df = df_list[0] + + # 清洗数据:删除全为空的行 + df.dropna(how='all', inplace=True) + + # 格式化组成编码 + if '组成编码' in df.columns and pd.api.types.is_numeric_dtype(df['组成编码']): + df['组成编码'] = df['组成编码'].apply(format_compose_code) + + # 转换为 JSON 列表 + json_data = df.to_json(orient='records', force_ascii=False) + result_list = json.loads(json_data) + + wx_bianhao = result_list[0].get("维修项目编号") + wx_mingcheng = result_list[0].get("维修项目") + device_bianma = result_list[0].get("组成编码") + device_name = result_list[0].get("名称") + highlight_filename, most_common_page, filename = highlight_pdf_file(input_pdf_path, highlight_list) + url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + if not wx_bianhao or not wx_mingcheng or not device_bianma or not device_name: + print("html解析不成功,需要大模型進行抽取") + result = await extract_wxindextable(content) + if result is None: + continue + entities = result.get("entities", []) + + if not isinstance(entities, list): + print(f"第 {i+1} 组:entities 字段格式异常,跳过") + continue + + relationships = result.get("relationships", []) + # 更新全局文件信息 (用于最后创建手册节点) + + for entity in entities: + if entity['type'] == '维修项目': + entity["properties"]["内容"] = content + for entity in entities: + # 构造原始数据对象 (List of Dict) + source_data_list = [{ + "filename": filename, + "info": content, + "url": url + }] + + # 2. 【关键修改】将列表序列化为 JSON 字符串 + # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + + # 确保 properties 存在且是字典 + if "properties" not in entity or not isinstance(entity["properties"], dict): + entity["properties"] = {} + + # 3. 赋值字符串而不是对象列表 + entity["properties"]["knowledge_source"] = knowledge_source_str + all_entity_results.extend(entities) + all_relation_results.extend(relationships) + else: + source_data_list = [{ + "filename": filename, + "info": content, + "url":url + }] + + # 2. 【关键修改】将列表序列化为 JSON 字符串 + # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + wxentity = { + "type" : "维修项目", + "properties":{ + "名称" : wx_mingcheng, + "编号" : wx_bianhao, + "内容" : content, + "knowledge_source" :knowledge_source_str + } + } + deviceentity ={ + "type" : "设备", + "properties":{ + "名称" : device_name, + "组成编码" : device_bianma, + "维修项目名称" : wx_mingcheng, + "维修项目编号" : wx_bianhao, + "knowledge_source" :knowledge_source_str + } + } + all_entity_results.append(wxentity) + all_entity_results.append(deviceentity) + + except Exception as e: + print(f"处理第 {i+1} 组时发生未预期错误: {e}") + import traceback + traceback.print_exc() + continue + + if not groups_wxsm: + print("未找到符合条件的维修说明表,跳过后续处理。") + else: + for i, repair_group in enumerate(groups_wxsm): + try: + + print(f"开始处理第 {i+1} 个维修说明表") + # 获取内容和高亮区域 + content, highlight_list = get_content_bbox(repair_group) + if not content: + print(f"第 {i+1} 组:内容为空,跳过") + continue + html_obj = StringIO(content) + df_list = pd.read_html(html_obj, header=0) + + if not df_list: + print(f" ⚠️ 第 {i+1} 组未解析到表格,跳过") + continue + + df = df_list[0] + + # 清洗数据:删除全为空的行 + df.dropna(how='all', inplace=True) + + # 转换为 JSON 列表 + json_data = df.to_json(orient='records', force_ascii=False) + result_list = json.loads(json_data) + wx_bianhao = result_list[0].get("维修项目编号") + wx_mingcheng = result_list[0].get("维修项目") + highlight_filename, most_common_page, filename = highlight_pdf_file(input_pdf_path, highlight_list) + url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + if not wx_bianhao or not wx_mingcheng: + result = await extract_wxindextable(content) + if result is None: + continue + entities = result.get("entities", []) + + if not isinstance(entities, list): + print(f"第 {i+1} 组:entities 字段格式异常,跳过") + continue + + relationships = result.get("relationships", []) + # 更新全局文件信息 (用于最后创建手册节点) + + for entity in entities: + if entity['type'] == '维修项目': + entity["properties"]["内容"] = 'content' + for entity in entities: + # 构造原始数据对象 (List of Dict) + source_data_list = [{ + "filename": filename, + "info": content, + "url": url + }] + + # 2. 【关键修改】将列表序列化为 JSON 字符串 + # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + + # 确保 properties 存在且是字典 + if "properties" not in entity or not isinstance(entity["properties"], dict): + entity["properties"] = {} + + # 3. 赋值字符串而不是对象列表 + entity["properties"]["knowledge_source"] = knowledge_source_str + all_entity_results.extend(entities) + all_relation_results.extend(relationships) + else: + source_data_list = [{ + "filename": filename, + "info": content, + "url": url + }] + + # 2. 【关键修改】将列表序列化为 JSON 字符串 + # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + wxentity = { + "type" : "维修项目", + "properties":{ + "名称" : wx_mingcheng, + "编号" : wx_bianhao, + "内容" : content, + "knowledge_source" :knowledge_source_str + } + } + all_entity_results.append(wxentity) + + + except Exception as e: + print(f"处理第 {i+1} 组时发生未预期错误: {e}") + import traceback + traceback.print_exc() + continue + + + # if not groups: + # print("未找到符合条件的维修项目组,跳过后续处理。") + # else: + # # 3. 遍历每个维修项目组进行抽取 + # for i, repair_group in enumerate(groups): + # try: + # print(f"开始处理第 {i+1} 个维修项目表") + + # # 获取内容和高亮区域 + # content, highlight_list = get_content_bbox(repair_group) + # if not content: + # print(f"第 {i+1} 组:内容为空,跳过") + # continue + # result = await extract_wxindextable(content) + # # highlight_filename, most_common_page,filename = highlight_pdf_file(input_pdf_path,highlight_list) + # # url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + + # if result is None: + # continue + # entities = result.get("entities", []) + + # if not isinstance(entities, list): + # print(f"第 {i+1} 组:entities 字段格式异常,跳过") + # continue + + # relationships = result.get("relationships", []) + # highlight_filename, most_common_page, filename = highlight_pdf_file(input_pdf_path, highlight_list) + # url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + + # # 更新全局文件信息 (用于最后创建手册节点) + + # for entity in entities: + # if entity['type'] == '维修项目': + # entity["properties"]["内容"] = content + # for entity in entities: + # # 构造原始数据对象 (List of Dict) + # source_data_list = [{ + # "filename": filename, + # "info": content, + # "url": url + # }] + + # # 2. 【关键修改】将列表序列化为 JSON 字符串 + # # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + # knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + + # # 确保 properties 存在且是字典 + # if "properties" not in entity or not isinstance(entity["properties"], dict): + # entity["properties"] = {} + + # # 3. 赋值字符串而不是对象列表 + # entity["properties"]["knowledge_source"] = knowledge_source_str + # # 累积结果 + # all_entity_results.extend(entities) + # all_relation_results.extend(relationships) + + + # except Exception as e: + # print(f"处理第 {i+1} 组时发生未预期错误: {e}") + # import traceback + # traceback.print_exc() + # continue + # 5. 最终优化 + # all_entity_results = optimize_component_type(all_entity_results) + + return all_entity_results, all_relation_results + +""" +实体:设备、子设备、维修项目 +关系:设备-维修时使用-维修项目 +""" + +if __name__ == "__main__": + file_path = '/app/wxceshi/files/雷达/output/101-0440011-B04001_HLJP-349型跟踪雷达维修说明书-秘密_content_list.json' + input_pdf_path = "/app/wxceshi/files/雷达/101-0440011-B04001_HLJP-349型跟踪雷达维修说明书-秘密.pdf" + output_json_path = '/app/wxceshi/files/雷达/output/维修细目表抽取结果.json' + + try: + with open(file_path, 'r', encoding='utf-8') as file: + data = json.load(file) + except Exception as e: + print(f"读取 JSON 文件时出错:{e}") + data = [] + all_entity_results, all_relation_results = asyncio.run( + get_repair_node_relation(input_pdf_path, data=data) + ) + length_entity = len(all_entity_results) + length_relation = len(all_relation_results) + + print(f"抽取{length_entity}个实体,抽取{length_relation}个关系") + result = { + "entities": all_entity_results, + "relations": all_relation_results + } + for ins in all_entity_results: + print(ins) + print(11111111111111111) + + # 保存为 JSON 文件 + try: + with open(output_json_path, 'w', encoding='utf-8') as f: + json.dump(result, f, ensure_ascii=False, indent=4) + print(f"结果已保存至:{output_json_path}") + except Exception as e: + print(f"保存 JSON 文件时出错:{e}") + + + diff --git a/kg_build_0409/extract_text.py b/kg_build_0409/extract_text.py new file mode 100644 index 0000000..9169f70 --- /dev/null +++ b/kg_build_0409/extract_text.py @@ -0,0 +1,338 @@ +import json +import fitz # PyMuPDF +import os +from collections import Counter +from kg_build.Prompt import Prompt_guzhang +from openai import OpenAI + + +def get_compose_chunk_bbox_and_removed_data(data): + """ + 返回: + - 符合条件的故障表分组(每组 [前前, 前, 当前]) + - 从原始 data 中移除了所有相关记录后的新 data 列表 + """ + title = "组成" + + # 支持多个 label 模式(可扩展) + labels = [ + '', + # 可在此添加更多变体,例如: + # '
序号组成部分功能数量
1
', + # '
序号故障现象故障原因维修项目
', + ] + + # 构建 id -> record 映射 + record_map = {item["id"]: item for item in data} + + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + # 检查 caption 是否包含 "故障表" + caption_has_title = any(title in caption for caption in ins.get("table_caption", [])) + + # 检查 body 是否匹配任意一个 label + body = ins.get("table_body", "") + body_matches_any_label = any(label in body for label in labels) + + if caption_has_title and body_matches_any_label: + current_id = ins["id"] + prev_ids = [current_id - 2, current_id - 1] + + # 收集要移除的 ID(前两条 + 当前) + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + + # 构建分组 + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + # 过滤原始 data + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + + return results, filtered_data + +def get_tujiecompose_chunk_bbox_and_removed_data(data): + """ + 返回: + - 符合条件的故障表分组(每组 [前前, 前, 当前]) + - 从原始 data 中移除了所有相关记录后的新 data 列表 + """ + title = "组成" + + # 支持多个 label 模式(可扩展) + labels = [ + '
序号故障现象故障原因维修项目
', + '
组成编码名称是否为关重件是否为寿命件
' + # 可在此添加更多变体,例如: + # '
序号组成部分功能数量
1
', + # '
序号故障现象故障原因维修项目
', + ] + + # 构建 id -> record 映射 + record_map = {item["id"]: item for item in data} + + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + # 检查 caption 是否包含 "故障表" + caption_has_title = any(title in caption for caption in ins.get("table_caption", [])) + + # 检查 body 是否匹配任意一个 label + body = ins.get("table_body", "") + body_matches_any_label = any(label in body for label in labels) + + if caption_has_title and body_matches_any_label: + current_id = ins["id"] + prev_ids = [current_id - 2, current_id - 1] + + # 收集要移除的 ID(前两条 + 当前) + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + + # 构建分组 + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + # 过滤原始 data + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + + return results, filtered_data + +def get_guzhang_chunk_bbox_and_removed_data(data): + title = "故障表" + label = "
序号故障现象故障原因维修项目
" + + record_map = {item["id"]: item for item in data} + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + caption_has_title = any(title in caption for caption in ins.get("table_caption", [])) + body_has_label = label in ins.get("table_body", "") + if caption_has_title and body_has_label: + current_id = ins["id"] + prev_ids = [current_id - 2, current_id - 1] + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + return results, filtered_data + + +START_MARKERS = [ + # 标准格式(带 rowspan/colspan) + "
序号故障现象故障原因维修项目
", + + # 可在此添加其他格式,例如: + # "
维修项目编号组成编码名称维修项目维修间隔期
", +] + +def extract_maintenance_groups_and_remaining(records, markers=START_MARKERS, max_following_for_last=None): + """ + 普通起始标记:组 = [start, ..., next_start - 1] + 最后一个起始标记:组 = [start, ..., start + max_following_for_last] (若指定) + """ + groups = [] + current_group = None + used_ids = set() + + for record in records: + body = record.get("table_body", "") + is_start = (record.get("type") == "table" and + any(marker in body for marker in markers)) + + if is_start: + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + current_group = [record] + else: + if current_group is not None: + # 如果指定了 max_following_for_last,且这是最后一个组(暂时不知道是不是最后一个) + # 我们无法在遍历时知道“这是不是最后一个起始标记” + # 所以更好的办法是:先按原逻辑分组,再处理最后一个组 + current_group.append(record) + + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + # —————— 关键:后处理最后一个组 —————— + if groups and max_following_for_last is not None: + last_group = groups[-1] + if len(last_group) > max_following_for_last + 1: # +1 包含起始记录 + truncated = last_group[:max_following_for_last + 1] + # 更新 used_ids:移除被截掉的 ID + removed_ids = {r["id"] for r in last_group[max_following_for_last + 1:]} + used_ids -= removed_ids + groups[-1] = truncated + + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + + +START_MARKERS_ope = [ + '
维修项目编号组成编码名称维修项目维修间隔期
', + '
项目编号操作项目
', + '
项目编号操作项目
' +] + +def extract_operation_groups_and_remaining(records, markers=START_MARKERS_ope, max_following_for_last=None): + """ + 普通起始标记:组 = [start, ..., next_start - 1] + 最后一个起始标记:组 = [start, ..., start + max_following_for_last] (若指定) + """ + groups = [] + current_group = None + used_ids = set() + + for record in records: + body = record.get("table_body", "") + is_start = (record.get("type") == "table" and + any(marker in body for marker in markers)) + + if is_start: + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + current_group = [record] + else: + if current_group is not None: + # 如果指定了 max_following_for_last,且这是最后一个组(暂时不知道是不是最后一个) + # 我们无法在遍历时知道“这是不是最后一个起始标记” + # 所以更好的办法是:先按原逻辑分组,再处理最后一个组 + current_group.append(record) + + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + # —————— 关键:后处理最后一个组 —————— + if groups and max_following_for_last is not None: + last_group = groups[-1] + if len(last_group) > max_following_for_last + 1: # +1 包含起始记录 + truncated = last_group[:max_following_for_last + 1] + # 更新 used_ids:移除被截掉的 ID + removed_ids = {r["id"] for r in last_group[max_following_for_last + 1:]} + used_ids -= removed_ids + groups[-1] = truncated + + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + + + +# def get_chunk_filter(data,max_length=7000): +# for idx, item in enumerate(data, start=1): +# item["id"] = idx +# groups, remaining_records_repair = extract_maintenance_groups_and_remaining(data) +# groups, remaining_records_operation = extract_operation_groups_and_remaining(remaining_records_repair) +# groups, remaining_records_compose = get_compose_chunk_bbox_and_removed_data(remaining_records_operation) +# groups, remaining_records_composetujie =get_tujiecompose_chunk_bbox_and_removed_data(remaining_records_compose) +# results, filtered_data=get_guzhang_chunk_bbox_and_removed_data(remaining_records_composetujie) +# res = filter_content_bbox(filtered_data,max_length=max_length) +# return res +def get_chunk_filter(data,max_length=10000): + """ + 将 data 中的 text/table/image 内容按字符长度分块(每块不超过 max_length), + 返回 [{"content": str, "highlight_list": list}, ...] + """ + chunks = [] + current_content = "" + current_highlight_list = [] + + def _flush_chunk(): + """内部函数:将当前内容打包进 chunks,并重置""" + if current_content or current_highlight_list: + chunks.append({ + "content": current_content, + "highlight_list": current_highlight_list.copy() + }) + + for ins in data: + if "type" not in ins: + continue + + added_content = "" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + + if ins["type"] == "text": + text_content = ins.get("text", "") + added_content = text_content + "\n" + + elif ins["type"] == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + + if isinstance(image_caption, list): + image_caption = "\n".join(str(item) for item in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + + if image_caption or img_path: + added_content = image_caption + "\n" + img_path + "\n" + else: + continue # 跳过空图像项 + else: + continue + + # 检查加上 added_content 后是否超限 + if len(current_content) + len(added_content) > max_length: + # 如果当前块非空,先 flush + if current_content: + _flush_chunk() + current_content = "" + current_highlight_list = [] + + # 如果单个 added_content 超过 max_length,仍需保留(避免丢弃) + if len(added_content) > max_length: + # 强制截断或直接放入(这里选择直接放入,避免信息丢失) + current_content = added_content[:max_length] + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + _flush_chunk() + # 剩余部分?此处简化处理:忽略超长部分(或可递归拆分,但复杂) + continue + else: + current_content = added_content + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + else: + current_content += added_content + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + + # 处理最后一块 + if current_content or current_highlight_list: + chunks.append({ + "content": current_content, + "highlight_list": current_highlight_list + }) + + return chunks + +# if __name__ == "__main__": +# file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/122-06A0014-B01001_发动机-维修手册_content_list.json' +# input_pdf_path = "/storage01/home/hdf/project/wxkgrag/kgextract/know/122-06A0014-B01001_发动机-维修手册_highlighted_fdb9e9db-98d2-4ef6-bc72-52f875453f85.pdf" +# try: +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) +# except Exception as e: +# print(f"读取 JSON 文件时出错:{e}") +# data = [] +# res = get_chunk_filter(data=data) +# for ins in res: +# print(ins) +# print(11111111111111111) + diff --git a/kg_build_0409/extract_util.py b/kg_build_0409/extract_util.py new file mode 100644 index 0000000..af5e134 --- /dev/null +++ b/kg_build_0409/extract_util.py @@ -0,0 +1,406 @@ +import json +import fitz # PyMuPDF +import os +import fitz +from collections import Counter +import uuid +import re +import logging +# 配置 logger +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", + datefmt="%Y-%m-%d %H:%M:%S" +) +logger = logging.getLogger(__name__) +def safe_json_loads(s: str): + try: + return json.loads(s) + except json.JSONDecodeError as e: + # 尝试修复常见问题 + s = s.replace("\\n", "\\\n").replace("\r", "\\r").replace("\t", "\\t") + # 或者直接清理非法字符 + s = re.sub(r'[\x00-\x1f\x7f]', '', s) # 移除控制字符 + try: + return json.loads(s) + except: + raise e + + +def highlight_pdf_file(input_pdf_path, highlights, color=(1, 1, 0)): + """ + 在单个 PDF 文件的多个位置添加高亮注释。 + 逻辑融合: + 1. 输入参数与保存路径遵循参考代码 B (输出到 /app/files/uploads_v1)。 + 2. 坐标处理遵循参考代码 A (假设 bbox 为 0-1000 归一化坐标,需转换为实际像素坐标)。 + 3. 返回值格式遵循参考代码 B (highlight_filename, most_common_page_1based, original_filename)。 + + :param input_pdf_path: 输入 PDF 文件路径(字符串) + :param highlights: 高亮区域列表,每个元素为 dict,格式: + {"page_idx": int, "bbox": [x0, y0, x1, y1]} + 注意:bbox 应为 0-1000 归一化坐标 + :param color: 高亮颜色,RGB 元组,范围 0~1,例如黄色 (1, 1, 0) + :return: tuple (highlight_filename: str, most_common_page: int or None, original_filename: str) + """ + unique_id = uuid.uuid4() + + # 调试打印 (参照参考代码 B) + print(input_pdf_path) + logger.info(input_pdf_path) + + if not highlights: + logger.info("⚠️ 无高亮区域,跳过处理。") + filename = os.path.basename(input_pdf_path) + return filename, None, filename + + # 提取所有有效的 page_idx 用于统计 + valid_page_indices = [] + + # 打开 PDF + try: + doc = fitz.open(input_pdf_path) + logger.info(f"已打开 PDF: {input_pdf_path}") + except Exception as e: + logger.info(f"❌ 无法打开 PDF: {e}") + filename = os.path.basename(input_pdf_path) + return filename, None, filename + + for item in highlights: + page_idx = item.get("page_idx") + bbox = item.get("bbox") + + # 基本校验 (参照参考代码 B) + if page_idx is None or bbox is None: + logger.info(f"⚠️ 跳过高亮项(缺少 page_idx 或 bbox): {item}") + continue + if not (0 <= page_idx < doc.page_count): + logger.info(f"⚠️ 页面索引 {page_idx} 超出范围(总页数: {doc.page_count}),跳过。") + continue + if len(bbox) != 4: + logger.info(f"⚠️ bbox 格式错误(需 [x0,y0,x1,y1]): {bbox},跳过。") + continue + + try: + page = doc[page_idx] + + # --- 核心逻辑:坐标转换 (参照参考代码 A) --- + # 假设输入 bbox 是 0-1000 的归一化坐标 + page_rect = page.rect + page_width = page_rect.width + page_height = page_rect.height + + # 公式:实际坐标 = (归一化坐标 / 1000) * 页面实际尺寸 + x0 = (bbox[0] / 1000) * page_width + y0 = (bbox[1] / 1000) * page_height + x1 = (bbox[2] / 1000) * page_width + y1 = (bbox[3] / 1000) * page_height + + rect = fitz.Rect(x0, y0, x1, y1) + + # 添加高亮标注 + highlight_annot = page.add_highlight_annot(rect) + highlight_annot.set_colors(stroke=color) + highlight_annot.update() + + valid_page_indices.append(page_idx) # 记录成功处理的 page_idx + except Exception as e: + logger.info(f"❌ 在 page={page_idx}, bbox={bbox} 添加高亮失败: {e}") + + # 确定输出路径 (参照参考代码 B 的固定路径) + filename = os.path.basename(input_pdf_path) + base, ext = os.path.splitext(filename) + output_dir = "/app/files/uploads_v1" + + # 确保目录存在 + os.makedirs(output_dir, exist_ok=True) + + output_pdf_path = os.path.join(output_dir, f"{base}_{unique_id}{ext}") + highlight_filename = f"{base}_{unique_id}{ext}" + + # 保存 PDF (参照参考代码 B 的参数) + doc.save(output_pdf_path, garbage=3, deflate=True) + doc.close() + + logger.info(f"✅ 高亮完成!已保存至: {output_pdf_path}") + + # 统计最常出现的 page_idx (参照参考代码 B 的逻辑,返回 1-based) + most_common_page = None + if valid_page_indices: + counter = Counter(valid_page_indices) + most_common_page_0based, _ = counter.most_common(1)[0] + most_common_page = most_common_page_0based + 1 # 转换为 1-based 页码 + + # 返回值格式:(highlight_filename, most_common_page, original_filename) + return highlight_filename, most_common_page, filename + + +def get_content_bbox(data): + content = "" + highlight_list = [] + for ins in data: + if "type" not in ins: + continue + + if ins["type"] == "text": + text_content = ins.get("text", "") + content += text_content + "\n" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + highlight_list.append({ + "page_idx": page_idx, + "bbox": bbox + }) + + elif ins["type"] == "table": + table_caption = ins.get("table_caption") + table_body = ins.get("table_body") + + # 处理 table_caption:可能是 list 或 str + caption_str = "" + if table_caption: + if isinstance(table_caption, list): + caption_str = "\n".join(str(c) for c in table_caption) + else: + caption_str = str(table_caption) + + content += caption_str + "\n" + (table_body or "") + "\n" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + highlight_list.append({ + "page_idx": page_idx, + "bbox": bbox + }) + + elif ins["type"] == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + + # 关键修复:处理 image_caption 可能是 list 的情况 + if isinstance(image_caption, list): + image_caption = "\n".join(str(item) for item in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + + if image_caption or img_path: + content += image_caption + "\n" + img_path + "\n" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + highlight_list.append({ + "page_idx": page_idx, + "bbox": bbox + }) + else: + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + highlight_list.append({ + "page_idx": page_idx, + "bbox": bbox + }) + + return content, highlight_list + +#获取指定表格过滤后的文本 +def filter_content_bbox(data, max_length=3000): + """ + 将 data 中的 text/table/image 内容按字符长度分块(每块不超过 max_length), + 返回 [{"content": str, "highlight_list": list}, ...] + """ + chunks = [] + current_content = "" + current_highlight_list = [] + + def _flush_chunk(): + """内部函数:将当前内容打包进 chunks,并重置""" + if current_content or current_highlight_list: + chunks.append({ + "content": current_content, + "highlight_list": current_highlight_list.copy() + }) + + for ins in data: + if "type" not in ins: + continue + + added_content = "" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1)+1 + + if ins["type"] == "text": + text_content = ins.get("text", "") + added_content = text_content + "\n" + + elif ins["type"] == "table": + table_caption = ins.get("table_caption") + table_body = ins.get("table_body") + + caption_str = "" + if table_caption: + if isinstance(table_caption, list): + caption_str = "\n".join(str(c) for c in table_caption) + else: + caption_str = str(table_caption) + + added_content = caption_str + "\n" + (table_body or "") + "\n" + + elif ins["type"] == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + + if isinstance(image_caption, list): + image_caption = "\n".join(str(item) for item in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + + if image_caption or img_path: + added_content = image_caption + "\n" + img_path + "\n" + else: + continue # 跳过空图像项 + else: + continue + + # 检查加上 added_content 后是否超限 + if len(current_content) + len(added_content) > max_length: + # 如果当前块非空,先 flush + if current_content: + _flush_chunk() + current_content = "" + current_highlight_list = [] + + # 如果单个 added_content 超过 max_length,仍需保留(避免丢弃) + if len(added_content) > max_length: + # 强制截断或直接放入(这里选择直接放入,避免信息丢失) + current_content = added_content[:max_length] + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + _flush_chunk() + # 剩余部分?此处简化处理:忽略超长部分(或可递归拆分,但复杂) + continue + else: + current_content = added_content + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + else: + current_content += added_content + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + + # 处理最后一块 + if current_content or current_highlight_list: + chunks.append({ + "content": current_content, + "highlight_list": current_highlight_list + }) + + return chunks + +import json + +def data_replace(data, host_ip: str,port:int): + """ + 遍历 data 列表,若元素包含 'img_path' 字段,则为其添加前缀。 + """ + for ins in data: + if isinstance(ins, dict) and "img_path" in ins: + # 原路径可能是相对路径,如 'images/xxx.jpg' + original_path = ins["img_path"] + # 拼接完整 URL + ins["img_path"] = f"http://{host_ip}:{port}/output/{original_path}" + # 可选:打印调试信息 + return data + +def get_most_common_page(highlights): + """从高亮列表计算最常出现的页码(1-based),不做任何文件 I/O""" + valid_page_indices = [ + item["page_idx"] for item in highlights + if item.get("page_idx") is not None + ] + if not valid_page_indices: + return None + counter = Counter(valid_page_indices) + most_common_0based, _ = counter.most_common(1)[0] + return most_common_0based + 1 + + +def highlight_pdf_file_batch(input_pdf_path, all_highlights, color=(1, 1, 0), output_filename=None): + """ + 批量高亮:将所有表格的高亮区域一次性写入 PDF,只打开/保存一次。 + + :param input_pdf_path: 原始 PDF 路径 + :param all_highlights: 合并后的所有高亮列表 List[{"page_idx": int, "bbox": [...]}] + :param output_filename: 可选,指定输出文件名(不含目录);不传则自动生成 + :return: (highlight_filename, filename) + """ + filename = os.path.basename(input_pdf_path) + if output_filename is None: + unique_id = uuid.uuid4() + base, ext = os.path.splitext(filename) + output_filename = f"{base}_{unique_id}{ext}" + + if not all_highlights: + return filename, filename + + try: + doc = fitz.open(input_pdf_path) + except Exception as e: + print(f"❌ 无法打开 PDF: {e}") + return filename, filename + + for item in all_highlights: + page_idx = item.get("page_idx") + bbox = item.get("bbox") + if page_idx is None or bbox is None: + continue + if not (0 <= page_idx < doc.page_count): + continue + if len(bbox) != 4: + continue + try: + page = doc[page_idx] + page_rect = page.rect + x0 = (bbox[0] / 1000) * page_rect.width + y0 = (bbox[1] / 1000) * page_rect.height + x1 = (bbox[2] / 1000) * page_rect.width + y1 = (bbox[3] / 1000) * page_rect.height + rect = fitz.Rect(x0, y0, x1, y1) + annot = page.add_highlight_annot(rect) + annot.set_colors(stroke=color) + annot.update() + except Exception as e: + print(f"❌ 添加高亮失败 page={page_idx}: {e}") + + output_dir = "/app/files/uploads_v1" + os.makedirs(output_dir, exist_ok=True) + highlight_filename = output_filename + output_pdf_path = os.path.join(output_dir, highlight_filename) + doc.save(output_pdf_path, garbage=3, deflate=True) + doc.close() + print(f"✅ 批量高亮完成,已保存至: {output_pdf_path}") + return highlight_filename, filename + + +# if __name__ == "__main__": +# host_ip = "192.168.0.46" # 👈 替换为你实际的主机 IP 或域名 + +# file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/122-06A0014-B01001_发动机-维修手册_content_list.json' +# try: +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) +# except Exception as e: +# print(f"读取 JSON 文件时出错:{e}") +# data = [] + +# # 修改 img_path 字段 +# data_replace(data=data, host_ip=host_ip) + +# # 可选:保存回文件或打印验证 +# # 示例:打印所有包含 img_path 的项 +# for item in data: +# if "img_path" in item: +# print(item["img_path"]) diff --git a/kg_build_0409/extract_util_0331.py b/kg_build_0409/extract_util_0331.py new file mode 100644 index 0000000..4bdfb17 --- /dev/null +++ b/kg_build_0409/extract_util_0331.py @@ -0,0 +1,332 @@ +import json +import fitz # PyMuPDF +import os +import fitz +from collections import Counter +import uuid +import re +def safe_json_loads(s: str): + try: + return json.loads(s) + except json.JSONDecodeError as e: + # 尝试修复常见问题 + s = s.replace("\\n", "\\\n").replace("\r", "\\r").replace("\t", "\\t") + # 或者直接清理非法字符 + s = re.sub(r'[\x00-\x1f\x7f]', '', s) # 移除控制字符 + try: + return json.loads(s) + except: + raise e + +import os +import uuid +import fitz # PyMuPDF +from collections import Counter + +def highlight_pdf_file(input_pdf_path, highlights, color=(1, 1, 0)): + """ + 在单个 PDF 文件的多个位置添加高亮注释。 + 逻辑融合: + 1. 输入参数与保存路径遵循参考代码 B (输出到 /app/files/uploads_v1)。 + 2. 坐标处理遵循参考代码 A (假设 bbox 为 0-1000 归一化坐标,需转换为实际像素坐标)。 + 3. 返回值格式遵循参考代码 B (highlight_filename, most_common_page_1based, original_filename)。 + + :param input_pdf_path: 输入 PDF 文件路径(字符串) + :param highlights: 高亮区域列表,每个元素为 dict,格式: + {"page_idx": int, "bbox": [x0, y0, x1, y1]} + 注意:bbox 应为 0-1000 归一化坐标 + :param color: 高亮颜色,RGB 元组,范围 0~1,例如黄色 (1, 1, 0) + :return: tuple (highlight_filename: str, most_common_page: int or None, original_filename: str) + """ + unique_id = uuid.uuid4() + + # 调试打印 (参照参考代码 B) + print(input_pdf_path) + print(111111111111111111111111111111) + + if not highlights: + print("⚠️ 无高亮区域,跳过处理。") + filename = os.path.basename(input_pdf_path) + return filename, None, filename + + # 提取所有有效的 page_idx 用于统计 + valid_page_indices = [] + + # 打开 PDF + try: + doc = fitz.open(input_pdf_path) + except Exception as e: + print(f"❌ 无法打开 PDF: {e}") + filename = os.path.basename(input_pdf_path) + return filename, None, filename + + for item in highlights: + page_idx = item.get("page_idx") + bbox = item.get("bbox") + + # 基本校验 (参照参考代码 B) + if page_idx is None or bbox is None: + print(f"⚠️ 跳过高亮项(缺少 page_idx 或 bbox): {item}") + continue + if not (0 <= page_idx < doc.page_count): + print(f"⚠️ 页面索引 {page_idx} 超出范围(总页数: {doc.page_count}),跳过。") + continue + if len(bbox) != 4: + print(f"⚠️ bbox 格式错误(需 [x0,y0,x1,y1]): {bbox},跳过。") + continue + + try: + page = doc[page_idx] + + # --- 核心逻辑:坐标转换 (参照参考代码 A) --- + # 假设输入 bbox 是 0-1000 的归一化坐标 + page_rect = page.rect + page_width = page_rect.width + page_height = page_rect.height + + # 公式:实际坐标 = (归一化坐标 / 1000) * 页面实际尺寸 + x0 = (bbox[0] / 1000) * page_width + y0 = (bbox[1] / 1000) * page_height + x1 = (bbox[2] / 1000) * page_width + y1 = (bbox[3] / 1000) * page_height + + rect = fitz.Rect(x0, y0, x1, y1) + + # 添加高亮标注 + highlight_annot = page.add_highlight_annot(rect) + highlight_annot.set_colors(stroke=color) + highlight_annot.update() + + valid_page_indices.append(page_idx) # 记录成功处理的 page_idx + except Exception as e: + print(f"❌ 在 page={page_idx}, bbox={bbox} 添加高亮失败: {e}") + + # 确定输出路径 (参照参考代码 B 的固定路径) + filename = os.path.basename(input_pdf_path) + base, ext = os.path.splitext(filename) + output_dir = "/app/files/uploads_v1" + + # 确保目录存在 + os.makedirs(output_dir, exist_ok=True) + + output_pdf_path = os.path.join(output_dir, f"{base}_{unique_id}{ext}") + highlight_filename = f"{base}_{unique_id}{ext}" + + # 保存 PDF (参照参考代码 B 的参数) + doc.save(output_pdf_path, garbage=3, deflate=True) + doc.close() + + print(f"✅ 高亮完成!已保存至: {output_pdf_path}") + + # 统计最常出现的 page_idx (参照参考代码 B 的逻辑,返回 1-based) + most_common_page = None + if valid_page_indices: + counter = Counter(valid_page_indices) + most_common_page_0based, _ = counter.most_common(1)[0] + most_common_page = most_common_page_0based + 1 # 转换为 1-based 页码 + + # 返回值格式:(highlight_filename, most_common_page, original_filename) + return highlight_filename, most_common_page, filename + + +def get_content_bbox(data): + content = "" + highlight_list = [] + for ins in data: + if "type" not in ins: + continue + + if ins["type"] == "text": + text_content = ins.get("text", "") + content += text_content + "\n" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + highlight_list.append({ + "page_idx": page_idx, + "bbox": bbox + }) + + elif ins["type"] == "table": + table_caption = ins.get("table_caption") + table_body = ins.get("table_body") + + # 处理 table_caption:可能是 list 或 str + caption_str = "" + if table_caption: + if isinstance(table_caption, list): + caption_str = "\n".join(str(c) for c in table_caption) + else: + caption_str = str(table_caption) + + content += caption_str + "\n" + (table_body or "") + "\n" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + highlight_list.append({ + "page_idx": page_idx, + "bbox": bbox + }) + + elif ins["type"] == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + + # 关键修复:处理 image_caption 可能是 list 的情况 + if isinstance(image_caption, list): + image_caption = "\n".join(str(item) for item in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + + if image_caption or img_path: + content += image_caption + "\n" + img_path + "\n" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + highlight_list.append({ + "page_idx": page_idx, + "bbox": bbox + }) + else: + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + highlight_list.append({ + "page_idx": page_idx, + "bbox": bbox + }) + + return content, highlight_list + +#获取指定表格过滤后的文本 +def filter_content_bbox(data, max_length=3000): + """ + 将 data 中的 text/table/image 内容按字符长度分块(每块不超过 max_length), + 返回 [{"content": str, "highlight_list": list}, ...] + """ + chunks = [] + current_content = "" + current_highlight_list = [] + + def _flush_chunk(): + """内部函数:将当前内容打包进 chunks,并重置""" + if current_content or current_highlight_list: + chunks.append({ + "content": current_content, + "highlight_list": current_highlight_list.copy() + }) + + for ins in data: + if "type" not in ins: + continue + + added_content = "" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1)+1 + + if ins["type"] == "text": + text_content = ins.get("text", "") + added_content = text_content + "\n" + + elif ins["type"] == "table": + table_caption = ins.get("table_caption") + table_body = ins.get("table_body") + + caption_str = "" + if table_caption: + if isinstance(table_caption, list): + caption_str = "\n".join(str(c) for c in table_caption) + else: + caption_str = str(table_caption) + + added_content = caption_str + "\n" + (table_body or "") + "\n" + + elif ins["type"] == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + + if isinstance(image_caption, list): + image_caption = "\n".join(str(item) for item in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + + if image_caption or img_path: + added_content = image_caption + "\n" + img_path + "\n" + else: + continue # 跳过空图像项 + else: + continue + + # 检查加上 added_content 后是否超限 + if len(current_content) + len(added_content) > max_length: + # 如果当前块非空,先 flush + if current_content: + _flush_chunk() + current_content = "" + current_highlight_list = [] + + # 如果单个 added_content 超过 max_length,仍需保留(避免丢弃) + if len(added_content) > max_length: + # 强制截断或直接放入(这里选择直接放入,避免信息丢失) + current_content = added_content[:max_length] + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + _flush_chunk() + # 剩余部分?此处简化处理:忽略超长部分(或可递归拆分,但复杂) + continue + else: + current_content = added_content + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + else: + current_content += added_content + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + + # 处理最后一块 + if current_content or current_highlight_list: + chunks.append({ + "content": current_content, + "highlight_list": current_highlight_list + }) + + return chunks + +import json + +def data_replace(data, host_ip: str,port:int): + """ + 遍历 data 列表,若元素包含 'img_path' 字段,则为其添加前缀。 + """ + for ins in data: + if isinstance(ins, dict) and "img_path" in ins: + # 原路径可能是相对路径,如 'images/xxx.jpg' + original_path = ins["img_path"] + # 拼接完整 URL + ins["img_path"] = f"http://{host_ip}:{port}/output/{original_path}" + # 可选:打印调试信息 + return data + +# if __name__ == "__main__": +# host_ip = "192.168.0.46" # 👈 替换为你实际的主机 IP 或域名 + +# file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/122-06A0014-B01001_发动机-维修手册_content_list.json' +# try: +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) +# except Exception as e: +# print(f"读取 JSON 文件时出错:{e}") +# data = [] + +# # 修改 img_path 字段 +# data_replace(data=data, host_ip=host_ip) + +# # 可选:保存回文件或打印验证 +# # 示例:打印所有包含 img_path 的项 +# for item in data: +# if "img_path" in item: +# print(item["img_path"]) + diff --git a/kg_build_0409/extract_wxanli_table.py b/kg_build_0409/extract_wxanli_table.py new file mode 100644 index 0000000..757209a --- /dev/null +++ b/kg_build_0409/extract_wxanli_table.py @@ -0,0 +1,263 @@ +import json +import fitz # PyMuPDF +import os +import fitz +from collections import Counter +import uuid +from openai import OpenAI +from kg_build.Prompt import Prompt_anli +from extract_util import safe_json_loads,highlight_pdf_file,get_content_bbox +from modelsAPI.model_api import OpenaiAPI + +# 指定 JSON 文件路径 +# file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/890DAA发动机装备故障案例_content_list.json' + +# try: +# # 打开并读取 JSON 文件 +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) + +# except Exception as e: +# print(f"发生未知错误:{e}") + + +# for idx, item in enumerate(data, start=1): +# item["id"] = idx +def extract_chunks_by_start_keywords(data, start_keywords): + """ + 通用版:根据多个起始关键词提取段落块。 + + 参数: + - data: List[dict],每项含 "id", "type", "text"(若 type=="text") + - start_keywords: List[str],如 ["一、故障现象", "二、原因分析"] + + 规则: + - 起始点:type == "text" 且 text.strip() in start_keywords + - 每个段落包含: + a) 起始点的前一条记录(id-1,如果存在) + b) 起始点本身 + c) 起始点之后的所有连续记录(任意 type),直到(但不包含)下一个起始关键词出现 + - 所有被选中的记录将从原始 data 中移除 + + 返回: + - groups: List[List[record]],每个 group 是一个完整段落(含前一条) + - filtered_data: 剩余未被移除的记录列表 + """ + if not data or not start_keywords: + return [], data + + # 构建 id -> record 映射 + record_map = {item["id"]: item for item in data} + max_id = max(record_map.keys()) + + # 第一步:找出所有起始关键词的位置(按 id 顺序) + start_keyword_set = set(kw.strip() for kw in start_keywords) + start_records = [] + + for item in data: + if item.get("type") == "text": + text_content = item.get("text", "").strip() + if text_content in start_keyword_set: + start_records.append(item) + + if not start_records: + return [], data + + # 按 id 排序(虽然 data 通常有序,但保险起见) + start_records.sort(key=lambda x: x["id"]) + + groups = [] + ids_to_remove = set() + + # 第二步:遍历每个起始点,构建段落 + for record in start_records: + start_id = record["id"] + group = [] + + # 1. 添加前一条记录(id-1) + prev_id = start_id - 1 + if prev_id >= 1 and prev_id in record_map: + group.append(record_map[prev_id]) + ids_to_remove.add(prev_id) + + # 2. 添加当前起始记录 + group.append(record) + ids_to_remove.add(start_id) + + # 3. 向后收集,直到遇到下一个起始关键词(不含) + next_id = start_id + 1 + while next_id <= max_id: + next_record = record_map.get(next_id) + if next_record is None: + break + + # 检查是否是任意一个起始关键词 + if (next_record.get("type") == "text" and + next_record.get("text", "").strip() in start_keyword_set): + break # 遇到下一个起始点,停止 + + group.append(next_record) + ids_to_remove.add(next_id) + next_id += 1 + + groups.append(group) + + # 第三步:过滤原始 data + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + + return groups, filtered_data + +# def openai_chat(query: str, model="Qwen3-32B"): +# """调用OpenAI API""" +# try: +# client = OpenAI( +# api_key="none", +# base_url="http://192.168.0.46:59800/v1" +# ) + +# response = client.chat.completions.create( +# model=model, +# messages=[ +# {"role": "user", "content": query}, +# ], +# temperature=0.1, +# stream=False, +# response_format={"type": "json_object"}, +# extra_body={"chat_template_kwargs": {"enable_thinking": False}} +# ) +# return response.choices[0].message.content +# except Exception as e: +# print(f"调用OpenAI API时出错: {e}") +# return None + +async def extract_wxanli(chunk): + """ + 成功时返回 {'entities': [...], 'relationships': [...]}, + 任何失败(超时、解析错、格式错)都返回 []。 + """ + final_prompt = Prompt_anli.replace("text", chunk) + raw_response =await OpenaiAPI.openai_chat_aysnc(final_prompt,timeout=600) + + # 如果模型没返回内容(如超时),直接返回 [] + if raw_response is None: + return [] + + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = safe_json_loads(cleaned) + + # 必须是 dict,且包含 entities 字段(且为 list) + if not isinstance(json_result, dict): + return [] + + entities = json_result.get("entities", []) + relationships = json_result.get("relationships", []) + + if not isinstance(entities, list) or not isinstance(relationships, list): + return [] + + # 返回标准结构 + return { + "entities": entities, + "relationships": relationships + } + + except Exception: + # 任何解析异常都返回 [] + return [] + +async def get_wxanli_node_relation(input_pdf_path,data,prefix_url = "http://192.168.0.46:59085"): + + filter = [ + "一、故障现象", + "单位:", + "故障名称:", + "一、基本情况", + "故障现象及原因:", + "故障名称:", + "实例故障" + ] + results, filtered_data = extract_chunks_by_start_keywords(data=data,start_keywords=filter) + if not results: + print("未找到符合条件的图解组成表格,跳过处理。") + all_entity_results,all_relation_results = [],[] + else: + all_entity_results = [] + all_relation_results = [] + + for i, compose in enumerate(results): + try: + print(f"开始处理第{i+1}个维修案例") + content, highlight_list = get_content_bbox(compose) + print("维修案例切片内容为:", content[:200]) + + result =await extract_wxanli(content) + + # 关键判断:只有 result 是 dict 才继续 + if not isinstance(result, dict): + print(f" ⚠️ 第 {i+1} 组:提取结果无效,跳过") + continue + + entities = result.get("entities", []) + relationships = result.get("relationships", []) + + # 添加 knowledge_source + highlight_filename, most_common_page,filename = highlight_pdf_file(input_pdf_path,highlight_list) + url = f"{prefix_url}/upload/{highlight_filename}#page={most_common_page}" + # for entity in entities: + # knowledge_source = [{ + # "filename": filename, + # "info": content, + # "url": url + # }] + # if "properties" not in entity or not isinstance(entity["properties"], dict): + # entity["properties"] = {} + # entity["properties"]["knowledge_source"] = knowledge_source + for entity in entities: + # 构造原始数据对象 (List of Dict) + source_data_list = [{ + "filename": filename, + "info": content, + "url": url + }] + + # 2. 【关键修改】将列表序列化为 JSON 字符串 + # ensure_ascii=False 确保中文内容不会被转义成 \uXXXX + knowledge_source_str = json.dumps(source_data_list, ensure_ascii=False) + + # 确保 properties 存在且是字典 + if "properties" not in entity or not isinstance(entity["properties"], dict): + entity["properties"] = {} + + # 3. 赋值字符串而不是对象列表 + entity["properties"]["knowledge_source"] = knowledge_source_str + # 安全追加 + all_entity_results.extend(entities) + all_relation_results.extend(relationships) + + except Exception as e: + print(f" ❌ 处理第 {i+1} 组时发生未预期错误: {e}") + # 不 re-raise,继续下一轮 + continue + return all_entity_results,all_relation_results +# if __name__ == "__main__": +# file_path = '/app/files/890DAA发动机装备故障案例_content_list.json' +# input_pdf_path = "/app/files/890DAA发动机装备故障案例.pdf" + +# try: +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) +# except Exception as e: +# print(f"读取 JSON 文件时出错:{e}") +# data = [] +# all_entity_results,all_relation_results = get_wxanli_node_relation(input_pdf_path,data=data) +# length_entity = len(all_entity_results) +# length_relation = len(all_relation_results) + +# print(f"抽取{length_entity}个实体,抽取{length_relation}个关系") + diff --git a/kg_build_0409/filter_node_relation.py b/kg_build_0409/filter_node_relation.py new file mode 100644 index 0000000..29ac329 --- /dev/null +++ b/kg_build_0409/filter_node_relation.py @@ -0,0 +1,1112 @@ +from neo4j import GraphDatabase +import json +import hashlib +import json +from collections import defaultdict +import json +import numpy as np +from sklearn.cluster import DBSCAN +from sklearn.preprocessing import normalize +from sklearn.metrics.pairwise import cosine_similarity +from collections import defaultdict +import copy +import json +from datetime import datetime, timezone +from typing import Dict, List, Optional, Tuple, Union +from neo4j import GraphDatabase +# from kgsave import MilitaryKnowledgeGraph +from neo4j import GraphDatabase +import json +import hashlib +import json +from collections import defaultdict +import json +import numpy as np +from sklearn.cluster import DBSCAN +from sklearn.preprocessing import normalize +from sklearn.metrics.pairwise import cosine_similarity +from collections import defaultdict +import copy +import json +from datetime import datetime, timezone +from typing import Dict, List, Optional, Tuple, Union +from neo4j import GraphDatabase +import json +from datetime import datetime, timezone +from typing import Dict, List, Optional, Tuple, Union +from neo4j import GraphDatabase + + + +class MilitaryKnowledgeGraph: + def __init__(self, uri: str, auth: Tuple[str, str], Ontology: List[str] = None): + """ + 初始化知识图谱 + + Args: + uri: Neo4j 数据库连接地址 + auth: 认证信息 (用户名, 密码) + Ontology: 节点类型列表,用于创建唯一性约束和类型校验 + """ + self.driver = GraphDatabase.driver(uri, auth=auth) + + # 默认节点类型 + self.Ontology = Ontology or ["舰艇", "系统", "子系统", "部件", "一级零部件", "二级零部件", "故障模式", "维修方案", "操作项目", "备品备件", "维修手册", "操作使用手册"] + + self._setup_constraints() + + def close(self): + """关闭数据库连接""" + self.driver.close() + + def _setup_constraints(self): + """为每个节点类型设置 名称 字段的唯一性约束""" + with self.driver.session() as session: + for node_type in self.Ontology: + try: + session.run(f"CREATE CONSTRAINT IF NOT EXISTS FOR (n:{node_type}) REQUIRE n.名称 IS UNIQUE") + except Exception as e: + print(f"创建约束失败 {node_type}: {e}") + + def construct_fact(self, from_name: str, to_name: str, rel_type: str, attributes: Dict) -> str: + """构造关系的自然语言描述(fact)""" + attr_str = ", ".join([f"{k}:{v}" for k, v in attributes.items() if v]) + if attr_str: + return f"{from_name} {rel_type} {to_name},{attr_str}" + else: + return f"{from_name} {rel_type} {to_name}" + + # def _resolve_attribute_conflicts(self, existing_attrs: Dict, new_attrs: Dict) -> Dict: + # """解决属性冲突(保留最新状态、最早开始时间、最晚结束时间等)""" + # resolved = existing_attrs.copy() + # current_time = datetime.now(timezone.utc).isoformat() + + # for key, new_value in new_attrs.items(): + # if new_value is None or new_value == "": + # continue + + # if key not in existing_attrs: + # resolved[key] = new_value + # elif existing_attrs[key] != new_value: + # if key in ["当前状态", "执行状态", "完成状态"]: + # resolved[key] = new_value + # elif key in ["开始时间", "下达时间", "承担时间"]: + # if new_value < existing_attrs[key]: + # resolved[key] = new_value + # elif key in ["结束时间", "执行时限"]: + # if new_value > existing_attrs[key]: + # resolved[key] = new_value + # else: + # resolved[key] = new_value + # if f"{key}_history" not in resolved: + # resolved[f"{key}_history"] = [] + # resolved[f"{key}_history"].append({ + # "previous_value": existing_attrs[key], + # "new_value": new_value, + # "update_time": current_time + # }) + + # return resolved + def _resolve_attribute_conflicts(self, existing_attrs: Dict, new_attrs: Dict) -> Dict: + resolved = existing_attrs.copy() + current_time = datetime.now(timezone.utc).isoformat() + + for key, new_value in new_attrs.items(): + if new_value is None or new_value == "": + continue + + if key not in existing_attrs: + resolved[key] = new_value + elif existing_attrs[key] != new_value: + if key in ["当前状态", "执行状态", "完成状态"]: + resolved[key] = new_value + elif key in ["开始时间", "下达时间", "承担时间"]: + if new_value < existing_attrs[key]: + resolved[key] = new_value + elif key in ["结束时间", "执行时限"]: + if new_value > existing_attrs[key]: + resolved[key] = new_value + else: + resolved[key] = new_value + history_key = f"{key}_history" + + # ✅ 防御:确保 history 字段始终是列表 + if history_key not in resolved: + resolved[history_key] = [] + elif isinstance(resolved[history_key], str): + # 兼容旧数据:JSON字符串 → list + try: + parsed = json.loads(resolved[history_key]) + resolved[history_key] = parsed if isinstance(parsed, list) else [resolved[history_key]] + except (json.JSONDecodeError, TypeError): + resolved[history_key] = [resolved[history_key]] + + # ✅ 序列化为 JSON 字符串存储(避免 Neo4j Map 类型报错) + history_entry = json.dumps({ + "previous_value": existing_attrs[key], + "new_value": new_value, + "update_time": current_time + }, ensure_ascii=False) + resolved[history_key].append(history_entry) + + return resolved + def _create_relationship_with_timeline(self, tx, from_name: str, to_name: str, + rel_type: str, attributes: Dict) -> bool: + """创建或更新带有时间线的关系""" + current_time = datetime.now(timezone.utc).isoformat() + clean_attributes = {k: v for k, v in attributes.items() if v is not None and v != ""} + + fact = self.construct_fact(from_name, to_name, rel_type, attributes) + clean_attributes["fact"] = fact + + existing_rel = tx.run(""" + MATCH (a {名称: $from_name})-[r]->(b {名称: $to_name}) + WHERE type(r) = $rel_type + RETURN r, properties(r) as props + """, from_name=from_name, to_name=to_name, rel_type=rel_type).single() + + if existing_rel: + existing_props = existing_rel["props"] + updated_props = existing_props.copy() + + for key, new_value in clean_attributes.items(): + if key == "fact": + continue + if key not in existing_props or existing_props[key] != new_value: + timeline_key = f"{key}_timeline" + if timeline_key not in updated_props: + updated_props[timeline_key] = [] + + timeline_entry_dict = { + "value": new_value, + "timestamp": current_time, + "source": "text_extraction" + } + if key in existing_props: + timeline_entry_dict["previous_value"] = existing_props[key] + + timeline_entry_str = json.dumps(timeline_entry_dict, ensure_ascii=False) + updated_props[timeline_key].append(timeline_entry_str) + updated_props[key] = new_value + + if "fact" in clean_attributes: + fact_timeline_key = "fact_timeline" + if fact_timeline_key not in updated_props: + updated_props[fact_timeline_key] = [] + + fact_entry_str = json.dumps({ + "value": clean_attributes["fact"], + "timestamp": current_time, + "source": "text_extraction" + }, ensure_ascii=False) + updated_props[fact_timeline_key].append(fact_entry_str) + updated_props["fact"] = clean_attributes["fact"] + + updated_props["last_updated"] = current_time + + query = f""" + MATCH (a {{名称: $from_name}})-[r:{rel_type}]->(b {{名称: $to_name}}) + SET r = $properties + RETURN r + """ + tx.run(query, from_name=from_name, to_name=to_name, properties=updated_props) + print(f"更新关系: {from_name} -[{rel_type}]-> {to_name}") + + else: + relationship_props = clean_attributes.copy() + + for key, value in clean_attributes.items(): + timeline_key = f"{key}_timeline" + timeline_entry_dict = { + "value": value, + "timestamp": current_time, + "source": "text_extraction" + } + timeline_entry_str = json.dumps(timeline_entry_dict, ensure_ascii=False) + relationship_props[timeline_key] = [timeline_entry_str] + + relationship_props["created_at"] = current_time + relationship_props["last_updated"] = current_time + relationship_props["update_count"] = 1 + + query = f""" + MATCH (a {{名称: $from_name}}), (b {{名称: $to_name}}) + CREATE (a)-[r:{rel_type} $properties]->(b) + RETURN r + """ + tx.run(query, from_name=from_name, to_name=to_name, properties=relationship_props) + print(f"创建关系: {from_name} -[{rel_type}]-> {to_name}") + + return True + + def _create_or_update_node(self, tx, node_type: str, 名称: str, attributes: Dict) -> bool: + """ + 创建或更新节点,支持 knowledge_source 等复杂字段 + + Args: + tx: Neo4j 事务对象 + node_type: 节点类型 + 名称: 节点名称(唯一标识) + attributes: 节点属性字典 + """ + if not 名称 or not node_type: + return False + + # 安全校验:只允许预定义的节点类型 + if node_type not in self.Ontology: + print(f"跳过未知节点类型: {node_type}") + return False + + # 预处理 attributes:将 knowledge_source 转为 JSON 字符串 + clean_attributes = {"名称": 名称} # 确保名称字段存在 + for k, v in attributes.items(): + if v is None or v == "": + continue + if k == "knowledge_source" and isinstance(v, list): + clean_attributes[k] = json.dumps(v, ensure_ascii=False) + else: + clean_attributes[k] = v + + existing_node = tx.run( + f"MATCH (n:{node_type} {{名称: $名称}}) RETURN n, properties(n) as props", + 名称=名称 + ).single() + + current_time = datetime.now(timezone.utc).isoformat() + + if existing_node: + existing_props = existing_node["props"] + existing_attrs = {k: v for k, v in existing_props.items() + if not k.endswith('_timeline') and k not in ['created_at', 'last_updated']} + + resolved_attributes = self._resolve_attribute_conflicts(existing_attrs, clean_attributes) + + timeline_data = {k: v for k, v in existing_props.items() + if k.endswith('_timeline') or k in ['created_at', 'last_updated']} + + final_attributes = {**timeline_data, **resolved_attributes} + final_attributes["last_updated"] = current_time + + query = f""" + MATCH (n:{node_type} {{名称: $名称}}) + SET n = $attributes + RETURN n + """ + tx.run(query, 名称=名称, attributes=final_attributes) + print(f"更新节点: {node_type} - {名称}") + else: + clean_attributes["created_at"] = current_time + clean_attributes["last_updated"] = current_time + + query = f""" + CREATE (n:{node_type} $attributes) + RETURN n + """ + tx.run(query, attributes=clean_attributes) + print(f"创建节点: {node_type} - {名称}") + + return True + + def process_data(self, data: Dict) -> Tuple[int, int]: + """ + 处理字典数据并写入Neo4j + + Args: + data: 包含 entities 和 relationships 的字典 + + Returns: + Tuple[int, int]: (实体数量, 关系数量) + """ + if not data or not isinstance(data, dict): + print("无效的数据格式,需要字典类型") + return 0, 0 + + entity_count = 0 + relationship_count = 0 + + with self.driver.session() as session: + # 创建/更新实体节点 + for entity in data.get("entities", []): + try: + # 提取 properties,并注入 knowledge_source(如果存在) + props = entity.get("properties", {}).copy() + if "knowledge_source" in entity: + props["knowledge_source"] = entity["knowledge_source"] + + # 从 properties 中提取名称 + 名称 = props.pop("名称", None) + if not 名称: + print(f"跳过无名称节点: {entity}") + continue + + success = session.execute_write( + self._create_or_update_node, + entity["type"], + 名称, + props + ) + if success: + entity_count += 1 + except Exception as e: + print(f"处理节点失败: {entity}, 错误: {e}") + + # 创建/更新关系 + for relationship in data.get("relationships", []): + try: + success = session.execute_write( + self._create_relationship_with_timeline, + relationship["from_entity"], + relationship["to_entity"], + relationship["type"], + relationship.get("properties", {}) + ) + if success: + relationship_count += 1 + except Exception as e: + print(f"处理关系失败: {relationship}, 错误: {e}") + + print(f"成功处理 {entity_count} 个节点和 {relationship_count} 个关系") + return entity_count, relationship_count + + def get_relationship_history(self, from_name: str, to_name: str, rel_type: str) -> Optional[Dict]: + """获取关系的完整历史记录""" + with self.driver.session() as session: + result = session.run(""" + MATCH (a {名称: $from_name})-[r]->(b {名称: $to_name}) + WHERE type(r) = $rel_type + RETURN properties(r) as props + """, from_name=from_name, to_name=to_name, rel_type=rel_type) + + record = result.single() + return record["props"] if record else None + + def get_property_timeline(self, from_name: str, to_name: str, rel_type: str, + property_name: str) -> Optional[List]: + """获取特定属性的时间线(返回字符串列表,需 json.loads 解析)""" + history = self.get_relationship_history(from_name, to_name, rel_type) + if history: + return history.get(f"{property_name}_timeline", []) + return None + + def clear_database(self): + """清空数据库(谨慎使用)""" + with self.driver.session() as session: + session.run("MATCH (n) DETACH DELETE n") + print("数据库已清空") + +# def merge_records(record_list): +# grouped = defaultdict(list) + +# for record in record_list: +# key = (record['type'], record['properties']['名称']) +# grouped[key].append(record) + +# merged_list = [] + +# for key, group in grouped.items(): +# if len(group) == 1: +# merged_list.append(group[0]) +# else: +# base = group[0].copy() +# props_merged = base['properties'].copy() +# ks_set = set() + +# for rec in group: +# try: +# ks_value = rec['properties']['knowledge_source'] +# # 🔧 修复:处理不同类型的 knowledge_source +# if isinstance(ks_value, list): +# ks_list = ks_value +# elif isinstance(ks_value, str): +# ks_list = json.loads(ks_value) +# else: +# ks_list = [] + +# for item in ks_list: +# ks_set.add(json.dumps(item, sort_keys=True, ensure_ascii=False)) +# except (json.JSONDecodeError, KeyError, TypeError): +# pass + +# for k, v in rec['properties'].items(): +# if k != 'knowledge_source': +# if props_merged.get(k) in ("", "香", None) and v not in ("", "香", None): +# props_merged[k] = v +# elif k not in props_merged: +# props_merged[k] = v + +# merged_ks = [json.loads(s) for s in ks_set] +# props_merged['knowledge_source'] = json.dumps(merged_ks, ensure_ascii=False) + +# base['properties'] = props_merged +# merged_list.append(base) + +# return merged_list +def merge_records(record_list): + grouped = defaultdict(list) + + for record in record_list: + # 1. 安全获取 type 和 名称,确保它们是字符串(可哈希) + node_type = record.get('type', 'Unknown') + if isinstance(node_type, list): + node_type = node_type[0] if node_type else 'Unknown' + node_type = str(node_type) # 强制转为字符串 + + # 获取名称字段 + raw_name = record.get('properties', {}).get('名称') + + # 2. 处理名称可能是列表的情况 (修复 unhashable type: 'list') + if isinstance(raw_name, list): + if len(raw_name) > 0: + node_name = raw_name[0] + else: + node_name = "Unnamed_Node" + elif raw_name is None or raw_name == "": + node_name = "Unnamed_Node" + else: + node_name = raw_name + + # 确保最终是字符串 + node_name = str(node_name) + + # 3. 现在 key 肯定是可哈希的 (str, str) + key = (node_type, node_name) + + grouped[key].append(record) + + merged_list = [] + + for key, group in grouped.items(): + if len(group) == 1: + merged_list.append(group[0]) + else: + base = group[0].copy() + # 深度复制 properties 以防修改影响原数据 + props_merged = copy.deepcopy(base['properties']) + + # 修正:确保合并后的名称是字符串,而不是列表 + if isinstance(props_merged.get('名称'), list): + props_merged['名称'] = props_merged['名称'][0] if props_merged['名称'] else key[1] + + ks_set = set() + + for rec in group: + try: + ks_value = rec['properties'].get('knowledge_source') + # 处理不同类型的 knowledge_source + if isinstance(ks_value, list): + ks_list = ks_value + elif isinstance(ks_value, str): + try: + parsed = json.loads(ks_value) + ks_list = parsed if isinstance(parsed, list) else [parsed] + except (json.JSONDecodeError, TypeError): + ks_list = [ks_value] if ks_value else [] + else: + ks_list = [] + + for item in ks_list: + if isinstance(item, dict): + # 使用 sort_keys 确保字典顺序不影响去重 + ks_set.add(json.dumps(item, sort_keys=True, ensure_ascii=False)) + else: + ks_set.add(str(item)) + except Exception as e: + print(f"解析 knowledge_source 失败: {e}") + pass + + # 合并其他属性 + for k, v in rec['properties'].items(): + if k == 'knowledge_source': + continue + + # 跳过名称字段的重复合并,保持上面处理过的字符串 + if k == '名称': + continue + + current_val = props_merged.get(k) + + # 如果当前值是空或无效值,直接替换 + if current_val in ("", "香", None, []): + props_merged[k] = v + # 如果新值有效且当前值不同,且当前没值,则填入 + elif k not in props_merged: + props_merged[k] = v + # 如果双方都有值且不同,可以考虑保留非空值或转为列表(视需求而定,这里保持简单覆盖或忽略) + elif current_val != v and v not in ("", "香", None): + # 策略:如果现有值是“香”或空,替换;否则保留现有值(避免冲突) + if current_val in ("", "香"): + props_merged[k] = v + + # 处理 knowledge_source 的最终合并 + if ks_set: + merged_ks = [] + for s in ks_set: + try: + # 尝试还原为对象 + obj = json.loads(s) + merged_ks.append(obj) + except: + merged_ks.append(s) + + # 存回为 JSON 字符串 + props_merged['knowledge_source'] = json.dumps(merged_ks, ensure_ascii=False) + else: + # 如果没有提取到有效的 KS,保留原有的或设为空列表字符串 + if 'knowledge_source' not in props_merged: + props_merged['knowledge_source'] = "[]" + + base['properties'] = props_merged + merged_list.append(base) + + return merged_list + + +def fetch_all_nodes_and_rels(tx): + query = """ + MATCH (n) + OPTIONAL MATCH (n)-[r]->() + WITH + collect(DISTINCT { + id: toString(id(n)), + labels: labels(n), + properties: properties(n) + }) AS nodes, + collect(DISTINCT r) AS rels + UNWIND rels AS r + WITH nodes, r + WHERE r IS NOT NULL + RETURN + nodes, + collect({ + id: toString(id(r)), + source: toString(id(startNode(r))), + target: toString(id(endNode(r))), + type: type(r), + properties: properties(r) + }) AS relationships + """ + result = tx.run(query) + record = result.single() + if record: + return record["nodes"], record["relationships"] + else: + return [], [] + + +#从已有数据库导出已存在的关系 +def reconstruct_relationships(entities, relationships): + # 构建 id -> entity 的映射字典 + entity_map = {entity["id"]: entity for entity in entities} + + reconstructed_rela = [] + for rel in relationships: + source_id = rel.get("source") + target_id = rel.get("target") + rel_type = rel.get("type") + + # 检查 source 和 target 是否存在 + source_entity = entity_map.get(source_id) + target_entity = entity_map.get(target_id) + + if not source_entity or not target_entity: + continue # 跳过任一实体缺失的关系 + + # 安全获取“名称”字段(注意:根据你的数据,“名称”在顶层,不在 properties 中!) + from_name = source_entity["properties"].get("名称") + to_name = target_entity["properties"].get("名称") + + # 如果任一名称缺失,也跳过 + if from_name is None or to_name is None: + continue + + # 构建新关系 + reconstructed_rela.append({ + "type": rel_type, + "from_entity": from_name, + "to_entity": to_name + }) + + return reconstructed_rela + +def reconstruct_entities(entities): + # 要排除的字段(无论在顶层还是 properties 内部) + excluded_keys = {"last_updated", "fulltext", "created_at"} + + reconstructed_rela = [] + for entity in entities: + labels = entity.get("labels") + if not isinstance(labels, list) or len(labels) == 0: + continue + + entity_type = labels[0] + + # 合并顶层字段 + properties 内部字段 + combined_props = {} + + # 添加顶层字段(除了 id, labels, 和可能存在的 properties) + for k, v in entity.items(): + if k in ("id", "labels", "properties"): + continue + combined_props[k] = v + + # 添加 properties 内部字段(如果存在) + inner_props = entity.get("properties", {}) + if isinstance(inner_props, dict): + for k, v in inner_props.items(): + combined_props[k] = v + + # 剔除不需要的字段 + filtered_props = { + k: v for k, v in combined_props.items() + if k not in excluded_keys + } + + # 只有当 properties 非空时才保留(可选) + if not filtered_props: + continue + + reconstructed_rela.append({ + "type": entity_type, + "properties": filtered_props + }) + + return reconstructed_rela +def deduplicate_relations(relations): + seen = set() + unique_relations = [] + for rel in relations: + # 构造唯一键(必须是可哈希的) + key = (rel["type"], rel["from_entity"], rel["to_entity"]) + if key not in seen: + seen.add(key) + unique_relations.append(rel) + return unique_relations + +def parse_knowledge_source(ks) -> list: + if ks is None or ks == "" or ks == []: + return [] + if isinstance(ks, list): + result = [] + for item in ks: + if isinstance(item, dict): + result.append(item) + elif isinstance(item, str): + try: + parsed = json.loads(item) + if isinstance(parsed, list): + result.extend(parsed) + elif isinstance(parsed, dict): + result.append(parsed) + except (json.JSONDecodeError, TypeError): + pass + return result + if isinstance(ks, str): + try: + parsed = json.loads(ks) + if isinstance(parsed, list): + return parsed + if isinstance(parsed, dict): + return [parsed] + except (json.JSONDecodeError, TypeError): + pass + return [] + + +def merge_knowledge_source(master_ks, slave_ks) -> list: + master_list = parse_knowledge_source(master_ks) + slave_list = parse_knowledge_source(slave_ks) + seen = {(item.get("filename", ""), item.get("url", "")) for item in master_list} + for item in slave_list: + key = (item.get("filename", ""), item.get("url", "")) + if key not in seen: + master_list.append(item) + seen.add(key) + return master_list + + +# ============================================================ +# Step 1: 加载数据 +# ============================================================ +def load_data(path: str): + with open(path, "r", encoding="utf-8") as f: + data = json.load(f) + entities = data["entities"] + relationships = data.get("relationships", []) + print(f"[Step 1] 共加载 {len(entities)} 个实体," + f"Embedding 维度: {np.array(entities[0]['properties']['embedding']).shape[0]}," + f"{len(relationships)} 条关系") + return data, entities, relationships + + +# ============================================================ +# Step 2: DBSCAN 聚类(仅用于目标类型) +# ============================================================ +def cluster_entities(entities: list, eps: float, min_samples: int) -> np.ndarray: + embeddings = np.array([e["properties"]["embedding"] for e in entities], dtype=np.float32) + embeddings_norm = normalize(embeddings, norm="l2") + labels = DBSCAN( + eps=eps, + min_samples=min_samples, + metric="cosine", + algorithm="brute", + n_jobs=-1 + ).fit_predict(embeddings_norm) + n_clusters = len(set(labels)) - (1 if -1 in labels else 0) + print(f"[Step 2] DBSCAN 聚类完成,共发现 {n_clusters} 个簇(eps={eps})") + return labels + + +# ============================================================ +# Step 3: 属性合并(单对主从) +# ============================================================ +PROTECTED_KEYS = {"名称", "型号", "组成编码"} + +def merge_properties(master: dict, slave: dict) -> list: + changes = [] + + for key, val in slave["properties"].items(): + if key == "embedding": + continue + + if key == "knowledge_source": + master_ks = master["properties"].get("knowledge_source") + merged_ks = merge_knowledge_source(master_ks, val) + master["properties"]["knowledge_source"] = json.dumps(merged_ks, ensure_ascii=False) + changes.append(f"knowledge_source extend {len(merged_ks)} items") + continue + + if key in PROTECTED_KEYS: + continue + + existing = master["properties"].get(key) + if existing in (None, "", []): + master["properties"][key] = val + changes.append(f"{key}={val}") + elif val not in (None, "", []) and existing != val: + merged = existing if isinstance(existing, list) else [existing] + for item in (val if isinstance(val, list) else [val]): + if item not in merged: + merged.append(item) + master["properties"][key] = merged + changes.append(f"{key} merged={merged}") + + return changes + + +# ============================================================ +# 辅助:从一组实体中选主实体 +# 优先有"组成编码",其次属性最丰富 +# ============================================================ +def pick_master(indices: list, entities: list) -> int: + master_idx = next( + (idx for idx in indices if entities[idx]["properties"].get("组成编码")), + None + ) + if master_idx is None: + master_idx = max( + indices, + key=lambda idx: sum( + 1 for k, v in entities[idx]["properties"].items() + if k != "embedding" and v not in (None, "", []) + ) + ) + return master_idx + + +# ============================================================ +# Step 4: 目标类型实体合并 +# 规则:余弦相似度 >= NAME_SIM_THRESH 即合并(不要求名称一致) +# ============================================================ +def merge_target_entities( + entities: list, + labels: np.ndarray, + target_types: set, + sim_thresh: float, +) -> tuple: + + clusters = defaultdict(list) + for idx, label in enumerate(labels): + clusters[label].append(idx) + + to_delete: set = set() + name_remap: dict = {} + merge_log: list = [] + + for label, indices in clusters.items(): + if label == -1 or len(indices) <= 1: + continue + + target_indices = [idx for idx in indices if entities[idx]["type"] in target_types] + if len(target_indices) <= 1: + continue + + # Union-Find:相似度 >= sim_thresh 则合并 + parent = {idx: idx for idx in target_indices} + + def find(x): + while parent[x] != x: + parent[x] = parent[parent[x]] + x = parent[x] + return x + + def union(x, y): + parent[find(x)] = find(y) + + for i in range(len(target_indices)): + for j in range(i + 1, len(target_indices)): + ei = entities[target_indices[i]] + ej = entities[target_indices[j]] + emb_i = np.array(ei["properties"]["embedding"], dtype=np.float32).reshape(1, -1) + emb_j = np.array(ej["properties"]["embedding"], dtype=np.float32).reshape(1, -1) + sim = cosine_similarity(emb_i, emb_j)[0][0] + if sim >= sim_thresh: + union(target_indices[i], target_indices[j]) + + groups = defaultdict(list) + for idx in target_indices: + groups[find(idx)].append(idx) + + for root, group_indices in groups.items(): + if len(group_indices) <= 1: + continue + + master_idx = pick_master(group_indices, entities) + master = entities[master_idx] + master_name = master["properties"]["名称"] + if isinstance(master_name, list): + master_name = master_name[0] if master_name else "" + master["properties"]["名称"] = master_name + + slave_indices = [idx for idx in group_indices if idx != master_idx] + log_entry = { + "阶段": "目标类型合并", + "簇ID": label, "名称": master_name, + "主实体类型": master["type"], + "被合并实体": [], "新增属性": [] + } + + for s_idx in slave_indices: + slave = entities[s_idx] + slave_name = slave["properties"].get("名称", "") + if isinstance(slave_name, list): + slave_name = slave_name[0] if slave_name else "" + + log_entry["被合并实体"].append({ + "类型": slave["type"], + "原属性": copy.deepcopy(slave["properties"]) + }) + + if slave_name and slave_name != master_name: + name_remap[slave_name] = master_name + + changes = merge_properties(master, slave) + log_entry["新增属性"].extend(changes) + to_delete.add(s_idx) + + merge_log.append(log_entry) + + print(f"[Step 4] 目标类型合并:{len(merge_log)} 组合并," + f"删除 {len(to_delete)} 个从实体,名称映射 {len(name_remap)} 条") + return to_delete, name_remap, merge_log + + +# ============================================================ +# Step 5: 非目标类型实体合并 +# 规则:type 与 name(名称)字段值完全一致才合并 +# 全局遍历,不依赖 DBSCAN 簇 +# ============================================================ +def merge_other_entities( + entities: list, + target_types: set, + existing_to_delete: set, +) -> tuple: + + # 按 (type, name) 分组,跳过目标类型和已被删除的实体 + groups: dict = defaultdict(list) + for idx, e in enumerate(entities): + if idx in existing_to_delete: + continue + if e["type"] in target_types: + continue + name = e["properties"].get("名称", "") + if isinstance(name, list): + name = name[0] if name else "" + key = (e["type"], name) + if name: # 名称为空时不参与合并 + groups[key].append(idx) + + to_delete: set = set() + name_remap: dict = {} + merge_log: list = [] + + for (etype, ename), indices in groups.items(): + if len(indices) <= 1: + continue + + master_idx = pick_master(indices, entities) + master = entities[master_idx] + slave_indices = [idx for idx in indices if idx != master_idx] + + log_entry = { + "阶段": "非目标类型合并", + "类型": etype, "名称": ename, + "被合并实体": [], "新增属性": [] + } + + for s_idx in slave_indices: + slave = entities[s_idx] + slave_name = slave["properties"].get("名称", "") + if isinstance(slave_name, list): + slave_name = slave_name[0] if slave_name else "" + + log_entry["被合并实体"].append({ + "类型": slave["type"], + "原属性": copy.deepcopy(slave["properties"]) + }) + + # 名称相同时无需添加映射,但保留以防万一 + if slave_name and slave_name != ename: + name_remap[slave_name] = ename + + changes = merge_properties(master, slave) + log_entry["新增属性"].extend(changes) + to_delete.add(s_idx) + + merge_log.append(log_entry) + + print(f"[Step 5] 非目标类型合并:{len(merge_log)} 组合并," + f"删除 {len(to_delete)} 个从实体,名称映射 {len(name_remap)} 条") + return to_delete, name_remap, merge_log + + +# ============================================================ +# Step 6: 清理所有实体的"名称"字段(防止历史脏数据) +# ============================================================ +def clean_entity_names(entities: list) -> list: + for e in entities: + name = e["properties"].get("名称") + if isinstance(name, list): + e["properties"]["名称"] = name[0] if name else "" + return entities + + +# ============================================================ +# Step 7: 更新 relationships 并去重 +# ============================================================ +def update_relationships(relationships: list, name_remap: dict) -> tuple: + updated_count = 0 + for rel in relationships: + orig_from, orig_to = rel["from_entity"], rel["to_entity"] + rel["from_entity"] = name_remap.get(rel["from_entity"], rel["from_entity"]) + rel["to_entity"] = name_remap.get(rel["to_entity"], rel["to_entity"]) + if rel["from_entity"] != orig_from or rel["to_entity"] != orig_to: + updated_count += 1 + + seen, deduped = set(), [] + for rel in relationships: + key = (rel["type"], rel["from_entity"], rel["to_entity"]) + if key not in seen: + seen.add(key) + deduped.append(rel) + + removed = len(relationships) - len(deduped) + print(f"[Step 7] 关系更新完成:更新 {updated_count} 条," + f"去重删除 {removed} 条,剩余 {len(deduped)} 条") + return deduped, updated_count, removed + + +def filter_node_relationship(URI,USERNAME,PASSWORD,merged_output_data): + DBSCAN_EPS = 0.1 + DBSCAN_MIN_SPL = 1 + TARGET_TYPES = {"系统", "子系统", "部件", "一级零部件", "二级零部件"} + NAME_SIM_THRESH = 0.9 # 目标类型:embedding 余弦相似度阈值 + OUTPUT_FILE1 = "./huizong_node_rela.json" + + OUTPUT_FILE = "./neo4j_export_deduplicated.json" + + driver = GraphDatabase.driver(URI, auth=(USERNAME, PASSWORD)) + + try: + with driver.session() as session: + print("正在从 Neo4j 获取所有节点和关系...") + nodes, relationships = session.execute_read(fetch_all_nodes_and_rels) + + print(f"原始数据: {len(nodes)} 个实体, {len(relationships)} 条关系") + final_entity = [] + final_relation = [] + all_entity_old = reconstruct_entities(nodes) + all_relationships_old = reconstruct_relationships(nodes, relationships) + all_entity_new = merged_output_data["entities"] + all_relationships_new = merged_output_data["relationships"] + final_entity.extend(all_entity_old) + final_entity.extend(all_entity_new) + final_relation.extend(all_relationships_old) + final_relation.extend(all_relationships_new) + print(f"汇总数据: {len(final_entity)} 个实体, {len(final_relation)} 条关系") + + filter_data1 = { + "entities": final_entity, + "relationships": final_relation + } + with open(OUTPUT_FILE1, 'w', encoding='utf-8') as f: + json.dump(filter_data1, f, indent=2, ensure_ascii=False) + filter_node = merge_records(final_entity) + filter_relationships = deduplicate_relations(final_relation) + print(f"过滤后数据: {len(filter_node)} 个实体, {len(filter_relationships)} 条关系") + + # print("进行DBSCAN聚类") + # entities = clean_entity_names(filter_node) + + # # Step 3: DBSCAN 聚类(全量,用于目标类型相似度筛选) + # labels = cluster_entities(entities, eps=DBSCAN_EPS, min_samples=DBSCAN_MIN_SPL) + + # # Step 4: 目标类型合并(相似度 >= NAME_SIM_THRESH) + # to_delete_target, name_remap_target, merge_log_target = merge_target_entities( + # entities, labels, TARGET_TYPES, NAME_SIM_THRESH + # ) + + # # Step 5: 非目标类型合并(type + name 完全一致) + # to_delete_other, name_remap_other, merge_log_other = merge_other_entities( + # entities, TARGET_TYPES, existing_to_delete=to_delete_target + # ) + + # 汇总 + # all_to_delete = to_delete_target | to_delete_other + # all_name_remap = {**name_remap_target, **name_remap_other} # 目标类型映射优先级更高时可调整顺序 + + # new_entities = [e for idx, e in enumerate(entities) if idx not in all_to_delete] + # print(f" 总计删除 {len(all_to_delete)} 个从实体,剩余实体数量: {len(new_entities)}") + + # # Step 6: 更新关系 + # new_relationships, _, _ = update_relationships(filter_relationships, all_name_remap) + + filter_data = { + "entities": filter_node, + "relationships": filter_relationships + } + with open(OUTPUT_FILE, 'w', encoding='utf-8') as f: + json.dump(filter_data, f, indent=2, ensure_ascii=False) + + return filter_data + except Exception as e: + print(f"? 导出失败: {e}") + + import traceback + traceback.print_exc() + return merged_output_data + finally: + driver.close() + + +# if __name__ == "__main__": +# URI = "bolt://192.168.0.46:57687" +# USERNAME = "neo4j" +# PASSWORD = "zdht123@" +# with open("/storage01/home/hdf/project/wxkgrag/kgextract/output/output3/neo4j_export_merged1.json", "r", encoding="utf-8") as f: +# data = json.load(f) +# filter_data = filter_node_relationship(URI=URI,USERNAME=USERNAME,PASSWORD=PASSWORD,merged_output_data=data) +# kg = MilitaryKnowledgeGraph( +# uri="bolt://192.168.0.46:57687", +# auth=("neo4j", "zdht123@"), +# ) +# entity_count, rel_count = kg.process_data(filter_data) diff --git a/kg_build_0409/filter_node_relation.py.111 b/kg_build_0409/filter_node_relation.py.111 new file mode 100644 index 0000000..e77a3ca --- /dev/null +++ b/kg_build_0409/filter_node_relation.py.111 @@ -0,0 +1,288 @@ +from neo4j import GraphDatabase +import json +import hashlib +import json +from collections import defaultdict +def merge_records(record_list): + grouped = defaultdict(list) + + for record in record_list: + key = (record['type'], record['properties']['名称']) + grouped[key].append(record) + + merged_list = [] + + for key, group in grouped.items(): + if len(group) == 1: + merged_list.append(group[0]) + else: + base = group[0].copy() + props_merged = base['properties'].copy() + ks_set = set() + + for rec in group: + try: + ks_value = rec['properties']['knowledge_source'] + # 🔧 修复:处理不同类型的 knowledge_source + if isinstance(ks_value, list): + ks_list = ks_value + elif isinstance(ks_value, str): + ks_list = json.loads(ks_value) + else: + ks_list = [] + + for item in ks_list: + ks_set.add(json.dumps(item, sort_keys=True, ensure_ascii=False)) + except (json.JSONDecodeError, KeyError, TypeError): + pass + + for k, v in rec['properties'].items(): + if k != 'knowledge_source': + if props_merged.get(k) in ("", "香", None) and v not in ("", "香", None): + props_merged[k] = v + elif k not in props_merged: + props_merged[k] = v + + merged_ks = [json.loads(s) for s in ks_set] + props_merged['knowledge_source'] = json.dumps(merged_ks, ensure_ascii=False) + + base['properties'] = props_merged + merged_list.append(base) + + return merged_list +# def merge_records(record_list): +# # 使用 (type, 名称) 作为 key 的字典来分组 +# grouped = defaultdict(list) + +# for record in record_list: +# key = (record['type'], record['properties']['名称']) +# grouped[key].append(record) + +# merged_list = [] + +# for key, group in grouped.items(): +# if len(group) == 1: +# # 没有重复,直接加入 +# merged_list.append(group[0]) +# else: +# # 合并多个记录 +# base = group[0].copy() +# props_merged = base['properties'].copy() +# ks_set = set() + +# # 合并所有 knowledge_source +# for rec in group: +# # 解析 knowledge_source(字符串形式的 JSON 列表) +# try: +# ks_list = json.loads(rec['properties']['knowledge_source']) +# for item in ks_list: +# # 转为字符串以便去重(或用 tuple/frozenset 如果结构固定) +# ks_set.add(json.dumps(item, sort_keys=True)) +# except (json.JSONDecodeError, KeyError): +# pass # 忽略无效或缺失的 knowledge_source + +# # 合并 properties 中的其他字段(覆盖式合并,但只保留非空/非"香"等?这里按全合并) +# for k, v in rec['properties'].items(): +# if k != 'knowledge_source': +# # 如果字段值不同且都不为空,可以选择保留非"香"、非空等策略 +# # 这里简单策略:如果当前为空或为"香",则用新值覆盖 +# if props_merged.get(k) in ("", "香", None) and v not in ("", "香", None): +# props_merged[k] = v +# elif props_merged.get(k) in ("", "香", None) and v in ("", "香", None): +# # 都是无效值,保留原样 +# pass +# elif k not in props_merged: +# props_merged[k] = v +# # 如果两者都有效且不同,也可以选择保留第一个或报冲突(这里暂不处理冲突) + +# # 重建 knowledge_source +# merged_ks = [json.loads(s) for s in ks_set] +# props_merged['knowledge_source'] = json.dumps(merged_ks, ensure_ascii=False) + +# base['properties'] = props_merged +# merged_list.append(base) + +# return merged_list + + +def fetch_all_nodes_and_rels(tx): + query = """ + MATCH (n) + OPTIONAL MATCH (n)-[r]->() + WITH + collect(DISTINCT { + id: toString(id(n)), + labels: labels(n), + properties: properties(n) + }) AS nodes, + collect(DISTINCT r) AS rels + UNWIND rels AS r + WITH nodes, r + WHERE r IS NOT NULL + RETURN + nodes, + collect({ + id: toString(id(r)), + source: toString(id(startNode(r))), + target: toString(id(endNode(r))), + type: type(r), + properties: properties(r) + }) AS relationships + """ + result = tx.run(query) + record = result.single() + if record: + return record["nodes"], record["relationships"] + else: + return [], [] + + +#从已有数据库导出已存在的关系 +def reconstruct_relationships(entities, relationships): + # 构建 id -> entity 的映射字典 + entity_map = {entity["id"]: entity for entity in entities} + + reconstructed_rela = [] + for rel in relationships: + source_id = rel.get("source") + target_id = rel.get("target") + rel_type = rel.get("type") + + # 检查 source 和 target 是否存在 + source_entity = entity_map.get(source_id) + target_entity = entity_map.get(target_id) + + if not source_entity or not target_entity: + continue # 跳过任一实体缺失的关系 + + # 安全获取“名称”字段(注意:根据你的数据,“名称”在顶层,不在 properties 中!) + from_name = source_entity["properties"].get("名称") + to_name = target_entity["properties"].get("名称") + + # 如果任一名称缺失,也跳过 + if from_name is None or to_name is None: + continue + + # 构建新关系 + reconstructed_rela.append({ + "type": rel_type, + "from_entity": from_name, + "to_entity": to_name + }) + + return reconstructed_rela + +def reconstruct_entities(entities): + # 要排除的字段(无论在顶层还是 properties 内部) + excluded_keys = {"last_updated", "fulltext", "created_at"} + + reconstructed_rela = [] + for entity in entities: + labels = entity.get("labels") + if not isinstance(labels, list) or len(labels) == 0: + continue + + entity_type = labels[0] + + # 合并顶层字段 + properties 内部字段 + combined_props = {} + + # 添加顶层字段(除了 id, labels, 和可能存在的 properties) + for k, v in entity.items(): + if k in ("id", "labels", "properties"): + continue + combined_props[k] = v + + # 添加 properties 内部字段(如果存在) + inner_props = entity.get("properties", {}) + if isinstance(inner_props, dict): + for k, v in inner_props.items(): + combined_props[k] = v + + # 剔除不需要的字段 + filtered_props = { + k: v for k, v in combined_props.items() + if k not in excluded_keys + } + + # 只有当 properties 非空时才保留(可选) + if not filtered_props: + continue + + reconstructed_rela.append({ + "type": entity_type, + "properties": filtered_props + }) + + return reconstructed_rela +def deduplicate_relations(relations): + seen = set() + unique_relations = [] + for rel in relations: + # 构造唯一键(必须是可哈希的) + key = (rel["type"], rel["from_entity"], rel["to_entity"]) + if key not in seen: + seen.add(key) + unique_relations.append(rel) + return unique_relations + + +def filter_node_relationship(URI,USERNAME,PASSWORD,merged_output_data): + OUTPUT_FILE1 = "./huizong_node_rela.json" + + OUTPUT_FILE = "./neo4j_export_deduplicated.json" + + driver = GraphDatabase.driver(URI, auth=(USERNAME, PASSWORD)) + + try: + with driver.session() as session: + print("正在从 Neo4j 获取所有节点和关系...") + nodes, relationships = session.execute_read(fetch_all_nodes_and_rels) + + print(f"原始数据: {len(nodes)} 个实体, {len(relationships)} 条关系") + final_entity = [] + final_relation = [] + all_entity_old = reconstruct_entities(nodes) + all_relationships_old = reconstruct_relationships(nodes, relationships) + all_entity_new = merged_output_data["entities"] + all_relationships_new = merged_output_data["relationships"] + final_entity.extend(all_entity_old) + final_entity.extend(all_entity_new) + final_relation.extend(all_relationships_old) + final_relation.extend(all_relationships_new) + print(f"汇总数据: {len(final_entity)} 个实体, {len(final_relation)} 条关系") + + filter_data1 = { + "entities": final_entity, + "relationships": final_relation + } + with open(OUTPUT_FILE1, 'w', encoding='utf-8') as f: + json.dump(filter_data1, f, indent=2, ensure_ascii=False) + filter_node = merge_records(final_entity) + filter_relationships = deduplicate_relations(final_relation) + print(f"过滤后数据: {len(filter_node)} 个实体, {len(filter_relationships)} 条关系") + + filter_data = { + "entities": filter_node, + "relationships": filter_relationships + } + + with open(OUTPUT_FILE, 'w', encoding='utf-8') as f: + json.dump(filter_data, f, indent=2, ensure_ascii=False) + + return filter_data + except Exception as e: + print(f"❌ 导出失败: {e}") + + import traceback + traceback.print_exc() + return merged_output_data + finally: + driver.close() + +# if __name__ == "__main__": +# URI = "bolt://192.168.0.46:57687" +# USERNAME = "neo4j" +# PASSWORD = "zdht123@" +# # filter_node_relationship(URI=URI,USERNAME=USERNAME,PASSWORD=PASSWORD) + diff --git a/kg_build_0409/get_text_node_reala.py b/kg_build_0409/get_text_node_reala.py new file mode 100644 index 0000000..147e359 --- /dev/null +++ b/kg_build_0409/get_text_node_reala.py @@ -0,0 +1,335 @@ +from openai import OpenAI +from typing import List, Dict +import json +from langchain_text_splitters import MarkdownHeaderTextSplitter, CharacterTextSplitter +import requests +import json +from modelsAPI.model_api import OpenaiAPI + +def _split_markdown(text, chunk_size=2048, chunk_overlap=50): + """ + 根据 max_level 动态生成 headers_to_split_on 配置 + 规则: + - max_level=1 → 只按 # 分割 + - max_level=2 → 按 # 和 ## 分割 + - 以此类推 + """ + # 动态生成 headers_to_split_on 配置(目前固定为 Header_1) + headers_to_split_on = [("#", "Header_1")] + + # 初始化分割器 + splitter = MarkdownHeaderTextSplitter( + headers_to_split_on=headers_to_split_on, + strip_headers=True + ) + chunks = splitter.split_text(text) + + char_splitter = CharacterTextSplitter( + chunk_size=chunk_size, + chunk_overlap=chunk_overlap, + length_function=len, + separator="\n\n" # 更合理的分隔符 + ) + + final_chunks = [] + start_chars = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "第", "十", + "一", "二", "三", "四", "五", "六", "七", "八", "九"," 故障"] + new_header = [] + + # 提取所有 Header_1 并筛选出“有效标题” + for chunk in chunks: + header_1 = chunk.metadata.get('Header_1', '') + if header_1 and header_1[0] in start_chars: + new_header.append(header_1) + + new_header_set = set(new_header) + + # 构建带标题前缀的 final_chunks + for chunk in chunks: + header_1 = chunk.metadata.get('Header_1', '') + content = chunk.page_content + if len(content) <= 20000: + chunk_with_header = f"{header_1}\n{content}" if header_1 else content + final_chunks.append(chunk_with_header) + else: + split_texts = char_splitter.split_documents([chunk]) + for split_chunk in split_texts: + chunk_with_header = f"{header_1}\n{split_chunk.page_content}" if header_1 else split_chunk.page_content + final_chunks.append(chunk_with_header) + + # ===== 重新分组,并记录每个组的 header ===== + rechunked = [] + rechunked_headers = [] # 新增:每个 rechunked 块对应的 header + current = "" + current_header = "" # 当前正在构建的块所属的标题 + + for chunk in final_chunks: + is_new_section = False + matched_header = "" + + # 检查是否以某个 new_header 开头 + for h in new_header_set: + if chunk.startswith(h + "\n"): + is_new_section = True + matched_header = h + break + + if is_new_section: + # 保存上一段 + if current: + rechunked.append(current) + rechunked_headers.append(current_header) + # 开启新段 + current = chunk + current_header = matched_header + else: + # 合并到当前段 + if current: + current += "\n" + chunk + else: + current = chunk + current_header = "" # 如果开头无标题,则 header 为空 + + # 添加最后一段 + if current: + rechunked.append(current) + rechunked_headers.append(current_header) + + return rechunked, rechunked_headers + +Ontology = ["舰艇", "系统", "子系统", "部件", "一级零部件", "二级零部件", "故障模式", "维修方案", "操作项目", "备品备件", "维修手册", "操作使用手册"] +Relationships = ["包含", "存在", "修理", "操作时使用", "依据","存储备用","维修时使用"] + +# 节点类型及其属性定义 + +NODE_TYPES = { + "舰艇": ["名称", "型号", "弦号", "设计单位", "总装工厂", "所属部队"], + "系统": ["名称", "型号", "生产单位", "等级","功能"], + "子系统": ["名称", "型号", "生产单位", "等级","功能"], + "一级零部件": ["名称", "型号", "技术责任单位", "生产单位"], + "二级零部件": ["名称", "型号", "技术责任单位", "生产单位"], + "故障模式": ["名称", "故障原因", "故障影响", "故障类型", "发生时间", "处置情况", "修复情况","维修方案"], + "维修方案": ["名称", "维修项目编号","维修间隔期", "安全注意事项", "保障设备(工具)", "备品备件", "消耗材料", "人力人员", "备品备件", "修前判据", "修理步骤及工艺", "验收标准"], + "操作项目": ["名称", "操作项目编号", "安全防护", "注意事项", "保障设施、保障设备(工具)", "人力人员", "操作步骤"], + "备品备件" : ["名称", "规格", "型号", "图号或标准号或代号","计量单位", "单机重量", "尺寸(长X宽X高mm)", "单机装配数量","实物图片电子文档名称","MTBF(b)","生成厂家", + "出厂日期", + "供货周期(天)", + "有效期(月)", + "使用寿命(h)", + "备件箱号", + "储存要求_环境", + "储存要求_期限", + "停产后供应方式"], + "维修手册": ["名称", "url"], + "操作使用手册": ["名称", "url"], + } + +Ontology_DESCRIPTION = { + "舰艇": ["代表一艘完整海上作战或保障平台的实体,是所有系统、设备和零部件的最高层级载体。区别于“系统”或“设备”,舰艇具有独立的型号、弦号和部队归属,不可作为其他舰艇的组成部分。"], + "系统": ["舰艇中实现某一类功能(如动力、导航、通信)的集成化功能单元,由多个设备协同组成。与“设备”不同,系统本身不直接对应物理装置,而是逻辑/功能层面的集合;与“舰艇”不同,系统不具备独立航行能力或部队归属。"], + "子系统": ["系统内部为实现特定子功能而划分的独立功能模块,是系统的直接组成部分。子系统既具备相对独立的功能完整性(可单独测试或隔离),又必须依赖所属系统才能发挥最终战术效能,是连接系统逻辑与物理设备的中间层级。"], + "部件": ["构成子系统或设备的最小可独立拆卸、更换的物理实体单元(常称为LRU,即外场可更换单元)。部件具有明确的物理边界和接口,通常无需深层拆解即可进行整体替换,是维修作业中直接操作的主要对象。"], + "一级零部件": ["部件内部的核心功能组件,是部件的直接构成元素。一级零部件通常承担部件内的主要能量转换、信号处理或机械传动任务,其故障往往导致整个部件功能失效,需通过专业工具拆解部件后方可触及。"], + "二级零部件": ["一级零部件的细分构成单元,属于更深层次的基礎元件(如电阻、电容、密封圈、轴承等)。二级零部件通常不具备独立的功能意义,主要作为基础材料或标准件存在,一般仅在车间级深度维修或制造过程中涉及。"], + "故障模式": ["对舰艇装备在运行过程中表现出的异常状态、性能退化或功能丧失现象的标准化描述。故障模式明确了“发生了什么错误”(如断裂、短路、泄漏、卡滞),是关联故障现象与维修方案的桥梁,不包含原因分析或解决措施。"], + "维修方案": ["针对特定故障模式或预防性维护需求,制定的一套标准化的技术处置流程集合。维修方案详细规定了诊断步骤、拆装工艺、测试标准及所需资源,旨在指导维修人员恢复装备的技术战术性能,是维修决策的核心依据。"], + "操作项目": ["舰员在日常使用、值更或训练过程中,对装备执行的具体动作指令或检查任务(如启动、切换模式、参数读取、日常擦拭)。操作项目侧重于装备的正确使用与状态监控,区别于以修复为目的的“维修方案”。"], + "备品备件": ["为保障舰艇装备持续运行和及时修复,预先储备的可替换物理实体的总称。备品备件涵盖了从部件到二级零部件的各个层级,其管理核心在于平衡库存成本与战备完好率,确保在故障发生时能立即供应。"], + "维修手册": ["记载装备维修理论、故障排查逻辑、详细修理工艺、测试规范及安全技术要求的权威性技术文档。维修手册主要面向维修技术人员,提供“如何修”的深度指导,是实施维修方案的法定依据。"], + "操作使用手册": ["指导舰员正确、安全、高效地使用装备的功能说明与操作规程文档。操作使用手册主要面向装备操作人员,内容涵盖工作原理简介、操作步骤、应急处置及日常保养要求,侧重于“如何用”而非“如何修”。"] +} + +RELATIONSHIP_TYPES = { + "包含": ["舰艇包含系统", "系统包含子系统", "子系统包含部件", "部件包含一级零部件", "一级零部件包含二级零部件"], + "操作项目时使用": ["设备操作项目时使用操作项目"], + "维修时使用": ["设备维修时使用维修项目"], + "存在": ["子系统存在故障模式","部件存在故障模式","一级零部件存在故障模式","二级零部件存在故障模式"], + "存储备用" : ["设备存储备用备品备件"], + "依据" : ["维修方案依据维修手册","操作项目依据操作使用手册"], +} +def create_extraction_prompt( + text: str, + ontology: List[str], + Ontology_DESCRIPTION: Dict[str, List[str]], + relationships: List[str], + node_types: Dict[str, List[str]], + relationship_types: Dict[str, List[str]] +) -> str: + # 构建已有本体的定义(用于上下文) + ontology_def_descriptions = [] + for etype in ontology: + clean_etype = etype.strip() + if clean_etype in Ontology_DESCRIPTION: + desc = ";".join(Ontology_DESCRIPTION[clean_etype]) + ontology_def_descriptions.append(f"- {clean_etype}:{desc}") + else: + ontology_def_descriptions.append(f"- {clean_etype}:无明确定义") + + # 构建关系示例 + rel_examples = [] + for rtype, examples in relationship_types.items(): + for ex in examples[:1]: + rel_examples.append(f" - {ex}") + + prompt = f"""你是一个专业的舰艇维修领域工程师。请基于给出的本体和属性等信息,抽取出实体、关系以及相关属性值。 + +> ⚠️ 重要说明: +> - **本体(Ontology Class)是抽象概念类别**,是对特定领域中概念体系的形式化、结构化规范,用于明确定义该领域内的实体类型(类)。 + + +### 已有本体类型: +{chr(10).join(ontology_def_descriptions)} + +### 已有关系类型: +- {"、".join(relationships)} +典型用法示例: +{chr(10).join(rel_examples)} + +### 待分析文本: +{text.strip()} + +### 你的任务: +1、根据给出的本体、关系以及相应的属性,从文本中抽取出所有可能的实体、关系以及相关属性值。 +2、不要随意添加无效属性,抽取的实体属于本体范围内,关系属于关系范围内。、 + +### 输出格式: +请输出json格式内容,不要输出其他格式和额外内容 +{{ + "entities": [ + {{ + "type": "系统", + "name": "1 号主机冷却系统", + "properties": {{ + "名称": "1 号主机冷却系统", + "型号": "", + "技术责任单位": "XX 舰艇保障大队", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + }} + }}, + {{ + "type": "故障模式", + "name": "1 号主机冷却系统温度异常升高", + "properties": {{ + "故障现象": "1 号主机冷却系统温度异常升高", + "故障原因": "根据 A 设备发生的温度异常升高现象,结合相关技术手册与历史故障记录,分析如下: + (一)冷却液循环泵可能存在异常,导致流量不足; + (二)热交换器内部堵塞或外部散热片污损,影响散热效率; + (三)温度传感器或控制系统信号异常,导致误报警。 +", + "故障影响": "", + "故障类型": "", + "发生时间": "2013 年 05 月 7 日 9 时 23 分 37 秒", + "处置情况": " ", + "修复情况": "", + “” + }} + }} + ], + "relationships": [ + {{ + "type": "存在", + "from_entity": "1 号主机冷却系统", + "to_entity": "1 号主机冷却系统温度异常升高" + }} + ] +}} + +注意: +- 不要生成一些关系,如果没有就不要推荐 +- 如果文本没有符合的关系和实体,不要进行强行抽取 +""" + + return prompt + +async def extract_text_node_relationship( + text: str, + ontology: List[str], + Ontology_DESCRIPTION: Dict[str, List[str]], + relationships: List[str], + node_types: Dict[str, List[str]], + relationship_types: Dict[str, List[str]] +): + + + final_prompt = create_extraction_prompt( + text=text, + ontology=ontology, + Ontology_DESCRIPTION=Ontology_DESCRIPTION, + relationships=relationships, + relationship_types=relationship_types, + node_types=node_types + ) + res_str = await OpenaiAPI.openai_chat_aysnc(final_prompt,timeout=600) + + # 处理 API 调用失败 + if res_str is None: + print("⚠️ 跳过当前 chunk:API 调用失败") + + # 尝试解析 JSON + try: + res = json.loads(res_str) + except json.JSONDecodeError as e: + print(f"❌ JSON 解析失败: {e}") + print(f"原始响应内容: {repr(res_str)}") + + # 安全访问字段 + new_entities = res.get("entities", []) + new_relationships = res.get("relationships", []) + + # 可选:最后汇总输出 + # print("\n=== 最终结果 ===") + # print("生成文本本体:", new_entities_result) + # print("生成文本关系:", new_relationships_result) + return new_entities,new_relationships + + +# if __name__ == "__main__": +# text = """ +# # 1)螺旋桨本体 + +# 功能与特性:能量转换的核心。它将主机的旋转动能转化为水流的反作用力(推力)。其特性由材料(如镍铝青铜、锰青铜)、桨叶数(3-6叶)、盘面比、螺距比等决定,直接影响效率、空泡和振动性能。 + +# 相互关系:直接安装在尾轴(螺旋桨轴) 末端,其扭矩由尾轴传递,其推力通过推力轴承传递给船体。 + +# 2)轴系 + +# 功能与特性:动力传递的桥梁。包括: +# s +# 推力轴及推力轴承:承受螺旋桨产生的巨大轴向推力,并将其传递给船体结构,是决定船舶能否前进、后退的关键。 + +# 中间轴:连接主机输出端与推力轴/尾轴。 + +# 尾轴(螺旋桨轴):穿过尾轴管,末端安装螺旋桨,工作环境恶劣(浸没海水中),通常需包覆铜套防腐。 + +# 相互关系:将主机的旋转输出与螺旋桨本体刚性连接,形成一个完整的动力传递链。推力轴承是轴系与船体结构之间的关键受力界面。 + +# 3)尾轴管与密封系统功能与特性: + +# 尾轴管:固定于船体尾端,支撑尾轴并形成从船内(机舱)到船外(海水)的通道。 + +# 密封系统(首尾密封):绝对关键的安全设备。防止海水沿尾轴流入机舱(尾密封),同时防止润滑油泄漏(首尾密封均有此功能)。通常采用唇式密封或面式密封,材料耐磨、耐腐蚀。 + +# 相互关系:为尾轴提供支撑和润滑(油润滑或水润滑),其密封系统直接保护尾轴并确保机舱安全,与轴系和船体结构紧密集成。 + +# 4)毂帽与导流罩功能与特性: + +# 毂帽:安装在螺旋桨毂后端,呈流线型,用于减少桨毂后部产生的涡流阻力,提高效率。 + +# 导流罩(如桨毂涡流消除器):安装在桨毂前方,改善流入桨叶的水流状态,尤其适用于肥大船型,能提升效率、减少振动。 + +# 相互关系:直接安装在螺旋桨本体的毂上,是其水动力性能的优化附件。 + +# 系统相互关系总结: + +# 主机驱动轴系旋转,轴系末端的尾轴带动螺旋桨本体旋转。螺旋桨产生的推力通过尾轴传递至推力轴承,最终作用在船体上使其运动。尾轴管及密封系统为这一旋转运动提供支撑、润滑和至关重要的水密保障。毂帽和导流罩则作为螺旋桨本体的附件,优化其水动力性能。所有子设备协同工作的核心目标,是确保主机功率被高效、平稳、可靠地转化为推进船舶前进的有效推力。 任何一环失效(如密封泄漏、轴承损坏)都将导致整个推进系统瘫痪。 +# """ +# content = [] +# content.append(text) +# extract_text_node_relationship(content,ontology=Ontology,Ontology_DESCRIPTION=Ontology_DESCRIPTION,relationships=Relationships,relationship_types=RELATIONSHIP_TYPES,node_types=NODE_TYPES) + + diff --git a/kg_build_0409/kg_0327.py b/kg_build_0409/kg_0327.py new file mode 100644 index 0000000..0879854 --- /dev/null +++ b/kg_build_0409/kg_0327.py @@ -0,0 +1,378 @@ +import json +from datetime import datetime, timezone +from typing import Dict, List, Optional, Tuple, Union +from neo4j import GraphDatabase + + +class MilitaryKnowledgeGraph: + def __init__(self, uri: str, auth: Tuple[str, str], Ontology: List[str] = None): + """ + 初始化知识图谱 + + Args: + uri: Neo4j 数据库连接地址 + auth: 认证信息 (用户名, 密码) + Ontology: 节点类型列表,用于创建唯一性约束和类型校验 + """ + self.driver = GraphDatabase.driver(uri, auth=auth) + + # 默认节点类型 + self.Ontology = Ontology or ["舰艇", "系统", "子系统", "部件", "一级零部件", "二级零部件", "故障模式", "维修方案", "操作项目", "备品备件", "维修手册", "操作使用手册"] + + self._setup_constraints() + + def close(self): + """关闭数据库连接""" + self.driver.close() + + def _setup_constraints(self): + """为每个节点类型设置 名称 字段的唯一性约束""" + with self.driver.session() as session: + for node_type in self.Ontology: + try: + session.run(f"CREATE CONSTRAINT IF NOT EXISTS FOR (n:{node_type}) REQUIRE n.名称 IS UNIQUE") + except Exception as e: + print(f"创建约束失败 {node_type}: {e}") + + def construct_fact(self, from_name: str, to_name: str, rel_type: str, attributes: Dict) -> str: + """构造关系的自然语言描述(fact)""" + attr_str = ", ".join([f"{k}:{v}" for k, v in attributes.items() if v]) + if attr_str: + return f"{from_name} {rel_type} {to_name},{attr_str}" + else: + return f"{from_name} {rel_type} {to_name}" + + # def _resolve_attribute_conflicts(self, existing_attrs: Dict, new_attrs: Dict) -> Dict: + # """解决属性冲突(保留最新状态、最早开始时间、最晚结束时间等)""" + # resolved = existing_attrs.copy() + # current_time = datetime.now(timezone.utc).isoformat() + + # for key, new_value in new_attrs.items(): + # if new_value is None or new_value == "": + # continue + + # if key not in existing_attrs: + # resolved[key] = new_value + # elif existing_attrs[key] != new_value: + # if key in ["当前状态", "执行状态", "完成状态"]: + # resolved[key] = new_value + # elif key in ["开始时间", "下达时间", "承担时间"]: + # if new_value < existing_attrs[key]: + # resolved[key] = new_value + # elif key in ["结束时间", "执行时限"]: + # if new_value > existing_attrs[key]: + # resolved[key] = new_value + # else: + # resolved[key] = new_value + # if f"{key}_history" not in resolved: + # resolved[f"{key}_history"] = [] + # resolved[f"{key}_history"].append({ + # "previous_value": existing_attrs[key], + # "new_value": new_value, + # "update_time": current_time + # }) + + # return resolved + def _resolve_attribute_conflicts(self, existing_attrs: Dict, new_attrs: Dict) -> Dict: + """ + 解决属性冲突: + 1. 状态类:直接覆盖 + 2. 开始时间类:取最早时间 + 3. 结束时间类:取最晚时间 + 4. 其他类:直接覆盖 (不再记录历史) + """ + resolved = existing_attrs.copy() + # current_time 在此版本中不再需要,但保留导入以防后续扩展使用 + # current_time = datetime.now(timezone.utc).isoformat() + + for key, new_value in new_attrs.items(): + if new_value is None or new_value == "": + continue + + if key not in existing_attrs: + # 新属性直接添加 + resolved[key] = new_value + elif existing_attrs[key] != new_value: + # 属性存在且值不同,根据类型处理 + if key in ["当前状态", "执行状态", "完成状态"]: + # 状态类:直接覆盖为新值 + resolved[key] = new_value + + elif key in ["开始时间", "下达时间", "承担时间"]: + # 开始时间类:保留更早的时间 + if new_value < existing_attrs[key]: + resolved[key] = new_value + + elif key in ["结束时间", "执行时限"]: + # 结束时间类:保留更晚的时间 + if new_value > existing_attrs[key]: + resolved[key] = new_value + + else: + # 其他普通属性:直接覆盖,不再生成 _history 字段 + resolved[key] = new_value + + return resolved + def _create_relationship_with_timeline(self, tx, from_name: str, to_name: str, + rel_type: str, attributes: Dict) -> bool: + """创建或更新带有时间线的关系""" + current_time = datetime.now(timezone.utc).isoformat() + clean_attributes = {k: v for k, v in attributes.items() if v is not None and v != ""} + + fact = self.construct_fact(from_name, to_name, rel_type, attributes) + clean_attributes["fact"] = fact + + existing_rel = tx.run(""" + MATCH (a {名称: $from_name})-[r]->(b {名称: $to_name}) + WHERE type(r) = $rel_type + RETURN r, properties(r) as props + """, from_name=from_name, to_name=to_name, rel_type=rel_type).single() + + if existing_rel: + existing_props = existing_rel["props"] + updated_props = existing_props.copy() + + for key, new_value in clean_attributes.items(): + if key == "fact": + continue + if key not in existing_props or existing_props[key] != new_value: + timeline_key = f"{key}_timeline" + if timeline_key not in updated_props: + updated_props[timeline_key] = [] + + timeline_entry_dict = { + "value": new_value, + "timestamp": current_time, + "source": "text_extraction" + } + if key in existing_props: + timeline_entry_dict["previous_value"] = existing_props[key] + + timeline_entry_str = json.dumps(timeline_entry_dict, ensure_ascii=False) + updated_props[timeline_key].append(timeline_entry_str) + updated_props[key] = new_value + + if "fact" in clean_attributes: + fact_timeline_key = "fact_timeline" + if fact_timeline_key not in updated_props: + updated_props[fact_timeline_key] = [] + + fact_entry_str = json.dumps({ + "value": clean_attributes["fact"], + "timestamp": current_time, + "source": "text_extraction" + }, ensure_ascii=False) + updated_props[fact_timeline_key].append(fact_entry_str) + updated_props["fact"] = clean_attributes["fact"] + + updated_props["last_updated"] = current_time + + query = f""" + MATCH (a {{名称: $from_name}})-[r:{rel_type}]->(b {{名称: $to_name}}) + SET r = $properties + RETURN r + """ + tx.run(query, from_name=from_name, to_name=to_name, properties=updated_props) + print(f"更新关系: {from_name} -[{rel_type}]-> {to_name}") + + else: + relationship_props = clean_attributes.copy() + + for key, value in clean_attributes.items(): + timeline_key = f"{key}_timeline" + timeline_entry_dict = { + "value": value, + "timestamp": current_time, + "source": "text_extraction" + } + timeline_entry_str = json.dumps(timeline_entry_dict, ensure_ascii=False) + relationship_props[timeline_key] = [timeline_entry_str] + + relationship_props["created_at"] = current_time + relationship_props["last_updated"] = current_time + relationship_props["update_count"] = 1 + + query = f""" + MATCH (a {{名称: $from_name}}), (b {{名称: $to_name}}) + CREATE (a)-[r:{rel_type} $properties]->(b) + RETURN r + """ + tx.run(query, from_name=from_name, to_name=to_name, properties=relationship_props) + print(f"创建关系: {from_name} -[{rel_type}]-> {to_name}") + + return True + + def _create_or_update_node(self, tx, node_type: str, 名称: str, attributes: Dict) -> bool: + """ + 创建或更新节点,支持 knowledge_source 等复杂字段 + + Args: + tx: Neo4j 事务对象 + node_type: 节点类型 + 名称: 节点名称(唯一标识) + attributes: 节点属性字典 + """ + if not 名称 or not node_type: + return False + + # 安全校验:只允许预定义的节点类型 + if node_type not in self.Ontology: + print(f"跳过未知节点类型: {node_type}") + return False + + # 预处理 attributes:将 knowledge_source 转为 JSON 字符串 + clean_attributes = {"名称": 名称} # 确保名称字段存在 + for k, v in attributes.items(): + if v is None or v == "": + continue + if k == "knowledge_source" and isinstance(v, list): + clean_attributes[k] = json.dumps(v, ensure_ascii=False) + else: + clean_attributes[k] = v + + existing_node = tx.run( + f"MATCH (n:{node_type} {{名称: $名称}}) RETURN n, properties(n) as props", + 名称=名称 + ).single() + + current_time = datetime.now(timezone.utc).isoformat() + + if existing_node: + existing_props = existing_node["props"] + existing_attrs = {k: v for k, v in existing_props.items() + if not k.endswith('_timeline') and k not in ['created_at', 'last_updated']} + + resolved_attributes = self._resolve_attribute_conflicts(existing_attrs, clean_attributes) + + timeline_data = {k: v for k, v in existing_props.items() + if k.endswith('_timeline') or k in ['created_at', 'last_updated']} + + final_attributes = {**timeline_data, **resolved_attributes} + final_attributes["last_updated"] = current_time + + query = f""" + MATCH (n:{node_type} {{名称: $名称}}) + SET n = $attributes + RETURN n + """ + tx.run(query, 名称=名称, attributes=final_attributes) + print(f"更新节点: {node_type} - {名称}") + else: + clean_attributes["created_at"] = current_time + clean_attributes["last_updated"] = current_time + + query = f""" + CREATE (n:{node_type} $attributes) + RETURN n + """ + tx.run(query, attributes=clean_attributes) + print(f"创建节点: {node_type} - {名称}") + + return True + + def process_data(self, data: Dict) -> Tuple[int, int]: + """ + 处理字典数据并写入Neo4j + + Args: + data: 包含 entities 和 relationships 的字典 + + Returns: + Tuple[int, int]: (实体数量, 关系数量) + """ + if not data or not isinstance(data, dict): + print("无效的数据格式,需要字典类型") + return 0, 0 + + entity_count = 0 + relationship_count = 0 + + with self.driver.session() as session: + # 创建/更新实体节点 + for entity in data.get("entities", []): + try: + # 提取 properties,并注入 knowledge_source(如果存在) + props = entity.get("properties", {}).copy() + if "knowledge_source" in entity: + props["knowledge_source"] = entity["knowledge_source"] + + # 从 properties 中提取名称 + 名称 = props.pop("名称", None) + if not 名称: + print(f"跳过无名称节点: {entity}") + continue + + success = session.execute_write( + self._create_or_update_node, + entity["type"], + 名称, + props + ) + if success: + entity_count += 1 + except Exception as e: + print(f"处理节点失败: {entity}, 错误: {e}") + + # 创建/更新关系 + for relationship in data.get("relationships", []): + try: + success = session.execute_write( + self._create_relationship_with_timeline, + relationship["from_entity"], + relationship["to_entity"], + relationship["type"], + relationship.get("properties", {}) + ) + if success: + relationship_count += 1 + except Exception as e: + print(f"处理关系失败: {relationship}, 错误: {e}") + + print(f"成功处理 {entity_count} 个节点和 {relationship_count} 个关系") + return entity_count, relationship_count + + def get_relationship_history(self, from_name: str, to_name: str, rel_type: str) -> Optional[Dict]: + """获取关系的完整历史记录""" + with self.driver.session() as session: + result = session.run(""" + MATCH (a {名称: $from_name})-[r]->(b {名称: $to_name}) + WHERE type(r) = $rel_type + RETURN properties(r) as props + """, from_name=from_name, to_name=to_name, rel_type=rel_type) + + record = result.single() + return record["props"] if record else None + + def get_property_timeline(self, from_name: str, to_name: str, rel_type: str, + property_name: str) -> Optional[List]: + """获取特定属性的时间线(返回字符串列表,需 json.loads 解析)""" + history = self.get_relationship_history(from_name, to_name, rel_type) + if history: + return history.get(f"{property_name}_timeline", []) + return None + + def clear_database(self): + """清空数据库(谨慎使用)""" + with self.driver.session() as session: + session.run("MATCH (n) DETACH DELETE n") + print("数据库已清空") + +# if __name__ == "__main__": +# # 连接本地 Neo4j(请确保服务已启动) +# try: +# URI = "bolt://192.168.0.46:57687" +# USERNAME = "neo4j" +# PASSWORD = "zdht123@" +# with open("/storage01/home/hdf/project/wxkgrag/kgextract/output/output3/neo4j_export_merged1.json", "r", encoding="utf-8") as f: +# data = json.load(f) +# kg = MilitaryKnowledgeGraph( +# uri="bolt://192.168.0.46:57687", +# auth=("neo4j", "zdht123@"), +# ) +# entity_count, rel_count = kg.process_data(data) + + +# finally: +# # kg.clear_database() # 取消注释以清理测试数据 +# kg.close() + diff --git a/kg_build_0409/kg_save.py b/kg_build_0409/kg_save.py new file mode 100644 index 0000000..57465e0 --- /dev/null +++ b/kg_build_0409/kg_save.py @@ -0,0 +1,581 @@ +import json +from datetime import datetime, timezone +from typing import Dict, List, Optional, Tuple, Union +from neo4j import GraphDatabase + + +class MilitaryKnowledgeGraph: + def __init__(self, uri: str, auth: Tuple[str, str], Ontology: List[str] = None): + """ + 初始化知识图谱 + + Args: + uri: Neo4j 数据库连接地址 + auth: 认证信息 (用户名, 密码) + Ontology: 节点类型列表,用于创建唯一性约束和类型校验 + """ + self.driver = GraphDatabase.driver(uri, auth=auth) + + # 默认节点类型 + self.Ontology = Ontology or ["舰艇", "系统", "子系统", "部件", "一级零部件", "二级零部件", "故障模式", "维修方案", "操作项目", "备品备件", "维修手册", "操作使用手册"] + + self._setup_constraints() + + def close(self): + """关闭数据库连接""" + self.driver.close() + + def _setup_constraints(self): + """为每个节点类型设置 名称 字段的唯一性约束""" + with self.driver.session() as session: + for node_type in self.Ontology: + try: + session.run(f"CREATE CONSTRAINT IF NOT EXISTS FOR (n:{node_type}) REQUIRE n.名称 IS UNIQUE") + except Exception as e: + print(f"创建约束失败 {node_type}: {e}") + + def construct_fact(self, from_name: str, to_name: str, rel_type: str, attributes: Dict) -> str: + """构造关系的自然语言描述(fact)""" + attr_str = ", ".join([f"{k}:{v}" for k, v in attributes.items() if v]) + if attr_str: + return f"{from_name} {rel_type} {to_name},{attr_str}" + else: + return f"{from_name} {rel_type} {to_name}" + + # def _resolve_attribute_conflicts(self, existing_attrs: Dict, new_attrs: Dict) -> Dict: + # """解决属性冲突(保留最新状态、最早开始时间、最晚结束时间等)""" + # resolved = existing_attrs.copy() + # current_time = datetime.now(timezone.utc).isoformat() + + # for key, new_value in new_attrs.items(): + # if new_value is None or new_value == "": + # continue + + # if key not in existing_attrs: + # resolved[key] = new_value + # elif existing_attrs[key] != new_value: + # if key in ["当前状态", "执行状态", "完成状态"]: + # resolved[key] = new_value + # elif key in ["开始时间", "下达时间", "承担时间"]: + # if new_value < existing_attrs[key]: + # resolved[key] = new_value + # elif key in ["结束时间", "执行时限"]: + # if new_value > existing_attrs[key]: + # resolved[key] = new_value + # else: + # resolved[key] = new_value + # if f"{key}_history" not in resolved: + # resolved[f"{key}_history"] = [] + # resolved[f"{key}_history"].append({ + # "previous_value": existing_attrs[key], + # "new_value": new_value, + # "update_time": current_time + # }) + + # return resolved + def _resolve_attribute_conflicts(self, existing_attrs: Dict, new_attrs: Dict) -> Dict: + """ + 解决属性冲突: + 1. 状态类:直接覆盖 + 2. 开始时间类:取最早时间 + 3. 结束时间类:取最晚时间 + 4. 其他类:直接覆盖 (不再记录历史) + """ + resolved = existing_attrs.copy() + # current_time 在此版本中不再需要,但保留导入以防后续扩展使用 + # current_time = datetime.now(timezone.utc).isoformat() + + for key, new_value in new_attrs.items(): + if new_value is None or new_value == "": + continue + + if key not in existing_attrs: + # 新属性直接添加 + resolved[key] = new_value + elif existing_attrs[key] != new_value: + # 属性存在且值不同,根据类型处理 + if key in ["当前状态", "执行状态", "完成状态"]: + # 状态类:直接覆盖为新值 + resolved[key] = new_value + + elif key in ["开始时间", "下达时间", "承担时间"]: + # 开始时间类:保留更早的时间 + if new_value < existing_attrs[key]: + resolved[key] = new_value + + elif key in ["结束时间", "执行时限"]: + # 结束时间类:保留更晚的时间 + if new_value > existing_attrs[key]: + resolved[key] = new_value + + else: + # 其他普通属性:直接覆盖,不再生成 _history 字段 + resolved[key] = new_value + + return resolved + def _create_relationship_with_timeline(self, tx, from_name: str, to_name: str, + rel_type: str, attributes: Dict) -> bool: + """创建或更新带有时间线的关系""" + current_time = datetime.now(timezone.utc).isoformat() + clean_attributes = {k: v for k, v in attributes.items() if v is not None and v != ""} + + fact = self.construct_fact(from_name, to_name, rel_type, attributes) + clean_attributes["fact"] = fact + + existing_rel = tx.run(""" + MATCH (a {名称: $from_name})-[r]->(b {名称: $to_name}) + WHERE type(r) = $rel_type + RETURN r, properties(r) as props + """, from_name=from_name, to_name=to_name, rel_type=rel_type).single() + + if existing_rel: + existing_props = existing_rel["props"] + updated_props = existing_props.copy() + + for key, new_value in clean_attributes.items(): + if key == "fact": + continue + if key not in existing_props or existing_props[key] != new_value: + timeline_key = f"{key}_timeline" + if timeline_key not in updated_props: + updated_props[timeline_key] = [] + + timeline_entry_dict = { + "value": new_value, + "timestamp": current_time, + "source": "text_extraction" + } + if key in existing_props: + timeline_entry_dict["previous_value"] = existing_props[key] + + timeline_entry_str = json.dumps(timeline_entry_dict, ensure_ascii=False) + updated_props[timeline_key].append(timeline_entry_str) + updated_props[key] = new_value + + if "fact" in clean_attributes: + fact_timeline_key = "fact_timeline" + if fact_timeline_key not in updated_props: + updated_props[fact_timeline_key] = [] + + fact_entry_str = json.dumps({ + "value": clean_attributes["fact"], + "timestamp": current_time, + "source": "text_extraction" + }, ensure_ascii=False) + updated_props[fact_timeline_key].append(fact_entry_str) + updated_props["fact"] = clean_attributes["fact"] + + updated_props["last_updated"] = current_time + + query = f""" + MATCH (a {{名称: $from_name}})-[r:{rel_type}]->(b {{名称: $to_name}}) + SET r = $properties + RETURN r + """ + tx.run(query, from_name=from_name, to_name=to_name, properties=updated_props) + print(f"更新关系: {from_name} -[{rel_type}]-> {to_name}") + + else: + relationship_props = clean_attributes.copy() + + for key, value in clean_attributes.items(): + timeline_key = f"{key}_timeline" + timeline_entry_dict = { + "value": value, + "timestamp": current_time, + "source": "text_extraction" + } + timeline_entry_str = json.dumps(timeline_entry_dict, ensure_ascii=False) + relationship_props[timeline_key] = [timeline_entry_str] + + relationship_props["created_at"] = current_time + relationship_props["last_updated"] = current_time + relationship_props["update_count"] = 1 + + query = f""" + MATCH (a {{名称: $from_name}}), (b {{名称: $to_name}}) + CREATE (a)-[r:{rel_type} $properties]->(b) + RETURN r + """ + tx.run(query, from_name=from_name, to_name=to_name, properties=relationship_props) + print(f"创建关系: {from_name} -[{rel_type}]-> {to_name}") + + return True + + def _create_or_update_node(self, tx, node_type: str, 名称: str, attributes: Dict) -> bool: + """ + 创建或更新节点,支持 knowledge_source 等复杂字段 + + Args: + tx: Neo4j 事务对象 + node_type: 节点类型 + 名称: 节点名称(唯一标识) + attributes: 节点属性字典 + """ + if not 名称 or not node_type: + return False + + # 安全校验:只允许预定义的节点类型 + if node_type not in self.Ontology: + print(f"跳过未知节点类型: {node_type}") + return False + + # 预处理 attributes:将 knowledge_source 转为 JSON 字符串 + clean_attributes = {"名称": 名称} # 确保名称字段存在 + for k, v in attributes.items(): + if v is None or v == "": + continue + if k == "knowledge_source" and isinstance(v, list): + clean_attributes[k] = json.dumps(v, ensure_ascii=False) + else: + clean_attributes[k] = v + + existing_node = tx.run( + f"MATCH (n:{node_type} {{名称: $名称}}) RETURN n, properties(n) as props", + 名称=名称 + ).single() + + current_time = datetime.now(timezone.utc).isoformat() + + if existing_node: + existing_props = existing_node["props"] + existing_attrs = {k: v for k, v in existing_props.items() + if not k.endswith('_timeline') and k not in ['created_at', 'last_updated']} + + resolved_attributes = self._resolve_attribute_conflicts(existing_attrs, clean_attributes) + + timeline_data = {k: v for k, v in existing_props.items() + if k.endswith('_timeline') or k in ['created_at', 'last_updated']} + + final_attributes = {**timeline_data, **resolved_attributes} + final_attributes["last_updated"] = current_time + + query = f""" + MATCH (n:{node_type} {{名称: $名称}}) + SET n = $attributes + RETURN n + """ + tx.run(query, 名称=名称, attributes=final_attributes) + print(f"更新节点: {node_type} - {名称}") + else: + clean_attributes["created_at"] = current_time + clean_attributes["last_updated"] = current_time + + query = f""" + CREATE (n:{node_type} $attributes) + RETURN n + """ + tx.run(query, attributes=clean_attributes) + print(f"创建节点: {node_type} - {名称}") + + return True + + def process_data(self, data: Dict) -> Tuple[int, int]: + """ + 处理字典数据并写入Neo4j(批量版:按类型分组,减少 Neo4j 往返次数) + + Args: + data: 包含 entities 和 relationships 的字典 + + Returns: + Tuple[int, int]: (实体数量, 关系数量) + """ + if not data or not isinstance(data, dict): + print("无效的数据格式,需要字典类型") + return 0, 0 + + BATCH_SIZE = 50 + entity_count = 0 + relationship_count = 0 + current_time = datetime.now(timezone.utc).isoformat() + + # ── 1. 预处理实体,按类型分组 ────────────────────────────── + entities_by_type: Dict[str, List[dict]] = {} + for entity in data.get("entities", []): + node_type = entity.get("type", "") + if node_type not in self.Ontology: + print(f"跳过未知节点类型: {node_type}") + continue + props = entity.get("properties", {}).copy() + if "knowledge_source" in entity: + props["knowledge_source"] = entity["knowledge_source"] + 名称 = props.pop("名称", None) + if not 名称: + print(f"跳过无名称节点: {entity}") + continue + clean: Dict = {"名称": 名称} + for k, v in props.items(): + if v is None or v == "": + continue + if k == "knowledge_source" and isinstance(v, list): + clean[k] = json.dumps(v, ensure_ascii=False) + else: + clean[k] = v + entities_by_type.setdefault(node_type, []).append(clean) + + # ── 2. 按类型批量读取已存在节点,Python侧合并属性,批量写入 ── + with self.driver.session() as session: + for node_type, type_entities in entities_by_type.items(): + names = [e["名称"] for e in type_entities] + + # 一次读取该类型下所有涉及名称 + existing_list = session.execute_read( + self._batch_fetch_nodes, node_type, names + ) + existing_map = {r["名称"]: r for r in existing_list} + + to_create: List[dict] = [] + to_update: List[dict] = [] + + for clean_attrs in type_entities: + name = clean_attrs["名称"] + if name in existing_map: + existing_props = existing_map[name] + existing_attrs = { + k: v for k, v in existing_props.items() + if not k.endswith("_timeline") + and k not in ("created_at", "last_updated") + } + resolved = self._resolve_attribute_conflicts(existing_attrs, clean_attrs) + timeline_data = { + k: v for k, v in existing_props.items() + if k.endswith("_timeline") or k in ("created_at", "last_updated") + } + final = {**timeline_data, **resolved} + final["last_updated"] = current_time + to_update.append({"名称": name, "props": final}) + else: + new_attrs = dict(clean_attrs) + new_attrs["created_at"] = current_time + new_attrs["last_updated"] = current_time + to_create.append(new_attrs) + + for i in range(0, len(to_create), BATCH_SIZE): + batch = to_create[i: i + BATCH_SIZE] + try: + session.execute_write(self._batch_create_nodes, node_type, batch) + entity_count += len(batch) + except Exception as e: + print(f"批量创建节点失败 ({node_type} 批次{i // BATCH_SIZE}): {e}") + + for i in range(0, len(to_update), BATCH_SIZE): + batch = to_update[i: i + BATCH_SIZE] + try: + session.execute_write(self._batch_update_nodes, node_type, batch) + entity_count += len(batch) + except Exception as e: + print(f"批量更新节点失败 ({node_type} 批次{i // BATCH_SIZE}): {e}") + + # ── 3. 预处理关系,按类型分组 ────────────────────────────── + rels_by_type: Dict[str, List[dict]] = {} + for rel in data.get("relationships", []): + rel_type = rel.get("type", "") + if not rel_type or not rel.get("from_entity") or not rel.get("to_entity"): + continue + rels_by_type.setdefault(rel_type, []).append(rel) + + # ── 4. 按类型批量读取已存在关系,Python侧计算 timeline,批量写入 ── + with self.driver.session() as session: + for rel_type, type_rels in rels_by_type.items(): + pairs = [(r["from_entity"], r["to_entity"]) for r in type_rels] + + existing_list = session.execute_read( + self._batch_fetch_relationships, rel_type, pairs + ) + existing_map = { + (r["from_name"], r["to_name"]): r["props"] for r in existing_list + } + + to_create_r: List[dict] = [] + to_update_r: List[dict] = [] + + for rel in type_rels: + from_name = rel["from_entity"] + to_name = rel["to_entity"] + attributes = rel.get("properties", {}) + clean_attrs = {k: v for k, v in attributes.items() if v is not None and v != ""} + clean_attrs["fact"] = self.construct_fact(from_name, to_name, rel_type, attributes) + + key = (from_name, to_name) + if key in existing_map: + existing_props = existing_map[key] + updated_props = dict(existing_props) + + for k, new_value in clean_attrs.items(): + if k == "fact": + continue + if k not in existing_props or existing_props[k] != new_value: + tl_key = f"{k}_timeline" + if tl_key not in updated_props: + updated_props[tl_key] = [] + entry: dict = { + "value": new_value, + "timestamp": current_time, + "source": "text_extraction", + } + if k in existing_props: + entry["previous_value"] = existing_props[k] + updated_props[tl_key].append( + json.dumps(entry, ensure_ascii=False) + ) + updated_props[k] = new_value + + fact_tl_key = "fact_timeline" + if fact_tl_key not in updated_props: + updated_props[fact_tl_key] = [] + updated_props[fact_tl_key].append( + json.dumps( + {"value": clean_attrs["fact"], "timestamp": current_time, "source": "text_extraction"}, + ensure_ascii=False, + ) + ) + updated_props["fact"] = clean_attrs["fact"] + updated_props["last_updated"] = current_time + + to_update_r.append( + {"from_name": from_name, "to_name": to_name, "props": updated_props} + ) + else: + rel_props = dict(clean_attrs) + for k, v in clean_attrs.items(): + rel_props[f"{k}_timeline"] = [ + json.dumps( + {"value": v, "timestamp": current_time, "source": "text_extraction"}, + ensure_ascii=False, + ) + ] + rel_props["created_at"] = current_time + rel_props["last_updated"] = current_time + rel_props["update_count"] = 1 + to_create_r.append( + {"from_name": from_name, "to_name": to_name, "props": rel_props} + ) + + for i in range(0, len(to_create_r), BATCH_SIZE): + batch = to_create_r[i: i + BATCH_SIZE] + try: + session.execute_write(self._batch_create_relationships, rel_type, batch) + relationship_count += len(batch) + except Exception as e: + print(f"批量创建关系失败 ({rel_type} 批次{i // BATCH_SIZE}): {e}") + + for i in range(0, len(to_update_r), BATCH_SIZE): + batch = to_update_r[i: i + BATCH_SIZE] + try: + session.execute_write(self._batch_update_relationships, rel_type, batch) + relationship_count += len(batch) + except Exception as e: + print(f"批量更新关系失败 ({rel_type} 批次{i // BATCH_SIZE}): {e}") + + print(f"成功处理 {entity_count} 个节点和 {relationship_count} 个关系") + return entity_count, relationship_count + + # ── 批量辅助方法 ──────────────────────────────────────────────── + + @staticmethod + def _batch_fetch_nodes(tx, node_type: str, names: List[str]) -> List[dict]: + """一次性读取指定类型下所有涉及名称的节点属性""" + result = tx.run( + f"MATCH (n:{node_type}) WHERE n.名称 IN $names RETURN properties(n) AS props", + names=names, + ) + return [record["props"] for record in result] + + @staticmethod + def _batch_create_nodes(tx, node_type: str, nodes: List[dict]): + """批量创建节点(仅用于确认不存在的新节点)""" + tx.run( + f"UNWIND $nodes AS n CREATE (x:{node_type}) SET x = n", + nodes=nodes, + ) + + @staticmethod + def _batch_update_nodes(tx, node_type: str, updates: List[dict]): + """批量更新节点属性(完整覆盖,已在Python侧完成属性合并)""" + tx.run( + f"UNWIND $updates AS u " + f"MATCH (n:{node_type} {{名称: u.名称}}) " + f"SET n = u.props", + updates=updates, + ) + + @staticmethod + def _batch_fetch_relationships(tx, rel_type: str, pairs: List[Tuple[str, str]]) -> List[dict]: + """一次性读取指定类型下所有涉及节点对的关系属性""" + result = tx.run( + f"UNWIND $pairs AS pair " + f"MATCH (a {{名称: pair[0]}})-[r:{rel_type}]->(b {{名称: pair[1]}}) " + f"RETURN pair[0] AS from_name, pair[1] AS to_name, properties(r) AS props", + pairs=[[p[0], p[1]] for p in pairs], + ) + return [ + {"from_name": r["from_name"], "to_name": r["to_name"], "props": r["props"]} + for r in result + ] + + @staticmethod + def _batch_create_relationships(tx, rel_type: str, items: List[dict]): + """批量创建关系(仅用于确认不存在的新关系)""" + tx.run( + f"UNWIND $items AS item " + f"MATCH (a {{名称: item.from_name}}), (b {{名称: item.to_name}}) " + f"CREATE (a)-[r:{rel_type}]->(b) SET r = item.props", + items=items, + ) + + @staticmethod + def _batch_update_relationships(tx, rel_type: str, items: List[dict]): + """批量更新关系属性(完整覆盖,已在Python侧完成 timeline 合并)""" + tx.run( + f"UNWIND $items AS item " + f"MATCH (a {{名称: item.from_name}})-[r:{rel_type}]->(b {{名称: item.to_name}}) " + f"SET r = item.props", + items=items, + ) + + def get_relationship_history(self, from_name: str, to_name: str, rel_type: str) -> Optional[Dict]: + """获取关系的完整历史记录""" + with self.driver.session() as session: + result = session.run(""" + MATCH (a {名称: $from_name})-[r]->(b {名称: $to_name}) + WHERE type(r) = $rel_type + RETURN properties(r) as props + """, from_name=from_name, to_name=to_name, rel_type=rel_type) + + record = result.single() + return record["props"] if record else None + + def get_property_timeline(self, from_name: str, to_name: str, rel_type: str, + property_name: str) -> Optional[List]: + """获取特定属性的时间线(返回字符串列表,需 json.loads 解析)""" + history = self.get_relationship_history(from_name, to_name, rel_type) + if history: + return history.get(f"{property_name}_timeline", []) + return None + + def clear_database(self): + """清空数据库(谨慎使用)""" + with self.driver.session() as session: + session.run("MATCH (n) DETACH DELETE n") + print("数据库已清空") + +# if __name__ == "__main__": +# # 连接本地 Neo4j(请确保服务已启动) +# try: +# URI = "bolt://192.168.0.46:57687" +# USERNAME = "neo4j" +# PASSWORD = "zdht123@" +# with open("/storage01/home/hdf/project/wxkgrag/kgextract/output/output3/neo4j_export_merged1.json", "r", encoding="utf-8") as f: +# data = json.load(f) +# kg = MilitaryKnowledgeGraph( +# uri="bolt://192.168.0.46:57687", +# auth=("neo4j", "zdht123@"), +# ) +# entity_count, rel_count = kg.process_data(data) + + +# finally: +# # kg.clear_database() # 取消注释以清理测试数据 +# kg.close() + + diff --git a/kg_build_0409/model_api.py b/kg_build_0409/model_api.py new file mode 100644 index 0000000..bb8f1a9 --- /dev/null +++ b/kg_build_0409/model_api.py @@ -0,0 +1,580 @@ +import httpx +from openai import OpenAI +import os +import requests +import json +import asyncio +import aiohttp +from typing import List, Dict, Any,Optional +from tqdm import tqdm # 进度条支持(可选) +from openai import AsyncOpenAI + +class OpenaiAPI: + # def __init__(self): + # self.openai_embedding_api_base = os.getenv("OPENAI_API_EMBEDDING_BASE") + # self.openai_embedding_model = os.getenv("OPENAI_EMBEDDING_MODEL") + # self.openai_chat_api_base = os.getenv("OPENAI_API_BASE") + # self.openai_chat_model = os.getenv("OPENAI_MODEL") + # self.openai_api_key = os.getenv("OPENAI_API_KEY") + # self.openai_reranker_api_base = os.getenv("OPENAI_API_RERANKER_BASE") + # self.openai_reranker_model = os.getenv("OPENAI_RERANKER_MODEL") + + # self.embedding_client = OpenAI( + # api_key=self.openai_api_key, + # base_url=self.openai_embedding_api_base, + # ) + # self.chat_client = OpenAI( + # api_key=self.openai_api_key, + # base_url=self.openai_chat_api_base, + # ) + # self.rerank_client = OpenAI( + # api_key=self.openai_api_key, + # base_url=self.openai_reranker_api_base, + # ) + @staticmethod + def get_embeddings(embedding_texts: List[str]): + base_url=os.getenv("OPENAI_API_EMBEDDING_BASE") + embedding_base_url = os.path.join(base_url, "embeddings") + with httpx.Client(timeout=60) as client: + response = client.post( + embedding_base_url, + json={"model": "bge-m3", "input": embedding_texts}, + headers={"Authorization": os.getenv("OPENAI_API_KEY")}, + ) + embedding_list = response.json()["data"][0]["embedding"] + # response = OpenAI( + # api_key=os.getenv("OPENAI_API_KEY","EMPTY"), + # base_url=os.getenv("OPENAI_API_EMBEDDING_BASE","http://172.18.30.122:40052/v1"), + # ).embeddings.create( + # model=os.getenv("OPENAI_EMBEDDING_MODEL","bge-m3"), + # input=embedding_texts, + # ) + # embedding_list = response.data[0].embedding + return embedding_list + + @staticmethod + def batch_embeddings(embedding_texts: List[str]): + base_url=os.getenv("OPENAI_API_EMBEDDING_BASE") + embedding_base_url = os.path.join(base_url, "embeddings") + with httpx.Client(timeout=60) as client: + response = client.post( + embedding_base_url, + json={"model": "bge-m3", "input": embedding_texts}, + headers={"Authorization": os.getenv("OPENAI_API_KEY")}, + ) + embedding_list = response.json()["data"] + + return embedding_list + + @staticmethod + def rerank_query(query:str, documents:List[str], top_n: str =3): + """ + 发送重排序请求到 GPUStack API。 + + :param query: 查询字符串 + :param documents: 文档列表(字符串列表) + :param top_n: 返回的文档数量 + :param model: 使用的模型名称 + :param api_key: API 密钥 + :param server_url: API 服务器地址 + :return: API 的响应结果(JSON 格式) + + return : + { + "id": "rerank-1446b27f0d8642288578ee26707253a1", + "model": "bge-reranker-v2-m3", + "usage": { + "total_tokens": 53 + }, + "results": [ + { + "index": 2, + "document": { + "text": "I have a dog named Dollor" + }, + "relevance_score": 0.297119140625 + }, + { + "index": 1, + "document": { + "text": "hi" + }, + "relevance_score": 0.0009255409240722656 + }, + { + "index": 0, + "document": { + "text": "what is panda?" + }, + "relevance_score": 0.0008897781372070312 + } + ] + } + """ + + # 请求头 + headers = { + 'Content-Type': 'application/json', + 'Authorization': f'Bearer {os.getenv("OPENAI_API_KEY")}' + } + + # 请求体 + data = { + "model": os.getenv("OPENAI_RERANKER_MODEL"), + "query": query, + "top_n": top_n, + "documents": documents + } + + # 发送 POST 请求 + response = requests.post(os.getenv("OPENAI_API_RERANKER_BASE") + "/rerank", headers=headers, data=json.dumps(data)) + results_list = [] + + # 检查响应状态码 + if response.status_code == 200: + result_json= response.json() # 返回解析后的 JSON 数据 + for result in result_json["results"]: + results_list.append({"index":result["index"],"text":result["document"]["text"],"scores":result["relevance_score"]}) + # results_list.append(result["document"]["text"]) + # relevance_scores.append(result["relevance_score"]) + return results_list + + else: + raise Exception(f"Error: {response.status_code}\n{response.text}") # 抛出异常 + @staticmethod + def embedding_cosine_similarity(text_1, text_2): + # 请求头 + headers = { + 'Content-Type': 'application/json', + 'Authorization': f'Bearer {os.getenv("OPENAI_API_KEY")}' + } + + # 请求体 + data = { + "text_1": text_1, + "text_2": text_2, + "model": "bge-rerank" + } + + # # 发送 POST 请求 + # response = requests.post(os.getenv("OPENAI_API_EMBEDDING_BASE") + "/score", headers=headers, data=json.dumps(data)) + response = requests.post(os.getenv("OPENAI_API_RERANKER_BASE") + "/score", headers=headers, data=json.dumps(data)) + if response.status_code == 200: + result_json= response.json() + score = result_json["data"][0]["score"] + return score + else: + raise Exception(f"Error: {response.status_code}\n{response.text}") # 抛出异常 + @staticmethod + def open_api_chat(query: str,model: str): + response = OpenAI( + api_key=os.getenv("OPENAI_API_KEY"), + base_url=os.getenv("OPENAI_API_BASE"), + ).chat.completions.create( + model=model, + messages=[ + {"role":"system","content":"You are a helpful assistant."}, + {"role": "user", "content": query}, + ], + temperature=0.6, + stream=False + ) + return response.choices[0].message.content + + @staticmethod + async def open_api_chat_async(query: str, model: str = None, temperature: float = 0): + """ + async Chat API(graph search) + + Args: + query: + model: (OPENAI_MODEL) + temperature: + + Returns: + str: LLM return + """ + if model is None: + model = os.getenv("OPENAI_MODEL") + + api_key = os.getenv("OPENAI_API_KEY") + base_url = os.getenv("OPENAI_API_BASE") + + if not api_key or not base_url: + raise ValueError("Missing OpenAI API configuration") + + async with aiohttp.ClientSession() as session: + async with session.post( + f"{base_url}/chat/completions", + headers={ + "Authorization": f"Bearer {api_key}", + "Content-Type": "application/json" + }, + json={ + "model": model, + "messages": [ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": query} + ], + "temperature": temperature, + "stream": False + }, + timeout=aiohttp.ClientTimeout(total=60) + ) as response: + if response.status == 200: + data = await response.json() + return data["choices"][0]["message"]["content"] + else: + error_text = await response.text() + raise Exception(f"API") + @staticmethod + async def open_api_chat_async_json(query: str, model: str = None, temperature: float = 0.6): + """ + async Chat API (graph search) - 强制 JSON 输出模式(若后端支持) + + Args: + query: 用户提示(应包含明确的 JSON 输出指令) + model: 模型名称 + temperature: 温度参数 + + Returns: + str: LLM 返回的纯 JSON 字符串(理想情况下) + """ + if model is None: + model = os.getenv("OPENAI_MODEL") + + api_key = os.getenv("OPENAI_API_KEY") + base_url = os.getenv("OPENAI_API_BASE") + + if not api_key or not base_url: + raise ValueError("Missing OpenAI API configuration") + + # 构造请求体 + payload = { + "model": model, + "messages": [ + {"role": "system", "content": "You are a helpful assistant that outputs only valid JSON."}, + {"role": "user", "content": query} + ], + "temperature": temperature, + "stream": False, + "response_format": {"type": "json_object"} # ←←← 关键:强制 JSON 模式 + } + + # 某些后端(如旧版)可能不支持 extra_body,可移除 + # 如果你确定后端是 DashScope/Qwen,可以保留或删除 extra_body + # payload["extra_body"] = {"chat_template_kwargs": {"enable_thinking": False}} + + async with aiohttp.ClientSession() as session: + async with session.post( + f"{base_url}/chat/completions", + headers={ + "Authorization": f"Bearer {api_key}", + "Content-Type": "application/json" + }, + json=payload, + timeout=aiohttp.ClientTimeout(total=60) + ) as response: + if response.status == 200: + data = await response.json() + return data["choices"][0]["message"]["content"] + else: + error_text = await response.text() + raise Exception(f"API调用失败: {response.status} - {error_text}") + @staticmethod + def open_api_caht_without_thinking(query:str,model:str): + response = OpenAI( + api_key=os.getenv("OPENAI_API_KEY"), + base_url=os.getenv("OPENAI_API_BASE"), + ).chat.completions.create( + model=model, + messages=[ + {"role":"system","content":"You are a helpful assistant."}, + {"role": "user", "content": query},], + + temperature=0.1, + stream=False, + extra_body={"chat_template_kwargs": {"enable_thinking": False}}) + return response.choices[0].message.content + + @staticmethod + def open_api_chat_stream(query: str,model: str): + response = OpenAI( + api_key=os.getenv("OPENAI_API_KEY"), + base_url=os.getenv("OPENAI_API_BASE"), + ).chat.completions.create( + model=model, + messages=[ + {"role":"system","content":"You are a helpful assistant."}, + {"role": "user", "content": query}, + ], + temperature=0.6, + stream=True + ) + for chunk in response: + content = chunk.choices[0].delta.content + if content: + yield content.encode('utf-8') + + + @staticmethod + def context_chunk_process(markdown_context: str, chunks: List[Dict[str, Any]]) -> List[Dict[str, Any]]: + """同步调用入口""" + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + try: + result = loop.run_until_complete( + batch_chunk_process(markdown_context, chunks) + ) + finally: + loop.close() + return result + + @staticmethod + def openai_chat(query:str,timeout:int=60): + """调用OpenAI API""" + try: + base = os.getenv("OPENAI_API_BASE","http://192.168.0.46:59800/v1") + + client = OpenAI( + api_key=os.getenv("OPENAI_API_KEY","none"), + base_url=os.getenv("OPENAI_API_BASE","http://192.168.0.46:59800/v1"), + timeout=timeout # 👈 设置整体请求超时(秒) + + ) + + response = client.chat.completions.create( + model="Qwen3.5-35B-A3B", + messages=[ + {"role": "user", "content": query}, + ], + temperature=0.1, + stream=False, + response_format = {"type": "json_object"}, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + except Exception as e: + print(f"调用OpenAI API时出错: {e}") + return None + + @staticmethod + async def openai_chat_aysnc(query: str, timeout: int = 180) -> str | None: + """异步调用 OpenAI 兼容 API(如本地部署的 Qwen、vLLM、Ollama 等)""" + try: + base_url = os.getenv("OPENAI_API_BASE", "http://192.168.0.46:59800/v1") + api_key = os.getenv("OPENAI_API_KEY", "none") + + client = AsyncOpenAI( + api_key=api_key, + base_url=base_url, + timeout=timeout # 整体请求超时(秒) + ) + + response = await client.chat.completions.create( + model="Qwen3.5-35B-A3B", + messages=[ + {"role": "user", "content": query}, + ], + temperature=0.1, + stream=False, + response_format={"type": "json_object"}, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + + except Exception as e: + print(f"调用 OpenAI API 时出错: {e}") + return None + finally: + # 可选:显式关闭客户端(通常不需要,但可避免警告) + await client.close() + + + @staticmethod + def generate_embedding(text: str) -> Optional[List[float]]: + """调用OpenAI生成文本embedding""" + try: + client = OpenAI( + api_key=os.getenv("OPENAI_API_KEY", "EMPTY"), + base_url=os.getenv("OPENAI_API_EMBEDDING_BASE", "http://192.168.0.46/v1"), + ) + response = client.embeddings.create( + model="bge-m3", # 或你部署的embedding模型名 + input=text + ) + return response.data[0].embedding + except Exception as e: + print(f"生成embedding失败: {e}") + return None + +async def batch_chunk_process( + markdown_context: str, + chunks: List[Dict[str, Any]], + batch_size: int = 5, + timeout: int = 30 + ) -> List[Dict[str, Any]]: + """ + 批量处理文档块(异步并发) + + Args: + markdown_context: 完整文档内容 + chunks: 文档块列表,每个块需包含"text"键 + batch_size: 并发请求数 (默认5) + timeout: 单个请求超时时间(秒) + + Returns: + 处理后的文档块列表 + """ + # 初始化参数 + api_key = os.getenv("OPENAI_API_KEY") + base_url = os.getenv("OPENAI_API_BASE") + model = os.getenv("OPENAI_MODEL", "qwen3.5-35b") + + if not api_key or not base_url: + raise ValueError("Missing OpenAI API configuration") + + async def process_single_chunk( + session: aiohttp.ClientSession, + chunk: Dict[str, Any], + semaphore: asyncio.Semaphore + ) -> Dict[str, Any]: + """处理单个chunk的异步函数""" + async with semaphore: + text = chunk.get("text", "").strip() + if not text: + return chunk + + prompt = f""" + {markdown_context} + {text} + Please provide a succinct context for this chunk within the document. + Respond ONLY with the context text, no additional commentary. + """ + chinese_prompt = f""" + <文档> + {markdown_context} + + 以下是需要定位到整体文档中的片段 + <片段> + {text} + + 请简要说明该片段在整体文档中的上下文关系,以提升片段搜索效果。只需给出简洁的上下文说明,无需其他内容。 + """ + + try: + async with session.post( + f"{base_url}/chat/completions", + headers={"Authorization": f"Bearer {api_key}"}, + json={ + "model": model, + "messages": [ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": chinese_prompt} + ], + "temperature": 0.1, + "extra_body": {"chat_template_kwargs": {"enable_thinking": False}} + }, + timeout=timeout + ) as response: + if response.status == 200: + data = await response.json() + if data.get("choices"): + chunk["text"] = data["choices"][0]["message"]["content"].strip() + else: + print(f"API error for chunk: {await response.text()}") + except Exception as e: + print(f"Error processing chunk: {e}") + + return chunk + + # 创建信号量控制并发数 + semaphore = asyncio.Semaphore(batch_size) + + # 异步处理所有chunks + async with aiohttp.ClientSession() as session: + tasks = [ + process_single_chunk(session, chunk, semaphore) + for chunk in chunks + ] + + # 使用tqdm显示进度(可选) + processed_chunks = [] + for future in tqdm(asyncio.as_completed(tasks), total=len(tasks)): + processed_chunks.append(await future) + + return processed_chunks + +def prepare_rag_prompt(query, documents): + docs = "" + for i, doc in enumerate(documents): + docs += f"文本信息{i+1}:{doc}\n" + return f"""你作为一个文档检索问答专家,请你从以下文本信息中选取有用的内容作为参考,仔细思考后用中文回答用户的问题,如果文本中没有关于问题的答案,则回答不知道: + ----- + {docs} + ----- + 用户提问:{query} + 你的回答:""" + +def query_rewrite(query): + prompt = f""" + 你是一个专业的搜索查询优化助手。你的任务是根据用户输入的原始查询,生成更清晰、更易被搜索引擎理解的改写版本。请遵循以下规则: + + 1. **保持原意**:改写后的查询必须与用户意图一致,不能曲解原意。 + 2. **简洁清晰**:去掉冗余词,优化表达,但不要过度缩写。 + 3. **结构化**:如果查询适合拆解,可以适当结构化(如添加隐含的限定条件)。 + 4. **自然语言**:确保改写后的查询仍然符合自然语言习惯。 + 5. **多语言支持**:如果查询是中文,优先用中文改写;如果是英文,用英文优化。 + + 请改写以下查询,直接返回优化后的内容,不要额外解释: + 【用户查询开始】 + {query} + 【用户查询结束】 + """ + return OpenaiAPI.open_api_chat(prompt) + + +def RAG_PROMPT(QUERY,CONTEXT): + PROMPT = f""" +### Task: +Respond to the user query using the provided context, incorporating inline citations in the format [source_id] **only when the tag is explicitly provided** in the context. + +### Guidelines: +- If you don't know the answer, clearly state that. +- If uncertain, ask the user for clarification. +- Respond in the same language as the user's query. +- If the context is unreadable or of poor quality, inform the user and provide the best possible answer. +- If the answer isn't present in the context but you possess the knowledge, explain this to the user and provide the answer using your own understanding. +- When you find corresponding content in the provided sources, try to quote it verbatim as much as possible. +- When quoting from sources, reproduce the original text verbatim—do not omit, paraphrase, or add content. +- **Only include inline citations using [source_id] (e.g., [1], [2]) when a `` tag is explicitly provided in the context.** +- If the source file has a .glb extension, directly mark the corresponding content with the source_id in the relevant position. +- Do not cite if the or tag is not provided in the context. +- Do not use XML tags in your response. +- **If none of the provided sources contain relevant information to answer the question, respond only with: "没有找到相关来源" (No relevant sources found). Do not add any other content. +- Ensure citations are concise and directly related to the information provided. + +### Example of Citation: +If the user asks about a specific topic and the information is found in "whitepaper.pdf" with a provided , the response should include the citation like so: +* "According to the study, the proposed method increases efficiency by 20% [whitepaper.pdf]." +If no is present, the response should omit the citation. + +### Output: +Provide a clear and direct response to the user's query, including inline citations in the format [source_id] only when the tag is present in the context. + + +{CONTEXT} + + + +{QUERY} + +""" + return PROMPT + +# for chunk in response: +# content = chunk.choices[0].delta.content +# if content: +# print(content, end='', flush=True) +# print('\n') + # return response diff --git a/kg_build_0409/test/122-06A0014-B01001_发动机-维修手册.docx b/kg_build_0409/test/122-06A0014-B01001_发动机-维修手册.docx new file mode 100644 index 0000000..866a746 Binary files /dev/null and b/kg_build_0409/test/122-06A0014-B01001_发动机-维修手册.docx differ diff --git a/kg_build_0409/test/122-06A0014-B01001_发动机-维修手册.pdf b/kg_build_0409/test/122-06A0014-B01001_发动机-维修手册.pdf new file mode 100644 index 0000000..319ca4d Binary files /dev/null and b/kg_build_0409/test/122-06A0014-B01001_发动机-维修手册.pdf differ diff --git a/kg_build_0409/test/122-06A0014-B01001_发动机-维修手册_content_list.json b/kg_build_0409/test/122-06A0014-B01001_发动机-维修手册_content_list.json new file mode 100644 index 0000000..5eb1db3 --- /dev/null +++ b/kg_build_0409/test/122-06A0014-B01001_发动机-维修手册_content_list.json @@ -0,0 +1,9517 @@ +[ + { + "type": "text", + "text": "船舶主发动机 JY级维修手册", + "text_level": 1, + "bbox": [ + 163, + 349, + 836, + 487 + ], + "page_idx": 0 + }, + { + "type": "discarded", + "text": "1 ", + "bbox": [ + 514, + 916, + 524, + 927 + ], + "page_idx": 0 + }, + { + "type": "text", + "text": "目次", + "text_level": 1, + "bbox": [ + 472, + 92, + 526, + 114 + ], + "page_idx": 1 + }, + { + "type": "text", + "text": "1 安全警告.. 3 \n1.1 警告 ... 3 \n1.2 注意 .. 3 \n2 概述 ... 4 \n2.1 主要功能 .. 4 \n2.2 工作条件 .. 4 \n2.2.1 正常运行条件 . 4 \n2.2.2 非正常运行条件 . \n3 组成、技术特征及接口 5 \n3.1 组成 ... 5 \n3.2 工作原理 .. 6 \n3.3 技术指标 .. 11 \n3.4 接口关系 .. .13 \n3.5 布置情况 .. .14 \n4维修工作指导. 15 \n4.1 维修项目索引表 . .15 \n4.2 常见故障表 .. .16 \n4.3 维修项目表 .. .17 \n5 器材保障 ... 53 \n5.1 保障设施、保障设备(工具)信息汇总表. .53 \n5.2 消耗材料信息汇总表 .. .58 \n6 维修安全防护及注意事项汇总表. 59 \n6.1 安全防护 .. .59 \n6.2 注意事项 .. 60", + "bbox": [ + 142, + 118, + 853, + 585 + ], + "page_idx": 1 + }, + { + "type": "discarded", + "text": "2 ", + "bbox": [ + 494, + 929, + 504, + 940 + ], + "page_idx": 1 + }, + { + "type": "text", + "text": "1 安全警告", + "text_level": 1, + "bbox": [ + 151, + 91, + 354, + 122 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。", + "bbox": [ + 147, + 148, + 857, + 223 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "1.1 警告", + "text_level": 1, + "bbox": [ + 151, + 240, + 268, + 262 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。", + "bbox": [ + 147, + 285, + 852, + 330 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。", + "bbox": [ + 147, + 340, + 850, + 386 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。", + "bbox": [ + 146, + 395, + 850, + 441 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。", + "bbox": [ + 149, + 451, + 852, + 497 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "1.2 注意", + "text_level": 1, + "bbox": [ + 149, + 514, + 270, + 536 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "1) 所有更换件必须使用原厂或等同技术条件的认可备件。", + "bbox": [ + 188, + 560, + 697, + 577 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。", + "bbox": [ + 184, + 587, + 746, + 605 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。", + "bbox": [ + 146, + 615, + 852, + 659 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。", + "bbox": [ + 147, + 670, + 852, + 717 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。", + "bbox": [ + 188, + 726, + 715, + 744 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "6) 所有密封件(O形圈、金属密封环)拆装必换。", + "bbox": [ + 186, + 755, + 631, + 771 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "7) 紧固件必须按规定力矩和顺序紧固。", + "bbox": [ + 186, + 782, + 534, + 800 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "bbox": [ + 149, + 809, + 852, + 910 + ], + "page_idx": 2 + }, + { + "type": "discarded", + "text": "3 ", + "bbox": [ + 494, + 916, + 505, + 927 + ], + "page_idx": 2 + }, + { + "type": "text", + "text": "", + "bbox": [ + 149, + 84, + 850, + 130 + ], + "page_idx": 3 + }, + { + "type": "text", + "text": "2 概述", + "text_level": 1, + "bbox": [ + 149, + 147, + 282, + 177 + ], + "page_idx": 3 + }, + { + "type": "text", + "text": "2.1 主要功能", + "text_level": 1, + "bbox": [ + 149, + 211, + 326, + 235 + ], + "page_idx": 3 + }, + { + "type": "text", + "text": "船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。", + "bbox": [ + 149, + 258, + 852, + 331 + ], + "page_idx": 3 + }, + { + "type": "text", + "text": "发动机主要由以下子系统组成:", + "bbox": [ + 189, + 340, + 462, + 359 + ], + "page_idx": 3 + }, + { + "type": "text", + "text": "1) 机座与机架组件:承载与结构支撑; \n2) 曲柄连杆机构:实现往复—旋转运动转换; \n3) 燃烧室部件:完成燃烧做功; \n4) 排气阀驱动系统:控制废气排放; \n5) 燃油喷射系统:完成燃油定时、定量喷射; \n6) 扫气与增压系统:提高换气效率与功率密度。", + "bbox": [ + 193, + 367, + 626, + 525 + ], + "page_idx": 3 + }, + { + "type": "text", + "text": "2.2 工作条件", + "text_level": 1, + "bbox": [ + 149, + 542, + 326, + 564 + ], + "page_idx": 3 + }, + { + "type": "text", + "text": "2.2.1 正常运行条件", + "text_level": 1, + "bbox": [ + 149, + 594, + 394, + 617 + ], + "page_idx": 3 + }, + { + "type": "text", + "text": "1)环境条件长期纵倾: $\\pm 5 ^ { \\circ }$ ;横倾: $\\pm 1 5 ^ { \\circ }$ ; \n短期纵摇: $\\pm 1 0 ^ { \\circ }$ ( $5 { \\sim } 8 \\ \\textrm { s }$ );横摇: $\\pm 4 5 ^ { \\circ }$ ( $\\mathord { \\left. \\left( 8 \\sim 1 3 \\right. \\right. }$ s); \n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$ ; \n相对湿度: ${ \\leqslant } 9 3 \\%$ ( $4 0 \\textrm { ‰}$ )。", + "bbox": [ + 188, + 639, + 715, + 769 + ], + "page_idx": 3 + }, + { + "type": "text", + "text": "2)能源条件", + "text_level": 1, + "bbox": [ + 188, + 778, + 304, + 797 + ], + "page_idx": 3 + }, + { + "type": "table", + "img_path": "images/7d1ab41a2e9f01f6223eb743650f9964cba8430f464a73f71ac37b0b49aa2fe5.jpg", + "table_caption": [ + "表 2.1 冷水机组正常使用时的能源条件" + ], + "table_footnote": [], + "table_body": "
项目编号操作项目
序号项目船舶主发动机
1.燃油船用重油/轻柴油(符合ISO 标准)
2.润滑油主机系统油(厂家指定牌号)
3.冷却介质淡水/海水冷却系统
4.控制电源AC 380 V/ 50 Hz
", + "bbox": [ + 139, + 824, + 860, + 907 + ], + "page_idx": 3 + }, + { + "type": "discarded", + "text": "4 ", + "bbox": [ + 492, + 916, + 504, + 927 + ], + "page_idx": 3 + }, + { + "type": "table", + "img_path": "", + "table_caption": [], + "table_footnote": [], + "bbox": [ + 139, + 83, + 858, + 127 + ], + "page_idx": 4 + }, + { + "type": "text", + "text": "2.2.2 非正常运行条件", + "text_level": 1, + "bbox": [ + 149, + 147, + 408, + 171 + ], + "page_idx": 4 + }, + { + "type": "table", + "img_path": "images/48914957a5b6b0ad1d0619524939cd09eeaf469d058bcac98b28267dbe986a85.jpg", + "table_caption": [ + "表 2.2 非正常输入条件及产生后果" + ], + "table_footnote": [], + "table_body": "
序号项目非正常输入条件可能产生后果
1.润滑油系统润滑油压力过低主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死
2.冷却系统冷却水中断或流量不足气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死
3.燃油系统燃油污染(水分、杂质超标)喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化
4.扫气系统扫气压力不足气缸换气不良,燃烧恶化,排气温度升高
5.增压系统涡轮增压器效率下降或失效主机功率下降,燃油消耗率上升
6.电控系统控制信号异常或供电不稳启停、保护、报警功能异常,存在误操作风险
", + "bbox": [ + 137, + 211, + 860, + 434 + ], + "page_idx": 4 + }, + { + "type": "table", + "img_path": "images/b14766f57c8b6bb08e78defe0b3ac24f5444ff2b96fb0bd8f12e3447492db4b5.jpg", + "table_caption": [ + "表 2.3 设备故障非正常输出条件及可能产生后果" + ], + "table_footnote": [], + "table_body": "
序号故障非正常输出条件可能产生后果
1.主轴承或连杆轴承损坏曲轴输出扭矩不稳定,振动和噪声显著增大推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全
2.气缸套或活塞严重磨损单缸功率下降,缸间功率不均主机运行不平稳,长期运行可能导致曲轴疲劳损伤
3.排气阀密封失效排气温度异常升高,排气背压增大涡轮增压器过热,降低增压系统使用寿命
4.喷油器雾化不良燃烧延迟,燃烧不完全,排烟恶化排气系统积碳增加,空冷器、涡轮效率下降
5.冷却系统效率降低主机整体热负荷增大,温度报警频繁附属设备(冷却泵、换热器)超负荷运行,可靠性下降
6.润滑油系统故障润滑油温度升高、油质劣化加快加速各运动副磨损,缩短主发动机大修周期
7.主发动机功率异常波动推进功率输出不稳定船舶航速控制困难,影响操纵性能和航行安全
8.主机紧急停机推进动力瞬间中断对船舶航行安全造成直接影响,可能引发次生事故
", + "bbox": [ + 132, + 453, + 865, + 764 + ], + "page_idx": 4 + }, + { + "type": "text", + "text": "3 组成、技术特征及接口", + "text_level": 1, + "bbox": [ + 146, + 771, + 576, + 802 + ], + "page_idx": 4 + }, + { + "type": "text", + "text": "3.1 组成", + "text_level": 1, + "bbox": [ + 147, + 835, + 272, + 858 + ], + "page_idx": 4 + }, + { + "type": "text", + "text": "船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀", + "bbox": [ + 186, + 881, + 850, + 900 + ], + "page_idx": 4 + }, + { + "type": "discarded", + "text": "5 ", + "bbox": [ + 494, + 916, + 504, + 927 + ], + "page_idx": 4 + }, + { + "type": "text", + "text": "驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。", + "bbox": [ + 147, + 84, + 852, + 130 + ], + "page_idx": 5 + }, + { + "type": "image", + "img_path": "images/6fc722802de6802965af72c518cabcfe8396a3964a9870d16b4f6eb3f902b616.jpg", + "image_caption": [ + "图 3.1 船舶主发动机组成图" + ], + "image_footnote": [], + "bbox": [ + 240, + 155, + 763, + 492 + ], + "page_idx": 5 + }, + { + "type": "table", + "img_path": "images/479e1fc0cdf5cf2e5e1e5d556831ac706c0a5c0eb1f61c19837928157d7c93a2.jpg", + "table_caption": [ + "表 3.1 船舶主发动机组成部分" + ], + "table_footnote": [], + "table_body": "
序号组成部分功能数量
1机座与机架组件承重与结构支撑1
2曲柄连杆机构动力转换1
3燃烧室部件燃烧做功1
4排气阀驱动系统排气控制1
5燃油喷射系统喷油控制1
6扫气与增压系统换气增压1
", + "bbox": [ + 139, + 533, + 858, + 670 + ], + "page_idx": 5 + }, + { + "type": "text", + "text": "3.2 工作原理", + "text_level": 1, + "bbox": [ + 147, + 676, + 327, + 699 + ], + "page_idx": 5 + }, + { + "type": "text", + "text": "主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。", + "bbox": [ + 147, + 720, + 852, + 824 + ], + "page_idx": 5 + }, + { + "type": "discarded", + "text": "6 ", + "bbox": [ + 492, + 916, + 504, + 927 + ], + "page_idx": 5 + }, + { + "type": "image", + "img_path": "images/bd4258956b20d9dcabbd0c712d8e534e398fb374d0cb399f464c893b45134f3a.jpg", + "image_caption": [ + "船舶主发动机工作原理", + "图 3.2 船舶主发动机组成图" + ], + "image_footnote": [], + "bbox": [ + 161, + 121, + 826, + 411 + ], + "page_idx": 6 + }, + { + "type": "text", + "text": "机座与机架组件用于称重与结构支持,其整体图如图 3.3所示。", + "bbox": [ + 186, + 441, + 746, + 458 + ], + "page_idx": 6 + }, + { + "type": "image", + "img_path": "images/bfa885471a29ea79161508b99ccbe8b105ed5d34631d52f844f80a67bb26c9f5.jpg", + "image_caption": [ + "图 3.3 机座与机架组件整体图" + ], + "image_footnote": [], + "bbox": [ + 152, + 501, + 840, + 799 + ], + "page_idx": 6 + }, + { + "type": "discarded", + "text": "", + "bbox": [ + 494, + 916, + 504, + 926 + ], + "page_idx": 6 + }, + { + "type": "image", + "img_path": "images/5eccda7191be7f95f7ee738c15a5e3bc2e1dab428a10d5f74cc8dd2b0fd3da8b.jpg", + "image_caption": [ + "图 3.4 曲柄连杆机构工作原理图" + ], + "image_footnote": [], + "bbox": [ + 163, + 87, + 847, + 468 + ], + "page_idx": 7 + }, + { + "type": "text", + "text": "曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。", + "bbox": [ + 147, + 497, + 852, + 599 + ], + "page_idx": 7 + }, + { + "type": "image", + "img_path": "images/5801f66aca8813958597a692b39a88de267c365557f9698663ed1b0304c1b184.jpg", + "image_caption": [ + "图 3.5 燃烧室部件工作原理图" + ], + "image_footnote": [], + "bbox": [ + 265, + 621, + 736, + 795 + ], + "page_idx": 7 + }, + { + "type": "text", + "text": "图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。", + "bbox": [ + 147, + 840, + 852, + 914 + ], + "page_idx": 7 + }, + { + "type": "discarded", + "text": "", + "bbox": [ + 811, + 451, + 848, + 470 + ], + "page_idx": 7 + }, + { + "type": "discarded", + "text": "8 ", + "bbox": [ + 492, + 916, + 504, + 927 + ], + "page_idx": 7 + }, + { + "type": "text", + "text": "", + "bbox": [ + 147, + 84, + 850, + 130 + ], + "page_idx": 8 + }, + { + "type": "image", + "img_path": "images/4356ee5a81d0ad1af582209f40cc3f53218918ee4dd2b4b1be17896313c12585.jpg", + "image_caption": [ + "图 3.6 排气阀驱动系统工作原理图" + ], + "image_footnote": [], + "bbox": [ + 287, + 152, + 726, + 468 + ], + "page_idx": 8 + }, + { + "type": "text", + "text": "船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。", + "bbox": [ + 147, + 499, + 852, + 600 + ], + "page_idx": 8 + }, + { + "type": "text", + "text": "核心原理与步骤 ", + "bbox": [ + 188, + 609, + 336, + 627 + ], + "page_idx": 8 + }, + { + "type": "text", + "text": "动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。", + "bbox": [ + 186, + 638, + 826, + 655 + ], + "page_idx": 8 + }, + { + "type": "text", + "text": "凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。", + "bbox": [ + 188, + 665, + 848, + 683 + ], + "page_idx": 8 + }, + { + "type": "text", + "text": "传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。", + "bbox": [ + 149, + 693, + 852, + 737 + ], + "page_idx": 8 + }, + { + "type": "text", + "text": "阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。", + "bbox": [ + 149, + 749, + 852, + 794 + ], + "page_idx": 8 + }, + { + "type": "text", + "text": "精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。", + "bbox": [ + 149, + 804, + 850, + 850 + ], + "page_idx": 8 + }, + { + "type": "discarded", + "text": "9 ", + "bbox": [ + 492, + 916, + 504, + 927 + ], + "page_idx": 8 + }, + { + "type": "image", + "img_path": "images/5228256a4a600e6a4fd77ac68044c055b8eaafb6c7d3721b58e28d279b1fbc01.jpg", + "image_caption": [ + "图 3.7 燃油喷射系统工作原理图" + ], + "image_footnote": [], + "bbox": [ + 201, + 93, + 801, + 360 + ], + "page_idx": 9 + }, + { + "type": "text", + "text": "如图 3.7 中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。", + "bbox": [ + 147, + 405, + 853, + 562 + ], + "page_idx": 9 + }, + { + "type": "image", + "img_path": "images/1ef200926265e45dc11f24e9cb9cd849bb679b4e2f49f60d6b92e8fad6dee1ba.jpg", + "image_caption": [ + "图 3.8 扫气与增压系统工作原理图" + ], + "image_footnote": [], + "bbox": [ + 245, + 585, + 784, + 837 + ], + "page_idx": 9 + }, + { + "type": "text", + "text": "船舶柴油机扫气与增压系统原理核心在于废气涡轮增压和扫气过程配合,利用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。", + "bbox": [ + 184, + 873, + 850, + 890 + ], + "page_idx": 9 + }, + { + "type": "discarded", + "text": "10 ", + "bbox": [ + 490, + 916, + 509, + 927 + ], + "page_idx": 9 + }, + { + "type": "text", + "text": "", + "bbox": [ + 147, + 84, + 852, + 158 + ], + "page_idx": 10 + }, + { + "type": "text", + "text": "增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 $7 0 0 { - } 9 0 0 ^ { \\circ } \\mathrm { ~ C ~ }$ 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。", + "bbox": [ + 147, + 167, + 852, + 325 + ], + "page_idx": 10 + }, + { + "type": "text", + "text": "扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。", + "bbox": [ + 147, + 334, + 852, + 519 + ], + "page_idx": 10 + }, + { + "type": "text", + "text": "3.3 技术指标", + "text_level": 1, + "bbox": [ + 147, + 536, + 326, + 558 + ], + "page_idx": 10 + }, + { + "type": "text", + "text": "船舶主发动机的基本指标参见表3.2。", + "bbox": [ + 186, + 581, + 519, + 600 + ], + "page_idx": 10 + }, + { + "type": "table", + "img_path": "images/de4f71d6f12eac8e24b2edd776ba63089651517cad7557a8548ab902b66cbb49.jpg", + "table_caption": [ + "表 3.2 船舶主发动机基本参数" + ], + "table_footnote": [], + "table_body": "
指标名称参数值
1、功能特性
类型低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机
燃油类型重质燃料油(HFO),黏度 ≤700cSt@50°C
启动方式压缩空气启动(3.0MPa)
额定转速127 r/min
气缸数6
缸径×行程500 mm × 2200 mm
平均有效压力(BMEP)≈ 1.85 MPa
2、能力限制
最大持续功率(MCR)8,520 kW (@ 127 r/min)
指标名称参数值
最小稳定运行转速20% MCR(约 25 r/min)
排气温度(正常工况)≤ 420℃
扫气压力0.32 MPa
3、额定输出
输出功率8,520 kW(≈ 11,580 HP)
输出扭矩≈ 640 kN·m
燃油消耗率(ISO条件)≤ 172 g/kWh
滑油消耗率≤ 0.6 g/kWh
4、环境特性
工作环境温度-25℃~+50℃
冷却水进口温度≤ 36℃
相对湿度≤95%(无凝露)
单位散热量(总)≈ 1,800 kW(含缸套水、活塞冷却、润滑油等)
外形尺寸与重量
整机外形尺寸(L×WXH)≈ 11,200 mm × 4,500 mm × 6,800 mm
总干重(不含滑油、冷却水)≈ 210,000 kg
5、外形尺寸、重量
重量焊接机座组件(0101)18,500 kg
A型机架组件(0102)12,400 kg
曲轴组件(0201)28,000 kg
飞轮(020103)3,500 kg
涡轮增压器(0601)2,100 kg
空冷器(0602)850kg
辅助鼓风机(0603,单台)120 kg(共2台)
6、其它指标
设计寿命≥ 25年(或 200,000小时)
关键寿命件更换周期气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h
控制系统电子控制燃油喷射(ME-C 系统)
安全保护超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护
", + "bbox": [ + 137, + 627, + 860, + 896 + ], + "page_idx": 10 + }, + { + "type": "discarded", + "text": "11 ", + "bbox": [ + 489, + 916, + 507, + 927 + ], + "page_idx": 10 + }, + { + "type": "table", + "img_path": "", + "table_caption": [], + "table_footnote": [], + "bbox": [ + 139, + 85, + 860, + 881 + ], + "page_idx": 11 + }, + { + "type": "discarded", + "text": "", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 11 + }, + { + "type": "text", + "text": "3.4 接口关系", + "text_level": 1, + "bbox": [ + 149, + 91, + 324, + 114 + ], + "page_idx": 12 + }, + { + "type": "text", + "text": "船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与舰船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。", + "bbox": [ + 149, + 136, + 852, + 237 + ], + "page_idx": 12 + }, + { + "type": "text", + "text": "1) 安装接口", + "text_level": 1, + "bbox": [ + 189, + 248, + 314, + 266 + ], + "page_idx": 12 + }, + { + "type": "text", + "text": "主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48$\\times 3 2 0$ 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。", + "bbox": [ + 149, + 275, + 852, + 349 + ], + "page_idx": 12 + }, + { + "type": "text", + "text": "2) 能源接口", + "text_level": 1, + "bbox": [ + 188, + 360, + 312, + 376 + ], + "page_idx": 12 + }, + { + "type": "text", + "text": "燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管( $\\mathrm { 0 4 0 2 0 2 / 0 5 0 3 }$ 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。", + "bbox": [ + 149, + 387, + 852, + 461 + ], + "page_idx": 12 + }, + { + "type": "text", + "text": "滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。", + "bbox": [ + 151, + 470, + 850, + 544 + ], + "page_idx": 12 + }, + { + "type": "text", + "text": "冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。", + "bbox": [ + 149, + 554, + 842, + 600 + ], + "page_idx": 12 + }, + { + "type": "text", + "text": "扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;", + "bbox": [ + 147, + 609, + 848, + 655 + ], + "page_idx": 12 + }, + { + "type": "text", + "text": "燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。", + "bbox": [ + 184, + 664, + 848, + 683 + ], + "page_idx": 12 + }, + { + "type": "text", + "text": "启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。", + "bbox": [ + 147, + 692, + 850, + 765 + ], + "page_idx": 12 + }, + { + "type": "text", + "text": "3) 信息与监测接口", + "text_level": 1, + "bbox": [ + 188, + 776, + 374, + 794 + ], + "page_idx": 12 + }, + { + "type": "text", + "text": "各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。", + "bbox": [ + 149, + 803, + 853, + 904 + ], + "page_idx": 12 + }, + { + "type": "discarded", + "text": "", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 12 + }, + { + "type": "text", + "text": "", + "bbox": [ + 147, + 85, + 643, + 103 + ], + "page_idx": 13 + }, + { + "type": "text", + "text": "3.5 布置情况", + "text_level": 1, + "bbox": [ + 147, + 120, + 326, + 142 + ], + "page_idx": 13 + }, + { + "type": "text", + "text": "全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:", + "bbox": [ + 188, + 164, + 805, + 183 + ], + "page_idx": 13 + }, + { + "type": "text", + "text": "船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。", + "bbox": [ + 147, + 192, + 858, + 267 + ], + "page_idx": 13 + }, + { + "type": "text", + "text": "船舶主发动机布置情况见表 3.3。", + "bbox": [ + 188, + 275, + 478, + 294 + ], + "page_idx": 13 + }, + { + "type": "table", + "img_path": "images/608669ca683aecd6fe10c70b4889864098be672ca0a39a0c9cf052b74fd5c9fe.jpg", + "table_caption": [ + "表 3.3 船舶主发动机布置情况" + ], + "table_footnote": [], + "table_body": "
序号设备名称位置信息
1船舶主推进柴油机(整机)主机舱中部,沿船体纵肿线安装
2焊接机座组件(0101)固定于主机舱船体基座上
3A型机架组件(0102)安装于焊接机座上方
4曲轴组件(0201)位于机座主轴承座内,纵向贯穿主机
5连杆组件(0202)连接曲轴与活塞,每缸1套,共6套
6气缸盖组件(0301)安装于气缸套顶部,共6个
7活塞与活塞杆组件(0302)位于气缸套内,每缸1套,共6套
8气缸套组件(0303)嵌入机架水腔中,共6套
9排气阀组件(0401)安装于气缸盖顶部,每缸1套
10液压驱动器(0402)布置于气缸盖侧上方,与排气阀联动
11燃油供给单元(0501)主机前端右侧平台
12高压油泵(0503)安装于凸轮轴箱体上,每缸1台
13喷油器组件(0502)插入气缸盖中心孔,每缸3支(共18支)
14涡轮增压器(0601)主机排气总管上方,垂直安装
15空冷器(0602)增压器下游,固定于机架顶部
16辅助鼓风机(0603)机舱两侧应急风机平台,共2台
17启动阀(030102)集成于气缸盖,连接启动空气管路
18安全阀(030103)安装于气缸盖测压口
19示功阀(030104)位于气缸盖示功通道接口处
20活塞杆填料函(030206)安装于十字头导板下方密封区域
", + "bbox": [ + 137, + 321, + 858, + 803 + ], + "page_idx": 13 + }, + { + "type": "discarded", + "text": "14 ", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 13 + }, + { + "type": "text", + "text": "4维修工作指导", + "text_level": 1, + "bbox": [ + 149, + 91, + 401, + 122 + ], + "page_idx": 14 + }, + { + "type": "text", + "text": "4.1 维修项目索引表", + "text_level": 1, + "bbox": [ + 149, + 155, + 406, + 179 + ], + "page_idx": 14 + }, + { + "type": "table", + "img_path": "images/2ad0b0d5a5d6d2fa597a3e3164f5c0e68c4779988b1bf0398537fcd883602b43.jpg", + "table_caption": [ + "表 4.1 船舶主发动机维修项目索引表" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别真购
MT00101机座与机架组件保养机座与机架组件1MJY级20
MT0020101焊接机座组件检查主轴承座安装状态6M/2000hJY级22
MT0030201曲轴组件检测曲轴主轴颈跳动量1A/8000hJY级24
MT004020201连杆大端轴承更换连杆大端轴承2A/12000hJY级26
MT005020203连杆小端轴承更换连杆小端轴承2A/12000hJY级29
MT006030201活塞头拆检活塞头磨损情况1A/8000hJY级31
MT0070302031号压缩环更换1号压缩环1A/8000hJY级33
MT0080302042-4号活塞环更换2-4号活塞环1A/8000hJY级35
MT009030301气缸套检测气缸套内径磨损量1A/8000hJY级37
MT010030301气缸套更换气缸套4A/32000hJY级40
MT011040102阀杆检查排气阀杆密封面磨损6M/4000hJY级43
MT012040103阀座更换排气阀座2A/16000hJY级45
MT013050201喷油嘴偶件更换喷油嘴偶件6M/4000hJY级47
MT014050301柱塞偶件更换高压油泵柱塞偶件1A/8000hJY级49
MT015060103轴承组件更换涡轮增压器轴承组件2A/16000hZJ级52
MT016060201管束芯体清洗空冷器管束芯体3MZJ级54
MT017020201连杆大端轴承修复连杆大端轴承异常磨损1UZJ级57
MT018030201活塞头修复活塞头部烧蚀1UZJ级59
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0190502喷油器组件排除喷油器雾化不良故障1UZJ级61
MT02001机座与机架组件排除主机功率异常波动故障1UZJ级63
", + "bbox": [ + 109, + 218, + 889, + 901 + ], + "page_idx": 14 + }, + { + "type": "discarded", + "text": "", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 14 + }, + { + "type": "table", + "img_path": "", + "table_caption": [], + "table_footnote": [], + "bbox": [ + 109, + 83, + 889, + 203 + ], + "page_idx": 15 + }, + { + "type": "text", + "text": "4.2 常见故障表", + "text_level": 1, + "bbox": [ + 147, + 209, + 352, + 233 + ], + "page_idx": 15 + }, + { + "type": "table", + "img_path": "images/4b65321f34d891cb6ea48e91528629dab2bcdf9ce2723668403e6d53947ca444.jpg", + "table_caption": [ + "表 4.2 船舶主发动机常见故障表" + ], + "table_footnote": [], + "table_body": "
序号故障现象故障原因维修项目
1机座与机架组件运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MT004 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2气缸套排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
3扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01 保养机座与机架组件
4轴承组件启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MTO01保养机座与机架组件
6机座与机架组件功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8机座与机架组件润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MT007更换1号压缩环MT008 更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MTO01保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10轴承组件紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
", + "bbox": [ + 137, + 269, + 860, + 898 + ], + "page_idx": 15 + }, + { + "type": "discarded", + "text": "16 ", + "bbox": [ + 490, + 916, + 509, + 927 + ], + "page_idx": 15 + }, + { + "type": "text", + "text": "4.3 维修项目表", + "text_level": 1, + "bbox": [ + 149, + 91, + 352, + 115 + ], + "page_idx": 16 + }, + { + "type": "text", + "text": "本节主要填写各维修项目的修理表,包括预防性、恢复性维修、故障排查项目。", + "bbox": [ + 149, + 136, + 852, + 183 + ], + "page_idx": 16 + }, + { + "type": "table", + "img_path": "images/6e8074868b7942cc08c33f6dfbf9313f069c102e3c567c11a890b9ad36ef2908.jpg", + "table_caption": [ + "表 4.3 MT001 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT00101机座与机架组件保养机座与机架组件1MJY级
", + "bbox": [ + 141, + 210, + 857, + 279 + ], + "page_idx": 16 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 147, + 279, + 258, + 292 + ], + "page_idx": 16 + }, + { + "type": "text", + "text": "1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌; \n2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。", + "bbox": [ + 184, + 294, + 710, + 325 + ], + "page_idx": 16 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 149, + 328, + 258, + 342 + ], + "page_idx": 16 + }, + { + "type": "text", + "text": "1.保养前确认主机已停机至少 2 小时,确保系统无残余压力与高温; \n2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。", + "bbox": [ + 179, + 343, + 734, + 374 + ], + "page_idx": 16 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 146, + 376, + 648, + 392 + ], + "page_idx": 16 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 151, + 393, + 388, + 407 + ], + "page_idx": 16 + }, + { + "type": "table", + "img_path": "images/cce46cedb45e6ad9450d8266a51ac4a9e72c596c3aeea66c5851c9b1d974838c.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1液压升降平台HLP-30001台用于接近主机上部
2扭矩扳手TB-200N·m1把精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FIT1套厂家配套
4工业吸油泵VAC-0IL501台防爆型
", + "bbox": [ + 149, + 409, + 843, + 542 + ], + "page_idx": 16 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 543, + 248, + 557 + ], + "page_idx": 16 + }, + { + "type": "table", + "img_path": "images/06491b14239be5901244676b1837af97fdd5b948b305d987602d45744cfa361f.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
1高压燃油泵HD-45A2个原厂件
2涡轮增压器TC-80B1个耐高温氟橡胶
", + "bbox": [ + 151, + 558, + 842, + 617 + ], + "page_idx": 16 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 617, + 248, + 631 + ], + "page_idx": 16 + }, + { + "type": "table", + "img_path": "images/6d6ca63802dd1b24d0bc263444747c3f20a73b9aa00f9c07c3062a7a738fb79e.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1柴油机专用润滑油Shell Mysella S5N8050L符合MAN 97101标准
2无纺布抹布Industrial Grade5张不掉屑
3清洗剂CRC Brakleen1罐用于清洁滤座
", + "bbox": [ + 149, + 632, + 842, + 728 + ], + "page_idx": 16 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 730, + 247, + 743 + ], + "page_idx": 16 + }, + { + "type": "table", + "img_path": "images/e0bee63d00a6b8f1d1dbc375faf0d13c30c5ed815cc5afce288b69223135a6f0.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2工程师主导保养流程
2电气专业1技师监控主机 ECU 状态
", + "bbox": [ + 149, + 744, + 843, + 821 + ], + "page_idx": 16 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 824, + 277, + 838 + ], + "page_idx": 16 + }, + { + "type": "text", + "text": "保养前检查与准备", + "bbox": [ + 149, + 840, + 292, + 856 + ], + "page_idx": 16 + }, + { + "type": "text", + "text": "1)确认主机已停机冷却,滑油温度 $\\leqslant 5 0 \\mathrm { { ^ \\circ C } }$ ; \n2)断开主机启动电源,并在集控室操作屏挂“保养中”标识; \n3)准备接油盘置于主机油底壳下方,容量 ${ \\geqslant } 6 0 \\mathrm { ~ L ~ }$ 。", + "bbox": [ + 183, + 857, + 662, + 904 + ], + "page_idx": 16 + }, + { + "type": "discarded", + "text": "", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 16 + }, + { + "type": "text", + "text": "执行保养作业", + "text_level": 1, + "bbox": [ + 147, + 85, + 258, + 101 + ], + "page_idx": 17 + }, + { + "type": "text", + "text": "1)排放旧机油 ", + "bbox": [ + 184, + 102, + 302, + 116 + ], + "page_idx": 17 + }, + { + "type": "text", + "text": "(1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油;", + "bbox": [ + 188, + 118, + 714, + 133 + ], + "page_idx": 17 + }, + { + "type": "image", + "img_path": "images/c7984190fee004cb8de583bb00c4c25d4cb6f011a6b9d6f02cd95ba50aa6e672.jpg", + "image_caption": [ + "图 MT001.1 旋松螺塞" + ], + "image_footnote": [], + "bbox": [ + 315, + 135, + 678, + 321 + ], + "page_idx": 17 + }, + { + "type": "text", + "text": "(2)检查排出机油中是否有金属屑,若有则记录并上报异常。", + "bbox": [ + 191, + 340, + 662, + 354 + ], + "page_idx": 17 + }, + { + "type": "image", + "img_path": "images/330a24f94845b44a52f47aff976e505c339a8daacff8d5a64e5fb90c34cd0608.jpg", + "image_caption": [ + "图 MT001.2 检查" + ], + "image_footnote": [], + "bbox": [ + 342, + 356, + 653, + 543 + ], + "page_idx": 17 + }, + { + "type": "text", + "text": "2)更换机油滤芯", + "bbox": [ + 183, + 579, + 321, + 594 + ], + "page_idx": 17 + }, + { + "type": "text", + "text": "(1)使用专用工具拆下旧滤芯,清洁滤座密封面,无残留胶圈;", + "bbox": [ + 191, + 595, + 678, + 611 + ], + "page_idx": 17 + }, + { + "type": "image", + "img_path": "images/a792ac44fe3288aeb92eee77542b43353d38d6b31d675c1a7664fa8dbc62c283.jpg", + "image_caption": [ + "图 MT001.3 拆卸" + ], + "image_footnote": [], + "bbox": [ + 294, + 609, + 700, + 871 + ], + "page_idx": 17 + }, + { + "type": "text", + "text": "(2)在新滤芯密封圈涂少量新机油,手工旋紧至贴合后再用扭矩扳手加力 $1 5 \\mathrm { ~ N } \\cdot \\mathrm { ~ m }$ ;", + "bbox": [ + 193, + 888, + 833, + 904 + ], + "page_idx": 17 + }, + { + "type": "discarded", + "text": "18 ", + "bbox": [ + 490, + 916, + 509, + 927 + ], + "page_idx": 17 + }, + { + "type": "image", + "img_path": "images/1776d9191e824607e28bf0ca30fd9819ec59fea32ae306f971f0e230e7c74e09.jpg", + "image_caption": [ + "图 MT001.4 滤芯安装扭矩示意图" + ], + "image_footnote": [], + "bbox": [ + 309, + 85, + 689, + 299 + ], + "page_idx": 18 + }, + { + "type": "text", + "text": "3)加注新机油 ", + "bbox": [ + 184, + 317, + 302, + 331 + ], + "page_idx": 18 + }, + { + "type": "text", + "text": "(1)通过加油口注入 Shell Mysella S5 N80 润滑油至标尺“MAX”线;", + "bbox": [ + 189, + 334, + 731, + 348 + ], + "page_idx": 18 + }, + { + "type": "image", + "img_path": "images/8c6e3402ec582986ee44fb111c9435470a6cdf2bf1cd9d9b456899fc32e665ef.jpg", + "image_caption": [ + "图 MT001.5 滤芯安装扭矩示意图" + ], + "image_footnote": [], + "bbox": [ + 314, + 350, + 682, + 695 + ], + "page_idx": 18 + }, + { + "type": "text", + "text": "(2)静置 10 分钟后复查油位,补充至标准范围。", + "bbox": [ + 193, + 712, + 566, + 727 + ], + "page_idx": 18 + }, + { + "type": "discarded", + "text": "19 ", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 18 + }, + { + "type": "image", + "img_path": "images/93a079a1899b769add182968dbb1ca8f4481770372bdf196a4e24f143a9a0d97.jpg", + "image_caption": [ + "图 MT001.6 油位检查" + ], + "image_footnote": [], + "bbox": [ + 147, + 84, + 850, + 329 + ], + "page_idx": 19 + }, + { + "type": "text", + "text": "恢复与清理", + "bbox": [ + 149, + 346, + 242, + 361 + ], + "page_idx": 19 + }, + { + "type": "text", + "text": "1)安装放油螺塞(新密封圈),扭矩: $4 5 \\mathrm { ~ N ~ } \\cdot \\mathrm { ~ m ~ }$ ;", + "bbox": [ + 183, + 362, + 564, + 376 + ], + "page_idx": 19 + }, + { + "type": "image", + "img_path": "images/c50f2cf5ae6aca79031f3f0d71e547ad715f798ca589f686898c0618fe64bea9.jpg", + "image_caption": [ + "图 MT001.7 安装放油螺塞" + ], + "image_footnote": [], + "bbox": [ + 326, + 378, + 672, + 702 + ], + "page_idx": 19 + }, + { + "type": "text", + "text": "2)清理作业区域油污,回收废油至指定容器;", + "bbox": [ + 184, + 719, + 534, + 734 + ], + "page_idx": 19 + }, + { + "type": "discarded", + "text": "20 ", + "bbox": [ + 490, + 916, + 509, + 927 + ], + "page_idx": 19 + }, + { + "type": "image", + "img_path": "images/5f2ccd506e171952c3c884c95fe7e93251bd38cc1ec752f6b95e49f6d54b1b4e.jpg", + "image_caption": [ + "图 MT001.8 油污清理" + ], + "image_footnote": [], + "bbox": [ + 337, + 85, + 660, + 387 + ], + "page_idx": 20 + }, + { + "type": "text", + "text": "3)拆除“禁止启动”牌,通知集控室保养完成。", + "bbox": [ + 183, + 406, + 556, + 422 + ], + "page_idx": 20 + }, + { + "type": "text", + "text": "验收标准", + "text_level": 1, + "bbox": [ + 147, + 424, + 223, + 438 + ], + "page_idx": 20 + }, + { + "type": "text", + "text": "1.启动主机后运行 10分钟,滑油压力稳定在 $0 . 4 5 { \\sim } 0 . 6 0 \\mathrm { ~ M ~ }$ Pa(额定转速下);", + "bbox": [ + 173, + 441, + 794, + 455 + ], + "page_idx": 20 + }, + { + "type": "text", + "text": "2.滤芯座及放油口无渗漏,目视检查无油迹;", + "bbox": [ + 184, + 457, + 527, + 472 + ], + "page_idx": 20 + }, + { + "type": "text", + "text": "3.滑油取样检测粘度变化率 $\\leqslant 5 \\%$ ,无水分及金属颗粒超标。", + "bbox": [ + 184, + 473, + 640, + 487 + ], + "page_idx": 20 + }, + { + "type": "table", + "img_path": "images/8952c47cd63582340a5ce443cb5ac61626259a56f58ba750aab28a01e47de28f.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
页码:2/2版本号:1
", + "bbox": [ + 183, + 488, + 673, + 506 + ], + "page_idx": 20 + }, + { + "type": "table", + "img_path": "images/27e0414dd89f973909464684d5537cea224bd69b800f5f3d6305983b1a41e690.jpg", + "table_caption": [ + "表 4.4 MT002 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0020101焊接机座组件检查主轴承座安装状态6M/200hJY级
", + "bbox": [ + 139, + 552, + 860, + 620 + ], + "page_idx": 20 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 147, + 620, + 258, + 634 + ], + "page_idx": 20 + }, + { + "type": "text", + "text": "1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;", + "bbox": [ + 183, + 637, + 670, + 650 + ], + "page_idx": 20 + }, + { + "type": "text", + "text": "2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。", + "bbox": [ + 188, + 653, + 630, + 668 + ], + "page_idx": 20 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 147, + 670, + 258, + 684 + ], + "page_idx": 20 + }, + { + "type": "text", + "text": "1.禁止在主机运转或盘车未锁定状态下进行测量; \n2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。", + "bbox": [ + 183, + 686, + 690, + 718 + ], + "page_idx": 20 + }, + { + "type": "discarded", + "text": "21 ", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 20 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 146, + 85, + 648, + 101 + ], + "page_idx": 21 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 149, + 102, + 388, + 116 + ], + "page_idx": 21 + }, + { + "type": "table", + "img_path": "images/866c78c6efa2c651a9e9fcd5daee13e73815e83191c819366b8c60ee3b14e8c4.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1激光对中仪SKF TKSA 711套用于轴承同轴度检测
2塞尺组0.02 -1.00 mm1套精度±0.005mm
3液压拉伸器HYTORC AVANTI-101台用于地脚螺栓预紧
4内径千分尺200-300mm1把校验有效期内
", + "bbox": [ + 149, + 117, + 843, + 250 + ], + "page_idx": 21 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 252, + 250, + 266 + ], + "page_idx": 21 + }, + { + "type": "table", + "img_path": "images/909dcb45d002731dfd57aaeff599cb95df8dc8d453a40fd15afa36efdb77b691.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
1排气阀PV-1001
", + "bbox": [ + 151, + 267, + 845, + 306 + ], + "page_idx": 21 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 307, + 248, + 321 + ], + "page_idx": 21 + }, + { + "type": "table", + "img_path": "images/4f11ecf4885a1873706ee14c9234307de44e9b2eaa3974632d366197002773a1.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1清洁酒精AR Grade100mL
2防锈纸VCI-2002张
", + "bbox": [ + 149, + 322, + 843, + 381 + ], + "page_idx": 21 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 381, + 248, + 395 + ], + "page_idx": 21 + }, + { + "type": "table", + "img_path": "images/9639b4fac2616f68dbcad00aabae9d7f7aeadf0bc9b9c4872586da6bf2b059d2.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2总工+工程师
", + "bbox": [ + 147, + 397, + 847, + 436 + ], + "page_idx": 21 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 438, + 275, + 453 + ], + "page_idx": 21 + }, + { + "type": "text", + "text": "前提条件确认", + "bbox": [ + 149, + 474, + 257, + 489 + ], + "page_idx": 21 + }, + { + "type": "text", + "text": "1)主机停机 $\\geqslant 4$ 小时,环境温度 $1 5 - 3 5 \\mathrm { { ^ \\circ C } }$ ;", + "bbox": [ + 186, + 493, + 536, + 508 + ], + "page_idx": 21 + }, + { + "type": "text", + "text": "2)所有主轴承盖地脚螺栓处于规定预紧力(参考值: $8 5 0 ~ \\mathrm { k N }$ )。", + "bbox": [ + 183, + 512, + 680, + 527 + ], + "page_idx": 21 + }, + { + "type": "text", + "text": "检查主轴承座安装状态 ", + "bbox": [ + 149, + 549, + 329, + 563 + ], + "page_idx": 21 + }, + { + "type": "text", + "text": "1)清洁与目视检查", + "bbox": [ + 184, + 568, + 337, + 582 + ], + "page_idx": 21 + }, + { + "type": "text", + "text": "(1)清除轴承座与机座结合面油污、锈迹;", + "bbox": [ + 193, + 586, + 521, + 601 + ], + "page_idx": 21 + }, + { + "type": "image", + "img_path": "images/4c3e130d7545a1afdc0980636cf0f3ca78361643b0bd4c1054eac3f3c9e6ca01.jpg", + "image_caption": [], + "image_footnote": [], + "bbox": [ + 347, + 608, + 650, + 891 + ], + "page_idx": 21 + }, + { + "type": "discarded", + "text": "", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 21 + }, + { + "type": "text", + "text": "图 MT002.1 换油前清洗", + "text_level": 1, + "bbox": [ + 403, + 85, + 594, + 101 + ], + "page_idx": 22 + }, + { + "type": "text", + "text": "(2)目视检查有无裂纹、变形或螺栓松动迹象。", + "bbox": [ + 194, + 103, + 554, + 118 + ], + "page_idx": 22 + }, + { + "type": "image", + "img_path": "images/34127aaac6375fd656d2af758c5afad0022e18151791ac380177a7d73404306f.jpg", + "image_caption": [ + "图 MT002.2 检查" + ], + "image_footnote": [], + "bbox": [ + 331, + 128, + 667, + 444 + ], + "page_idx": 22 + }, + { + "type": "text", + "text": "2)间隙测量", + "bbox": [ + 183, + 472, + 284, + 487 + ], + "page_idx": 22 + }, + { + "type": "text", + "text": "(1)使用塞尺沿圆周 8 点测量轴承座与机座结合面间隙;", + "bbox": [ + 189, + 489, + 626, + 506 + ], + "page_idx": 22 + }, + { + "type": "image", + "img_path": "images/91fbfe7381a2b371cd2edc6c34497464df8056f77a66a894c0acfa34a981ffe5.jpg", + "image_caption": [ + "图 MT002.3 塞尺测量" + ], + "image_footnote": [], + "bbox": [ + 147, + 517, + 850, + 869 + ], + "page_idx": 22 + }, + { + "type": "text", + "text": "(3)任一点间隙 $\\leqslant 0 . 0 5 \\ \\mathrm { ~ m m }$ ,否则判定为安装不良。", + "bbox": [ + 191, + 896, + 593, + 912 + ], + "page_idx": 22 + }, + { + "type": "discarded", + "text": "", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 22 + }, + { + "type": "text", + "text": "3)同轴度检测 ", + "bbox": [ + 183, + 87, + 302, + 102 + ], + "page_idx": 23 + }, + { + "type": "text", + "text": "(1)安装激光对中仪于相邻两主轴承中心孔;", + "bbox": [ + 193, + 105, + 536, + 121 + ], + "page_idx": 23 + }, + { + "type": "image", + "img_path": "images/9cc07b85b13176590cbe9f19502a37a728fcc2af71595c412f00bf48f99bb7f8.jpg", + "image_caption": [ + "图 MT002.4 激光对中仪" + ], + "image_footnote": [], + "bbox": [ + 317, + 124, + 680, + 340 + ], + "page_idx": 23 + }, + { + "type": "text", + "text": "(2)测量轴线偏移量,允许值: ${ \\leqslant } 0 . 0 8 ~ \\mathrm { m m / m }$ 。", + "bbox": [ + 191, + 362, + 549, + 378 + ], + "page_idx": 23 + }, + { + "type": "image", + "img_path": "images/581af8b1923e27b8acdcc5f3a85eecea68f0b7802b0e4608212be093c941786b.jpg", + "image_caption": [ + "图 MT002.5 测量轴线偏移量" + ], + "image_footnote": [], + "bbox": [ + 329, + 388, + 667, + 705 + ], + "page_idx": 23 + }, + { + "type": "text", + "text": "判定与处理", + "text_level": 1, + "bbox": [ + 147, + 750, + 242, + 765 + ], + "page_idx": 23 + }, + { + "type": "text", + "text": "1)若所有测量值合格,则记录数据并结束检查;", + "bbox": [ + 188, + 768, + 554, + 783 + ], + "page_idx": 23 + }, + { + "type": "text", + "text": "2)若任一指标超差,标记异常轴承座编号,进入 MTxxx(修复程序)。", + "bbox": [ + 181, + 787, + 727, + 802 + ], + "page_idx": 23 + }, + { + "type": "text", + "text": "验收标准", + "text_level": 1, + "bbox": [ + 147, + 804, + 223, + 820 + ], + "page_idx": 23 + }, + { + "type": "text", + "text": "1.主轴承座与机座结合面间隙 $\\leqslant 0 . 0 5 \\ \\mathrm { ~ m m }$ (全周); \n2.相邻主轴承同轴度偏差 ${ \\leqslant } 0 . 0 8 ~ \\mathrm { m m / m }$ ; \n3.地脚螺栓预紧力在设计值 ± $5 \\%$ 范围内。", + "bbox": [ + 183, + 821, + 581, + 869 + ], + "page_idx": 23 + }, + { + "type": "table", + "img_path": "images/f0f00f09203334947cfdc7c05e69c477a593d73ffe815be536aca7dec35f75ed.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
页码:1/1版本号:1
", + "bbox": [ + 191, + 870, + 635, + 887 + ], + "page_idx": 23 + }, + { + "type": "discarded", + "text": "", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 23 + }, + { + "type": "table", + "img_path": "images/41c4c92ae50ae1bf5a5cb188fbbde0b73cba93b3cdfd2cedbbba5501d19af211.jpg", + "table_caption": [ + "表 4.5 MT003 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0030201曲轴组件检测曲轴主轴颈跳动量1A/8000hJY级
", + "bbox": [ + 141, + 102, + 858, + 170 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 147, + 171, + 258, + 185 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌; \n2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。", + "bbox": [ + 178, + 186, + 815, + 218 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 147, + 219, + 258, + 234 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "1.禁止在曲轴未完全支撑状态下进行测量操作;", + "bbox": [ + 184, + 236, + 546, + 250 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。", + "bbox": [ + 181, + 253, + 616, + 266 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 144, + 268, + 648, + 284 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 151, + 285, + 388, + 299 + ], + "page_idx": 24 + }, + { + "type": "table", + "img_path": "images/4fbd3472cdb561d7d3c3e8fe08b88813d4ea022cf2ad6195a1a879fb9e575150.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1精密千分表Mitutoyo 543-791D1套分辨率0.001 mm
2磁力表座Starrett 16B1个带万向关节
3V型支撑架Custom-Crank-V3002组承重≥500kg
4盘车手轮OEM-MAN-BW-PCW1个原厂配套
", + "bbox": [ + 149, + 300, + 843, + 397 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 398, + 248, + 412 + ], + "page_idx": 24 + }, + { + "type": "table", + "img_path": "images/117c7fdb357c98f9feb3c2869ad023ff32afd95720bb0bf1ee55ae235e60335e.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
1排气阀PV-1001
", + "bbox": [ + 151, + 413, + 842, + 451 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 453, + 248, + 467 + ], + "page_idx": 24 + }, + { + "type": "table", + "img_path": "images/17e3c23546895ad32befaf4d71954473fc25934d9209fd84f67e71f9304011dd.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%50 mL清洁轴颈表面
2无绒擦拭布Kimwipe EX-L3张防刮伤轴面
", + "bbox": [ + 149, + 467, + 843, + 526 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 526, + 248, + 541 + ], + "page_idx": 24 + }, + { + "type": "table", + "img_path": "images/c5c47ba55c72966c7f3c9a7979596b1fcd32705920a7db67a416e99380b2d277.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2总工+工程师总工复刻数据
", + "bbox": [ + 147, + 542, + 848, + 582 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 583, + 275, + 599 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "检测前提条件确认 ", + "bbox": [ + 147, + 620, + 292, + 636 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "1)主机已停机 $\\geqslant 6$ 小时,曲轴温度 ${ \\leqslant } 4 0 \\mathrm { { ^ \\circ C } }$ ; \n2)所有主轴承盖已按规范扭矩紧固,且无拆卸记录; \n3)曲轴自由端与输出端已用 V 型架可靠支撑,无悬空。", + "bbox": [ + 178, + 639, + 610, + 692 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "执行跳动量检测 ", + "bbox": [ + 147, + 713, + 277, + 728 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "1)准备测量点", + "bbox": [ + 184, + 732, + 302, + 746 + ], + "page_idx": 24 + }, + { + "type": "text", + "text": "(1)清洁各主轴颈表面至无油膜、锈斑;", + "bbox": [ + 193, + 750, + 502, + 765 + ], + "page_idx": 24 + }, + { + "type": "discarded", + "text": "", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 24 + }, + { + "type": "image", + "img_path": "images/28065bbe786bc33364e278317ae7f4ff9791b6ed177b25ab52d0504c6a9a9c29.jpg", + "image_caption": [ + "图 MT003.1 清洁" + ], + "image_footnote": [], + "bbox": [ + 147, + 83, + 850, + 362 + ], + "page_idx": 25 + }, + { + "type": "text", + "text": "(3)在每道主轴颈圆周标记 $0 ^ { \\circ }$ °、 $9 0 ^ { \\circ }$ 、 $1 8 0 ^ { \\circ }$ 、 $2 7 0 ^ { \\circ }$ 四个测量基准点。 ", + "bbox": [ + 193, + 381, + 744, + 397 + ], + "page_idx": 25 + }, + { + "type": "image", + "img_path": "images/3489644a302d01e53ae100e0830b9019822587c207645e94204d2b1f3eb4e4b8.jpg", + "image_caption": [ + "图 MT003.2 标记测量基准点" + ], + "image_footnote": [], + "bbox": [ + 349, + 406, + 648, + 781 + ], + "page_idx": 25 + }, + { + "type": "text", + "text": "2)安装千分表", + "bbox": [ + 183, + 806, + 302, + 821 + ], + "page_idx": 25 + }, + { + "type": "text", + "text": "(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;", + "bbox": [ + 189, + 824, + 786, + 840 + ], + "page_idx": 25 + }, + { + "type": "discarded", + "text": "", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 25 + }, + { + "type": "image", + "img_path": "images/b05545ef50120123d215301ed0544f5d124c9d37873a4c8e990902edf375d44f.jpg", + "image_caption": [ + "图 MT003.3 千分尺" + ], + "image_footnote": [], + "bbox": [ + 381, + 123, + 618, + 254 + ], + "page_idx": 26 + }, + { + "type": "text", + "text": "(2)预压千分表 $0 . 3 ~ \\mathrm { \\ m m }$ ,归零。", + "bbox": [ + 193, + 307, + 438, + 322 + ], + "page_idx": 26 + }, + { + "type": "text", + "text": "3)盘车测量", + "bbox": [ + 183, + 325, + 284, + 340 + ], + "page_idx": 26 + }, + { + "type": "text", + "text": "(1)缓慢盘动曲轴一周( $3 6 0 ^ { \\circ }$ ),记录千分表最大与最小读数;", + "bbox": [ + 193, + 344, + 689, + 360 + ], + "page_idx": 26 + }, + { + "type": "text", + "text": "(2)跳动量 $=$ 最大值 - 最小值;", + "bbox": [ + 194, + 363, + 450, + 378 + ], + "page_idx": 26 + }, + { + "type": "text", + "text": "(3)重复上述步骤,依次测量其余主轴颈。", + "bbox": [ + 193, + 381, + 519, + 397 + ], + "page_idx": 26 + }, + { + "type": "text", + "text": "数据判定", + "bbox": [ + 147, + 418, + 221, + 434 + ], + "page_idx": 26 + }, + { + "type": "text", + "text": "1)若任一主轴颈跳动量 $\\leqslant 0 . 0 5 \\ \\mathrm { \\ m m }$ ,则判定合格;", + "bbox": [ + 183, + 436, + 573, + 453 + ], + "page_idx": 26 + }, + { + "type": "image", + "img_path": "images/b43f29bde7aa6ad223b9224fc6523a8930d924d05b760db2451b25ced36fbc31.jpg", + "image_caption": [ + "图 $\\mathrm { M T 0 0 3 . 1 }$ 曲轴主轴颈跳动测量布置图" + ], + "image_footnote": [], + "bbox": [ + 363, + 464, + 625, + 645 + ], + "page_idx": 26 + }, + { + "type": "text", + "text": "2)若跳动量 $> 0 . 0 5 ~ \\mathrm { \\ m m }$ 且 $\\leqslant 0 . 1 0 \\ \\mathrm { ~ m m }$ ,记录并安排下次缩短检测周期;", + "bbox": [ + 184, + 676, + 729, + 690 + ], + "page_idx": 26 + }, + { + "type": "text", + "text": "3)若跳动量 $> 0 . 1 0 ~ \\mathrm { \\ m m }$ ,立即停机,启动曲轴校直或更换程序。", + "bbox": [ + 181, + 695, + 668, + 709 + ], + "page_idx": 26 + }, + { + "type": "text", + "text": "验收标准", + "text_level": 1, + "bbox": [ + 147, + 712, + 223, + 727 + ], + "page_idx": 26 + }, + { + "type": "text", + "text": "1.所有主轴颈径向跳动量 $\\leqslant 0 . 0 5 \\ \\mathrm { ~ m m }$ ; \n2.测量原始数据完整记录于《曲轴状态检测报告》; \n3.千分表校验标签在有效期内,测量环境温度波动 $\\leqslant \\pm 2 ^ { \\circ } \\mathrm { C }$ ", + "bbox": [ + 181, + 728, + 647, + 776 + ], + "page_idx": 26 + }, + { + "type": "table", + "img_path": "images/152eca2e8356e3da96b8dbbf180913c17442f61e727e58dac93332f6c0f35f24.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
页码:1/1版本号:1
", + "bbox": [ + 193, + 776, + 704, + 794 + ], + "page_idx": 26 + }, + { + "type": "table", + "img_path": "images/8b6592b94e1f58db7120d53057067c88c60b954651c3e5727b8090bae0844624.jpg", + "table_caption": [ + "表 4.6 MT004 维修项目" + ], + "table_footnote": [ + "安全防护要求" + ], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT004020201连杆大端轴承更换连杆大端轴承2A/12000hJT级
", + "bbox": [ + 141, + 840, + 857, + 894 + ], + "page_idx": 26 + }, + { + "type": "discarded", + "text": "27 ", + "bbox": [ + 489, + 916, + 507, + 927 + ], + "page_idx": 26 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 149, + 118, + 258, + 133 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;", + "bbox": [ + 183, + 135, + 579, + 149 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "2.新轴承安装前确认瓦背无毛刺、涂层完整。", + "bbox": [ + 184, + 152, + 529, + 165 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 144, + 167, + 648, + 183 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 151, + 184, + 388, + 198 + ], + "page_idx": 27 + }, + { + "type": "table", + "img_path": "images/76bb2b9ad2268a2cde2abe09dbb3364b3e2b7d5db3dd5e1b12c96cdc6a1f51b6.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1液压拉伸器HYTORC RS-201套
2扭矩扳手Norbar 1500N·m1把精度±2%
3轴承安装导向套OEM-MAN-BW-BG-041个
4内窥镜GE Mentor Visual iQ1台
", + "bbox": [ + 149, + 199, + 842, + 296 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 297, + 248, + 311 + ], + "page_idx": 27 + }, + { + "type": "table", + "img_path": "images/5fef743bd9011c67bed84bbe22ccaa3c4c2192ff8b0cc6c11aa720fa20744a35.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
1连杆大端轴承上瓦MAN 5L35MC-BRG-UP1副原厂高锡合金
2连杆大端轴承下瓦MAN 5L35MC-BRG-DN1副
3连杆螺栓M30 ×2.0 Grade 12.92根一次性使用,强制更换
", + "bbox": [ + 149, + 312, + 842, + 407 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 409, + 248, + 423 + ], + "page_idx": 27 + }, + { + "type": "table", + "img_path": "images/6d20a45f603652fda3a0bc993714fac17c853f3ae9a4259f8a72547c3a73cdbc.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1轴承装配润滑脂Kluber Isoflex LDS18 Special A10g仅涂瓦背
2螺纹锁固胶Loctite 2701少量用于螺栓螺纹(如适用)
3清洗剂Brulin 815GD200mL清洁连杆结合面
", + "bbox": [ + 149, + 424, + 843, + 538 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 539, + 248, + 554 + ], + "page_idx": 27 + }, + { + "type": "table", + "img_path": "images/a8e9ef95a65e32927723060f1629cb8cdfd7d6445827431c55a27c99d9c5223c.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业3总工+2x 工程师总工监督关键步骤
", + "bbox": [ + 147, + 554, + 843, + 612 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 614, + 275, + 630 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "更换前提确认 ", + "text_level": 1, + "bbox": [ + 147, + 651, + 257, + 667 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "1)主机已完成停机冷却,滑油系统泄压; \n2)确认本次为计划性更换(运行时间 $\\geqslant 1 2 0 0 0 \\mathrm { ~ h ~ }$ 或 2A 级检修); \n3)新轴承与螺栓已核对型号、批次,无运输损伤。", + "bbox": [ + 181, + 670, + 705, + 722 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "拆卸旧轴承 ", + "bbox": [ + 147, + 744, + 240, + 759 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "1)拆连杆盖 ", + "bbox": [ + 184, + 763, + 284, + 777 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);", + "bbox": [ + 193, + 781, + 678, + 796 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "(2)取下螺栓及连杆大端盖,放置于专用托架。", + "bbox": [ + 193, + 800, + 556, + 815 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "2)取出旧轴承 ", + "bbox": [ + 183, + 819, + 302, + 833 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "(1)轻敲连杆体侧面,使下瓦自然脱落;", + "bbox": [ + 194, + 837, + 502, + 852 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。", + "bbox": [ + 193, + 856, + 626, + 871 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "安装新轴承", + "text_level": 1, + "bbox": [ + 147, + 892, + 240, + 908 + ], + "page_idx": 27 + }, + { + "type": "discarded", + "text": "28 ", + "bbox": [ + 490, + 916, + 509, + 927 + ], + "page_idx": 27 + }, + { + "type": "text", + "text": "1)清洁与检查", + "bbox": [ + 184, + 87, + 302, + 102 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;", + "bbox": [ + 193, + 105, + 643, + 121 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "(2)目视检查新瓦背面涂层均匀,无裂纹。", + "bbox": [ + 194, + 124, + 522, + 139 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "2)装配 ", + "bbox": [ + 183, + 142, + 250, + 158 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "(1)在瓦背薄涂 Klüber 润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;", + "bbox": [ + 193, + 161, + 741, + 177 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "(2)将下瓦装入连杆盖,同样对准定位;", + "bbox": [ + 196, + 179, + 502, + 195 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "(3)使用导向套引导连杆盖就位,避免瓦片移位。", + "bbox": [ + 193, + 198, + 574, + 214 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "3)紧固螺栓 ", + "bbox": [ + 183, + 217, + 284, + 231 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "(1)安装新连杆螺栓,手工旋入到底;", + "bbox": [ + 194, + 235, + 485, + 250 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "(2)按三阶段拧紧: $\\textcircled{1}$ $3 0 0 \\mathrm { ~ N ~ } \\bullet \\mathrm { ~ m ~ } \\mathrm { ~ \\textcircled { 2 } ~ 6 0 0 ~ N ~ } \\bullet \\mathrm { ~ m ~ } \\mathrm { ~ \\textcircled { 3 } ~ }$ 拉伸至 $1 2 0 0 \\mathrm { ~ N ~ } \\cdot \\mathrm { ~ m ~ }$ (参考值);", + "bbox": [ + 147, + 254, + 847, + 286 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "(3)最终用角度法复核(如适用)。", + "bbox": [ + 193, + 291, + 468, + 306 + ], + "page_idx": 28 + }, + { + "type": "image", + "img_path": "images/4075ddd9e83efeeb53653805c4dcbbd7ede8273ca441050bc6a68b899ee74a83.jpg", + "image_caption": [ + "图 MT004.1 连杆大端轴承结构分解图" + ], + "image_footnote": [], + "bbox": [ + 218, + 318, + 776, + 466 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "恢复与验证 ", + "bbox": [ + 149, + 511, + 242, + 526 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "1)盘车两圈,确认无卡滞; \n2)安装气缸防异物盖,清理工具与废弃物。", + "bbox": [ + 181, + 530, + 522, + 563 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "验收标准", + "text_level": 1, + "bbox": [ + 147, + 567, + 223, + 581 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "1.新轴承瓦背与瓦槽贴合面积 $\\geqslant 9 5 \\%$ ,无翘曲; \n2.连杆螺栓最终预紧力在设计值 $\\pm 3 \\%$ 范围内; \n3.盘车阻力矩变化平稳,无突变(参考值: $\\leqslant 1 5 \\%$ 波动)", + "bbox": [ + 181, + 583, + 628, + 630 + ], + "page_idx": 28 + }, + { + "type": "table", + "img_path": "images/73072e4b34f07f14542682068549a5ca5e887e47ed1cbb7aa64c0667bcbd2a4c.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
页码:1/1版本号:11
", + "bbox": [ + 168, + 631, + 749, + 649 + ], + "page_idx": 28 + }, + { + "type": "table", + "img_path": "images/2d09adf32432c49a20fd103bc0282c2ff24e209341ea4f477dac7f6d2cc4dfe6.jpg", + "table_caption": [ + "表 4.7 MT005 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT005020203连杆小段轴承更换连杆小段轴承2A/12000hJY级
", + "bbox": [ + 141, + 695, + 857, + 745 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 149, + 746, + 258, + 760 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置; \n2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。", + "bbox": [ + 184, + 762, + 667, + 794 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 149, + 795, + 258, + 809 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞; \n2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。", + "bbox": [ + 184, + 812, + 667, + 843 + ], + "page_idx": 28 + }, + { + "type": "discarded", + "text": "29 ", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 28 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 146, + 85, + 648, + 101 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 149, + 102, + 388, + 116 + ], + "page_idx": 29 + }, + { + "type": "table", + "img_path": "images/4827597cabdfb12e35a8bcf92c9a12a81f373583eb49a366354aed2eaee86c83.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1活塞吊装专用吊具OEM-MAN-BW-PST-051套带缓冲橡胶夹头
2感应加热器EFD Induction Minac161台温控精度±5℃
3内径千分尺40-50 mm1把校验有效期内
4铜棒与塑料锤Φ20×300 mm各1把
", + "bbox": [ + 149, + 117, + 842, + 233 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 233, + 248, + 247 + ], + "page_idx": 29 + }, + { + "type": "table", + "img_path": "images/e030150a8ee6e5e8353e6b118e70e7f7e786083581f161032082c1d9c8a67b4b.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
1连杆小端衬套(上)MAN 5L35MC-BUSH-UP1件锡青铜基
2连杆小端衬套(下)MAN 5L35MC-BUSH-DN1件
3活塞销卡簧Φ50×2.5mm2个不锈钢,一次性
", + "bbox": [ + 149, + 248, + 842, + 325 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 326, + 250, + 341 + ], + "page_idx": 29 + }, + { + "type": "table", + "img_path": "images/04c5ba3aa92f9b45cf073427475298e3754d4d8fa5231f30939b4a7edc9a9534.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1高温装配润滑脂Molycote G-10525g
2清洗剂Brulin 815GD150mL
3耐高温标记笔Markal 900° F1支
", + "bbox": [ + 149, + 342, + 843, + 419 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 419, + 248, + 435 + ], + "page_idx": 29 + }, + { + "type": "table", + "img_path": "images/80953fa533238675354d32a9a6a5a6f470f27968566afa7371c381e6874c8572.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2工程师+技师工程师主导热装
", + "bbox": [ + 149, + 436, + 843, + 475 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 476, + 275, + 492 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "更换前提确认 ", + "bbox": [ + 149, + 510, + 257, + 525 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "1)主机已完成 2A 级检修停机程序,气缸已冷却至 $\\leqslant 5 0 \\mathrm { { ^ \\circ C } }$ ;", + "bbox": [ + 183, + 527, + 645, + 543 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "2)确认运行时间 $\\geqslant 1 2 0 0 0 \\mathrm { ~ h ~ }$ 或上次更换后已超周期;", + "bbox": [ + 183, + 546, + 594, + 561 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "3)新衬套尺寸经复测符合图纸公差(过盈量: $0 . \\ 0 3 { \\sim } 0 . \\ 0 6 \\ \\ \\mathrm { m m } )$ )。", + "bbox": [ + 181, + 564, + 687, + 580 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "拆卸旧衬套 ", + "bbox": [ + 147, + 601, + 240, + 617 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "1)抽出活塞-连杆总成", + "bbox": [ + 184, + 620, + 364, + 634 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "(1)拆除缸头、喷油器及冷却水管路;", + "bbox": [ + 194, + 639, + 484, + 653 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。", + "bbox": [ + 191, + 658, + 556, + 673 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "2)压出旧衬套 ", + "bbox": [ + 183, + 676, + 302, + 690 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;", + "bbox": [ + 191, + 695, + 689, + 709 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。", + "bbox": [ + 191, + 713, + 710, + 728 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "安装新衬套", + "bbox": [ + 149, + 750, + 240, + 765 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "1)清洁与预装检查", + "bbox": [ + 184, + 769, + 337, + 783 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "(1)用清洗剂彻底清洁连杆小端座孔,吹干;", + "bbox": [ + 194, + 787, + 536, + 802 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "(2)测量座孔内径,记录作为过盈量计算依据。", + "bbox": [ + 193, + 806, + 556, + 821 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "2)热装新衬套 ", + "bbox": [ + 183, + 825, + 302, + 839 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "(1)将新衬套放入感应加热器,加热至 $1 8 0 \\pm 1 0 ^ { \\circ } \\mathrm { C }$ (用红外测温仪监控);", + "bbox": [ + 194, + 843, + 766, + 858 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "(2)迅速将热衬套套入连杆小端,确保完全到位;", + "bbox": [ + 191, + 862, + 578, + 877 + ], + "page_idx": 29 + }, + { + "type": "text", + "text": "(3)自然冷却至室温,禁止强制冷却。", + "bbox": [ + 193, + 881, + 485, + 895 + ], + "page_idx": 29 + }, + { + "type": "discarded", + "text": "30 ", + "bbox": [ + 490, + 916, + 509, + 927 + ], + "page_idx": 29 + }, + { + "type": "table", + "img_path": "images/23b82ded7c13baf2a39f480d8b3d46f8e1daaaf6361a717999406ebcf3b1cedb.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
验收标准1.衬套与座孔过盈配合牢固,无松动或轴向位移;2.活塞销转动灵活,轴向窜动量≤0.15 mm;3.卡簧两端完全嵌入槽内,无翘起或断裂。
页码:1/1版本号:1
", + "bbox": [ + 147, + 83, + 855, + 298 + ], + "page_idx": 30 + }, + { + "type": "table", + "img_path": "images/c3e98a5c1eada51cee1b68f72aad8dea8da1e83fb9a721bbe0ddb0792f48f35a.jpg", + "table_caption": [ + "表 4.8 MT006 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT006030201活塞头拆检活塞头磨损情况1A/8000hJY级
", + "bbox": [ + 141, + 344, + 857, + 412 + ], + "page_idx": 30 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 147, + 412, + 258, + 426 + ], + "page_idx": 30 + }, + { + "type": "text", + "text": "1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO); \n2.缸内作业时使用防爆照明灯,电压 ${ \\leqslant } 2 4 \\ \\mathrm { ~ V ~ } .$ 。", + "bbox": [ + 178, + 428, + 715, + 458 + ], + "page_idx": 30 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 149, + 462, + 258, + 476 + ], + "page_idx": 30 + }, + { + "type": "text", + "text": "1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器; \n2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。", + "bbox": [ + 166, + 478, + 616, + 508 + ], + "page_idx": 30 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 146, + 511, + 647, + 525 + ], + "page_idx": 30 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 149, + 527, + 388, + 541 + ], + "page_idx": 30 + }, + { + "type": "table", + "img_path": "images/82912d47c10cc2c6c3387a5a5fe572818cd723e4db7bca65531d7a6919d03433.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配350mm活塞
2内窥镜GE Mentor Visual iQ1台
3深度规0-150 mm1把
4放大镜10× with scale1个
", + "bbox": [ + 149, + 542, + 842, + 657 + ], + "page_idx": 30 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 658, + 250, + 673 + ], + "page_idx": 30 + }, + { + "type": "table", + "img_path": "images/0adb7c681ab5c6fdbd209113d9d80f519b088a73903f6a1e9d1ed83529a5dda8.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
本项目为检查类,无备件消耗
", + "bbox": [ + 151, + 674, + 842, + 731 + ], + "page_idx": 30 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 732, + 248, + 746 + ], + "page_idx": 30 + }, + { + "type": "table", + "img_path": "images/17dec6d99ad2ce6a428b5cb0c22f201946076c9c0dd195304a3cd15948ee231b.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1积碳清洗剂CRC Carbon CleanPro200mL环保型
2无纺布Industrial Grade5张
3防锈油CRC 3-3650mL
", + "bbox": [ + 149, + 746, + 843, + 843 + ], + "page_idx": 30 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 844, + 248, + 858 + ], + "page_idx": 30 + }, + { + "type": "table", + "img_path": "images/bf37b90abe973c6a468ebe8e13c473669ff92d99addde470a36bd47993a2a7a4.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损
", + "bbox": [ + 144, + 858, + 845, + 900 + ], + "page_idx": 30 + }, + { + "type": "discarded", + "text": "31 ", + "bbox": [ + 489, + 916, + 507, + 927 + ], + "page_idx": 30 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 149, + 121, + 275, + 136 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "拆检前提确认 ", + "bbox": [ + 149, + 159, + 257, + 173 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "1)主机已完成 1A 级停机程序,缸内温度 ${ \\leqslant } 6 0 \\mathrm { { ^ { \\circ } C } }$ ;", + "bbox": [ + 184, + 178, + 571, + 192 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "2)已通过内窥镜初步确认无严重烧蚀或裂纹。", + "bbox": [ + 183, + 196, + 539, + 211 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "抽出活塞组件", + "bbox": [ + 147, + 233, + 257, + 248 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "1)拆除缸头、喷油器、排气阀等上部附件;", + "bbox": [ + 188, + 252, + 519, + 266 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出;", + "bbox": [ + 184, + 271, + 677, + 285 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "3)放置于专用支架,避免活塞裙部磕碰。", + "bbox": [ + 184, + 288, + 502, + 304 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "全面检查活塞头状态", + "text_level": 1, + "bbox": [ + 149, + 325, + 310, + 341 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "1)清洁 ", + "bbox": [ + 184, + 344, + 250, + 359 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "(1)用积碳清洗剂软化燃烧面及环槽积碳;", + "bbox": [ + 194, + 363, + 519, + 378 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "(2)用铜刷清除残留物,禁用钢丝刷。", + "bbox": [ + 194, + 381, + 487, + 397 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "2)目视与测量检查", + "bbox": [ + 183, + 400, + 337, + 414 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "(1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区);", + "bbox": [ + 189, + 418, + 749, + 434 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "(2)用深度规测量第一道环槽深度,标准值: $1 0 . 2 \\pm 0 . 1$ mm;", + "bbox": [ + 193, + 437, + 655, + 451 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "(3)用塞尺测量环槽侧隙,允许值: $0 . 1 5 { \\sim } 0 . 3 5 ~ \\mathrm { m m }$ ;", + "bbox": [ + 193, + 456, + 601, + 470 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "(4)检查活塞销孔有无椭圆变形,直径变化 $\\leqslant 0 . 0 5 \\ \\mathrm { ~ m m }$ 。", + "bbox": [ + 193, + 474, + 626, + 489 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "判定与处置 ", + "text_level": 1, + "bbox": [ + 147, + 511, + 240, + 526 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "1)若所有指标合格,清洁后涂防锈油,准备回装; \n2)若环槽侧隙 $> 0 . 3 5 ~ \\mathrm { \\ m m }$ ,启动 $\\mathrm { M T 0 0 7 }$ (更换 1号压缩环)或 MT008; \n3)若发现裂纹或烧穿,立即隔离该活塞,启动 MT018(修复活塞头部烧蚀)。", + "bbox": [ + 184, + 530, + 779, + 582 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "验收标准", + "text_level": 1, + "bbox": [ + 147, + 585, + 223, + 600 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融;", + "bbox": [ + 188, + 601, + 529, + 615 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "2.第一道环槽侧隙在 $0 . 1 5 { \\sim } 0 . 3 5 \\ \\mathrm { m m }$ 范围内;", + "bbox": [ + 186, + 618, + 534, + 632 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "3.活塞销孔圆度误差 $\\leqslant 0 . 0 3 \\ \\mathrm { \\ m m }$ ", + "bbox": [ + 183, + 634, + 440, + 648 + ], + "page_idx": 31 + }, + { + "type": "table", + "img_path": "images/aa4efb5f62df14e6bc84ff7a3f3912ac07c457b4d24edec654dfdacbce1da29f.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
页码:1/1版本号:1
", + "bbox": [ + 152, + 650, + 847, + 667 + ], + "page_idx": 31 + }, + { + "type": "table", + "img_path": "images/4ca6dacd8094d77bfbf6f6196f131445a36f6aeebb52b6e5bec0322b09238ba4.jpg", + "table_caption": [ + "表 4.9 MT007 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0070302031号压缩环更换1号压缩环1A/8000hJY级
", + "bbox": [ + 141, + 713, + 857, + 764 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 147, + 765, + 258, + 780 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 149, + 814, + 258, + 828 + ], + "page_idx": 31 + }, + { + "type": "discarded", + "text": "", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 31 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 146, + 85, + 648, + 101 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 151, + 102, + 388, + 116 + ], + "page_idx": 32 + }, + { + "type": "table", + "img_path": "images/52c84dad3f035edb3cb6408d78450e92d8e977b3d5a7988ef6b5468f511874dd.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配350mm活塞
2环口间隙测量规Feeler Gauge Set1套0.05 -1.00mm
3环槽清洁刮刀Custom-Piston-Groove-Scraper1把铜质刃口
4扭矩扳手20-100 N·m1把
", + "bbox": [ + 149, + 117, + 842, + 269 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 271, + 250, + 285 + ], + "page_idx": 32 + }, + { + "type": "table", + "img_path": "images/362d5d1d1ab9f42643d098f256445f9f3fd0dff22f2c1c12cf084edeb1851a66.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
1第一道压缩环MAN 5L35MC-RING-11件梯形截面,表面镀铬
", + "bbox": [ + 151, + 286, + 842, + 343 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 344, + 248, + 359 + ], + "page_idx": 32 + }, + { + "type": "table", + "img_path": "images/13ed17a49b3abdeac3374322c96bc5bac0081ff56296fdde893b5d65cf903ea1.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus5g
2无绒布Kimwipe EX-L3张
3清洗剂Brulin 815GD100mL
", + "bbox": [ + 149, + 359, + 842, + 437 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 437, + 247, + 451 + ], + "page_idx": 32 + }, + { + "type": "table", + "img_path": "images/4e22ddf9efcfd777925abe8ceb738063879d7c1be2052f0f7c4cb61a6b17a7ed.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2工程师+技师工程师复刻还口间隙
", + "bbox": [ + 147, + 453, + 843, + 511 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 512, + 275, + 527 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "更换前提确认 ", + "text_level": 1, + "bbox": [ + 149, + 549, + 257, + 564 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "1)活塞已按 $\\mathbb { M T } 0 0 6$ 完成拆检,确认第一道环槽侧隙 $> 0 . 3 5 ~ \\mathrm { \\ m m }$ 或环断裂;", + "bbox": [ + 184, + 568, + 747, + 583 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "2)新压缩环型号、批次与主机匹配,且在有效储存期内。 \n拆卸旧 1 号压缩环 1)用铜质刮刀清除环槽内积碳,避免损伤槽底;", + "bbox": [ + 181, + 587, + 710, + 620 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。", + "bbox": [ + 181, + 624, + 643, + 639 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "安装新 1 号压缩环", + "bbox": [ + 149, + 661, + 292, + 675 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "1)预处理", + "bbox": [ + 184, + 680, + 267, + 694 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "(1)用无绒布清洁新环内外表面及活塞环槽; \n(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。", + "bbox": [ + 191, + 697, + 557, + 732 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "2)装配 ", + "bbox": [ + 183, + 736, + 250, + 750 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "(1)确认环上有“TOP”标记,安装时朝向活塞顶; \n(2)将环放入环槽,用手压平,确保无翘曲; \n(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。", + "bbox": [ + 191, + 753, + 628, + 806 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "环口间隙检查(关键步骤)", + "text_level": 1, + "bbox": [ + 149, + 827, + 354, + 843 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "1)将新环平放于缸套下部未磨损区域; \n2)用塞尺测量环口间隙,标准值: $0 . 6 0 { \\sim } 0 . 8 0 \\ \\mathrm { m m } ;$ ; \n3)若间隙 $\\langle 0 . 6 0 \\ \\mathrm { \\ m m }$ ,修锉环口端面;若 $> 0 . 8 0 ~ \\mathrm { \\ m m }$ ,更换新环。", + "bbox": [ + 183, + 846, + 680, + 898 + ], + "page_idx": 32 + }, + { + "type": "discarded", + "text": "33 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 32 + }, + { + "type": "text", + "text": "", + "text_level": 1, + "bbox": [ + 147, + 85, + 223, + 101 + ], + "page_idx": 33 + }, + { + "type": "table", + "img_path": "images/ed3e7edfc9a266b48e144dc6505c51eaf4334af6fb1b2ed39856c0ab9e692a80.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
收标准 1.1号压缩环正确安装,“TOP”标记朝上,无反装;
2.环口间隙在0.60~0.80 mm 范围内; 3.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。
页码:1/1版本号:1
", + "bbox": [ + 163, + 85, + 857, + 168 + ], + "page_idx": 33 + }, + { + "type": "table", + "img_path": "images/575e63e7e9bd496d4bf2ee3aa46812a1614f0eab5f28d8445aef36f70b8e1bc4.jpg", + "table_caption": [ + "表 4.10 MT008 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0080302042-4号活塞环更换2-4号活塞环1A/8000hJY级
", + "bbox": [ + 141, + 215, + 855, + 265 + ], + "page_idx": 33 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 149, + 266, + 258, + 280 + ], + "page_idx": 33 + }, + { + "type": "text", + "text": "1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置; \n2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。", + "bbox": [ + 176, + 281, + 653, + 312 + ], + "page_idx": 33 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 149, + 316, + 258, + 329 + ], + "page_idx": 33 + }, + { + "type": "text", + "text": "1.不同环型(刮油环、锥面环)不得互换位置;", + "bbox": [ + 184, + 331, + 544, + 344 + ], + "page_idx": 33 + }, + { + "type": "text", + "text": "2.安装刮油环时,确保弹簧胀圈接口与环体开口错开 $1 8 0 ^ { \\circ }$ ° 。", + "bbox": [ + 163, + 348, + 648, + 361 + ], + "page_idx": 33 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 147, + 363, + 648, + 378 + ], + "page_idx": 33 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 149, + 380, + 388, + 394 + ], + "page_idx": 33 + }, + { + "type": "table", + "img_path": "images/84eb534a800bc189ebc70eb7f0e07c4174c2677dad5e99396296b51517412e8c.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个同MT007
2环口定位夹具Custom-Ring-Aligner1套控制各环开口相位
3放大镜(带LED)5X with light1个检查环体缺陷
", + "bbox": [ + 151, + 395, + 842, + 482 + ], + "page_idx": 33 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 483, + 248, + 497 + ], + "page_idx": 33 + }, + { + "type": "table", + "img_path": "images/644d51924b16b97ab8f9fdb659ee71f1aa156b5cc0b1fec6d1ff55e4096dc42f.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
1第二道压缩环MAN 5L35MC-RING-21件锥面环
2第三道刮油环(组合式)MAN 5L35MC-RING-31套含轨环+弹簧胀圈
3第四道刮油环(组合式)MAN 5L35MC-RING-41套同上
", + "bbox": [ + 149, + 498, + 842, + 600 + ], + "page_idx": 33 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 601, + 248, + 615 + ], + "page_idx": 33 + }, + { + "type": "table", + "img_path": "images/2708b0a8a650c0e3cbf95a97fde1ef0596c4d57460e7f07ec2aef58e5be85cbf.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus10g涂所有环外圆
2缸套润滑机油Shell Mysella S5N8050mL涂缸壁
3标记笔(耐油)MarkalOil-Resistant1支标记环开口位置
", + "bbox": [ + 149, + 617, + 843, + 720 + ], + "page_idx": 33 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 720, + 248, + 734 + ], + "page_idx": 33 + }, + { + "type": "table", + "img_path": "images/d662f4af2139e15aaa57188733de33e641f4b03157d6667ca7258c2a481cd64f.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2工程师+技师工程师监督相位布置
", + "bbox": [ + 149, + 736, + 843, + 789 + ], + "page_idx": 33 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 790, + 275, + 806 + ], + "page_idx": 33 + }, + { + "type": "text", + "text": "更换前提确认 ", + "bbox": [ + 147, + 827, + 257, + 843 + ], + "page_idx": 33 + }, + { + "type": "text", + "text": "1)已完成 $\\mathrm { M T 0 0 6 }$ 活塞拆检,确认 2-4 号环磨损超限或断裂; \n2)新环套装齐全,各环类型与图纸一致(RING-2 为锥面,RING-3/4 为组合刮油环)。", + "bbox": [ + 181, + 846, + 848, + 881 + ], + "page_idx": 33 + }, + { + "type": "discarded", + "text": "34 ", + "bbox": [ + 489, + 916, + 507, + 927 + ], + "page_idx": 33 + }, + { + "type": "text", + "text": "拆卸旧环 ", + "text_level": 1, + "bbox": [ + 147, + 87, + 223, + 102 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "1)依次取出 2-4号旧环,按顺序放置于标记托盘;", + "bbox": [ + 189, + 105, + 569, + 120 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "2)彻底清洁各环槽,确保无残留弹簧片或积碳。", + "bbox": [ + 183, + 123, + 568, + 139 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "安装新环", + "bbox": [ + 149, + 161, + 223, + 175 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "1)逐环装配 ", + "bbox": [ + 184, + 179, + 284, + 195 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "(1)第二道环(锥面环):“TOP”标记朝上,开口位置与 1号环错开 $1 2 0 ^ { \\circ }$ °;", + "bbox": [ + 194, + 198, + 791, + 214 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "(2)第三、四道刮油环:先装下轨环 $\\twoheadrightarrow$ 弹簧胀圈 $\\twoheadrightarrow$ 上轨环,胀圈接口与环体开口相位差 $1 8 0 ^ { \\circ }$ °;", + "bbox": [ + 147, + 217, + 847, + 250 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "(3)各环开口相位布置如下:- 1 号环: $0 ^ { \\circ }$ °- 2 号环: $1 2 0 ^ { \\circ }$ - 3 号环: $2 4 0 ^ { \\circ }$ - 4 号环: $6 0 ^ { \\circ }$ ", + "bbox": [ + 183, + 254, + 413, + 342 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "2)润滑与压缩 ", + "bbox": [ + 183, + 347, + 302, + 361 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "(1)在所有新环外圆涂 Molycote BR2 Plus; \n(2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; \n(3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。", + "bbox": [ + 184, + 366, + 645, + 418 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "验证 ", + "bbox": [ + 149, + 439, + 186, + 454 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "1)盘车两圈,确认无异常阻力; \n2)抽查一道环口位置是否符合相位要求。", + "bbox": [ + 183, + 457, + 502, + 492 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "验收标准", + "text_level": 1, + "bbox": [ + 147, + 494, + 223, + 508 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "1.各环类型、位置、方向正确,无混装;", + "bbox": [ + 184, + 511, + 494, + 525 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "2.刮油环弹簧胀圈接口与环体开口错开 $1 8 0 ^ { \\circ }$ °;", + "bbox": [ + 186, + 527, + 539, + 542 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "3.所有环口相位偏差 $\\leqslant \\pm 1 0 ^ { \\circ }$ ;", + "bbox": [ + 184, + 543, + 430, + 557 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "4.盘车力矩平稳,无突增。", + "bbox": [ + 184, + 560, + 386, + 574 + ], + "page_idx": 34 + }, + { + "type": "table", + "img_path": "images/6c00fbbe951f21cb3e0d13bc44d16f601dc4e70dbe0361aae85e405869a03b4f.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
页码:1/1版本号:1
", + "bbox": [ + 152, + 575, + 852, + 593 + ], + "page_idx": 34 + }, + { + "type": "table", + "img_path": "images/9babe398ad8f1e41d999d6e9c6e878f68e3574523cf241724fd4b39ad158a7ab.jpg", + "table_caption": [ + "表 4.11 MT009 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT009030301气缸套检测气缸套内径磨损量1A/8000hJY级
", + "bbox": [ + 141, + 639, + 857, + 707 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 147, + 707, + 258, + 721 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;", + "bbox": [ + 183, + 722, + 759, + 738 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "2.缸口作业区域设置防坠落围栏,工具系防坠绳。", + "bbox": [ + 179, + 739, + 566, + 753 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 147, + 756, + 258, + 770 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "1.禁止在气缸冷却水未排空状态下进行内径测量; \n2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。", + "bbox": [ + 183, + 772, + 705, + 803 + ], + "page_idx": 34 + }, + { + "type": "discarded", + "text": "35 ", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 34 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 146, + 85, + 648, + 101 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 149, + 102, + 388, + 116 + ], + "page_idx": 35 + }, + { + "type": "table", + "img_path": "images/48ae24fc95a7356e1a88b02d6d3a3697412738f3625f3a0ba0898823888db511.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1内径千分尺(三点式)Mitutoyo 204-304 mm1套分辨率0.001mm
2缸套磨损测量记录仪Custom-Bore-Wear-Log1台自动生成磨损曲线
3防爆LED手电Streamlight 880401个24V安全电压
4清洁气枪Industrial Air BlowGun1把压力≤0.5 MPa
", + "bbox": [ + 149, + 117, + 842, + 253 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 254, + 250, + 268 + ], + "page_idx": 35 + }, + { + "type": "table", + "img_path": "images/a1f8d70f1a6ff63c8f9d82b9867452a754f0875b413a32aa794bfafbc739a64d.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
本项目为检测类,无备件消耗
", + "bbox": [ + 151, + 268, + 842, + 322 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 323, + 248, + 337 + ], + "page_idx": 35 + }, + { + "type": "table", + "img_path": "images/e95beab976433c0370e1682df5754fcfbcdab1b4b5255a5ed8cf98f37a3d78de.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%100 mL清洁测量接触面
2无绒布Kimwipe EX-L5张防刮伤缸壁
3防锈纸VCI-2002张测量后临时覆盖
", + "bbox": [ + 149, + 338, + 842, + 409 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 409, + 248, + 423 + ], + "page_idx": 35 + }, + { + "type": "table", + "img_path": "images/0e0ad963c11b37258960ae1d5e77ae69b826d1ba13630771dc2375415659644e.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2总工+工程师总工审核磨损趋势
", + "bbox": [ + 147, + 424, + 843, + 478 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 480, + 275, + 494 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "检测前提确认 ", + "bbox": [ + 183, + 498, + 292, + 513 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "1)主机已停机 $\\geqslant 6$ 小时,缸套温度 $\\leqslant 5 0 \\mathrm { { ^ \\circ C } }$ ", + "bbox": [ + 186, + 517, + 534, + 531 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "2)活塞已按 $\\mathbb { M T } 0 0 6$ 抽出,缸套内部无积碳遮挡;", + "bbox": [ + 186, + 536, + 552, + 550 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "3)冷却水系统已隔离并排空。", + "bbox": [ + 184, + 554, + 415, + 568 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "执行内径磨损测量", + "bbox": [ + 184, + 573, + 329, + 587 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "1)清洁缸套 ", + "bbox": [ + 184, + 590, + 284, + 606 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "(1)用气枪吹净缸套上部浮尘;", + "bbox": [ + 194, + 609, + 433, + 624 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "(2)用酒精和无绒布擦拭测量区域(距上止点下 $2 0 \\ \\mathrm { \\ m m }$ 至下止点上 $2 0 ~ \\mathrm { \\ m m }$ )。", + "bbox": [ + 189, + 627, + 781, + 643 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "2)设定测量截面与角度", + "bbox": [ + 183, + 646, + 373, + 662 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "(1)沿轴向选取 5 个截面:- A: 上止点下 $2 0 ~ \\mathrm { \\ m m }$ - B: 上止点下 $1 0 0 ~ \\mathrm { { \\ m m } }$ - C: 行程中点- D: 下止点上 $1 0 0 ~ \\mathrm { { \\ m m } }$ - E: 下止点上 $2 0 ~ \\mathrm { \\ m m }$ ", + "bbox": [ + 183, + 665, + 396, + 772 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "(2)每个截面在 $0 ^ { \\circ }$ 、 $9 0 ^ { \\circ }$ 、 $1 8 0 ^ { \\circ }$ °、 $2 7 0 ^ { \\circ }$ 四个方向测量内径。 ", + "bbox": [ + 189, + 776, + 675, + 791 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "3)测量与记录", + "bbox": [ + 183, + 795, + 302, + 809 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "(1)将三点式内径千分尺调零后置入截面,缓慢旋转获取最大读数;", + "bbox": [ + 193, + 814, + 714, + 828 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "(2)记录各点实测值,计算圆度(同一截面最大–最小)与锥度(A–E 差值)。", + "bbox": [ + 184, + 832, + 808, + 848 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "1)若所有截面圆度 $\\leqslant 0 . 0 8 \\ \\mathrm { ~ m m }$ 且锥度 $\\leqslant 0 . 1 2 \\ \\mathrm { ~ m m }$ ,则判定合格;", + "bbox": [ + 181, + 869, + 694, + 884 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "2)若任一指标超限但未达更换阈值,缩短下次检测周期至 $4 0 0 0 \\mathrm { ~ h ~ }$ ", + "bbox": [ + 184, + 888, + 694, + 903 + ], + "page_idx": 35 + }, + { + "type": "discarded", + "text": "36 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 35 + }, + { + "type": "text", + "text": "3)若锥度 $> 0 . 2 0 ~ \\mathrm { \\ m m }$ 或局部拉伤深度 $> 0 . 3 ~ \\mathrm { \\ m m }$ ,启动 MT010(更换气缸套)。", + "bbox": [ + 176, + 86, + 779, + 102 + ], + "page_idx": 36 + }, + { + "type": "text", + "text": "图 MT009.1 气缸套磨损测量截面位置图(略)", + "bbox": [ + 315, + 105, + 668, + 121 + ], + "page_idx": 36 + }, + { + "type": "text", + "text": "验收标准", + "text_level": 1, + "bbox": [ + 147, + 151, + 223, + 165 + ], + "page_idx": 36 + }, + { + "type": "text", + "text": "1.圆度 $\\leqslant 0 . 0 8 \\ \\mathrm { ~ m m }$ ,锥度 $\\leqslant 0 . 1 2 \\ \\mathrm { ~ m m }$ ;", + "bbox": [ + 184, + 167, + 475, + 181 + ], + "page_idx": 36 + }, + { + "type": "text", + "text": "2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人; \n3.千分尺校验标签在有效期内,环境温度波动 $\\leqslant \\pm 3 ^ { \\circ } \\mathrm { C }$ 。", + "bbox": [ + 183, + 184, + 741, + 214 + ], + "page_idx": 36 + }, + { + "type": "text", + "text": "版本号:1", + "bbox": [ + 551, + 216, + 633, + 231 + ], + "page_idx": 36 + }, + { + "type": "table", + "img_path": "images/87fce5bf449233f78128adb83cd588c24c6c85ec7a42aa0399adc91c5f526553.jpg", + "table_caption": [ + "表 4.12 MT010 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT010030301气缸套更换气缸套4A/32000hJY级
", + "bbox": [ + 141, + 279, + 855, + 331 + ], + "page_idx": 36 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 147, + 331, + 258, + 346 + ], + "page_idx": 36 + }, + { + "type": "text", + "text": "1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台; \n2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。", + "bbox": [ + 184, + 347, + 648, + 378 + ], + "page_idx": 36 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 149, + 380, + 258, + 394 + ], + "page_idx": 36 + }, + { + "type": "text", + "text": "1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹; \n2.新缸套压装过程中,操作人员不得站在压机正下方。", + "bbox": [ + 171, + 397, + 635, + 426 + ], + "page_idx": 36 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 149, + 429, + 645, + 444 + ], + "page_idx": 36 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 149, + 445, + 389, + 460 + ], + "page_idx": 36 + }, + { + "type": "table", + "img_path": "images/74415b9d60137c586dcd1767c9e4e0696d0b982e78ed0ccb9a2fb0c314b53180.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
房号名称规格/型号数量及单位备注
1液压压装机HYDRA-PRESS-50T1台带压力与位移监控
2缸套拔出器OEM-MAN-BW-LINER-PULL1套螺纹顶压式
3冷却水腔密封测试仪LeakTest-CT3001台0.3 MPa 保压
4深度规0-300 mm1把测量缸套凸肩高度
", + "bbox": [ + 149, + 461, + 842, + 614 + ], + "page_idx": 36 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 615, + 248, + 630 + ], + "page_idx": 36 + }, + { + "type": "table", + "img_path": "images/8420e2a1babd70fc33fe28ad80a3337247ea8b52dbf1f34e3be780a39b7841ed.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
1气缸套总成MAN5L35MC-LINER-ASSY1件含0形圈、定位销
2缸套水封0形圈VitonΦ380×5.02个耐高温氟橡胶
3缸套油封环NBR Φ352×3.01个下部密封
", + "bbox": [ + 151, + 631, + 842, + 718 + ], + "page_idx": 36 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 718, + 248, + 732 + ], + "page_idx": 36 + }, + { + "type": "table", + "img_path": "images/e8e4477b07dadd3e5963ba5c380579da83715529325f438d4c488124eb750a1a.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1装配润滑脂KluberIsoflex LDS18 Special A20g涂缸套外壁
2密封胶Loctite 518少量水腔法兰面(如适用)
3清洗剂Brulin 815GD300mL清洁缸体座孔
", + "bbox": [ + 149, + 733, + 842, + 837 + ], + "page_idx": 36 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 837, + 247, + 851 + ], + "page_idx": 36 + }, + { + "type": "table", + "img_path": "images/c5105fed6c282ca75bf71ffe0071df3fb1cf5b40bb6c56059a41c0d7b1a2a27c.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工监督压装对中
", + "bbox": [ + 147, + 852, + 842, + 906 + ], + "page_idx": 36 + }, + { + "type": "discarded", + "text": "37 ", + "bbox": [ + 489, + 916, + 507, + 927 + ], + "page_idx": 36 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 86, + 275, + 102 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "更换前提确认 ", + "bbox": [ + 184, + 105, + 292, + 120 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "1)MT009 检测结果确认缸套磨损超限(锥度 $> 0 . 2 0 ~ \\mathrm { \\ m m }$ 或裂纹);", + "bbox": [ + 184, + 123, + 692, + 139 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "2)新缸套已核对尺寸、材质证书,O 形圈无老化。", + "bbox": [ + 186, + 142, + 568, + 158 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "拆卸旧缸套 ", + "bbox": [ + 184, + 161, + 275, + 175 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "1)拆除缸头、活塞、冷却水管路;", + "bbox": [ + 186, + 179, + 448, + 195 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "2)安装缸套拔出器,均匀施力将旧套缓慢顶出;", + "bbox": [ + 188, + 198, + 556, + 214 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 ", + "bbox": [ + 178, + 217, + 608, + 250 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "1)准备 ", + "bbox": [ + 184, + 254, + 248, + 268 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "(1)清洁缸体座孔及新缸套外壁,无毛刺、油污;", + "bbox": [ + 193, + 273, + 571, + 287 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "(2)在新缸套外壁薄涂 Klüber润滑脂;", + "bbox": [ + 194, + 291, + 492, + 306 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "(3)将 O 形圈装入缸体水封槽,涂少量硅脂。", + "bbox": [ + 191, + 310, + 539, + 324 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "2)压装", + "bbox": [ + 183, + 329, + 250, + 343 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "(1)将新缸套垂直放入座孔,使用导向套对中;", + "bbox": [ + 194, + 347, + 554, + 361 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "(2)启动液压压机,以 $\\leqslant 5 \\ \\mathrm { ~ m m / m i n }$ 速度压入,监控压力曲线;", + "bbox": [ + 193, + 365, + 680, + 380 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "(3)压装到位后,测量缸套上平面凸肩高度,标准值: $3 . 5 { \\pm } 0 . 2 \\ \\mathrm { m m }$ 。", + "bbox": [ + 191, + 384, + 724, + 399 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "3)密封测试 ", + "bbox": [ + 183, + 403, + 285, + 417 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "(1)封闭水腔进出口,注入 $0 . 3 \\ \\mathrm { M P a }$ 压缩空气;", + "bbox": [ + 194, + 422, + 554, + 436 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "(2)保压 10 分钟,压降 $\\leqslant 0 . 0 1$ MPa 判定密封合格。", + "bbox": [ + 193, + 439, + 600, + 455 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "恢复 ", + "bbox": [ + 184, + 458, + 221, + 473 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "1)安装活塞、缸头等附件; \n2)清理作业区域,回收旧缸套。", + "bbox": [ + 183, + 476, + 433, + 510 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "验收标准", + "text_level": 1, + "bbox": [ + 147, + 513, + 223, + 527 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "1.缸套凸肩高度 $3 . 3 { \\sim } 3 . 7$ mm; \n2.水腔 $0 . 3 \\ \\mathrm { M P a }$ 保压 10 分钟无泄漏; \n3.缸套内径圆度 $\\leqslant 0 . \\ 0 3$ mm(出厂状态)。", + "bbox": [ + 181, + 530, + 514, + 575 + ], + "page_idx": 37 + }, + { + "type": "table", + "img_path": "images/c80ab133994da3e41bf2fc792747e4545e419edb30d47fe7d1ff5e6ba6a83819.jpg", + "table_caption": [ + "表 4.13 MT011 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT011040102阀杆检查排气阀杆密封面磨损6M/4000hJY级
安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。
安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。
", + "bbox": [ + 139, + 640, + 858, + 808 + ], + "page_idx": 37 + }, + { + "type": "discarded", + "text": "38 ", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 37 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 146, + 85, + 648, + 101 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 149, + 102, + 388, + 116 + ], + "page_idx": 38 + }, + { + "type": "table", + "img_path": "images/34cf880c9926683d1f6505f7df49abec2ebb1ab5ba21310575a1188f22961b3a.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
房号名称规格/型号数量及单位备注
1排气阀专用吊具OEM-MAN-BW-VALVE-HOOK1套带隔热手柄
2红外测温仪Fluke 62 Max+1台测量阀杆温度
3密封面检测平板Optical Flat >/101块用于着色法检查
4着色剂套装Dykem Steel Blue +Developer1套检查接触印痕
", + "bbox": [ + 149, + 117, + 842, + 256 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 256, + 250, + 271 + ], + "page_idx": 38 + }, + { + "type": "table", + "img_path": "images/bf99186cd879c9bfa15b1637aeeed082008633ce78998edd4bcee9ddaeebd910.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
本项目为检查类,无备件消耗(但可能触发MT012)
", + "bbox": [ + 149, + 271, + 842, + 356 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 357, + 248, + 372 + ], + "page_idx": 38 + }, + { + "type": "table", + "img_path": "images/3f72ba3e56ae0e2d7f015bcc0df263bc035580932fe3c9ed55c4647f67a760c5.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1高温清洁剂CRCBrakleen HT100 mL清除积碳
2无绒布Kimwipe EX-L5张防刮伤密封面
3防锈油CRC 3-3630mL检查后临时防护
", + "bbox": [ + 149, + 372, + 842, + 443 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 444, + 248, + 457 + ], + "page_idx": 38 + }, + { + "type": "table", + "img_path": "images/db1872ca15ea02b30cc72814196338b3cd6cc65a3773bfc0fa7ac944cb82c997.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2工程师+ 技师工程师判定磨损等级
", + "bbox": [ + 149, + 460, + 843, + 512 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 514, + 275, + 529 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "检查前提确认 ", + "bbox": [ + 183, + 532, + 292, + 548 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "1)主机已停机 $\\geqslant 4$ 小时,排气阀杆温度 ${ \\leqslant } 8 0 \\mathrm { { } \\mathrm { { \\ ? } C } }$ (用红外测温仪确认);", + "bbox": [ + 183, + 551, + 749, + 567 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "2)启动空气系统已隔离并泄压。拆卸排气阀组件", + "bbox": [ + 183, + 570, + 435, + 604 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "1)拆除阀杆驱动弹簧及锁紧螺母;", + "bbox": [ + 186, + 606, + 448, + 621 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。", + "bbox": [ + 184, + 625, + 628, + 640 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "1)清洁 ", + "bbox": [ + 184, + 663, + 250, + 677 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "(1)用高温清洁剂软化密封面积碳;", + "bbox": [ + 194, + 681, + 465, + 696 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "(2)用铜刷清除残留物,禁用钢丝刷。", + "bbox": [ + 194, + 700, + 487, + 714 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "2)着色法检测 ", + "bbox": [ + 183, + 718, + 304, + 733 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "(1)在阀座密封面上均匀涂抹 Dykem 着色剂;", + "bbox": [ + 194, + 737, + 537, + 752 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "(2)将阀杆轻压旋转 $1 8 0 ^ { \\circ }$ 后提起;", + "bbox": [ + 194, + 756, + 460, + 770 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "(3)观察阀杆密封面印痕:- 合格:连续环带,宽度 $\\geqslant 1 . 5 ~ \\mathrm { ~ m m }$ ,无断点;- 轻微磨损:环带不连续但无凹坑;- 严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置", + "bbox": [ + 184, + 774, + 537, + 863 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "1)若印痕连续且宽度 $\\geqslant 1 . 5 ~ \\mathrm { ~ m m ~ }$ ,清洁后回装;", + "bbox": [ + 186, + 866, + 544, + 882 + ], + "page_idx": 38 + }, + { + "type": "text", + "text": "2)若存在局部凹坑或烧蚀,标记该阀,启动 MT012(更换排气阀座)", + "bbox": [ + 188, + 885, + 719, + 900 + ], + "page_idx": 38 + }, + { + "type": "discarded", + "text": "39 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 38 + }, + { + "type": "table", + "img_path": "images/3cec13a68c9df4626f2a589b361c8a8fa05f5c541f5a0ec1d23733076c7392b6.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
3)记录检查结果于《排气阀状态档案》。
验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm;
2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。
页码:1/1版本号:1
", + "bbox": [ + 144, + 85, + 857, + 187 + ], + "page_idx": 39 + }, + { + "type": "table", + "img_path": "images/bff1d3d9c33279c521e4140f06fbfa54965aa0cdf0c9752a3abd3f6f05af308f.jpg", + "table_caption": [ + "表 4.14 MT012 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT012040103阀座更换排气阀座2A/16000hJY级
", + "bbox": [ + 141, + 233, + 855, + 285 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 149, + 285, + 258, + 299 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖; \n2.使用便携式镗床时,设备接地良好,操作区设置警戒线。", + "bbox": [ + 184, + 300, + 689, + 332 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 151, + 334, + 258, + 348 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "1.禁止在未冷却的缸盖上进行阀座更换作业; \n2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。", + "bbox": [ + 183, + 350, + 608, + 381 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 146, + 384, + 647, + 398 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 151, + 399, + 388, + 413 + ], + "page_idx": 39 + }, + { + "type": "table", + "img_path": "images/d77fad97afeed10abe80a5c80d67cf91eeb28f4cc8f0b1b377ad6b3516f47bc6.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1便携式阀座镗床SUNNEN SV-201台带角度调节
2液压阀座压装机HYDRA-SEAT-PRESS1台用于过盈配合座
3渗透探伤套装Magnaflux ZL-27A1套PT检测裂纹
4角度规0-90°Protractor1把检查密封锥角
", + "bbox": [ + 151, + 414, + 842, + 501 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 502, + 248, + 517 + ], + "page_idx": 39 + }, + { + "type": "table", + "img_path": "images/d92ed589728fbcbb65a7e82c050e46a057f88f5e3e82817657ffa330af263aaa.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
1排气阀座MAN5L35MC-EXH-SEAT1件Stellite合金堆焊
2定位销(如适用)Φ8×20mm1个不锈钢
", + "bbox": [ + 149, + 517, + 842, + 587 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 588, + 248, + 602 + ], + "page_idx": 39 + }, + { + "type": "table", + "img_path": "images/b56ad140e5ee45b6ea34aae302abda9e67844cbd1dd0f3b4bdb1bb26a108eed6.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1高温镍基焊条ENiCrFe-31根用于焊接固定(如需要)
2清洗剂Brulin 815GD150mL清洁阀座孔
3研磨膏(细)Clover Leaf Green20g配合研磨
", + "bbox": [ + 149, + 604, + 842, + 690 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 690, + 248, + 705 + ], + "page_idx": 39 + }, + { + "type": "table", + "img_path": "images/c7eb15d8ba091f59771cb294d657dd5b30ebd98be386bc5344db1bd0e1fa4464.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2总工+工程师总工批准焊接/压装方案
", + "bbox": [ + 149, + 706, + 843, + 759 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 149, + 762, + 275, + 776 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "更换前提确认 ", + "bbox": [ + 184, + 780, + 292, + 794 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "1)MT011 检查确认阀座密封面烧蚀、裂纹或锥面变形;", + "bbox": [ + 184, + 799, + 605, + 813 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "2)新阀座材质、锥角(通常 $4 5 ^ { \\circ }$ )与原设计一致。", + "bbox": [ + 181, + 816, + 578, + 832 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "拆卸旧阀座", + "bbox": [ + 184, + 835, + 275, + 850 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "1)若为压装式:使用液压拉拔器缓慢取出;", + "bbox": [ + 186, + 853, + 517, + 869 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座", + "bbox": [ + 183, + 872, + 732, + 906 + ], + "page_idx": 39 + }, + { + "type": "discarded", + "text": "40 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 39 + }, + { + "type": "text", + "text": "1)准备阀座孔 ", + "bbox": [ + 184, + 87, + 302, + 102 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "(1)清洁孔内油污、毛刺,测量内径;", + "bbox": [ + 196, + 105, + 485, + 121 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "(2)若为压装,确保过盈量 $0 . \\ 0 5 { \\sim } 0 . \\ 0 8 \\ \\ \\mathrm { m m } .$ 。", + "bbox": [ + 194, + 124, + 537, + 139 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "2)安装方式选择", + "bbox": [ + 183, + 143, + 319, + 158 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "(1)压装法:将新阀座冷却至 $- 4 0 \\mathrm { { ^ \\circ C } }$ (干冰),快速压入预热至 $8 0 ^ { \\circ } \\mathrm { C }$ 的缸盖孔;", + "bbox": [ + 191, + 161, + 806, + 177 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "(2)焊接法:采用 TIG 焊沿阀座底部周向点焊固定,焊后缓冷。", + "bbox": [ + 193, + 179, + 680, + 195 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "3)密封面精加工", + "bbox": [ + 183, + 199, + 319, + 214 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "(1)使用便携镗床修整密封锥面,角度 $4 5 ^ { \\circ } \\ \\pm 0 . 5 ^ { \\circ }$ ;", + "bbox": [ + 191, + 217, + 603, + 231 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "(2)表面粗糙度 Ra $\\leqslant 1 . 6$ μm。", + "bbox": [ + 194, + 236, + 442, + 249 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "研配与检测", + "bbox": [ + 184, + 254, + 275, + 268 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "1)与对应阀杆进行手工研磨,着色印痕连续宽度 $\\geqslant 1 . 8 ~ \\mathrm { ~ m m }$ ;", + "bbox": [ + 184, + 273, + 652, + 287 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "2)对焊接区域进行 PT 探伤,无裂纹、气孔;", + "bbox": [ + 186, + 291, + 529, + 305 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "3)记录安装参数(温度、压力、角度)。", + "bbox": [ + 181, + 310, + 505, + 324 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "验收标准", + "text_level": 1, + "bbox": [ + 147, + 328, + 223, + 342 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "1阀座与阀杆着色印痕连续,宽度 $\\geqslant 1 . 8 ~ \\mathrm { ~ m m }$ ;", + "bbox": [ + 188, + 344, + 532, + 359 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "2.PT探伤无缺陷(适用于焊接阀座);", + "bbox": [ + 183, + 360, + 478, + 374 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "3.密封面锥角 $4 5 ^ { \\circ } \\ \\pm 0 . 5 ^ { \\circ }$ ,Ra $\\leqslant 1 . 6$ μm;", + "bbox": [ + 189, + 376, + 529, + 391 + ], + "page_idx": 40 + }, + { + "type": "table", + "img_path": "images/7d14d57404ed767de0a2e7840b42e0b2afda3dc10171b23d463b916324812485.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
页码:1/1版本号:1
", + "bbox": [ + 196, + 407, + 635, + 425 + ], + "page_idx": 40 + }, + { + "type": "table", + "img_path": "images/3788b3203d91394f4b7a5311b32953a953e254b421d05baf1f52558c41bc6f30.jpg", + "table_caption": [ + "表 4.15 MT013 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT013050201喷油嘴偶件更换喷油嘴偶件6M/4000hJY级
", + "bbox": [ + 141, + 472, + 855, + 524 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 149, + 524, + 258, + 538 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板; \n2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火", + "bbox": [ + 179, + 539, + 751, + 570 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 151, + 573, + 258, + 587 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤; \n2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。", + "bbox": [ + 183, + 589, + 652, + 620 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 146, + 621, + 648, + 637 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 149, + 638, + 388, + 652 + ], + "page_idx": 40 + }, + { + "type": "table", + "img_path": "images/cb1a6c51b79cfddbe6580f1cb329c1ce65953c9b5cbca5960cca1669e3f30d01.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2高压燃油压力表0-20 MPa1个校验有效期内
3喷油雾化测试台Bosch EPS 8151台可测开启压力与雾化角
4扭矩扳手40-200 N·m1把用于喷油器压紧螺母
", + "bbox": [ + 149, + 653, + 842, + 808 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "2)备品备件", + "text_level": 1, + "bbox": [ + 147, + 808, + 250, + 822 + ], + "page_idx": 40 + }, + { + "type": "table", + "img_path": "images/2b2924f3ebe0522f5fa99fec63ff901dae7aa889d4e737c0b583a0d1088f1e4d.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
1喷油嘴偶件(针阀+阀体)MAN5L35MC-INJ-NOZZLE-KIT1套原厂高精度配对
2喷油器铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
", + "bbox": [ + 147, + 824, + 848, + 910 + ], + "page_idx": 40 + }, + { + "type": "discarded", + "text": "41 ", + "bbox": [ + 489, + 916, + 507, + 927 + ], + "page_idx": 40 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 86, + 248, + 99 + ], + "page_idx": 41 + }, + { + "type": "table", + "img_path": "images/85e023a38d930f0333bb4df4fe33e8cc070dcfe5484aee878ff80fe7c441da0a.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200 mL用于冲洗油道
2无绒布KimwipeEX-L5张擦拭偶件表面
3高温润滑脂Molycote G-1052少量涂压紧螺纹
", + "bbox": [ + 147, + 102, + 843, + 172 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 172, + 247, + 186 + ], + "page_idx": 41 + }, + { + "type": "table", + "img_path": "images/f4789fe836bf2e604358ac589c97d60e831881e01d0f974f962cb5c5d0715484.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2工程师+ 技师工程师操作测试台
", + "bbox": [ + 147, + 187, + 843, + 241 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 243, + 275, + 258 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "更换前提确认 ", + "bbox": [ + 184, + 262, + 292, + 277 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "1)主机运行中出现单缸排温异常升高或冒黑烟;", + "bbox": [ + 186, + 280, + 554, + 296 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "2)或按计划周期( ${ \\geqslant } 4 0 0 0 \\ \\mathrm { ~ h ~ } )$ )执行预防性更换;", + "bbox": [ + 184, + 299, + 552, + 313 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "3)新喷油嘴偶件包装完好,配对编号一致。", + "bbox": [ + 184, + 318, + 521, + 332 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "拆卸旧喷油器", + "bbox": [ + 184, + 337, + 292, + 350 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "1)关闭该缸高压油泵进油阀,泄放残余压力;", + "bbox": [ + 186, + 355, + 534, + 369 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出);", + "bbox": [ + 183, + 374, + 660, + 388 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "3)垂直取出喷油器总成,防止针阀意外伸出。更换喷油嘴偶件", + "bbox": [ + 184, + 392, + 539, + 425 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "1)分解旧喷油器", + "bbox": [ + 184, + 429, + 319, + 444 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "(1)在清洁工作台上拆下旧喷油嘴;", + "bbox": [ + 194, + 448, + 467, + 462 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "(2)检查是否有咬死、积碳或滴漏。", + "bbox": [ + 193, + 466, + 468, + 481 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "2)安装新偶件", + "bbox": [ + 183, + 485, + 302, + 499 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "(2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合;", + "bbox": [ + 191, + 521, + 593, + 537 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "(3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩: $1 2 0 \\mathrm { ~ N ~ } \\cdot \\mathrm { ~ m ~ }$ 。功能测试", + "bbox": [ + 188, + 541, + 734, + 574 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "1)在 Bosch EPS 815 测试台上校验: \n开启压力: $2 8 . 0 ~ \\pm ~ 0 . 5 ~ \\mathrm { M P a }$ \n雾化角: $1 5 0 ^ { \\circ } \\quad \\pm \\quad 5 ^ { \\circ }$ \n无滴漏、无断续喷射", + "bbox": [ + 183, + 577, + 472, + 648 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "2)若不合格,整套偶件报废,不得修配。", + "bbox": [ + 183, + 652, + 504, + 667 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "验收标准", + "text_level": 1, + "bbox": [ + 147, + 670, + 223, + 684 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "1.喷油开启压力 $2 7 . 5 { \\sim } 2 8 . 5 \\mathrm { M P a } ;$ ; \n2.雾化均匀,呈锥形无偏射、无油线; \n3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤± $1 5 \\mathrm { { ^ \\circ C } }$ 。", + "bbox": [ + 183, + 686, + 628, + 733 + ], + "page_idx": 41 + }, + { + "type": "table", + "img_path": "images/84c2063cbf7e241b34a4aa2725bc0f22d29ce6f98ecdef0bf5c61c411a47e3fd.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
页码:1/1版本号:1
", + "bbox": [ + 198, + 734, + 670, + 751 + ], + "page_idx": 41 + }, + { + "type": "table", + "img_path": "images/d9c030a75145e1791f86a2d9a908f1f4da5e7289393a09316f6b076298df40b7.jpg", + "table_caption": [ + "表 4.16 MT014 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT014050301柱塞偶件更换高压油泵柱塞偶件1A/8000hJY级
", + "bbox": [ + 141, + 797, + 857, + 865 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 147, + 866, + 258, + 879 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO); \n2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。", + "bbox": [ + 183, + 882, + 653, + 913 + ], + "page_idx": 41 + }, + { + "type": "discarded", + "text": "42 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 41 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 149, + 85, + 258, + 101 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件; \n2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。", + "bbox": [ + 183, + 102, + 653, + 133 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 146, + 135, + 648, + 149 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 149, + 152, + 388, + 166 + ], + "page_idx": 42 + }, + { + "type": "table", + "img_path": "images/08cf3167d4569a978c09d9e050b02ddf8e1e3aa0ef8b116b42c8efcec5a4c93f.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
房号名称规格/型号数量及单位备注
1柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDE1个防止划伤
2供油定时检测仪AVL 5451台测量喷油始点
3精密塞尺0.02-1.00 mm1套检查齿条间隙
4扭矩扳手30 -150 N·m1把用于泵体检修盖
", + "bbox": [ + 149, + 166, + 842, + 305 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 305, + 250, + 319 + ], + "page_idx": 42 + }, + { + "type": "table", + "img_path": "images/f9bd3c362d9edf732412bd076d504bc2db63abfd134686503d8ffcd8459d3f89.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
1柱塞+套筒偶件MAN5L35MC-PLUNGER-KIT1套配对编号一致
2出油阀组件MAN 5L35MC-DV-ASSY1套含弹簧、阀座
", + "bbox": [ + 151, + 321, + 842, + 391 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 392, + 248, + 405 + ], + "page_idx": 42 + }, + { + "type": "table", + "img_path": "images/15adc6d53e360c3ffbf7cae317743bff4710bc15db71d8dd73cb06e4deeaad80.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1高压泵专用润滑油Shell Tellus S4 VX32100 mL用于偶件润滑
2密封胶Loctite 577少量泵体结合面(如适用)
3清洗柴油ISO 4020 Grade A300mL冲洗油道
", + "bbox": [ + 149, + 406, + 842, + 510 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 510, + 248, + 524 + ], + "page_idx": 42 + }, + { + "type": "table", + "img_path": "images/ccf18762395203045a9e2ec154d10cc2355a03efc2aaa64be358e23910636c04.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2总工+工程师总工确认供油定时
", + "bbox": [ + 147, + 525, + 843, + 579 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 580, + 275, + 595 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "更换前提确认 ", + "bbox": [ + 184, + 599, + 292, + 613 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "1)主机出现供油不足、单缸功率下降或高压油泵异响;", + "bbox": [ + 183, + 617, + 608, + 632 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "2)或运行时间 ${ \\geqslant } 8 0 0 0 \\ \\mathrm { ~ h ~ }$ ,执行计划性更换;", + "bbox": [ + 186, + 636, + 529, + 651 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "3)新偶件配对编号与泵体匹配,无运输损伤。", + "bbox": [ + 184, + 655, + 539, + 669 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "拆卸高压油泵 ", + "bbox": [ + 184, + 674, + 292, + 688 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "1)拆除进出油管、齿条连接机构;", + "bbox": [ + 184, + 692, + 448, + 707 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件", + "bbox": [ + 183, + 709, + 576, + 744 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "1)清洁与检查", + "bbox": [ + 184, + 747, + 302, + 762 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "(1)用清洗柴油彻底冲洗泵体内腔;", + "bbox": [ + 194, + 765, + 465, + 781 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "(2)检查齿条移动是否灵活,间隙 $0 . 1 0 { \\sim } 0 . 2 0 \\ \\mathrm { m m } .$ 。", + "bbox": [ + 191, + 784, + 591, + 800 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "2)装配 ", + "bbox": [ + 183, + 803, + 250, + 818 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "(1)在新柱塞表面涂 Shell Tellus $\\mathrm { S 4 } ~ \\mathrm { V X } ~ 3 2$ 润滑油;", + "bbox": [ + 191, + 821, + 608, + 837 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;", + "bbox": [ + 193, + 839, + 715, + 856 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "(3)安装出油阀组件,确保弹簧预紧到位。", + "bbox": [ + 194, + 858, + 522, + 873 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "3)回装泵体", + "bbox": [ + 183, + 877, + 285, + 891 + ], + "page_idx": 42 + }, + { + "type": "text", + "text": "(1)安装检修盖,螺栓按对角线顺序拧紧至 $8 0 \\mathrm { ~ N ~ } { \\cdot } \\mathrm { ~ m ~ }$ ;", + "bbox": [ + 189, + 896, + 606, + 912 + ], + "page_idx": 42 + }, + { + "type": "discarded", + "text": "43 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 42 + }, + { + "type": "table", + "img_path": "images/3ddcf3b7ddfad8d1a80face37dec9346e56672b57777efdd018ee2f1da0ffc3f.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
(2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点;
2)标准值:上止点前 12.5°±0.5°CA; 3)若超差,调整高压油泵调节螺钉。
验收标准
1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前12.0°~13.0° CA;
3.主机各缸排温差≤±20℃,无功率波动。
页码:1/1版本号:1
", + "bbox": [ + 146, + 84, + 857, + 262 + ], + "page_idx": 43 + }, + { + "type": "table", + "img_path": "images/177385f7d21cf44a6c7b22d93d584d1b87346878ed4ddc3b273b8d9c4fc7d308.jpg", + "table_caption": [ + "表 4.17 MT015 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT015060103轴承组件更换涡轮增压器轴承组件2A/16000hZJ级
", + "bbox": [ + 141, + 307, + 857, + 374 + ], + "page_idx": 43 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 147, + 375, + 258, + 390 + ], + "page_idx": 43 + }, + { + "type": "text", + "text": "1.拆卸增压器前必须隔离排气与进气管路,并加装盲板; \n2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。", + "bbox": [ + 184, + 391, + 653, + 422 + ], + "page_idx": 43 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 149, + 425, + 258, + 438 + ], + "page_idx": 43 + }, + { + "type": "text", + "text": "1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具; \n2.新轴承安装前确认无油脂污染或保持架变形。", + "bbox": [ + 181, + 441, + 726, + 472 + ], + "page_idx": 43 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 146, + 473, + 647, + 488 + ], + "page_idx": 43 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 149, + 489, + 388, + 504 + ], + "page_idx": 43 + }, + { + "type": "table", + "img_path": "images/e37abb31e6993a4f4b817d5019e568d1012d1f6d0ca8e332753c2b2ce20b147e.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1涡轮增压器专用拆装台Custom-Turbo-Bench1台带V型支撑
2感应加热器EFD Minac 101台温控±5℃
3动平衡检测仪Schenck BALANCER V1台G2.5级精度
4扭矩扳手10 -80 N· m1把用于壳体螺栓
", + "bbox": [ + 149, + 505, + 842, + 608 + ], + "page_idx": 43 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 609, + 248, + 624 + ], + "page_idx": 43 + }, + { + "type": "table", + "img_path": "images/78b644797b49d7d1ed98770e443535f132e55a1033020a7d88e78aacf4420e2d.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
1径向轴承(主轴)MAN TCA77-BRG-RAD1套铜铅合金
2止推轴承组件MANTCA77-BRG-THRUST1套含瓦片+垫片组
3轴封环Carbon Seal Φ60X32个石墨基
", + "bbox": [ + 149, + 624, + 842, + 727 + ], + "page_idx": 43 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 727, + 248, + 741 + ], + "page_idx": 43 + }, + { + "type": "table", + "img_path": "images/a90f89d2712f7dde7cc9b49c577c282476b06de587f6a16a092f71a972c6a4fc.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1高温润滑脂Kluber Isoflex LDS18 Special A15g仅涂轴承外圈
2清洗剂Brulin 815GD200mL清洁轴承座
3密封胶Loctite 518少量壳体结合面
", + "bbox": [ + 149, + 743, + 843, + 829 + ], + "page_idx": 43 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 831, + 247, + 845 + ], + "page_idx": 43 + }, + { + "type": "table", + "img_path": "images/2eb6e6fe6ad3b5cb978e2f8d9ceaab468984358fb4936826d7e100055bd6a939.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2高级+中级高级主导装配
2电子专业1中级监测振动传感器
(如适用)
修理步骤及工艺 更换前提确认1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换; 3)新轴承组件包装完好,无运输损伤。 拆卸增压器总成
1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量;(2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。
(2)迅速套入主轴,自然冷却; (3)安装止推轴承,调整垫片组使轴向间隙0.10~0.15 mm。 回装与测试 1)按对称顺序拧紧壳体螺栓(扭矩:50N·m); 2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。
1.转子轴向间隙0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。
", + "bbox": [ + 147, + 846, + 842, + 900 + ], + "page_idx": 43 + }, + { + "type": "discarded", + "text": "44 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 43 + }, + { + "type": "table", + "img_path": "", + "table_caption": [], + "table_footnote": [], + "bbox": [ + 139, + 77, + 857, + 626 + ], + "page_idx": 44 + }, + { + "type": "table", + "img_path": "images/19bace132f258eda9a0f0ed0038d4f3628babab9b6420496f9ecef3606d0451d.jpg", + "table_caption": [ + "表 4.18 MT016 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT016060201管束芯体清洗空冷器管束芯体3MZJ级
安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。
安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。
", + "bbox": [ + 141, + 655, + 858, + 821 + ], + "page_idx": 44 + }, + { + "type": "discarded", + "text": "45 ", + "bbox": [ + 490, + 916, + 507, + 927 + ], + "page_idx": 44 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 146, + 85, + 648, + 101 + ], + "page_idx": 45 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 149, + 102, + 388, + 116 + ], + "page_idx": 45 + }, + { + "type": "table", + "img_path": "images/589ae43a94599b0256180df1a6d8dedbcfda7194df1845fe595d151507e475de.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1高压清洗机Kärcher HD 7/15-41台压力0-5MPa可调
2管束专用清洗喷头Rotating Nozzle 3mm2个自旋式
3风压干燥机Industrial AirDryer1台0.6 MPa
4泄漏测试装置Air/Water LeakTester1套0.4 MPa保压
", + "bbox": [ + 149, + 117, + 842, + 254 + ], + "page_idx": 45 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 269, + 250, + 285 + ], + "page_idx": 45 + }, + { + "type": "table", + "img_path": "images/dff968cf3f8303eaeb8b69cebc8f08c6c8e0e980417a5fd984b3afdc53e2f75b.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
本项目为清洗类,无备件消耗(但可能触发堵管修复
", + "bbox": [ + 151, + 285, + 842, + 370 + ], + "page_idx": 45 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 387, + 248, + 401 + ], + "page_idx": 45 + }, + { + "type": "table", + "img_path": "images/8520748ebd52052df10c34e92fb3700e10f8c6d49339298b5efac1bb9b0d52d0.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1中性清洗剂Alconox Detojet2kgpH=9.5,环保型
2软化水Deionized Water200L配制清洗液
3防锈剂CRC 3-36100mL清洗后喷涂
", + "bbox": [ + 149, + 403, + 842, + 478 + ], + "page_idx": 45 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 493, + 248, + 508 + ], + "page_idx": 45 + }, + { + "type": "table", + "img_path": "images/2f3338db1cfa035327247e781ff8fc47f6e330a267e77205f5163d0c61cea32f.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2中级+初级中级操作高压设备
", + "bbox": [ + 149, + 508, + 843, + 562 + ], + "page_idx": 45 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 564, + 275, + 579 + ], + "page_idx": 45 + }, + { + "type": "text", + "text": "清洗前提确认 ", + "bbox": [ + 183, + 583, + 292, + 598 + ], + "page_idx": 45 + }, + { + "type": "text", + "text": "1)主机扫气温度差(进/出空冷器) ${ } > 1 5 \\mathrm { { \\small C } }$ ,或压降 $> 1 . 5 \\mathrm { \\ k P a }$ ;2)空冷器已从系统中隔离并排空。 \n外部清洁 \n1)用低压水冲洗空冷器外表面,去除盐结晶与油污; \n2)拆除端盖,检查管口堵塞情况。 \n管束芯体清洗", + "bbox": [ + 183, + 600, + 670, + 709 + ], + "page_idx": 45 + }, + { + "type": "text", + "text": "1)配制清洗液 ", + "bbox": [ + 184, + 713, + 302, + 727 + ], + "page_idx": 45 + }, + { + "type": "text", + "text": "(1)将 Alconox Detojet 按 $2 \\%$ 浓度溶于软化水; \n(2)水温控制在 $4 0 \\pm 5 ^ { \\circ } \\mathrm { C }$ 。", + "bbox": [ + 191, + 731, + 561, + 765 + ], + "page_idx": 45 + }, + { + "type": "text", + "text": "2)高压冲洗 ", + "bbox": [ + 183, + 769, + 285, + 783 + ], + "page_idx": 45 + }, + { + "type": "text", + "text": "(1)将旋转喷头插入每根管子,以 $3 . 5 \\ \\mathrm { M P a }$ 压力冲洗; \n(2)水流方向与正常流向一致,单管冲洗时间 $\\geqslant 1 5$ 秒; \n(3)重点清洗迎风面及底部积垢区。", + "bbox": [ + 191, + 787, + 625, + 839 + ], + "page_idx": 45 + }, + { + "type": "text", + "text": "3)漂洗与干燥 (1)用清水彻底漂洗至 $\\mathrm { p H } = 7$ ; 清洗前提确认 ", + "bbox": [ + 183, + 843, + 304, + 857 + ], + "page_idx": 45 + }, + { + "type": "text", + "text": "", + "bbox": [ + 183, + 862, + 420, + 895 + ], + "page_idx": 45 + }, + { + "type": "discarded", + "text": "46 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 45 + }, + { + "type": "table", + "img_path": "images/004e36a1bb6e0ce70ae1bc4d785ed1c1a75e0faaf2a30ace23d7debe1bca20c1.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet 按2%浓度溶于软化水; (2)水温控制在 40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5 MPa 压力冲洗;
(2)水流方向与正常流向一致,单管冲洗时间≥15秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥 (1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降≤0.01 MPa; 2)在翅片表面薄喷CRC 3-36 防锈剂。 验收标准
1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1
", + "bbox": [ + 139, + 84, + 857, + 525 + ], + "page_idx": 46 + }, + { + "type": "table", + "img_path": "images/eeb84f1da39a8d6bef72d598a31bc350e2697bde1d6376902da09a3068aedf75.jpg", + "table_caption": [ + "表 4.19 MT017 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
T017030200连杆大端轴承修复连杆大端轴承异常磨损故障触发ZJ级
", + "bbox": [ + 141, + 568, + 857, + 634 + ], + "page_idx": 46 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 149, + 634, + 258, + 649 + ], + "page_idx": 46 + }, + { + "type": "text", + "text": "1.着火后必须立即停机、切断燃油与启动空气,并启动 $\\mathrm { C O } _ { 2 }$ 灭火系统(如已动作需确认复位);", + "bbox": [ + 147, + 650, + 852, + 682 + ], + "page_idx": 46 + }, + { + "type": "text", + "text": "2.进入扫气箱前执行受限空间作业许可,检测 $_ { 0 2 }$ $\\geqslant 1 9 . 5 \\%$ 、CH₄ $\\mathrm { ‰ }$ LEL。", + "bbox": [ + 166, + 683, + 774, + 699 + ], + "page_idx": 46 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 149, + 701, + 258, + 714 + ], + "page_idx": 46 + }, + { + "type": "text", + "text": "1.禁止在未冷却( ${ \\mathrm { > } } 6 0 ^ { \\circ } \\mathrm { C }$ )的扫气箱内使用电动工具; \n2.残留油泥可能自燃,清理时持续喷雾降温。", + "bbox": [ + 178, + 717, + 855, + 749 + ], + "page_idx": 46 + }, + { + "type": "discarded", + "text": "47 ", + "bbox": [ + 490, + 916, + 507, + 926 + ], + "page_idx": 46 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 146, + 85, + 648, + 101 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 149, + 102, + 388, + 116 + ], + "page_idx": 47 + }, + { + "type": "table", + "img_path": "images/2b5b8ee8b18bad85acde5192315ef2444d4f83c4ca9d8ab73a8ff8dc67ee656d.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1防爆型扫气箱清洗机器人SCB-CLEANBOT-X11台自动高压水射流
2内窥镜(防爆)GE Mentor VisualiQ-Ex1台检查缸套下部
3红外热像仪FLIR T8601台检测局部热点
4可燃气体检测仪MSA Altair 5X1台多气体复合
", + "bbox": [ + 149, + 117, + 842, + 236 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 237, + 248, + 252 + ], + "page_idx": 47 + }, + { + "type": "table", + "img_path": "images/f37d8856ae9e463800bfd29f79ca44c80412abf9c74dbf7a8e77f6de17a836ef.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
1全套活塞环组MAN5L35MC-RING-SET1套含1-4号环
2活塞头(如需更换)MAN5L35MC-PISTON-HEAD1件铸钢整体式
3扫气口密封条Viton Strip 5×10mm若干更换烧损件
", + "bbox": [ + 149, + 253, + 842, + 372 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 373, + 248, + 387 + ], + "page_idx": 47 + }, + { + "type": "table", + "img_path": "images/c94efcd5460e879ef884dadc22dd2124ef4a72cf9c2851e1e1757463313322ff.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1生物降解清洗剂Envirox SC-905L清除碳化油泥
2耐高温防火毯Fiberglass Mat1200° C2m局部隔热防护
3防锈剂CRC 3-36200 mL修复后防护
", + "bbox": [ + 149, + 387, + 842, + 474 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 475, + 247, + 489 + ], + "page_idx": 47 + }, + { + "type": "table", + "img_path": "images/cb363fa868381289e478adb6f32493c43b18e752a56cadcadfec5fe06783db12.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工主导故障分析
2安全监督1高级安全员全程监护受限空间作业
", + "bbox": [ + 147, + 489, + 843, + 576 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 579, + 275, + 593 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "故障确认与隔离 ", + "bbox": [ + 183, + 596, + 310, + 612 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;", + "bbox": [ + 183, + 615, + 766, + 631 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;", + "bbox": [ + 183, + 634, + 658, + 649 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "3)隔离该缸燃油、启动空气、冷却水。", + "bbox": [ + 184, + 652, + 487, + 668 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "扫气箱清理与检查", + "bbox": [ + 183, + 671, + 329, + 686 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "1)打开扫气箱人孔,通风 $\\geqslant 3 0$ 分钟;", + "bbox": [ + 186, + 689, + 470, + 705 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "2)用清洗机器人清除底部碳化油泥(重点:着火点周边);", + "bbox": [ + 183, + 708, + 643, + 724 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "3)目视 $^ +$ 内窥镜检查: 缸套下部有无拉伤; 扫气口边缘是否熔融变形; 曲轴箱油雾浓度是否异常。 活塞组件修复 ", + "bbox": [ + 183, + 727, + 389, + 815 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "1)抽出故障缸活塞,确认 1 号环断裂、环槽烧蚀;", + "bbox": [ + 186, + 820, + 571, + 834 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "2)若活塞头无裂纹,仅更换全套活塞环(执行 $\\mathsf { M T 0 0 7 + M T 0 0 8 }$ );", + "bbox": [ + 183, + 838, + 675, + 853 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "3)若活塞头火力岸熔损 $\\mathrm { > 2 ~ } \\mathrm { \\ m m }$ ,启动 MT018。", + "bbox": [ + 186, + 857, + 532, + 872 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "系统恢复与验证 ", + "text_level": 1, + "bbox": [ + 184, + 876, + 312, + 890 + ], + "page_idx": 47 + }, + { + "type": "text", + "text": "1)回装活塞,按标准扭矩紧固缸头;", + "bbox": [ + 184, + 894, + 467, + 909 + ], + "page_idx": 47 + }, + { + "type": "discarded", + "text": "48 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 47 + }, + { + "type": "table", + "img_path": "images/7227d0daf0c769faeb131e181788def98050e9b27c6dc9b0693663cde8c55c2a.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
2)手动盘车两圈,确认无卡滞; 3)空载试运行30分钟,监测: 扫气温度≤60℃; 无异常振动或异响。
验收标准 1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;
2.新活塞环安装正确,环口相位符合MT008要求;
3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。 版本号:1
页码:1/1
", + "bbox": [ + 142, + 83, + 857, + 243 + ], + "page_idx": 48 + }, + { + "type": "table", + "img_path": "images/46c2924f25583fe627ee289d47ec06d800021f27694f7e3bd6cc179f6919e6a2.jpg", + "table_caption": [ + "表 4.20 MT018 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT018030201活塞头修复活塞头部烧蚀熔损故障触发ZJ级
", + "bbox": [ + 141, + 288, + 857, + 356 + ], + "page_idx": 48 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 147, + 356, + 258, + 370 + ], + "page_idx": 48 + }, + { + "type": "text", + "text": "1.修复作业区设置防火挡板,配备干粉灭火器( $\\geq 2$ 具);", + "bbox": [ + 183, + 373, + 638, + 387 + ], + "page_idx": 48 + }, + { + "type": "text", + "text": "2.焊接/堆焊操作需办理动火作业许可证。", + "bbox": [ + 184, + 390, + 504, + 404 + ], + "page_idx": 48 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 147, + 406, + 258, + 420 + ], + "page_idx": 48 + }, + { + "type": "text", + "text": "1.禁止对深度裂纹( $> 3 ~ \\mathrm { \\ m m }$ )的活塞头进行堆焊修复,必须更换;", + "bbox": [ + 184, + 422, + 677, + 436 + ], + "page_idx": 48 + }, + { + "type": "text", + "text": "2.热处理后必须缓冷,防止二次裂纹。", + "bbox": [ + 183, + 438, + 477, + 453 + ], + "page_idx": 48 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 144, + 455, + 648, + 470 + ], + "page_idx": 48 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 151, + 472, + 388, + 485 + ], + "page_idx": 48 + }, + { + "type": "table", + "img_path": "images/32d5dc4c805882bb565ad1798f6473d303fc514159c07cbcfc6ea81634d0378b.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1等离子堆焊机PLASMAD 50001台自动送粉
2热处理炉Box Furnace 800° C1台控温±10℃
3超声波探伤仪Olympus Epoch 6501台检测内部缺陷
4三维扫描仪FARO Arm Quantum1台修复前后形貌比对
", + "bbox": [ + 151, + 487, + 842, + 589 + ], + "page_idx": 48 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 592, + 248, + 606 + ], + "page_idx": 48 + }, + { + "type": "table", + "img_path": "images/4dd933f117785c5969f3a1d6a53eff6818997165f34146ffb93a048d21eb5966.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
本项目为修复 类,通常不消耗 新活塞(除非报 废)
", + "bbox": [ + 151, + 608, + 842, + 693 + ], + "page_idx": 48 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 694, + 248, + 708 + ], + "page_idx": 48 + }, + { + "type": "table", + "img_path": "images/9be110028429a170bd9198b7ca83de055391a99753478f50e0df9fd1ea8af3ce.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1镍基合金焊粉INCONEL 625300g耐高温抗烧蚀
2渗透探伤剂Magnaflux ZL-27A1套PT检测裂纹
3保温棉Ceramic FiberBlanket2kg焊后包裹缓冷
", + "bbox": [ + 149, + 709, + 842, + 796 + ], + "page_idx": 48 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 797, + 248, + 810 + ], + "page_idx": 48 + }, + { + "type": "table", + "img_path": "images/d2cbc77a3a2ac425d414e1acac29963ff0d731b0e4a03e9b32b7219dc1117a0a.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2总工+高级技师总工批准修复方案
2焊接专业1高级焊工(ASMEIX认证)执行堆焊
", + "bbox": [ + 147, + 812, + 843, + 898 + ], + "page_idx": 48 + }, + { + "type": "discarded", + "text": "49 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 48 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 86, + 275, + 102 + ], + "page_idx": 49 + }, + { + "type": "text", + "text": "损伤评估1)通过 $\\mathrm { M T 0 0 6 }$ 或 MT017 拆检,确认活塞顶存在:局部熔坑(深度 ${ \\leqslant } 3 ~ \\mathrm { m m }$ );火力岸微裂纹(长度 $\\mathrm { < 1 0 m m }$ ,深度 $\\mathrm { ~ < 2 ~ } \\mathrm { { \\ m m } }$ );2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。预处理1)用 PT 渗透法标记所有表面裂纹;2)用碳弧气刨或铣刀将熔损区域加工成 U 型坡口( $\\mathrm { R \\geqslant 3 ~ } \\mathrm { m m }$ );3)放入热处理炉预热至 $2 5 0 \\mathrm { { ^ \\circ C } }$ ,保温 2 小时。堆焊修复1)采用等离子堆焊,使用 INCONEL 625 焊粉,层间温度控制在 $2 0 0 - 3 0 0 ^ { \\circ } \\mathrm { C }$ ;2)堆焊高度超出原轮廓 $1 . 5 ~ \\mathrm { m m }$ ,预留机加工余量;3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至 $\\leqslant 5 0 \\mathrm { { ^ \\circ C } }$ 。后处理与验证1)机加工恢复活塞顶原始轮廓(参照三维扫描模型);2)再次 PT探伤,确认无新裂纹;3)测量重量,与标准活塞偏差 $\\leqslant \\pm 5 0 \\ \\mathrm { ~ g ~ }$ ,否则配重。验收标准1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT 合格);2.活塞顶几何尺寸符合图纸公差 $( \\pm 0 . 2 \\ \\mathrm { m m }$ );3.重量偏差 $\\leqslant \\pm 5 0 \\ \\mathrm { ~ g ~ }$ ,冷却腔密封性测试 $0 . 3 \\ \\mathrm { M P a }$ 保压 10 分钟无泄漏。页码:1/1 版本号:1", + "bbox": [ + 147, + 101, + 858, + 506 + ], + "page_idx": 49 + }, + { + "type": "table", + "img_path": "images/c51b2aaede1c8661c4368cfc5783e6ecf85a44124062b77d57b24e84ea78519a.jpg", + "table_caption": [ + "表 4.21 MT019 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0190502喷油器组件排除喷油器雾化不良故障1UZJ级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
", + "bbox": [ + 137, + 548, + 858, + 714 + ], + "page_idx": 49 + }, + { + "type": "discarded", + "text": "50 ", + "bbox": [ + 490, + 916, + 509, + 927 + ], + "page_idx": 49 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 146, + 85, + 648, + 101 + ], + "page_idx": 50 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 151, + 102, + 388, + 116 + ], + "page_idx": 50 + }, + { + "type": "table", + "img_path": "images/6f04ce377fe09aed214a11a76d483b13ac43ca385afc78c973f751d77ced2cb0.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
房号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2喷油雾化测试台Bosch EPS 815或等效1台可调压、可视窗
3扭矩扳手40-200 N·m1把用于压紧螺母回装
", + "bbox": [ + 151, + 117, + 842, + 239 + ], + "page_idx": 50 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 239, + 248, + 254 + ], + "page_idx": 50 + }, + { + "type": "table", + "img_path": "images/091745869d9e39897356465a59e8b64ac108910c1b7a4732d181221132a2f299.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
1喷油嘴偶件MAN5L35MC-INJ-NOZZLE-KIT1套原厂配对
2铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
", + "bbox": [ + 151, + 254, + 847, + 341 + ], + "page_idx": 50 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 342, + 248, + 355 + ], + "page_idx": 50 + }, + { + "type": "table", + "img_path": "images/9df813b48e988c9095f21d9842bca11e57fb7682bd75dc234d94f21ba9f936c5.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200 mL冲洗油道
2无绒布KimwipeEX-L5张擦拭精密表面
3高温润滑脂Molycote G-1052少量涂压紧螺纹
", + "bbox": [ + 151, + 356, + 843, + 426 + ], + "page_idx": 50 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 428, + 248, + 442 + ], + "page_idx": 50 + }, + { + "type": "table", + "img_path": "images/f954f989fdbb278d4d19b6154a4a555350774751b94f7f7b38fdd62066f9d9ec.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2高级+中级高级主导测试判定
", + "bbox": [ + 147, + 442, + 845, + 495 + ], + "page_idx": 50 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 149, + 498, + 275, + 513 + ], + "page_idx": 50 + }, + { + "type": "text", + "text": "故障确认 ", + "bbox": [ + 184, + 517, + 257, + 531 + ], + "page_idx": 50 + }, + { + "type": "text", + "text": "1)主机运行中出现: \n单缸排温异常升高(>平均值 $+ 5 0 \\mathrm { { ^ \\circ C } }$ ); \n排烟冒黑烟或有未燃柴油味; \n高压油管脉动减弱。 \n2)初步判断为该缸喷油器雾化不良。 \n拆卸与初步检查 \n1)关闭该缸高压油泵进油阀,手动盘车泄压; \n2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。 \n雾化性能测试 \n1)在 Bosch EPS 815 测试台上安装喷油器; \n2)逐步升压至 $2 8 \\ \\mathrm { \\ M P a }$ ,观察: \n合格:雾锥均匀、无油线、无滴漏,开启压力 $2 8 . 0 { \\pm } 0 . 5 \\ \\mathrm { \\text M P a }$ ;雾化不良表现: \n(1)喷射断续; \n(2)雾锥偏斜或呈柱状; \n(3)停喷后滴漏 >1滴/分钟。 \n3)若不合格,分解更换喷油嘴偶件。 \n回装与验证 \n1)更换新铜密封垫,安装喷油器,压紧螺母扭矩: $1 2 0 \\mathrm { ~ N ~ } \\cdot \\mathrm { ~ m ~ }$ ;", + "bbox": [ + 179, + 536, + 673, + 904 + ], + "page_idx": 50 + }, + { + "type": "discarded", + "text": "51 ", + "bbox": [ + 489, + 916, + 507, + 927 + ], + "page_idx": 50 + }, + { + "type": "table", + "img_path": "images/91b01c11f4cf3483266f6fa4a5030ebc753179a1cc46ec66f1c5c4bece9dbf82.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃); 3)运行30分钟无泄漏、无黑烟。
验收标准
1.喷油开启压力27.5~28.5MPa;
2.雾化锥角150°±5°,无偏射、无滴漏;
3.主机运行后单缸排温偏差≤±20℃,无黑烟。
页码:1/1版本号:1
", + "bbox": [ + 142, + 85, + 857, + 206 + ], + "page_idx": 51 + }, + { + "type": "table", + "img_path": "images/043bc7964cc612f73b8dd5df1f86088ccdf15ddd5c8cfbff2f59b85bcf38244a.jpg", + "table_caption": [ + "表 4.22 MT020 维修项目" + ], + "table_footnote": [], + "table_body": "
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT02001机座与机架组件排除主机功率异常波动故障1UZJ级
", + "bbox": [ + 139, + 252, + 857, + 319 + ], + "page_idx": 51 + }, + { + "type": "text", + "text": "安全防护要求", + "text_level": 1, + "bbox": [ + 147, + 319, + 258, + 334 + ], + "page_idx": 51 + }, + { + "type": "text", + "text": "1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;", + "bbox": [ + 181, + 335, + 759, + 349 + ], + "page_idx": 51 + }, + { + "type": "text", + "text": "2.数据采集接线须由持证电工完成,符合船用防爆规范。", + "bbox": [ + 183, + 351, + 618, + 367 + ], + "page_idx": 51 + }, + { + "type": "text", + "text": "安全注意事项", + "text_level": 1, + "bbox": [ + 147, + 369, + 258, + 382 + ], + "page_idx": 51 + }, + { + "type": "text", + "text": "1.禁止在功率剧烈波动时强行维持高负荷运行; \n2.调整调速器前必须双人确认,防止飞车风险。", + "bbox": [ + 181, + 385, + 549, + 416 + ], + "page_idx": 51 + }, + { + "type": "text", + "text": "保障设施、保障设备(工具)、备件、消耗材料、人力人员需求", + "bbox": [ + 144, + 418, + 650, + 432 + ], + "page_idx": 51 + }, + { + "type": "text", + "text": "1)保障设施、保障设备(工具)", + "bbox": [ + 151, + 435, + 388, + 449 + ], + "page_idx": 51 + }, + { + "type": "table", + "img_path": "images/3499655e0344bd1ad7dc91c49346ca1677d826625bf6cee864cf4293923700c9.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称规格/型号数量及单位备注
1主机监控系统(PMS)Integrated BridgeSystem1套读取实时功率曲线
2调速器性能测试仪Woodward Test Bench1台检测响应滞后
3燃油黏度计MarconiViscotester1台测 HFO黏度
4多通道数据记录仪DataTaker DT801套同步录负荷/转速
", + "bbox": [ + 149, + 450, + 842, + 585 + ], + "page_idx": 51 + }, + { + "type": "text", + "text": "2)备品备件", + "bbox": [ + 147, + 586, + 248, + 600 + ], + "page_idx": 51 + }, + { + "type": "table", + "img_path": "images/3a7b3047879fb151575ea3089c05392719e3ef60b8ed29c54b33d1017d4e2832.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
名称规格/型号消耗数量备注
1调速器伺服阀滤芯OEM-GOV-FILTER1个如堵塞
2燃油温度传感器PT100,0-200°C1个如漂移
", + "bbox": [ + 151, + 601, + 842, + 655 + ], + "page_idx": 51 + }, + { + "type": "text", + "text": "3)消耗材料", + "bbox": [ + 147, + 656, + 248, + 670 + ], + "page_idx": 51 + }, + { + "type": "table", + "img_path": "images/648b589bd43bad699c0cc801ff089b2d7f9f504423b127b0a1166f6d1e17045f.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号名称牌号/品级/规格消耗数量备注
1标准测试燃油ISO 8217 RMG380300L用于稳定测试
2密封胶Loctite 577少量传感器安装
", + "bbox": [ + 149, + 671, + 842, + 724 + ], + "page_idx": 51 + }, + { + "type": "text", + "text": "4)人力人员", + "bbox": [ + 147, + 725, + 247, + 739 + ], + "page_idx": 51 + }, + { + "type": "table", + "img_path": "images/f1c74e028c39d31a38ddcd966912e0f70ddec2dcf34a4c384c2ece43ab94d9bd.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
序号专业人数技能等级备注
1机械专业2高级+中级高级主导系统分析
2自动化专业1中级负责调速器信号检测
", + "bbox": [ + 147, + 740, + 843, + 826 + ], + "page_idx": 51 + }, + { + "type": "text", + "text": "修理步骤及工艺", + "text_level": 1, + "bbox": [ + 147, + 828, + 275, + 843 + ], + "page_idx": 51 + }, + { + "type": "text", + "text": "故障特征识别 ", + "bbox": [ + 184, + 847, + 294, + 862 + ], + "page_idx": 51 + }, + { + "type": "text", + "text": "1)确认现象:主机在恒定指令下,输出功率周期性波动( $\\pm 5 \\%$ 以上),伴随转速摆动; \n2)排除电网负载突变(如侧推启停)等外部干扰。", + "bbox": [ + 183, + 865, + 848, + 900 + ], + "page_idx": 51 + }, + { + "type": "discarded", + "text": "52 ", + "bbox": [ + 489, + 916, + 507, + 927 + ], + "page_idx": 51 + }, + { + "type": "text", + "text": "分系统排查", + "text_level": 1, + "bbox": [ + 184, + 86, + 275, + 102 + ], + "page_idx": 52 + }, + { + "type": "table", + "img_path": "images/4b521b926f1c9b1aa07ce53a18e8977d1705608d4ba82f258775d3094035af0f.jpg", + "table_caption": [], + "table_footnote": [], + "table_body": "
分系统排查 1)燃油系统检查 (1)测燃油黏度:若 >15cSt(150℃),则加热不足→检查黏度计/加热器;
(2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。
2)调速系统检查
(1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。
3)各缸一致性检查
(1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。 针对性处置
1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均→执行MT013/MT019 逐缸排查。 验证运行
1)在85%MCR恒定负荷下运行60分钟; 2)记录功率波动幅度,要求≤±2% 收标准 1.主机在恒定负荷指令下,功率波动幅度 ≤±2%;
2.转速稳定性≤±1rpm(额定转速下); 3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1
", + "bbox": [ + 169, + 92, + 858, + 467 + ], + "page_idx": 52 + }, + { + "type": "text", + "text": "", + "text_level": 1, + "bbox": [ + 147, + 384, + 223, + 398 + ], + "page_idx": 52 + }, + { + "type": "text", + "text": "5器材保障 ", + "text_level": 1, + "bbox": [ + 147, + 472, + 329, + 502 + ], + "page_idx": 52 + }, + { + "type": "text", + "text": "5.1 保障设施、保障设备(工具)信息汇总表", + "text_level": 1, + "bbox": [ + 149, + 536, + 672, + 560 + ], + "page_idx": 52 + }, + { + "type": "table", + "img_path": "images/844b58b1c5f0fbbd159c32bd31d1d975212c09187be4807acab7aa38e5edaccc.jpg", + "table_caption": [ + "表 5.1 船舶主发动机工具信息汇总表" + ], + "table_footnote": [], + "table_body": "
房号名称规格/型号生产单位通用/专用参考价(元)存放位置备注
1液压升降平台HLP-3000OEM 或市场品专用120045085,000主机车间东侧工具架A区用于接近主机上部
2扭矩扳手TB-200N·mOEM 或市场品通用32.51,200工具柜 B-02精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FITOEM专用53.82,500主机备件柜M-07厂家配套
4工业吸油泵VAC-0IL50OEM 或市场品专用25186,800油料间防爆柜防爆型
5激光对SKF TKSA 71SKF专用84.298,000精密仪器室轴承
名称规格/型号生产单位通用/专用1参考价(元)存放位置备注
中仪C-01同轴度检测
6塞尺组0.02-1.00 mm市品通用0.80.6180量具盒D-05精度土0.005m
7液压拉伸器HYTORCAVANTI-10/RS-20HYTORC专用302242,000螺栓工具架E区用于地脚螺栓/连杆螺栓
8内径千分尺200-300 mm /40-50 mmMitutoyo等通用21.43,600量具柜F-03校验有效期内
9精密千分表 Mitutoyo543-791DMitutoyo专用1.20.94,200精密仪器室C-02分辨率0.001m
10磁力表座Starrett 16BStarrett通用1.51.81,500量具柜F-04带万向关节
11V型支撑架Custom-Crank-V300OEM专用8012018,000曲轴检修平台旁承重≥500kg
12盘车手轮OEM-MAN-BW-PCWOEM专用15125,500主机附件箱G-01原厂配套
13内窥镜GE MentorVisual iQ/iQ-ExGE专用63.575,000探伤设备柜H-02防爆型用于故障排查
14轴承安装导向套OEM-MAN-BW-BG-04OEM专用45.23,800轴承装配区I-03防止瓦片移位
15活塞吊装专用吊具OEM-MAN-BW-PST-05OEM专用202812,000吊具架J-01带缓冲橡胶夹头
16感应加热器EFD InductionMinac 16 /EFD专用453568,000热装工具区K-02温控精度
名称规格/型号生产单位通用/专用参考价(元)存放位置备注
Minac 10±5℃
17铜棒与塑料锤Φ20×300 mm市品通用22.1150普通工具箱L-05用于轻敲装配
18活塞环压缩器OEM-MAN-BW-RCC-06OEM专用86.54,200活塞维修台M-03适配350活塞
19环槽清洁刮刀Custom-Piston-Groove-ScraperOEM专用0.50.4320活塞工具盒N-01铜质加
20环口定位夹具Custom-Ring-AlignerOEM专用32.31,800活塞维修台M-04控制环开□相位
21缸套拔出器OEM-MAN-BW-LI NER-PULLOEM专用25329,500缸体检修区0-02螺纹顶压式
22液压压装机HYDRA-PRESS-50TOEM 或市品专用600800180,000压装工位P区带压力与位移监控
23冷却水腔密封测试仪LeakTest-CT300OEM专用181528,000密封测试台Q-010.3MPa保压
24深度规0-150mm/0- 300 mm市品通用10.7600量具柜F-05
25放大镜(带LED)5×/10×withscale/light市品通用0.60.3220检验工具盒R-01检查裂纹/印痕
26防爆LED手电Streamlight88040Streamlight专用0.40.51,100防爆工具柜S-0124V安全电压
27清洁气枪Industrial AirBlow Gun市品通用1.20.9180气动工具架T-02压力≤0.5MPa
28排气阀专用吊具OEM-MAN-BW-VALVE-HOOKOEM专用12166,200阀件吊装区U-01带隔热手柄
29红外测温仪Fluke 62 Max+Fluke通用0.80.352,400电子仪表柜V-03测量高温
名称规格/型号生产单位通用/专用依购重量(g)参考价(元)存放位置备注
部件
30密封面检测平板Optical Flatx/10市品专用10815,000精密测量台W-01着色法检查
31便携式阀座镗床SUNNEN SV-20SUNNEN专用9075130,000阀维修区X-01带角度调节
32液压阀座压装机HYDRA-SEAT-PRESSOEM专用12018078,000阀维修区X-02过盈配合
33角度规0-90°Protractor市品通用1.51.2300量具柜F-06检查锥角
34喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCHOEM专用43.62,800喷油器工具箱Y-01防滑齿设计
35高压燃油压力表0-20 MPa市品通用0.90.8950仪表校验柜Z-02校验有效期内
36喷油雾化测试台Bosch EPS 815Bosch专用200220220,000喷油器测试室AA-01测开启压力与雾化角
37柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDEOEM专用21.71,600喷油泵维修台AB-02防划伤
38供油定时检测仪AVL 545AVL专用151285,000燃油系统测试区AC-01测喷油始点
39涡轮增压器专用拆装台Custom-Turbo-BenchOEM专用30040095,000增压器维修区AD-01带V型支撑
40动平衡检测仪SchenckBALANCER VSchenck专用500600680,000平衡实验室AE-01G2.5级精度
41高压清洗机Karcher HD7/15-4Karcher通用806532,000清洗站 AF-01压力0-5MPa可调
42管束专RotatingOEM专用0.30.2800清洗配件柜自旋
名称规格/型号生产单位通用/专用重量(kg)参考价(元)存放位置备注
用清洗喷头Nozzle 3mm5AG-01
43风压干燥机Industrial AirDryer市品通用1209025,000空压站 AH-010.6MPa
44泄漏测试装置Air/Water LeakTesterOEM专用252036,000密封测试台Q-020.4MPa保压
45防爆型扫气箱清洗机器人SCB-CLEANBOT-X1OEM专用150130420,000机器人存放区AI-01自动高压水射流
46红外热像仪FLIR T860FLIR专用52.1120,000电气检测室AJ-01检测热点
47可燃气体检测仪MSA Altair 5XMSA专用10.78,500安全设备柜AK-01多气体复合
48等离子堆焊机PLASMAD 5000OEM专用400350580,000焊接修复区AL-01自动送粉
49热处理炉Box Furnace800°COEM专用10001200320,000热处理间AM-01控温土10℃
50超声波探伤仪Olympus Epoch650Olympus专用63.295,000探伤设备柜H-03检测内部缺陷
51三维扫描仪FARO ArmQuantumFARO专用3025750,000测绘室AN-01修复形貌比对
52主机监控系统(PMS)IntegratedBridge System船厂集成专用1,200,000集控室A0-01读取功率曲线
53调速器性能测试仪Woodward TestBenchWoodward专用180200480,000调速器测试间AP-01检测响应滞后
54燃油黏度计MarconiViscotesterMarconi专用12942,000燃油化验室AQ-01测HFO黏度
55多通道数据记录仪DataTaker DT80DataTaker通用32.418,000数据采集柜AR-01同步录负荷/转速
", + "bbox": [ + 57, + 596, + 942, + 914 + ], + "page_idx": 52 + }, + { + "type": "discarded", + "text": "53 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 52 + }, + { + "type": "table", + "img_path": "", + "table_caption": [], + "table_footnote": [], + "bbox": [ + 57, + 82, + 942, + 898 + ], + "page_idx": 53 + }, + { + "type": "discarded", + "text": "54 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 53 + }, + { + "type": "table", + "img_path": "", + "table_caption": [], + "table_footnote": [], + "bbox": [ + 58, + 82, + 942, + 912 + ], + "page_idx": 54 + }, + { + "type": "discarded", + "text": "55 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 54 + }, + { + "type": "table", + "img_path": "", + "table_caption": [], + "table_footnote": [], + "bbox": [ + 58, + 85, + 944, + 910 + ], + "page_idx": 55 + }, + { + "type": "discarded", + "text": "56 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 55 + }, + { + "type": "table", + "img_path": "", + "table_caption": [], + "table_footnote": [], + "bbox": [ + 58, + 82, + 942, + 881 + ], + "page_idx": 56 + }, + { + "type": "discarded", + "text": "57 ", + "bbox": [ + 489, + 916, + 507, + 927 + ], + "page_idx": 56 + }, + { + "type": "text", + "text": "5.2 消耗材料信息汇总表", + "text_level": 1, + "bbox": [ + 147, + 91, + 462, + 115 + ], + "page_idx": 57 + }, + { + "type": "table", + "img_path": "images/f75c8c8b4d11655cc7ae5346c4c79b0cb5c1eeede2404049bd14565512f930f5.jpg", + "table_caption": [ + "表 5.2 船舶主发动机消耗材料信息汇总表" + ], + "table_footnote": [], + "table_body": "
名称牌号/品级/规格生产单位备注
1柴油机专用润滑油Shell Mysella S5 N80Shel1符合MAN 97101标准
2无纺布抹布Industrial Grade市场品不掉屑
3清洗剂CRC Brakleen /Brulin 815GD/ CRC Carbon Clean ProCRC/Brulin多用途清洁
4主机油滤芯MAN B&W 5L35MC-FIL-01MAN原厂件
5机油放油螺塞密封圈Viton Φ22×2.5市场品耐高温氟橡胶
6清洁酒精AR Grade / ≥99.5%市场品
7防锈纸VCI-200市场品
8无绒擦拭布Kimwipe EX-LKimberly-Clark防刮伤
9轴承装配润滑脂 Kluber Isoflex LDS 18Special AKluber仅涂瓦背
10螺纹锁固胶Loctite 2701Henke1用于螺栓(如适用)
11高温装配润滑脂Molycote G-1052Dow Corning活塞销/螺纹
12积碳清洗剂CRC Carbon Clean ProCRC环保型
13防锈油CRC 3-36CRC临时防护
14二硫化钼润滑膏 Molycote BR2 PlusDow Corning涂活塞环外圆
15缸套润滑机油 Shell Mysella S5 N80Shell同主滑油
16耐油标记笔 Markal Oil-ResistantMarkal标记环开口
17耐高温标记笔Markal 900° FMarkal高温环境
18装配润滑脂Kluber Isoflex LDS 18Special AKluber缸套外壁
19密封胶Loctite 518 / 577Henkel水腔/泵体法兰
20高温镍基焊条ENiCrFe-3市场品阀座焊接
21研磨膏(细)Clover Leaf GreenClover阀座研配
22清洁柴油ISO 4020 Grade A市场品冲洗油道
23高压泵专用润滑油Shell Tellus S4 VX 32Shel1偶件润滑
24中性清洗剂Alconox DetojetAlconoxpH=9.5,环保
25软化水Deionized Water市场品配清洗液
26生物降解清洗剂Envirox SC-90Envirox清除碳化油泥
27耐高温防火毯Fiberglass Mat 1200°C市场品局部隔热
28镍基合金焊粉INCONEL 625Special Metals堆焊修复
29渗透探伤剂Magnaflux ZL-27AMagnafluxPT检测裂纹
30保温棉Ceramic Fiber Blanket市场品焊后缓冷
31标准测试燃油ISO 8217 RMG380市场品稳定测试用
", + "bbox": [ + 136, + 151, + 862, + 913 + ], + "page_idx": 57 + }, + { + "type": "discarded", + "text": "58 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 57 + }, + { + "type": "table", + "img_path": "", + "table_caption": [], + "table_footnote": [], + "bbox": [ + 136, + 83, + 862, + 278 + ], + "page_idx": 58 + }, + { + "type": "text", + "text": "6 维修安全防护及注意事项汇总表", + "text_level": 1, + "bbox": [ + 146, + 304, + 727, + 336 + ], + "page_idx": 58 + }, + { + "type": "text", + "text": "以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。", + "bbox": [ + 151, + 361, + 850, + 407 + ], + "page_idx": 58 + }, + { + "type": "text", + "text": "6.1 安全防护", + "text_level": 1, + "bbox": [ + 147, + 424, + 324, + 448 + ], + "page_idx": 58 + }, + { + "type": "text", + "text": "将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。", + "bbox": [ + 147, + 469, + 850, + 544 + ], + "page_idx": 58 + }, + { + "type": "table", + "img_path": "images/8e2d702e5a91534c4e564ac45f44bc6eecf042378d6edab972aa4f5f26fdbb4a.jpg", + "table_caption": [ + "表 6.1 船舶主发动机维修期间安全防护要求" + ], + "table_footnote": [], + "table_body": "
序号维修项目安全防护要求备注
1MT001保养机座与机架组件1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡防止误启与油污扩散
2MT002检查主轴承座1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区防止转动伤人
3MT003检测曲轴跳动1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固防止测量中曲轴转动
4MT004更换连杆大端轴承1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区防止异物落入/坠落
5MT005更换连杆小端轴承1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫防止活塞坠落损坏
6MT006拆检活塞头1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁防爆防误启
2.缸内作业使用≤24V防爆照明
7MT007/008 更换活塞环1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩防止工具/异物落入
8MTO09 检测缸套磨损1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳高空/旋转风险
9MT010 更换气缸套1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布防水防砸
10MT011 检查排气阀杆1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识防高温/误动作
11MT012 更换排气阀座1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线防金属屑/电击
12MT013/019 更换/排除喷油器1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火防燃防爆
13MT014 更换柱塞偶件隔离燃油系统,LOTO 挂牌上锁防燃油泄漏
14MT015 更换增压器轴承1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫防气体倒流/坠落
15MT016 清洗空冷器1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服防高压水伤人
16MTO17 修复连杆异常磨损1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体防复燃/室息
17MT018修复活塞烧蚀1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证防火灾
18MT020 排除功率波动1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范防飞车/电火花
", + "bbox": [ + 137, + 573, + 860, + 910 + ], + "page_idx": 58 + }, + { + "type": "discarded", + "text": "59 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 58 + }, + { + "type": "table", + "img_path": "", + "table_caption": [], + "table_footnote": [], + "bbox": [ + 139, + 79, + 860, + 750 + ], + "page_idx": 59 + }, + { + "type": "text", + "text": "6.2 注意事项", + "text_level": 1, + "bbox": [ + 147, + 752, + 312, + 775 + ], + "page_idx": 59 + }, + { + "type": "text", + "text": "将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。", + "bbox": [ + 147, + 797, + 852, + 844 + ], + "page_idx": 59 + }, + { + "type": "table", + "img_path": "images/ca9c3379860215cc0b556e9b5f0245d8425e377975ecb541de3dcf6e62376d05.jpg", + "table_caption": [ + "表 6.2 船舶主发动机维修期间注意事项" + ], + "table_footnote": [], + "table_body": "
序号维修项目注意事项备注
1MT0011.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜防烫伤
2MT0021.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间防夹伤
3MT0031.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油防滑脱
4MT0041.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整防损伤
5MT0051.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套防烫/变形
6MT0061.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩防吸入积碳
7MT007/0081.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180°防划伤/装反
8MT0091.冷却水未排空不得测量2.手不得置于千分尺与缸壁间防夹伤
9MT0101.禁用火焰加热缸体2.压装时人员不得站压机正下方防裂纹/砸伤
10MT0111.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜防碎屑/热辐射
11MT0121.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测防热应力/裂纹
12MT013/0191.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装防卡死/污染
13MT0141.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确防相位错误
14MT0151.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形防误判/失效
15MT0161.禁用酸性清洗剂2.清洗压力≤5 MPa防腐蚀/翅片倒伏
16MT0171.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温防自燃
17MT0181.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷防二次裂纹
18MT0201.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认防飞车
", + "bbox": [ + 142, + 872, + 857, + 895 + ], + "page_idx": 59 + }, + { + "type": "discarded", + "text": "60 ", + "bbox": [ + 489, + 916, + 509, + 927 + ], + "page_idx": 59 + }, + { + "type": "table", + "img_path": "", + "table_caption": [], + "table_footnote": [], + "bbox": [ + 139, + 80, + 860, + 844 + ], + "page_idx": 60 + }, + { + "type": "discarded", + "text": "61 ", + "bbox": [ + 489, + 916, + 507, + 927 + ], + "page_idx": 60 + } +] \ No newline at end of file diff --git a/kg_build_0409/test/163-06A0015-B01001_船舶主发动机原理图.pdf b/kg_build_0409/test/163-06A0015-B01001_船舶主发动机原理图.pdf new file mode 100644 index 0000000..3c207db Binary files /dev/null and b/kg_build_0409/test/163-06A0015-B01001_船舶主发动机原理图.pdf differ diff --git a/kg_build_0409/test/过滤文本抽取结果.json b/kg_build_0409/test/过滤文本抽取结果.json new file mode 100644 index 0000000..2a1db22 --- /dev/null +++ b/kg_build_0409/test/过滤文本抽取结果.json @@ -0,0 +1,133 @@ +{ + "entities": [ + { + "type": "安全警告", + "properties": { + "名称": "发动机的安全警告", + "概述": "本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。", + "警告": "1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。", + "注意": "1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "内容": "1 安全警告\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\n1.1 警告\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\n1.2 注意\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"1 安全警告\\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\\n1.1 警告\\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\\n1.2 注意\\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\\n6) 所有密封件(O形圈、金属密封环)拆装必换。\\n7) 紧固件必须按规定力矩和顺序紧固。\\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_028fe60d-1c91-46ff-bd49-c3ea2b02242e.pdf#page=2\"}]" + } + }, + { + "type": "基本情况", + "properties": { + "名称": "发动机的基本情况", + "主要功能": "船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑; \n2) 曲柄连杆机构:实现往复—旋转运动转换; \n3) 燃烧室部件:完成燃烧做功; \n4) 排气阀驱动系统:控制废气排放; \n5) 燃油喷射系统:完成燃油定时、定量喷射; \n6) 扫气与增压系统:提高换气效率与功率密度。", + "工作条件": "2.2.1 正常运行条件\n1)环境条件长期纵倾: $\\pm 5 ^ { \\circ }$ ;横倾: $\\pm 1 5 ^ { \\circ }$ ; \n短期纵摇: $\\pm 1 0 ^ { \\circ }$ ( $5 { \\sim } 8 \\ \\textrm { s }$ );横摇: $\\pm 4 5 ^ { \\circ }$ ( $\\mathord { \\left. \\left( 8 \\sim 1 3 \\right. \\right. }$ s); \n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$ ; \n相对湿度: ${ \\leqslant } 9 3 \\%$ ( $4 0 \\textrm { ‰}$ )。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "内容": "2 概述\n2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑; \n2) 曲柄连杆机构:实现往复—旋转运动转换; \n3) 燃烧室部件:完成燃烧做功; \n4) 排气阀驱动系统:控制废气排放; \n5) 燃油喷射系统:完成燃油定时、定量喷射; \n6) 扫气与增压系统:提高换气效率与功率密度。\n2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件长期纵倾: $\\pm 5 ^ { \\circ }$ ;横倾: $\\pm 1 5 ^ { \\circ }$ ; \n短期纵摇: $\\pm 1 0 ^ { \\circ }$ ( $5 { \\sim } 8 \\ \\textrm { s }$ );横摇: $\\pm 4 5 ^ { \\circ }$ ( $\\mathord { \\left. \\left( 8 \\sim 1 3 \\right. \\right. }$ s); \n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$ ; \n相对湿度: ${ \\leqslant } 9 3 \\%$ ( $4 0 \\textrm { ‰}$ )。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"2 概述\\n2.1 主要功能\\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\\n发动机主要由以下子系统组成:\\n1) 机座与机架组件:承载与结构支撑; \\n2) 曲柄连杆机构:实现往复—旋转运动转换; \\n3) 燃烧室部件:完成燃烧做功; \\n4) 排气阀驱动系统:控制废气排放; \\n5) 燃油喷射系统:完成燃油定时、定量喷射; \\n6) 扫气与增压系统:提高换气效率与功率密度。\\n2.2 工作条件\\n2.2.1 正常运行条件\\n1)环境条件长期纵倾: $\\\\pm 5 ^ { \\\\circ }$ ;横倾: $\\\\pm 1 5 ^ { \\\\circ }$ ; \\n短期纵摇: $\\\\pm 1 0 ^ { \\\\circ }$ ( $5 { \\\\sim } 8 \\\\ \\\\textrm { s }$ );横摇: $\\\\pm 4 5 ^ { \\\\circ }$ ( $\\\\mathord { \\\\left. \\\\left( 8 \\\\sim 1 3 \\\\right. \\\\right. }$ s); \\n环境温度: $+ 5 \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } \\\\sim \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ + 5 5 ~ \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } ~ }$ ; \\n相对湿度: ${ \\\\leqslant } 9 3 \\\\%$ ( $4 0 \\\\textrm { ‰}$ )。\\n2)能源条件\\n表 2.1 冷水机组正常使用时的能源条件\\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\\n2.2.2 非正常运行条件\\n表 2.2 非正常输入条件及产生后果\\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\\n表 2.3 设备故障非正常输出条件及可能产生后果\\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_6fe19ec0-e33a-4f1a-ad05-d2c016af02db.pdf#page=3\"}]" + } + }, + { + "type": "组成", + "properties": { + "名称": "发动机的组成", + "内容": "船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\n图 3.1 船舶主发动机组成图\nimages/6fc722802de6802965af72c518cabcfe8396a3964a9870d16b4f6eb3f902b616.jpg\n表 3.1 船舶主发动机组成部分\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\\n图 3.1 船舶主发动机组成图\\nimages/6fc722802de6802965af72c518cabcfe8396a3964a9870d16b4f6eb3f902b616.jpg\\n表 3.1 船舶主发动机组成部分\\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_5aa1720a-ed5e-4f38-8f3f-452a73e60b2a.pdf#page=5\"}]" + } + }, + { + "type": "工作原理", + "properties": { + "名称": "发动机的工作原理", + "内容": "主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\n船舶主发动机工作原理\n图 3.2 船舶主发动机组成图\nimages/bd4258956b20d9dcabbd0c712d8e534e398fb374d0cb399f464c893b45134f3a.jpg\n机座与机架组件用于称重与结构支持,其整体图如图 3.3所示。\n图 3.3 机座与机架组件整体图\nimages/bfa885471a29ea79161508b99ccbe8b105ed5d34631d52f844f80a67bb26c9f5.jpg\n图 3.4 曲柄连杆机构工作原理图\nimages/5eccda7191be7f95f7ee738c15a5e3bc2e1dab428a10d5f74cc8dd2b0fd3da8b.jpg\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\n图 3.5 燃烧室部件工作原理图\nimages/5801f66aca8813958597a692b39a88de267c365557f9698663ed1b0304c1b184.jpg\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\n图 3.6 排气阀驱动系统工作原理图\nimages/4356ee5a81d0ad1af582209f40cc3f53218918ee4dd2b4b1be17896313c12585.jpg\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\n核心原理与步骤\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\n图 3.7 燃油喷射系统工作原理图\nimages/5228256a4a600e6a4fd77ac68044c055b8eaafb6c7d3721b58e28d279b1fbc01.jpg\n如图 3.7 中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\n图 3.8 扫气与增压系统工作原理图\nimages/1ef200926265e45dc11f24e9cb9cd849bb679b4e2f49f60d6b92e8fad6dee1ba.jpg\n船舶柴油机扫气与增压系统原理核心在于废气涡轮增压和扫气过程配合,利用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 $7 0 0 { - } 9 0 0 ^ { \\circ } \\mathrm { ~ C ~ }$ 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\\n船舶主发动机工作原理\\n图 3.2 船舶主发动机组成图\\nimages/bd4258956b20d9dcabbd0c712d8e534e398fb374d0cb399f464c893b45134f3a.jpg\\n机座与机架组件用于称重与结构支持,其整体图如图 3.3所示。\\n图 3.3 机座与机架组件整体图\\nimages/bfa885471a29ea79161508b99ccbe8b105ed5d34631d52f844f80a67bb26c9f5.jpg\\n图 3.4 曲柄连杆机构工作原理图\\nimages/5eccda7191be7f95f7ee738c15a5e3bc2e1dab428a10d5f74cc8dd2b0fd3da8b.jpg\\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\\n图 3.5 燃烧室部件工作原理图\\nimages/5801f66aca8813958597a692b39a88de267c365557f9698663ed1b0304c1b184.jpg\\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\\n图 3.6 排气阀驱动系统工作原理图\\nimages/4356ee5a81d0ad1af582209f40cc3f53218918ee4dd2b4b1be17896313c12585.jpg\\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\\n核心原理与步骤\\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\\n图 3.7 燃油喷射系统工作原理图\\nimages/5228256a4a600e6a4fd77ac68044c055b8eaafb6c7d3721b58e28d279b1fbc01.jpg\\n如图 3.7 中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\\n图 3.8 扫气与增压系统工作原理图\\nimages/1ef200926265e45dc11f24e9cb9cd849bb679b4e2f49f60d6b92e8fad6dee1ba.jpg\\n船舶柴油机扫气与增压系统原理核心在于废气涡轮增压和扫气过程配合,利用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 $7 0 0 { - } 9 0 0 ^ { \\\\circ } \\\\mathrm { ~ C ~ }$ 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_5701c7c6-5506-446a-9f86-135098dc1ad9.pdf#page=8\"}]" + } + }, + { + "type": "技术指标参数", + "properties": { + "名称": "发动机的技术指标参数", + "内容": "船舶主发动机的基本指标参见表3.2。\n表 3.2 船舶主发动机基本参数\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度 ≤700cSt@50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径×行程 500 mm × 2200 mm 平均有效压力(BMEP) ≈ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640 kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50℃ 冷却水进口温度 ≤ 36℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"船舶主发动机的基本指标参见表3.2。\\n表 3.2 船舶主发动机基本参数\\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度 ≤700cSt@50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径×行程 500 mm × 2200 mm 平均有效压力(BMEP) ≈ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640 kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50℃ 冷却水进口温度 ≤ 36℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_7948264a-4ef1-4c21-a8ef-0dd71ff2500a.pdf#page=10\"}]" + } + }, + { + "type": "接口关系", + "properties": { + "名称": "发动机的接口关系", + "内容": "船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与舰船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\n1) 安装接口\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48$\\times 3 2 0$ 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\n2) 能源接口\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管( $\\mathrm { 0 4 0 2 0 2 / 0 5 0 3 }$ 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\n3) 信息与监测接口\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与舰船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\\n1) 安装接口\\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48$\\\\times 3 2 0$ 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\\n2) 能源接口\\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管( $\\\\mathrm { 0 4 0 2 0 2 / 0 5 0 3 }$ 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\\n3) 信息与监测接口\\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_2f82725d-9018-4257-bda6-b650d0d9c538.pdf#page=12\"}]" + } + }, + { + "type": "布置情况", + "properties": { + "名称": "发动机的布置情况", + "内容": "全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\n船舶主发动机布置情况见表 3.3。\n表 3.3 船舶主发动机布置情况\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵肿线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\\n船舶主发动机布置情况见表 3.3。\\n表 3.3 船舶主发动机布置情况\\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵肿线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_1351c597-87e5-4b9e-beb7-4bcf38d95f3d.pdf#page=13\"}]" + } + }, + { + "type": "器材保障", + "properties": { + "名称": "发动机的器材保障", + "保障设施、保障设备(工具)信息汇总表": "表 5.1 船舶主发动机工具信息汇总表\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速", + "消耗材料信息汇总表": "表 5.2 船舶主发动机消耗材料信息汇总表\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "内容": "5器材保障\n5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\n5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_da75bf1b-5c65-4651-a9a7-a8dd291ccd32.pdf#page=52\"}]" + } + }, + { + "type": "维修安全防护及注意事项汇总表", + "properties": { + "名称": "发动机的维修安全防护及注意事项汇总表", + "概述": "以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。", + "安全防护": "将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花", + "注意事项": "将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "内容": "6 维修安全防护及注意事项汇总表\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\n6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\n6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_3fd2cce1-8da3-4ef2-8274-526d282982d1.pdf#page=58\"}]" + } + } + ], + "relations": [ + { + "type": "安全警告", + "from_entity": "发动机", + "to_entity": "发动机的安全警告" + }, + { + "type": "实现", + "from_entity": "发动机", + "to_entity": "发动机的基本情况" + }, + { + "type": "包括", + "from_entity": "发动机", + "to_entity": "发动机的组成" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的工作原理" + }, + { + "type": "具有", + "from_entity": "发动机", + "to_entity": "发动机的技术指标参数" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的接口关系" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的布置情况" + }, + { + "type": "依赖", + "from_entity": "发动机", + "to_entity": "发动机的器材保障" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的维修安全防护及注意事项汇总表" + } + ] +} \ No newline at end of file diff --git a/kg_build_0409/test/过滤文本抽取结果_0318.json b/kg_build_0409/test/过滤文本抽取结果_0318.json new file mode 100644 index 0000000..767e18d --- /dev/null +++ b/kg_build_0409/test/过滤文本抽取结果_0318.json @@ -0,0 +1,257 @@ +{ + "entities": [ + { + "type": "警告", + "properties": { + "名称": "发动机的警告", + "内容": "1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_1af43462-bf76-401e-8077-1c094011fa11.pdf#page=2\"}]" + } + }, + { + "type": "注意", + "properties": { + "名称": "发动机的注意", + "内容": "1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"1) 所有更换件必须使用原厂或等同技术条件的认可备件。\\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\\n6) 所有密封件(O形圈、金属密封环)拆装必换。\\n7) 紧固件必须按规定力矩和顺序紧固。\\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_c12adc65-81d0-4045-8452-b8da4f99da97.pdf#page=2\"}]" + } + }, + { + "type": "安全警告", + "properties": { + "名称": "发动机的安全警告", + "概述": "本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。", + "警告": "1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。", + "注意": "1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "内容": "1 安全警告\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\n1.1 警告\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\n1.2 注意\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"1 安全警告\\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\\n1.1 警告\\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\\n1.2 注意\\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\\n6) 所有密封件(O形圈、金属密封环)拆装必换。\\n7) 紧固件必须按规定力矩和顺序紧固。\\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_ba867d46-d66e-4bc7-8386-219463942da3.pdf#page=2\"}]" + } + }, + { + "type": "主要功能", + "properties": { + "名称": "发动机的主要功能", + "内容": "船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑; \n2) 曲柄连杆机构:实现往复—旋转运动转换; \n3) 燃烧室部件:完成燃烧做功; \n4) 排气阀驱动系统:控制废气排放; \n5) 燃油喷射系统:完成燃油定时、定量喷射; \n6) 扫气与增压系统:提高换气效率与功率密度。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\\n发动机主要由以下子系统组成:\\n1) 机座与机架组件:承载与结构支撑; \\n2) 曲柄连杆机构:实现往复—旋转运动转换; \\n3) 燃烧室部件:完成燃烧做功; \\n4) 排气阀驱动系统:控制废气排放; \\n5) 燃油喷射系统:完成燃油定时、定量喷射; \\n6) 扫气与增压系统:提高换气效率与功率密度。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_a911158c-71c4-467d-9aae-75cf6db172dd.pdf#page=3\"}]" + } + }, + { + "type": "环境条件", + "properties": { + "名称": "发动机的环境条件", + "正常运行条件": "1)环境条件长期纵倾: $\\pm 5 ^ { \\circ }$ ;横倾: $\\pm 1 5 ^ { \\circ }$ ; \n短期纵摇: $\\pm 1 0 ^ { \\circ }$ ( $5 { \\sim } 8 \\ \\textrm { s }$ );横摇: $\\pm 4 5 ^ { \\circ }$ ( $\\mathord { \\left. \\left( 8 \\sim 1 3 \\right. \\right. }$ s); \n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$ ; \n相对湿度: ${ \\leqslant } 9 3 \\%$ ( $4 0 \\textrm { ‰}$ )。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz", + "非正常运行条件": "表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "内容": "2.2.1 正常运行条件\n1)环境条件长期纵倾: $\\pm 5 ^ { \\circ }$ ;横倾: $\\pm 1 5 ^ { \\circ }$ ; \n短期纵摇: $\\pm 1 0 ^ { \\circ }$ ( $5 { \\sim } 8 \\ \\textrm { s }$ );横摇: $\\pm 4 5 ^ { \\circ }$ ( $\\mathord { \\left. \\left( 8 \\sim 1 3 \\right. \\right. }$ s); \n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$ ; \n相对湿度: ${ \\leqslant } 9 3 \\%$ ( $4 0 \\textrm { ‰}$ )。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"2.2.1 正常运行条件\\n1)环境条件长期纵倾: $\\\\pm 5 ^ { \\\\circ }$ ;横倾: $\\\\pm 1 5 ^ { \\\\circ }$ ; \\n短期纵摇: $\\\\pm 1 0 ^ { \\\\circ }$ ( $5 { \\\\sim } 8 \\\\ \\\\textrm { s }$ );横摇: $\\\\pm 4 5 ^ { \\\\circ }$ ( $\\\\mathord { \\\\left. \\\\left( 8 \\\\sim 1 3 \\\\right. \\\\right. }$ s); \\n环境温度: $+ 5 \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } \\\\sim \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ + 5 5 ~ \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } ~ }$ ; \\n相对湿度: ${ \\\\leqslant } 9 3 \\\\%$ ( $4 0 \\\\textrm { ‰}$ )。\\n2)能源条件\\n表 2.1 冷水机组正常使用时的能源条件\\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\\n2.2.2 非正常运行条件\\n表 2.2 非正常输入条件及产生后果\\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\\n表 2.3 设备故障非正常输出条件及可能产生后果\\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_24de725a-4b83-4c4c-b212-841d623265a4.pdf#page=3\"}]" + } + }, + { + "type": "基本情况", + "properties": { + "名称": "发动机的基本情况", + "主要功能": "船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑; \n2) 曲柄连杆机构:实现往复—旋转运动转换; \n3) 燃烧室部件:完成燃烧做功; \n4) 排气阀驱动系统:控制废气排放; \n5) 燃油喷射系统:完成燃油定时、定量喷射; \n6) 扫气与增压系统:提高换气效率与功率密度。", + "工作条件": "2.2.1 正常运行条件\n1)环境条件长期纵倾: $\\pm 5 ^ { \\circ }$ ;横倾: $\\pm 1 5 ^ { \\circ }$ ; \n短期纵摇: $\\pm 1 0 ^ { \\circ }$ ( $5 { \\sim } 8 \\ \\textrm { s }$ );横摇: $\\pm 4 5 ^ { \\circ }$ ( $\\mathord { \\left. \\left( 8 \\sim 1 3 \\right. \\right. }$ s); \n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$ ; \n相对湿度: ${ \\leqslant } 9 3 \\%$ ( $4 0 \\textrm { ‰}$ )。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "内容": "2 概述\n2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑; \n2) 曲柄连杆机构:实现往复—旋转运动转换; \n3) 燃烧室部件:完成燃烧做功; \n4) 排气阀驱动系统:控制废气排放; \n5) 燃油喷射系统:完成燃油定时、定量喷射; \n6) 扫气与增压系统:提高换气效率与功率密度。\n2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件长期纵倾: $\\pm 5 ^ { \\circ }$ ;横倾: $\\pm 1 5 ^ { \\circ }$ ; \n短期纵摇: $\\pm 1 0 ^ { \\circ }$ ( $5 { \\sim } 8 \\ \\textrm { s }$ );横摇: $\\pm 4 5 ^ { \\circ }$ ( $\\mathord { \\left. \\left( 8 \\sim 1 3 \\right. \\right. }$ s); \n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$ ; \n相对湿度: ${ \\leqslant } 9 3 \\%$ ( $4 0 \\textrm { ‰}$ )。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"2 概述\\n2.1 主要功能\\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\\n发动机主要由以下子系统组成:\\n1) 机座与机架组件:承载与结构支撑; \\n2) 曲柄连杆机构:实现往复—旋转运动转换; \\n3) 燃烧室部件:完成燃烧做功; \\n4) 排气阀驱动系统:控制废气排放; \\n5) 燃油喷射系统:完成燃油定时、定量喷射; \\n6) 扫气与增压系统:提高换气效率与功率密度。\\n2.2 工作条件\\n2.2.1 正常运行条件\\n1)环境条件长期纵倾: $\\\\pm 5 ^ { \\\\circ }$ ;横倾: $\\\\pm 1 5 ^ { \\\\circ }$ ; \\n短期纵摇: $\\\\pm 1 0 ^ { \\\\circ }$ ( $5 { \\\\sim } 8 \\\\ \\\\textrm { s }$ );横摇: $\\\\pm 4 5 ^ { \\\\circ }$ ( $\\\\mathord { \\\\left. \\\\left( 8 \\\\sim 1 3 \\\\right. \\\\right. }$ s); \\n环境温度: $+ 5 \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } \\\\sim \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ + 5 5 ~ \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } ~ }$ ; \\n相对湿度: ${ \\\\leqslant } 9 3 \\\\%$ ( $4 0 \\\\textrm { ‰}$ )。\\n2)能源条件\\n表 2.1 冷水机组正常使用时的能源条件\\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\\n2.2.2 非正常运行条件\\n表 2.2 非正常输入条件及产生后果\\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\\n表 2.3 设备故障非正常输出条件及可能产生后果\\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_4961c3e7-92c5-4ed6-bdac-170bca04ed0e.pdf#page=3\"}]" + } + }, + { + "type": "组成", + "properties": { + "名称": "发动机的组成", + "内容": "船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\n图 3.1 船舶主发动机组成图\nimages/6fc722802de6802965af72c518cabcfe8396a3964a9870d16b4f6eb3f902b616.jpg\n表 3.1 船舶主发动机组成部分\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\\n图 3.1 船舶主发动机组成图\\nimages/6fc722802de6802965af72c518cabcfe8396a3964a9870d16b4f6eb3f902b616.jpg\\n表 3.1 船舶主发动机组成部分\\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_f15b8deb-f268-480d-aabd-2dec131beaa3.pdf#page=5\"}]" + } + }, + { + "type": "工作原理", + "properties": { + "名称": "发动机的工作原理", + "内容": "主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\n船舶主发动机工作原理\n图 3.2 船舶主发动机组成图\nimages/bd4258956b20d9dcabbd0c712d8e534e398fb374d0cb399f464c893b45134f3a.jpg\n机座与机架组件用于称重与结构支持,其整体图如图 3.3所示。\n图 3.3 机座与机架组件整体图\nimages/bfa885471a29ea79161508b99ccbe8b105ed5d34631d52f844f80a67bb26c9f5.jpg\n图 3.4 曲柄连杆机构工作原理图\nimages/5eccda7191be7f95f7ee738c15a5e3bc2e1dab428a10d5f74cc8dd2b0fd3da8b.jpg\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\n图 3.5 燃烧室部件工作原理图\nimages/5801f66aca8813958597a692b39a88de267c365557f9698663ed1b0304c1b184.jpg\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\n图 3.6 排气阀驱动系统工作原理图\nimages/4356ee5a81d0ad1af582209f40cc3f53218918ee4dd2b4b1be17896313c12585.jpg\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\n核心原理与步骤\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\n图 3.7 燃油喷射系统工作原理图\nimages/5228256a4a600e6a4fd77ac68044c055b8eaafb6c7d3721b58e28d279b1fbc01.jpg\n如图 3.7 中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\n图 3.8 扫气与增压系统工作原理图\nimages/1ef200926265e45dc11f24e9cb9cd849bb679b4e2f49f60d6b92e8fad6dee1ba.jpg\n船舶柴油机扫气与增压系统原理核心在于废气涡轮增压和扫气过程配合,利用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 $7 0 0 { - } 9 0 0 ^ { \\circ } \\mathrm { ~ C ~ }$ 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\\n船舶主发动机工作原理\\n图 3.2 船舶主发动机组成图\\nimages/bd4258956b20d9dcabbd0c712d8e534e398fb374d0cb399f464c893b45134f3a.jpg\\n机座与机架组件用于称重与结构支持,其整体图如图 3.3所示。\\n图 3.3 机座与机架组件整体图\\nimages/bfa885471a29ea79161508b99ccbe8b105ed5d34631d52f844f80a67bb26c9f5.jpg\\n图 3.4 曲柄连杆机构工作原理图\\nimages/5eccda7191be7f95f7ee738c15a5e3bc2e1dab428a10d5f74cc8dd2b0fd3da8b.jpg\\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\\n图 3.5 燃烧室部件工作原理图\\nimages/5801f66aca8813958597a692b39a88de267c365557f9698663ed1b0304c1b184.jpg\\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\\n图 3.6 排气阀驱动系统工作原理图\\nimages/4356ee5a81d0ad1af582209f40cc3f53218918ee4dd2b4b1be17896313c12585.jpg\\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\\n核心原理与步骤\\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\\n图 3.7 燃油喷射系统工作原理图\\nimages/5228256a4a600e6a4fd77ac68044c055b8eaafb6c7d3721b58e28d279b1fbc01.jpg\\n如图 3.7 中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\\n图 3.8 扫气与增压系统工作原理图\\nimages/1ef200926265e45dc11f24e9cb9cd849bb679b4e2f49f60d6b92e8fad6dee1ba.jpg\\n船舶柴油机扫气与增压系统原理核心在于废气涡轮增压和扫气过程配合,利用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 $7 0 0 { - } 9 0 0 ^ { \\\\circ } \\\\mathrm { ~ C ~ }$ 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_cec554da-5fc4-4071-8a01-4eeb47570327.pdf#page=8\"}]" + } + }, + { + "type": "技术指标参数", + "properties": { + "名称": "发动机的技术指标参数", + "内容": "船舶主发动机的基本指标参见表3.2。\n表 3.2 船舶主发动机基本参数\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度 ≤700cSt@50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径×行程 500 mm × 2200 mm 平均有效压力(BMEP) ≈ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640 kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50℃ 冷却水进口温度 ≤ 36℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"船舶主发动机的基本指标参见表3.2。\\n表 3.2 船舶主发动机基本参数\\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度 ≤700cSt@50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径×行程 500 mm × 2200 mm 平均有效压力(BMEP) ≈ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640 kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50℃ 冷却水进口温度 ≤ 36℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_4b7c445b-778f-40fa-be35-22037e17e021.pdf#page=10\"}]" + } + }, + { + "type": "接口关系", + "properties": { + "名称": "发动机的接口关系", + "内容": "船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与舰船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\n1) 安装接口\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48$\\times 3 2 0$ 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\n2) 能源接口\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管( $\\mathrm { 0 4 0 2 0 2 / 0 5 0 3 }$ 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\n3) 信息与监测接口\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与舰船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\\n1) 安装接口\\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48$\\\\times 3 2 0$ 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\\n2) 能源接口\\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管( $\\\\mathrm { 0 4 0 2 0 2 / 0 5 0 3 }$ 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\\n3) 信息与监测接口\\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_988196fc-8297-486d-a7b7-4881ca1ef827.pdf#page=12\"}]" + } + }, + { + "type": "布置情况", + "properties": { + "名称": "发动机的布置情况", + "内容": "全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\n船舶主发动机布置情况见表 3.3。\n表 3.3 船舶主发动机布置情况\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵肿线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\\n船舶主发动机布置情况见表 3.3。\\n表 3.3 船舶主发动机布置情况\\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵肿线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_b851b473-86f9-421f-ad06-dbc2391d8ef3.pdf#page=13\"}]" + } + }, + { + "type": "组成、技术特征及接口", + "properties": { + "名称": "发动机的组成、技术特征及接口", + "组成": "船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\n图 3.1 船舶主发动机组成图\nimages/6fc722802de6802965af72c518cabcfe8396a3964a9870d16b4f6eb3f902b616.jpg\n表 3.1 船舶主发动机组成部分\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1", + "工作原理": "主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\n船舶主发动机工作原理\n图 3.2 船舶主发动机组成图\nimages/bd4258956b20d9dcabbd0c712d8e534e398fb374d0cb399f464c893b45134f3a.jpg\n机座与机架组件用于称重与结构支持,其整体图如图 3.3所示。\n图 3.3 机座与机架组件整体图\nimages/bfa885471a29ea79161508b99ccbe8b105ed5d34631d52f844f80a67bb26c9f5.jpg\n图 3.4 曲柄连杆机构工作原理图\nimages/5eccda7191be7f95f7ee738c15a5e3bc2e1dab428a10d5f74cc8dd2b0fd3da8b.jpg\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\n图 3.5 燃烧室部件工作原理图\nimages/5801f66aca8813958597a692b39a88de267c365557f9698663ed1b0304c1b184.jpg\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\n图 3.6 排气阀驱动系统工作原理图\nimages/4356ee5a81d0ad1af582209f40cc3f53218918ee4dd2b4b1be17896313c12585.jpg\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\n核心原理与步骤\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\n图 3.7 燃油喷射系统工作原理图\nimages/5228256a4a600e6a4fd77ac68044c055b8eaafb6c7d3721b58e28d279b1fbc01.jpg\n如图 3.7 中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\n图 3.8 扫气与增压系统工作原理图\nimages/1ef200926265e45dc11f24e9cb9cd849bb679b4e2f49f60d6b92e8fad6dee1ba.jpg\n船舶柴油机扫气与增压系统原理核心在于废气涡轮增压和扫气过程配合,利用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 $7 0 0 { - } 9 0 0 ^ { \\circ } \\mathrm { ~ C ~ }$ 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。", + "技术指标": "船舶主发动机的基本指标参见表3.2。\n表 3.2 船舶主发动机基本参数\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度 ≤700cSt@50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径×行程 500 mm × 2200 mm 平均有效压力(BMEP) ≈ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640 kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50℃ 冷却水进口温度 ≤ 36℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护", + "接口关系": "船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与舰船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\n1) 安装接口\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48$\\times 3 2 0$ 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\n2) 能源接口\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管( $\\mathrm { 0 4 0 2 0 2 / 0 5 0 3 }$ 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\n3) 信息与监测接口\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。", + "布置情况": "全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\n船舶主发动机布置情况见表 3.3。\n表 3.3 船舶主发动机布置情况\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵肿线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域", + "内容": "3 组成、技术特征及接口\n3.1 组成\n船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\n图 3.1 船舶主发动机组成图\nimages/6fc722802de6802965af72c518cabcfe8396a3964a9870d16b4f6eb3f902b616.jpg\n表 3.1 船舶主发动机组成部分\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1\n3.2 工作原理\n主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\n船舶主发动机工作原理\n图 3.2 船舶主发动机组成图\nimages/bd4258956b20d9dcabbd0c712d8e534e398fb374d0cb399f464c893b45134f3a.jpg\n机座与机架组件用于称重与结构支持,其整体图如图 3.3所示。\n图 3.3 机座与机架组件整体图\nimages/bfa885471a29ea79161508b99ccbe8b105ed5d34631d52f844f80a67bb26c9f5.jpg\n图 3.4 曲柄连杆机构工作原理图\nimages/5eccda7191be7f95f7ee738c15a5e3bc2e1dab428a10d5f74cc8dd2b0fd3da8b.jpg\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\n图 3.5 燃烧室部件工作原理图\nimages/5801f66aca8813958597a692b39a88de267c365557f9698663ed1b0304c1b184.jpg\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\n图 3.6 排气阀驱动系统工作原理图\nimages/4356ee5a81d0ad1af582209f40cc3f53218918ee4dd2b4b1be17896313c12585.jpg\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\n核心原理与步骤\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\n图 3.7 燃油喷射系统工作原理图\nimages/5228256a4a600e6a4fd77ac68044c055b8eaafb6c7d3721b58e28d279b1fbc01.jpg\n如图 3.7 中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\n图 3.8 扫气与增压系统工作原理图\nimages/1ef200926265e45dc11f24e9cb9cd849bb679b4e2f49f60d6b92e8fad6dee1ba.jpg\n船舶柴油机扫气与增压系统原理核心在于废气涡轮增压和扫气过程配合,利用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 $7 0 0 { - } 9 0 0 ^ { \\circ } \\mathrm { ~ C ~ }$ 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。\n3.3 技术指标\n船舶主发动机的基本指标参见表3.2。\n表 3.2 船舶主发动机基本参数\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度 ≤700cSt@50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径×行程 500 mm × 2200 mm 平均有效压力(BMEP) ≈ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640 kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50℃ 冷却水进口温度 ≤ 36℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护\n3.4 接口关系\n船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与舰船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\n1) 安装接口\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48$\\times 3 2 0$ 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\n2) 能源接口\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管( $\\mathrm { 0 4 0 2 0 2 / 0 5 0 3 }$ 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\n3) 信息与监测接口\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。\n3.5 布置情况\n全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\n船舶主发动机布置情况见表 3.3。\n表 3.3 船舶主发动机布置情况\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵肿线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"3 组成、技术特征及接口\\n3.1 组成\\n船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\\n图 3.1 船舶主发动机组成图\\nimages/6fc722802de6802965af72c518cabcfe8396a3964a9870d16b4f6eb3f902b616.jpg\\n表 3.1 船舶主发动机组成部分\\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1\\n3.2 工作原理\\n主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\\n船舶主发动机工作原理\\n图 3.2 船舶主发动机组成图\\nimages/bd4258956b20d9dcabbd0c712d8e534e398fb374d0cb399f464c893b45134f3a.jpg\\n机座与机架组件用于称重与结构支持,其整体图如图 3.3所示。\\n图 3.3 机座与机架组件整体图\\nimages/bfa885471a29ea79161508b99ccbe8b105ed5d34631d52f844f80a67bb26c9f5.jpg\\n图 3.4 曲柄连杆机构工作原理图\\nimages/5eccda7191be7f95f7ee738c15a5e3bc2e1dab428a10d5f74cc8dd2b0fd3da8b.jpg\\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\\n图 3.5 燃烧室部件工作原理图\\nimages/5801f66aca8813958597a692b39a88de267c365557f9698663ed1b0304c1b184.jpg\\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\\n图 3.6 排气阀驱动系统工作原理图\\nimages/4356ee5a81d0ad1af582209f40cc3f53218918ee4dd2b4b1be17896313c12585.jpg\\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\\n核心原理与步骤\\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\\n图 3.7 燃油喷射系统工作原理图\\nimages/5228256a4a600e6a4fd77ac68044c055b8eaafb6c7d3721b58e28d279b1fbc01.jpg\\n如图 3.7 中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\\n图 3.8 扫气与增压系统工作原理图\\nimages/1ef200926265e45dc11f24e9cb9cd849bb679b4e2f49f60d6b92e8fad6dee1ba.jpg\\n船舶柴油机扫气与增压系统原理核心在于废气涡轮增压和扫气过程配合,利用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 $7 0 0 { - } 9 0 0 ^ { \\\\circ } \\\\mathrm { ~ C ~ }$ 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。\\n3.3 技术指标\\n船舶主发动机的基本指标参见表3.2。\\n表 3.2 船舶主发动机基本参数\\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度 ≤700cSt@50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径×行程 500 mm × 2200 mm 平均有效压力(BMEP) ≈ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640 kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50℃ 冷却水进口温度 ≤ 36℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护\\n3.4 接口关系\\n船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与舰船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\\n1) 安装接口\\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48$\\\\times 3 2 0$ 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\\n2) 能源接口\\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管( $\\\\mathrm { 0 4 0 2 0 2 / 0 5 0 3 }$ 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\\n3) 信息与监测接口\\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。\\n3.5 布置情况\\n全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\\n船舶主发动机布置情况见表 3.3。\\n表 3.3 船舶主发动机布置情况\\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵肿线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_82c03b67-2af5-432f-8e75-9387a9628735.pdf#page=12\"}]" + } + }, + { + "type": "保障设施、保障设备(工具)信息汇总表", + "properties": { + "名称": "发动机的保障设施、保障设备(工具)信息汇总表", + "内容": "表 5.1 船舶主发动机工具信息汇总表\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"表 5.1 船舶主发动机工具信息汇总表\\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_e609552e-93c7-4eda-ac2b-c696fe05cf75.pdf#page=52\"}]" + } + }, + { + "type": "消耗材料信息汇总表", + "properties": { + "名称": "发动机的消耗材料信息汇总表", + "内容": "表 5.2 船舶主发动机消耗材料信息汇总表\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"表 5.2 船舶主发动机消耗材料信息汇总表\\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_5bbdba5a-57ec-4216-92d9-99952bfa3a1a.pdf#page=57\"}]" + } + }, + { + "type": "器材保障", + "properties": { + "名称": "发动机的器材保障", + "保障设施、保障设备(工具)信息汇总表": "表 5.1 船舶主发动机工具信息汇总表\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速", + "消耗材料信息汇总表": "表 5.2 船舶主发动机消耗材料信息汇总表\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "内容": "5器材保障\n5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\n5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n房号 名称 规格/型号 生产单位 通用/专用 ) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 房 名称 规格/型号 生产单位 通用/专用 佛 1 参考价(元) 存放位置 备注 中仪 C-01 同轴度检测 6 塞尺组 0.02-1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10/RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300 mm /40-50 mm Mitutoyo等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001m 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ/iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 房 名称 规格/型号 生产单位 通用/专用 佛 ) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LI NER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM 或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0- 300 mm 市品 通用 1 0.7 600 量具柜F-05 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 房 名称 规格/型号 生产单位 通用/专用 依购 重量(g) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flatx/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Karcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 房 名称 规格/型号 生产单位 通用/专用 依 重量(kg) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 丨 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n房 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shel1 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC/Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henkel 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shel1 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_49ac80ea-6e18-42d3-a92b-9872cca0f980.pdf#page=52\"}]" + } + }, + { + "type": "安全防护", + "properties": { + "名称": "发动机的安全防护", + "内容": "将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_ab335b73-4b94-4d4f-a7c1-867ab08d2c9c.pdf#page=58\"}]" + } + }, + { + "type": "注意事项", + "properties": { + "名称": "发动机的注意事项", + "内容": "将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_8bdd73be-f240-4a53-9044-5e6f836fc62c.pdf#page=59\"}]" + } + }, + { + "type": "维修安全防护及注意事项汇总表", + "properties": { + "名称": "发动机的维修安全防护及注意事项汇总表", + "概述": "以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。", + "安全防护": "将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花", + "注意事项": "将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "内容": "6 维修安全防护及注意事项汇总表\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\n6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\n6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "knowledge_source": "[{\"filename\": \"122-06A0014-B01001_发动机-维修手册.pdf\", \"info\": \"6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008 更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MTO09 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MTO17 修复连杆异常磨损 1.着火后停机、断油、启动CO2系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车\", \"url\": \"http://192.168.0.111:9085/upload/122-06A0014-B01001_发动机-维修手册_a6252cbb-8f2c-40a7-93e8-bfd2ab6bed89.pdf#page=58\"}]" + } + } + ], + "relations": [ + { + "type": "属于", + "from_entity": "发动机的警告", + "to_entity": "发动机的安全警告" + }, + { + "type": "属于", + "from_entity": "发动机的注意", + "to_entity": "发动机的安全警告" + }, + { + "type": "安全警告", + "from_entity": "发动机", + "to_entity": "发动机的安全警告" + }, + { + "type": "属于", + "from_entity": "发动机的主要功能", + "to_entity": "发动机的基本情况" + }, + { + "type": "属于", + "from_entity": "发动机的环境条件", + "to_entity": "发动机的基本情况" + }, + { + "type": "实现", + "from_entity": "发动机", + "to_entity": "发动机的基本情况" + }, + { + "type": "属于", + "from_entity": "发动机的组成", + "to_entity": "发动机的组成、技术特征及接口" + }, + { + "type": "属于", + "from_entity": "发动机的工作原理", + "to_entity": "发动机的组成、技术特征及接口" + }, + { + "type": "属于", + "from_entity": "发动机的技术指标参数", + "to_entity": "发动机的组成、技术特征及接口" + }, + { + "type": "属于", + "from_entity": "发动机的接口关系", + "to_entity": "发动机的组成、技术特征及接口" + }, + { + "type": "属于", + "from_entity": "发动机的布置情况", + "to_entity": "发动机的组成、技术特征及接口" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的组成、技术特征及接口" + }, + { + "type": "属于", + "from_entity": "发动机的保障设施、保障设备(工具)信息汇总表", + "to_entity": "发动机的器材保障" + }, + { + "type": "属于", + "from_entity": "发动机的消耗材料信息汇总表", + "to_entity": "发动机的器材保障" + }, + { + "type": "依赖", + "from_entity": "发动机", + "to_entity": "发动机的器材保障" + }, + { + "type": "属于", + "from_entity": "发动机的安全防护", + "to_entity": "发动机的维修安全防护及注意事项汇总表" + }, + { + "type": "属于", + "from_entity": "发动机的注意事项", + "to_entity": "发动机的维修安全防护及注意事项汇总表" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的维修安全防护及注意事项汇总表" + } + ] +} \ No newline at end of file diff --git a/kg_build_test.py b/kg_build_test.py new file mode 100644 index 0000000..2672aee --- /dev/null +++ b/kg_build_test.py @@ -0,0 +1,353 @@ +import os +import json +from typing import List, Tuple, Dict, Any + +# --- 修复了拼写错误的导入路径 --- +from kg_build_v2.extract_wxanli_node_rela import get_wxanli_entity_rela +from kg_build_v2.extract_operation_node_rela import get_operation_node_rela +from kg_build_v2.extract_repair_node_rela import get_repair_node_rela +# 修正拼写:extrat_normal -> extract_normal (请确保文件名实际为 extract_normal_node_rela.py) +from kg_build_v2.extrat_normal_node_rela import get_nromal_node_rela +from langchain_text_splitters import MarkdownHeaderTextSplitter, CharacterTextSplitter +from kg_build_v2.get_text_node_reala import extract_text_node_relationship +from kg_build_v2.utils import remove_duplicates, deduplicate_relationships +from modelsAPI.model_api import OpenaiAPI +import logging + +# --- 日志配置 --- +logger = logging.getLogger(__name__) +if not logger.handlers: + handler = logging.StreamHandler() + fmt = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + handler.setFormatter(fmt) + logger.addHandler(handler) +logger.setLevel(logging.INFO) + + +def _split_markdown(text: str, chunk_size: int = 2048, chunk_overlap: int = 50) -> Tuple[List[str], List[str]]: + """ + 将 Markdown 文本按一级标题分割,并对过长文本进行二次分块。 + """ + headers_to_split_on = [("#", "Header_1")] + splitter = MarkdownHeaderTextSplitter(headers_to_split_on=headers_to_split_on, strip_headers=True) + chunks = splitter.split_text(text) + + char_splitter = CharacterTextSplitter( + chunk_size=chunk_size, + chunk_overlap=chunk_overlap, + length_function=len, + separator="\n\n" + ) + + final_chunks = [] + start_chars = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "第", "十", "一", "二", "三", "四", "五", "六", "七", "八", "九", "故障"} + + # 提取有效标题 + valid_headers = { + chunk.metadata.get('Header_1', '') + for chunk in chunks + if chunk.metadata.get('Header_1', '') and chunk.metadata['Header_1'][0] in start_chars + } + + # 构建带标题前缀的块 + for chunk in chunks: + header_1 = chunk.metadata.get('Header_1', '') + content = chunk.page_content + + if len(content) <= 20000: + chunk_with_header = f"{header_1}\n{content}" if header_1 else content + final_chunks.append(chunk_with_header) + else: + split_texts = char_splitter.split_documents([chunk]) + for split_chunk in split_texts: + chunk_with_header = f"{header_1}\n{split_chunk.page_content}" if header_1 else split_chunk.page_content + final_chunks.append(chunk_with_header) + + # 重新分组合并 + rechunked = [] + rechunked_headers = [] + current_content = "" + current_header = "" + + for chunk in final_chunks: + # 检查是否为新章节 + new_header = next((h for h in valid_headers if chunk.startswith(h + "\n")), None) + + if new_header: + if current_content: + rechunked.append(current_content) + rechunked_headers.append(current_header) + current_content = chunk + current_header = new_header + else: + current_content += "\n" + chunk if current_content else chunk + + # 添加最后一段 + if current_content: + rechunked.append(current_content) + rechunked_headers.append(current_header) + + return rechunked, rechunked_headers + + +def read_markdown_file(file_path: str) -> str: + """ + 读取 Markdown 文件内容。 + """ + try: + with open(file_path, 'r', encoding='utf-8') as f: + return f.read() + except Exception as e: + logger.error(f"读取文件失败 [{file_path}]: {e}") + return "" + + +def get_html_node_rela(md_content: str) -> Tuple[List[Dict], List[Dict], str]: + """ + 从 HTML/Markdown 表格中提取实体和关系。 + """ + if not md_content: + return [], [], "" + + all_entities = [] + all_relations = [] + cleaned_content = "" + + # 1. 提取维修项目表 + try: + repair_entities = get_repair_node_rela(md_content) + if isinstance(repair_entities, list): + all_entities.extend(repair_entities) + # --- 修复日志调用:使用 f-string --- + logger.info(f"维修项目表 - 实体数量: {len(repair_entities)}") + except Exception as e: + logger.error(f"提取维修项目表时发生错误: {e}") + + # 2. 提取操作项目表 + try: + result_operation = get_operation_node_rela(md_content) + operation_entities = [] + operation_relations = [] + + if isinstance(result_operation, dict): + operation_entities = result_operation.get("entities", []) + operation_relations = result_operation.get("relationships", []) + elif isinstance(result_operation, list): + logger.warning("get_operation_node_rela 返回了列表而非字典") + + all_entities.extend(operation_entities) + all_relations.extend(operation_relations) + # --- 修复日志调用 --- + logger.info(f"操作项目表 - 实体: {len(operation_entities)}, 关系: {len(operation_relations)}") + + except Exception as e: + logger.error(f"提取操作项目表时发生错误: {e}") + + # 3. 提取常规表格 (普通表、故障表等) + # --- 修复拼写错误:get_nromal_node_rela -> get_nromal_node_rela --- + try: + result_normal, content_normal = get_nromal_node_rela(md_content) + normal_entities = [] + normal_relations = [] + + if isinstance(result_normal, list) and result_normal: + item = result_normal[0] + if isinstance(item, dict): + normal_entities = item.get("entities", []) + normal_relations = item.get("relationships", []) + elif isinstance(result_normal, dict): + normal_entities = result_normal.get("entities", []) + normal_relations = result_normal.get("relationships", []) + + all_entities.extend(normal_entities) + all_relations.extend(normal_relations) + cleaned_content = content_normal or "" + + # --- 修复日志调用 --- + logger.info(f"常规表格 - 实体: {len(normal_entities)}, 关系: {len(normal_relations)}") + + except Exception as e: + logger.error(f"提取常规表格时发生错误: {e}") + + return all_entities, all_relations, cleaned_content + + +def get_wxanli_node_rela(md_content: str) -> Tuple[List[Dict], List[Dict]]: + """ + 从维修案例中提取实体和关系。 + """ + try: + result_wxanli = get_wxanli_entity_rela(md_content) + if isinstance(result_wxanli, dict): + wxanli_entities = result_wxanli.get("entities", []) + wxanli_relations = result_wxanli.get("relationships", []) + else: + wxanli_entities = [] + wxanli_relations = [] + logger.warning("维修案例返回数据格式异常,使用空列表代替") + except Exception as e: + logger.error(f"提取维修案例时发生错误: {e}") + wxanli_entities = [] + wxanli_relations = [] + + return wxanli_entities, wxanli_relations + + +def build_repair_relationships(entities: List[Dict]) -> List[Dict]: + """ + 根据维修项目编号和故障描述建立“修理”关系。 + """ + faults = [e for e in entities if e.get("type") == "故障"] + maintenances = [e for e in entities if e.get("type") == "维修项目"] + + relationships = [] + + for mt in maintenances: + mt_code = mt.get("properties", {}).get("维修项目编号") + mt_name = mt.get("properties", {}).get("名称") + + if not mt_code or not mt_name: + continue + + for fault in faults: + fault_name = fault.get("properties", {}).get("名称") + repair_text = fault.get("properties", {}).get("维修项目", "") + + if not fault_name: + continue + + if mt_code in repair_text: + relationships.append({ + "type": "修理", + "from_entity": mt_name, + "to_entity": fault_name + }) + + return relationships + + +def get_md_node_relation( + md_content: str, + Ontology: List[str], + Ontology_DESCRIPTION: Dict[str, List[str]], + Relationships: List[str], + RELATIONSHIP_TYPES: Dict[str, List[str]], + NODE_TYPES: Dict[str, List[str]] +) -> Tuple[List[Dict], List[Dict]]: + """ + 核心函数:协调各模块完成知识抽取、清洗、向量化。 + """ + final_all_entity = [] + final_all_relation = [] + + if not md_content: + logger.error("输入的 Markdown 内容为空") + return [], [] + + # 1. 处理表格类数据 + table_entities, table_relations, cleaned_content = get_html_node_rela(md_content) + logger.info(f"表格类抽取 - 实体: {len(table_entities)}, 关系: {len(table_relations)}") + + # 2. 处理维修案例 + case_entities, case_relations = get_wxanli_node_rela(md_content) + logger.info(f"维修案例抽取 - 实体: {len(case_entities)}, 关系: {len(case_relations)}") + + # 合并表格与案例 + all_entities = table_entities + case_entities + all_relations = table_relations + case_relations + final_all_entity.extend(all_entities) + final_all_relation.extend(all_relations) + + # 3. 建立修复关系 + repair_relations = build_repair_relationships(all_entities) + final_all_relation.extend(repair_relations) + logger.info(f"构建故障修复关系数量: {len(repair_relations)}") + + # 4. 处理纯文本 + if cleaned_content.strip(): + chunks, _ = _split_markdown(cleaned_content) + text_entities, text_relationships = extract_text_node_relationship( + chunks, + ontology=Ontology, + Ontology_DESCRIPTION=Ontology_DESCRIPTION, + relationships=Relationships, + relationship_types=RELATIONSHIP_TYPES, + node_types=NODE_TYPES + ) + final_all_entity.extend(text_entities) + final_all_relation.extend(text_relationships) + logger.info(f"文本抽取 - 实体: {len(text_entities)}, 关系: {len(text_relationships)}") + else: + logger.info("未检测到有效清洗文本,跳过文本抽取步骤") + + # 5. 去重 + final_all_entity = remove_duplicates(final_all_entity) + final_all_relation = deduplicate_relationships(final_all_relation) + logger.info(f"去重后 - 总实体: {len(final_all_entity)}, 总关系: {len(final_all_relation)}") + + # 6. 实体向量化 +# for entity in final_all_entity: + # name = entity["properties"].get("名称") + # if name: + # --- 优化变量名 --- + # embedding_vector = OpenaiAPI.generate_embedding(name) + # entity["properties"]["embedding"] = embedding_vector + # logger.info("实体向量化完成") + + return final_all_entity, final_all_relation + +if __name__ == "__main__": + input_directory = "/app/测试FDJwx手册_shenghna_output11_full_content.md" + final_all_entity = [] + final_all_relation = [] + # 调用目录处理函数 + mdcontent = read_markdown_file(input_directory) + + if mdcontent is None: + print("无法读取文件,程序退出") + exit(1) + Ontology = [ + "舰艇", "系统", "设备", "零部件", "故障", "修理方案", "维修项目", "操作项目", "保养", "备品备件" + ] + Ontology_DESC = { + "舰艇": ["代表一艘完整海上作战或保障平台的实体,是所有系统、设备和零部件的最高层级载体。区别于“系统”或“设备”,舰艇具有独立的型号、弦号和部队归属,不可作为其他舰艇的组成部分。"], + "系统": ["舰艇中实现某一类功能(如动力、导航、通信)的集成化功能单元,由多个设备协同组成。与“设备”不同,系统本身不直接对应物理装置,而是逻辑/功能层面的集合;与“舰艇”不同,系统不具备独立航行能力或部队归属。"], + "设备": ["安装在舰艇上、具有独立型号和运行状态的物理装置,可被启停、监控运行时间,并可能产生故障。区别于“零部件”,设备是可独立更换或维修的功能单元;区别于“系统”,设备是具体硬件而非功能集合。"], + "零部件": ["构成设备的不可再拆分的基础物理元件(如轴承、电路板、密封圈),通常无独立运行状态或启用时间。与“设备”关键区别在于:零部件不能单独运行,也不记录运行时间或技术状态变更。"], + "故障": ["设备或系统在运行中出现的异常状态或失效事件,必须包含具体现象(如“无法启动”)、原因(如“电源短路”)及影响。区别于“修理”或“保养”,故障是问题本身,而非应对措施;不包含操作步骤或人员信息。"], + "修理方案": ["针对已发生故障所执行的一次性修复行为,包含具体时间、人员、工具、方案和所关联的维修项目。区别于“保养”,修理是响应式、非周期性的;区别于“维修项目”,修理是实际发生的实例,而非标准化规程。"], + "维修项目": ["标准化、可重复执行的维修任务规程,规定了某类设备或系统在特定条件下应如何维修,包含编号、步骤、材料、安全要求等。区别于“修理”,维修项目是模板或规范,而非具体事件;不包含实际发生时间或人员。"], + "操作项目": ["舰艇正常运行中需执行的标准操作流程(如启动主机、校准雷达),强调操作步骤与安全保障。区别于“维修项目”,操作使用项目用于日常使用而非维护"], + "保养" : ["按计划周期性执行的预防性维护活动(如润滑、清洁、检测),目的是延缓性能退化。"] +} + relationships = [ + "包含", "组成", "解决", "用于", "使用", "具有","存储备用" + ] + relationship_types = { + "包含": ["舰艇包含系统", "系统包含设备", "设备包含零部件", "修理包含维修项目"], + "解决": ["修理解决故障", "维修项目解决故障"], + "使用": ["设备使用操作项目", "设备使用保养", "设备使用维修项目"], + "具有": ["设备具有故障", "零部件具有故障"], + "存储备用" : ["设备存储备用备品备件"] + } + node_types = { + "舰艇": ["名称", "型号", "弦号", "设计单位", "总装工厂", "所属部队"], + "系统": ["名称", "技术责任单位", "生产单位", "级别"], + "设备": ["名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间", "运行时间", "运行条件"], + "零部件": ["名称", "型号", "技术责任单位", "生产单位"], + "故障": ["名称", "故障原因", "故障影响", "故障类型", "发生时间", "处置情况", "修复情况"], + "修理方案": ["名称", "修理人员", "修理时间", "修理工具", "备品备件", "修理类型", "维修项目"], + "维修项目": ["名称", "维修项目编号", "组成编码", "维修设备名称", "维修间隔期", "维修级别", "页码", "安全防护要求", "安全注意事项", "工具", "备品备件", "消耗材料", "人力人员", "修理步骤"], + "操作项目": ["名称", "操作项目编号", "安全防护", "注意事项", "保障设施、保障设备(工具)", "人力人员", "操作步骤"], + "保养": ["保养人员", "保养时间", "保养工具", "保养频率"], + "备品备件" : ["名称", "规格", "型号", "图号或标准号或代号","计量单位", "单机重量", "尺寸(长X宽X高mm)", "单机装配数量","实物图片电子文档名称","MTBF(b)","生成厂家", + "出厂日期", + "供货周期(天)", + "有效期(月)", + "使用寿命(h)", + "备件箱号", + "储存要求_环境", + "储存要求_期限", + "停产后供应方式"], + } + final_all_entity,final_all_relation = get_md_node_relation(mdcontent,Ontology=Ontology,Ontology_DESCRIPTION=Ontology_DESC,Relationships=relationships,RELATIONSHIP_TYPES=relationship_types,NODE_TYPES=node_types) diff --git a/kg_build_v2/Prompt.py b/kg_build_v2/Prompt.py new file mode 100644 index 0000000..e6250f3 --- /dev/null +++ b/kg_build_v2/Prompt.py @@ -0,0 +1,915 @@ +Prompt_guzhang = """ +你是一个故障实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系 + "故障"实体主要包括以下属性:"名称", "故障原因", "故障影响", "故障类型", "发生时间", "处置情况", "修复情况",“维修项目” + 文本中"故障原因"与故障实体属性相对应,进行对应填充即可,其中"名称"对应于实体的"故障现象"属性,"维修项目"字段内容对应实体的"维修项目"属性; + 从表格内容中和表格源码之前文本内容分析,找出故障现象所关联的设备以及零部件建立对应的实体,并建立相应关系 + "设备"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间", "运行时间", "运行条件" + "零部件"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位" + 如果抽取设备以及设备的子零部件,那么它们之间也存在包含关系。 + 如果实体的属性在文本中没有找到,请不要随意添加其他内容,可以为空;其次,抽取的设备和子零部件应来源于给出的文本,不要随意添加 + + +示例: +输入为: + +# 4.2 常见故障表 + +表 4.2 舰船螺旋桨常见故障表 + +
序号故障现象故障原因维修项目
船舶尾部或 轴系异常振 动加剧1.桨叶损坏(缺口、弯曲、 空泡腐蚀)导致不平衡。 2.桨叶固定螺栓松动。 3.艉轴轴承磨损严重,间 隙过大。执行以下维修项目: MT002检查桨叶外观与测量厚度/ 螺距 MT001检查桨毂与桨叶连接螺栓 MT011 测量艉轴承间隙与温度 MT012检查/更换艉轴承衬套
2艉轴密封处泄漏异常(超量泄漏)1.密封环(前/后密封环)老化、磨损或损坏。2.密封衬套磨损过度。执行以下维修项目:MT007 检查并记录密封泄漏率MT008 更换舰轴密封件
+输出为: + +{{ + "entities": [ + {{ + "type": "故障", + "properties": {{ + "名称": "船舶尾部或轴系异常振动加剧", + "故障原因": "1. 桨叶损坏(缺口、弯曲、空泡腐蚀)导致不平衡。 + 2. 桨叶固定螺栓松动。 + 3. 艉轴轴承磨损严重,间隙过大。", + "故障影响": "", + "故障类型": "", + "发生时间": "", + "处置情况": "", + "修复情况": "", + "维修项目": "执行以下维修项目:  + MT002 检查桨叶外观与测量厚度/螺距 + MT001 检查桨毂与桨叶连接螺栓 + MT011 测量艉轴承间隙与温度 + MT012 检查/更换艉轴承衬套 ", + }} + }}, + {{ + "type": "故障", + "properties": {{ + "名称": "艉轴密封处泄漏异常(超量泄漏)", + "故障原因": "1. 密封环(前/后密封环)老化、磨损或损坏。 + 2. 密封衬套磨损过度。", + "故障影响": "", + "故障类型": "", + "发生时间": "", + "处置情况": "", + "修复情况": "", + "维修项目": "执行以下维修项目:  + MT007 检查并记录密封泄漏率 + MT008 更换艉轴密封件", + }} + }}, + {{ + "type": "设备", + "properties": {{ + "名称": "舰船螺旋桨", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "", + + }} + }}, + {{ + "type": "零部件", + "properties": {{ + "名称": "船舶尾部或轴系", + "型号": "", + "技术责任单位": "", + "生产单位": "", + + }} + }}, + {{ + "type": "零部件", + "properties": {{ + "名称": "艉轴", + "型号": "", + "技术责任单位": "", + "生产单位": "", + + }} + }}, + ], + "relationships": [ + {{ + "type": "具有", + "from_entity": "舰船螺旋桨", + "to_entity": "船舶尾部或轴系异常振动加剧" + }}, + {{ + "type": "具有", + "from_entity": "舰船螺旋桨", + "to_entity": "艉轴密封处泄漏异常(超量泄漏)" + }} + {{ + "type": "具有", + "from_entity": "船舶尾部或轴系", + "to_entity": "异常振动加剧" + }}, + {{ + "type": "具有", + "from_entity": "艉轴", + "to_entity": "密封处泄漏异常(超量泄漏)" + }}, + {{ + "type": "包含", + "from_entity": "舰船螺旋桨", + "to_entity": "船舶尾部或轴系" + }}, + {{ + "type": "包含", + "from_entity": "舰船螺旋桨", + "to_entity": "艉轴" + }}, + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +请按照上述示例,对给出的文本进行维修项目实体抽取,给出文本为: +{text} +""" + + +Prompt_compose = """ +你是一个设备和零部件实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系 + "设备"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间", "运行时间", "运行条件" + 设备与零部件存在包含,一般设备由零部件组成 + 其中,设备主要来源表格html源码之前内容,主要是表格名称等,阐述该设备由表中零部件组成 + "零部件"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位" + 如果抽取设备以及设备的子零部件,那么它们之间也存在包含关系。 + + +示例: +输入为: + + +以下部分介绍螺旋桨的组成、工作原理、技术指标、接口情况、布置情况,从各方面知悉发动机的基本信息。 + +# 3.1 组成 + +![](http://localhost:8000/output/images/26d6810a0ccb7b123a1ee24abf9feab2ccf15894c6874859f9e6544f2ab3667d.jpg) +图 3.1 螺旋桨组成图 + +表 3.1 螺旋桨组成部分 + +
组成部分功能描述数量
桨叶核心推进部件,通过旋转推动水流产生反作用推力。其翼型、螺距和面积决定了推进效率。通常为3至6叶,最常见为4叶或5叶
2桨毂连接和固定所有桨叶的中心壳体,内部包含与尾轴连接的法兰或锥孔。1个
3桨毂帽安装在桨毂后部的流线型罩盖,用于减少桨毂后部产生的涡流阻力,提升水动力效率。1个(非所有螺旋桨标配)
+ + +输出为: + +{{ + "entities": [ + {{ + "type": "设备", + "properties": {{ + "名称": "螺旋桨", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + }} + }}, + {{ + "type": "零部件", + "properties": {{ + "名称": "桨叶", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "功能描述": "核心推进部件,通过旋转推动水流产生反作用推力。其翼型、螺距和面积决定了推进效率。" + }} + }}, + {{ + "type": "零部件", + "properties": {{ + "名称": "桨毂", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "功能描述" : "连接和固定所有桨叶的中心壳体,内部包含与尾轴连接的法兰或锥孔。" + }} + }}, + {{ + "type": "零部件", + "properties": {{ + "名称": "桨毂帽", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "功能描述" : "安装在桨毂后部的流线型罩盖,用于减少桨毂后部产生的涡流阻力,提升水动力效率。" + }} + }}, + + ], + "relationships": [ + {{ + "type": "包含", + "from_entity": "螺旋桨", + "to_entity": "桨叶" + }}, + {{ + "type": "包含", + "from_entity": "螺旋桨", + "to_entity": "桨毂" + }}, + {{ + "type": "包含", + "from_entity": "螺旋桨", + "to_entity": "桨毂帽" + }}, + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +请按照上述示例,对给出的文本进行维修项目实体抽取,给出文本为: +{text} +""" + + +Prompt_compose = """ +你是一个设备和零部件实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系 + "设备"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间", "运行时间", "运行条件" + 设备与零部件存在包含关系,一般设备由零部件组成 + 其中,设备主要来源表格html源码之前内容,主要是表格名称等,阐述该设备由表中零部件组成 + "零部件"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位" + 如果抽取设备以及设备的子零部件,那么它们之间也存在包含关系。 + + +示例: +输入为: + + +以下部分介绍螺旋桨的组成、工作原理、技术指标、接口情况、布置情况,从各方面知悉发动机的基本信息。 + +# 3.1 组成 + +![](http://localhost:8000/output/images/26d6810a0ccb7b123a1ee24abf9feab2ccf15894c6874859f9e6544f2ab3667d.jpg) +图 3.1 螺旋桨组成图 + +表 3.1 螺旋桨组成部分 + +
组成部分功能描述数量
桨叶核心推进部件,通过旋转推动水流产生反作用推力。其翼型、螺距和面积决定了推进效率。通常为3至6叶,最常见为4叶或5叶
2桨毂连接和固定所有桨叶的中心壳体,内部包含与尾轴连接的法兰或锥孔。1个
3桨毂帽安装在桨毂后部的流线型罩盖,用于减少桨毂后部产生的涡流阻力,提升水动力效率。1个(非所有螺旋桨标配)
+ + +输出为: + +{{ + "entities": [ + {{ + "type": "设备", + "properties": {{ + "名称": "螺旋桨", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + }} + }}, + {{ + "type": "零部件", + "properties": {{ + "名称": "桨叶", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "功能描述": "核心推进部件,通过旋转推动水流产生反作用推力。其翼型、螺距和面积决定了推进效率。" + }} + }}, + {{ + "type": "零部件", + "properties": {{ + "名称": "桨毂", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "功能描述" : "连接和固定所有桨叶的中心壳体,内部包含与尾轴连接的法兰或锥孔。" + }} + }}, + {{ + "type": "零部件", + "properties": {{ + "名称": "桨毂帽", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "功能描述" : "安装在桨毂后部的流线型罩盖,用于减少桨毂后部产生的涡流阻力,提升水动力效率。" + }} + }}, + + ], + "relationships": [ + {{ + "type": "包含", + "from_entity": "螺旋桨", + "to_entity": "桨叶" + }}, + {{ + "type": "包含", + "from_entity": "螺旋桨", + "to_entity": "桨毂" + }}, + {{ + "type": "包含", + "from_entity": "螺旋桨", + "to_entity": "桨毂帽" + }}, + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +请按照上述示例,对给出的文本进行维修项目实体抽取,给出文本为: +{text} +""" + + +Prompt_compose_tujie = """ +你是一个设备和零部件实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系 + "设备"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间", "运行时间", "运行条件" + 设备与子设备、零部件存在包含关系,一般设备由子设备组成,子设备由零部件组成 + 其中,设备主要来源表格html源码之前内容,主要是表格名称等,阐述该设备由表中子设备、零部件组成 + 表中组成编码表示了子设备与零部件的包含关系,例如表名关联的设备为螺旋桨,表中组成编码01表示螺旋桨的设备,0101表示设备的零部件,010101则表示对应零部件的子零部件 + "零部件"实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位" + + +示例: +输入为: +# 2.4 组成表示例 + +如表2.2所示,为FL-3.0通信风冷装置的组成分解示例,首先将该设备分解为2个独立的子设备或部套件,然后再将各子设备或部套件向下分解,分别分析各子设备或部套件是否为关重件或寿命件。设备组成表提交模板见附件一。 + +表 2.2 FL-3.0 通信风冷装置设备组成表 + +
组成编码名称是否为关重件是否为寿命件备注
00通信风冷设备
01风冷装置
0101底座组件
0102下柜体组件
010201下框架组件
010202下面门组件
0103换热器8P
02电控箱
0201箱体
+ +输出为: + +{{ + "entities": [ + {{ + "type": "设备", + "properties": {{ + "名称": "通信风冷设备", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "组成编码" : "00" + }} + }}, + {{ + "type": "设备", + "properties": {{ + "名称": "风冷装置", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "01" + }} + }}, + {{ + "type": "设备", + "properties": {{ + "名称": "电控箱", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "02" + }} + }}, + {{ + "type": "零部件", + "properties": {{ + "名称": "底座组件", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "0101" + }} + }}, + {{ + "type": "零部件", + "properties": {{ + "名称": "下柜体组件", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "0102" + }} + }}, + {{ + "type": "零部件", + "properties": {{ + "名称": "下框架组件", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "010201" + }} + }}, + {{ + "type": "零部件", + "properties": {{ + "名称": "下面门组件", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "否", + "是否为寿命件" : "否", + "组成编码" : "010202" + }} + }}, + {{ + "type": "零部件", + "properties": {{ + "名称": "换热器8P", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "是", + "是否为寿命件" : "否", + "组成编码" : "0103" + }} + }}, + {{ + "type": "零部件", + "properties": {{ + "名称": "箱体", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "是否为关重件" : "是", + "是否为寿命件" : "是", + "组成编码" : "0201" + }} + }}, + ], + "relationships": [ + {{ + "type": "包含", + "from_entity": "通信风冷设备", + "to_entity": "风冷装置" + }}, + {{ + "type": "包含", + "from_entity": "通信风冷设备", + "to_entity": "电控箱" + }}, + {{ + "type": "包含", + "from_entity": "风冷装置", + "to_entity": "底座组件" + }}, + {{ + "type": "包含", + "from_entity": "风冷装置", + "to_entity": "下柜体组件" + }}, + {{ + "type": "包含", + "from_entity": "下柜体组件", + "to_entity": "下框架组件" + }}, + {{ + "type": "包含", + "from_entity": "下柜体组件", + "to_entity": "下面门组件" + }}, + {{ + "type": "包含", + "from_entity": "风冷装置", + "to_entity": "换热器8P" + }}, + {{ + "type": "包含", + "from_entity": "电控箱", + "to_entity": "箱体" + }}, + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +请按照上述示例,对给出的文本进行维修项目实体抽取,给出文本为: +{text} +""" + + +Prompt_compose_mulu_tujie = """ +你是一个专业的表格html源码专家,能够将html源码转为键值对形式, + 表格中第一行为表头,表头字段键为对应表格,表中每一行记录为一组键值对,键值对内容为自动和对应值 + + +示例: +
序号组成编码名称型号/零件号重量(kg)数量
101螺旋桨本体总成CPP-UNIT-8500-4B12,500118,0001
202轴系与传动总成SHAFTING-SYS-85008,000 115,0001
303调距机构总成(CPP)CPP-MECH-85003,5006,0001
404控制系统总成CPP-CONTROL-S85800 11,5001
图名:船舶主发动机图解目录
图号:01
+ + +输出为: +[ + {{ + "组成编码" : "01", + "名称" : "螺旋桨本体总成", + "型号/零件号" : "CPP-UNIT-8500-4B", + "重量(kg)" : "12,500 - 18,000" + }}, + {{ + "组成编码" : "02", + "名称" : "轴系与传动总成", + "型号/零件号" : "SHAFTING-SYS-8500", + "重量(kg)" : "8,000 - 15,000" + }}, + {{ + "组成编码" : "03", + "名称" : "调距机构总成(CPP)", + "型号/零件号" : "CPP-MECH-8500", + "重量(kg)" : "3,500 - 6,000" + }}, + {{ + "组成编码" : "04", + "名称" : "控制系统总成", + "型号/零件号" : "CPP-CONTROL-S85", + "重量(kg)" : "800 - 1,500" + }} +] +只输出纯JSON,不要任何其他文本、解释或Markdown。 +请按照上述示例,对给出的文本进行维修项目实体抽取,给出文本为: +{text} +""" + +Prompt_anli=""" +你是一个专业的装备故障信息结构化抽取助手。请根据以下规则,从提供的故障报告文本中提取“设备”和“故障”两类实体,并建立它们之间的关系。 +###提取规则如下: + 1、故障实体(type: "故障") + 名称:由“装备名称 + 故障关键词”构成,一般来源于文中的故障现象,例如“1号主机冷却系统温度异常升高”。 + properties 字段包括: + "故障现象":来自“故障现象”对应的具体描述文字。 + "发生时间":来自“时间”、"故障时间"字段。 + "维修方案":来自“三、故障排除”、“# 排除方法”等字段信息。 + "经验总结":来自“四、经验启示”、“# 启示”等章节字段内容。 + "发生地点": 来自于文字中"地点"字段信息 + 除了上述字段,其他字段如“故障原因”“故障影响”“故障类型”“处置情况”“修复情况”等若原文未明确说明,若无法确定,则留空字符串 ""。 + 2、设备实体(type: "设备") + 名称 与 properties["名称"] 均取自“装备名称”、“故障设备”等字段信息。 + properties["生产单位"] 取自“单位”字段(如“XX 舰艇保障大队”)。 + 其余属性(型号、技术责任单位、技术状态、生产日期、启用时间、运行时间、运行条件)若原文未提供,一律留空字符串 ""。 + 3、关系(relationships) + 必须包含一条 "具有" 类型的关系:from_entity 为设备实体的 名称,to_entity 为故障实体的 名称。 + 若存在更高层级设备(如“主机系统”包含“冷却系统”),但原文未提及,则不需构造“包含”关系。仅当原文明确有层级结构时才添加。本例中无上级设备,故只保留“具有”关系。 + 输出格式严格遵循 JSON 结构,不得包含额外解释、注释或 Markdown。仅输出一个 JSON 对象,包含 "entities" 和 "relationships" 两个顶层字段。 + +### 输出格式要求: +只输出纯JSON,不要任何其他文本、解释或Markdown。结构如下: +{{ + "entities": [ + {{ + "type": "设备", + "properties": {{ + "名称": "通信风冷设备", + "型号": "FL-2000", + "技术责任单位": "701所", + "生产单位": "沪东重机", + "技术状态": "正常", + "生产日期": "2021-08", + "启用时间": "2022-01", + "运行时间": "5000小时", + "运行条件": "舱内通风良好,无腐蚀性气体" + }} + }}, + {{ + "type": "故障", + "properties": {{ + "故障现象": "设备表面温度超过80℃", + "故障原因": "散热风扇停转", + "故障影响": "导致通信设备降频", + "故障类型": "硬件故障", + "发生时间": "2024-11-15", + "处置情况": "切换备用风机", + "修复情况": "更换风扇电机", + "维修方案":"进行设备的温度测试,进行降温" + }} + }} + ], + "relationships": [ + {{ + "type": "包含", + "from_entity": "通信风冷设备", + "to_entity": "风冷装置" + }}, + {{ + "type": "具有", + "from_entity": "风冷装置", + "to_entity": "风冷装置过热" + }} + ] +}} + +示例1: +输入为: +# 一、故障现象 + +单位:XX 舰艇保障大队 + +时间:2013 年 05 月 7 日 9 时 23 分 37 秒 + +舰艇状态:航行中,主机正常运行 + +装备名称:1 号主机冷却系统 + +故障现象:1 号主机冷却系统温度异常升高,监控面板显示冷却液温度持续超过警戒值$( > 9 5 ^ { \circ } C ) .$ ),伴随系统压力波动,报警指示灯常亮。 + +# 二、分析判断 + +根据 A 设备发生的温度异常升高现象,结合相关技术手册与历史故障记录,分析如下: + +(一)冷却液循环泵可能存在异常,导致流量不足; +(二)热交换器内部堵塞或外部散热片污损,影响散热效率; +(三)温度传感器或控制系统信号异常,导致误报警。 + +# 三、故障排除 + +![image](https://cdn-mineru.openxlab.org.cn/result/2026-01-19/8ca2fbe0-d6f4-4062-b40c-bb98b03b5006/fe9fb37249ebdf935ee0d237e447d5de52ac996315f572c343273a679db06785.jpg) + + +# 图:冷却系统结构简图 + +# (一)初步检查 + +关闭主机,检查冷却液液位及管路是否泄漏,确认液位正常、无泄漏。 + +# (二)系统检测 + +使用便携式流量计检测循环泵输出流量,发现流量低于标准值;拆卸热交换器检查,发现内部有沉积物堵塞。 + +# (三)故障处理 + +清洗热交换器内部,更换循环泵滤网,重新加注冷却液并排气。启动系统后,温度恢复正常,压力稳定,报警消除。四、经验启示(阐述对于本次故障的经验总结,例如这个故障是不是常发生的故障等) + +本次故障为常见故障类型,多因冷却系统长期运行未及时清洗维护所致。建议: + +(一)定期清洗热交换器与滤网; +(二)加强日常巡检,特别是高温季节; +(三)建立冷却系统维护台账,记录清洗与更换周期。 + +故障二、XXX 型号A 设备A 故障 + +输出为: +{{ + "entities": [ + {{ + "type": "设备", + "properties": {{ + "名称": "1 号主机冷却系统", + "型号": "", + "技术责任单位": "XX 舰艇保障大队", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + }} + }}, + {{ + "type": "故障", + "properties": {{ + "故障现象": "1 号主机冷却系统温度异常升高,监控面板显示冷却液温度持续超过警戒值$( > 9 5 ^ { \circ } C ) .$ ),伴随系统压力波动,报警指示灯常亮。", + "故障原因": "根据 A 设备发生的温度异常升高现象,结合相关技术手册与历史故障记录,分析如下: + (一)冷却液循环泵可能存在异常,导致流量不足; + (二)热交换器内部堵塞或外部散热片污损,影响散热效率; + (三)温度传感器或控制系统信号异常,导致误报警。 +", + "故障影响": "", + "故障类型": "", + "发生时间": "2013 年 05 月 7 日 9 时 23 分 37 秒", + "处置情况": " ", + "修复情况": "", + "维修方案":"![image](https://cdn-mineru.openxlab.org.cn/result/2026-01-19/8ca2fbe0-d6f4-4062-b40c-bb98b03b5006/fe9fb37249ebdf935ee0d237e447d5de52ac996315f572c343273a679db06785.jpg) + # 图:冷却系统结构简图 + # (一)初步检查 + 关闭主机,检查冷却液液位及管路是否泄漏,确认液位正常、无泄漏。 + # (二)系统检测 + 使用便携式流量计检测循环泵输出流量,发现流量低于标准值;拆卸热交换器检查,发现内部有沉积物堵塞。 + # (三)故障处理 + 清洗热交换器内部,更换循环泵滤网,重新加注冷却液并排气。启动系统后,温度恢复正常,压力稳定,报警消除。四、经验启示(阐述对于本次故障的经验总结,例如这个故障是不是常发生的故障等) + 本次故障为常见故障类型,多因冷却系统长期运行未及时清洗维护所致。建议: + (一)定期清洗热交换器与滤网; + (二)加强日常巡检,特别是高温季节; + (三)建立冷却系统维护台账,记录清洗与更换周期。" + }} + }} + ], + "relationships": [ + {{ + "type": "具有", + "from_entity": "1 号主机冷却系统", + "to_entity": "1 号主机冷却系统温度异常升高,监控面板显示冷却液温度持续超过警戒值$( > 9 5 ^ { \circ } C ) .$ ),伴随系统压力波动,报警指示灯常亮。" + }} + ] +}} + +输入文本: +text +""" + + +prompt_extract_repair_node_rela = """ +你是一个专业维修项目实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系 + "维修项目"实体主要包括以下属性:"名称", "维修项目编号", "组成编码", "维修设备名称", "维修间隔期", "维修级别", "页码", "安全防护要求", "安全注意事项", "工具", "备品备件", "消耗材料", "人力人员", "修理步骤" + 文本中"维修项目编号", "组成编码","维修间隔期", "维修级别"与维修项目实体属性相对应,进行对应填充即可,其中表中"名称"对应于实体的"维修设备名称"属性,"维修项目"字段内容对应实体的"名称"属性; + 文本中如果存在"安全防护要求"以及对应后面文本,即为实体的"安全防护要求"属性;如果存在"安全注意事项"以及对应后面文本,即为实体的"安全注意事项"属性; + 文本中,如果存在"1)保障设施、保障设备(工具)"以及对应后面的html子表内容,则为实体的"保障设施、保障设备(工具)"属性; + 依次类推,文本如果存在"2)备品备件"以及对应后面的html子表内容,则为实体的"备品备件"属性; + +示例: +输入为: +
维修项目编号组成编码名称维修项目维修间隔期
MT0210401液压动力单元检查液压油位、油质与压力1D/1W
+ +# 安全注意事项 + +1. 设备运行状态确认与防护:检查工作通常在设备运行时或刚停机时进行。必须清楚了解检查点周边环境,远离所有旋转部件(如泵轴、风扇、联轴器)和高温表面。衣物须紧束,严禁戴手套靠近旋转部位。若需在运行中检查,应事先规划好安全站位和撤离路线。 + +2. 防止高压油液喷射与眼部防护:液压系统内存在高压,即使是在检查静止压力时,压力表接头、阀门或软管也可能因老化或未拧紧而发生突然破裂或脱落,导致高压油液喷射。必须全程佩戴防护眼镜或面罩。检查时,身体不得正对压力表或测压接头正面。 + +保障设备(工具)、备件、消耗材料、人力人员需求 + +1)保障设备(工具) + +
序号名称规格\型号数量及单位备注
1防护眼镜/全面罩防雾、防溅射1副/人个人强制防护装备。
2防油耐高温手套丁腈或氟橡胶材质1副/人用于接触油液和高温部件。
+ +2)备品备件 + +
序号名称规格\型号消耗数量备注
1压力表(备用)与系统原表量程、接口一致1-2个用于替换检查中发现失准或损坏的压力表。
+ +3)消耗材料 + +
序号名称牌号\品级\规格消耗数量备注
1无绒擦拭布若干用于清洁液位计、压力表表面及取样口。
+ +4)人力人员 + +
序号专业人数技能等级备注
1设备巡检员/液压技术员1-2人中级工及以上主检人员,熟悉液压系统原理和油品指标。
+ +# 修前判据 + +对液压系统进行任何维修(如更换泵、阀、密封)之前,必须对液压油的油位、油质和系统压力进行检查。 + +# 修理步骤及工艺 + +1. 准备工作:佩戴好个人防护装备。观察设备运行有无异常噪音、振动。 + +2. 油位检查:设备停机静止后,检查油箱液位计。油位应在最高与最低刻度之间。 + +# 验收标准 + +1.数据准确:油位读数、油质检测数据和压力测量值记录准确无误。 + +2.状态判定明确:能明确判定液压油的状态等级(如:合格、需监控、立即更换)和系统压力是否正常。 + +输出为: +{{ + "type": "维修项目", + "properties": {{ + "维修项目编号": "MT021", + "组成编码": "0401", + "名称": "检查液压油位、油质与压力", + "维修间隔期": "1D/1W", + "安全注意事项": "1. 设备运行状态确认与防护:检查工作通常在设备运行时或刚停机时进行。必须清楚了解检查点周边环境,远离所有旋转部件(如泵轴、风扇、联轴器)和高温表面。衣物须紧束,严禁戴手套靠近旋转部位。若需在运行中检查,应事先规划好安全站位和撤离路线。\\n\\n2. 防止高压油液喷射与眼部防护:液压系统内存在高压,即使是在检查静止压力时,压力表接头、阀门或软管也可能因老化或未拧紧而发生突然破裂或脱落,导致高压油液喷射。必须全程佩戴防护眼镜或面罩。检查时,身体不得正对压力表或测压接头正面。", + "保障设备(工具)": "[{{\\"序号\\":\\"1\\",\\"名称\\":\\"防护眼镜/全面罩\\",\\"规格\\\\型号\\":\\"防雾、防溅射\\",\\"数量及单位\\":\\"1副/人\\",\\"备注\\":\\"个人强制防护装备。\\"}},{{\\"序号\\":\\"2\\",\\"名称\\":\\"防油耐高温手套\\",\\"规格\\\\型号\\":\\"丁腈或氟橡胶材质\\",\\"数量及单位\\":\\"1副/人\\",\\"备注\\":\\"用于接触油液和高温部件。\\"}}]", + "备品备件": "[{{\\"序号\\":\\"1\\",\\"名称\\":\\"压力表(备用)\\",\\"规格\\\\型号\\":\\"与系统原表量程、接口一致\\",\\"消耗数量\\":\\"1-2个\\",\\"备注\\":\\"用于替换检查中发现失准或损坏的压力表。\\"}}]", + "消耗材料": "[{{\\"序号\\":\\"1\\",\\"名称\\":\\"无绒擦拭布\\",\\"规格\\\\品级\\\\规格\\":\\"\\",\\"消耗数量\\":\\"若干\\",\\"备注\\":\\"用于清洁液位计、压力表表面及取样口。\\"}}]", + "人力人员": "[{{\\"序号\\":\\"1\\",\\"专业\\":\\"设备巡检员/液压技术员\\",\\"人数\\":\\"1-2人\\",\\"技能等级\\":\\"中级工及以上\\",\\"备注\\":\\"主检人员,熟悉液压系统原理和油品指标。\\"}}]", + "修前判据": "对液压系统进行任何维修(如更换泵、阀、密封)之前,必须对液压油的油位、油质和系统压力进行检查。", + "修理步骤及工艺": "1. 准备工作:佩戴好个人防护装备。观察设备运行有无异常噪音、振动。\\n\\n2. 油位检查:设备停机静止后,检查油箱液位计。油位应在最高与最低刻度之间。", + "验收标准": "1.数据准确:油位读数、油质检测数据和压力测量值记录准确无误。\\n\\n2.状态判定明确:能明确判定液压油的状态等级(如:合格、需监控、立即更换)和系统压力是否正常。" + }} +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +字段不要擅自修改,例如“维修项目编号”,不应该随意改成“编号”字段 +请按照上述示例,对给出的文本进行维修项目实体抽取,给出文本为: +{text} +""" + + +prompt_extract_operation_node_rela = """ +你是一个专业操作项目实体关系抽取专家,根据给出的符合要求html源码,能够抽取出对应的实体以及关系 + "维修项目"实体主要包括以下属性:"名称", "操作项目编号", "安全防护", "注意事项", "保障设施、保障设备(工具)", "人力人员", "操作步骤" + 文本中"维修项目编号"与维修项目实体属性相对应,进行对应填充即可,其中"名称"对应于实体的"操作项目"属性; + 文本中如果存在"安全防护"以及对应后面文本,即为实体的"安全防护"属性;如果存在"注意事项"以及对应后面文本,即为实体的"注意事项"属性;文本中如果存在"操作步骤"以及对应后面文本,即为实体的"操作步骤"属性; + 文本中,如果存在"1)保障设施、保障设备(工具)"以及对应后面的html子表内容,则为实体的"保障设施、保障设备(工具)"属性; + 依次类推,文本如果存在"2)人力人员"以及对应后面的html子表内容,则为实体的"备品备件"属性; + 接着,在表html源码之前文本内容中找到关联的设备, + +示例: +输入为: + +![](http://localhost:8000/output/images/ac614992d579512bf6af72ee3c16a53f43bf76c79459372713eab6aea4912ee6.jpg) + +操作流程图 +表 4.6 轴系与轴承温度、振动定期巡检与记录 + +
项目编号操作项目
OT005轴系与轴承温度、振动定期巡检与记录
+ +
安全防护 个人防护装备佩戴;检查区域内严禁明火、吸烟。
注意事项
确认巡检区域无障碍物、无泄漏风险,设置临时警戒标识。
保障设施、保障设备(工具)、人力人员需求
+ +1)保障设施、保障设备(工具) + +
序号名称规格/型号数量及单位备注
1红外测温仪测量范围-20℃~500℃,精度±1℃,响应时间≤0.5s1台非接触式测量轴承、轴系温度,避免高温烫伤
2便携式振动检测仪测量范围0.1~100mm/s,频率范围10~1000Hz,精度±5%1台用于轴系、联轴器、轴承振动数据采集,支持数据存储
3轴系巡检记录表含巡检时间、工况、点位名称、温度值、振动值、异常描述栏1本(50页)统一格式,便于数据归档与历史对比
4安全防护装备防滑绝缘鞋、防机械伤害手套、护目镜、安全帽2套适配巡检人员人身防护需求,避免机械伤害与高温风险
5临时警戒标识反光式“正在巡检,禁止靠近”警示牌,A3规格2块划定巡检区域,防止无关人员进入引发安全事故
6通讯设备防爆对讲机,有效通讯距离≥500m,待机时间≥24h2部巡检中与机舱控制室保持联动,异常情况可及时上报
+ +2)人力人员 + +
序号专业人数技能等级备注
1船舶轴系巡检专业1人中级及以上精通轴系与轴承结构,能规范操作检测工具,准确识别温度、振动异常并初步判断原因
2巡检记录与辅助专业1人初级及以上负责准确记录巡检数据,协助准备检测工具与防护装备,传递通讯信息,配合异常处置
+ +# 操作步骤.. + +1) 巡检前备好校准合格的检测工具与防护装备,划定警戒区域。 +2) 按既定路线抵达各监测点位,在相同工况下用红外测温仪测温度、振动检测仪采 +振动数据。 +3) 实时对比数据与基准值,异常则标记并上报。 +4) 准确填写巡检记录表,清晰记录相关信息,签字后归档。 + +![](http://localhost:8000/output/images/8310aecb05e4739a9f165f10fbed27423bdf65b667822837cc201b32d969dd76.jpg) + +操作流程图 + +
页码:3/3版本号:1
+ +表 4.7 尾轴管润滑油柜液位、温度检查与补充 + +输出为: +{{ + "entities": [ + {{ + "type": "设备", + "properties": {{ + "名称": "轴系与轴承", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + }} + }}, + {{ + "type": "操作项目", + "properties": {{ + "操作项目编号": "OT005", + "组成编码": "0101", + "名称": "轴系与轴承", + "操作项目": "轴系与轴承温度、振动定期巡检与记录", + "维修间隔期": "1D", + "安全注意事项": "1. 个人防护装备佩戴:巡检人员必须穿戴防滑绝缘鞋、防机械伤害手套、护目镜和安全帽,防止机械伤害与高温风险。\\n\\n2. 区域安全确认:确认巡检区域无障碍物、无泄漏风险,严禁明火、吸烟。设置临时警戒标识,划定巡检区域,防止无关人员进入引发安全事故。", + "保障设备(工具)": "[{{\"序号\":\"1\",\"名称\":\"红外测温仪\",\"规格/型号\":\"测量范围-20℃~500℃,精度±1℃,响应时间≤0.5s\",\"数量及单位\":\"1台\",\"备注\":\"非接触式测量轴承、轴系温度,避免高温烫伤\"}},{{\"序号\":\"2\",\"名称\":\"便携式振动检测仪\",\"规格/型号\":\"测量范围0.1~100mm/s,频率范围10~1000Hz,精度±5%\",\"数量及单位\":\"1台\",\"备注\":\"用于轴系、联轴器、轴承振动数据采集,支持数据存储\"}},{{\"序号\":\"3\",\"名称\":\"轴系巡检记录表\",\"规格/型号\":\"含巡检时间、工况、点位名称、温度值、振动值、异常描述栏\",\"数量及单位\":\"1本(50页)\",\"备注\":\"统一格式,便于数据归档与历史对比\"}},{{\"序号\":\"4\",\"名称\":\"安全防护装备\",\"规格/型号\":\"防滑绝缘鞋、防机械伤害手套、护目镜、安全帽\",\"数量及单位\":\"2套\",\"备注\":\"适配巡检人员人身防护需求,避免机械伤害与高温风险\"}},{{\"序号\":\"5\",\"名称\":\"临时警戒标识\",\"规格/型号\":\"反光式“正在巡检,禁止靠近”警示牌,A3规格\",\"数量及单位\":\"2块\",\"备注\":\"划定巡检区域,防止无关人员进入引发安全事故\"}},{{\"序号\":\"6\",\"名称\":\"通讯设备\",\"规格/型号\":\"防爆对讲机,有效通讯距离≥500m,待机时间≥24h\",\"数量及单位\":\"2部\",\"备注\":\"巡检中与机舱控制室保持联动,异常情况可及时上报\"}}]", + "备品备件": "[]", + "消耗材料": "[{{\"序号\":\"1\",\"名称\":\"无绒擦拭布\",\"规格/品级/规格\":\"\",\"消耗数量\":\"若干\",\"备注\":\"用于清洁测温仪镜头、传感器探头及设备表面污渍。\"}}]", + "人力人员": "[{{\"序号\":\"1\",\"专业\":\"船舶轴系巡检专业\",\"人数\":\"1人\",\"技能等级\":\"中级及以上\",\"备注\":\"精通轴系与轴承结构,能规范操作检测工具,准确识别温度、振动异常并初步判断原因。\"}},{{\"序号\":\"2\",\"专业\":\"巡检记录与辅助专业\",\"人数\":\"1人\",\"技能等级\":\"初级及以上\",\"备注\":\"负责准确记录巡检数据,协助准备检测工具与防护装备,传递通讯信息,配合异常处置。\"}}]", + "修前判据": "在设备运行期间,依据设备维护规程,定期对轴系与轴承进行状态监测。", + "修理步骤及工艺": "1. 准备工作:备好校准合格的红外测温仪、振动检测仪及巡检记录表。穿戴齐全个人防护装备,在巡检区域设置临时警戒标识。\\n\\n2. 数据采集:按既定路线抵达各监测点位,在相同工况下使用红外测温仪测量温度,使用振动检测仪采集振动数据。\\n\\n3. 异常判断:实时对比采集数据与基准值,若发现异常则进行标记并立即上报。\\n\\n4. 记录归档:准确填写巡检记录表,清晰记录巡检时间、工况、点位名称、温度值、振动值及异常描述,相关人员签字后归档。", + "验收标准": "1. 数据完整性:巡检记录表填写完整,无漏项,包含所有规定监测点的数据。\\n\\n2. 数据准确性:测量值与设备实际运行状态相符,记录无误。\\n\\n3. 异常响应及时性:发现异常数据时,能按照流程及时标记并上报,处置记录完整。" + }} + }} + ], + "relationships": [ + {{ + "type": "操作使用", + "from_entity": "轴系与轴承", + "to_entity": "轴系与轴承温度、振动定期巡检与记录" + }} + ] +}} + +只输出纯JSON,不要任何其他文本、解释或Markdown。 +字段不要擅自修改,例如“操作项目编号”,不应该随意改成“编号”字段 +请按照上述示例,对给出的文本进行维修项目实体抽取,给出文本为: +{text} +""" + diff --git a/kg_build_v2/Prompt_excel.py b/kg_build_v2/Prompt_excel.py new file mode 100644 index 0000000..4622149 --- /dev/null +++ b/kg_build_v2/Prompt_excel.py @@ -0,0 +1,366 @@ +import json + +excel = { + "备品备件": ["名称","型号","规格","单机装配数量","库存数量"], + "故障汇总" : ["序号","故障描述","故障发现时间","故障装备型号","船舰型号","船舰舷号","列装单位","修理单位","修理人员","所用仪器列表","更换器材","故障原因分析","修理用时","修后体会" +] +} +prompt_type_excel = f""" +你是一个表格识别助手,能够根据要求快速的识别出表格所对应的类型 +###识别规则 +1.excel表格会转换为对应的json键值对形式数据,你要是通过识别json数据中的字段,通过字段识别出表格所存在的类型 +2.目前主要的表格类型以及包含的主要字段如下: +{excel} +3.请结合上述给你的信息,判断给出的表格json数据属于哪一种类型,主要判断是否存在上述主要字段,然后判断是否为上述表格 +4.如果不符合上述表格类型,请输出类型为:其他,不一定完全属于上述两种表格类型之一 +5.请快速的输出表格类型,输出格式如下: +{{ + "type" : "备品备件" +}} +###【表格数据】为: +{{text}} +""" + + + +prompt_beipinbeijian = """ +你是一个信息抽取模型。 +请从给定的表格结构化 JSON 中,抽取【实体】和【实体关系】。 +【抽取要求】 +1. 仅基于输入内容,不允许编造 +2. 实体类型只有设备和备品备件 +3. 关系类型只有设备信息 +4. 每个实体必须包含: + - type + - 名称 + - properties +5. 关系必须包含: + - type + - from_entity + - to_entity +6. 输出必须是严格 JSON,不要解释性文本。 +7. 设备实体只在header字段中,设备的属性为空,设备名去除备品备件后的结果。 +8. 备品备件实体在content字段中,名称为备品备件名称,备品备件的属性为content字段中所有信息,其中"名称"属性一定要存在于properties中,名称一般来源于备品备件名称 +9 不要增加没有必要的属性,如果某些属性为空,也不要随意添加 + +【输出格式】 +{{ + "entities": [ + {{ + "type": "设备", + "properties": {{ + "名称": "舰船主发动机", + "型号": "", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + }} + }}, + {{ + "type": "备品备件", + "properties": {{ + "名称": "排气阀", + "型号": "PV-100", + "规格": "通径100mm", + "图号或标准号或代号": "PF-112-06", + "计量单位": "个", + "单机重量": "5.5", + "尺寸(长X宽X高mm)": "150x150x200", + "单机装配数量": "4", + "随机装配数量(90天)_舰上": "4", + "随机装配数量(90天)_基地": "4", + "远航配备数量(180)": "16", + "是否可修_是": true, + "是否可修_否": "", + "实物图片电子文档名称": "", + "MTBF(b)": "18000", + "生成厂家": "中国船舶工业", + "出厂日期": "2023-07-01 00:00:00", + "供货周期(天)": "50", + "有效期(月)": "36", + "使用寿命(h)": "35000", + "备件箱号": "C-05", + "储存要求_环境": "密封包装,温度-10~50°C,湿度≤65%", + "储存要求_期限": "36个月", + "停产后供应方式": "提供同类替代产品", + "备注": "需定期清理积碳" + }} + }} + ], + "relationships": [ + {{ + "type": "存储备用", + "from_entity": "舰船主发动机", + "to_entity": "排气阀" + }} + ] +}} + +【表格数据】 +text +""" + +prompt_guzhanghuizong = """ +你是一个信息抽取模型。 +请从给定的表格结构化 JSON 中,抽取【实体】和【实体关系】。 +【抽取要求】 +1. 仅基于输入内容,不允许编造 +2. 实体类型只有设备、系统、故障、舰艇和修理方案 +其中故障类实体主要包括以下属性:"名称", "故障原因", "故障影响", "故障类型", "发生时间", "处置情况", "修复情况" +设备类实体主要包括以下属性:"名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间", "运行时间", "运行条件" +系统类实体主要包括以下属性:"名称", "技术责任单位", "生产单位", "级别" +舰艇类实体主要包括以下属性:"名称", "型号", "舷号", "设计单位", "总装工厂", "所属部队" +修理方案类实体主要包括以下属性:"名称", "修理人员", "修理时间", "修理工具", "备品备件", "修理类型", "维修项目" +一般故障类实体的"名称"属性来源于"故障描述"字段,"故障原因"属性来源于"故障原因分析"字段,发生时间对应故障发现时间 +设备类和系统类实体中"名称"来源于"故障描述"中所提到的实体,所以你应该仔细判断是否存在相关的设备和系统实体名称,进行属性填充,型号对应于故障装备型号 +船舰型号、船舰舷号对应于舰艇类实体的"名称", "型号", "舷号",即名称和型号都为舰艇型号,弦号对应于船舰舷号,列装单位建立对应的新字段 +修理方案中名称属性主要对应更换器材字段内容,修理人员和所用仪器列表分别对应于"修理人员"和"修理工具"属性 +3. 关系主要是: +{ + "包含": ["舰艇包含系统", "系统包含设备", "设备包含零部件", "修理包含维修项目"], + "解决": ["修理方案解决故障"], + "具有": ["设备具有故障", "零部件具有故障"] +} +4. 不要增加没有必要的属性,如果某些属性为空,也不要随意添加 +5. 输出格式要求: +只输出纯JSON,不要任何其他文本、解释或Markdown。结构如下: +{{ + "entities": [ + {{ + "type": "设备", + "properties": {{ + "名称": "通信风冷设备", + "型号": "FL-2000", + "技术责任单位": "701所", + "生产单位": "沪东重机", + "技术状态": "正常", + "生产日期": "2021-08", + "启用时间": "2022-01", + "运行时间": "5000小时", + "运行条件": "舱内通风良好,无腐蚀性气体" + }} + }}, + {{ + "type": "故障", + "properties": {{ + "故障现象": "设备表面温度超过80℃", + "故障原因": "散热风扇停转", + "故障影响": "导致通信设备降频", + "故障类型": "硬件故障", + "发生时间": "2024-11-15", + "处置情况": "切换备用风机", + "修复情况": "更换风扇电机" + }} + }} + ], + "relationships": [ + {{ + "type": "包含", + "from_entity": "通信风冷设备", + "to_entity": "风冷装置" + }}, + {{ + "type": "具有", + "from_entity": "风冷装置", + "to_entity": "风冷装置过热" + }} + ] +}} + +示例: +输入为: +[ + { + "content": { + "序号": "1", + "故障描述": "火控雷达显示数据异常,与实际值偏差较大", + "故障发现时间": "2025-02-17 08:41", + "故障装备型号": "FCR-3202", + "船舰型号": "052D型驱逐舰", + "船舰舷号": "115", + "列装单位": "东海舰队某驱逐舰支队", + "修理单位": "舰队某机动修理队", + "修理人员": "何军", + "所用仪器列表": "导航系统校准仪,GPS模拟器,惯性导航测试仪", + "更换器材": "燃油滤清器,机油泵,传动齿轮", + "故障原因分析": "电压波动造成电子元件损坏", + "修理用时": "4小时34分钟", + "修后体会": "故障排除彻底,设备运行稳定,各项参数正常", + "其他": "建议定期进行设备全面检测,提前发现隐患", + "图片": "待上传" + } + }, + { + "content": { + "序号": "79", + "故障描述": "雷达系统显示数据异常,与实际值偏差较大", + "故障发现时间": "2025-08-25 15:23", + "故障装备型号": "RD-8856", + "船舰型号": "052D型驱逐舰", + "船舰舷号": "117", + "列装单位": "南海舰队某护卫舰支队", + "修理单位": "北海舰队装备保障大队", + "修理人员": "王强,马丽,胡琳", + "所用仪器列表": "导航系统校准仪,GPS模拟器,惯性导航测试仪", + "更换器材": "雷达天线,发射模块,电源板", + "故障原因分析": "使用环境恶劣,盐雾腐蚀部件", + "修理用时": "6小时38分钟", + "修后体会": "更换部件质量良好,设备性能恢复至出厂水平", + "其他": "设备已连续工作1800小时,建议适当停机保养", + "图片": "待上传" + } + } +] + +输出为: +{{ + "entities": [ + {{ + "type": "舰艇", + "properties": {{ + "名称": "052D型驱逐舰_115", + "型号": "052D型驱逐舰", + "舷号": "115", + "设计单位": "", + "总装工厂": "", + "所属部队": "", + "列装单位": "东海舰队某驱逐舰支队" + }} + }}, + {{ + "type": "设备", + "properties": {{ + "名称": "火控雷达", + "型号": "FCR-3202", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + }} + }}, + {{ + "type": "故障", + "properties": {{ + "名称": "火控雷达显示数据异常,与实际值偏差较大", + "故障原因": "电压波动造成电子元件损坏", + "故障影响": "", + "故障类型": "", + "发生时间": "2025-02-17 08:41", + "处置情况": "", + "修复情况": "" + }} + }}, + {{ + "type": "修理方案", + "properties": {{ + "名称": "燃油滤清器,机油泵,传动齿轮", + "修理人员": "何军", + "修理时间": "", + "修理工具": "导航系统校准仪,GPS模拟器,惯性导航测试仪", + "备品备件": "", + "修理类型": "", + "维修项目": "", + "修后体会": "故障排除彻底,设备运行稳定,各项参数正常", + "修理用时": "4小时34分钟", + "修理单位": "舰队某机动修理队" + }} + }}, + {{ + "type": "舰艇", + "properties": {{ + "名称": "052D型驱逐舰_117", + "型号": "052D型驱逐舰", + "舷号": "117", + "设计单位": "", + "总装工厂": "", + "所属部队": "", + "列装单位": "南海舰队某护卫舰支队" + }} + }}, + {{ + "type": "设备", + "properties": {{ + "名称": "雷达系统", + "型号": "RD-8856", + "技术责任单位": "", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + }} + }}, + {{ + "type": "故障", + "properties": {{ + "名称": "雷达系统显示数据异常,与实际值偏差较大", + "故障原因": "使用环境恶劣,盐雾腐蚀部件", + "故障影响": "", + "故障类型": "", + "发生时间": "2025-08-25 15:23", + "处置情况": "", + "修复情况": "" + }} + }}, + {{ + "type": "修理方案", + "properties": {{ + "名称": "雷达天线,发射模块,电源板", + "修理人员": "王强,马丽,胡琳", + "修理时间": "", + "修理工具": "导航系统校准仪,GPS模拟器,惯性导航测试仪", + "备品备件": "", + "修理类型": "", + "维修项目": "", + "修后体会": "更换部件质量良好,设备性能恢复至出厂水平", + "修理用时": "6小时38分钟", + "修理单位": "北海舰队装备保障大队" + }} + }} + ], + "relationships": [ + {{ + "type": "包含", + "from_entity": "052D型驱逐舰", + "to_entity": "火控雷达" + }}, + {{ + "type": "具有", + "from_entity": "火控雷达", + "to_entity": "火控雷达显示数据异常,与实际值偏差较大" + }}, + {{ + "type": "解决", + "from_entity": "燃油滤清器,机油泵,传动齿轮", + "to_entity": "火控雷达显示数据异常,与实际值偏差较大" + }}, + {{ + "type": "包含", + "from_entity": "052D型驱逐舰_117", + "to_entity": "雷达系统" + }}, + {{ + "type": "具有", + "from_entity": "雷达系统", + "to_entity": "雷达系统显示数据异常,与实际值偏差较大" + }}, + {{ + "type": "解决", + "from_entity": "雷达天线,发射模块,电源板", + "to_entity": "雷达系统显示数据异常,与实际值偏差较大" + }} + ] +}} + +输入文本: +text +""" + diff --git a/kg_build_v2/excel_to_json.py b/kg_build_v2/excel_to_json.py new file mode 100644 index 0000000..292110b --- /dev/null +++ b/kg_build_v2/excel_to_json.py @@ -0,0 +1,521 @@ +import json +import logging +from datetime import datetime +from typing import Optional +import requests +from collections import defaultdict + +import traceback +import logging +import pandas as pd +from openpyxl import load_workbook +import json +import os +# ====================== +# 日志 +# ====================== +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + +from openai import OpenAI + +import re + +logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' +) +logger = logging.getLogger(__name__) + +def is_data_row(row): + """ + 判断是否为数据行 + 数据行的特征:第1列包含数字 + + Args: + row (dict): 包含行数据的字典,格式为 {"content": {"列号": "值", ...}} + + Returns: + bool: 如果是数据行返回True,否则返回False + """ + try: + v = row["content"].get("1", "") + result = isinstance(v, str) and v.strip().isdigit() + logger.debug(f"is_data_row: value='{v}', result={result}") + return result + except Exception as e: + logger.error(f"Error in is_data_row: {e}, row: {row}") + return False + + +def is_field_row(row): + """ + 判断是否为字段行 + 字段行的特征:至少有5个值,且超过90%的值不是数字,根据环境处理 + + Args: + row (dict): 包含行数据的字典 + + Returns: + bool: 如果是字段行返回True,否则返回False + """ + try: + values = list(row["content"].values()) + if len(values) < 5: + logger.debug(f"is_field_row: less than 5 values, returning False") + return False + non_digit = sum(1 for v in values if isinstance(v, str) and not v.strip().isdigit()) + result = non_digit / len(values) > 0.9 + logger.debug(f"is_field_row: non_digit_ratio={non_digit / len(values)}, result={result}") + return result + except Exception as e: + logger.error(f"Error in is_field_row: {e}, row: {row}") + return False + + +def is_header_row(row): + """ + 判断是否为表头行 + 表头行的特征:列数不超过4个,且不是字段行或数据行,根据环境处理 + + Args: + row (dict): 包含行数据的字典 + + Returns: + bool: 如果是表头行返回True,否则返回False + """ + try: + content_len = len(row["content"]) + field_result = is_field_row(row) + data_result = is_data_row(row) + + result = content_len <= 4 and not field_result and not data_result + logger.debug(f"is_header_row: content_len={content_len}, is_field={field_result}, is_data={data_result}, result={result}") + return result + except Exception as e: + logger.error(f"Error in is_header_row: {e}, row: {row}") + return False + +# ===================================================== +# 多级表头 +# ===================================================== + +def collect_field_rows(rows, start_idx): + """ + 从指定索引开始收集连续的字段行 + + Args: + rows (list): 行数据列表 + start_idx (int): 开始收集的索引 + + Returns: + tuple: (字段行列表, 下一个非字段行的索引) + """ + try: + field_rows = [] + i = start_idx + initial_i = start_idx + while i < len(rows) and is_field_row(rows[i]): + field_rows.append(rows[i]["content"]) + i += 1 + logger.info(f"collect_field_rows: collected {len(field_rows)} field rows from index {initial_i} to {i}") + return field_rows, i + except Exception as e: + logger.error(f"Error in collect_field_rows: {e}") + return [], start_idx + +def dedup_path(path): + """ + 去除路径中的重复元素,保持顺序 + + Args: + path (list): 路径列表 + + Returns: + list: 去重后的路径列表 + """ + try: + new_path = [] + for p in path: + if p and (not new_path or new_path[-1] != p): + new_path.append(p) + logger.debug(f"dedup_path: original={path}, deduplicated={new_path}") + return new_path + except Exception as e: + logger.error(f"Error in dedup_path: {e}, path: {path}") + return [] + +def build_field_paths(field_rows): + """ + 构建字段路径映射,将列号映射到字段路径 + + Args: + field_rows (list): 字段行列表 + + Returns: + defaultdict: 列号到字段路径的映射 + """ + try: + field_paths = defaultdict(list) + for row_idx, row in enumerate(field_rows): + for col, name in row.items(): + if name: + field_paths[col].append(name) + + for col in field_paths: + field_paths[col] = dedup_path(field_paths[col]) + + logger.info(f"build_field_paths: processed {len(field_paths)} columns from {len(field_rows)} rows") + return field_paths + except Exception as e: + logger.error(f"Error in build_field_paths: {e}") + return defaultdict(list) + + +# ===================================================== +# 值 & 结构处理 +# ===================================================== + +def normalize_value(value): + """ + 标准化值,将特殊值转换为对应格式 + + Args: + value: 待处理的值 + + Returns: + 处理后的值 + """ + try: + if value == "√": + logger.debug(f"normalize_value: converting '√' to True") + return True + if value in ("", None): + logger.debug(f"normalize_value: empty value converted to empty string") + return "" + logger.debug(f"normalize_value: value={value} unchanged") + return value + except Exception as e: + logger.error(f"Error in normalize_value: {e}, value: {value}") + return "" + + +def insert_by_path(target, path, value): + """ + 根据路径在目标对象中插入值 + + Args: + target (dict): 目标字典 + path (list): 插入路径 + value: 待插入的值 + """ + try: + if not path: + logger.warning("insert_by_path: empty path provided") + return + + cur = target + for key in path[:-1]: + cur = cur.setdefault(key, {}) + cur[path[-1]] = value + logger.debug(f"insert_by_path: inserted value '{value}' at path {path}") + except Exception as e: + logger.error(f"Error in insert_by_path: {e}, target: {target}, path: {path}, value: {value}") + + +def flatten_singleton_dict(obj): + """ + 扁平化单元素字典,如果字典只有一个键且键名与值中的键名相同,则合并 + + Args: + obj: 待处理的对象 + + Returns: + 处理后的对象 + """ + try: + if not isinstance(obj, dict): + return obj + + for k in list(obj.keys()): + v = obj[k] + if isinstance(v, dict): + v = flatten_singleton_dict(v) + if len(v) == 1 and k in v: + obj[k] = v[k] + logger.debug(f"flatten_singleton_dict: flattened singleton dict for key '{k}'") + else: + obj[k] = v + return obj + except Exception as e: + logger.error(f"Error in flatten_singleton_dict: {e}, obj: {obj}") + return obj + + + + +def flatten_dict(d, parent_key='', sep='_'): + """ + 将 {"A": {"B": "1"}} 转换为 {"A_B": "1"} + """ + items = [] + for k, v in d.items(): + new_key = f"{parent_key}{sep}{k}" if parent_key else k + if isinstance(v, dict): + # 递归展开 + items.extend(flatten_dict(v, new_key, sep=sep).items()) + else: + items.append((new_key, v)) + return dict(items) + +def build_content(field_paths, row_content): + """ + 根据字段路径构建内容结构 + + Args: + field_paths (dict): 字段路径映射 + row_content (dict): 行内容数据 + + Returns: + dict: 构建的内容结构 + """ + result = {} + + for col, path in field_paths.items(): + value = normalize_value(row_content.get(col, "")) + insert_by_path(result, path, value) + + # 1. 先执行你原有的单级压缩 (解决 A -> {A: x}) + flatten_singleton_dict(result) + + # 2. 执行深度展平 (将嵌套字典转为 "键_子键" 格式) + # 我们遍历第一层,如果值是字典,则展开它 + final_result = {} + for k, v in result.items(): + if isinstance(v, dict): + # 展开子字典,并带上父级的键名作为前缀 + flattened_sub = flatten_dict(v, parent_key=k, sep='_') + final_result.update(flattened_sub) + else: + final_result[k] = v + + return final_result + + +# ===================================================== +# 主解析逻辑 +# ===================================================== + +def transform_excel_json(rows): + """ + 将Excel行数据转换为JSON格式 + + Args: + rows (list): 行数据列表 + + Returns: + list: 转换后的JSON数据列表 + """ + try: + logger.info(f"Starting transform_excel_json with {len(rows)} rows") + output = [] + i = 0 + processed_count = 0 + + while i < len(rows): + row = rows[i] + row_type = None + + if is_header_row(row): + output.append({"header": row["content"]}) + row_type = "header" + i += 1 + elif is_field_row(row): + field_rows, next_idx = collect_field_rows(rows, i) + field_paths = build_field_paths(field_rows) + i = next_idx + row_type = "field" + + while i < len(rows) and is_data_row(rows[i]): + content = build_content(field_paths, rows[i]["content"]) + output.append({"content": content}) + i += 1 + processed_count += 1 + else: + i += 1 + continue # Skip non-header, non-field, non-data rows + + logger.debug(f"Processed row {i-1}, type: {row_type}") + + logger.info(f"Completed transform_excel_json: {len(output)} items, {processed_count} data rows processed") + return output + except Exception as e: + logger.error(f"Error in transform_excel_json: {e}") + logger.error(traceback.format_exc()) + raise + + +# ===================================================== +# Excel 读取(含合并单元格) +# ===================================================== + +def read_excel_with_merged_cells(file_path: str, sheet_name: Optional[str] = None): + """ + 读取Excel文件,包括合并单元格的处理 + + Args: + file_path (str): Excel文件路径 + sheet_name (Optional[str]): 工作表名称,如果为None则使用默认表 + + Returns: + pd.DataFrame: 包含Excel数据的DataFrame + """ + try: + _, ext = os.path.splitext(file_path) + ext = ext.lower() + if ext == ".xlsx": + logger.info(f"Reading Excel file: {file_path}, sheet: {sheet_name}") + wb = load_workbook(file_path, data_only=True) + ws = wb[sheet_name] if sheet_name else wb.active + + max_row, max_col = ws.max_row, ws.max_column + logger.info(f"Excel sheet dimensions: {max_row} rows x {max_col} columns") + + data = [["" for _ in range(max_col)] for _ in range(max_row)] + + for r in range(1, max_row + 1): + for c in range(1, max_col + 1): + val = ws.cell(row=r, column=c).value + data[r - 1][c - 1] = "" if val is None else str(val).strip() + + # 处理合并单元格 + merged_count = 0 + for merged in ws.merged_cells.ranges: + tl = data[merged.min_row - 1][merged.min_col - 1] + for r in range(merged.min_row - 1, merged.max_row): + for c in range(merged.min_col - 1, merged.max_col): + data[r][c] = tl + merged_count += 1 + + logger.info(f"Processed {merged_count} merged cell ranges") + df = pd.DataFrame(data) + logger.info(f"Created DataFrame with shape {df.shape}") + return df + + else: + raise ValueError("Unsupported file format") + + except Exception as e: + logger.error(f"Error in read_excel_with_merged_cells: {e}") + logger.error(traceback.format_exc()) + raise + + + +def dataframe_to_row_json(df: pd.DataFrame): + """ + 将DataFrame转换为行JSON格式 + + Args: + df (pd.DataFrame): 源DataFrame + + Returns: + list: 行JSON格式的列表 + """ + try: + logger.info(f"Converting DataFrame to row JSON, shape: {df.shape}") + rows = [] + for idx, row in df.iterrows(): + content = { + str(col_idx + 1): val + for col_idx, val in enumerate(row) + if isinstance(val, str) and val != "" + } + if content: + rows.append({ + "row_index": idx + 1, + "content": content + }) + + logger.info(f"Converted DataFrame to {len(rows)} JSON rows") + return rows + except Exception as e: + logger.error(f"Error in dataframe_to_row_json: {e}") + logger.error(traceback.format_exc()) + raise + + +def json_to_markdown(json_data): + markdown_lines = [] + current_table_data = [] + + for entry in json_data: + # 1. 处理标题行 (Header) + if "header" in entry: + # 如果之前已经有累积的数据,先输出旧表格(防止连续多个表格的情况) + if current_table_data: + markdown_lines.extend(build_table(current_table_data)) + current_table_data = [] + + # 提取 Header 内容并格式化为标题 + header_dict = entry["header"] + # 按照您的要求,处理设备名称和型号的拼接显示 + title_parts = [v.replace(';', ' ') for v in header_dict.values()] + title = " ".join(title_parts) + markdown_lines.append(f"\n## {title}\n") + + # 2. 处理内容行 (Content) + elif "content" in entry: + current_table_data.append(entry["content"]) + + # 3. 输出最后一个表格 + if current_table_data: + markdown_lines.extend(build_table(current_table_data)) + + return "\n".join(markdown_lines) + +def build_table(data_list): + """将字典列表转换为 Markdown 表格字符串""" + if not data_list: + return [] + + lines = [] + # 提取所有键作为表头 + headers = list(data_list[0].keys()) + + # 构造表头行 + header_line = "| " + " | ".join(headers) + " |" + # 构造分割行 + separator_line = "| " + " | ".join(["---"] * len(headers)) + " |" + + lines.append(header_line) + lines.append(separator_line) + + # 构造数据行 + for item in data_list: + row_values = [] + for h in headers: + val = item.get(h, "") + # 转换布尔值为中文,处理 None 值 + if val is True: val = "是" + elif val is False or val == "": val = " " + row_values.append(str(val).replace("\n", " ")) # 避免数据内换行破坏表格结构 + + lines.append("| " + " | ".join(row_values) + " |") + + return lines + + +def excel_to_jsondata(excel_path: str,sheet_name: Optional[str] = None): + + logger.info(f"Reading Excel: {excel_path}") + df = read_excel_with_merged_cells(excel_path, sheet_name) + + rows = dataframe_to_row_json(df) + table_json = transform_excel_json(rows) + return table_json + + + + + diff --git a/kg_build_v2/extract_html.py b/kg_build_v2/extract_html.py new file mode 100644 index 0000000..ac43bde --- /dev/null +++ b/kg_build_v2/extract_html.py @@ -0,0 +1,380 @@ +import re +from typing import List, Dict,Tuple +import re +from typing import List, Tuple +def extract_repairproject_tables_html1(content: str) -> Tuple[List[str], str]: + """ + 提取所有维修表格,每个表格从特定表头开始,到下一个表头出现之前结束。 + 支持两种表头格式(含或不含 rowspan/colspan属性)。 + + :param content: 原始 HTML/文本内容 + :return: (tables: List[str], cleaned_content: str) + - tables: 所有提取到的表格块 + - cleaned_content: 仅保留第一个表格块,其余已删除 + """ + + # 定义表头的文本核心部分(不包含属性) + base_header = '' + + # 转义特殊字符,但为 rowspan/colspan 留出匹配空间 + # 我们需要匹配: \s* + ]*> \s* 操作项目 \s* \s* + \s* + ]*> + ''' + + # 查找所有起始位置(只关心 .start()) + matches = list(re.finditer(start_pattern, content, flags=re.DOTALL | re.VERBOSE)) + + if not matches: + return [], content + + # 构建每个表格的完整范围:[start_i, start_{i+1}) 或 [start_i, end) + table_ranges = [] + for i in range(len(matches)): + start_pos = matches[i].start() + if i + 1 < len(matches): + end_pos = matches[i + 1].start() # 不包含下一个表格 + else: + end_pos = len(content) # 最后一个到文档结尾 + table_ranges.append((start_pos, end_pos)) + + # 提取每个表格的 HTML 内容 + tables_html = [content[start:end] for start, end in table_ranges] + + # 构建 slices: 前100字 + 表格HTML + slices = [] + for (start, _), html in zip(table_ranges, tables_html): + prefix_start = max(0, start - 100) + prefix = content[prefix_start:start] + content = prefix + html + content = content.replace("# 操作步骤..","操作步骤..") + content = content.replace("操作步骤..","# 操作步骤") + + slices.append(content) + + # 构建 cleaned_content:只保留第一个表格(从 start0 到 end0),其余删除 + if len(table_ranges) <= 1: + cleaned = content + else: + # 保留 [0, end0) + first_end = table_ranges[0][1] + cleaned = content[:first_end] + cleaned = content + # 从后往前删除第2个及之后的表格区域 + for start, end in reversed(table_ranges[1:]): + cleaned = cleaned[:start] + cleaned[end:] + + return slices, cleaned +# if __name__ == "__main__": +# file_path = r"F:\zklnlp\HJ\hj_kg_code\file\output_caozuoshiyongsc.md" +# output_log_file = r"F:\zklnlp\HJ\code\extraction_results_wxsc.txt" # 保存结果的 txt 文件路径 + +# markdown_content = read_markdown_file(file_path) +# if markdown_content is None: +# print("无法读取 Markdown 文件,程序退出。") +# exit(1) + +# content, headers = _split_markdown(markdown_content, chunk_size=3000, chunk_overlap=100) +# # all_results,replacecontent = extract_wxindextable(wx_table,markdown_content) +# wx_tables, cleaned_wx_content = extract_repair_tables_keep_first(content=markdown_content) +# opration_tables, cleaned_opration_content = extract_operation_tables(cleaned_wx_content) +# nromaltabel,contexts,cleaned_normal_content = extract_tables(cleaned_opration_content) +# for ins in opration_tables: +# print(ins) +# print(111111111111111) + diff --git a/kgbuild/table_json_extract.py b/kgbuild/table_json_extract.py new file mode 100644 index 0000000..9845284 --- /dev/null +++ b/kgbuild/table_json_extract.py @@ -0,0 +1,466 @@ +from openai import OpenAI +from typing import List, Dict +import json +import time +from modelsAPI.model_api import OpenaiAPI + +table1 = ["组成表:表中描述设备主要由哪些子设备或者零部件等组成,同时介绍各组成部分的功能及数量等其它参数", + "基本参数表:表中描述设备的基本技术指标,例如功能特性(如动力要求、功率、压力、容量等)、能力限制(如推力、速度、回转半径等)、额定输出(如瓦特数、电压、马力、流量等)、环境特性(如环境温度、单位散热量、湿度限制等)、外形尺寸、重量等", + "操作使用项目索引表:描述操作使用项目,主要罗列了各个操作使用项目的操作使用项目编号、名称、页码等信息,便于查找和引用", + "操作使用项目表:对操作使用项目进行详细描述,包括操作的操作使用项目编号、名称、安全注意事项、保障设施、保障设备(工具)、人力人员需求、操作步骤等内容,要求按条目形式进行描述,需辅以图表、照片及三维动画、视频等直观形式进行描述。", + "布置情况表:表中描述设备在舰艇上具体位置,包括设备名称、位置信息等内容", + "维修项目索引表:表中描述维修项目,主要罗列了各个维修项目的维修项目编号、组成编码、名称、维修项目、维修间隔期、维修级别和页码等信息,便于查找和引用", + "常见故障表:表中列出设备本身可能出现的所有故障现象,并对故障原因进行描述,给出处理相应故障的维修项目的编号和名称;包括故障现象、故障原因和维修项目。", + "维修项目表:对维修项目进行详细描述,包括维修项目编号、名称、维修项目、维修间隔期、维修级别、安全防护要求、保障设施、保障设备(工具)、人力人员需求、维修步骤等信息", + "工具信息汇总表:列出设备维修过程中所有维修项目所需用到的所有工具、夹具、设备的基本信息,包括名称、规格/型号、生产单位、通用/专用、体积、重量、参考价、存放位置等信息", + "消耗材料信息汇总表:列出设备维修过程中所有维修项目所需用到的所有消耗材料的基本信息,包括名称、牌号/品级/规格、生产单位、备注等信息", + "其他表格:不符合上述表格要求为其他表格" + ] +table = ["组成表","基本参数表","操作使用项目索引表","操作使用项目表","操作程序表","应急操作表","使用保障设备需求表","布置情况","维修项目索引表","常见故障表","维修项目表" + ,"工具信息汇总表","消耗材料信息汇总表","非正常运行条件表" + ] + +# prompt = """ +# 你是一个专业的文档结构化助手。请根据以下输入,将 HTML 表格转换为标准 JSON 格式。 +# 【要求】 +# 1. 解析表格的表头(第一行 中的
维修项目编号组成编码名称维修项目维修间隔期 等情况 + # 这里使用一个更灵活的正则:匹配 ' 字符(非贪婪),直到 > + # 这种写法比硬编码两种情况更健壮,能兼容属性顺序变化或额外空格 + escaped_base = re.escape('') + + # 构建针对每个单元格的正则片段 + # 匹配 "维修项目编号" 前的 + cell_pattern = r']*>' + header_pattern = ( + escaped_base + + cell_pattern + re.escape('维修项目编号') + r'' + + cell_pattern + re.escape('组成编码') + r'' + + cell_pattern + re.escape('名称') + r'' + + cell_pattern + re.escape('维修项目') + r'' + + cell_pattern + re.escape('维修间隔期') + r'' + ) + + # 编译正则,用于查找表格开始位置 + pattern = re.compile(header_pattern, re.DOTALL) + matches = list(pattern.finditer(content)) + + tables = [] + if not matches: + return tables, content + + # 提取所有表格块 + for i, match in enumerate(matches): + start_pos = match.start() + + # 确定结束位置:下一个表格的开始,或者文本末尾 + if i < len(matches) - 1: + end_pos = matches[i + 1].start() + else: + end_pos = len(content) + + table_content = content[start_pos:end_pos] + tables.append(table_content) + + # 构建 cleaned_content:只保留第一个表格块 + # 即截断到第二个表格开始的位置(如果有的话) + if len(matches) > 1: + cleaned_content = content[:matches[1].start()] + else: + cleaned_content = content # 如果只有一个表格,原内容即为清理后内容(因为后面没有表格了) + + return tables, cleaned_content + +#提取所有维修项目表的html源码 +def extract_repairproject_tables_html(content: str) -> tuple[list[str], str]: + """ + 提取所有维修表格,每个表格从 start_literal 开始,到下一个 start_literal 出现之前结束。 + + :param content: 原始 HTML/文本内容 + :return: (tables: List[str], cleaned_content: str) + - tables: 所有提取到的表格块(包含 start_literal 开头的内容) + - cleaned_content: 原文中仅保留第一个表格块,其余已删除 + """ + # 构建起始模式 + start_literal = ( + '
' + '' + '' + '' + '' + '' + ) or ( + '
维修项目编号组成编码名称维修项目维修间隔期
' + '' + '' + '' + '' + '' + ) + + # 使用 finditer 查找所有匹配的起始位置 + pattern = re.compile(re.escape(start_literal), re.DOTALL) + matches = list(pattern.finditer(content)) + + tables = [] + if not matches: + # 没有找到表格,返回空列表和原内容 + return tables, content + + # 提取所有表格 + for i, match in enumerate(matches): + start_pos = match.start() + # 如果不是最后一个表格,结束位置是下一个表格的开始位置 + if i < len(matches) - 1: + end_pos = matches[i + 1].start() + else: + # 如果是最后一个表格,结束位置是文本末尾 + end_pos = len(content) + + table_content = content[start_pos:end_pos] + tables.append(table_content) + + # 构建 cleaned_content:只保留第一个表格 + first_table_end = len(content) + if len(matches) > 1: + first_table_end = matches[1].start() + + cleaned_content = content[:first_table_end] + + return tables, cleaned_content + + + +def extract_operation_tables_html(content: str) -> Tuple[List[str], str]: + """ + 提取所有以“项目编号 + 操作项目”为表头的操作表格。 + 每个表格的范围:从匹配的 start_pattern 开始,到下一个 start_pattern 之前(或文档结尾)。 + 同时生成切片:「全文开头前两行 + 前100字上下文 + 表格内容」。 + cleaned_content 中仅保留第一个表格(原始形式),其余删除。 + """ + # 提取全文开头的前两行(保留换行符) + lines = content.splitlines(keepends=True) + first_two_lines = ''.join(lines[:2]) if len(lines) >= 2 else ''.join(lines) + + # 起始模式(修复版) + start_pattern = r''' + ]*> \s* + ]*> \s* + ]*> \s* 项目编号 \s* \s* + ]*> \s* 操作项目 \s* \s* + \s* + ]*> + ''' + + # 查找所有起始位置 + matches = list(re.finditer(start_pattern, content, flags=re.DOTALL | re.VERBOSE)) + + if not matches: + return [], content + + # 构建每个表格的完整范围:[start_i, start_{i+1}) 或 [start_i, end) + table_ranges = [] + for i in range(len(matches)): + start_pos = matches[i].start() + if i + 1 < len(matches): + end_pos = matches[i + 1].start() + else: + end_pos = len(content) + table_ranges.append((start_pos, end_pos)) + + # 提取每个表格的 HTML 内容 + tables_html = [content[start:end] for start, end in table_ranges] + + # 构建 slices: 前两行 + 前100字 + 表格HTML + slices = [] + for (start, _), html in zip(table_ranges, tables_html): + prefix_start = max(0, start - 100) + local_prefix = content[prefix_start:start] + full_slice = first_two_lines + local_prefix + html + + # 修复标题格式(根据你的需求) + full_slice = full_slice.replace("# 操作步骤..", "操作步骤..") + full_slice = full_slice.replace("操作步骤..", "# 操作步骤") + + slices.append(full_slice) + + # 构建 cleaned_content:只保留第一个表格,其余删除 + cleaned = content + if len(table_ranges) > 1: + # 从后往前删除第2个及之后的表格 + for start, end in reversed(table_ranges[1:]): + cleaned = cleaned[:start] + cleaned[end:] + + return slices, cleaned + + +def extract_cases(md_content): + """ + 从 Markdown 内容中提取所有以 '# 数字.' 开头的案例。 + 每个案例从 '# X.XXX' 开始,到下一个 '# Y.YYY' 或末尾结束。 + """ + # 正则表达式匹配以 "# 数字." 开头的标题 + pattern = r'#\s*(\d+)\.\s*(.*?)\n(.*?)(?=(?:#\s*\d+\.\s*.*?))|$' + + # 使用 re.DOTALL 让 . 匹配换行符 + matches = re.findall(pattern, md_content, re.DOTALL | re.MULTILINE) + + cases = [] + for match in matches: + case_number = match[0] # 如 "1", "2" + title_text = match[1] # 如 "XXX 型号 A 设备 A 故障" + content = match[2] # 该案例的具体内容 + + # 组装完整案例 + case_text = f"# {case_number}.{title_text}\n{content}" + cases.append(case_text) + + return cases + +def extract_fault_sections(text): + """ + 从文本中提取以“故障名称:”开头的段落,去除最后一行。 + """ + pattern = r'故障名称:[\s\S]*?(?=故障名称:|$)' + matches = re.findall(pattern, text, re.IGNORECASE) + + results = [] + for match in matches: + match = match.strip() + if match: + # 按行分割,去除最后一行,再合并 + lines = match.split('\n') + if len(lines) > 1: + # 去除最后一行 + modified_content = '\n'.join(lines[:-1]) + results.append(modified_content.strip()) + # 如果只有一行,可以根据需要决定是否保留 + + return results + +def extract_by_unit(text): + """ + 从文本中提取以“单位:”开头的段落,去除最后一行。 + """ + pattern = r'(?=单位:)[\s\S]*?(?=单位:|$)' + matches = re.findall(pattern, text, re.IGNORECASE) + + results = [] + for match in matches: + match = match.strip() + if match: + # 按行分割,去除最后一行,再合并 + lines = match.split('\n') + if len(lines) > 1: + # 去除最后一行 + modified_content = '\n'.join(lines[:-1]) + results.append(modified_content.strip()) + + return results + + +def extract_tables(content: str, start_len: int = 300,end_len:int = 50) -> Tuple[List[str], List[str], str]: + """ + 提取所有 HTML 表格及其前后上下文(各最多 context_len 个字符),并从原文中移除表格及上下文。 + + :param content: 原始 HTML/文本内容 + :param context_len: 上下文长度(默认 100 字符) + :return: (tables: List[str], contexts: List[str], cleaned_content: str) + 其中 contexts[i] 是 tables[i] 对应的 "<前文> +
组成编码名称维修项目维修间隔期
... + <后文>" 字符串 + """ + # 构造正则:捕获最多 context_len 个任意字符(非贪婪)+ table 标签 + 最多 context_len 个任意字符 + pattern = rf'(.{{0,{start_len}}}?)(]*>.*?
)(.{{0,{end_len}}})' + + matches = re.finditer(pattern, content, flags=re.DOTALL | re.IGNORECASE) + + tables = [] + contexts = [] + cleaned_content = content + + # 从后往前替换,避免位置偏移问题 + for match in reversed(list(matches)): + pre_context = match.group(1) + table = match.group(2) + post_context = match.group(3) + + full_context = pre_context + table + post_context + + contexts.append(full_context) + tables.append(table) + + # 从原文中删除整个上下文片段(包括前后文和表格) + cleaned_content = cleaned_content[:match.start()] + cleaned_content[match.end():] + + # 因为是从后往前删的,所以 tables 和 contexts 顺序是反的,需要反转回来 + tables.reverse() + contexts.reverse() + + return tables, contexts, cleaned_content + +def extract_guzhang_tables(text: str, context_length: int = 100) -> List[str]: + header1 = '' + header2 = '
序号故障现象故障原因维修项目
' + + header1_esc = re.escape(header1) + header2_esc = re.escape(header2) + + # 匹配:前文(最多 context_length) + 表头 + 表格内容 + 结尾 + pattern = re.compile( + rf'(.{{0,{context_length}}}?)(?:{header1_esc}|{header2_esc})([\s\S]*?
序号故障现象故障原因维修项目
)', + re.DOTALL + ) + + results = [] + for match in pattern.finditer(text): + before = match.group(1) # 前文 + body_and_end = match.group(2) # 表格内容 + 结尾 + + # 判断是哪个表头(从原文中取) + pos = match.start(2) # 表头开始位置 + if text[pos:pos + len(header1)] == header1: + table_code = header1 + body_and_end + else: + table_code = header2 + body_and_end + + result_str = before + table_code + results.append(result_str) + + return results + + +def extract_content_slices(text, keywords, context_len=100): + # 转义关键词用于正则 + escaped = [re.escape(kw) for kw in keywords] + pattern = r'^\s*#?\s*(' + '|'.join(escaped) + ')' + compiled = re.compile(pattern, re.MULTILINE) # 注意:这里加了 MULTILINE 以确保 ^ 能匹配每行开头 + + lines = text.splitlines(keepends=True) # keepends=True 保留换行符,用于精确计算位置 + if not lines: + return [] + + contents = [] + current_content = [] + in_section = False + section_start_idx = 0 # 记录当前段落在原文中的字符索引位置 + + # 遍历每一行 + for line in lines: + if compiled.match(line): + # 遇到新关键词 + if in_section and current_content: + # 1. 拼接当前内容 + content_str = ''.join(current_content) + + # 2. 获取前 context_len 个字符的上下文 + # 确保不越界 + start_context = max(0, section_start_idx - context_len) + prefix_context = text[start_context:section_start_idx] + + # 3. 组合结果:上下文 + 内容 + final_slice = prefix_context + content_str + contents.append(final_slice) + + # 重置,准备下一段 + current_content = [] + + # 开启新段落 + in_section = True + # 更新当前段落的起始位置(即这一行在原文中的位置) + # 这里简化处理:通过查找来定位(因为直接计算索引在复杂文本中容易出错) + # find 从 section_start_idx 开始找,避免重复匹配 + temp_pos = text.find(line, section_start_idx) + if temp_pos != -1: + section_start_idx = temp_pos + + elif in_section: + current_content.append(line) + + # 处理最后一个段落 + if in_section and current_content: + content_str = ''.join(current_content) + start_context = max(0, section_start_idx - context_len) + prefix_context = text[start_context:section_start_idx] + final_slice = prefix_context + content_str + contents.append(final_slice) + + return contents + diff --git a/kg_build_v2/extract_operation_node_rela.py b/kg_build_v2/extract_operation_node_rela.py new file mode 100644 index 0000000..24e82d7 --- /dev/null +++ b/kg_build_v2/extract_operation_node_rela.py @@ -0,0 +1,150 @@ + +import re +from openai import OpenAI +from typing import List, Dict +import json +import time +import os +from kg_build_v2.extract_html import extract_repairproject_tables_html,extract_operation_tables_html,extract_tables +from kg_build_v2.Prompt import prompt_extract_operation_node_rela +from modelsAPI.model_api import OpenaiAPI + +def read_markdown_file(file_path): + """ + 读取 Markdown 文件并返回其全部内容作为字符串。 + + 参数: + file_path (str): Markdown 文件的路径(支持相对或绝对路径) + + 返回: + str 或 None: 成功时返回文件内容;出错时返回 None + """ + try: + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + return content + except FileNotFoundError: + print(f"错误:文件未找到 - {file_path}") + except PermissionError: + print(f"错误:没有权限读取文件 - {file_path}") + except UnicodeDecodeError: + print(f"错误:文件编码不是 UTF-8,无法读取 - {file_path}") + except Exception as e: + print(f"读取文件时发生未知错误: {e}") + return None + + +def safe_json_loads(s: str): + try: + return json.loads(s) + except json.JSONDecodeError as e: + # 尝试修复常见问题 + s = s.replace("\\n", "\\\n").replace("\r", "\\r").replace("\t", "\\t") + # 或者直接清理非法字符 + s = re.sub(r'[\x00-\x1f\x7f]', '', s) # 移除控制字符 + try: + return json.loads(s) + except: + raise e + +def extract_entity_relation(chunks, skip_first=False): + """ + 批量处理一个文档的多个切片(chunks),每个切片调用大模型结构化,并返回全部结果。 + + :param chunks: List[str] - 同一文档的多个文本切片 + :param skip_first: bool - 是否跳过第一个表格块(默认True) + :return: List[Dict] - 结构化结果列表 + """ + all_results = [] + all_entities = [] + all_relationships = [] + # 确定起始索引 + start_idx = 1 if skip_first else 0 + + for idx, block in enumerate(chunks, 1): + # 跳过第一个表格 + if skip_first and idx == 1: + print(f"=== 跳过第 {idx} 个表格块(首个表格) ===\n") + continue + + print(f"=== 操作项目 Block {idx} ===") + print(block[:100]) # 只打印前500字符 + print("\n" + "="*60 + "\n") + + final_prompt = prompt_extract_operation_node_rela.format(text=block) + + raw_response = OpenaiAPI.openai_chat(final_prompt,timeout=180) + + if raw_response is None: + print(f" ⚠️ 第 {idx} 切片 API 调用失败") + continue + + + # 尝试解析 JSON + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = safe_json_loads(cleaned) + entities = json_result.get("entities", []) + relationships = json_result.get("relationships", []) + for entity in entities: + # 确保 entity 有 "properties" 键,且其值为字典 + if "properties" in entity and isinstance(entity["properties"], dict): + entity["properties"]["切片"] = block + # 打印美化版 + all_entities.extend(entities) + all_relationships.extend(relationships) + # 将当前结果追加到总列表 + # all_results.append({ + # "entities": entities, # 已添加切片属性的实体列表 + # "relationships": relationships, # 关系列表 + # }) + + + except Exception as e: + print(f" ⚠️ 第 {idx} 切片 JSON 解析失败: {e}") + print(f" 原始响应: {repr(raw_response[:500])}") + json_result = [] + continue + result = { + "entities": all_entities, + "relationships": all_relationships + } + + return result + + + + + +def get_operation_node_rela(mdcontent): + print("开始提取操作项目表实体和关系") + chunks_repair, cleaned_content = extract_repairproject_tables_html(mdcontent) + chunks_operation, cleaned_content_operation = extract_operation_tables_html(cleaned_content) + + + if len(chunks_operation) > 0: + print(f"找到 {len(chunks_operation)} 个操作项目表格块") + result = extract_entity_relation(chunks=chunks_operation) + return result + else: + return [] + + + +# if __name__ == "__main__": +# input_directory = r"F:\zklnlp\HJ\hj_kg_code\kgrag\table_extract\files\操作使用手册_shenghna_output11_full_content.md" + +# # 调用目录处理函数 +# mdcontent = read_markdown_file(input_directory) + +# if mdcontent is None: +# print("无法读取文件,程序退出") +# exit(1) + +# res = get_operation_node_rela(mdcontent=mdcontent) +# print(len(res)) diff --git a/kg_build_v2/extract_repair_node_rela.py b/kg_build_v2/extract_repair_node_rela.py new file mode 100644 index 0000000..cfdeda7 --- /dev/null +++ b/kg_build_v2/extract_repair_node_rela.py @@ -0,0 +1,154 @@ + +import re +from openai import OpenAI +from typing import List, Dict +import json +import time +import os +from kg_build_v2.extract_html import extract_repairproject_tables_html,extract_operation_tables_html,extract_tables +from kg_build_v2.Prompt import prompt_extract_repair_node_rela +from modelsAPI.model_api import OpenaiAPI + +def read_markdown_file(file_path): + """ + 读取 Markdown 文件并返回其全部内容作为字符串。 + + 参数: + file_path (str): Markdown 文件的路径(支持相对或绝对路径) + + 返回: + str 或 None: 成功时返回文件内容;出错时返回 None + """ + try: + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + return content + except FileNotFoundError: + print(f"错误:文件未找到 - {file_path}") + except PermissionError: + print(f"错误:没有权限读取文件 - {file_path}") + except UnicodeDecodeError: + print(f"错误:文件编码不是 UTF-8,无法读取 - {file_path}") + except Exception as e: + print(f"读取文件时发生未知错误: {e}") + return None + + +def safe_json_loads(s: str): + try: + return json.loads(s) + except json.JSONDecodeError as e: + # 尝试修复常见问题 + s = s.replace("\\n", "\\\n").replace("\r", "\\r").replace("\t", "\\t") + # 或者直接清理非法字符 + s = re.sub(r'[\x00-\x1f\x7f]', '', s) # 移除控制字符 + try: + return json.loads(s) + except: + raise e + +def extract_wxindextable(chunks, skip_first=True): + """ + 批量处理一个文档的多个切片(chunks),每个切片调用大模型结构化,并返回全部结果。 + + :param chunks: List[str] - 同一文档的多个文本切片 + :param skip_first: bool - 是否跳过第一个表格块(默认True) + :return: List[Dict] - 结构化结果列表 + """ + all_results = [] + + # 确定起始索引 + start_idx = 1 if skip_first else 0 + + for idx, block in enumerate(chunks, 1): + # 跳过第一个表格 + if skip_first and idx == 1: + print(f"=== 跳过第 {idx} 个表格块(首个表格) ===\n") + continue + + print(f"=== 维修项目 Block {idx} ===") + print(block[:100]) # 只打印前500字符 + print("\n" + "="*60 + "\n") + + final_prompt = prompt_extract_repair_node_rela.format(text=block) + + raw_response = OpenaiAPI.openai_chat(final_prompt,timeout=180) + + if raw_response is None: + print(f" ⚠️ 第 {idx} 切片 API 调用失败") + continue + + + # 尝试解析 JSON + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = safe_json_loads(cleaned) + if "properties" in json_result: + json_result["properties"]["切片"] = block # 添加原始文本块 + else: + print(f" ⚠️ 第 {idx} 切片的 JSON 中缺少 'properties' 字段,跳过添加切片") + # 打印美化版 + all_results.append(json_result) + + except Exception as e: + print(f" ⚠️ 第 {idx} 切片 JSON 解析失败: {e}") + print(f" 原始响应: {repr(raw_response[:500])}") + json_result = None + continue + + return all_results + +# def openai_chat(query: str, model="Qwen3-32B"): +# """调用OpenAI API""" +# try: +# client = OpenAI( +# api_key="none", +# base_url="http://192.168.0.46:59800/v1" +# ) + +# response = client.chat.completions.create( +# model=model, +# messages=[ +# {"role": "user", "content": query}, +# ], +# temperature=0.1, +# stream=False, +# response_format={"type": "json_object"}, +# extra_body={"chat_template_kwargs": {"enable_thinking": False}} +# ) +# return response.choices[0].message.content +# except Exception as e: +# print(f"调用OpenAI API时出错: {e}") +# return None + + + +def get_repair_node_rela(mdcontent): + print("开始提取维修项目表实体和关系") + chunks, cleaned_content = extract_repairproject_tables_html(mdcontent) + print(f"找到 {len(chunks)} 个维修表格块") + if len(chunks) > 0: + result = extract_wxindextable(chunks=chunks) + return result + else: + return [] + + + +# if __name__ == "__main__": +# input_directory = "F:\zklnlp\HJ\hj_kg_code\kgrag\extract_html_json\测试wx手册_shenghna_output11_full_content.md" + +# # 调用目录处理函数 +# mdcontent = read_markdown_file(input_directory) + +# if mdcontent is None: +# print("无法读取文件,程序退出") +# exit(1) + +# result = get_repair_node_rela(mdcontent=mdcontent) +# print(len(result)) diff --git a/kg_build_v2/extract_wxanli_node_rela.py b/kg_build_v2/extract_wxanli_node_rela.py new file mode 100644 index 0000000..1cdd4c9 --- /dev/null +++ b/kg_build_v2/extract_wxanli_node_rela.py @@ -0,0 +1,166 @@ +import json +from openai import OpenAI +from kg_build_v2.Prompt import Prompt_anli +from kg_build_v2.extract_html import extract_fault_sections,extract_by_unit,extract_cases,extract_content_slices +import re +from modelsAPI.model_api import OpenaiAPI + +def read_markdown_file(file_path): + """ + 读取 Markdown 文件并返回其全部内容作为字符串。 + + 参数: + file_path (str): Markdown 文件的路径(支持相对或绝对路径) + + 返回: + str 或 None: 成功时返回文件内容;出错时返回 None + """ + try: + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + return content + except FileNotFoundError: + print(f"错误:文件未找到 - {file_path}") + except PermissionError: + print(f"错误:没有权限读取文件 - {file_path}") + except UnicodeDecodeError: + print(f"错误:文件编码不是 UTF-8,无法读取 - {file_path}") + except Exception as e: + print(f"读取文件时发生未知错误: {e}") + return None + + +def safe_json_loads(s: str): + try: + return json.loads(s) + except json.JSONDecodeError as e: + # 尝试修复常见问题 + s = s.replace("\\n", "\\\n").replace("\r", "\\r").replace("\t", "\\t") + # 或者直接清理非法字符 + import re + s = re.sub(r'[\x00-\x1f\x7f]', '', s) # 移除控制字符 + try: + return json.loads(s) + except: + raise e + +# def openai_chat(query:str, model="Qwen3-32B"): + +# """调用OpenAI API""" +# try: +# client = OpenAI( +# api_key= "none", +# base_url= "http://192.168.0.46:59800/v1" +# ) + +# response = client.chat.completions.create( +# model=model, +# messages=[ +# {"role": "user", "content": query}, +# ], +# temperature=0.1, +# stream=False, +# response_format = {"type": "json_object"}, +# extra_body={"chat_template_kwargs": {"enable_thinking": False}} +# ) +# return response.choices[0].message.content +# except Exception as e: +# print(f"调用OpenAI API时出错: {e}") +# return None + +def extract_wxanli(chunks): + """ + 批量处理一个文档的多个切片(chunks),每个切片调用大模型结构化,并返回全部结果。 + + :param chunks: List[str] - 同一文档的多个文本切片 + :return: List[Dict] - 结构化结果列表 + """ + all_results = [] + all_entities = [] + all_relationships = [] + + for idx, block in enumerate(chunks, 1): + print(f"=== 维修案例 Block {idx} ===") + print(block) + print("\\n" + "="*60 + "\\n") + + final_prompt = Prompt_anli.replace("text",block) + + raw_response = OpenaiAPI.openai_chat(final_prompt,timeout=180) + + # 尝试解析 JSON + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + # ✅ 修复:移除 ensure_ascii 和 indent + json_result = safe_json_loads(cleaned) + entities = json_result.get("entities", []) + relationships = json_result.get("relationships", []) + for entity in entities: + # 确保 entity 有 "properties" 键,且其值为字典 + if "properties" in entity and isinstance(entity["properties"], dict): + entity["properties"]["切片"] = block + # 打印美化版 + all_entities.extend(entities) + all_relationships.extend(relationships) + # 将当前结果追加到总列表 + # all_results.append({ + # "entities": entities, # 已添加切片属性的实体列表 + # "relationships": relationships, # 关系列表 + # }) + # 可选:打印美化版(使用 dumps) + + success = True + except Exception as e: + print(f" ⚠️ 第 {idx} 切片 JSON 解析失败: {e}") + print(f" 原始响应: {repr(raw_response)}") + continue # 跳过保存失败项 + + + result = { + "entities": all_entities, + "relationships": all_relationships + } + return result + + + + +def get_wxanli_entity_rela(markdown_content): + keywords = ["一、故障现象", "故障名称:", "单位:"] + chunks = extract_content_slices(markdown_content,keywords) + + valid_chunks = [chunk for chunk in chunks if chunk and len(chunk.strip()) > 10] + if valid_chunks: + # 调用处理函数 + results = extract_wxanli(valid_chunks) + + # 这里可以将 results 保存到文件,例如按文件名保存为 JSON + + else: + results = [] + + + return results + + + + + + +# if __name__ == "__main__": +# input_directory = r"F:\zklnlp\HJ\hj_kg_code\kgrag\table_extract\files-1\图解目录_shenghna_output11_full_content.md" + +# # 调用目录处理函数 +# mdcontent = read_markdown_file(input_directory) + +# if mdcontent is None: +# print("无法读取文件,程序退出") +# exit(1) + +# res = get_wxanli_entity_rela(markdown_content=mdcontent) +# print(res) diff --git a/kg_build_v2/extrat_normal_node_rela.py b/kg_build_v2/extrat_normal_node_rela.py new file mode 100644 index 0000000..bbb6fc4 --- /dev/null +++ b/kg_build_v2/extrat_normal_node_rela.py @@ -0,0 +1,736 @@ + +import re +from openai import OpenAI +from typing import List, Dict,Tuple +import json +import time +import os +from kg_build_v2.Prompt import Prompt_guzhang,Prompt_compose,Prompt_compose_tujie,Prompt_compose_mulu_tujie +from kg_build_v2.extract_html import extract_repairproject_tables_html,extract_operation_tables_html,extract_tables,extract_guzhang_tables +# from modelsAPI.model_api import OpenaiAPI + + +def read_markdown_file(file_path): + """ + 读取 Markdown 文件并返回其全部内容作为字符串。 + + 参数: + file_path (str): Markdown 文件的路径(支持相对或绝对路径) + + 返回: + str 或 None: 成功时返回文件内容;出错时返回 None + """ + try: + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + return content + except FileNotFoundError: + print(f"错误:文件未找到 - {file_path}") + except PermissionError: + print(f"错误:没有权限读取文件 - {file_path}") + except UnicodeDecodeError: + print(f"错误:文件编码不是 UTF-8,无法读取 - {file_path}") + except Exception as e: + print(f"读取文件时发生未知错误: {e}") + return None + + +def openai_chat(query:str, model="Qwen3.5-35B-A3B"): + + """调用OpenAI API""" + try: + client = OpenAI( + api_key= "none", + base_url= "http://192.168.0.46:59800/v1" + ) + + response = client.chat.completions.create( + model=model, + messages=[ + {"role": "user", "content": query}, + ], + temperature=0.1, + stream=False, + response_format = {"type": "json_object"}, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + except Exception as e: + print(f"调用OpenAI API时出错: {e}") + return None + +def safe_json_loads(s: str): + try: + return json.loads(s) + except json.JSONDecodeError as e: + # 尝试修复常见问题 + s = s.replace("\\n", "\\\n").replace("\r", "\\r").replace("\t", "\\t") + # 或者直接清理非法字符 + s = re.sub(r'[\x00-\x1f\x7f]', '', s) # 移除控制字符 + try: + return json.loads(s) + except: + raise e + + + +#def openai_chat(query: str, model="Qwen3-32B"): +# """调用OpenAI API""" +# try: + # client = OpenAI( + # api_key="none", + # base_url="http://192.168.0.46:59800/v1" + # ) + + # response = client.chat.completions.create( + # model=model, + # messages=[ + # {"role": "user", "content": query}, + # ], + # temperature=0.1, + # stream=False, + # response_format={"type": "json_object"}, + # extra_body={"chat_template_kwargs": {"enable_thinking": False}} + # ) + # return response.choices[0].message.content + # except Exception as e: + # print(f"调用OpenAI API时出错: {e}") + # return None + +# def extract_guzhang_table_entity(chunks): +# """ +# 提取故障类实体 +# """ +# all_results = [] +# all_entity_results = [] +# all_relation_results = [] +# # 确定起始索引 +# print("提取故障类实体和关系") +# for idx, block in enumerate(chunks, 1): +# # 跳过第一个表格 + +# print(f"=== 故障类 Block {idx} ===") +# print(block[:100]) # 只打印前500字符 +# print("\n" + "="*60 + "\n") + +# final_prompt = Prompt_guzhang.format( +# text=block +# ) + + +# raw_response = openai_chat(final_prompt) + +# if raw_response is None: +# print(f" ⚠️ 第 {idx} 切片 API 调用失败") +# continue + + +# # 尝试解析 JSON +# try: +# cleaned = raw_response.strip() +# if cleaned.startswith("```json"): +# cleaned = cleaned[7:].lstrip() +# if cleaned.endswith("```"): +# cleaned = cleaned[:-3].rstrip() + +# json_result = safe_json_loads(cleaned) +# entities = json_result.get("entities", []) +# relationships = json_result.get("relationships", []) +# for entity in entities: +# # 确保 entity 有 "properties" 键,且其值为字典 +# if "properties" in entity and isinstance(entity["properties"], dict): +# entity["properties"]["切片"] = block + +# # 打印美化版 +# all_entity_results += entities +# all_relation_results += relationships +# # all_results.append({ +# # "entities": entities, # 已添加切片属性的实体列表 +# # "relationships": relationships, # 关系列表 +# # }) +# # 打印美化版 + +# except Exception as e: +# print(f" ⚠️ 第 {idx} 切片 JSON 解析失败: {e}") +# print(f" 原始响应: {repr(raw_response[:500])}") +# json_result = None +# continue + +# all_results.append({ +# "entities": all_entity_results, # 已添加切片属性的实体列表 +# "relationships": all_relation_results, # 关系列表 +# }) + +# return all_results +def extract_guzhang_table_entity(chunks): + """ + 提取故障类实体和关系,将所有切片的结果合并为两个大列表 + 返回: { + "entities": [...], + "relationships": [...] + } + """ + all_entities = [] + all_relationships = [] + + print("提取故障类实体和关系") + + for idx, block in enumerate(chunks, 1): + print(f"=== 故障类 Block {idx} ===") + print(block[:100]) + print("\n" + "="*60 + "\n") + + final_prompt = Prompt_guzhang.format(text=block) + raw_response =openai_chat(final_prompt) + + if raw_response is None: + print(f" ⚠️ 第 {idx} 切片 API 调用失败") + continue + + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = safe_json_loads(cleaned) + if json_result is None: + print(f" ⚠️ 第 {idx} 切片 JSON 解析失败: 解析返回 None") + continue + + entities = json_result.get("entities", []) + relationships = json_result.get("relationships", []) + + # 为每个实体添加来源切片信息 + for entity in entities: + if "properties" in entity and isinstance(entity["properties"], dict): + entity["properties"]["切片"] = block + + # 拼接到总列表 + all_entities.extend(entities) + all_relationships.extend(relationships) + + print(f" ✅ 第 {idx} 切片解析成功: {len(entities)} 个实体, {len(relationships)} 个关系") + + except Exception as e: + print(f" ⚠️ 第 {idx} 切片 JSON 解析失败: {e}") + print(f" 原始响应: {repr(raw_response[:500])}") + continue + + # 最终结果:返回一个字典,包含拼接后的两个列表 + result = { + "entities": all_entities, + "relationships": all_relationships + } + + return result + +# def extract_compose_table_entity(chunks): +# """ +# 提取组成表的设备、零部件实体以及关系 +# """ +# print("提取故障类实体和关系") + +# all_results = [] +# all_entity_results = [] +# all_relation_results = [] + +# # 确定起始索引 + +# for idx, block in enumerate(chunks, 1): +# # 跳过第一个表格 + +# print(f"=== 组成表 Block {idx} ===") +# print(block[:100]) # 只打印前500字符 +# print("\n" + "="*60 + "\n") + +# final_prompt = Prompt_compose.format( +# text=block +# ) + + +# raw_response = openai_chat(final_prompt) + +# if raw_response is None: +# print(f" ⚠️ 第 {idx} 切片 API 调用失败") +# continue + + +# # 尝试解析 JSON +# try: +# cleaned = raw_response.strip() +# if cleaned.startswith("```json"): +# cleaned = cleaned[7:].lstrip() +# if cleaned.endswith("```"): +# cleaned = cleaned[:-3].rstrip() + +# json_result = safe_json_loads(cleaned) +# entities = json_result.get("entities", []) +# relationships = json_result.get("relationships", []) +# for entity in entities: +# # 确保 entity 有 "properties" 键,且其值为字典 +# if "properties" in entity and isinstance(entity["properties"], dict): +# entity["properties"]["切片"] = block +# all_entity_results += entities +# all_relation_results += relationships + +# # 打印美化版 +# print(json.dumps(json_result, ensure_ascii=False, indent=2)) +# # all_results.append({ +# # "entities": entities, # 已添加切片属性的实体列表 +# # "relationships": relationships, # 关系列表 +# # }) + +# except Exception as e: +# print(f" ⚠️ 第 {idx} 切片 JSON 解析失败: {e}") +# print(f" 原始响应: {repr(raw_response[:500])}") +# json_result = None +# continue +# all_results.append({ +# "entities": all_entity_results, # 已添加切片属性的实体列表 +# "relationships": all_relation_results, # 关系列表 +# }) + +# return all_results +def extract_compose_table_entity(chunks): + """ + 提取组成表的设备、零部件实体以及关系 + """ + print("提取组成表实体和关系") + + # 建议:将 all_results 改为复数形式以符合习惯 + all_entities = [] + all_relationships = [] + # 确定起始索引 + for idx, block in enumerate(chunks, 1): + # 跳过第一个表格(如果需要的话,逻辑保持不变) + + print(f"=== 组成表 Block {idx} ===") + print(block[:100]) # 只打印前100字符预览 + print("\n" + "="*60 + "\n") + + final_prompt = Prompt_compose.format(text=block) + + raw_response =openai_chat(final_prompt) + + if raw_response is None: + print(f" ⚠️ 第 {idx} 切片 API 调用失败") + continue + + # 尝试解析 JSON + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = safe_json_loads(cleaned) + + # === 核心修改点:处理实体并添加切片信息 === + entities = json_result.get("entities", []) + relationships = json_result.get("relationships", []) + + # 为当前切片的实体添加属性 + for entity in entities: + if "properties" in entity and isinstance(entity["properties"], dict): + entity["properties"]["切片"] = block + + # 构建当前块的结果对象 + # current_result = { + # "entities": entities, + # "relationships": relationships, + # } + all_entities.extend(entities) + all_relationships.extend(relationships) + # 添加到总结果列表 + + + # 打印美化版 + # print(json.dumps(json_result, ensure_ascii=False, indent=2)) + + except Exception as e: + print(f" ⚠️ 第 {idx} 切片 JSON 解析失败: {e}") + print(f" 原始响应: {repr(raw_response[:500])}") + continue + result = { + "entities": all_entities, + "relationships": all_relationships + } + + # 返回按切片分组的结果列表 + return result +# def compose_table_tujie_entity(chunks): +# """ +# 提取图解目录中设备、零部件类实体以及相关关系 +# """ +# all_results = [] +# all_entity_results = [] +# all_relation_results = [] + +# # 确定起始索引 + +# for idx, block in enumerate(chunks, 1): +# # 跳过第一个表格 + +# print(f"=== 图解目录 Block {idx} ===") +# print(block[:100]) # 只打印前500字符 +# print("\n" + "="*60 + "\n") + +# final_prompt = Prompt_compose_tujie.format( +# text=block +# ) + + +# raw_response = openai_chat(final_prompt) + +# if raw_response is None: +# print(f" ⚠️ 第 {idx} 切片 API 调用失败") +# continue + + +# # 尝试解析 JSON +# try: +# cleaned = raw_response.strip() +# if cleaned.startswith("```json"): +# cleaned = cleaned[7:].lstrip() +# if cleaned.endswith("```"): +# cleaned = cleaned[:-3].rstrip() + +# json_result = safe_json_loads(cleaned) +# entities = json_result.get("entities", []) +# relationships = json_result.get("relationships", []) +# for entity in entities: +# # 确保 entity 有 "properties" 键,且其值为字典 +# if "properties" in entity and isinstance(entity["properties"], dict): +# entity["properties"]["切片"] = block +# # 打印美化版 +# all_entity_results += entities +# all_relation_results += relationships +# print(json.dumps(json_result, ensure_ascii=False, indent=2)) +# # all_results.append({ +# # "entities": entities, # 已添加切片属性的实体列表 +# # "relationships": relationships, # 关系列表 +# # }) +# # 打印美化版 +# print(json.dumps(json_result, ensure_ascii=False, indent=2)) +# success = True + +# except Exception as e: +# print(f" ⚠️ 第 {idx} 切片 JSON 解析失败: {e}") +# print(f" 原始响应: {repr(raw_response[:500])}") +# success = False +# json_result = None +# continue +# all_results.append({ +# "entities": all_entity_results, # 已添加切片属性的实体列表 +# "relationships": all_relation_results, # 关系列表 +# }) + +# return all_results + + +def compose_table_tujie_entity(chunks): + """ + 提取图解目录中设备、零部件类实体以及相关关系 + """ + all_entities = [] + all_relationships = [] + for idx, block in enumerate(chunks, 1): + print(f"=== 图解目录 Block {idx} ===") + print(block[:100]) # 只打印前100字符预览 + print("\n" + "="*60 + "\n") + + final_prompt = Prompt_compose_tujie.format(text=block) + + raw_response = openai_chat(final_prompt) + + if raw_response is None: + print(f" ⚠️ 第 {idx} 切片 API 调用失败") + continue + + # 尝试解析 JSON + try: + # 清理响应中的 Markdown 代码块标记 + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = safe_json_loads(cleaned) + + # 提取实体和关系 + entities = json_result.get("entities", []) + relationships = json_result.get("relationships", []) + + # 为当前切片的实体添加“切片”属性 + for entity in entities: + if "properties" in entity and isinstance(entity["properties"], dict): + entity["properties"]["切片"] = block + + # 构建当前切片的结果对象 + all_entities.extend(entities) + all_relationships.extend(relationships) + # 将当前结果追加到总列表 + + # 打印美化版(打印 current_result 而不是原始的 json_result,确保包含修改) + # print(json.dumps(json_result, ensure_ascii=False, indent=2)) + + except Exception as e: + print(f" ⚠️ 第 {idx} 切片 JSON 解析失败: {e}") + print(f" 原始响应: {repr(raw_response[:500])}") + continue + result = { + "entities": all_entities, + "relationships": all_relationships + } + return result + +def extract_compose_table_mulu_tujie(chunks): + """ + 提取图解目录中设备属性信息 + """ + all_results = [] + + # 确定起始索引 + + for idx, block in enumerate(chunks, 1): + # 跳过第一个表格 + + print(f"=== Repair Block {idx} ===") + print(block[:100]) # 只打印前500字符 + print("\n" + "="*60 + "\n") + + final_prompt = Prompt_compose_mulu_tujie.format( + text=block + ) + + + raw_response = openai_chat(final_prompt) + + if raw_response is None: + print(f" ⚠️ 第 {idx} 切片 API 调用失败") + continue + + + + all_results.append({ + "chunk_index": idx, + "structured_result": raw_response, + "success": "success" + }) + + return all_results + +# def get_nromal_node_rela(mdcontent): +# print("开始提取常规表格实体和关系") + +# # 提取各类表格 +# chunks_repair, cleaned_content = extract_repairproject_tables_html(mdcontent) +# chunks_operation, cleaned_content_operation = extract_operation_tables_html(cleaned_content) +# slices, contexts, cleaned_content_normal = extract_tables(cleaned_content_operation) + +# # 分类表格 +# compose_table = [] +# compose_table_tujie = [] +# compose_table_mulu_tujie = [] +# guzhang_table = [] + +# for ins in contexts: +# if '组成部分' in ins and '功能描述' in ins and '数量' in ins: +# compose_table.append(ins) +# elif '组成编码' in ins and '名称' in ins and '是否为关重件' in ins and '是否为寿命件' in ins: +# compose_table_tujie.append(ins) +# elif '组成编码' in ins and '名称' in ins and '数量' in ins and '重量' in ins: +# compose_table_mulu_tujie.append(ins) +# elif '故障现象' in ins and '故障原因' in ins and '维修项目' in ins: +# guzhang_table.append(ins) + +# # 初始化结果 +# all_entities = [] +# all_relationships = [] + +# # 提取并合并故障表 +# if guzhang_table: +# result = extract_guzhang_table_entity(guzhang_table) +# all_entities.extend(result.get('entities', [])) +# all_relationships.extend(result.get('relationships', [])) +# print("输出故障类实体和关系") +# print(len(result['entities'])) +# print(len(result['relationships'])) + +# # 提取并合并普通组成表 +# if compose_table: +# result = extract_compose_table_entity(compose_table) +# all_entities.extend(result.get('entities', [])) +# all_relationships.extend(result.get('relationships', [])) +# print("输出组成表类实体和关系") +# print(len(result['entities'])) +# print(len(result['relationships'])) + +# # 提取并合并图解组成表 +# if compose_table_tujie: +# result = compose_table_tujie_entity(compose_table_tujie) +# all_entities.extend(result.get('entities', [])) +# all_relationships.extend(result.get('relationships', [])) +# print("输出图解组成表类实体和关系") +# print(len(result['entities'])) +# print(len(result['relationships'])) +# print(11111111111111111111) +# print(result) + +# print(f"常规提取完成:共提取 {len(all_entities)} 个实体,{len(all_relationships)} 个关系") + +# # 构造返回结果 +# result = [{ +# "entities": all_entities, +# "relationships": all_relationships, +# }] + +# return result, cleaned_content_normal +def get_nromal_node_rela(mdcontent): + print("开始提取常规表格实体和关系") + + # 初始化最终返回的清洗后内容 + cleaned_content_normal = mdcontent + + try: + # 提取各类表格 + chunks_repair, cleaned_content = extract_repairproject_tables_html(mdcontent) + chunks_operation, cleaned_content_operation = extract_operation_tables_html(cleaned_content) + slices, contexts, cleaned_content_normal = extract_tables(cleaned_content_operation) + guzhangtable = extract_guzhang_tables(mdcontent) + # 分类表格 + compose_table = [] + compose_table_tujie = [] + compose_table_mulu_tujie = [] + guzhang_table = [] + + + for ins in contexts: + if '组成部分' in ins and '功能描述' in ins and '数量' in ins: + compose_table.append(ins) + elif '组成编码' in ins and '名称' in ins and '是否为关重件' in ins and '是否为寿命件' in ins: + compose_table_tujie.append(ins) + elif '组成编码' in ins and '名称' in ins and '数量' in ins and '重量' in ins: + compose_table_mulu_tujie.append(ins) + elif '故障现象' in ins and '故障原因' in ins and '维修项目' in ins: + guzhang_table.append(ins) + + except Exception as e: + print(f"预处理表格分类时发生错误: {e}") + # 如果预处理出错,初始化的 contexts 为空,后续不会提取数据 + contexts = [] + + # 初始化结果 + all_entities = [] + all_relationships = [] + + if guzhangtable: + try: + result = extract_guzhang_table_entity(guzhangtable) + # 确保 result 是字典且包含键 + if isinstance(result, dict): + entities = result.get('entities', []) + relationships = result.get('relationships', []) + if entities or relationships: # 确保有数据 + all_entities.extend(entities) + all_relationships.extend(relationships) + print(all_entities) + print(all_relationships) + print("输出故障类实体和关系") + print(len(entities), len(relationships)) + else: + print("警告: extract_guzhang_table_entity 返回值不是字典") + except Exception as e: + print(f"提取故障表时发生错误: {e}") + + # --- 提取并合并故障表 (带容错) --- + if guzhang_table: + try: + result = extract_guzhang_table_entity(guzhang_table) + # 确保 result 是字典且包含键 + if isinstance(result, dict): + entities = result.get('entities', []) + relationships = result.get('relationships', []) + if entities or relationships: # 确保有数据 + all_entities.extend(entities) + all_relationships.extend(relationships) + print("输出故障类实体和关系") + print(len(entities), len(relationships)) + else: + print("警告: extract_guzhang_table_entity 返回值不是字典") + except Exception as e: + print(f"提取故障表时发生错误: {e}") + + + # --- 提取并合并普通组成表 (带容错) --- + if compose_table: + try: + result = extract_compose_table_entity(compose_table) + if isinstance(result, dict): + entities = result.get('entities', []) + relationships = result.get('relationships', []) + if entities or relationships: + all_entities.extend(entities) + all_relationships.extend(relationships) + print("输出组成表类实体和关系") + print(len(entities), len(relationships)) + else: + print("警告: extract_compose_table_entity 返回值不是字典") + except Exception as e: + print(f"提取普通组成表时发生错误: {e}") + + # --- 提取并合并图解组成表 (带容错) --- + if compose_table_tujie: + try: + result = compose_table_tujie_entity(compose_table_tujie) + if isinstance(result, dict): + entities = result.get('entities', []) + relationships = result.get('relationships', []) + if entities or relationships: + all_entities.extend(entities) + all_relationships.extend(relationships) + print("输出图解组成表类实体和关系") + print(len(entities), len(relationships)) + + else: + print("警告: compose_table_tujie_entity 返回值不是字典") + except Exception as e: + print(f"提取图解组成表时发生错误: {e}") + + print(f"常规提取完成:共提取 {len(all_entities)} 个实体,{len(all_relationships)} 个关系") + + # 构造返回结果 (保持原有格式 [{...}]) + result = [{ + "entities": all_entities, + "relationships": all_relationships, + }] + + return result, cleaned_content_normal + + +# if __name__ == "__main__": +# input_directory = "F:\zklnlp\HJ\hj_kg_code\kgrag\extract_html_json\测试LXJwx手册_shenghna_output11_full_content.md" + +# # 调用目录处理函数 +# mdcontent = read_markdown_file(input_directory) + +# if mdcontent is None: +# print("无法读取文件,程序退出") +# exit(1) + +# tables, cleaned_content = get_nromal_node_rela(mdcontent=mdcontent) + # for ins in tables: + # print(ins) + # print(11111111111111111111) + + + + + + + + diff --git a/kg_build_v2/get_text_node_reala.py b/kg_build_v2/get_text_node_reala.py new file mode 100644 index 0000000..de5f777 --- /dev/null +++ b/kg_build_v2/get_text_node_reala.py @@ -0,0 +1,331 @@ +from openai import OpenAI +from typing import List, Dict +import json +from langchain_text_splitters import MarkdownHeaderTextSplitter, CharacterTextSplitter +import requests +import json +from modelsAPI.model_api import OpenaiAPI + +def _split_markdown(text, chunk_size=2048, chunk_overlap=50): + """ + 根据 max_level 动态生成 headers_to_split_on 配置 + 规则: + - max_level=1 → 只按 # 分割 + - max_level=2 → 按 # 和 ## 分割 + - 以此类推 + """ + # 动态生成 headers_to_split_on 配置(目前固定为 Header_1) + headers_to_split_on = [("#", "Header_1")] + + # 初始化分割器 + splitter = MarkdownHeaderTextSplitter( + headers_to_split_on=headers_to_split_on, + strip_headers=True + ) + chunks = splitter.split_text(text) + + char_splitter = CharacterTextSplitter( + chunk_size=chunk_size, + chunk_overlap=chunk_overlap, + length_function=len, + separator="\n\n" # 更合理的分隔符 + ) + + final_chunks = [] + start_chars = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "第", "十", + "一", "二", "三", "四", "五", "六", "七", "八", "九"," 故障"] + new_header = [] + + # 提取所有 Header_1 并筛选出“有效标题” + for chunk in chunks: + header_1 = chunk.metadata.get('Header_1', '') + if header_1 and header_1[0] in start_chars: + new_header.append(header_1) + + new_header_set = set(new_header) + + # 构建带标题前缀的 final_chunks + for chunk in chunks: + header_1 = chunk.metadata.get('Header_1', '') + content = chunk.page_content + if len(content) <= 20000: + chunk_with_header = f"{header_1}\n{content}" if header_1 else content + final_chunks.append(chunk_with_header) + else: + split_texts = char_splitter.split_documents([chunk]) + for split_chunk in split_texts: + chunk_with_header = f"{header_1}\n{split_chunk.page_content}" if header_1 else split_chunk.page_content + final_chunks.append(chunk_with_header) + + # ===== 重新分组,并记录每个组的 header ===== + rechunked = [] + rechunked_headers = [] # 新增:每个 rechunked 块对应的 header + current = "" + current_header = "" # 当前正在构建的块所属的标题 + + for chunk in final_chunks: + is_new_section = False + matched_header = "" + + # 检查是否以某个 new_header 开头 + for h in new_header_set: + if chunk.startswith(h + "\n"): + is_new_section = True + matched_header = h + break + + if is_new_section: + # 保存上一段 + if current: + rechunked.append(current) + rechunked_headers.append(current_header) + # 开启新段 + current = chunk + current_header = matched_header + else: + # 合并到当前段 + if current: + current += "\n" + chunk + else: + current = chunk + current_header = "" # 如果开头无标题,则 header 为空 + + # 添加最后一段 + if current: + rechunked.append(current) + rechunked_headers.append(current_header) + + return rechunked, rechunked_headers + +Ontology = ["舰艇", "系统", "设备", "零部件", "故障", "修理", "维修项目","操作项目","保养"] +Relationships = ["包含", "组成", "解决", "用于", "使用","具有"] + +# 节点类型及其属性定义 + +NODE_TYPES = { + "舰艇": ["名称","型号", "弦号", "设计单位", "总装工厂", "所属部队"], + "系统": ["名称", "技术责任单位", "生产单位", "级别"], + "设备": ["名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间","运行时间","运行条件"], + "零部件": ["名称", "型号", "技术责任单位", "生产单位"], + "故障": ["故障现象名称", "故障原因", "故障影响", "故障类型", "发生时间", "处置情况", "修复情况"], + "修理": ["修理方案","修理人员", "修理时间", "修理工具", "备品备件", "修理类型", "维修项目"], + "维修项目": ["名称","维修项目编号", "组成编码", "维修设备名称", "维修间隔期", "维修级别", "页码", "安全防护要求", "安全注意事项","工具","备品备件","消耗材料","人力人员","修理步骤"], + "操作项目": ["名称", "操作项目编号", "安全防护", "注意事项","保障设施、保障设备(工具)", "人力人员", "操作步骤"], + "保养" : ["保养人员","保养时间","保养工具","保养频率"] +} + +Ontology_DESCRIPTION = { + "舰艇": ["代表一艘完整海上作战或保障平台的实体,是所有系统、设备和零部件的最高层级载体。区别于“系统”或“设备”,舰艇具有独立的型号、弦号和部队归属,不可作为其他舰艇的组成部分。"], + "系统": ["舰艇中实现某一类功能(如动力、导航、通信)的集成化功能单元,由多个设备协同组成。与“设备”不同,系统本身不直接对应物理装置,而是逻辑/功能层面的集合;与“舰艇”不同,系统不具备独立航行能力或部队归属。"], + "设备": ["安装在舰艇上、具有独立型号和运行状态的物理装置,可被启停、监控运行时间,并可能产生故障。区别于“零部件”,设备是可独立更换或维修的功能单元;区别于“系统”,设备是具体硬件而非功能集合。"], + "零部件": ["构成设备的不可再拆分的基础物理元件(如轴承、电路板、密封圈),通常无独立运行状态或启用时间。与“设备”关键区别在于:零部件不能单独运行,也不记录运行时间或技术状态变更。"], + "故障": ["设备或系统在运行中出现的异常状态或失效事件,必须包含具体现象(如“无法启动”)、原因(如“电源短路”)及影响。区别于“修理”或“保养”,故障是问题本身,而非应对措施;不包含操作步骤或人员信息。"], + "修理": ["针对已发生故障所执行的一次性修复行为,包含具体时间、人员、工具、方案和所关联的维修项目。区别于“保养”,修理是响应式、非周期性的;区别于“维修项目”,修理是实际发生的实例,而非标准化规程。"], + "维修项目": ["标准化、可重复执行的维修任务规程,规定了某类设备或系统在特定条件下应如何维修,包含编号、步骤、材料、安全要求等。区别于“修理”,维修项目是模板或规范,而非具体事件;不包含实际发生时间或人员。"], + "操作项目": ["舰艇正常运行中需执行的标准操作流程(如启动主机、校准雷达),强调操作步骤与安全保障。区别于“维修项目”,操作使用项目用于日常使用而非维护"], + "保养" : ["按计划周期性执行的预防性维护活动(如润滑、清洁、检测),目的是延缓性能退化。"] +} + +RELATIONSHIP_TYPES = { + "包含": ["舰艇包含系统", "系统包含设备","设备包含零部件","修理包含维修项目"], + "解决": ["修理解决故障", "维修项目解决故障"], + "使用": ["设备使用操作项目", "设备使用保养","设备使用维修项目"], + "具有": ["设备具有故障","零部件具有故障"] +} + +def create_extraction_prompt( + text: str, + ontology: List[str], + Ontology_DESCRIPTION: Dict[str, List[str]], + relationships: List[str], + node_types: Dict[str, List[str]], + relationship_types: Dict[str, List[str]] +) -> str: + # 构建已有本体的定义(用于上下文) + ontology_def_descriptions = [] + for etype in ontology: + clean_etype = etype.strip() + if clean_etype in Ontology_DESCRIPTION: + desc = ";".join(Ontology_DESCRIPTION[clean_etype]) + ontology_def_descriptions.append(f"- {clean_etype}:{desc}") + else: + ontology_def_descriptions.append(f"- {clean_etype}:无明确定义") + + # 构建关系示例 + rel_examples = [] + for rtype, examples in relationship_types.items(): + for ex in examples[:1]: + rel_examples.append(f" - {ex}") + + prompt = f"""你是一个专业的舰艇维修领域工程师。请基于给出的本体和属性等信息,抽取出实体、关系以及相关属性值。 + +> ⚠️ 重要说明: +> - **本体(Ontology Class)是抽象概念类别**,是对特定领域中概念体系的形式化、结构化规范,用于明确定义该领域内的实体类型(类)。 + + +### 已有本体类型: +{chr(10).join(ontology_def_descriptions)} + +### 已有关系类型: +- {"、".join(relationships)} +典型用法示例: +{chr(10).join(rel_examples)} + +### 待分析文本: +{text.strip()} + +### 你的任务: +1、根据给出的本体、关系以及相应的属性,从文本中抽取出所有可能的实体、关系以及相关属性值。 +2、不要随意添加无效属性,抽取的实体属于本体范围内,关系属于关系范围内。、 + +### 输出格式: +请输出json格式内容,不要输出其他格式和额外内容 +{{ + "entities": [ + {{ + "type": "设备", + "name": "1 号主机冷却系统", + "properties": {{ + "名称": "1 号主机冷却系统", + "型号": "", + "技术责任单位": "XX 舰艇保障大队", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + }} + }}, + {{ + "type": "故障", + "name": "1 号主机冷却系统温度异常升高", + "properties": {{ + "故障现象": "1 号主机冷却系统温度异常升高", + "故障原因": "根据 A 设备发生的温度异常升高现象,结合相关技术手册与历史故障记录,分析如下: + (一)冷却液循环泵可能存在异常,导致流量不足; + (二)热交换器内部堵塞或外部散热片污损,影响散热效率; + (三)温度传感器或控制系统信号异常,导致误报警。 +", + "故障影响": "", + "故障类型": "", + "发生时间": "2013 年 05 月 7 日 9 时 23 分 37 秒", + "处置情况": " ", + "修复情况": "", + “” + }} + }} + ], + "relationships": [ + {{ + "type": "具有", + "from_entity": "1 号主机冷却系统", + "to_entity": "1 号主机冷却系统温度异常升高" + }} + ] +}} + +注意: +- 不要生成一些关系,如果没有就不要推荐 +- 如果文本没有符合的关系和实体,不要进行强行抽取 +""" + + return prompt + +def extract_text_node_relationship( + text: List[str], + ontology: List[str], + Ontology_DESCRIPTION: Dict[str, List[str]], + relationships: List[str], + node_types: Dict[str, List[str]], + relationship_types: Dict[str, List[str]] +): + new_entities_result = [] + new_relationships_result = [] + + for ins in text: + final_prompt = create_extraction_prompt( + text=ins, + ontology=ontology, + Ontology_DESCRIPTION=Ontology_DESCRIPTION, + relationships=relationships, + relationship_types=relationship_types, + node_types=node_types + ) + res_str = OpenaiAPI.openai_chat(final_prompt,timeout=180) + + # 处理 API 调用失败 + if res_str is None: + print("⚠️ 跳过当前 chunk:API 调用失败") + continue + + # 尝试解析 JSON + try: + res = json.loads(res_str) + except json.JSONDecodeError as e: + print(f"❌ JSON 解析失败: {e}") + print(f"原始响应内容: {repr(res_str)}") + continue + + # 安全访问字段 + new_entities = res.get("entities", []) + new_relationships = res.get("relationships", []) + for entity in new_entities: + if "properties" in entity and isinstance(entity["properties"], dict): + entity["properties"]["切片"] = ins + + + new_entities_result.extend(new_entities) + new_relationships_result.extend(new_relationships) + + # 可选:最后汇总输出 + # print("\n=== 最终结果 ===") + # print("生成文本本体:", new_entities_result) + # print("生成文本关系:", new_relationships_result) + return new_entities_result,new_relationships_result + + +# if __name__ == "__main__": +# text = """ +# # 1)螺旋桨本体 + +# 功能与特性:能量转换的核心。它将主机的旋转动能转化为水流的反作用力(推力)。其特性由材料(如镍铝青铜、锰青铜)、桨叶数(3-6叶)、盘面比、螺距比等决定,直接影响效率、空泡和振动性能。 + +# 相互关系:直接安装在尾轴(螺旋桨轴) 末端,其扭矩由尾轴传递,其推力通过推力轴承传递给船体。 + +# 2)轴系 + +# 功能与特性:动力传递的桥梁。包括: +# s +# 推力轴及推力轴承:承受螺旋桨产生的巨大轴向推力,并将其传递给船体结构,是决定船舶能否前进、后退的关键。 + +# 中间轴:连接主机输出端与推力轴/尾轴。 + +# 尾轴(螺旋桨轴):穿过尾轴管,末端安装螺旋桨,工作环境恶劣(浸没海水中),通常需包覆铜套防腐。 + +# 相互关系:将主机的旋转输出与螺旋桨本体刚性连接,形成一个完整的动力传递链。推力轴承是轴系与船体结构之间的关键受力界面。 + +# 3)尾轴管与密封系统功能与特性: + +# 尾轴管:固定于船体尾端,支撑尾轴并形成从船内(机舱)到船外(海水)的通道。 + +# 密封系统(首尾密封):绝对关键的安全设备。防止海水沿尾轴流入机舱(尾密封),同时防止润滑油泄漏(首尾密封均有此功能)。通常采用唇式密封或面式密封,材料耐磨、耐腐蚀。 + +# 相互关系:为尾轴提供支撑和润滑(油润滑或水润滑),其密封系统直接保护尾轴并确保机舱安全,与轴系和船体结构紧密集成。 + +# 4)毂帽与导流罩功能与特性: + +# 毂帽:安装在螺旋桨毂后端,呈流线型,用于减少桨毂后部产生的涡流阻力,提高效率。 + +# 导流罩(如桨毂涡流消除器):安装在桨毂前方,改善流入桨叶的水流状态,尤其适用于肥大船型,能提升效率、减少振动。 + +# 相互关系:直接安装在螺旋桨本体的毂上,是其水动力性能的优化附件。 + +# 系统相互关系总结: + +# 主机驱动轴系旋转,轴系末端的尾轴带动螺旋桨本体旋转。螺旋桨产生的推力通过尾轴传递至推力轴承,最终作用在船体上使其运动。尾轴管及密封系统为这一旋转运动提供支撑、润滑和至关重要的水密保障。毂帽和导流罩则作为螺旋桨本体的附件,优化其水动力性能。所有子设备协同工作的核心目标,是确保主机功率被高效、平稳、可靠地转化为推进船舶前进的有效推力。 任何一环失效(如密封泄漏、轴承损坏)都将导致整个推进系统瘫痪。 +# """ +# content = [] +# content.append(text) +# extract_text_node_relationship(content,ontology=Ontology,Ontology_DESCRIPTION=Ontology_DESCRIPTION,relationships=Relationships,relationship_types=RELATIONSHIP_TYPES,node_types=NODE_TYPES) + diff --git a/kg_build_v2/utils.py b/kg_build_v2/utils.py new file mode 100644 index 0000000..5efc83b --- /dev/null +++ b/kg_build_v2/utils.py @@ -0,0 +1,75 @@ +import json +from collections import defaultdict + +def remove_duplicates(records): + # 使用字典分组:key 为 (type, name) + grouped = defaultdict(list) + + for record in records: + t = record.get("type") + n = record.get("name") + if t is not None and n is not None: + grouped[(t, n)].append(record) + else: + # 如果 type 或 name 缺失,直接保留(不参与去重) + continue + + result = [] + + for key, items in grouped.items(): + if len(items) == 1: + result.append(items[0]) + else: + # 多条重复,需要筛选 + # 优先:保留 attributes 中 "名称" 存在的记录 + valid_items = [item for item in items if item.get("attributes", {}).get("名称")] + + if not valid_items: + # 如果都没有 "名称",则从所有中选字段最多的 + candidates = items + else: + candidates = valid_items + + # 从 candidates 中选择 attributes 非空字段最多的 + best_record = max(candidates, key=lambda x: count_non_empty_attributes(x)) + result.append(best_record) + + # 添加未被分组的(type/name 缺失的)原始记录 + for record in records: + t = record.get("type") + n = record.get("name") + if t is None or n is None: + result.append(record) + + return result + +def count_non_empty_attributes(record): + attrs = record.get("attributes", {}) + if not isinstance(attrs, dict): + return 0 + # 统计非空、非None、非空字符串的字段数量 + return sum(1 for v in attrs.values() if v not in [None, "", ""]) + + +def deduplicate_relationships(relationships): + """ + 对 relationships 列表进行去重,基于 type、from_entity 和 to_entity 三个字段。 + + 参数: + relationships (list of dict): 包含关系记录的列表,每条记录为字典, + 至少包含 'type', 'from_entity', 'to_entity' 三个键。 + + 返回: + list of dict: 去重后的列表,保留首次出现的记录。 + """ + seen = set() + unique_relationships = [] + + for rel in relationships: + # 构造一个不可变的元组作为唯一标识 + key = (rel['type'], rel['from_entity'], rel['to_entity']) + if key not in seen: + seen.add(key) + unique_relationships.append(rel) + + return unique_relationships diff --git a/kg_save.py b/kg_save.py new file mode 100644 index 0000000..26e7b48 --- /dev/null +++ b/kg_save.py @@ -0,0 +1,499 @@ +import json +from datetime import datetime, timezone +from typing import Dict, List, Optional, Tuple, Union +from neo4j import GraphDatabase + + +class MilitaryKnowledgeGraph: + def __init__(self, uri: str, auth: Tuple[str, str], Ontology: List[str] = None): + """ + 初始化知识图谱 + + Args: + uri: Neo4j 数据库连接地址 + auth: 认证信息 (用户名, 密码) + Ontology: 节点类型列表,用于创建唯一性约束和类型校验 + """ + self.driver = GraphDatabase.driver(uri, auth=auth) + + # 默认节点类型 + self.Ontology = Ontology or [ + "舰艇", "系统", "设备", "零部件", + "故障", "修理", "维修项目", "操作项目", "保养","备品备件" + ] + + self._setup_constraints() + + def close(self): + """关闭数据库连接""" + self.driver.close() + + def _setup_constraints(self): + """为每个节点类型设置 名称 字段的唯一性约束""" + with self.driver.session() as session: + for node_type in self.Ontology: + try: + session.run(f"CREATE CONSTRAINT IF NOT EXISTS FOR (n:{node_type}) REQUIRE n.名称 IS UNIQUE") + except Exception as e: + print(f"创建约束失败 {node_type}: {e}") + + def construct_fact(self, from_name: str, to_name: str, rel_type: str, attributes: Dict) -> str: + """构造关系的自然语言描述(fact)""" + attr_str = ", ".join([f"{k}:{v}" for k, v in attributes.items() if v]) + if attr_str: + return f"{from_name} {rel_type} {to_name},{attr_str}" + else: + return f"{from_name} {rel_type} {to_name}" + + def _resolve_attribute_conflicts(self, existing_attrs: Dict, new_attrs: Dict) -> Dict: + """解决属性冲突(保留最新状态、最早开始时间、最晚结束时间等)""" + resolved = existing_attrs.copy() + current_time = datetime.now(timezone.utc).isoformat() + + for key, new_value in new_attrs.items(): + if new_value is None or new_value == "": + continue + + if key not in existing_attrs: + resolved[key] = new_value + elif existing_attrs[key] != new_value: + if key in ["当前状态", "执行状态", "完成状态"]: + resolved[key] = new_value + elif key in ["开始时间", "下达时间", "承担时间"]: + if new_value < existing_attrs[key]: + resolved[key] = new_value + elif key in ["结束时间", "执行时限"]: + if new_value > existing_attrs[key]: + resolved[key] = new_value + else: + resolved[key] = new_value + if f"{key}_history" not in resolved: + resolved[f"{key}_history"] = [] + resolved[f"{key}_history"].append({ + "previous_value": existing_attrs[key], + "new_value": new_value, + "update_time": current_time + }) + + return resolved + + def _create_relationship_with_timeline(self, tx, from_name: str, to_name: str, + rel_type: str, attributes: Dict) -> bool: + """创建或更新带有时间线的关系""" + current_time = datetime.now(timezone.utc).isoformat() + clean_attributes = {k: v for k, v in attributes.items() if v is not None and v != ""} + + fact = self.construct_fact(from_name, to_name, rel_type, attributes) + clean_attributes["fact"] = fact + + existing_rel = tx.run(""" + MATCH (a {名称: $from_name})-[r]->(b {名称: $to_name}) + WHERE type(r) = $rel_type + RETURN r, properties(r) as props + """, from_name=from_name, to_name=to_name, rel_type=rel_type).single() + + if existing_rel: + existing_props = existing_rel["props"] + updated_props = existing_props.copy() + + for key, new_value in clean_attributes.items(): + if key == "fact": + continue + if key not in existing_props or existing_props[key] != new_value: + timeline_key = f"{key}_timeline" + if timeline_key not in updated_props: + updated_props[timeline_key] = [] + + timeline_entry_dict = { + "value": new_value, + "timestamp": current_time, + "source": "text_extraction" + } + if key in existing_props: + timeline_entry_dict["previous_value"] = existing_props[key] + + timeline_entry_str = json.dumps(timeline_entry_dict, ensure_ascii=False) + updated_props[timeline_key].append(timeline_entry_str) + updated_props[key] = new_value + + if "fact" in clean_attributes: + fact_timeline_key = "fact_timeline" + if fact_timeline_key not in updated_props: + updated_props[fact_timeline_key] = [] + + fact_entry_str = json.dumps({ + "value": clean_attributes["fact"], + "timestamp": current_time, + "source": "text_extraction" + }, ensure_ascii=False) + updated_props[fact_timeline_key].append(fact_entry_str) + updated_props["fact"] = clean_attributes["fact"] + + updated_props["last_updated"] = current_time + + query = f""" + MATCH (a {{名称: $from_name}})-[r:{rel_type}]->(b {{名称: $to_name}}) + SET r = $properties + RETURN r + """ + tx.run(query, from_name=from_name, to_name=to_name, properties=updated_props) + print(f"更新关系: {from_name} -[{rel_type}]-> {to_name}") + + else: + relationship_props = clean_attributes.copy() + + for key, value in clean_attributes.items(): + timeline_key = f"{key}_timeline" + timeline_entry_dict = { + "value": value, + "timestamp": current_time, + "source": "text_extraction" + } + timeline_entry_str = json.dumps(timeline_entry_dict, ensure_ascii=False) + relationship_props[timeline_key] = [timeline_entry_str] + + relationship_props["created_at"] = current_time + relationship_props["last_updated"] = current_time + relationship_props["update_count"] = 1 + + query = f""" + MATCH (a {{名称: $from_name}}), (b {{名称: $to_name}}) + CREATE (a)-[r:{rel_type} $properties]->(b) + RETURN r + """ + tx.run(query, from_name=from_name, to_name=to_name, properties=relationship_props) + print(f"创建关系: {from_name} -[{rel_type}]-> {to_name}") + + return True + + def _create_or_update_node(self, tx, node_type: str, 名称: str, attributes: Dict) -> bool: + """ + 创建或更新节点,支持 knowledge_source 等复杂字段 + + Args: + tx: Neo4j 事务对象 + node_type: 节点类型 + 名称: 节点名称(唯一标识) + attributes: 节点属性字典 + """ + if not 名称 or not node_type: + return False + + # 安全校验:只允许预定义的节点类型 + if node_type not in self.Ontology: + print(f"跳过未知节点类型: {node_type}") + return False + + # 预处理 attributes:将 knowledge_source 转为 JSON 字符串 + clean_attributes = {"名称": 名称} # 确保名称字段存在 + for k, v in attributes.items(): + if v is None or v == "": + continue + if k == "knowledge_source" and isinstance(v, list): + clean_attributes[k] = json.dumps(v, ensure_ascii=False) + else: + clean_attributes[k] = v + + existing_node = tx.run( + f"MATCH (n:{node_type} {{名称: $名称}}) RETURN n, properties(n) as props", + 名称=名称 + ).single() + + current_time = datetime.now(timezone.utc).isoformat() + if existing_node: + existing_props = existing_node["props"] + + # 保留时间线和时间戳字段 + timeline_data = {k: v for k, v in existing_props.items() + if k.endswith('_timeline') or k in ['created_at', 'last_updated']} + + # 直接使用新属性(不调用 _resolve_attribute_conflicts) + final_attributes = {**timeline_data, **clean_attributes} + # if existing_node: + # existing_props = existing_node["props"] + # existing_attrs = {k: v for k, v in existing_props.items() + # if not k.endswith('_timeline') and k not in ['created_at', 'last_updated']} + + # resolved_attributes = self._resolve_attribute_conflicts(existing_attrs, clean_attributes) + + # timeline_data = {k: v for k, v in existing_props.items() + # if k.endswith('_timeline') or k in ['created_at', 'last_updated']} + + # final_attributes = {**timeline_data, **resolved_attributes} + # final_attributes["last_updated"] = current_time + + # query = f""" + # MATCH (n:{node_type} {{名称: $名称}}) + # SET n = $attributes + # RETURN n + # """ + # tx.run(query, 名称=名称, attributes=final_attributes) + # print(f"更新节点: {node_type} - {名称}") + else: + clean_attributes["created_at"] = current_time + clean_attributes["last_updated"] = current_time + + query = f""" + CREATE (n:{node_type} $attributes) + RETURN n + """ + tx.run(query, attributes=clean_attributes) + print(f"创建节点: {node_type} - {名称}") + + return True + + def process_data(self, data: Dict) -> Tuple[int, int]: + """ + 处理字典数据并写入Neo4j + + Args: + data: 包含 entities 和 relationships 的字典 + + Returns: + Tuple[int, int]: (实体数量, 关系数量) + """ + if not data or not isinstance(data, dict): + print("无效的数据格式,需要字典类型") + return 0, 0 + + entity_count = 0 + relationship_count = 0 + + with self.driver.session() as session: + # 创建/更新实体节点 + for entity in data.get("entities", []): + try: + # 提取 properties,并注入 knowledge_source(如果存在) + props = entity.get("properties", {}).copy() + if "knowledge_source" in entity: + props["knowledge_source"] = entity["knowledge_source"] + + # 从 properties 中提取名称 + 名称 = props.pop("名称", None) + if not 名称: + print(f"跳过无名称节点: {entity}") + continue + + success = session.execute_write( + self._create_or_update_node, + entity["type"], + 名称, + props + ) + if success: + entity_count += 1 + except Exception as e: + print(f"处理节点失败: {entity}, 错误: {e}") + + # 创建/更新关系 + for relationship in data.get("relationships", []): + try: + success = session.execute_write( + self._create_relationship_with_timeline, + relationship["from_entity"], + relationship["to_entity"], + relationship["type"], + relationship.get("properties", {}) + ) + if success: + relationship_count += 1 + except Exception as e: + print(f"处理关系失败: {relationship}, 错误: {e}") + + print(f"成功处理 {entity_count} 个节点和 {relationship_count} 个关系") + return entity_count, relationship_count + + def get_relationship_history(self, from_name: str, to_name: str, rel_type: str) -> Optional[Dict]: + """获取关系的完整历史记录""" + with self.driver.session() as session: + result = session.run(""" + MATCH (a {名称: $from_name})-[r]->(b {名称: $to_name}) + WHERE type(r) = $rel_type + RETURN properties(r) as props + """, from_name=from_name, to_name=to_name, rel_type=rel_type) + + record = result.single() + return record["props"] if record else None + + def get_property_timeline(self, from_name: str, to_name: str, rel_type: str, + property_name: str) -> Optional[List]: + """获取特定属性的时间线(返回字符串列表,需 json.loads 解析)""" + history = self.get_relationship_history(from_name, to_name, rel_type) + if history: + return history.get(f"{property_name}_timeline", []) + return None + + def clear_database(self): + """清空数据库(谨慎使用)""" + with self.driver.session() as session: + session.run("MATCH (n) DETACH DELETE n") + print("数据库已清空") + + +# 测试数据 +test_data = { + "entities": [ + { + "type": "系统", + + "properties": { + "名称": "ZZ系统", + "系统编码": "04", + "knowledge_source": [ + { + "filename": "", + "url": "", + "info": "" + } + ], + } + }, + { + "type": "子系统", + "properties": { + "名称": "作战系统总论", + "系统编码": "00", + "knowledge_source": [ + { + "filename": "", + "url": "", + "info": "" + } + ], + } + }, + { + "type": "系统", + "properties": { + "名称": "DL系统", + "系统编码": "05", + "knowledge_source": [ + { + "filename": "", + "url": "", + "info": "" + } + ], + } + }, + { + "type": "子系统", + "properties": { + "名称": "DL子系统", + "系统编码": "B0", + "knowledge_source": [ + { + "filename": "", + "url": "", + "info": "" + } + ], + } + }, + { + "type": "系统", + "properties": { + "名称": "HJ系统", + "系统编码": "B0", + "knowledge_source": [ + { + "filename": "", + "url": "", + "info": "" + } + ], + } + }, + { + "type": "子系统", + "properties": { + "名称": "HJ子系统", + "系统编码": "08", + "knowledge_source": [ + { + "filename": "", + "url": "", + "info": "" + } + ], + } + }, + ], + "relationships": [ + { + "type": "包含", + "from_entity": "北京舰", + "to_entity": "ZZ系统" + }, + { + "type": "包含", + "from_entity": "北京舰", + "to_entity": "DL系统" + }, + { + "type": "包含", + "from_entity": "ZZ系统", + "to_entity": "作战系统总论" + }, + { + "type": "包含", + "from_entity": "DL系统", + "to_entity": "DL子系统" + }, + { + "type": "包含", + "from_entity": "南京舰", + "to_entity": "HJ系统" + }, + { + "type": "包含", + "from_entity": "HJ系统", + "to_entity": "HJ子系统" + } + ] +} + +if __name__ == "__main__": + # 连接本地 Neo4j(请确保服务已启动) + kg = MilitaryKnowledgeGraph( + uri="bolt://192.168.0.46:57687", + auth=("neo4j", "zdht123@"), + Ontology=[ + "舰艇", "系统", "子系统", "设备", "维修项目", "维修工作", "操作项目", + "故障模式", "安全警告", "工作原理", + "组成", "技术指标参数", "布置情况", "保障设施保障设备工具信息汇总表", + "消耗材料信息汇总表", "维修安全防护及注意事项汇总表", "图册", "安全使用操作", + "调试", "维护保养", "常见问题分析及排除", "功能", "接口", + "性能指标", "操作使用","环境条件","设计单位","操作程序","故障现象","维修","器材" +] + ) + + try: + print("开始写入知识图谱...") + entity_count, rel_count = kg.process_data(test_data) + print(f"✅ 写入完成:{entity_count} 个实体,{rel_count} 个关系") + + # 验证读取 + history = kg.get_relationship_history("发动机", "喷油器测试台", "包含") + if history: + print("\n🔍 关系 fact:", history.get("fact")) + + # 检查节点属性 + with kg.driver.session() as session: + result = session.run(""" + MATCH (e:设备 {名称: '发动机'}) + RETURN e.名称 AS name, e.型号 AS model, e.knowledge_source AS ks + """) + record = result.single() + if record: + print(f"\n📌 节点验证:{record['name']}, 型号={record['model']}") + if record['ks']: + ks_data = json.loads(record['ks']) + print(f"📄 来源文件: {ks_data[0]['filename']}") + else: + print("❌ 未找到节点!") + + finally: + # kg.clear_database() # 取消注释以清理测试数据 + kg.close() + diff --git a/kg_snapshot.json b/kg_snapshot.json new file mode 100644 index 0000000..b6e6e40 --- /dev/null +++ b/kg_snapshot.json @@ -0,0 +1,86458 @@ +{ + "entities": [ + { + "type": "故障模式", + "properties": { + "名称": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大", + "故障现象": "主机运行中振动异常增大", + "故障原因": "主轴承或连杆大端轴承磨损", + "维修方案": "执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + 0.01279602199792862, + -0.004196286201477051, + -0.07515735924243927, + -0.009168234653770924, + -0.03403279557824135, + 0.003647059202194214, + 0.054228927940130234, + 0.036441683769226074, + -0.048910096287727356, + 0.005424819886684418, + -0.02559204399585724, + 0.00369523698464036, + -0.022046159952878952, + 0.013239257968962193, + -0.01813412271440029, + -0.028058748692274094, + 0.03586355224251747, + 0.0043528638780117035, + 0.02985096164047718, + 0.026555601507425308, + -0.022797733545303345, + 0.04127873480319977, + 0.01801849529147148, + -0.026382161304354668, + -0.01396192517131567, + 0.00793488323688507, + 0.01670805923640728, + 0.022913359105587006, + 0.062052998691797256, + 0.003832543734461069, + -0.034283317625522614, + -0.05091429501771927, + -0.015195276588201523, + -0.0219112616032362, + -0.024223795160651207, + -0.03632605820894241, + -0.029041575267910957, + -0.016833322122693062, + -0.05234035849571228, + 0.06656244397163391, + -0.016245553269982338, + 3.53805698978249e-05, + 0.016004662960767746, + 0.010213692672550678, + 0.021371670067310333, + -0.024146711453795433, + -0.05376641824841499, + -0.03058326430618763, + -0.035767193883657455, + -0.029581166803836823, + -0.0018692984012886882, + -0.0312577523291111, + 0.06567597389221191, + -0.028848864138126373, + 0.004140881355851889, + 0.03229839354753494, + -0.01699712686240673, + 0.024223795160651207, + -0.009201958775520325, + -0.0021619785111397505, + 0.006730438210070133, + 0.03659585490822792, + 0.01705493964254856, + -0.019945606589317322, + 0.0067545268684625626, + 0.03917818143963814, + 0.0016717695398256183, + 0.0333004929125309, + 0.002787085482850671, + -0.01486766804009676, + -0.017912505194544792, + 0.004991219379007816, + 0.0021704097744077444, + -0.01930966041982174, + -0.009211594238877296, + 0.05453726276755333, + 0.0019560183864086866, + -0.023009715601801872, + 0.020947705954313278, + 0.01783541962504387, + 0.019945606589317322, + -0.0067545268684625626, + -0.013422333635389805, + 0.014000467024743557, + -0.04135581851005554, + 0.050259076058864594, + -0.05237890034914017, + 0.045402754098176956, + -0.04181832820177078, + -0.029600437730550766, + 0.029658250510692596, + 0.012564769014716148, + 0.003068925580009818, + 0.01596612110733986, + -0.012102262116968632, + -0.00018367783923167735, + -0.02412744052708149, + -0.008676821365952492, + 0.017517445608973503, + 0.029311370104551315, + -0.012217888608574867, + 0.03777139261364937, + 0.019733624532818794, + -0.03173953294754028, + 0.04247354343533516, + 0.024551404640078545, + 0.011649390682578087, + 0.03569011017680168, + -0.009495843201875687, + 0.003981894813477993, + 0.020022692158818245, + 0.010994172655045986, + -0.0058054244145751, + -0.023433679714798927, + -0.0262858048081398, + 0.0008063758723437786, + 0.0012995960423722863, + -0.043514184653759, + 0.049372605979442596, + -0.007621727418154478, + 0.01960836350917816, + 0.059432126581668854, + 0.034283317625522614, + -0.008281762711703777, + -0.03846515342593193, + 0.004851503763347864, + 0.04925697669386864, + 0.0070965890772640705, + -0.0008798469789326191, + 0.030390553176403046, + 0.019791439175605774, + 0.010859275236725807, + -0.03630678728222847, + -0.02062009647488594, + -0.051338259130716324, + -0.0414714477956295, + -0.010859275236725807, + -0.01812448725104332, + -0.0277504101395607, + -0.021313857287168503, + 0.013730671256780624, + 0.0062582953833043575, + 0.01642862893640995, + 0.015677055343985558, + 0.03611407428979874, + -0.05353516712784767, + 0.06324780732393265, + 0.015811951830983162, + 0.007361567113548517, + 0.004475716967135668, + -0.02243158221244812, + 0.020832078531384468, + 0.005911415442824364, + 0.01603357121348381, + -0.0333004929125309, + -0.03912036865949631, + -0.01475204061716795, + 0.04490170627832413, + -0.03925526887178421, + 0.00840702559798956, + 0.06135924160480499, + 0.05731230601668358, + 0.029870232567191124, + -0.011745746247470379, + -0.013441604562103748, + -0.015137462876737118, + 0.02854052558541298, + 0.05006636306643486, + -0.009703007526695728, + -0.010098066180944443, + 0.04748403653502464, + -0.03229839354753494, + -0.027654053643345833, + -0.013759578578174114, + 0.015359081327915192, + 0.030795246362686157, + 0.055192481726408005, + 0.004634703975170851, + 0.043514184653759, + -0.011196519248187542, + -0.0019343384774401784, + 0.014173907227814198, + 0.02809729054570198, + 0.027422800660133362, + -0.013325978070497513, + -0.002208951860666275, + 0.05395913124084473, + 0.012073355726897717, + 0.020523739978671074, + 0.025784756988286972, + -0.006749709136784077, + -0.012930920347571373, + 0.003049654420465231, + -0.008079416118562222, + 0.016332272440195084, + -0.02684466727077961, + -0.00900924764573574, + -0.004126428160816431, + 0.019222941249608994, + -0.013547595590353012, + 0.0034880724269896746, + -0.0022318363189697266, + -0.0026280987076461315, + -0.012054084800183773, + -0.011678298003971577, + 0.0116108488291502, + -0.024088896811008453, + -0.06972290575504303, + 0.026825396344065666, + -0.005983682349324226, + -0.005289922002702951, + -0.035420313477516174, + -0.007939700968563557, + -0.02146802470088005, + -0.016804415732622147, + 0.03771357983350754, + 0.010117337107658386, + -0.02696029469370842, + 0.008821354247629642, + -0.05106846243143082, + -0.06529054790735245, + 0.08140120655298233, + -1.964750663319137e-05, + 0.024050354957580566, + 0.03075670450925827, + -0.046982984989881516, + 0.04825488105416298, + 0.011581942439079285, + 0.0642499104142189, + -0.011553035117685795, + -0.027172276750206947, + -0.00940430536866188, + 0.016746601089835167, + -0.010242599062621593, + 0.06189883127808571, + -0.011678298003971577, + -0.03260673210024834, + -0.011948092840611935, + 0.03505416214466095, + 0.05064449831843376, + 0.022817004472017288, + 0.003478436730802059, + 0.05087575316429138, + -0.019849251955747604, + 8.724697545403615e-05, + 0.05068304017186165, + 0.0025751031935214996, + 0.009250137023627758, + -0.020485198125243187, + 0.034861452877521515, + -0.004020437132567167, + -0.022624293342232704, + 0.01175538171082735, + -0.029812419787049294, + 0.01540725864470005, + 0.007014687173068523, + 0.012102262116968632, + -0.005444090813398361, + -0.009385034441947937, + -0.051107004284858704, + -0.003040018957108259, + 0.03175880387425423, + -0.011341053061187267, + 0.0004700346034951508, + 0.03634532913565636, + 0.029311370104551315, + -0.025572773069143295, + -0.03574792295694351, + -0.019155491143465042, + 0.005294739734381437, + -0.04748403653502464, + -0.005699433386325836, + 0.04231937602162361, + 0.022855546325445175, + 0.020427385345101357, + 0.023607119917869568, + -0.012805658392608166, + -0.019810710102319717, + 0.033955711871385574, + -0.03164317458868027, + -0.01648644171655178, + 0.004393815062940121, + 0.010088430717587471, + 0.020716451108455658, + 0.0017861917149275541, + -0.013268165290355682, + -0.05318828672170639, + -0.024455048143863678, + -0.008763540536165237, + -0.003268863307312131, + -0.0059210509061813354, + -0.06995415687561035, + 0.07939700782299042, + -0.012256431393325329, + -0.02645924501121044, + 0.0610509030520916, + 0.0033989434596151114, + -0.17590676248073578, + 0.03150827810168266, + 0.013287436217069626, + 0.02553423121571541, + -0.014790583401918411, + 0.00813241209834814, + -0.0546143501996994, + -0.007332660257816315, + 0.00652809115126729, + -0.0002716023300308734, + -0.001096647116355598, + -0.04960385710000992, + -0.023992542177438736, + -0.019791439175605774, + -0.04917989298701286, + 0.001919885165989399, + -0.015445801429450512, + -0.034514572471380234, + -0.018394282087683678, + -0.03376299887895584, + -0.01540725864470005, + 0.009895719587802887, + -0.011244697496294975, + -0.00804569199681282, + -0.04174124076962471, + -0.03925526887178421, + 0.05584770068526268, + 0.03385935351252556, + -0.026247262954711914, + -0.035651568323373795, + -0.023530034348368645, + 0.009042971767485142, + -0.012612947262823582, + 0.049989279359579086, + 0.011851737275719643, + -0.009201958775520325, + 0.027268631383776665, + -0.005776517558842897, + -0.016977855935692787, + -0.004367317073047161, + 0.046751733869314194, + 0.051685139536857605, + 0.0062197535298764706, + 0.04328292980790138, + 0.0033748545683920383, + -0.07149584591388702, + 0.011080892756581306, + -0.02447432093322277, + -0.00560789555311203, + 0.023375866934657097, + 0.031238483265042305, + -0.009360945783555508, + 0.00767472293227911, + 0.019502371549606323, + -0.03767503425478935, + 0.018028130754828453, + 0.033724457025527954, + 0.03403279557824135, + -0.043244387954473495, + -0.013663223013281822, + -0.046366311609745026, + -0.06155195087194443, + -0.01902059279382229, + -0.007424198091030121, + -0.07114896923303604, + -0.010367861948907375, + -0.007043593563139439, + 0.02990877442061901, + 0.011398866772651672, + -0.04174124076962471, + 0.0039626238867640495, + -0.00844074971973896, + 0.02179563418030739, + 0.03834952414035797, + -0.016505712643265724, + 0.0036807835567742586, + -0.0015489161014556885, + 0.012063720263540745, + -0.00444440171122551, + -0.10044106841087341, + 0.007910793647170067, + 0.08348248153924942, + 0.05172368139028549, + -0.005304375197738409, + -0.017584895715117455, + 0.019752895459532738, + 0.02333732321858406, + -0.010165514424443245, + 0.0062727490440011024, + 0.238961860537529, + 0.026806125417351723, + 0.0002660317695699632, + -0.010358225554227829, + 0.04671319201588631, + -0.05781335383653641, + 0.040122468024492264, + -0.03166244551539421, + 0.029658250510692596, + -0.038484424352645874, + -0.046019431203603745, + 0.003919263835996389, + 0.0006016202387399971, + 0.0030833790078759193, + -0.030679620802402496, + 0.06941457092761993, + -0.011475950479507446, + -0.03538177162408829, + 0.10290776938199997, + -0.01750781014561653, + 0.05611749738454819, + 0.04247354343533516, + 0.002071645110845566, + -0.046982984989881516, + -0.0569654256105423, + -0.040353722870349884, + -0.043861065059900284, + 0.032414019107818604, + 0.0003854223759844899, + 0.04343710094690323, + -0.026767583563923836, + 0.01659243181347847, + 0.031065043061971664, + 0.016216645017266273, + -0.01795104704797268, + -0.0041577438823878765, + -0.00146219611633569, + -0.02004196308553219, + 0.018452094867825508, + 0.03360883146524429, + 0.00971746165305376, + -0.01897241547703743, + -0.0473298653960228, + 0.007568731438368559, + -0.0006103524356149137, + -0.05939358472824097, + -0.01242987159639597, + 0.01625518873333931, + 0.03324268013238907, + -0.008392572402954102, + -0.012217888608574867, + 0.01796068251132965, + -0.020196132361888885, + -0.006846064701676369, + -0.0715729296207428, + -0.024339422583580017, + 0.010069158859550953, + -0.015542156994342804, + -0.006860517896711826, + 0.008373300544917583, + 0.03008221462368965, + 0.034803640097379684, + -0.08271163702011108, + 0.03104577213525772, + 0.0006696713389828801, + -0.012304608710110188, + -0.015609605237841606, + -0.049642398953437805, + 0.03414842113852501, + -0.022624293342232704, + -0.015002565458416939, + 0.009211594238877296, + -0.029947318136692047, + 0.01766197942197323, + 0.05022053420543671, + -0.020119046792387962, + 0.033782269805669785, + 0.048447590321302414, + -0.06991561502218246, + -0.004928588401526213, + -0.037925560027360916, + -0.005810242146253586, + -0.06490512937307358, + -0.02237376756966114, + 0.02435869351029396, + 0.02424306608736515, + 0.024320151656866074, + 0.029831690713763237, + -0.0026497787330299616, + -0.0217570923268795, + -0.07311461865901947, + 0.016669517382979393, + -0.025071725249290466, + 0.038156814873218536, + -0.05777481198310852, + 0.021140417084097862, + -0.029754607006907463, + -0.057851895689964294, + 0.009992075152695179, + 0.01217934675514698, + -0.005492268595844507, + -0.0417797826230526, + -0.012468413449823856, + -0.0053862775675952435, + 0.02474411576986313, + 0.013615044765174389, + 0.017141658812761307, + -0.01579268090426922, + -0.016794780269265175, + 0.002873805584385991, + 0.006927967071533203, + 0.018664078786969185, + -0.01274784468114376, + -0.01625518873333931, + -0.007905975915491581, + 0.03603699058294296, + -0.04968094080686569, + 0.049526773393154144, + -0.01291164942085743, + 0.012670760042965412, + -0.049989279359579086, + 0.016284095123410225, + -0.0016247961902990937, + 0.06667806953191757, + -0.01828829199075699, + -0.00240768538787961, + -0.026247262954711914, + 0.008040874265134335, + -0.011379594914615154, + 0.043976690620183945, + 0.02123677171766758, + -0.02327951043844223, + -0.0709948018193245, + -0.02792385034263134, + 0.06247696653008461, + -0.006099308840930462, + 0.025341520085930824, + 0.020947705954313278, + 0.023028986528515816, + -0.03499634936451912, + -0.02701810747385025, + -0.06648536026477814, + -0.00576206436380744, + 0.004709379281848669, + 0.02543787658214569, + -0.037636492401361465, + -0.011427773162722588, + -0.008541923016309738, + -0.0055308109149336815, + 0.02158365212380886, + 0.03954433277249336, + 0.024763386696577072, + 0.011938457377254963, + -0.01665988191962242, + -0.014848396182060242, + 0.00048087461618706584, + -0.014771312475204468, + -0.002999067772179842, + 0.03098795749247074, + -0.0017368094995617867, + -0.003984303679317236, + -0.014164271764457226, + 0.0357864648103714, + 0.03046763688325882, + 0.038831304758787155, + 0.0037771391216665506, + -0.0021728186402469873, + 0.0016994717298075557, + 0.026748312637209892, + -0.027442071586847305, + 0.019945606589317322, + -0.03424477577209473, + -0.04309022054076195, + 0.00015642728249076754, + -0.004239645786583424, + 0.0464433953166008, + -0.06656244397163391, + 0.04181832820177078, + -0.045287128537893295, + 0.028309272602200508, + 0.01868334971368313, + 0.028983762487769127, + -0.03397498279809952, + -0.04524858668446541, + -0.012709302827715874, + -0.0010147448629140854, + -0.00015657783660572022, + -0.012709302827715874, + -0.005395913030952215, + -0.021564381197094917, + -0.02746134251356125, + 0.12025177478790283, + 0.007506100460886955, + 0.01851954497396946, + 0.002905121073126793, + -0.005174295045435429, + 0.029658250510692596, + -0.0018295517656952143, + 0.014366618357598782, + -0.03237547725439072, + 0.000505866832099855, + -0.025958195328712463, + 0.004249281715601683, + 0.017979953438043594, + -0.020196132361888885, + -0.008676821365952492, + -0.03252964839339256, + -0.0060174064710736275, + 0.03278017044067383, + -0.015995027497410774, + -0.005212837364524603, + -0.003885539248585701, + -0.027885308489203453, + 0.011447044089436531, + 0.006104126572608948, + 0.002974978880956769, + 0.0249753687530756, + 0.03511197865009308, + -0.0546143501996994, + -0.021101875230669975, + 0.024031084030866623, + 0.005342917516827583, + 0.03237547725439072, + -0.002441409742459655, + -0.04019955173134804, + 0.02152583934366703, + 0.011427773162722588, + -0.01469422783702612, + 0.06583014130592346, + -0.020408114418387413, + 0.007472375873476267, + 0.04004538431763649, + 0.016361178830266, + -0.0458652600646019, + -0.013065817765891552, + -0.028521254658699036, + 0.027538428083062172, + 0.032279122620821, + 0.014347347430884838, + -0.019290389493107796, + 0.006335380021482706, + 0.011649390682578087, + 0.0394287072122097, + -0.020812807604670525, + -0.03470728546380997, + -0.0041456990875303745, + -0.07581257820129395, + -0.02967752143740654, + 0.011418137699365616, + -0.004278188105672598, + 0.020947705954313278, + 0.046636104583740234, + 0.04185687005519867, + -0.011312146671116352, + -0.044092319905757904, + -0.02333732321858406, + -0.04174124076962471, + -0.013711400330066681, + -0.052032019942998886, + -0.03347393125295639, + -0.0014092004857957363, + 0.017122387886047363, + 0.00872499868273735, + 0.01469422783702612, + -0.022181056439876556, + -0.03279944136738777, + 0.012478048913180828, + 0.03360883146524429, + -0.011254332959651947, + -0.05800606682896614, + -0.059277959167957306, + -0.003880721516907215, + -0.056849800050258636, + -0.031007228419184685, + 0.02304825745522976, + -0.012294973246753216, + 0.019868522882461548, + -0.010772555135190487, + -0.02588111162185669, + 0.002401662990450859, + -0.026517057791352272, + -0.02283627539873123, + -0.008845442906022072, + 0.007607273757457733, + 0.029465539380908012, + 0.02713373489677906, + 0.05033615976572037, + -0.00029629343771375716, + 0.0005778324557468295, + -0.004278188105672598, + -0.016669517382979393, + -0.00437454367056489, + 0.003244774416089058, + 0.03954433277249336, + -0.010232963599264622, + 0.051993478089571, + -0.0062245712615549564, + 0.04027663543820381, + 0.025688400492072105, + 0.0024281609803438187, + 0.0001755478442646563, + 0.01552288606762886, + -0.032645273953676224, + -0.05172368139028549, + -0.012015542015433311, + -0.0184713676571846, + 0.005863237660378218, + 0.016158832237124443, + 0.04817779362201691, + 0.035651568323373795, + 0.050952836871147156, + -0.053380995988845825, + 0.02158365212380886, + 0.02724936045706272, + 0.0076409983448684216, + 0.017247650772333145, + 0.003266454441472888, + -0.014000467024743557, + 0.024262337014079094, + 0.039101097732782364, + -0.009466936811804771, + -0.002283627400174737, + -0.021487297490239143, + -0.008166136220097542, + -0.0348999947309494, + -0.00406620604917407, + -0.002760587725788355, + 0.010242599062621593, + -0.02549568936228752, + 0.011928821913897991, + -0.055308107286691666, + -0.014723134227097034, + -0.02474411576986313, + -0.004083068110048771, + 0.03621043264865875, + -0.0038494057953357697, + -0.008599736727774143, + -0.03597917780280113, + 0.04077768698334694, + 0.007443469483405352, + -0.009389852173626423, + -0.025399332866072655, + 0.04389960691332817, + 0.016669517382979393, + 0.004829823970794678, + 0.0043070949614048, + -0.022894088178873062, + 0.006489548832178116, + 0.07003124058246613, + 0.011244697496294975, + 0.008089051581919193, + 0.005901779979467392, + -0.03312705084681511, + -0.022412311285734177, + 0.014482244849205017, + -0.028232188895344734, + -0.0245321337133646, + -0.01806667260825634, + 0.0039168549701571465, + 0.027538428083062172, + 0.011408502236008644, + 0.006783433724194765, + 0.0049864016473293304, + 0.035266146063804626, + 0.01609138399362564, + 0.01885678991675377, + 0.06825830042362213, + -0.011890280060470104, + 0.026420703157782555, + -0.015513249672949314, + -0.0006365491426549852, + 0.00628720223903656, + 0.032645273953676224, + 0.045556921511888504, + -0.035940635949373245, + 0.01937710866332054, + -0.04447774216532707, + 0.024262337014079094, + -0.012786386534571648, + 0.019059136509895325, + -0.015031471848487854, + -0.07323025166988373, + -0.02503318153321743, + -0.03274162858724594, + 0.014039009809494019, + 0.002955707721412182, + -0.021313857287168503, + -0.036788564175367355, + 0.05087575316429138, + 0.026073822751641273, + -0.014308805577456951, + -0.008628643117845058, + -0.05426746979355812, + 0.01841355301439762, + -0.1606440395116806, + -0.03617188706994057, + -0.013595773838460445, + -0.003955396823585033, + -0.02894521877169609, + -0.04297459498047829, + -0.00078590027987957, + 0.008758722804486752, + 0.013210351578891277, + -0.044092319905757904, + 0.03233693540096283, + 0.006532908882945776, + 0.0549226850271225, + -0.017401820048689842, + -0.03632605820894241, + 0.051107004284858704, + -0.02503318153321743, + -0.003117103362455964, + -0.016216645017266273, + -0.0368078351020813, + -0.0010532870655879378, + -0.016611704602837563, + -0.021217500790953636, + -0.015657782554626465, + 0.014761676080524921, + 0.0019054318545386195, + -0.015474707819521427, + 0.00815650075674057, + -0.004437175113707781, + 0.009905355051159859, + -0.014713498763740063, + -0.046636104583740234, + 0.0392938107252121, + 0.016833322122693062, + -0.027943121269345284, + 0.0019210895989090204, + -0.0005296546150930226, + -0.019406015053391457, + 0.04043080657720566, + -0.0026449610013514757, + 0.020022692158818245, + 0.014231720939278603, + -0.027654053643345833, + 0.002738907700404525, + -0.006581086665391922, + 0.047214239835739136, + 0.028521254658699036, + -0.010917088016867638, + -0.0531497448682785, + 0.015715597197413445, + 0.0348999947309494, + 0.03626824542880058, + 0.00787225179374218, + 0.005458544008433819, + -0.011842101812362671, + 0.01453042309731245, + -0.0273071750998497, + -2.5669731257949024e-05, + -0.018876060843467712, + 0.04968094080686569, + -0.037752121686935425, + -0.01478094793856144, + -0.023240968585014343, + -0.03676929324865341, + 0.0025221076793968678, + 0.007342296186834574, + -0.06178320571780205, + -0.017026033252477646, + -0.010406403802335262, + 0.018269019201397896, + 0.0005353757296688855, + 0.02304825745522976, + 0.037925560027360916, + -0.05580915883183479, + -0.024223795160651207, + -0.03858077898621559, + 0.04316730424761772, + 0.009756003506481647, + -0.00367355695925653, + 0.0021836585365235806, + 0.01618773862719536, + -0.020350301638245583, + 0.027711868286132812, + -0.00676898006349802, + 0.04231937602162361, + 0.011032715439796448, + -0.036287516355514526, + 0.006605175789445639, + 0.06814267486333847, + -0.003357992274686694, + -0.02225814200937748, + -0.016833322122693062, + -0.0007329047075472772, + -0.013008004985749722, + 0.004104748368263245, + 0.00912005640566349, + -0.057582102715969086, + -0.0458652600646019, + -0.02553423121571541, + -0.03624897450208664, + -0.017825784161686897, + -0.021988345310091972, + -0.004581708461046219, + -0.010840004310011864, + -0.017864326015114784, + 0.023202426731586456, + -0.005010490771383047, + -0.0071447668597102165, + -0.029041575267910957, + -0.02395400032401085, + -0.00934649258852005, + -0.00620048213750124, + -0.0067063490860164165, + -0.0034952990245074034, + -0.040970396250486374, + 0.006142668891698122, + 0.0026690498925745487, + 0.007612091489136219, + -0.004726241808384657, + -0.018278654664754868, + 0.008816536515951157, + -0.015465072356164455, + -0.031392652541399, + -0.02923428639769554, + 0.025013910606503487, + -0.036441683769226074, + 0.04817779362201691, + 0.02424306608736515, + 0.049758028239011765, + 0.004646748304367065, + -0.0003167690010741353, + -0.008151683025062084, + -0.055076856166124344, + 0.01801849529147148, + 0.010984537191689014, + 0.03800264373421669, + -0.0030568810179829597, + 0.040469348430633545, + 0.0073037538677453995, + -0.016216645017266273, + 0.009693372063338757, + 0.008435931988060474, + 0.01784505508840084, + -0.050490330904722214, + -0.01568669080734253, + -0.023934729397296906, + -0.025399332866072655, + -0.006590722594410181, + 0.05781335383653641, + 0.016785144805908203, + -0.017315099015831947, + 0.0025510143022984266, + -0.05191639065742493, + 0.019810710102319717, + 0.02979314886033535, + 0.01710311695933342, + -0.008142047561705112, + 0.008681639097630978, + -0.00492617953568697, + 0.008484109304845333, + 0.0692218542098999, + -0.04786945879459381, + -0.020427385345101357, + -0.02038884349167347, + -0.0003766901500057429, + 0.010984537191689014, + -0.008387753739953041, + 0.008195042610168457, + -0.02640143223106861, + -0.01242987159639597, + -0.02231595478951931, + -0.021602923050522804, + -0.013672858476638794, + -0.004131245892494917, + 0.020870620384812355, + -0.020350301638245583, + 0.030737433582544327, + -0.07319170981645584, + 0.0052369264885783195, + -0.037520866841077805, + 0.0027292720042169094, + 0.07762406021356583, + -0.007178491447120905, + 0.04243500158190727, + -0.004651566036045551, + 0.011032715439796448, + -0.007419380359351635, + 0.06675515323877335, + 0.006552180275321007, + -0.03484218195080757, + -0.0002229728561360389, + 0.004639521706849337, + -0.014684592373669147, + 0.008561193943023682, + 0.027268631383776665, + -0.010261869989335537, + 0.030101487413048744, + 0.02447432093322277, + 0.006354651413857937, + 0.04582671821117401, + -0.02418525330722332, + -0.020523739978671074, + 0.02848271280527115, + -0.024724844843149185, + -0.004237236920744181, + -0.010406403802335262, + -0.011928821913897991, + -0.005993317812681198, + -0.06367177516222, + 0.017209108918905258, + -0.006773797795176506, + 0.0036783746909350157, + 0.022181056439876556, + 0.032259851694107056, + -0.029022304341197014, + -0.01919403299689293, + -0.0016970628639683127, + -0.0018680939683690667, + 0.013094725087285042, + 0.045287128537893295, + 0.0249753687530756, + -0.0045961616560816765, + 0.0016958584310486913, + -0.037520866841077805, + 0.0701083242893219, + -0.03324268013238907, + 0.01231424417346716, + -0.02187271974980831, + -0.00044474127935245633, + -0.02079353667795658, + 0.031855158507823944, + -0.029484810307621956, + -0.029889503493905067, + 0.05769772827625275, + -0.0173825491219759, + -0.00234264531172812, + -0.04185687005519867, + 0.009413940832018852, + 0.017286192625761032, + 0.022046159952878952, + 0.04547983780503273, + 0.041201651096343994, + 0.00877799466252327, + -0.015995027497410774 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "曲轴主轴颈跳动超差导致主机运行中振动异常增大", + "故障现象": "主机运行中振动异常增大", + "故障原因": "曲轴主轴颈跳动超差", + "维修方案": "执行以下维修项目:MTO03 检测曲轴主轴颈跳动量", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + -0.014684749767184258, + -0.012695202603936195, + -0.07340480387210846, + 0.012117287144064903, + -0.04240576922893524, + 0.02933160401880741, + 0.02851683646440506, + 0.015063711442053318, + -0.05176611244678497, + 0.015291087329387665, + -0.009137704037129879, + -7.919698691694066e-05, + -0.00569863012060523, + -0.000807069125585258, + -0.014533164910972118, + -0.038729842752218246, + 0.022908208891749382, + 0.0076265959069132805, + 0.004313053097575903, + 0.015992166474461555, + -0.015755316242575645, + 0.00491702277213335, + 0.03295068442821503, + 0.00821872241795063, + -0.03226855397224426, + 0.003228276502341032, + -0.006134436000138521, + 0.024291418492794037, + 0.06192227452993393, + 0.005641785915941, + -0.012638358399271965, + -0.030733760446310043, + -0.013671028427779675, + -0.022965053096413612, + -0.030942188575863838, + -0.061884377151727676, + -0.024120885878801346, + -0.008772953413426876, + -0.04441426321864128, + 0.03664555773139, + -0.0177922323346138, + -0.010705656372010708, + 0.028706317767500877, + 0.0021790273021906614, + 0.004746490158140659, + -0.028592629358172417, + -0.02645149827003479, + -0.02739890106022358, + -0.009066648781299591, + -0.015944795683026314, + -0.0061296988278627396, + -0.030184267088770866, + 0.05491149052977562, + -0.013689976185560226, + 0.011378312483429909, + 0.041799429804086685, + -0.045626938343048096, + 0.006025484297424555, + -0.02396930195391178, + 0.03952566161751747, + 0.0035930266603827477, + 0.037611909210681915, + 0.034371789544820786, + -0.009052437730133533, + 0.008701898157596588, + 0.08663055300712585, + -0.000382514059310779, + 0.0046043796464800835, + 0.019990207627415657, + -0.0004956102930009365, + -0.01837962307035923, + -0.021885013207793236, + 0.024727223441004753, + -0.009151915088295937, + -0.02233976684510708, + 0.052524033933877945, + -0.0036072377115488052, + -0.024310367181897163, + 0.06461289525032043, + 0.00010495450987946242, + 0.02061549387872219, + -0.02516302838921547, + -0.013964722864329815, + 0.012193079106509686, + -0.019819675013422966, + 0.08534207940101624, + -0.025541990995407104, + -0.013623658567667007, + -0.029918992891907692, + -0.043504755944013596, + 0.0252198725938797, + -0.003751716809347272, + -0.0047488585114479065, + 0.01891016773879528, + -0.02215028740465641, + 0.015688996762037277, + -0.02499249577522278, + -0.03285594284534454, + 0.03276120126247406, + 0.013292066752910614, + -0.0030411642510443926, + 0.07677755504846573, + 0.018635421991348267, + -0.022870313376188278, + 0.06347601860761642, + -0.010080370120704174, + 0.009213495999574661, + 0.029426343739032745, + -0.008995593525469303, + 0.02539040520787239, + 0.018521733582019806, + -0.0024466686882078648, + -0.009909837506711483, + -0.05036395415663719, + -0.03173800930380821, + -0.004149626009166241, + -0.044452156871557236, + -0.02681151032447815, + 0.03840772435069084, + -0.018057504668831825, + 0.009175600484013557, + 0.07537540048360825, + 0.06385497748851776, + -0.007200264371931553, + -0.0353381410241127, + -0.010809870436787605, + 0.06718983501195908, + 0.0024893018417060375, + -0.012837313115596771, + 0.027531538158655167, + 0.0019634931813925505, + 0.034845490008592606, + -0.03039269521832466, + -0.036626607179641724, + -0.054343048483133316, + -0.03075270727276802, + -0.011577267199754715, + -0.026375705376267433, + -0.021771326661109924, + -0.0030672180000692606, + 0.0017325635999441147, + -0.010961455292999744, + 0.036209750920534134, + 0.0076265959069132805, + 0.013841561041772366, + -0.026432549580931664, + 0.05650312826037407, + 0.006072854623198509, + 0.01955440267920494, + 0.0018142771441489458, + -0.0385214127600193, + 0.03922249376773834, + -0.000995365553535521, + 0.014807912521064281, + -0.04282262548804283, + -0.03044953942298889, + -0.010535123758018017, + 0.04085202515125275, + -0.01814277097582817, + 0.020710233598947525, + 0.06169489771127701, + 0.035319190472364426, + 0.018872272223234177, + 0.0006560767069458961, + -0.004426741506904364, + -0.010942506603896618, + 0.017631173133850098, + 0.057526323944330215, + 0.0001165750072686933, + -0.0313400998711586, + 0.024139834567904472, + -0.04293631389737129, + -0.009204022586345673, + -0.026659926399588585, + 0.01066775992512703, + 0.027948394417762756, + 0.07480695843696594, + 0.009582983329892159, + 0.04058675467967987, + -0.019705986604094505, + 0.030544279143214226, + 0.025371458381414413, + 0.01667429693043232, + 0.0018237511394545436, + -0.014675275422632694, + 0.003164326772093773, + 0.0621117539703846, + -0.02880105748772621, + 0.014192099682986736, + 0.014211048372089863, + -0.010677234269678593, + 0.017460640519857407, + 0.010819344781339169, + -0.00850768107920885, + 0.03181380033493042, + 0.0003532037662807852, + -0.019535453990101814, + -0.010639337822794914, + 0.002053496427834034, + 0.004414898809045553, + -0.004490691237151623, + -0.006593926344066858, + -0.001017866306938231, + -0.029918992891907692, + -0.025409353896975517, + 0.0163237564265728, + -0.04524797573685646, + -0.08132509142160416, + 0.023590339347720146, + -0.0009651670115999877, + -0.013964722864329815, + -0.01766907051205635, + -0.017223790287971497, + -0.029180018231272697, + -0.022548196837306023, + -0.006949202623218298, + 0.026148328557610512, + -0.01774486154317856, + -0.005873899906873703, + -0.06400655955076218, + -0.07882394641637802, + 0.06453710794448853, + 0.009270340204238892, + -0.014125782065093517, + 0.045740626752376556, + -0.018985960632562637, + 0.0599895715713501, + 0.02921791560947895, + 0.0637412890791893, + -0.0021979755256325006, + -0.024670379236340523, + 0.0009817465906962752, + -0.017830127850174904, + -0.015120555646717548, + 0.07605753093957901, + 0.0393361821770668, + -0.015546886250376701, + -0.0032448559068143368, + 0.035262346267700195, + 0.05919375270605087, + 0.02821366675198078, + 0.0012268871068954468, + 0.028971590101718903, + -0.02374192513525486, + -0.007560277823358774, + 0.04524797573685646, + 0.022112390026450157, + 0.04706699028611183, + -0.012761521153151989, + 0.06150541454553604, + -0.015764789655804634, + -0.0015442671719938517, + -0.005442831665277481, + -0.02197975479066372, + 0.021695533767342567, + 0.023836664855480194, + 0.0026953620836138725, + 0.003173800650984049, + -0.013557340018451214, + -0.03285594284534454, + 0.01287520956248045, + 0.03404967114329338, + 0.01122672762721777, + -0.019781779497861862, + 0.00618654303252697, + 0.03387913852930069, + -0.02351454831659794, + 0.0013713660882785916, + -0.03063901886343956, + 0.0002291531563969329, + -0.0531303733587265, + -0.0020973137579858303, + 0.02664097771048546, + 0.0347696989774704, + 0.01231624186038971, + 0.03937407582998276, + -0.02173342928290367, + -0.024367211386561394, + 0.04865862801671028, + -0.032836996018886566, + 0.005565993953496218, + 0.01697746478021145, + 0.014807912521064281, + -0.019592298194766045, + 0.013652080669999123, + -0.0010699734557420015, + -0.08026400208473206, + -0.021354468539357185, + -0.01963019371032715, + -0.026262016966938972, + -0.01437210664153099, + -0.020009156316518784, + 0.08473574370145798, + 0.007787654176354408, + -0.005490201525390148, + 0.02398824878036976, + -0.00028570127324201167, + -0.16295334696769714, + 0.027171524241566658, + -0.013509970158338547, + 0.037024516612291336, + -0.0006892358069308102, + 0.007124471943825483, + -0.03279909864068031, + -0.004431478679180145, + 0.01027932483702898, + 0.006115487776696682, + -0.0026858882047235966, + -0.06180858612060547, + 0.011435156688094139, + -0.03336754068732262, + -0.05339564383029938, + -0.0004310684453230351, + -0.010307746939361095, + -0.030260058119893074, + 0.02285136468708515, + -0.05972429737448692, + -0.020426012575626373, + 0.02603464014828205, + 0.0018699370557442307, + -0.005949692334979773, + -0.02251029945909977, + -0.033140163868665695, + 0.04755964130163193, + 0.03458021581172943, + -0.034258101135492325, + -0.035792894661426544, + -0.010753026232123375, + -0.036209750920534134, + -0.0037754017394036055, + 0.07412482798099518, + -0.005291246809065342, + -0.01809540204703808, + 0.00743711506947875, + -0.02067233808338642, + -0.02645149827003479, + -0.009909837506711483, + 0.026887303218245506, + 0.050629228353500366, + 0.0196680910885334, + 0.034428633749485016, + 0.01655113324522972, + -0.061770688742399216, + 0.038028765469789505, + -0.03512971103191376, + -4.840638212044723e-05, + -0.008536103181540966, + 0.04172363877296448, + 0.0008970724302344024, + 0.026375705376267433, + -0.00558494171127677, + -0.021013403311371803, + 0.03941197320818901, + 0.02639465406537056, + 0.012676254846155643, + -0.05403988063335419, + -0.008213985711336136, + -0.032609619200229645, + -0.07120682299137115, + -0.014229996129870415, + -0.016570081934332848, + -0.0652950257062912, + -0.016247965395450592, + -0.004969129804521799, + 0.003896195674315095, + 0.02485986053943634, + -0.034428633749485016, + -0.0023874561302363873, + -0.0016437445301562548, + 0.02133551985025406, + 0.03204117715358734, + -0.02503039315342903, + -0.012098339386284351, + -0.0017017730278894305, + 0.0262809656560421, + -0.028137875720858574, + -0.11543160676956177, + -0.0017609857022762299, + 0.05760211497545242, + 0.06393076479434967, + -0.022169234231114388, + -0.014807912521064281, + 0.00972035713493824, + 0.012913106009364128, + -0.0027711542788892984, + -0.004445689730346203, + 0.22798310220241547, + 0.01609637960791588, + -0.0017290108371526003, + 0.004007515497505665, + 0.03704346716403961, + -0.054759904742240906, + 0.013888930901885033, + -0.03647502511739731, + 0.017479589208960533, + -0.03270435705780983, + -0.060823287814855576, + 0.015186873264610767, + -0.003751716809347272, + -0.009128229692578316, + -0.019649142399430275, + 0.0546841137111187, + -0.024348262697458267, + -0.028081031516194344, + 0.10527544468641281, + -0.039980415254831314, + 0.03634238615632057, + 0.0652950257062912, + 0.006323916371911764, + -0.0008733873255550861, + -0.03812350332736969, + -0.03617185354232788, + -0.02857368066906929, + 0.044565845280885696, + 0.013832086697220802, + 0.041496261954307556, + -0.033727552741765976, + 0.0022631094325333834, + 0.037555065006017685, + -0.03941197320818901, + -0.05460832267999649, + 0.004279893822968006, + 0.010393013246357441, + -0.014684749767184258, + 0.0139363007619977, + 0.019592298194766045, + 0.01650376431643963, + -0.01891016773879528, + -0.0796576589345932, + 0.0074465894140303135, + 0.0075650145299732685, + -0.056048374623060226, + -0.00034136121394112706, + 0.015812160447239876, + 0.026148328557610512, + -0.00029458318022079766, + -0.005509149748831987, + 0.007498696446418762, + -0.016522711142897606, + -0.01961124688386917, + -0.04543745890259743, + -0.018398569896817207, + -0.015764789655804634, + 0.011709903366863728, + -0.004348580725491047, + 0.0048459675163030624, + 0.0163237564265728, + 0.02544724941253662, + -0.0924665555357933, + 0.049340758472681046, + 0.007787654176354408, + -0.010629864409565926, + -0.020539700984954834, + -0.030733760446310043, + 0.020122844725847244, + -0.01637112721800804, + 0.004305947571992874, + 0.00960666872560978, + -0.02508723735809326, + 0.015423724427819252, + 0.032836996018886566, + -0.024878807365894318, + 0.010317221283912659, + 0.06787196546792984, + -0.05290299654006958, + 0.016456393525004387, + -0.04202680662274361, + -0.021373417228460312, + -0.04949234426021576, + -0.04104150831699371, + 0.027967343106865883, + 0.024461951106786728, + 0.005736526567488909, + 0.01891016773879528, + -0.01703430898487568, + -0.020009156316518784, + -0.05980009213089943, + -0.00028984618256799877, + -0.023230327293276787, + 0.05078081041574478, + -0.06571188569068909, + 0.013074164278805256, + -0.014590009115636349, + -0.0621117539703846, + 0.003339596325531602, + 0.01631428301334381, + -0.01796276494860649, + -0.03391703590750694, + -0.021638689562678337, + 0.009147178381681442, + 0.011861488223075867, + -0.01452369149774313, + 0.0010906979441642761, + -0.010535123758018017, + -0.005674945190548897, + -0.003784875851124525, + 0.004988078027963638, + 0.022491352632641792, + -0.009151915088295937, + -0.028384199365973473, + -0.011747799813747406, + 0.02127867564558983, + -0.035091813653707504, + 0.03268541023135185, + -0.012003598734736443, + 0.020823922008275986, + -0.050705019384622574, + 0.0072760568000376225, + 0.0002956193930003792, + 0.04854493960738182, + -0.017365900799632072, + 0.016882725059986115, + -0.026773614808917046, + -0.008166615851223469, + 0.00951192807406187, + 0.03312121704220772, + 0.023230327293276787, + -0.015869004651904106, + -0.07268477231264114, + -0.01375629473477602, + 0.026110433042049408, + 0.005390724167227745, + 0.00951192807406187, + 0.0069634136743843555, + 0.020823922008275986, + -0.02415878139436245, + -0.031093772500753403, + -0.05449463427066803, + -0.0027214158326387405, + -0.0030648494139313698, + 0.03139694407582283, + -0.0249735489487648, + 0.013917353004217148, + 0.01837962307035923, + -0.032022226601839066, + 0.009824571199715137, + 0.031131669878959656, + 0.03270435705780983, + 0.005836003925651312, + -0.03753611445426941, + -0.018862798810005188, + 0.0009787859162315726, + -0.012401508167386055, + -0.020482856780290604, + 0.01838909648358822, + -0.004992814734578133, + -0.0019634931813925505, + -0.010184584185481071, + 0.054229360073804855, + 0.021903961896896362, + 0.031245358288288116, + -0.018180668354034424, + 0.011889910325407982, + 0.04077623412013054, + 0.013112060725688934, + -0.029748460277915, + 0.03044953942298889, + -0.03751716762781143, + -0.03488338738679886, + 0.02692519873380661, + 0.010525649413466454, + 0.0324011892080307, + -0.058473724871873856, + 0.033083319664001465, + -0.033386487513780594, + 0.04555114731192589, + 0.04085202515125275, + 0.02086181938648224, + -0.045513249933719635, + -0.058360036462545395, + 0.010914084501564503, + -0.013708924874663353, + 0.0047228047624230385, + -0.010317221283912659, + -0.032552774995565414, + -0.010269850492477417, + -0.028308408334851265, + 0.1041385605931282, + -0.00839399266988039, + 0.028118927031755447, + -0.007508170325309038, + 0.013339437544345856, + 0.015357405878603458, + 0.03005162999033928, + -0.001804803148843348, + -0.04096571356058121, + 0.039146699011325836, + 0.010260377079248428, + -0.0054286206141114235, + 0.0019812569953501225, + -0.0185691025108099, + -0.011056195013225079, + -0.005769685376435518, + 0.0005779159837402403, + 0.008754005655646324, + -0.026584133505821228, + -0.023533495143055916, + -0.004628064576536417, + -0.03641818091273308, + 0.020293377339839935, + 0.0046043796464800835, + -0.01797223836183548, + 0.01325417123734951, + 0.023457704111933708, + -0.04627117142081261, + -0.02374192513525486, + 0.01637112721800804, + 0.01703430898487568, + 0.03884353116154671, + -0.018578577786684036, + -0.034978125244379044, + -0.02863052487373352, + 0.007740284316241741, + -0.02245345525443554, + 0.06457500159740448, + -0.012060442939400673, + 0.008474521338939667, + 0.044982705265283585, + -0.015461619943380356, + -0.028062082827091217, + -0.0025082500651478767, + -0.019819675013422966, + 0.05483569949865341, + 0.03439073637127876, + 0.004474111832678318, + -0.025712523609399796, + 0.015641627833247185, + 0.01369945053011179, + 0.030260058119893074, + 0.010904611088335514, + -0.0605580136179924, + 0.017650121822953224, + -0.0457027293741703, + -0.03336754068732262, + 0.010857241228222847, + 0.016105854883790016, + 0.029312655329704285, + 0.07264687865972519, + 0.04107940196990967, + -0.022699780762195587, + -0.06097486987709999, + -0.01463737990707159, + -0.053471438586711884, + -0.015035289339721203, + -0.04744595289230347, + -0.00385829946026206, + -0.020160740241408348, + -0.01027932483702898, + 0.018758583813905716, + 0.014381580986082554, + -0.04702909663319588, + -0.011567792855203152, + 0.03298857808113098, + 0.03287488967180252, + -0.017346952110528946, + -0.034087568521499634, + -0.0342770479619503, + -0.02131657302379608, + -0.03918459638953209, + -0.010942506603896618, + 0.044338468462228775, + -0.025523042306303978, + 0.004973866976797581, + 0.004031200427561998, + -0.01980072632431984, + -0.017811181023716927, + -0.028857901692390442, + -0.015101606957614422, + 0.00035468407440930605, + 0.005011762958019972, + 0.028081031516194344, + 0.053698815405368805, + 0.07401113957166672, + -0.01815224625170231, + -0.026318861171603203, + -0.00192914973013103, + -0.03645607456564903, + -0.01066775992512703, + -0.007223949301987886, + 0.029312655329704285, + -0.04941654950380325, + 0.04142046719789505, + -0.01702483557164669, + 0.04767332971096039, + 0.015234244056046009, + 0.02127867564558983, + 0.017830127850174904, + 0.023249274119734764, + -0.016986940056085587, + -0.0284031480550766, + -0.03416335955262184, + -0.022301871329545975, + -0.01785854995250702, + 0.02645149827003479, + 0.047218576073646545, + 0.045399561524391174, + 0.050401851534843445, + -0.059951674193143845, + 0.022567143663764, + 0.03560341149568558, + 0.034258101135492325, + 0.029540032148361206, + 0.06139172613620758, + -0.01802908256649971, + 0.01304574217647314, + 0.03410651534795761, + -0.011785696260631084, + -0.010951980948448181, + -0.038805633783340454, + 0.026432549580931664, + -0.039790935814380646, + 0.0038867215625941753, + -0.015253191813826561, + 0.015925848856568336, + -0.029956890270113945, + 0.006077591795474291, + -0.048582836985588074, + 0.011681481264531612, + -0.005461779423058033, + -0.005111240316182375, + 0.07101734727621078, + 0.002020337386056781, + -0.013206800445914268, + -0.037327688187360764, + 0.04377002641558647, + 0.0006241018418222666, + 0.010080370120704174, + -0.017830127850174904, + 0.008313463069498539, + 0.01308363862335682, + -0.0006513397092930973, + -0.00734711205586791, + -0.00960666872560978, + -0.012088865041732788, + 0.034902334213256836, + 0.0004002778441645205, + -0.004635170102119446, + -0.00048791264998726547, + -0.017403796315193176, + -0.058473724871873856, + -0.007531855721026659, + -0.01885332353413105, + 0.013633131980895996, + -0.018521733582019806, + 0.034561268985271454, + 0.010620390065014362, + 0.009469294920563698, + 0.021070247516036034, + 0.012941528111696243, + 0.022131338715553284, + 0.015764789655804634, + 0.02120288461446762, + 0.07609542459249496, + 0.009928785264492035, + 0.026489393785595894, + -0.0059686400927603245, + -0.03323490545153618, + -0.02415878139436245, + 0.022282922640442848, + 0.039033010601997375, + -0.009881415404379368, + 0.020293377339839935, + -0.010317221283912659, + 0.021487105637788773, + -0.006177068687975407, + -0.01481738593429327, + -0.021543949842453003, + -0.057943180203437805, + -0.03342438489198685, + -0.019345972687005997, + -0.007996083237230778, + 0.004592536948621273, + -0.030184267088770866, + -0.030885344371199608, + 0.052107177674770355, + 0.005864426027983427, + 0.0036380284000188112, + -0.009620879776775837, + -0.07082786411046982, + 0.029255811125040054, + -0.15469199419021606, + -0.028251564130187035, + -0.007238160353153944, + -0.004547535441815853, + -0.015395302325487137, + -0.03228750079870224, + -0.005390724167227745, + -0.008351359516382217, + 0.005333879962563515, + -0.04077623412013054, + 0.01661745272576809, + 0.026735719293355942, + 0.007707125041633844, + -0.01849331147968769, + -0.02609148435294628, + 0.05449463427066803, + -0.01756485551595688, + -0.000809437595307827, + 0.0029724775813519955, + -0.02499249577522278, + 0.01027932483702898, + -0.018692266196012497, + -0.027436796575784683, + -0.008441362529993057, + 0.029843201860785484, + -0.010250902734696865, + -0.02616727724671364, + -0.014495269395411015, + 0.002335348865017295, + -0.018474362790584564, + -0.0223208200186491, + -0.009166126139461994, + 0.0319085419178009, + 0.024177730083465576, + -0.0026266754139214754, + 0.0036640819162130356, + -0.01437210664153099, + 0.0058975848369300365, + 0.045096393674612045, + -0.00910454522818327, + 0.017545906826853752, + 0.020179688930511475, + -0.024234574288129807, + -0.0038393514696508646, + 0.0010640522232279181, + 0.04460374265909195, + 0.009384028613567352, + -0.0074560632929205894, + -0.041799429804086685, + 0.013102586381137371, + 0.01043090969324112, + 0.03152957931160927, + 0.01921333745121956, + 0.005002289079129696, + -0.005059133283793926, + 0.021600794047117233, + -0.004755964037030935, + 0.036626607179641724, + 0.01331101544201374, + 0.04202680662274361, + -0.02851683646440506, + -0.022226078435778618, + -0.0440731979906559, + -0.041382573544979095, + 0.01493107434362173, + 0.005442831665277481, + -0.05760211497545242, + -0.021638689562678337, + 0.00173374789301306, + 0.00402409490197897, + 0.010023525916039944, + 0.018531206995248795, + 0.04142046719789505, + -0.06252861022949219, + 0.002427720697596669, + -0.012013073079288006, + 0.030297955498099327, + 0.002963003469631076, + -0.017110101878643036, + 0.008877168409526348, + 0.01364260632544756, + -0.023230327293276787, + -0.02108919620513916, + -0.00977720133960247, + 0.06173279136419296, + 0.012145709246397018, + -0.03359491750597954, + -0.001423473353497684, + 0.04225418344140053, + -0.007271319627761841, + -0.050818707793951035, + -0.005111240316182375, + 0.0003191564464941621, + -0.04600590094923973, + -0.0024561427999287844, + -0.006788143888115883, + -0.04225418344140053, + -0.03609606251120567, + 0.006717088632285595, + -0.031321149319410324, + -0.022226078435778618, + 0.0035527620930224657, + 0.0011812933953478932, + -0.03399282693862915, + -0.03374650329351425, + 0.029483187943696976, + -0.018161719664931297, + 0.009919311851263046, + -0.014836334623396397, + -0.023173483088612556, + -0.02167658507823944, + -0.020407065749168396, + -0.014438425190746784, + -0.0031903802882879972, + -0.019592298194766045, + 0.014552113600075245, + 0.0065512931905686855, + -0.015291087329387665, + -0.01304574217647314, + -0.019895467907190323, + -0.0091613894328475, + -0.012780468910932541, + -0.02586410753428936, + -0.027114680036902428, + -0.010800397023558617, + -0.030790604650974274, + 0.03552762046456337, + 0.02504933997988701, + 0.031074825674295425, + 0.030013734474778175, + 0.027361005544662476, + -0.003981462214142084, + -0.05904216691851616, + 0.027076784521341324, + 0.02186606638133526, + 0.0363992303609848, + 0.004912285599857569, + 0.04809018597006798, + 0.013576287776231766, + -0.005509149748831987, + 0.004083307925611734, + 0.00439121387898922, + 0.023249274119734764, + -0.0414583645761013, + 0.0004269235651008785, + 0.0007170658209361136, + -0.012714151293039322, + -0.02449984662234783, + 0.024291418492794037, + -0.01613427698612213, + 0.0032543300185352564, + 0.0020144160371273756, + -0.02133551985025406, + 0.0044243731535971165, + 0.0305253304541111, + 0.007105524186044931, + 0.012628884986042976, + 0.06836461275815964, + -0.00995720736682415, + 0.01116041000932455, + 0.06271809339523315, + -0.06559819728136063, + -0.012733099050819874, + -0.011842540465295315, + 0.01667429693043232, + 0.01932702586054802, + -0.010942506603896618, + 0.005073344334959984, + -0.021164987236261368, + -0.012344663962721825, + -0.004834124818444252, + 0.006811829283833504, + -0.024348262697458267, + 0.014381580986082554, + 0.01755538210272789, + -0.033708605915308, + 0.030563227832317352, + -0.06499186158180237, + 0.030714811757206917, + -0.030184267088770866, + 0.002201528288424015, + 0.06271809339523315, + -0.03151063248515129, + 0.03268541023135185, + -0.027000991627573967, + 0.018948063254356384, + 0.03895721957087517, + 0.06139172613620758, + -0.016058484092354774, + -0.010175110772252083, + -0.01298889797180891, + 0.00486017856746912, + 0.013481548056006432, + -0.01855015568435192, + 0.0377066470682621, + 0.012799417600035667, + 0.0039861989207565784, + 0.004422004334628582, + 0.005883373785763979, + 0.022245027124881744, + 0.001916122972033918, + -0.007328163832426071, + 0.018474362790584564, + -0.04240576922893524, + -0.004703857004642487, + -0.011908858083188534, + -0.021752377972006798, + -0.0008112139767035842, + -0.054532527923583984, + 0.02033127285540104, + -0.0038109293673187494, + 0.00804818980395794, + 0.012590988539159298, + 0.028137875720858574, + -0.04718067869544029, + -0.019535453990101814, + -0.006949202623218298, + 0.0008597684209235013, + -0.015385827980935574, + 0.0398288294672966, + 0.01249624788761139, + 0.00030376116046682, + -0.008261355571448803, + -0.02980530448257923, + 0.057298947125673294, + -0.0467638224363327, + 0.009909837506711483, + -0.026963096112012863, + -0.007195527199655771, + -0.004135414958000183, + 0.023173483088612556, + -0.059421129524707794, + -0.05248613655567169, + 0.06540871411561966, + -0.014021567068994045, + -0.005158610641956329, + -0.03300752863287926, + 0.005078081041574478, + 0.0059686400927603245, + 0.007309215608984232, + 0.04737016186118126, + 0.01762169972062111, + 0.036266595125198364, + 0.009582983329892159 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低", + "故障现象": "单缸功率下降、排温偏低", + "故障原因": "活塞头烧蚀或活塞环断裂", + "维修方案": "执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + -0.042180705815553665, + 0.015181994996964931, + -0.05013500154018402, + -0.026845743879675865, + -0.029522670432925224, + -0.0684145838022232, + 0.006797479931265116, + 0.045240048319101334, + -0.04814642667770386, + 0.009751658886671066, + -0.015306280925869942, + -0.014617928303778172, + -0.0003340182302054018, + 0.018690679222345352, + 0.002868134994059801, + 0.0022383404430001974, + 0.012227815575897694, + 0.01988573558628559, + 0.009660834446549416, + 0.03388223424553871, + 0.01878628507256508, + 0.03162596747279167, + 0.0013755097752436996, + -0.015994632616639137, + -0.027151677757501602, + -0.02436002716422081, + -0.004995335359126329, + 0.003470443421974778, + 0.025048378854990005, + 0.005779291968792677, + 0.01980925351381302, + -0.023996729403734207, + -0.030727285891771317, + -0.006563249044120312, + -0.05858643725514412, + -0.042142465710639954, + -0.018336942419409752, + -0.01614760048687458, + -0.029560912400484085, + 0.06436094641685486, + 0.017639029771089554, + -0.04026861488819122, + 0.04543126001954079, + -0.0167499091476202, + 0.0070030298084020615, + -0.00787781085819006, + -0.004189867060631514, + -0.02269650809466839, + -0.027667943388223648, + -0.028432779014110565, + -0.00019061147759202868, + -0.035163335502147675, + 0.05805105343461037, + -0.0567508302628994, + 0.01765815168619156, + 0.0176294706761837, + -0.026635413989424706, + 0.011969683691859245, + -0.05805105343461037, + -0.00838929507881403, + 0.000745715107768774, + 0.04745807498693466, + 0.00038182048592716455, + -0.04313674941658974, + 0.00432849396020174, + 0.05961896851658821, + 0.01677859015762806, + 0.036788612604141235, + -0.008623526431620121, + -0.026558930054306984, + 0.006783139426261187, + 0.01650133728981018, + 0.008379734121263027, + -0.03126267343759537, + -0.01399649865925312, + 0.044016312807798386, + 0.036119379103183746, + -0.03487652167677879, + 0.0289108008146286, + 0.006744897458702326, + 0.03868158161640167, + -0.0014950153417885303, + -0.027667943388223648, + -0.0022024887148290873, + 0.03652092069387436, + -0.0032457727938890457, + -0.011300452053546906, + -0.01642485335469246, + -0.04237191379070282, + -0.04279257357120514, + 0.020076945424079895, + 0.03443673998117447, + -0.00840841606259346, + 0.03260113298892975, + -0.007624458987265825, + -0.018183976411819458, + -0.015765182673931122, + -0.004849538207054138, + 0.03613850101828575, + -0.03275410085916519, + 0.013594959862530231, + 0.05866292119026184, + 0.06225765123963356, + -0.03860509768128395, + 0.017581667751073837, + -0.0073519861325621605, + 0.06256358325481415, + -0.006152149755507708, + 0.017916282638907433, + -0.023327497765421867, + 0.009450504556298256, + 0.03395871818065643, + -0.012074848636984825, + -0.017791997641324997, + -0.022753871977329254, + -0.040765758603811264, + 0.016443973407149315, + -0.028528383001685143, + 0.042601365596055984, + -0.0033150860108435154, + -0.010965836234390736, + -0.005478138104081154, + 0.006046984810382128, + -0.0306699238717556, + -0.013652322813868523, + 0.025832336395978928, + 0.0078443493694067, + 0.02393936738371849, + -0.025392554700374603, + 0.006587150041013956, + -0.0005132766673341393, + 0.01475177425891161, + -0.032945312559604645, + 0.008790833875536919, + -0.0297903623431921, + 0.007997316308319569, + -0.0063242376782000065, + 0.048414118587970734, + 0.016118919476866722, + -0.014971665106713772, + 0.001485454966314137, + 0.03214223310351372, + 0.04072751849889755, + 0.014493642374873161, + 0.013279465027153492, + -0.012772761285305023, + 0.03260113298892975, + 0.004722862504422665, + 0.015181994996964931, + -0.03292619064450264, + 0.0005476345540955663, + -0.015765182673931122, + 0.024933652952313423, + 0.0419512540102005, + -0.024034971371293068, + -0.03610026091337204, + -0.0058127534575760365, + -0.00722770020365715, + 0.0034441521856933832, + 0.009273636154830456, + -0.01829870231449604, + 0.04007740691304207, + -0.0037476965226233006, + -0.016243204474449158, + 0.053003136068582535, + -5.4113639635033906e-05, + 0.027304645627737045, + 0.02520134672522545, + -0.01847079023718834, + 0.019044416025280952, + 0.016549138352274895, + -0.037247512489557266, + -0.0331365205347538, + 0.016090236604213715, + -0.0170940849930048, + 0.0514734648168087, + 0.041262902319431305, + 0.0048543186858296394, + 0.015344521962106228, + 0.002650634851306677, + -0.0005207457579672337, + 0.008647426962852478, + 0.010019351728260517, + -0.02298332192003727, + -0.020000461488962173, + 0.0005634690169245005, + 0.05334731191396713, + -0.01932166889309883, + 0.019560681656003, + -0.022715630009770393, + -0.005631105042994022, + -0.030861133709549904, + 0.021950792521238327, + 0.035450149327516556, + 0.043098509311676025, + -0.024034971371293068, + 0.01731397584080696, + 0.013470673933625221, + -0.009068086743354797, + 0.018795844167470932, + 0.007299403659999371, + 0.00761489849537611, + -0.02548816055059433, + 0.005095719825476408, + -0.007901712320744991, + 0.006027863826602697, + -0.026061786338686943, + -0.026673655956983566, + 0.049905549734830856, + -0.013575838878750801, + 0.006907425355166197, + -0.033576302230358124, + -0.03835652396082878, + -0.031778935343027115, + -0.020210791379213333, + 0.019398152828216553, + 0.0071177552454173565, + -0.012189573608338833, + 0.016032874584197998, + -0.028949042782187462, + -0.061569299548864365, + 0.09529856592416763, + -0.01811705343425274, + -0.05067038536071777, + 0.029733000323176384, + -0.009460065513849258, + 0.014369356445968151, + 0.005994402337819338, + 0.02464684098958969, + -0.03958026319742203, + -0.029522670432925224, + -0.01560265477746725, + 0.023002443835139275, + 0.004483851138502359, + 0.03915960341691971, + -0.0038934932090342045, + -0.014474521391093731, + 0.013193421065807343, + 0.02665453404188156, + 0.009541328996419907, + -0.00029517890652641654, + 0.026750139892101288, + -0.007815668359398842, + -0.01861419714987278, + -0.037916745990514755, + -0.007600557990372181, + 0.06902644783258438, + 0.06095742806792259, + -0.029140252619981766, + -0.003448932431638241, + 0.015784302726387978, + -0.0011735452571883798, + -0.014837818220257759, + 0.0092545161023736, + -0.0073137441650033, + 0.0005613776738755405, + 0.022409694269299507, + 0.011960122734308243, + -0.02703695371747017, + -0.04979082569479942, + 0.0008508800528943539, + 0.0701737031340599, + 0.032983552664518356, + -0.004727642517536879, + 0.023327497765421867, + 0.04145411029458046, + -0.006046984810382128, + 0.042639605700969696, + -0.0049475328996777534, + 0.02126244083046913, + -0.03179805725812912, + 0.012132211588323116, + -0.005167423281818628, + 0.038088832050561905, + 0.011931441724300385, + 0.03623410686850548, + 2.321023384865839e-05, + 0.021969914436340332, + 0.041339386254549026, + 0.049867305904626846, + 0.03870070353150368, + 0.027170799672603607, + 0.015487928874790668, + 0.022008156403899193, + 0.0015093560796231031, + -0.025048378854990005, + -0.07751613110303879, + -0.018642878159880638, + 0.018212657421827316, + 0.005492478609085083, + -0.003240992547944188, + -0.043060265481472015, + 0.0655846893787384, + -0.022161122411489487, + -0.07025019079446793, + 0.0630989670753479, + 0.04156883805990219, + -0.1710173338651657, + 0.03271586075425148, + -0.022333212196826935, + 0.04206598177552223, + -0.029809484258294106, + 0.00888165831565857, + -0.02858574502170086, + 0.005540280602872372, + -0.07208579033613205, + -0.01628144644200802, + -0.006453303620219231, + -0.060154352337121964, + -0.012983091175556183, + -0.011826276779174805, + -0.05055566132068634, + 0.021071232855319977, + 0.01717056892812252, + -0.0015906199114397168, + 0.02703695371747017, + -0.016979359090328217, + -0.01422594953328371, + -0.015879906713962555, + 0.037419602274894714, + -0.06784095615148544, + -0.08719130605459213, + -0.005846215412020683, + 0.012696277350187302, + -0.0030426131561398506, + -0.010306165553629398, + 0.0171036459505558, + -0.03799322992563248, + 0.005549841094762087, + -0.008523141033947468, + 0.061645783483982086, + 0.024264423176646233, + 0.014474521391093731, + 0.015181994996964931, + -0.00722770020365715, + 0.016443973407149315, + 0.017113205045461655, + 0.06562292575836182, + 0.03457058593630791, + 0.0005365802790038288, + -0.0061569297686219215, + -0.020229913294315338, + -0.015201115980744362, + 0.05002027377486229, + -0.05002027377486229, + 0.010545176453888416, + 0.016702106222510338, + 0.04091872647404671, + -0.03676949068903923, + -0.012438145466148853, + 0.010430451482534409, + -0.01967540569603443, + -0.009708637371659279, + 0.019053976982831955, + 0.04344268515706062, + -0.04818466678261757, + 0.010592978447675705, + -0.041760046035051346, + -0.06952359527349472, + 0.020191671326756477, + 0.04979082569479942, + -0.07560403645038605, + -0.00460813706740737, + -0.0018176805460825562, + -0.0009249735740013421, + -0.0049427528865635395, + -0.032314322888851166, + -0.013336827978491783, + 0.006333798170089722, + 0.035411905497312546, + 0.005994402337819338, + -0.00798297580331564, + -0.009048965759575367, + -0.03510597348213196, + 0.011137924157083035, + -0.022371452301740646, + -0.12191485613584518, + -0.016797710210084915, + 0.01496210414916277, + -0.0037237952928990126, + 0.004180307034403086, + 0.00835583359003067, + -0.043519169092178345, + 0.02059320919215679, + -0.002958959201350808, + 0.04696093127131462, + 0.23296904563903809, + -0.0048997304402291775, + -0.004261570516973734, + -0.015879906713962555, + 0.010793748311698437, + -0.06677018105983734, + -0.026673655956983566, + -0.008456218056380749, + 0.0273237656801939, + -0.02252442017197609, + -0.04202773794531822, + 0.016587380319833755, + -0.021300682798027992, + 0.008977262303233147, + -0.0005688467645086348, + 0.017925843596458435, + -0.0019264307338744402, + 0.008260228671133518, + 0.05694204196333885, + -0.010726825334131718, + 0.0416070781648159, + 0.013900894671678543, + 0.025143982842564583, + 0.0073041836731135845, + -0.003742916276678443, + -0.00926885660737753, + -0.04283081740140915, + 0.032945312559604645, + -0.021950792521238327, + 0.01773463562130928, + -0.03715191036462784, + 0.025679368525743484, + 0.02474244497716427, + -0.030650803819298744, + -0.020784419029951096, + -0.048108186572790146, + 0.01853771321475506, + -0.0017208809731528163, + 0.02284947596490383, + -0.01853771321475506, + -0.006276435684412718, + -0.05384445562958717, + -0.003862421726807952, + -0.005898797884583473, + 0.003525415901094675, + -0.05984841659665108, + 0.005717149004340172, + -0.011587265878915787, + 0.07220052182674408, + 0.012275617569684982, + -0.04470466449856758, + 0.021205078810453415, + -0.015009907074272633, + -0.01489518117159605, + -0.03302179276943207, + -0.007074733264744282, + 0.05545061081647873, + -0.011491660960018635, + -0.023920245468616486, + -0.012313859537243843, + 0.011204847134649754, + -0.019560681656003, + -0.05961896851658821, + 0.006290776189416647, + 0.001326512428931892, + -0.030019814148545265, + -0.02707519382238388, + -0.021319802850484848, + 0.029943330213427544, + 0.054762259125709534, + -0.017036722972989082, + 0.009192372672259808, + -0.016453534364700317, + 0.03973323106765747, + 0.017782436683773994, + -0.04998203366994858, + -0.016300566494464874, + 0.07487744837999344, + -0.04780225083231926, + -0.0025645906571298838, + -0.04015389084815979, + -0.029350582510232925, + -0.04646378755569458, + -0.01748606376349926, + 0.03342333436012268, + 0.007265942171216011, + 0.04141587018966675, + 0.0007110584992915392, + -0.00785868987441063, + -0.03902575746178627, + -0.01776331663131714, + 0.04068927466869354, + -0.03711366653442383, + -0.014942983165383339, + 0.010344406589865685, + 0.00905852671712637, + -0.05984841659665108, + -0.05361500382423401, + 0.00355170713737607, + 0.03682685270905495, + -0.034532345831394196, + -0.0366547666490078, + -0.029216734692454338, + -0.04244839772582054, + -0.006969568319618702, + 0.007992535829544067, + 0.011147485114634037, + 0.023461343720555305, + -0.016721228137612343, + -0.002779700793325901, + -0.0043165432289242744, + 0.018241338431835175, + 0.006697095464915037, + -0.006190391257405281, + -0.00794951431453228, + 0.023499585688114166, + -0.011663748882710934, + 0.0419512540102005, + 0.015497489832341671, + 0.06680842489004135, + -0.0691029354929924, + -0.019197383895516396, + -0.017266172915697098, + 0.02026815339922905, + -0.0063720401376485825, + 0.008298470638692379, + -0.009914186783134937, + -0.004393026698380709, + -0.03977147117257118, + 0.048528846353292465, + -0.01924518682062626, + -0.035411905497312546, + -0.029350582510232925, + -0.037629932165145874, + 0.07525986433029175, + 0.0280312392860651, + -0.006515446584671736, + 0.035870809108018875, + 0.03847125172615051, + -0.006639732513576746, + -0.003059344133362174, + -0.0313773974776268, + -0.02277299202978611, + -0.03378663212060928, + -0.0035015149042010307, + -0.05311786010861397, + -0.005956160370260477, + -0.03439849987626076, + -0.009283197112381458, + 0.03187454119324684, + 0.05411214753985405, + 0.008924679830670357, + 0.01535408291965723, + -0.028853438794612885, + -0.040421582758426666, + -0.050287965685129166, + -0.018078811466693878, + -0.00911110918968916, + -0.05736270174384117, + 0.01395825669169426, + 0.010927594266831875, + 0.015411445870995522, + 0.0595807246863842, + 0.02252442017197609, + 0.011797595769166946, + 0.047649282962083817, + 0.013193421065807343, + -0.015698259696364403, + 0.005119620822370052, + -0.004682230297476053, + 0.04883477836847305, + 0.0005046125152148306, + -0.0370180644094944, + 0.0017077353550121188, + -0.01406342163681984, + -0.002295703161507845, + -0.031989265233278275, + 0.005960940849035978, + -0.010459132492542267, + 0.07430382072925568, + 0.0370180644094944, + 0.023595191538333893, + -0.018021447584033012, + 0.03617674484848976, + -0.011654188856482506, + 0.029350582510232925, + -0.02298332192003727, + -0.016090236604213715, + -0.008025998249650002, + 0.012495508417487144, + -0.02883431687951088, + 0.10478253662586212, + -0.01695067808032036, + -0.014742214232683182, + 0.027763547375798225, + 0.013183861039578915, + 0.006725776474922895, + 0.07583349198102951, + 0.006185611244291067, + -0.011988804675638676, + 0.025679368525743484, + -0.02369079552590847, + 0.033442456275224686, + -0.014703972265124321, + -0.020325517281889915, + -0.018422987312078476, + -0.011051880195736885, + -0.01473265327513218, + 0.005798412952572107, + 0.003821789985522628, + 0.020249033346772194, + -0.007046051789075136, + -0.01741914078593254, + 0.002146321116015315, + -0.00033909722696989775, + -0.0334806963801384, + 0.014245070517063141, + 0.09162735193967819, + -0.0595807246863842, + -0.027438491582870483, + 0.03229520097374916, + -0.04015389084815979, + 0.06302248686552048, + -0.02686486393213272, + -0.016482215374708176, + 0.014923862181603909, + -0.03965674713253975, + -0.03659740462899208, + 0.01500034611672163, + 0.0038528614677488804, + 0.0026817063335329294, + 0.02231409028172493, + -0.0141016636043787, + 0.0013719245325773954, + 0.031186187639832497, + 0.006443743593990803, + 0.00697912834584713, + 0.023136289790272713, + 0.019436394795775414, + 0.008661767467856407, + -0.007022150792181492, + 0.021702222526073456, + 0.013566278852522373, + 0.0132221020758152, + -0.03935081139206886, + 0.018480349332094193, + -0.03147300332784653, + 0.011023199185729027, + 0.04642554745078087, + 0.028318053111433983, + -0.02690310589969158, + 0.0183273833245039, + 0.027973877266049385, + -0.008207646198570728, + -0.008169404231011868, + 0.06654073297977448, + -0.015220236964523792, + 0.03038311004638672, + -0.0754510685801506, + -0.03074640780687332, + -0.012524189427495003, + 0.01475177425891161, + 0.029178494587540627, + 0.010650341399013996, + 0.0052439067512750626, + -0.03286882862448692, + -0.006658853497356176, + 0.010162758640944958, + -0.02114771492779255, + -0.02047848328948021, + -0.011520341970026493, + -0.013929575681686401, + -0.018021447584033012, + -0.034111686050891876, + 0.030115418136119843, + -0.018901009112596512, + -0.01510551106184721, + -0.02248617820441723, + -0.0017304414650425315, + 0.008351053111255169, + -0.05545061081647873, + -0.04015389084815979, + 0.004199427552521229, + 0.005937039386481047, + 0.022581782191991806, + -0.005707588512450457, + 0.060230836272239685, + 0.010851111263036728, + -0.00018194731092080474, + 0.0034035202115774155, + 0.019484197720885277, + -0.015401884913444519, + -0.02481892891228199, + 0.04382510483264923, + -0.011214408092200756, + 0.041262902319431305, + 0.023576069623231888, + -0.008982042782008648, + -0.013757487758994102, + 0.005105280317366123, + 0.01861419714987278, + -0.034111686050891876, + -0.020535847172141075, + -0.032199595123529434, + -0.02812684327363968, + 0.0015774742932990193, + -0.00717511773109436, + -0.010258362628519535, + 0.030784649774432182, + 0.016510896384716034, + 0.019713647663593292, + -0.0863499864935875, + 0.013308146968483925, + 0.05154994875192642, + -0.013862652704119682, + 0.00990462675690651, + 0.045278292149305344, + 0.0006949251983314753, + 0.03504861146211624, + 0.048452362418174744, + -0.06776446849107742, + -0.019312109798192978, + -0.019981341436505318, + -0.01878628507256508, + -0.010095835663378239, + 0.00904418621212244, + -0.0059274788945913315, + -0.011606386862695217, + -0.0148091372102499, + 0.021950792521238327, + -0.042180705815553665, + 0.009708637371659279, + -0.03764905408024788, + -0.015306280925869942, + 0.014302433468401432, + -0.018566394224762917, + -0.00036030946648679674, + -0.06738205254077911, + 0.052544232457876205, + -0.058433469384908676, + 0.013011772185564041, + -0.0514734648168087, + 0.050326209515333176, + 0.03271586075425148, + -0.01677859015762806, + 0.03070816583931446, + -0.009546109475195408, + -0.01699848100543022, + 0.04000092297792435, + 0.011893199756741524, + -0.014780456200242043, + 0.024474753066897392, + -0.020497605204582214, + 0.00193479610607028, + 0.03042135201394558, + -0.00791127234697342, + -0.0016228863969445229, + 0.022428816184401512, + 8.156258991220966e-05, + -0.006759238429367542, + 0.015516610816121101, + 0.013384629972279072, + -0.02611915022134781, + 0.03439849987626076, + 0.0013994108885526657, + 0.0052917092107236385, + 0.011797595769166946, + 0.02214200235903263, + 0.028929922729730606, + 0.01614760048687458, + -0.022447936236858368, + -0.005143522284924984, + 0.0045459941029548645, + 0.0500585176050663, + -0.006759238429367542, + 0.02340398170053959, + -0.09438076615333557, + 0.026291238144040108, + 0.017333095893263817, + -0.024379147216677666, + 0.008351053111255169, + -0.03147300332784653, + 0.006381600629538298, + 0.0013336827978491783, + 0.0075862170197069645, + 0.0011430713348090649, + -0.04206598177552223, + 0.011950562708079815, + 0.049408406019210815, + 0.017361776903271675, + -0.0174478217959404, + -0.0014531883643940091, + -0.050326209515333176, + 0.027476733550429344, + -0.13132233917713165, + -0.02001958340406418, + -0.027859151363372803, + -0.016625622287392616, + -0.046731479465961456, + 0.0037620370276272297, + 0.0051100607961416245, + 0.02912113070487976, + 0.0027844810392707586, + -0.06420798599720001, + 0.019560681656003, + 0.008245888166129589, + 0.04114817827939987, + 0.005497258622199297, + -0.02284947596490383, + 0.026883985847234726, + -0.023212773725390434, + -0.00726116169244051, + 0.005698028486222029, + -0.022294970229268074, + 0.0020913484040647745, + 0.00886731781065464, + -0.0021080791484564543, + -0.008891218341886997, + -0.01787804253399372, + -0.039542023092508316, + 0.022906837984919548, + -0.020746177062392235, + -0.032237838953733444, + 0.055718302726745605, + -0.022371452301740646, + -0.01882452704012394, + 0.020707935094833374, + 0.04642554745078087, + 0.033652786165475845, + 0.0012500288430601358, + 0.01717056892812252, + 0.005745830480009317, + 0.0165682602673769, + 0.032084871083498, + 0.038719821721315384, + 0.009493527002632618, + 0.01865243725478649, + 0.02248617820441723, + 0.0010510520078241825, + 0.044016312807798386, + 0.0033246465027332306, + -0.008174184709787369, + 0.002253876067698002, + -0.01554529182612896, + 0.01500034611672163, + 0.0613398477435112, + 0.046693239361047745, + 0.0039006636943668127, + 0.03409256413578987, + -0.0025550303980708122, + -0.04772576689720154, + -0.03961850702762604, + 0.02724728360772133, + 0.04833763465285301, + -0.009770779870450497, + -0.002999591175466776, + -0.03732399642467499, + -0.052161816507577896, + 0.03522069752216339, + -0.026769259944558144, + -0.0634431466460228, + 0.004541213624179363, + 0.0051291813142597675, + -0.003611460095271468, + -0.03522069752216339, + -0.01963716372847557, + -0.02055496722459793, + -0.03682685270905495, + -0.01542100589722395, + -0.0662730410695076, + 0.022294970229268074, + -0.00861874595284462, + -0.006936106365174055, + -0.0032768442761152983, + 0.005908358376473188, + 0.013575838878750801, + 0.028050361201167107, + 0.013212542049586773, + 0.03221871703863144, + 0.005769731476902962, + -0.043098509311676025, + -0.004677450284361839, + 0.021491892635822296, + -0.02393936738371849, + -0.03191278129816055, + -0.027514975517988205, + 0.003630580846220255, + -0.007834788411855698, + -0.018289141356945038, + 0.020382879301905632, + -0.010334846563637257, + -0.012610233388841152, + 0.003943685442209244, + -0.045775435864925385, + -0.03676949068903923, + 0.018212657421827316, + 0.023174531757831573, + -0.04416928067803383, + -0.003630580846220255, + 0.028050361201167107, + -0.02365255355834961, + -0.009646493941545486, + 0.01769639365375042, + -0.003807449247688055, + -0.05154994875192642, + -0.010201000608503819, + -0.026539810001850128, + 0.0016575430054217577, + -0.04244839772582054, + 0.009799460880458355, + 0.023556949570775032, + 0.006400721147656441, + -0.012992652133107185, + -0.03472355380654335, + -0.011854957789182663, + 0.010506934486329556, + -0.03831828385591507, + -0.015535731799900532, + -0.03688421472907066, + -0.05269720032811165, + 0.024723323062062263, + 0.04118641838431358, + 0.011577704921364784, + 0.0056454455479979515, + -0.013260344043374062, + -0.03460882976651192, + -0.02975212037563324, + 0.04963785782456398, + 0.01720881089568138, + 0.013174300082027912, + -0.056559622287750244, + 0.04979082569479942, + -0.005047917831689119, + -0.000394069793401286, + 0.0050622583366930485, + 0.02640596404671669, + 0.004684620536863804, + -0.03204662725329399, + -0.011721111834049225, + -0.007127315737307072, + -0.010975396260619164, + -0.02273475006222725, + 0.020994748920202255, + -0.00918281264603138, + -0.028432779014110565, + -0.04248664155602455, + -0.026922227814793587, + 0.03531630337238312, + -0.010956276208162308, + 0.011357815004885197, + 0.00782522838562727, + -0.00844665803015232, + -0.02845189906656742, + 0.0317406952381134, + 0.016797710210084915, + -0.06768798828125, + 0.004297422245144844, + 0.0056406655348837376, + -0.020956506952643394, + -0.009885505773127079, + -0.029809484258294106, + 0.03493388369679451, + -0.011137924157083035, + 0.005913138389587402, + -0.014933423139154911, + -0.002911156974732876, + -0.012744080275297165, + -0.021415408700704575, + 0.009526988491415977, + -0.016013754531741142, + 0.013528036884963512, + 0.010468692518770695, + 0.05369148775935173, + -0.005071818828582764, + 0.04256312549114227, + 0.04921719804406166, + 0.028012119233608246, + 0.02531607262790203, + -0.008982042782008648, + 0.031530365347862244, + -0.0264442041516304, + 0.010946715250611305, + -0.024685082957148552, + -0.03743872418999672, + -0.027017831802368164, + 0.04608136788010597, + -0.07254469394683838, + 0.02816508524119854, + 0.03233344107866287, + -0.0038528614677488804, + 0.004937972407788038, + 0.04566070809960365, + 0.02055496722459793, + 0.07422733306884766, + -0.012237376533448696, + -0.00430937297642231, + -0.011883639730513096, + -0.010621660389006138, + -0.036119379103183746, + -0.055718302726745605, + 0.048490602523088455, + 0.00793517380952835, + -0.09392186254262924, + 0.029102010652422905, + 0.01600419357419014, + -0.019771011546254158, + 0.009259295649826527, + -0.017897162586450577, + -0.0037596470210701227, + -0.0005270197871141136, + -0.006295556202530861, + -0.03577520325779915, + 0.004698961041867733, + 0.05135873705148697, + 0.000610673741903156, + 0.009713416919112206, + 0.007973415777087212, + -0.01759122870862484, + 0.06321369856595993, + -0.009354900568723679, + 0.0018595075234770775, + -0.03464706987142563, + 0.008633086457848549, + -0.042639605700969696, + -0.030478714033961296, + -0.058395229279994965, + -0.005564182065427303, + -0.011874078772962093, + -0.01917826198041439, + 0.007691381964832544, + -0.034991245716810226, + -0.008437097072601318, + -0.007361546624451876, + 0.04091872647404671, + 0.054762259125709534, + 0.03535454347729683, + 0.041721805930137634, + 0.01489518117159605 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "气缸套严重磨损导致单缸功率下降、排温偏低", + "故障现象": "单缸功率下降、排温偏低", + "故障原因": "气缸套严重磨损", + "维修方案": "执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + -0.037751030176877975, + 0.006807023659348488, + -0.0693010464310646, + -0.02367660403251648, + -0.03248956426978111, + -0.0589660219848156, + 0.022755848243832588, + 0.055057503283023834, + -0.048330340534448624, + 0.004000124987214804, + -0.013961680233478546, + -0.008164670318365097, + 0.0265516210347414, + 0.014722714200615883, + 0.008051924407482147, + 0.023150457069277763, + 0.010879963636398315, + 0.030347393825650215, + -0.003281370736658573, + 0.02606305666267872, + 0.021327735856175423, + 0.01855606958270073, + 0.0587405301630497, + -0.02813006192445755, + -0.013576465658843517, + -0.008836447261273861, + -0.016216594725847244, + -0.0006688405992463231, + 0.017964154481887817, + 0.010015579871833324, + 0.024973180145025253, + -0.0016923604998737574, + -0.018856724724173546, + -0.015089137479662895, + -0.04032539203763008, + -0.04739079251885414, + 0.016000499948859215, + -0.028430717065930367, + -0.01912919245660305, + 0.06610658019781113, + 0.0064406003803014755, + -0.06682063639163971, + 0.03885969892144203, + -0.037055764347314835, + -0.013839539140462875, + -0.023150457069277763, + -0.012336262501776218, + -0.025236254557967186, + -0.01901644840836525, + -0.013444929383695126, + 0.015587097965180874, + -0.03414316847920418, + 0.038559041917324066, + -0.03709334880113602, + 0.015568307600915432, + 0.008047226816415787, + -0.037074554711580276, + -0.022718265652656555, + -0.03459414839744568, + -0.0036642365157604218, + -0.029990365728735924, + 0.03196341544389725, + 0.02117740735411644, + -0.030554095283150673, + 0.023601440712809563, + 0.062235645949840546, + 0.0018626535311341286, + 0.01416838075965643, + -0.016554832458496094, + -0.06092027947306633, + -0.008615653030574322, + 0.007680803537368774, + -0.018161458894610405, + -0.04374534636735916, + -0.015201883390545845, + 0.058928437530994415, + 0.04175350442528725, + -0.012204726226627827, + 0.050848327577114105, + 0.03256472572684288, + 0.043782927095890045, + -0.014516013674438, + -0.013961680233478546, + 0.020782796666026115, + 0.030234647914767265, + -0.007751269266009331, + -0.003020646283403039, + 0.016460876911878586, + -0.058815691620111465, + -0.032959338277578354, + 0.019223148003220558, + 0.03562765195965767, + -0.00871430616825819, + 0.017456797882914543, + -0.00614934042096138, + -0.0035303509794175625, + -0.039573755115270615, + -0.012242307886481285, + 0.02324441261589527, + -0.023958468809723854, + 0.0020611330401152372, + 0.018274204805493355, + 0.05479442700743675, + -0.058928437530994415, + 0.041152194142341614, + -0.022022999823093414, + 0.0803501307964325, + 0.023281995207071304, + -0.007840526290237904, + -0.010400794446468353, + 0.009583387523889542, + 0.04919472336769104, + -0.024766480550169945, + -0.0022525659296661615, + -0.021496854722499847, + -0.021797509863972664, + 0.0028961561620235443, + -0.0318506695330143, + 0.04130252078175545, + 0.0016653485363349319, + 0.013285205699503422, + -0.014018053188920021, + 0.005740636959671974, + -0.04476005584001541, + -0.02253035642206669, + -0.01937347650527954, + 0.013848934322595596, + 0.0003552665002644062, + -0.05280258506536484, + 0.027528751641511917, + -0.0015032765222713351, + 0.039573755115270615, + -0.05043492466211319, + -0.00882705207914114, + -0.011406110599637032, + -0.014112007804214954, + 0.001870874548330903, + 0.028956864029169083, + 0.004110521636903286, + -0.039235517382621765, + -0.012636917643249035, + 0.01617901399731636, + 0.002314810873940587, + 0.008075413294136524, + 0.002440475393086672, + 0.017701080068945885, + 0.025311417877674103, + 0.019899621605873108, + 0.0004357153084129095, + -0.03327878192067146, + -0.002478057285770774, + 0.007380147930234671, + 0.014976391568779945, + 0.021045871078968048, + -0.01971171237528324, + -0.016028685495257378, + -0.00922635942697525, + 0.006238597445189953, + -0.003476326819509268, + -0.007201633881777525, + 0.0158125888556242, + 0.04483522102236748, + 0.00159488245844841, + -0.014666341245174408, + 0.04291854426264763, + 0.00021389393077697605, + 0.02232365496456623, + 0.023657813668251038, + -0.01560588926076889, + 0.004087032750248909, + 0.02427791617810726, + 0.0037652377504855394, + -0.03438745066523552, + 0.0013564721448346972, + 0.01719372533261776, + 0.03335394710302353, + 0.05002152547240257, + 0.01572803035378456, + 0.043895673006772995, + -0.002352392766624689, + -0.006111758295446634, + 0.03156880661845207, + 0.016554832458496094, + -0.02324441261589527, + -0.04524862393736839, + 0.028280388563871384, + 0.05674868822097778, + -0.022248491644859314, + 0.016949443146586418, + -0.012871804647147655, + -0.018086295574903488, + -0.037863776087760925, + -0.0026189894415438175, + 0.045474112033843994, + 0.03838992491364479, + -0.01754135824739933, + 0.029896412044763565, + -0.009761901572346687, + -0.0073613571003079414, + 0.006468786858022213, + -0.007319077383726835, + 0.0014328104443848133, + 0.0005097046960145235, + 0.011547042988240719, + -0.011885279789566994, + 0.007450614124536514, + -0.0409642830491066, + -0.04818001016974449, + 0.055057503283023834, + -0.020331814885139465, + -0.004387688357383013, + -0.007098283618688583, + -0.03793894127011299, + -0.01584077626466751, + -0.023169249296188354, + 0.016921255737543106, + -0.017278283834457397, + 0.01281543169170618, + 0.037394002079963684, + -0.034218329936265945, + -0.042317233979701996, + 0.1084614023566246, + 0.003297812771052122, + -0.044008418917655945, + 0.010316235013306141, + -0.0360034704208374, + 0.05366697162389755, + 0.028092479333281517, + 0.027585122734308243, + -0.06554285436868668, + -0.013708002865314484, + -0.0033847209997475147, + -0.009437757544219494, + -0.013745584525167942, + 0.03656719997525215, + 0.012091980315744877, + -0.00837606843560934, + 0.03277142718434334, + 0.028430717065930367, + 0.007168749812990427, + 0.0011621031444519758, + 0.02187267318367958, + -0.005674868822097778, + -0.012026212178170681, + -0.022492773830890656, + -0.012110771611332893, + 0.06903797388076782, + 0.04814242944121361, + -0.018509091809391975, + 0.017156142741441727, + 0.005322538316249847, + -0.004798740614205599, + -0.006468786858022213, + -0.01846211403608322, + 0.010175302624702454, + 0.002494499320164323, + 0.01843392848968506, + 0.0005725369555875659, + -0.031268149614334106, + -0.04543653130531311, + 0.03324120119214058, + 0.05498233810067177, + 0.025818774476647377, + 0.02209816500544548, + 0.004641366191208363, + 0.027960943058133125, + -0.008178764022886753, + 0.010654471814632416, + -0.02151564508676529, + 0.04239239543676376, + -0.0209331251680851, + 0.006694278214126825, + -0.0008949192706495523, + 0.01912919245660305, + 0.011518856510519981, + 0.026965022087097168, + -0.027397213503718376, + 0.032282862812280655, + 0.028299180790781975, + 0.03457535803318024, + 0.0150233693420887, + 0.03528941422700882, + 0.006008408032357693, + 0.04483522102236748, + -0.01008134800940752, + -0.02777303382754326, + -0.09057240933179855, + -0.050735581666231155, + 0.012589940801262856, + -0.012627522461116314, + 0.004380641505122185, + -0.06310003250837326, + 0.06599383801221848, + -0.009611574001610279, + -0.02848709002137184, + 0.034669313579797745, + 0.012749663554131985, + -0.15679173171520233, + 0.052877750247716904, + -0.02811126969754696, + 0.018020527437329292, + -0.011020896025002003, + -0.006947956047952175, + -0.016442086547613144, + 0.01857485994696617, + -0.02369539625942707, + -0.005900360178202391, + -0.0093391053378582, + -0.049044396728277206, + -0.022624311968684196, + -0.007713687606155872, + -0.055282991379499435, + 0.0018039317801594734, + 0.00038638903060927987, + -0.006962049286812544, + 0.034556567668914795, + -0.015972312539815903, + 0.01440326776355505, + -0.01548374816775322, + 0.019429849460721016, + -0.06388925015926361, + -0.04840550199151039, + 0.0001704398455331102, + -0.007868712767958641, + -0.02425912395119667, + 0.009390780702233315, + 0.019091611728072166, + -0.03064804896712303, + -0.009367291815578938, + -0.005759428255259991, + 0.05216369405388832, + 0.011744347400963306, + 0.020914334803819656, + 0.017494380474090576, + 0.011377924121916294, + 0.00029081941465847194, + 0.009940415620803833, + 0.04791693761944771, + 0.019317103549838066, + -0.002816294552758336, + 0.0014198916032910347, + -0.011894674971699715, + -0.03357943892478943, + 0.0204821415245533, + -0.051299311220645905, + 0.026852276176214218, + 0.00019642421102616936, + 0.07238276302814484, + -0.019786877557635307, + -0.01740982010960579, + -0.00045626790961250663, + -0.018725188449025154, + -0.005444679409265518, + 0.02207937277853489, + 0.03709334880113602, + -0.05351664125919342, + 0.0028421320021152496, + -0.03711213916540146, + -0.07279616594314575, + 0.028505880385637283, + 0.03168155252933502, + -0.03029102087020874, + -0.0033471391070634127, + -0.021929046139121056, + -0.017964154481887817, + 0.007666710298508406, + -0.01264631375670433, + -0.007389543578028679, + -0.012054398655891418, + 0.030591676011681557, + -0.030234647914767265, + -0.015277047641575336, + -0.0004142818506807089, + -0.049457795917987823, + 0.005346027202904224, + -0.02345111407339573, + -0.10335025936365128, + -0.003055879147723317, + -0.002900853753089905, + -0.004277291242033243, + -0.021947836503386497, + -0.0023911490570753813, + -0.04303129017353058, + 0.020651260390877724, + 0.01030683983117342, + 0.02585635520517826, + 0.22248491644859314, + 0.0184527188539505, + -0.022737056016921997, + -0.050961073487997055, + 0.005496354773640633, + -0.07050366699695587, + -0.027265677228569984, + -0.019317103549838066, + 0.029182353988289833, + -0.028674999251961708, + -0.03367339447140694, + 0.020200278609991074, + -0.01880035176873207, + 0.003133391961455345, + 0.01441266294568777, + 0.009155893698334694, + 0.00289145833812654, + -0.002651873743161559, + 0.07610337436199188, + -0.02813006192445755, + 0.04919472336769104, + 0.03737521171569824, + 0.009743111208081245, + 0.00024589727399870753, + 0.017127957195043564, + -0.05479442700743675, + -0.04660157114267349, + 0.018255414441227913, + -0.007685501128435135, + 0.010861172340810299, + -0.028956864029169083, + 0.0549071729183197, + 0.018856724724173546, + -0.027848197147250175, + -0.0348760150372982, + -0.011274573393166065, + 0.007662012241780758, + 0.008780074305832386, + 0.027923360466957092, + -0.013482511043548584, + -0.016911860555410385, + -0.026025474071502686, + -0.01121820043772459, + 0.007107679266482592, + 0.004209174308925867, + -0.06584350764751434, + 0.013210042379796505, + -0.021891463547945023, + 0.05990556627511978, + 0.008117693476378918, + -0.029802456498146057, + 0.02937026508152485, + -0.015211278572678566, + -0.007314379792660475, + -0.01019409392029047, + -0.003962542861700058, + 0.03017827495932579, + -0.010015579871833324, + -0.019955994561314583, + -0.01753196120262146, + 0.006398320663720369, + 0.0017675242852419615, + -0.08523577451705933, + 0.0019143286626785994, + 0.028750162571668625, + -0.0022666591685265303, + -0.057124506682157516, + -0.02540537342429161, + 0.03198220580816269, + 0.02813006192445755, + -0.012223516590893269, + 0.012542963027954102, + -0.027152931317687035, + 0.04453456774353981, + 0.019899621605873108, + -0.04806726425886154, + -0.03457535803318024, + 0.07644160836935043, + -0.041978996247053146, + 0.022022999823093414, + -0.033974047750234604, + -0.013454324565827847, + -0.05930425599217415, + -0.018631232902407646, + 0.0280173160135746, + -0.0074365208856761456, + 0.03543974459171295, + -0.025480536743998528, + -0.003887379076331854, + -0.06373891979455948, + -0.002499197144061327, + 0.03446261212229729, + -0.030948704108595848, + -0.0012249354040250182, + 0.01982445828616619, + 0.012824827805161476, + -0.018170854076743126, + -0.05043492466211319, + -0.0024334287736564875, + 0.00614934042096138, + -0.020125113427639008, + -0.059717658907175064, + -0.022492773830890656, + -0.03277142718434334, + -0.018029922619462013, + 0.0553581565618515, + 0.011932257562875748, + -0.0037182604428380728, + -0.022380027920007706, + -0.013003341853618622, + 0.010917545296251774, + 0.025424163788557053, + -0.03164397180080414, + -0.012486590072512627, + -0.03496997058391571, + 0.015408583916723728, + -0.006196317728608847, + 0.02813006192445755, + 0.0021257270127534866, + 0.04171592369675636, + -0.07429943978786469, + 6.576834857696667e-05, + 0.009508224204182625, + 0.010842381976544857, + -0.010682658292353153, + -0.0025649655144661665, + -0.0043031289242208, + -0.021233780309557915, + -0.025367790833115578, + 0.04130252078175545, + -0.03521425276994705, + -0.03874695301055908, + -0.008737795054912567, + -0.027359632775187492, + 0.08072594553232193, + 0.011575228534638882, + 0.0032109045423567295, + 0.030328603461384773, + 0.022342447191476822, + -0.012730873189866543, + -0.012599335983395576, + -0.054832011461257935, + -0.003281370736658573, + -0.02437186986207962, + -0.0026777111925184727, + -0.07317198067903519, + -0.020219068974256516, + -0.030460139736533165, + -0.01948622241616249, + 0.030422557145357132, + 0.05317840725183487, + 0.003687725169584155, + 0.0012495985720306635, + -0.0540052093565464, + -0.0204821415245533, + -0.032395608723163605, + 0.003993078134953976, + 0.0036971205845475197, + -0.038671787828207016, + -0.02414637804031372, + 0.009996788576245308, + 0.01674274168908596, + 0.04502313211560249, + 0.03200099989771843, + 0.017691684886813164, + 0.050284598022699356, + 0.040701210498809814, + 0.036059845238924026, + -0.0030511815566569567, + -0.0182272270321846, + 0.06016864255070686, + 0.017400424927473068, + -0.04772903025150299, + -0.000667078944388777, + -0.008272718638181686, + 0.037638284265995026, + -0.0040987771935760975, + 0.010165907442569733, + -0.02596910111606121, + 0.0553581565618515, + 0.03927309811115265, + 0.011067872866988182, + -0.07467526197433472, + 0.03835234045982361, + -0.011030291207134724, + 0.0020470398012548685, + -0.05002152547240257, + -0.02243640087544918, + -0.018725188449025154, + 0.0405133031308651, + -0.04190383106470108, + 0.1109418049454689, + -0.025142299011349678, + -0.011058477684855461, + 0.006976142525672913, + 0.03290296345949173, + 0.007835828699171543, + 0.07974881678819656, + 0.012599335983395576, + 0.0020646562334150076, + 0.023864515125751495, + -0.03506392240524292, + 0.01405563484877348, + 0.006431204732507467, + -0.008972681127488613, + -0.025142299011349678, + 0.007342566270381212, + 0.02219211868941784, + 0.0012848316691815853, + 0.0010258688125759363, + 0.023394741117954254, + 0.01980566792190075, + -0.019335893914103508, + -0.02574360929429531, + -0.0038169128820300102, + -0.022586729377508163, + 0.011894674971699715, + 0.05975523963570595, + -0.05704934149980545, + -0.022924967110157013, + 0.04152801260352135, + -0.014703922905027866, + 0.07072915881872177, + -0.018039317801594734, + -0.005223885644227266, + 0.009193475358188152, + -0.04314403608441353, + -0.05344147980213165, + 0.055733975023031235, + 0.009043147787451744, + 0.009057240560650826, + 0.008272718638181686, + -0.04476005584001541, + -0.013078505173325539, + 0.018490301445126534, + -0.016376318410038948, + -0.020106323063373566, + 0.03019706718623638, + -0.030535303056240082, + 0.011011499911546707, + -0.0010969220893457532, + 0.0008649711962789297, + 0.00129422708414495, + -0.021910253912210464, + -0.03788256645202637, + 0.02219211868941784, + -0.04885648563504219, + 0.04212932288646698, + 0.047202881425619125, + 0.023620231077075005, + -0.015530725009739399, + 0.02392088621854782, + 0.033203620463609695, + -0.015756215900182724, + -0.0147415054962039, + 0.04983361437916756, + 0.003835703944787383, + 0.01560588926076889, + -0.06922588497400284, + -0.040813956409692764, + -0.02142168954014778, + 0.021835090592503548, + 0.012665104120969772, + 0.024879226461052895, + -0.028148852288722992, + -0.019899621605873108, + 0.018133273348212242, + 0.005543332081288099, + -0.019279520958662033, + -0.016817905008792877, + 0.0036971205845475197, + -0.02446582540869713, + -0.04318161681294441, + 0.009808879345655441, + 0.06467846781015396, + -0.00888342410326004, + 0.00899147242307663, + -0.032395608723163605, + -0.01366102509200573, + 0.029858829453587532, + -0.06268662959337234, + -0.014234148897230625, + -0.036510828882455826, + 0.001553777139633894, + 0.02311287634074688, + 0.031268149614334106, + 0.04100186750292778, + -0.0048386710695922375, + -0.012514776550233364, + 0.006666091736406088, + 0.040813956409692764, + -0.01811448112130165, + -0.014572386629879475, + 0.05610979348421097, + -0.03096749633550644, + 0.05069800093770027, + 0.014299917966127396, + -0.006839908193796873, + -0.009940415620803833, + 0.03215132653713226, + 0.016536042094230652, + -0.01615082658827305, + -0.0323016531765461, + -0.02151564508676529, + -0.010682658292353153, + 0.008098902180790901, + 0.005167513154447079, + -0.006356040947139263, + 0.04908197745680809, + 0.046751897782087326, + 0.021722344681620598, + -0.07057882845401764, + 0.008493511937558651, + 0.06024380400776863, + -0.02369539625942707, + 0.016103848814964294, + 0.001534986193291843, + -0.003772284369915724, + 0.003685376374050975, + 0.05565881356596947, + -0.076967753469944, + -0.028317971155047417, + -0.007074795197695494, + -0.013914703391492367, + -0.008474721573293209, + 0.015267651528120041, + -0.03816443309187889, + -0.011368528008460999, + 0.002687106840312481, + 0.0048292758874595165, + -0.03517666831612587, + 0.016799114644527435, + -0.03613501042127609, + -0.017456797882914543, + 0.030535303056240082, + 0.003222648985683918, + 0.00466720387339592, + -0.04855583235621452, + 0.07771939784288406, + -0.022849801927804947, + 0.02390209585428238, + -0.0646033063530922, + 0.021496854722499847, + 0.005914453417062759, + -0.014337499625980854, + 0.03271505609154701, + 0.021459272131323814, + -0.03294054791331291, + 0.033767346292734146, + 0.0041387081146240234, + -0.04314403608441353, + -0.016122641041874886, + -0.026438875123858452, + -0.006708371452987194, + 0.015051555819809437, + -0.025442954152822495, + -0.008127088658511639, + 0.036172591149806976, + -0.013858330436050892, + -0.03196341544389725, + 0.02401484176516533, + -0.022154537960886955, + -0.030478930100798607, + 0.02698381245136261, + 0.012636917643249035, + 0.025198671966791153, + 0.004913834854960442, + -0.005317840725183487, + 0.03348548337817192, + 0.029426638036966324, + -0.044346656650304794, + -0.0005848684813827276, + -0.02277463860809803, + 0.05032217875123024, + 0.008587466552853584, + 0.01405563484877348, + -0.06742195039987564, + 0.020895542576909065, + 0.013322788290679455, + -0.0014328104443848133, + 0.013679816387593746, + -0.018039317801594734, + 0.00774657167494297, + -0.0012542962795123458, + 0.01686488278210163, + 0.00010085458779940382, + -0.03404921293258667, + 0.01338855642825365, + 0.07429943978786469, + 0.016122641041874886, + -0.04194141551852226, + -0.0016747439512982965, + -0.06956411898136139, + 0.027152931317687035, + -0.1399550437927246, + -0.012853014282882214, + -0.020313022658228874, + -0.012355053797364235, + -0.04848066717386246, + -0.007474103011190891, + 0.016554832458496094, + 0.02322562225162983, + 0.008935099467635155, + -0.054268281906843185, + 0.04175350442528725, + -0.030140694230794907, + 0.061070606112480164, + 0.005261467769742012, + 0.004740018863230944, + 0.027021395042538643, + -0.008780074305832386, + -0.013238228857517242, + 0.017701080068945885, + -0.009404873475432396, + -0.02117740735411644, + 0.002478057285770774, + -0.01304092351347208, + 0.0013740886934101582, + -0.03837113082408905, + -0.023883305490016937, + -0.017353447154164314, + -0.005355422385036945, + -0.0285810437053442, + 0.07343505322933197, + -0.028054896742105484, + -0.002183274133130908, + 0.03807047754526138, + 0.026006683707237244, + 0.00774187408387661, + -0.0047141811810433865, + 0.015587097965180874, + 0.014685132540762424, + 0.008554582484066486, + 0.024052424356341362, + 0.044459402561187744, + 0.01144369225949049, + 0.04611300677061081, + 0.02711535058915615, + 0.009912229143083096, + 0.05081074684858322, + -0.000684108235873282, + -0.03807047754526138, + -0.036041054874658585, + 0.006398320663720369, + 0.01902584359049797, + 0.017118560150265694, + 0.012110771611332893, + -0.01160341501235962, + 0.02491680718958378, + -0.0037135626189410686, + -0.04476005584001541, + -0.01190407108515501, + 0.039122771471738815, + 0.05362938717007637, + -0.0032203001901507378, + -0.0038004708476364613, + -0.026570411399006844, + -0.05855261906981468, + 0.000221968162804842, + -0.013360369950532913, + -0.05024701729416847, + 0.016432691365480423, + 0.011810115538537502, + -0.010325630195438862, + -0.0204821415245533, + -0.011659787967801094, + 0.006703673396259546, + -0.042880963534116745, + -0.022473983466625214, + -0.05464410036802292, + 0.02608184702694416, + -0.03128694370388985, + -0.006947956047952175, + -0.020313022658228874, + 0.0020317721646279097, + 0.027077767997980118, + 0.030892331153154373, + -0.00894919317215681, + 0.0405133031308651, + 0.019749294966459274, + -0.026589203625917435, + 0.005129931028932333, + 0.02720930427312851, + -0.026044264435768127, + -0.0348760150372982, + -0.017221910879015923, + 0.021271362900733948, + -0.046188171952962875, + 0.020313022658228874, + 0.0137831661850214, + -0.03566523641347885, + -0.0294830109924078, + -0.016714556142687798, + -0.039911989122629166, + -0.027848197147250175, + -0.007088887970894575, + -0.0013000993058085442, + -0.01742861233651638, + -0.016235386952757835, + 0.023770559579133987, + -0.003645445453003049, + 0.006356040947139263, + -0.008676723577082157, + -0.0023594393860548735, + -0.05329115316271782, + -0.008686119690537453, + -0.022793428972363472, + 0.002905551576986909, + -0.026363711804151535, + -0.0018473858945071697, + 0.030591676011681557, + 0.016761532053351402, + 0.0015032765222713351, + -0.016930650919675827, + -0.020895542576909065, + 0.001460996805690229, + -0.021572018042206764, + -0.028167642652988434, + -0.01959896646440029, + -0.059041183441877365, + 0.05524541065096855, + 0.025781191885471344, + -0.018847329542040825, + 0.007821735925972462, + 0.00651576416566968, + 0.0005913279019296169, + -0.01902584359049797, + 0.06576834619045258, + 0.023319575935602188, + 0.012026212178170681, + -0.04483522102236748, + 0.05114898085594177, + -0.02345111407339573, + -0.01207318902015686, + 0.029652127996087074, + 0.035928308963775635, + -0.00395314721390605, + -0.011575228534638882, + -0.023319575935602188, + 0.012110771611332893, + -0.0013928796397522092, + -0.009395478293299675, + 0.018133273348212242, + -0.011547042988240719, + -0.01024107076227665, + -0.03805168718099594, + -0.03692422807216644, + 0.024503406137228012, + -0.0009536410216242075, + 0.0027810614556074142, + 0.002593151992186904, + 0.0011685625649988651, + -0.0036196080036461353, + 0.031061450019478798, + 0.023375948891043663, + -0.07298407703638077, + 0.02698381245136261, + 0.01326641533523798, + -0.018471509218215942, + 0.016442086547613144, + -0.016141431406140327, + 0.02722809463739395, + -0.0055621229112148285, + -0.0005728305550292134, + 0.007126470096409321, + -0.02074521593749523, + -0.028054896742105484, + 0.03607863560318947, + 0.004364199470728636, + 0.0016900115879252553, + 0.04408358410000801, + 0.02142168954014778, + 0.043219197541475296, + -0.01412140391767025, + 0.04998394474387169, + 0.03822080418467522, + 0.01788898929953575, + 0.007892201654613018, + -0.024653734639286995, + 0.06261146813631058, + -0.01594412699341774, + 0.001130980672314763, + -0.04348227381706238, + -0.025762401521205902, + -0.015587097965180874, + 0.05325356870889664, + -0.037187300622463226, + 0.00797676108777523, + 0.03448140621185303, + -0.006943258456885815, + 0.004202127456665039, + 0.019730504602193832, + 0.004331315401941538, + 0.07174386829137802, + -0.005482261534780264, + -0.010316235013306141, + -0.008540489710867405, + -0.004476945381611586, + -0.03504513204097748, + -0.027246886864304543, + 0.0050782556645572186, + 0.004521573893725872, + -0.07467526197433472, + -0.010682658292353153, + -0.01673334650695324, + -0.0014516013907268643, + 0.008540489710867405, + -0.01926073059439659, + -0.0077089895494282246, + 0.032865382730960846, + 0.007220424711704254, + -0.031380895525217056, + 0.005764125846326351, + 0.0366799458861351, + -0.012768454849720001, + 0.013257019221782684, + 0.01281543169170618, + -0.015248861163854599, + 0.0540052093565464, + -0.019429849460721016, + 0.006839908193796873, + -0.022586729377508163, + 0.021910253912210464, + -0.06509187072515488, + -0.011246386915445328, + -0.048894066363573074, + -0.020519724115729332, + -0.013247624039649963, + 0.014309313148260117, + 0.027021395042538643, + 0.01343553327023983, + 0.015511934645473957, + -0.020876752212643623, + 0.02187267318367958, + 0.061333682388067245, + 0.04190383106470108, + 0.026457665488123894, + 0.01607566326856613 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低", + "故障现象": "单缸功率下降、排温偏低", + "故障原因": "喷油嘴偶件雾化不良", + "维修方案": "执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + -0.05913805589079857, + 0.011996735818684101, + -0.05382269248366356, + -0.03047970123589039, + -0.02482980489730835, + -0.07634793221950531, + -0.01701473630964756, + 0.03579506278038025, + -0.037021685391664505, + 0.0024973840918391943, + -0.02274826541543007, + -0.026483887806534767, + 0.02170749567449093, + 0.022878361865878105, + 0.020406531170010567, + 0.008823316544294357, + 0.025127168744802475, + 0.0294761024415493, + 0.0002850212331395596, + 0.034178152680397034, + -0.005338594317436218, + 0.03135320544242859, + 0.013149017468094826, + -0.021893346682190895, + -0.02536877617239952, + -0.024197909981012344, + -0.02724587917327881, + 0.002827271120622754, + 0.013093261979520321, + 0.02938317507505417, + 0.029308835044503212, + -0.009682880714535713, + -0.044530101120471954, + -0.017005443572998047, + -0.0680961161851883, + -0.0427459217607975, + -0.010407702997326851, + -0.015119046904146671, + -0.018724573776125908, + 0.04267158359289169, + 0.011968858540058136, + -0.019440103322267532, + 0.047875434160232544, + -0.04282026365399361, + -0.04226270690560341, + -0.01051921397447586, + -0.010398410260677338, + -0.025610383599996567, + -0.00753629207611084, + -0.017312098294496536, + 0.013706573285162449, + -0.021633153781294823, + 0.02834240533411503, + -0.046277109533548355, + 0.013288406655192375, + 0.0026112182531505823, + -0.017823191359639168, + -0.00333604053594172, + -0.031985100358724594, + 0.0004890226409770548, + -0.030869990587234497, + 0.024625368416309357, + 0.002152396598830819, + -0.02767333947122097, + -0.022506657987833023, + 0.07880117744207382, + 0.008312223479151726, + 0.001972352620214224, + -0.007578108925372362, + -0.04010682553052902, + -0.0002048726164503023, + 0.03791377693414688, + 0.02061096951365471, + -0.001656404579989612, + -0.01418978814035654, + 0.020741065964102745, + 0.0819978341460228, + 0.007136710453778505, + -0.006639556959271431, + -0.023138554766774178, + 0.04389820620417595, + -0.038062456995248795, + 0.016661617904901505, + 0.019495857879519463, + 0.046165596693754196, + 0.023696109652519226, + 0.01887325383722782, + 0.009571369737386703, + -0.02910439856350422, + -0.014487151056528091, + 0.0010012767743319273, + 0.0008525953162461519, + 0.00537111796438694, + 0.009980243630707264, + -0.013799498789012432, + -0.02258099801838398, + -0.030981501564383507, + -0.013390624895691872, + 0.03414098173379898, + -0.022265050560235977, + 0.023658938705921173, + 0.020127754658460617, + 0.036092426627874374, + -0.04423273727297783, + 0.00290393503382802, + -0.03209661319851875, + 0.04865601286292076, + -0.0016749897040426731, + -0.013446380384266376, + -0.007243575528264046, + 0.009915195405483246, + 0.05374835059046745, + -0.023157138377428055, + 0.0005497148958966136, + -0.016996150836348534, + -0.04159364104270935, + 0.021410131826996803, + -0.011188280768692493, + 0.04977112263441086, + 0.006105232983827591, + -0.005036585032939911, + -0.053079284727573395, + -0.010640017688274384, + -0.030238093808293343, + 0.01142988819628954, + 0.03079565055668354, + -0.003570678411051631, + -0.0016854439163580537, + -0.02843533083796501, + 0.05854332819581032, + 0.01507258415222168, + 0.046388618648052216, + -0.05326513573527336, + 0.011420595459640026, + -0.032635584473609924, + 0.006193512585014105, + -0.025498872622847557, + 0.021280035376548767, + 0.02992214635014534, + -0.0554581880569458, + 0.004590540658682585, + 0.04861884191632271, + 0.011253328993916512, + 0.011894517578184605, + 0.004578924737870693, + 0.01855730637907982, + 0.031427547335624695, + -0.006072708871215582, + -0.009287945926189423, + -0.022785436362028122, + -0.01673595793545246, + -0.026056427508592606, + 0.05073755234479904, + -0.0032129136379808187, + 0.012981751002371311, + -0.016243450343608856, + -0.023714695125818253, + 0.01427342090755701, + 0.025052828714251518, + 0.015444288030266762, + -0.047875434160232544, + 0.043861035257577896, + -0.01661515422165394, + -0.020518044009804726, + 0.024681124836206436, + 0.00021082567400299013, + 0.026260865852236748, + 0.0375049002468586, + -0.0016529198037460446, + -0.04445575922727585, + 0.05233587697148323, + 0.023194309324026108, + -0.02098267339169979, + 0.007935873232781887, + -0.0010878141038119793, + 0.025275850668549538, + 0.0496596097946167, + 0.0317806638777256, + 0.0014670679811388254, + -0.006300377193838358, + -0.017330683767795563, + 0.034995902329683304, + -0.004283885005861521, + -0.08712734282016754, + -0.014347761869430542, + -0.002226737327873707, + 0.048135627061128616, + -0.0056173717603087425, + 0.0236775241792202, + -0.007722144015133381, + -0.012229051440954208, + -0.02707861363887787, + 0.024569613859057426, + 0.03599950298666954, + 0.028695523738861084, + -0.019495857879519463, + 0.02668832428753376, + 0.02351025864481926, + -0.023045627400279045, + 0.0028853497933596373, + 0.014319884590804577, + 0.006226036697626114, + 0.008340101689100266, + -0.021744664758443832, + -0.01929142139852047, + 0.031111598014831543, + 0.014979658648371696, + -0.06382152438163757, + 0.0375792421400547, + -0.015871746465563774, + -0.0007312108064070344, + 0.009232190437614918, + -0.02685559168457985, + -0.009162495844066143, + -0.03720754012465477, + 0.0069276271387934685, + 0.01811126247048378, + -0.004562662448734045, + 0.01158786192536354, + -0.02707861363887787, + -0.041184768080711365, + 0.09879884123802185, + -0.012043199501931667, + -0.032895777374506, + 0.039809465408325195, + -0.0018469026545062661, + -0.004544077441096306, + 0.020313605666160583, + -0.01723775826394558, + -0.024086399003863335, + -0.02635379135608673, + 0.028639769181609154, + -0.006881164386868477, + -0.006597740110009909, + 0.030386775732040405, + 0.018733864650130272, + 0.0037727924063801765, + 0.02477405034005642, + 0.0018573568668216467, + 0.046054087579250336, + -0.000878149934578687, + 0.017033321782946587, + -0.02640954591333866, + 0.005185266491025686, + -0.016131939366459846, + 0.010212558321654797, + 0.056090086698532104, + 0.048358649015426636, + -0.010119632817804813, + -0.012702973559498787, + 0.022116368636488914, + 0.0005677192821167409, + -0.025851991027593613, + -0.03304445743560791, + 0.009636417962610722, + -0.009766514413058758, + 0.03354625776410103, + 0.017116954550147057, + -0.00970146618783474, + -0.05564403906464577, + 0.0061098793521523476, + 0.046277109533548355, + 0.030126582831144333, + -0.00145196751691401, + 0.0006702282116748393, + 0.035590626299381256, + -0.007001968100667, + 0.035813648253679276, + -0.013056091964244843, + 0.020648138597607613, + -0.03282143548130989, + -0.03343474492430687, + 0.0077593144960701466, + 0.025740480050444603, + 0.0193471759557724, + -0.00253455457277596, + -0.009636417962610722, + 0.035757895559072495, + 0.03718895465135574, + 0.005766053218394518, + 0.04296894371509552, + 0.015146925114095211, + 0.009413396008312702, + 0.03648271784186363, + 0.002360318321734667, + 0.0008932503988035023, + -0.0901009738445282, + -0.02181900665163994, + -0.016996150836348534, + -0.02570330910384655, + -0.007977690547704697, + -0.059658441692590714, + 0.08578921109437943, + 0.006509460508823395, + -0.05534667894244194, + 0.023082798346877098, + -0.005622018128633499, + -0.14749202132225037, + 0.08876284211874008, + -0.024922732263803482, + 0.0034916915465146303, + -0.011764421127736568, + 0.024309420958161354, + -0.04412122815847397, + 0.013083969242870808, + -0.011225450783967972, + -0.03793235868215561, + -0.018891839310526848, + -0.062371876090765, + -0.0196259543299675, + 0.0008758268086239696, + -0.06519682705402374, + 0.016745250672101974, + -0.009645710699260235, + 0.03200368583202362, + 0.04757807031273842, + -0.025350190699100494, + -0.017247051000595093, + -0.017228465527296066, + 0.0433034785091877, + -0.0612567663192749, + -0.08400502800941467, + 0.0008328485419042408, + 0.012860947288572788, + -0.02735739015042782, + -0.002406781306490302, + -0.00024523731553927064, + -0.032208122313022614, + -0.02297128736972809, + -0.013585769571363926, + 0.046054087579250336, + -9.343410783912987e-05, + -0.01734926924109459, + 0.0059983679093420506, + -0.006983383093029261, + -0.029197324067354202, + -0.0029829221311956644, + 0.05556970089673996, + 0.02258099801838398, + 0.017925409600138664, + -0.012693680822849274, + -0.019142739474773407, + -0.04988263547420502, + 0.0031873590778559446, + -0.04334064945578575, + 0.035925161093473434, + -0.003907534759491682, + 0.05906371399760246, + -0.008117078803479671, + 0.017423609271645546, + -0.016299206763505936, + -0.021280035376548767, + 0.0007393418345600367, + -0.007276099640876055, + 0.03787660598754883, + -0.04527350887656212, + 0.03977229446172714, + -0.04631427675485611, + -0.05623876675963402, + 0.012610047124326229, + 0.017906824126839638, + -0.033286064863204956, + -0.001889880863018334, + 0.008553830906748772, + -0.007276099640876055, + 0.014152617193758488, + -0.000595306686591357, + -0.007104186806827784, + -0.009218251332640648, + 0.01783248409628868, + 0.009627125225961208, + 0.011364839971065521, + 0.034828633069992065, + -0.01175512932240963, + 0.020592384040355682, + -0.03850850090384483, + -0.10928088426589966, + 0.007880117744207382, + 0.01591821014881134, + 0.014208373613655567, + -0.02581482008099556, + 0.007708204910159111, + -0.07657095789909363, + 0.009492382407188416, + 0.04382386431097984, + 0.01510046236217022, + 0.21201978623867035, + 0.03977229446172714, + -0.020964087918400764, + -0.0033058396074920893, + -0.0004175858630333096, + -0.04594257473945618, + -0.032301049679517746, + -0.0018991734832525253, + 0.031594812870025635, + -0.029197324067354202, + -0.01418978814035654, + 0.030163753777742386, + -0.005189912859350443, + -0.013929595239460468, + 0.032747093588113785, + 0.022952701896429062, + -0.02927166409790516, + -0.018297113478183746, + 0.07519565522670746, + -0.010286899283528328, + 0.014384932816028595, + 0.01844579540193081, + 0.017665216699242592, + 0.007029845844954252, + -0.013065384700894356, + -0.026019258424639702, + -0.051815491169691086, + 0.013901717960834503, + -0.005013353191316128, + -0.005877564661204815, + -0.03295153006911278, + 0.050997745245695114, + 0.0135671840980649, + -0.014542906545102596, + -0.007345793768763542, + -0.03343474492430687, + -0.011569277383387089, + 0.003017769195139408, + 0.06051335856318474, + -0.007350440137088299, + -0.019086983054876328, + -0.050328679382801056, + -0.03196651488542557, + -0.02154022827744484, + -0.029122984036803246, + -0.06263206899166107, + 0.02466253936290741, + -0.01206178404390812, + 0.05070038139820099, + 0.013241943903267384, + -0.03419673815369606, + 0.014765928499400616, + -0.005134156905114651, + -0.014106154441833496, + -0.012591462582349777, + -0.05705651640892029, + 0.029884975403547287, + -0.036464132368564606, + -0.025628969073295593, + -0.0078011308796703815, + 0.005570909008383751, + -0.026762664318084717, + -0.050105657428503036, + 0.0028295943047851324, + 0.04308045655488968, + 0.010677188634872437, + -0.035702139139175415, + 0.0017028674483299255, + 0.04657446965575218, + 0.05155530199408531, + -0.0021024488378316164, + 0.015267728827893734, + -0.028639769181609154, + 0.04226270690560341, + 0.003024738747626543, + -0.05449175834655762, + -0.01752582937479019, + 0.06869083642959595, + -0.03135320544242859, + -0.020146340131759644, + -0.04702051728963852, + -0.012238343246281147, + -0.043377820402383804, + -0.04906488582491875, + 0.022339390590786934, + 0.00537111796438694, + 0.026929931715130806, + -0.018854668363928795, + -0.0035102765541523695, + -0.02075965143740177, + -0.011327669955790043, + 0.024513857439160347, + -0.0014995919773355126, + 0.0005526188178919256, + -0.004690435715019703, + 0.02378903515636921, + -0.046983346343040466, + -0.02482980489730835, + 0.012544998899102211, + 0.035980917513370514, + 0.011820176616311073, + -0.05605291575193405, + 6.602822395507246e-05, + -0.0044093350879848, + 0.0320594422519207, + 0.021614568307995796, + 0.03843415901064873, + -0.00022287701722234488, + -0.019588783383369446, + -0.016094768419861794, + -0.006430473644286394, + 0.036259692162275314, + -0.021168524399399757, + 0.0061516957357525826, + -0.008214651606976986, + 0.034605611115694046, + 0.0015007535694167018, + 0.020685309544205666, + -0.007276099640876055, + 0.053897034376859665, + -0.047057684510946274, + -0.007392256986349821, + 0.005073755048215389, + -0.026335205882787704, + -0.01345567312091589, + -0.004339640494436026, + 0.00547798303887248, + -0.008372625336050987, + -0.04865601286292076, + 0.028082212433218956, + -0.044084057211875916, + -0.016011135652661324, + -0.015146925114095211, + -0.029829220846295357, + 0.06482512503862381, + 0.02055521309375763, + -0.0035869404673576355, + 0.0317806638777256, + 0.05813445523381233, + 0.014329176396131516, + -0.004990121815353632, + -0.030498286709189415, + 0.0058915033005177975, + -0.025944916531443596, + -0.01575094275176525, + -0.057948604226112366, + -0.01594608835875988, + -0.01320477295666933, + -0.046834662556648254, + 0.04367518052458763, + 0.06794743239879608, + -0.002641419181600213, + 0.025127168744802475, + -0.04806128516793251, + -0.015137632377445698, + -0.08578921109437943, + -0.01366940326988697, + -0.01482168398797512, + -0.013530014082789421, + -0.008879072032868862, + 0.0005732367862947285, + 0.02587057650089264, + 0.05501214414834976, + 0.014366347342729568, + 0.0061516957357525826, + 0.0728539228439331, + 0.024588199332356453, + -0.022673925384879112, + -0.02077823504805565, + -0.022655339911580086, + 0.02629803493618965, + -0.002718083094805479, + -0.03973512351512909, + -0.005436166189610958, + 0.02176325023174286, + 0.007508414331823587, + -0.020369362086057663, + 0.00913926400244236, + -0.03653847053647041, + 0.06731553375720978, + 0.04843299090862274, + 0.01830640621483326, + -0.054120056331157684, + 0.03620393946766853, + 0.006583801470696926, + 0.03551628813147545, + -0.053450990468263626, + -0.02055521309375763, + 0.004474382847547531, + 0.026725495234131813, + -0.04296894371509552, + 0.09842713177204132, + -0.015648724511265755, + -0.013362747617065907, + 0.016150524839758873, + 0.05564403906464577, + 0.0038169322069734335, + 0.08749904483556747, + 0.006839347537606955, + 0.015574384480714798, + 0.02652105689048767, + -0.0537111833691597, + 0.02756182849407196, + 0.02784060500562191, + 0.009933780878782272, + -0.00970146618783474, + -0.022339390590786934, + 0.01940293237566948, + -0.009297238662838936, + -0.018232066184282303, + 0.02202344313263893, + -0.003993491642177105, + -0.02652105689048767, + -0.021577399224042892, + 0.011123232543468475, + -0.021688910201191902, + 0.015332777053117752, + 0.057242367416620255, + -0.037021685391664505, + -0.033843621611595154, + 0.044530101120471954, + -0.011522813700139523, + 0.05560687184333801, + -0.030814234167337418, + 0.0005174812395125628, + -0.008558477275073528, + -0.06408171355724335, + -0.029959317296743393, + 0.054603271186351776, + 0.004116618074476719, + 0.0032988700550049543, + -0.0034916915465146303, + -0.002395165618509054, + 0.007921935059130192, + 0.024513857439160347, + 0.0023022396489977837, + -0.00580787006765604, + 0.014106154441833496, + -0.05999297276139259, + -0.0043651950545609, + -0.03661281242966652, + 0.012489243410527706, + 0.03720754012465477, + 0.0028876729775220156, + -0.033564843237400055, + 0.0012405610177665949, + -0.05939824879169464, + 0.026892760768532753, + 0.03984663262963295, + 0.03928907960653305, + -0.02871410921216011, + 0.010835162363946438, + 0.037449147552251816, + -0.011030307039618492, + -0.02176325023174286, + 0.004260653629899025, + -0.003647342324256897, + -0.0034266433212906122, + -0.028398161754012108, + -0.0165872760117054, + -0.01630849950015545, + 0.004669527523219585, + 0.011643617413938046, + 0.0005807870184071362, + -0.023826206102967262, + -0.018129846081137657, + 0.019142739474773407, + -0.012860947288572788, + -0.006509460508823395, + -0.007327208761125803, + -0.02323148027062416, + -0.022060614079236984, + -0.00423974497243762, + 0.008846547454595566, + 0.07776041328907013, + -0.03711461275815964, + -0.03995814546942711, + 0.005245668347924948, + 0.028528258204460144, + 0.04263441264629364, + -0.041184768080711365, + -0.016382839530706406, + -0.025387361645698547, + -0.002550816396251321, + 0.02252524346113205, + -0.009803684428334236, + 0.029122984036803246, + -0.014236250892281532, + -0.009655003435909748, + 0.02120569534599781, + 0.006978736724704504, + -0.020313605666160583, + -0.025071412324905396, + 0.019365761429071426, + -0.03821113705635071, + 0.03616676852107048, + 0.012126832269132137, + -0.040478531271219254, + -0.015462873503565788, + 0.024476686492562294, + 0.008721097372472286, + 0.01063072495162487, + -0.03376927971839905, + -0.031817834824323654, + -0.034494102001190186, + 0.025498872622847557, + 0.008112432435154915, + -0.014673002995550632, + 0.022804019972682, + 0.026483887806534767, + 0.027580413967370987, + -0.030015071853995323, + 0.031762078404426575, + 0.03215236961841583, + 0.014840269461274147, + 0.032356806099414825, + 0.04010682553052902, + -0.009766514413058758, + 0.02916015312075615, + 0.04724353924393654, + -0.022804019972682, + -0.015843870118260384, + -0.019161324948072433, + 0.011922395788133144, + -0.02460678294301033, + 0.004351256415247917, + -0.010379825718700886, + -0.016178403049707413, + -0.002757576759904623, + 0.02494131773710251, + -0.0071134790778160095, + 0.029346005991101265, + -0.046834662556648254, + -0.010853747837245464, + 0.013102554716169834, + -0.005831101443618536, + -0.004135203547775745, + -0.06252055615186691, + 0.04553370177745819, + -0.04657446965575218, + 0.03917756676673889, + -0.03551628813147545, + 0.06571721285581589, + 0.003238468198105693, + 0.008372625336050987, + 0.010612140409648418, + -0.012284806929528713, + -0.029773464426398277, + 0.012219758704304695, + 0.01161574013531208, + -0.06653495877981186, + -0.023101383820176125, + -0.01591821014881134, + -0.009766514413058758, + 0.02750607207417488, + -0.005213144235312939, + -0.005733529105782509, + 0.00366592756472528, + -0.004418627358973026, + 0.0021036104299128056, + -0.016011135652661324, + 0.013985350728034973, + -0.05207568407058716, + 0.024643953889608383, + -0.012628632597625256, + 0.015555799007415771, + 0.028676938265562057, + 0.03415956720709801, + 0.058506160974502563, + 0.029550442472100258, + -0.040515702217817307, + -0.0006841670838184655, + -0.01668020337820053, + 0.05058887228369713, + -0.008539891801774502, + 0.031037257984280586, + -0.07006614655256271, + 0.01238702517002821, + 0.03648271784186363, + -0.005649895872920752, + 0.008962704800069332, + -0.005031938664615154, + -0.005905442405492067, + 0.021354377269744873, + 0.03966078162193298, + -0.030386775732040405, + -0.030238093808293343, + 0.01774885132908821, + 0.09389235079288483, + 0.04356367141008377, + -0.033118799328804016, + -0.015843870118260384, + -0.05337664857506752, + 0.03174349293112755, + -0.1224391907453537, + 0.00635613314807415, + -0.012842361815273762, + -0.04493897408246994, + -0.03200368583202362, + -0.014329176396131516, + 0.029773464426398277, + 0.012033906765282154, + -0.013585769571363926, + -0.06437907367944717, + 0.04077589511871338, + -0.00849342904984951, + 0.0271343681961298, + -0.009515614248812199, + -0.04445575922727585, + 0.005468690302222967, + -0.0174607802182436, + -0.001783016137778759, + 0.030591212213039398, + -0.028045043349266052, + 0.015853162854909897, + -0.025164339691400528, + 0.009822269901633263, + -0.002108256798237562, + -0.0415564700961113, + -0.0014670679811388254, + -0.030405361205339432, + -0.008386564441025257, + -0.04653730243444443, + 0.06735270470380783, + -0.007025199476629496, + 0.004841440357267857, + 0.03529326617717743, + 0.014292006380856037, + 0.024699710309505463, + 0.004165404476225376, + 0.03999531641602516, + 0.04133344814181328, + 0.01737714745104313, + 0.028007872402668, + 0.0033778571523725986, + 0.023082798346877098, + 0.027636168524622917, + -0.0008915080688893795, + 0.011652910150587559, + 0.044753123074769974, + -0.019142739474773407, + -0.00956207700073719, + -0.015769528225064278, + 0.024532442912459373, + 0.012442780658602715, + 0.023863377049565315, + 0.03512599691748619, + -0.007545584812760353, + 0.03681724891066551, + -0.008298284374177456, + -0.07880117744207382, + -0.04170515388250351, + 0.04226270690560341, + 0.08958058804273605, + -0.008572416380047798, + 0.000897896708920598, + -0.05542101711034775, + -0.047429390251636505, + 0.02087116241455078, + 0.009571369737386703, + -0.059695612639188766, + 0.021967686712741852, + -0.00033308134879916906, + -0.015899624675512314, + -0.009097447618842125, + -0.013715866021811962, + -0.014607954770326614, + -0.035925161093473434, + 0.013929595239460468, + -0.06947141885757446, + 0.030405361205339432, + -0.04954810068011284, + -0.02921590954065323, + -0.0326169990003109, + -0.011494936421513557, + -0.010844455100595951, + -0.0012382378336042166, + -0.029253080487251282, + 0.04021833837032318, + 0.015769528225064278, + -0.04583106189966202, + 0.009064923040568829, + 0.02317572385072708, + -0.0288813766092062, + -0.029661953449249268, + -0.015156217850744724, + 0.0069601512514054775, + -0.03754207119345665, + 0.03073989413678646, + 0.030925747007131577, + -0.0082239443436265, + -0.03228246420621872, + 0.013520721346139908, + -0.032468315213918686, + -0.03568355366587639, + -0.004511553328484297, + 0.014245543628931046, + -0.0340852290391922, + -0.01466371025890112, + 0.02953185699880123, + 0.0069601512514054775, + -0.011346254497766495, + 0.005733529105782509, + -0.01197815127670765, + -0.04954810068011284, + -0.012758729048073292, + -0.01774885132908821, + 0.021726079285144806, + -0.07348581403493881, + 0.0320594422519207, + 0.04352650046348572, + -0.00849342904984951, + -0.011123232543468475, + -0.012786606326699257, + -0.006407242268323898, + 0.013390624895691872, + -0.01861306093633175, + -0.030535457655787468, + 0.001470552640967071, + -0.04516199603676796, + 0.0210941843688488, + 0.01788824051618576, + -0.015314191579818726, + 0.025963502004742622, + -0.015211973339319229, + 0.01427342090755701, + -0.022599583491683006, + 0.06750138849020004, + 0.0023649646900594234, + -0.007880117744207382, + -0.05337664857506752, + 0.048804692924022675, + -0.011216158978641033, + -0.009009167551994324, + 0.0323382206261158, + 0.023937717080116272, + -0.011745836585760117, + -0.009195019491016865, + -0.021558813750743866, + 0.04181666299700737, + 0.04018116742372513, + 0.012730850838124752, + -0.008865132927894592, + -0.006909042131155729, + 0.005380410701036453, + -0.029959317296743393, + -0.0059983679093420506, + 0.004418627358973026, + -0.02252524346113205, + 0.018352869898080826, + -0.02674407884478569, + -0.011048891581594944, + 0.01323265116661787, + 0.05441742017865181, + -0.007173880934715271, + -0.06898820400238037, + 0.03415956720709801, + 0.008860486559569836, + -0.025889161974191666, + 0.011476350948214531, + -0.026892760768532753, + 0.030349604785442352, + -0.007796484511345625, + 0.02072248049080372, + 0.007048430852591991, + -0.01150422915816307, + -0.01977463625371456, + 0.03399230167269707, + 0.00783365499228239, + -0.05419439822435379, + 0.032133784145116806, + 0.005854332819581032, + 0.02044370211660862, + -0.03804387152194977, + 0.016178403049707413, + -0.0003124634095001966, + 0.006035538390278816, + -0.0031850358936935663, + 0.013706573285162449, + 0.03369493782520294, + 0.009283299557864666, + 0.027208710089325905, + -0.04954810068011284, + -0.021670324727892876, + -0.05058887228369713, + 0.03562779724597931, + -0.034940145909786224, + 0.0056173717603087425, + 0.015518628992140293, + -0.009924488142132759, + 0.022209294140338898, + 0.029513271525502205, + 0.0077686067670583725, + 0.07370883971452713, + -0.0002620801387820393, + 0.020146340131759644, + -0.0021779511589556932, + -0.024346591904759407, + -0.029717709869146347, + -0.025461701676249504, + 0.027041442692279816, + 0.004683466162532568, + -0.06720402836799622, + 0.031111598014831543, + 0.007457305211573839, + -0.008502721786499023, + -0.024458102881908417, + 0.00029416862525977194, + -0.013362747617065907, + 0.014068984426558018, + -0.0029875682666897774, + -0.03549770265817642, + -0.04259724169969559, + 0.0048553794622421265, + -0.0183342844247818, + 0.013502135872840881, + 0.014022521674633026, + 0.0057381754741072655, + 0.06240904703736305, + -0.0118387620896101, + -0.006867225281894207, + 0.0057010049931705, + 0.016522228717803955, + -0.043600842356681824, + -0.0072342827916145325, + -0.00431640911847353, + -0.023547427728772163, + -0.030405361205339432, + 0.02992214635014534, + 0.0047763921320438385, + -0.03664998337626457, + 0.006300377193838358, + 0.007373671978712082, + 0.030814234167337418, + 0.03231963515281677, + 0.03200368583202362, + -0.01830640621483326, + -0.00339876557700336 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高", + "故障现象": "排气温度异常升高", + "故障原因": "排气阀密封面磨损或阀座烧蚀", + "维修方案": "执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + 0.0015197887551039457, + -0.005390058271586895, + -0.0593944787979126, + -0.0007469148258678615, + -0.04410219192504883, + -0.048822034150362015, + -0.0017428012797608972, + 0.022409804165363312, + -0.038740456104278564, + 0.005918680690228939, + -0.010770676657557487, + 0.01745397225022316, + -0.038004159927368164, + 0.02996155060827732, + 0.0035634799860417843, + 0.023013943806290627, + 0.029753876850008965, + -0.02743171527981758, + 0.046480994671583176, + 0.022541960701346397, + -0.03028249926865101, + 0.04553702473640442, + 0.005857322830706835, + -0.004778838716447353, + 0.0024212785065174103, + 0.017737161368131638, + 0.0022147854324430227, + -0.007353512104600668, + 0.03957114741206169, + -0.01826578378677368, + 0.030735604465007782, + -0.023089461028575897, + -0.022013338282704353, + -0.02265523560345173, + -0.0009103392949327826, + -0.018492337316274643, + 0.00913289189338684, + -0.01639672741293907, + -0.025581538677215576, + 0.04829341173171997, + 0.016915909945964813, + -0.0403263196349144, + 0.04021304473280907, + -0.014754222705960274, + 0.004540487192571163, + -0.02790370024740696, + -0.03896700590848923, + -0.03028249926865101, + -0.020918335765600204, + -0.02809249237179756, + 0.03706018999218941, + -0.01364034041762352, + 0.04425323009490967, + -0.014235040172934532, + 0.025808090344071388, + 0.025808090344071388, + -0.014291678555309772, + -0.027809303253889084, + -0.05561860650777817, + -0.012290465645492077, + -0.016557201743125916, + 0.03530440852046013, + -0.033718544989824295, + -0.03332207724452019, + -0.0010206656297668815, + 0.04867099970579147, + 0.01422560028731823, + 0.05607170984148979, + -0.0065983375534415245, + -0.03207603842020035, + -0.013055079616606236, + 0.03919355943799019, + 0.009911665692925453, + -0.033529751002788544, + -0.02665766142308712, + 0.02222101204097271, + 0.03830622881650925, + -0.003426604438573122, + 0.04432874545454979, + 0.014159522950649261, + 0.015103491023182869, + -0.02497739903628826, + -0.014744782820343971, + -0.002398859243839979, + 0.006263229064643383, + -0.011176583357155323, + -0.031811729073524475, + 0.022598598152399063, + -0.055278778076171875, + -0.044970642775297165, + -0.014310557395219803, + 0.03638053312897682, + 0.02397679165005684, + -0.009996622800827026, + -0.010487486608326435, + 0.0175955668091774, + 0.018029792234301567, + 0.0040496233850717545, + 0.02724292129278183, + -0.05252239108085632, + -0.0039693862199783325, + 0.028507839888334274, + 0.05172945559024811, + -0.04927514120936394, + 0.04198770597577095, + -0.029357410967350006, + 0.060187410563230515, + 0.03462475165724754, + 0.0260346420109272, + -0.018397940322756767, + 0.02035195380449295, + 0.040099769830703735, + 0.025826970115303993, + -0.000516232626978308, + -0.020710662007331848, + -0.010563003830611706, + 0.023202737793326378, + -0.03388845920562744, + 0.028904305770993233, + -0.008557071909308434, + -0.02973499707877636, + 0.023523686453700066, + -0.0024731967132538557, + -0.031264226883649826, + -0.07430917769670486, + 0.010223175399005413, + 0.017170781269669533, + 0.012092232704162598, + -0.003936347551643848, + 0.022976186126470566, + 0.03254802152514458, + 0.019710056483745575, + -0.028356803581118584, + 0.0007144659175537527, + -0.03828734904527664, + -0.03271793574094772, + -0.009491600096225739, + 0.04825565218925476, + 0.038589417934417725, + -0.027809303253889084, + -0.009217849001288414, + 0.02907421998679638, + -0.004927514120936394, + 0.010223175399005413, + 0.02401455119252205, + -0.01523564662784338, + 0.027563871815800667, + -0.006782411597669125, + 0.008656187914311886, + -0.028809908777475357, + -0.007032562978565693, + -0.002228944795206189, + 0.047651514410972595, + 0.014008487574756145, + -0.022862909361720085, + -0.014386075548827648, + -0.027771543711423874, + 0.0004005965020041913, + -0.015773708000779152, + -0.044857367873191833, + -0.0033487272448837757, + 0.06283052265644073, + -0.00496999267488718, + 0.018869923427700996, + 0.03505897894501686, + -0.058979131281375885, + -0.00423605740070343, + 0.041383564472198486, + -0.03926907479763031, + -0.008283320814371109, + 0.0619620718061924, + -0.07400710880756378, + -0.016491124406456947, + 0.010902832262217999, + -0.012262146919965744, + 0.03466251119971275, + 0.04081718623638153, + 0.0041581797413527966, + 0.04935065656900406, + -0.003919827751815319, + -0.012639733962714672, + 0.013413787819445133, + 0.016821512952446938, + -0.008939378894865513, + -0.014895818196237087, + -0.021541353315114975, + 0.00717887794598937, + -0.011761843226850033, + 0.02035195380449295, + 0.0012955963611602783, + 0.008061488159000874, + -0.04164787754416466, + -0.01114826463162899, + -0.006782411597669125, + 0.04946393147110939, + -0.05237135663628578, + 0.017133021727204323, + 0.0027422276325523853, + -0.023674722760915756, + -0.015594354830682278, + -0.025506019592285156, + 0.011686326004564762, + -0.023297134786844254, + 0.0188888031989336, + -0.006952325813472271, + 0.0009380683768540621, + -0.03028249926865101, + -0.03145302087068558, + 0.020012125372886658, + -0.009071534499526024, + -0.0029593403451144695, + -0.041081495583057404, + -0.038778211921453476, + -0.013423227705061436, + -0.06468070298433304, + 0.06052723899483681, + 0.041043736040592194, + 0.018143068999052048, + 0.006494501139968634, + -0.00803316943347454, + -0.05671360716223717, + 0.07615935057401657, + -0.01752948947250843, + 0.0012023794697597623, + 0.029546204954385757, + -0.0183318629860878, + 0.07008019834756851, + 0.022051095962524414, + 0.016519444063305855, + -0.011525851674377918, + -0.013857453130185604, + 0.01085563376545906, + 0.027714906260371208, + 0.0007775938138365746, + 0.039948735386133194, + 0.00808508787304163, + -0.0029074219055473804, + 0.0351911336183548, + 0.004295055288821459, + 0.004122781101614237, + 0.0017616805853322148, + 0.0010885132942348719, + 0.01639672741293907, + 0.002487356076017022, + -0.013914091512560844, + 0.02911197952926159, + 0.03143414109945297, + -0.010430848225951195, + -0.024505414068698883, + 0.000883200264070183, + 0.013451546430587769, + -0.01642504706978798, + -0.010043821297585964, + 0.0075517455115914345, + 0.054108258336782455, + -0.0015339483506977558, + 0.007254395633935928, + 0.004226617515087128, + -0.01039308961480856, + -0.01606633886694908, + 0.009581277146935463, + 0.046216681599617004, + -0.02163575030863285, + 0.006296267732977867, + 0.02486412227153778, + 0.00586676225066185, + -0.05962103232741356, + -0.007853815332055092, + 0.030131464824080467, + 0.0005631360108964145, + -0.036758121103048325, + -0.0044626095332205296, + 0.009529358707368374, + 0.0021144887432456017, + 0.034190528094768524, + 0.028885425999760628, + 0.013932970352470875, + -0.013206114992499352, + 0.04708513244986534, + 0.023259375244379044, + 0.033907338976860046, + 0.02199445851147175, + 0.020729541778564453, + 0.005503334570676088, + -0.00576764577999711, + -0.021258164197206497, + -0.05946999415755272, + -0.07325193285942078, + -0.0029003422241657972, + 0.01821858622133732, + -0.00808508787304163, + -0.1110861748456955, + 0.05852602794766426, + -0.011025547981262207, + -0.06105586141347885, + 0.09107404947280884, + 0.007372391410171986, + -0.16115425527095795, + 0.04595237225294113, + 0.012856846675276756, + 0.04323374480009079, + -0.020540747791528702, + 0.011138824746012688, + -0.041270289570093155, + -0.009845588356256485, + -0.049010828137397766, + -0.06226414069533348, + -0.019672296941280365, + -0.05437256768345833, + -0.0075517455115914345, + 0.02471308782696724, + -0.009675674140453339, + 0.014820300973951817, + 0.012668052688241005, + -0.0018950161756947637, + 0.02199445851147175, + -0.016047459095716476, + -0.041043736040592194, + 0.005673248786479235, + 0.05218256264925003, + -0.028791029006242752, + -0.048784274607896805, + 0.025581538677215576, + 0.04342253506183624, + -0.025619296357035637, + 0.005980038549751043, + -0.0033038887195289135, + -0.0271296463906765, + -0.002284402959048748, + -0.010827315039932728, + 0.035323288291692734, + 0.03330319747328758, + -0.02276851236820221, + -0.003457283601164818, + -0.020956093445420265, + -0.010808436200022697, + 0.05712895467877388, + 0.02416558563709259, + 0.024411017075181007, + 0.005795964505523443, + 0.02284402959048748, + -0.03490794450044632, + -0.009283927269279957, + 0.01735013537108898, + 0.015141249634325504, + -0.012790769338607788, + 0.009222568944096565, + 0.0392313189804554, + -0.011752404272556305, + -0.02273075468838215, + -0.02816801145672798, + -0.021767906844615936, + -0.014584308490157127, + 0.018237465992569923, + 0.043837882578372955, + -0.042403049767017365, + 0.02140919864177704, + -0.01486749853938818, + -0.09590716660022736, + 0.03611622378230095, + -0.0221832524985075, + -0.008524032309651375, + 0.009836148470640182, + -0.008698666468262672, + -0.009713432751595974, + -0.00550805451348424, + -0.007051442284137011, + 0.027073007076978683, + 0.030150344595313072, + 0.037494417279958725, + 0.010732918046414852, + 0.0011327618267387152, + 0.02463757060468197, + -0.04984151944518089, + 0.01554715633392334, + -0.028394563123583794, + -0.11644791811704636, + 0.0037923920899629593, + 0.03721122443675995, + 0.03039577603340149, + -0.019974367693066597, + 0.0029758596792817116, + -0.03953338786959648, + 0.014423834159970284, + -0.01235654391348362, + -0.0018666971009224653, + 0.2273075431585312, + 0.03785312548279762, + -0.02105049043893814, + -0.021937821060419083, + -0.018615052103996277, + -0.034417081624269485, + -0.001938674715347588, + -0.016897030174732208, + 0.01719910092651844, + -0.009095133282244205, + -0.012781329452991486, + 0.03120758756995201, + 0.00758950412273407, + -0.005635490175336599, + -0.026166798546910286, + 0.04225201532244682, + -0.01980445347726345, + -0.008410756476223469, + 0.05875258147716522, + -0.016689358279109, + -0.004047263413667679, + 0.02801697514951229, + 0.053994979709386826, + -0.03369966521859169, + -0.008108686655759811, + -0.04444202408194542, + -0.02680869586765766, + 0.01918143406510353, + -0.02156023308634758, + -0.0009888067143037915, + -0.03709794953465462, + 0.04168563336133957, + 0.04168563336133957, + 0.018379060551524162, + -0.019332468509674072, + -0.02779042348265648, + -0.023674722760915756, + 0.006593617610633373, + 0.04040183871984482, + 0.027035249397158623, + 0.00682017020881176, + -0.0010596043430268764, + -0.018086429685354233, + 0.011242660693824291, + -0.003454923629760742, + -0.030244741588830948, + -0.03183060884475708, + 0.03728674352169037, + 0.028734391555190086, + 0.0005994198145344853, + -0.031660694628953934, + 0.011846800334751606, + -0.01576426811516285, + 0.005479735322296619, + -0.01448047161102295, + -0.0002902702253777534, + 0.01307395938783884, + -0.025581538677215576, + -0.006456742528825998, + 0.03324655815958977, + 0.00764614250510931, + 0.02518507093191147, + -0.04712289199233055, + 0.02105049043893814, + 0.03128310665488243, + -0.0022159654181450605, + -0.022239889949560165, + -0.02709188684821129, + 0.018010912463068962, + 0.023013943806290627, + -0.04659426957368851, + 0.04784030839800835, + -0.005305101163685322, + 0.022277649492025375, + 0.03824958950281143, + -0.06872088462114334, + 0.006414263974875212, + 0.08450403064489365, + -0.022315407171845436, + 0.02650662697851658, + -0.014452152885496616, + -0.022504201158881187, + -0.028186889365315437, + 0.015065732412040234, + 0.01987997069954872, + 0.00458296574652195, + 0.06184879690408707, + -0.008519313298165798, + -0.004318654537200928, + -0.012866286560893059, + -0.04043959826231003, + 0.0417989119887352, + -0.053843945264816284, + -0.007065602112561464, + -0.026393350213766098, + -0.007948212325572968, + -0.04183667153120041, + -0.09922993928194046, + 0.020767299458384514, + 0.008495713584125042, + -0.02361808344721794, + -0.023202737793326378, + 0.00854291208088398, + -0.0024153785780072212, + 0.01217718981206417, + 0.041157014667987823, + -0.0006165291997604072, + 0.009170650504529476, + -0.029753876850008965, + 0.011242660693824291, + 0.008429636247456074, + 0.02911197952926159, + -0.041270289570093155, + -0.02937629073858261, + 0.030886638909578323, + 0.020502988249063492, + -0.013149476610124111, + 0.02599688433110714, + 0.006300987675786018, + 0.036097344011068344, + -0.024524293839931488, + -0.012016715481877327, + 0.03490794450044632, + 0.025638176128268242, + -0.011459773406386375, + -0.008165325038135052, + 0.00962375570088625, + -0.04059063270688057, + -0.06913623213768005, + 0.03840062767267227, + -0.026280073449015617, + -0.031264226883649826, + -0.047387201339006424, + -0.022315407171845436, + 0.04734944552183151, + 0.027582749724388123, + 0.08110574632883072, + 0.019370228052139282, + 0.00016947179392445832, + 0.02794145792722702, + -0.02856447733938694, + -0.03964666277170181, + -0.02544938214123249, + -0.0092603275552392, + 0.009779510088264942, + -0.066757433116436, + -0.040024250745773315, + -0.05671360716223717, + 0.003136334242299199, + 0.0333598367869854, + 0.07291210442781448, + 0.03279345482587814, + 0.011497532948851585, + -0.0063340263441205025, + -0.009590717032551765, + -0.003145773895084858, + -0.025071794167160988, + -0.013262753374874592, + 0.002579393098130822, + 0.0023044622503221035, + 0.02794145792722702, + 0.018341301009058952, + 0.03156629577279091, + 0.009180090390145779, + 0.008132286369800568, + -0.007905733771622181, + 0.02743171527981758, + -0.021144887432456017, + 0.015065732412040234, + -0.011591929011046886, + 0.006579458247870207, + 0.01459374837577343, + -0.014499351382255554, + -0.003136334242299199, + -0.0030867760069668293, + 0.051200833171606064, + -0.07642366737127304, + -0.00810396671295166, + -0.05240911245346069, + 0.037343382835388184, + 0.019294708967208862, + 0.02735619805753231, + -0.02680869586765766, + 0.012271586805582047, + 0.0016059258487075567, + 0.0159530621021986, + 1.8796397853293456e-05, + -0.001885576406493783, + -0.02988603338599205, + -0.014168962836265564, + -0.030697844922542572, + 0.10466719418764114, + -0.00980782974511385, + -0.009468001313507557, + 0.01147865317761898, + 0.03339759260416031, + 0.03385069966316223, + 0.03834398835897446, + 0.027375077828764915, + 0.03719234839081764, + -0.02101273275911808, + -0.00491335429251194, + 0.019407985731959343, + -0.004908634349703789, + -0.02078617922961712, + -0.009996622800827026, + -0.031188709661364555, + -0.007981250993907452, + -0.015027973800897598, + -0.016491124406456947, + -0.004295055288821459, + 0.041383564472198486, + -0.029319651424884796, + -0.0006501580937765539, + 0.014914697036147118, + -0.00951519887894392, + 0.041459083557128906, + 0.0755552127957344, + -0.011412575840950012, + -0.009902226738631725, + 0.050068072974681854, + -0.020880576223134995, + 0.052862219512462616, + -0.04081718623638153, + -0.02809249237179756, + 0.02416558563709259, + 0.002267883624881506, + -0.04025080427527428, + -0.009590717032551765, + -0.014395514503121376, + 0.0045617264695465565, + -0.012856846675276756, + -0.012271586805582047, + -0.0319061242043972, + 0.004155819769948721, + 0.0535418763756752, + 0.010629082098603249, + 0.015773708000779152, + -0.009788949973881245, + -0.0032755695283412933, + 0.020484110340476036, + 0.04417771100997925, + 0.02607240155339241, + 0.030055947601795197, + 0.008377717807888985, + 0.05052117630839348, + -0.07608383893966675, + 0.014055686071515083, + 0.02797921746969223, + 0.016217373311519623, + 0.00702312309294939, + 0.025902487337589264, + 0.03598406910896301, + -0.03326543793082237, + -0.005229583941400051, + 0.009090413339436054, + -0.007698060479015112, + -0.0242033451795578, + -0.03524777293205261, + -0.03094327636063099, + -0.00010354151163483039, + 0.04659426957368851, + 0.02918749675154686, + -0.014301118440926075, + 0.01954014226794243, + -0.018086429685354233, + 0.017888197675347328, + 0.02163575030863285, + -0.0063340263441205025, + -0.036097344011068344, + -0.04447977989912033, + -0.029414048418402672, + -0.03047129325568676, + -0.014886378310620785, + 0.0018419179832562804, + -0.010289253666996956, + -0.0192569512873888, + 0.013942410238087177, + -0.007613103371113539, + -0.00019528341363184154, + -0.029093099758028984, + -0.03824958950281143, + -0.004214818123728037, + 0.008127566426992416, + -0.013092839159071445, + -0.009501039981842041, + 0.03332207724452019, + -0.016179615631699562, + 0.011724084615707397, + 0.016849832609295845, + 0.03135862201452255, + -0.018577294424176216, + -0.0392313189804554, + 0.043800123035907745, + -0.009411362931132317, + 0.035040099173784256, + -0.007216637022793293, + -0.002167586935684085, + 0.00746206846088171, + 0.047462720423936844, + 0.018869923427700996, + 0.008991297334432602, + -0.02214549295604229, + -0.056487057358026505, + 0.001470230403356254, + -0.01543387956917286, + 0.012214948423206806, + -0.005144626833498478, + 0.045121680945158005, + -0.018416820093989372, + 0.0432715006172657, + -0.032982248812913895, + 0.014178401790559292, + 0.033567510545253754, + -0.020672902464866638, + 0.008004849776625633, + 0.027620509266853333, + 0.00040118646575137973, + 0.004861436318606138, + -0.0018938361899927258, + -0.05308876931667328, + -0.00912817195057869, + -0.03403949365019798, + 0.010629082098603249, + -0.03307664394378662, + -0.01052524521946907, + -0.039835456758737564, + -0.035474322736263275, + 0.002048410940915346, + -0.004535767249763012, + -0.02401455119252205, + -0.029055340215563774, + -0.017369015142321587, + -0.018690569326281548, + 0.045046161860227585, + -0.01248869951814413, + 0.03211379796266556, + -0.041081495583057404, + 0.060451723635196686, + -0.02848896011710167, + -0.0032732097897678614, + -0.08979025483131409, + -0.006135793402791023, + 0.030811121687293053, + 0.0077405390329658985, + -0.01873776875436306, + -0.02401455119252205, + -0.011629687622189522, + 0.033095523715019226, + 0.023712480440735817, + -0.01844513788819313, + -0.028658874332904816, + -0.023920154199004173, + -0.0163212101906538, + -0.021654630079865456, + -0.030697844922542572, + 0.007556465454399586, + -0.035587601363658905, + -0.04455529898405075, + 0.03254802152514458, + -0.013111717998981476, + -0.034889064729213715, + -0.04278063774108887, + 0.04538599029183388, + -0.00509742833673954, + 0.015075172297656536, + 0.03086775913834572, + 0.00032153917709365487, + 0.0337374247610569, + -0.006815450266003609, + -0.04281839728355408, + 0.03934459388256073, + 0.015112930908799171, + 0.0627172440290451, + -0.045083921402692795, + 0.032434746623039246, + -0.0469340980052948, + 0.006924006622284651, + 0.01013821829110384, + -0.013706417754292488, + -0.032396987080574036, + -0.030754484236240387, + 0.01661383919417858, + -0.03003706783056259, + 0.02291954681277275, + 0.014452152885496616, + -0.02046523056924343, + 0.0034997621551156044, + 0.017369015142321587, + 0.05603395029902458, + -0.00988334696739912, + 0.00666441535577178, + -0.037343382835388184, + 0.002033071592450142, + -0.138650044798851, + -0.015330043621361256, + -0.027809303253889084, + 0.0049794320948421955, + -0.02409006841480732, + -0.005139906890690327, + -0.017359575256705284, + 0.000969337357673794, + -0.0026478308718651533, + -0.037230104207992554, + 0.016887590289115906, + -0.006428423337638378, + 0.08148333430290222, + -0.036248378455638885, + -0.008075647987425327, + 0.06494501233100891, + -0.005489175207912922, + -0.031962763518095016, + -0.0031788127962499857, + -0.018784966319799423, + 0.0037475537974387407, + 0.008349398151040077, + -0.04659426957368851, + -0.026015764102339745, + -0.025071794167160988, + -0.023750239983201027, + 0.024769725278019905, + -0.02210773527622223, + 0.007759418338537216, + 0.017840998247265816, + -0.02116376720368862, + -0.046292200684547424, + 0.03600294515490532, + 0.03254802152514458, + 0.018728328868746758, + -0.018095869570970535, + -0.004396531730890274, + 0.009633195586502552, + 0.04429098591208458, + 0.0009457381092943251, + 0.02335377223789692, + -0.0166799183934927, + -0.01697254739701748, + 0.012092232704162598, + 0.0407039076089859, + 0.018539534881711006, + -0.009538798592984676, + -0.016236253082752228, + -0.015452759340405464, + -0.009722872637212276, + -0.0031717331148684025, + 0.06992916017770767, + -0.01050636637955904, + -0.010789556428790092, + -0.005404218100011349, + 0.010223175399005413, + -0.018822725862264633, + -0.03823070973157883, + 0.031226467341184616, + 0.07619711011648178, + -0.04942617565393448, + -0.03198164328932762, + -0.012092232704162598, + -0.0034997621551156044, + 0.043724607676267624, + -0.012932363897562027, + -0.06279276311397552, + 0.008495713584125042, + 0.0005879151867702603, + 0.00835883803665638, + -0.04719841107726097, + 0.0024130186066031456, + -0.02680869586765766, + -0.013904651626944542, + 0.004708041436970234, + -0.0934906080365181, + 0.02899870276451111, + -0.02728068083524704, + 0.025147313252091408, + 0.00749038765206933, + -0.010185416787862778, + -0.03490794450044632, + 0.04935065656900406, + -0.0100815799087286, + 0.014150083065032959, + -0.004160539712756872, + -0.041232530027627945, + -0.0023174418602138758, + 0.02108824998140335, + -0.013338270597159863, + -0.01369697879999876, + -0.048897553235292435, + -0.03175508975982666, + -0.01650056429207325, + -0.010987789370119572, + 0.018095869570970535, + -0.026487747207283974, + -0.024524293839931488, + -0.025864727795124054, + -0.06385000795125961, + -0.0035092018079012632, + 0.00733463279902935, + -0.020257556810975075, + -0.01836962066590786, + 0.0027658268809318542, + 0.09945648908615112, + 0.015348922461271286, + 0.014631506986916065, + 0.01109162624925375, + 0.004663202911615372, + -0.03545544669032097, + 0.005390058271586895, + -0.029414048418402672, + -0.01665159873664379, + -0.06199983134865761, + -0.01243206113576889, + 0.015792587772011757, + 0.012819088064134121, + -0.011941197328269482, + -0.02078617922961712, + -0.0036248378455638885, + 0.031301986426115036, + -0.0214469563215971, + -0.021069370210170746, + 0.006343466229736805, + -0.048935309052467346, + 0.03454923629760742, + -0.007174158003181219, + 0.012035594321787357, + 0.04296943172812462, + -0.005470295436680317, + -0.005470295436680317, + -0.06173551827669144, + 0.042554084211587906, + 0.01193175744265318, + 0.036720361560583115, + -0.05112531781196594, + 0.056675851345062256, + 0.02339153178036213, + -0.01599082164466381, + -0.01134649757295847, + 0.02412782609462738, + 0.03385069966316223, + -0.0491241030395031, + -0.029621722176671028, + 0.027375077828764915, + 0.005677968729287386, + -0.013527064584195614, + 0.0069428859278559685, + -0.006485061254352331, + -0.020219799131155014, + -0.0015658072661608458, + -0.03779648616909981, + 0.009137611836194992, + 0.00684848939999938, + 0.04315822571516037, + 0.02397679165005684, + -0.030188102275133133, + -0.0029994589276611805, + -0.010950030758976936, + -0.0013793734833598137, + -0.07906677573919296, + -0.025600416585803032, + 0.009071534499526024, + -0.027337318286299706, + -0.019861090928316116, + -0.023920154199004173, + -0.008769464679062366, + -0.03528553247451782, + 0.03183060884475708, + -0.06845657527446747, + -0.00019616838835645467, + -0.019190873950719833, + -0.016557201743125916, + 0.00791989266872406, + -0.02027643658220768, + 0.025978004559874535, + -0.05104979872703552, + 0.055052224546670914, + -0.007594224065542221, + 0.036720361560583115, + 0.06264173239469528, + 0.011573050171136856, + 0.03505897894501686, + 0.012111111544072628, + 0.050143588334321976, + -0.026412229984998703, + 0.003400645451620221, + -0.03571975603699684, + -0.018105309456586838, + -0.0001721267035463825, + -0.027261801064014435, + -0.04697185754776001, + -1.0859321264433675e-05, + 0.03351087123155594, + -0.047878067940473557, + 0.01957789994776249, + 0.03285009413957596, + 0.019898848608136177, + 0.05437256768345833, + -0.023221617564558983, + -0.0014171322109177709, + 0.03575751557946205, + -0.013168356381356716, + -0.013829134404659271, + -0.027582749724388123, + 0.025052916258573532, + -0.008354118093848228, + -0.017661644145846367, + 0.027960337698459625, + -0.014933576807379723, + 0.005649649538099766, + 0.01638728752732277, + -0.013432667590677738, + -0.007443189155310392, + -0.029414048418402672, + -0.005295661743730307, + -0.01848289743065834, + 0.010317572392523289, + 0.03141526132822037, + 0.01601913943886757, + 0.021465836092829704, + -0.003705075243487954, + -0.011337057687342167, + 0.057733096182346344, + -0.012800208292901516, + -0.014574868604540825, + -0.0030301378574222326, + 0.026940852403640747, + -0.022428683936595917, + 0.003721594577655196, + -0.037966400384902954, + -0.022239889949560165, + 0.04531047120690346, + 0.0038419505581259727, + 0.014121764339506626, + -0.017217978835105896, + 0.015405560843646526, + 0.004302135203033686, + 0.0432715006172657, + 0.0520692840218544, + 0.00561189092695713, + 0.01913423463702202, + 0.041081495583057404 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "涡轮增压器轴承损坏导致排气温度异常升高", + "故障现象": "排气温度异常升高", + "故障原因": "涡轮增压器轴承损坏", + "维修方案": "执行以下维修项目:MT015 更换涡轮增压器轴承组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + -0.00819565262645483, + -0.011750107631087303, + -0.06989321112632751, + 0.010402357205748558, + -0.01616351678967476, + -0.04514015465974808, + 0.006824173964560032, + 0.02135520428419113, + -0.034491028636693954, + -0.01270871888846159, + 0.01909629814326763, + 0.020880643278360367, + -0.022608043625950813, + 0.013420559465885162, + 0.004422900266945362, + -0.020083382725715637, + 0.05003761500120163, + 0.014559503644704819, + 0.010335918515920639, + 0.005433713085949421, + -0.007526522967964411, + 0.02361411042511463, + 0.011958914808928967, + 0.020709803327918053, + -0.02841665782034397, + 0.012281615287065506, + -0.007312971167266369, + 0.004491711501032114, + 0.05250532925128937, + -0.013923592865467072, + -0.0032412454020231962, + -0.04354563355445862, + -0.01580285094678402, + -0.01995050720870495, + -0.007844477891921997, + -0.04806344583630562, + -0.0021046740002930164, + -0.02397477626800537, + -0.029194936156272888, + 0.01850784383714199, + -0.00870817806571722, + -0.043317846953868866, + 0.046810608357191086, + -0.02359512820839882, + 0.01916273683309555, + -0.026309611275792122, + -0.02076674997806549, + -0.028530552983283997, + 0.0038107174914330244, + -0.03811666741967201, + 0.015100502409040928, + 0.012300597503781319, + 0.05265718698501587, + 0.001030388637445867, + 0.01812819577753544, + 0.018299037590622902, + -0.005462186876684427, + -0.0487847775220871, + -0.043090056627988815, + -0.007203822024166584, + -0.013268699869513512, + 0.017292968928813934, + -0.03468085080385208, + 0.009045115672051907, + 0.02135520428419113, + 0.10637739300727844, + 0.008765124715864658, + -0.0001066277181962505, + -0.014037488028407097, + -0.05558047816157341, + 0.00035295405541546643, + -0.014046979136765003, + 0.008148197084665298, + -0.013031420297920704, + -0.03978711739182472, + 0.029631532728672028, + 0.006098097190260887, + -0.01960882358253002, + 0.03356089070439339, + 0.020482013002038002, + 0.012461948208510876, + -0.02760041505098343, + -0.010791496373713017, + 0.029840338975191116, + 0.0122721241787076, + 0.01981762982904911, + -0.026024876162409782, + -0.03329513594508171, + -0.04384935274720192, + -0.010392866097390652, + 0.01747330278158188, + 0.024639159440994263, + -0.026461470872163773, + -0.006216737441718578, + -0.04115385189652443, + 0.03521236032247543, + -0.049278318881988525, + 0.004902205895632505, + 0.006420798134058714, + -0.03344699367880821, + -0.00739364605396986, + 0.029954232275485992, + 0.03029591590166092, + -0.0727405697107315, + 0.08564860373735428, + -0.01066811103373766, + 0.04544387385249138, + 0.03887596353888512, + -0.0065299468114972115, + 0.006558420602232218, + 0.0016182499239221215, + 0.031947385519742966, + -0.006017421837896109, + -0.018915966153144836, + -0.043317846953868866, + -0.010895899496972561, + -0.02133622206747532, + -0.04453271999955177, + 0.08405408263206482, + -0.023424286395311356, + 0.007877697236835957, + 0.03399748355150223, + -0.002624317305162549, + -0.02061489038169384, + -0.02587301656603813, + 0.004114435985684395, + 0.022475166246294975, + 0.037471264600753784, + -0.01143689826130867, + 0.020652854815125465, + 0.012670754455029964, + 0.04608927667140961, + -0.030827423557639122, + -0.014521539211273193, + -0.04415307193994522, + -0.030049145221710205, + 0.01467339787632227, + 0.016429269686341286, + 0.03843936696648598, + -0.025170667096972466, + -0.020500995218753815, + -0.0024143245536834, + -0.0336558036506176, + -0.0002676815493032336, + -0.0002933374489657581, + -0.022835832089185715, + 0.01828005537390709, + -0.020880643278360367, + 0.011598248966038227, + -0.03059963509440422, + -0.032896507531404495, + 0.002550760516896844, + 0.029764408245682716, + -0.027885152027010918, + -0.030694546177983284, + -0.02040608413517475, + -0.0757397934794426, + 0.0006305717397481203, + -0.012461948208510876, + -0.009899323806166649, + 0.03511744737625122, + 0.066400445997715, + -0.005519133992493153, + 0.01951391063630581, + 0.0450262613594532, + -0.043659526854753494, + 0.010392866097390652, + 0.05508693680167198, + -0.023557163774967194, + -0.010231515392661095, + 0.0584278404712677, + -0.02818886935710907, + -0.00744584808126092, + -0.01938103511929512, + 0.01093386486172676, + 0.02410765364766121, + 0.04407714307308197, + 0.025322526693344116, + 0.002693128539249301, + -0.004000541754066944, + 7.018299220362678e-05, + 0.016135042533278465, + 0.018460387364029884, + -0.036389268934726715, + -0.02053896151483059, + 0.021431133151054382, + 0.021393168717622757, + -0.005414730869233608, + 0.014796784147620201, + -0.012908034957945347, + -0.01915324479341507, + -0.009704753756523132, + 0.006563166156411171, + -0.013088366948068142, + 0.055618442595005035, + -0.018593264743685722, + 0.033465977758169174, + -0.01640079729259014, + 0.00339547754265368, + -0.0397491529583931, + -0.01016507763415575, + 0.0009965761564671993, + -0.004736109636723995, + 0.033541906625032425, + -0.0338076613843441, + 0.018090231344103813, + -0.04077420383691788, + -0.01958984136581421, + 0.020994538441300392, + -0.032820574939250946, + -0.002799904439598322, + -0.026271646842360497, + 0.025607261806726456, + -0.0070662000216543674, + -0.045709628611803055, + 0.013980540446937084, + 0.036749932914972305, + 0.025246597826480865, + -0.027049925178289413, + -0.026841118931770325, + -0.07395544648170471, + 0.0757397934794426, + -0.04153349995613098, + -0.015385238453745842, + 0.022759901359677315, + -0.0024914403911679983, + 0.05994643270969391, + 0.061730775982141495, + 0.0050255912356078625, + 0.01288905180990696, + -0.0019884067587554455, + 0.012167721055448055, + 0.0028592245653271675, + 0.013971049338579178, + 0.07927051931619644, + 0.01936205103993416, + -0.0037846167106181383, + 0.019703734666109085, + 0.03633232042193413, + -0.0009372562053613365, + 0.023500215262174606, + 0.021032502874732018, + -0.042216867208480835, + -0.023917829617857933, + -0.0397491529583931, + 0.009937288239598274, + 0.03240296244621277, + 0.013097858987748623, + -0.04210297018289566, + 0.0050920299254357815, + 0.002026371657848358, + -0.025816069915890694, + -0.04077420383691788, + 0.002439238829538226, + 0.06366698443889618, + 0.021507063880562782, + -0.004273413680493832, + -0.01844140514731407, + 0.007616689428687096, + 0.003701568813994527, + 0.0014130027266219258, + 0.07050064951181412, + 0.008760379627346992, + 0.0021248427219688892, + -0.011266056448221207, + 0.007797022350132465, + -0.05573233589529991, + 0.004968644119799137, + 0.00040396928670816123, + 0.007925153709948063, + -0.05242940038442612, + -0.0009467473719269037, + -0.007251278031617403, + 0.01489169616252184, + 0.033257171511650085, + 0.024639159440994263, + -0.005400493741035461, + 0.00914477277547121, + 0.047531940042972565, + 0.018488861620426178, + 0.03578183054924011, + 0.04654485359787941, + 0.02162095718085766, + -0.02105148509144783, + 0.021089451387524605, + -0.012300597503781319, + -0.06628655642271042, + -0.05121452361345291, + -0.029460690915584564, + 0.01784345880150795, + -0.017890915274620056, + -0.07911866158246994, + 0.0814724788069725, + 0.002591098193079233, + -0.02723974920809269, + 0.044115107506513596, + -0.013021929189562798, + -0.16461540758609772, + 0.040394555777311325, + 0.0006531133549287915, + 0.026271646842360497, + -0.01066811103373766, + -0.008447169326245785, + -0.0019160363590344787, + 0.0020228123757988214, + -0.012300597503781319, + -0.03454797342419624, + -0.0444188229739666, + -0.0798020288348198, + 0.016191991046071053, + -0.03232703357934952, + -0.0665523111820221, + 0.006857393309473991, + -0.0122341588139534, + 0.00693806866183877, + 0.06146502494812012, + -0.032820574939250946, + -0.044115107506513596, + -0.006188263650983572, + 0.03044777549803257, + -0.015508623793721199, + -0.0442669652402401, + 0.004897460341453552, + 0.05383409559726715, + -0.03496558591723442, + -0.014758818782866001, + 0.003575810231268406, + -0.03378867730498314, + -0.010952847078442574, + -0.010592181235551834, + 0.02790413424372673, + 0.02310158498585224, + -0.01048777811229229, + -0.013895119540393353, + -0.038856979459524155, + -0.02621470019221306, + 0.026062840595841408, + 0.02308260276913643, + 0.03997694328427315, + 0.006525201257318258, + 0.00659163948148489, + -0.03088437020778656, + -0.03600962087512016, + -0.017890915274620056, + -0.012670754455029964, + 0.019324086606502533, + -0.03221314027905464, + 0.04700043052434921, + -0.00531981885433197, + -0.024221546947956085, + -0.015081520192325115, + -0.02585403434932232, + 0.02482898347079754, + -0.014293749816715717, + 0.018090231344103813, + -0.04479847103357315, + 0.012215176597237587, + -0.001943323528394103, + -0.06199653074145317, + 0.019551875069737434, + -0.02528456225991249, + -0.0025602516252547503, + 0.020064400508999825, + -0.004707636311650276, + -0.010241006501019001, + 0.026973996311426163, + 0.010620654560625553, + 0.003981559071689844, + 0.0673116073012352, + 0.019143754616379738, + -0.007037726230919361, + 0.0023905965499579906, + 0.011398933827877045, + -0.049923721700906754, + -0.0066248588263988495, + -0.02163993939757347, + -0.12072809040546417, + 0.019105790182948112, + 0.039673224091529846, + 0.028891218826174736, + -0.03228906914591789, + -0.021146398037672043, + 0.011816546320915222, + 0.020482013002038002, + -0.008300055749714375, + 0.027353644371032715, + 0.22217005491256714, + 0.037623126059770584, + -0.03891392797231674, + -0.023690039291977882, + 0.005979457404464483, + -0.046658746898174286, + 0.00577539624646306, + -0.01981762982904911, + 0.025683192536234856, + -0.024221546947956085, + -0.04779769107699394, + 0.01603063941001892, + 0.013942576013505459, + 0.0028734614606946707, + -0.014815766364336014, + -0.005111012142151594, + -0.011019285768270493, + 0.01921968348324299, + 0.09453237056732178, + -0.0313209667801857, + -0.006368596572428942, + 0.05326462537050247, + 0.0005193466786295176, + -0.038496315479278564, + -0.04362156242132187, + -0.046810608357191086, + -0.04297616332769394, + 0.03219415619969368, + -0.0048333946615457535, + -0.01268024556338787, + -0.02061489038169384, + 0.04290023073554039, + 0.036028601229190826, + 0.005889290943741798, + -0.021943658590316772, + -0.0007646349258720875, + -0.009462728165090084, + -0.01496762502938509, + 0.05899731069803238, + 0.03574386611580849, + -0.01777702197432518, + -0.02587301656603813, + -0.024999825283885002, + 0.02410765364766121, + 0.005694721359759569, + -0.057516682893037796, + -0.0036659766919910908, + 0.01771058328449726, + 0.020083382725715637, + 0.0026646549813449383, + -0.04851902276277542, + -0.006961796432733536, + -0.01417036447674036, + -0.013439541682600975, + -0.0011110638733953238, + 0.0009230193682014942, + 0.006382833234965801, + -0.004076471086591482, + -0.012689736671745777, + 0.024012740701436996, + -0.020557943731546402, + 0.007531268522143364, + -0.051024701446294785, + 0.0341113805770874, + 0.030068127438426018, + -0.012537878006696701, + -0.008338021114468575, + -0.012993454933166504, + 0.005063556134700775, + 0.0025009317323565483, + -0.018811563029885292, + 0.030125074088573456, + -0.013411068357527256, + 0.010838952846825123, + 0.03843936696648598, + -0.03160570189356804, + -0.007607198320329189, + 0.11009794473648071, + -0.03819259628653526, + 0.010620654560625553, + -0.02017829567193985, + -0.014920169487595558, + -0.04931628331542015, + -0.01446459162980318, + 0.014739836566150188, + -0.013553435914218426, + 0.014635433442890644, + -0.0011359782656654716, + -0.02484796568751335, + -0.0061550443060696125, + -0.016846884042024612, + 0.0380217544734478, + -0.004150027874857187, + 0.051897890865802765, + -0.011085723526775837, + 9.669161954661831e-05, + -0.025398455560207367, + -0.03891392797231674, + 0.026575366035103798, + 0.018555300310254097, + -0.003960203845053911, + -0.03339004889130592, + -0.011047759093344212, + -0.0024938134010881186, + -0.016770953312516212, + 0.031643666326999664, + 0.02492389641702175, + 0.004954407457262278, + -0.027923116460442543, + 0.016732988879084587, + 0.012499912641942501, + 0.028948165476322174, + -0.005471677985042334, + -0.01849835179746151, + 0.007180094253271818, + 0.021222326904535294, + 0.010117621161043644, + 0.04734211415052414, + 0.01690383069217205, + 0.033333100378513336, + -0.019058333709836006, + 0.00548116909340024, + 0.011826037429273129, + 0.00417138310149312, + -0.013923592865467072, + -0.0012362290872260928, + 0.0012991082621738315, + -0.03650316223502159, + -0.06704585254192352, + 0.03502253443002701, + -0.012196194380521774, + -0.0011757226893678308, + -0.009438999928534031, + -0.0001178985257865861, + 0.03462390601634979, + -0.0009508997900411487, + 0.024221546947956085, + 0.02127927541732788, + -0.003917493391782045, + -0.003981559071689844, + -0.011920949444174767, + -0.04479847103357315, + 0.013154805637896061, + -0.01953289285302162, + -0.0005098555120639503, + -0.07141180336475372, + -0.027144838124513626, + -0.059908464550971985, + -0.030713528394699097, + 0.025759121403098106, + 0.03308632969856262, + 0.044191036373376846, + 0.02031117118895054, + -0.01921968348324299, + -0.020633872598409653, + 0.016486218199133873, + 0.0011864001862704754, + -0.009861358441412449, + -0.017577705904841423, + -0.013638856820762157, + -0.0016609603771939874, + 0.01016507763415575, + 0.0444188229739666, + -0.002503304509446025, + 0.03745228424668312, + 0.027486519888043404, + 0.0450262613594532, + 0.042292796075344086, + 0.0667041689157486, + -0.03340902924537659, + 0.04711432754993439, + 0.008176670409739017, + -0.010744040831923485, + 0.000586378329899162, + 0.03902782127261162, + 0.033105313777923584, + -0.07410730421543121, + -0.012803630903363228, + -0.0031914166174829006, + 0.09597503393888474, + 0.020652854815125465, + 0.0341113805770874, + -0.02192467637360096, + -0.006567911710590124, + 0.013980540446937084, + 0.029992198571562767, + 0.0033693767618387938, + -0.0018851900240406394, + -0.021658923476934433, + -0.009187483228743076, + -0.032953452318906784, + 0.10227718949317932, + -0.02126029133796692, + 0.004237821791321039, + -0.0037300423718988895, + 0.04905053228139877, + 0.03542116656899452, + 0.05899731069803238, + 0.02877732366323471, + 0.004014778416603804, + -0.010563707910478115, + -0.02266499027609825, + -0.010971829295158386, + -0.006715025287121534, + -0.002121283672749996, + -0.027486519888043404, + -0.009334596805274487, + 0.00724653247743845, + -0.03627537190914154, + -0.05539065599441528, + 0.007982100360095501, + 0.006828919518738985, + 0.004607978742569685, + 0.013325647450983524, + 0.01572692207992077, + -0.018090231344103813, + 0.050303369760513306, + 0.02600589394569397, + -0.032459910959005356, + 0.004911697003990412, + 0.044912368059158325, + -0.024601195007562637, + 0.03728144243359566, + -0.05599809065461159, + -0.016732988879084587, + -0.015613026916980743, + -0.012585333548486233, + -0.03652214631438255, + 0.04973389953374863, + 0.017587197944521904, + 0.00840920489281416, + 0.033238187432289124, + -0.016229955479502678, + -0.0202542245388031, + 0.004705263301730156, + 0.059984397143125534, + -0.002878207014873624, + 0.024316459894180298, + -0.009258667007088661, + -0.018536318093538284, + 0.003896138397976756, + 0.030125074088573456, + -0.003919866401702166, + -0.028682412579655647, + -0.0145310303196311, + 0.05056912451982498, + -0.051897890865802765, + -0.014996099285781384, + -0.004510693717747927, + 0.022778885439038277, + 0.022304324433207512, + 0.05603605508804321, + 0.015764886513352394, + -0.03276363015174866, + -0.05964271351695061, + -0.009225448593497276, + -0.03044777549803257, + 0.008513608016073704, + -0.05785836651921272, + -0.002788040554150939, + -0.011266056448221207, + 0.03671196848154068, + 0.015508623793721199, + 0.0096193328499794, + 0.02970746159553528, + 0.0004140536766499281, + 0.021601974964141846, + -0.018308527767658234, + -0.007820750586688519, + -0.027562450617551804, + -0.03096030093729496, + -0.021753834560513496, + -0.04980982840061188, + -0.04514015465974808, + 0.011228092014789581, + -0.010744040831923485, + -0.0012480930890887976, + 0.015128975734114647, + 0.029270866885781288, + 0.01191145833581686, + -0.0386291928589344, + -0.040964026004076004, + 0.005239143501967192, + -0.012775157578289509, + -0.0031439606100320816, + -0.011313512921333313, + 0.03052370436489582, + -0.021317239850759506, + -0.003357512643560767, + -0.004356461577117443, + -0.013458523899316788, + -0.037110600620508194, + -0.03876207023859024, + 0.05941492319107056, + -0.03059963509440422, + 0.02885325439274311, + -0.0038842742796987295, + 0.02629062905907631, + 0.0010790310334414244, + 0.025816069915890694, + 0.008470897562801838, + 0.006439780350774527, + -0.023576145991683006, + -0.052847012877464294, + -0.03213721141219139, + -0.023272426798939705, + 0.007792276795953512, + -0.01813768595457077, + 0.09119147062301636, + -0.005196433048695326, + 0.031719595193862915, + -0.03637028485536575, + 0.009728481993079185, + 0.015081520192325115, + 0.02097555622458458, + 0.038211580365896225, + -0.001344191492535174, + -0.012367036193609238, + -0.012338562868535519, + 0.04179925471544266, + -0.034206289798021317, + -0.02287379652261734, + -0.028720377013087273, + 0.0030348116997629404, + -0.04749397560954094, + -0.012072809040546417, + -0.029954232275485992, + -0.005229652393609285, + -0.0016218090895563364, + -0.03496558591723442, + -0.002704992424696684, + -0.03137791156768799, + -0.003848682390525937, + -0.03181450814008713, + 0.04677264392375946, + -0.02069081924855709, + -0.01638181507587433, + -0.03314327821135521, + 0.0193145964294672, + 0.010430830530822277, + 0.03198534995317459, + -0.05535268783569336, + -0.021582992747426033, + 0.011465371586382389, + -0.008024810813367367, + -0.0016562147065997124, + -0.003983932081609964, + -0.020235242322087288, + 0.04624113440513611, + 0.013610383495688438, + 0.01224365085363388, + -0.015394729562103748, + -0.006776717957109213, + -0.04077420383691788, + -0.02782820351421833, + -0.028872236609458923, + -0.03096030093729496, + -0.02636655792593956, + 0.015527606010437012, + 0.007986846379935741, + -0.01268024556338787, + -0.010876917280256748, + -0.035573024302721024, + 0.0405084490776062, + 0.024866949766874313, + 0.02353818155825138, + 0.02826480008661747, + 0.033750712871551514, + -0.0002925959706772119, + 0.010924373753368855, + -0.0158123429864645, + 0.02556929737329483, + 0.00467678951099515, + 0.07718245685100555, + -0.04054641351103783, + 0.03312429413199425, + -0.03337106481194496, + 0.0045747593976557255, + 0.009709499776363373, + 0.01467339787632227, + -0.014436118304729462, + -0.02790413424372673, + -0.023500215262174606, + -0.04726618528366089, + 0.014455100521445274, + 0.01209179125726223, + -0.010895899496972561, + 0.01306938473135233, + 0.02877732366323471, + 0.0626419335603714, + -0.02266499027609825, + -0.013268699869513512, + -0.036028601229190826, + 0.015537097118794918, + -0.14525336027145386, + 0.00801531970500946, + -0.0170556902885437, + -0.004800175316631794, + -0.03481372818350792, + -0.013439541682600975, + -0.013297174125909805, + -0.005789633374661207, + 0.01015558559447527, + -0.03249787539243698, + 0.012319579720497131, + -0.008494625799357891, + 0.07554996758699417, + -0.012699227780103683, + -0.010060673579573631, + 0.05353038012981415, + -0.015821833163499832, + -0.035573024302721024, + 0.04043252021074295, + -0.04612724110484123, + -0.000277914252365008, + -0.01989355869591236, + 0.009842376224696636, + -0.03276363015174866, + -0.013781225308775902, + -0.010354901663959026, + -0.002657536417245865, + -0.00467916252091527, + -0.003136842278763652, + 0.0038581734988838434, + -0.0058275978080928326, + 0.01681840978562832, + 0.06025014817714691, + 0.02294972538948059, + 0.03227008506655693, + -0.0066723148338496685, + 0.003155824728310108, + -0.0051869419403374195, + 0.02148808166384697, + 0.007417374290525913, + -0.007450593635439873, + 0.005272362846881151, + -0.01354394480586052, + 0.020576925948262215, + 0.07110808789730072, + 0.0802576020359993, + -0.021810781210660934, + -0.005652010906487703, + -0.014227312058210373, + -0.015983184799551964, + -0.02549336850643158, + 0.02513270266354084, + 0.06131316348910332, + -0.022987691685557365, + 0.011854510754346848, + 0.016087587922811508, + -0.00816243328154087, + -0.0025863524060696363, + 0.007127892691642046, + 0.08754684776067734, + -0.021393168717622757, + -0.04297616332769394, + -0.039369504898786545, + -0.0402047298848629, + 0.027885152027010918, + -0.01989355869591236, + -0.05732686072587967, + 0.009106808342039585, + 0.021943658590316772, + 0.002455848501995206, + -0.030201004818081856, + -0.00801531970500946, + 0.02441137097775936, + -0.01902036927640438, + -0.003801226383075118, + -0.061085376888513565, + 0.027144838124513626, + -0.01987457647919655, + -0.03779396414756775, + -0.017976336181163788, + 0.014360188506543636, + -0.022835832089185715, + -0.007194330915808678, + -0.022778885439038277, + 0.037034668028354645, + -0.0004238414694555104, + -0.03661705553531647, + 0.002163994126021862, + 0.05341648310422897, + -0.016657060012221336, + -0.020671837031841278, + -0.013354120776057243, + 0.003243618179112673, + -0.022171447053551674, + 0.03044777549803257, + -0.0011514014331623912, + -0.011740616522729397, + -0.041115887463092804, + -0.012367036193609238, + -0.09012845158576965, + -0.025094738230109215, + -0.006491981912404299, + 0.02338632196187973, + -0.026973996311426163, + -0.01958984136581421, + 0.049506109207868576, + 0.00848987977951765, + 0.0022956845350563526, + 0.002072641160339117, + -0.019627805799245834, + -0.041115887463092804, + -0.0046032327227294445, + -0.01915324479341507, + -0.027923116460442543, + -0.03139689564704895, + 0.003421578323468566, + 0.02091860957443714, + -0.01586928963661194, + -0.03308632969856262, + 0.014065961353480816, + 0.000896325393114239, + 0.0405084490776062, + -0.033029381185770035, + -0.025607261806726456, + -0.006601131055504084, + -0.025664210319519043, + 0.05185992643237114, + -0.00402664253488183, + 0.01681840978562832, + 0.06317344307899475, + 0.0020655228290706873, + 0.01951391063630581, + -0.03978711739182472, + 0.02870139479637146, + 0.01734991744160652, + 0.0022422964684665203, + -0.018593264743685722, + 0.0534544475376606, + -0.0030182022601366043, + -0.005248634610325098, + 0.006800446193665266, + 0.01726449653506279, + 0.021943658590316772, + -0.05003761500120163, + -0.021658923476934433, + 0.030409811064600945, + -0.004282904788851738, + -0.02651841752231121, + -0.0015968946972861886, + -0.015309308655560017, + -0.00661062216386199, + 0.009310869500041008, + -0.016495708376169205, + 0.029175953939557076, + 0.004548658616840839, + 0.047607868909835815, + 0.011882985010743141, + -0.02556929737329483, + -0.03204229846596718, + -0.00947221927344799, + 0.001339445821940899, + -0.04240668937563896, + -0.00968577153980732, + -0.025113720446825027, + 0.015717430040240288, + -0.018166160210967064, + 0.006942814216017723, + -0.0032412454020231962, + -0.02133622206747532, + 0.041495535522699356, + -0.03845835104584694, + -0.0012777530355378985, + -0.02127927541732788, + -0.014578485861420631, + 0.018080739304423332, + -0.04255855083465576, + 0.0495440736413002, + -0.03547811135649681, + 0.023690039291977882, + -0.007175348699092865, + 0.0289861299097538, + 0.03997694328427315, + -0.02162095718085766, + 0.01894443854689598, + 0.02934679575264454, + 0.03471881523728371, + 0.031928401440382004, + 0.016581129282712936, + -0.011341986246407032, + -0.018374966457486153, + 0.002331276424229145, + -0.006795700639486313, + -0.04259651526808739, + -0.0036351303569972515, + 0.049506109207868576, + -0.05614995211362839, + 0.022475166246294975, + 0.010345409624278545, + -0.006397069897502661, + 0.06214838847517967, + 0.02572115696966648, + 0.0005786666879430413, + 0.03378867730498314, + 0.0008542081923224032, + -0.025910980999469757, + -0.0011792818550020456, + -0.012632790021598339, + 8.074936340562999e-05, + -0.04271040856838226, + 0.03581979498267174, + -0.012338562868535519, + -0.013477507047355175, + -0.0016680787084624171, + 0.012509403750300407, + -0.02046303078532219, + 0.0012160602491348982, + -0.013923592865467072, + -0.010620654560625553, + -0.03145384415984154, + 0.03401646763086319, + -0.005599808879196644, + 0.009514929726719856, + -0.0022992435842752457, + 0.004783565644174814, + 0.08686348050832748, + -0.010060673579573631, + -0.06150298938155174, + -0.004634079523384571, + 0.02564522810280323, + -0.03168163076043129, + -0.01653367280960083, + -0.06829869002103806, + -0.013306665234267712, + 0.0766509473323822, + 0.010478287003934383, + 0.00936307106167078, + -0.02410765364766121, + 0.024297477677464485, + 0.006553675048053265, + 0.001710789161734283, + 0.04696246609091759, + 0.03483271226286888, + 0.03240296244621277, + 0.0490884967148304 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏", + "故障现象": "扫气箱内发现润滑油泄漏", + "故障原因": "活塞杆填料函密封失效", + "维修方案": "执行以下维修项目:MTO01保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + -0.014326426200568676, + 0.013392500579357147, + -0.01883728988468647, + -0.012794787995517254, + -0.0002593104145489633, + -0.04109274968504906, + -0.014905461110174656, + 0.02596314623951912, + -0.0294373519718647, + 0.00024749041767790914, + 0.002299793064594269, + 0.03332248330116272, + 0.026654250919818878, + -0.02439415082335472, + -0.013934177346527576, + 0.006570170167833567, + 0.0269344300031662, + 0.019780555739998817, + 0.009852920658886433, + -0.01109504234045744, + -0.012169057503342628, + 0.030838239938020706, + -0.011505969800055027, + 0.010030366480350494, + 0.007111847400665283, + 0.02614993043243885, + 0.02624332346022129, + 0.034237731248140335, + -0.014541229233145714, + -0.030240528285503387, + 0.01606352999806404, + -0.0024865781888365746, + -0.06380583345890045, + -0.028783602640032768, + -0.02267572656273842, + -0.07310773432254791, + 0.016670580953359604, + -0.01570863649249077, + -0.03464866057038307, + 0.043259456753730774, + 0.001606352860108018, + -0.001451087649911642, + 0.01703481189906597, + -0.061564408242702484, + 0.010375918820500374, + -0.012710734270513058, + 0.003483544336631894, + -0.03873925656080246, + 0.0003257067291997373, + -0.00425169849768281, + -0.013803428038954735, + 0.009241199120879173, + 0.050319939851760864, + -0.0200420543551445, + 0.03392019495368004, + 0.013513910584151745, + -0.013551267795264721, + 0.01918284222483635, + -0.00427504675462842, + -0.043259456753730774, + -0.0294373519718647, + -0.006191930267959833, + -0.010600061155855656, + 0.004606590606272221, + -0.005935100372880697, + 0.08009350299835205, + 0.021330872550606728, + 0.0020406285766512156, + -0.006355367135256529, + -0.030614098533988, + -0.031435951590538025, + 0.015792690217494965, + 0.023385509848594666, + -0.004401126876473427, + -0.042288172990083694, + 0.0007418875466100872, + 0.04946072772145271, + -0.018855968490242958, + 0.0008095972007140517, + 0.024636970832943916, + 0.03068881295621395, + -0.028933031484484673, + 0.01337382197380066, + 0.03677801042795181, + -0.0241139717400074, + 0.003787070279940963, + -0.01783798821270466, + -0.009325251914560795, + 0.015652602538466454, + -0.013485892675817013, + 0.05259871855378151, + 0.026579536497592926, + 0.03311701864004135, + 0.03214573860168457, + -0.022544976323843002, + 0.010357240214943886, + 0.010058384388685226, + -0.012748091481626034, + 0.01800609566271305, + -0.0319402739405632, + 0.03825361281633377, + 0.041018035262823105, + 0.023945866152644157, + -0.024543577805161476, + 0.02170444279909134, + -0.03261270001530647, + 0.026897072792053223, + 0.011281827464699745, + 0.005804350599646568, + -0.026560857892036438, + -5.3117048082640395e-05, + 0.017230937257409096, + 0.028839638456702232, + -0.02555221877992153, + -0.034237731248140335, + -0.022825153544545174, + -0.005309369880706072, + -0.02807381935417652, + 0.027476105839014053, + -4.790019374922849e-05, + 0.016950758174061775, + -0.013569946400821209, + -0.02063976787030697, + -0.029979027807712555, + -0.023310795426368713, + -0.003966851159930229, + 0.06287190318107605, + -0.020677125081419945, + 0.016119563952088356, + -0.009283225983381271, + -0.02091994509100914, + -0.008638816885650158, + -0.04172781854867935, + 0.02897038869559765, + -0.011832843534648418, + 0.031062383204698563, + 0.007251936476677656, + 0.016838688403367996, + 0.032594021409749985, + -0.018220897763967514, + -0.00030556894489564, + 0.033640019595623016, + 0.0008901483379304409, + -0.005449458956718445, + 0.00017540299450047314, + -0.005944439675658941, + 0.03042731247842312, + -0.019519055262207985, + 0.009502698667347431, + -0.020172804594039917, + 0.0035722674801945686, + 0.004214341752231121, + 0.035302408039569855, + 0.038888681679964066, + 0.022638369351625443, + -0.024282079190015793, + 0.011786147952079773, + -0.00901238713413477, + -0.011319184675812721, + 0.02487979084253311, + 0.07299566268920898, + 0.036273691803216934, + -0.003597950330004096, + -0.006915722973644733, + 0.004648617003113031, + 0.004639278165996075, + 0.01936962828040123, + 0.005939770024269819, + -0.025533540174365044, + -0.022488940507173538, + 0.05319643020629883, + -0.04516466706991196, + -0.008293263614177704, + -0.020098090171813965, + 0.009222520515322685, + 0.024095293134450912, + 0.027830997481942177, + -0.0032897547353059053, + 0.014634622260928154, + -0.01763252541422844, + 0.011169756762683392, + 0.028447389602661133, + 0.021162765100598335, + -0.02536543272435665, + 0.020396945998072624, + 0.030053742229938507, + 0.008848950266838074, + -0.018248915672302246, + -0.00352090154774487, + 0.002096664160490036, + -0.06985767185688019, + -0.027083856984972954, + 0.0012654699385166168, + 0.010628079064190388, + -0.004001873545348644, + -0.006182590965181589, + 0.057380419224500656, + 0.007732908241450787, + 0.018706539645791054, + 0.01269205566495657, + 0.0322578065097332, + -0.0212188009172678, + 0.03276212885975838, + -0.0018841959536075592, + -0.022619690746068954, + -0.005225316621363163, + 0.0515153631567955, + -0.023684365674853325, + 0.028746245428919792, + -0.09750188887119293, + 0.02674764394760132, + -0.03948639705777168, + -0.01987394690513611, + 0.003908480983227491, + -0.05125386640429497, + 0.005449458956718445, + 0.019500376656651497, + -0.005706288386136293, + 0.0006642549415118992, + 0.012075664475560188, + -0.03042731247842312, + 0.037039510905742645, + 0.031809523701667786, + -0.0018048122292384505, + 0.056110281497240067, + 0.04269910231232643, + 0.018893325701355934, + 0.0204343032091856, + 0.0031660094391554594, + -0.04841472953557968, + -0.006728937849402428, + 0.029997706413269043, + -0.01302826963365078, + 0.003154335543513298, + 0.052150435745716095, + 0.014812068082392216, + 0.034611303359270096, + 0.022918546572327614, + 0.018958700820803642, + 0.024170007556676865, + -0.046920448541641235, + -0.047891732305288315, + 0.008568772114813328, + 0.004237689543515444, + -0.03584408387541771, + 0.009040405042469501, + 0.03793608024716377, + 0.03967318311333656, + -0.009493359364569187, + -0.00808779988437891, + -0.006500125862658024, + -0.009371948428452015, + -0.01017045509070158, + -0.02758817747235298, + -0.025813717395067215, + 0.002650015288963914, + 0.017305651679635048, + -0.005300030577927828, + -0.0056269047781825066, + -0.006360036786645651, + 0.004457162227481604, + 0.05614763870835304, + -0.004786371253430843, + -0.010357240214943886, + 0.011879540048539639, + 0.027195928618311882, + -0.011459273286163807, + -0.008003747090697289, + -0.0012082669418305159, + -0.05091765150427818, + -0.042661745101213455, + -0.021349551156163216, + -0.03434980288147926, + 0.009157145395874977, + 0.03567597642540932, + -0.009166484698653221, + -0.01853843405842781, + -0.008806923404335976, + 0.011487291194498539, + -0.02674764394760132, + 0.05413035675883293, + -0.030483348295092583, + 0.020807873457670212, + -0.011730112135410309, + 0.01370069570839405, + 0.02110672928392887, + -0.06698118150234222, + -0.031435951590538025, + 0.010618739761412144, + -0.006266644224524498, + -0.0020336240995675325, + -0.02643010951578617, + 0.07247266918420792, + -0.0004080089565832168, + -0.011963593773543835, + 0.03862718492746353, + -0.010478651151061058, + -0.15152017772197723, + 0.020882587879896164, + -0.016633223742246628, + 0.014662640169262886, + 0.0008323616348206997, + 0.029175851494073868, + -0.05394357070326805, + 0.010179794393479824, + -0.0432220995426178, + -0.07097838819026947, + 0.02400190196931362, + -0.06406733393669128, + -0.013457875698804855, + 0.003014246467500925, + 0.009530715644359589, + -0.019220199435949326, + -0.012962894514203072, + 0.005005843937397003, + 0.008325951173901558, + -0.02848474681377411, + -0.043334171175956726, + 0.051291223615407944, + 0.05973391607403755, + -0.05125386640429497, + -0.060294270515441895, + -0.04116746410727501, + 0.05424242839217186, + -0.016390403732657433, + -0.02110672928392887, + 0.017221597954630852, + -0.017529793083667755, + -0.012953555211424828, + -0.002244924893602729, + 0.06272247433662415, + 0.011328523978590965, + 0.0425870306789875, + 0.019108127802610397, + -0.03195895254611969, + -0.0017079174285754561, + 0.01041327603161335, + 0.02508525550365448, + 0.021909907460212708, + -0.008662165142595768, + 0.023497581481933594, + 0.0017359352204948664, + -0.059621844440698624, + 0.04632273688912392, + -0.03233252093195915, + 0.00898903887718916, + 0.008886306546628475, + 0.009269217029213905, + -0.005837038159370422, + -0.015680618584156036, + -0.02691575139760971, + -0.011393898166716099, + 0.007083829492330551, + 0.005272013135254383, + 0.021442944183945656, + -0.0555872805416584, + 0.024580935016274452, + -0.04811587184667587, + -0.06907317787408829, + -0.02682235836982727, + 0.01254262775182724, + -0.05200100690126419, + -0.03300494700670242, + -0.009446662850677967, + -0.033658698201179504, + 0.020863909274339676, + -0.03832832723855972, + 0.005127254407852888, + 0.0008621305460110307, + 0.047592874616384506, + 0.008498727343976498, + -0.005444789305329323, + -0.01074949000030756, + -0.05614763870835304, + -0.057305704802274704, + -0.007317311130464077, + -0.12096211314201355, + -0.008293263614177704, + 0.005556860473006964, + 0.01783798821270466, + -0.020415624603629112, + 0.0035442495718598366, + 6.234686588868499e-05, + 0.015428459271788597, + 0.02226479910314083, + 0.03982260823249817, + 0.1827506572008133, + -0.037450436502695084, + -0.010973631404340267, + 0.007144534960389137, + 0.04516466706991196, + -0.04221345856785774, + 0.006135894451290369, + 0.01927623525261879, + 0.03911282494664192, + -0.03767457976937294, + -0.04826530069112778, + -0.025701645761728287, + 0.03582540526986122, + -0.02304929681122303, + 0.04725665971636772, + 0.029119815677404404, + 0.04591180756688118, + -0.002098998986184597, + 0.09966859221458435, + -0.02304929681122303, + 0.003908480983227491, + 0.0245062205940485, + -0.015914101153612137, + 0.017090847715735435, + -0.02149898000061512, + -0.05271079018712044, + -0.05211307853460312, + 0.04565030708909035, + -0.018921343609690666, + 0.04109274968504906, + -0.01578335091471672, + 0.027681570500135422, + 0.03283684328198433, + 0.056222353130578995, + -0.012701394967734814, + -0.047107234597206116, + -0.012075664475560188, + -0.014905461110174656, + 0.0069203926250338554, + 0.007429382298141718, + -0.02857813984155655, + -0.043520957231521606, + 0.00045762379886582494, + 0.027476105839014053, + 0.020098090171813965, + -0.05121650919318199, + -0.042474959045648575, + 0.03537712246179581, + 0.04662159085273743, + -0.0009047409403137863, + -0.03591879829764366, + 0.0028764924500137568, + -0.049348656088113785, + 0.017697900533676147, + -0.02209669165313244, + -0.012664037756621838, + 0.005113245453685522, + -0.02672896534204483, + -0.03567597642540932, + 0.029848279431462288, + 0.017268294468522072, + -0.000894817931111902, + -0.057679276913404465, + -0.0007950045983307064, + 0.01744573935866356, + -0.0030842910055071115, + -0.053607359528541565, + -0.015493834391236305, + 0.005010513588786125, + 0.0466589480638504, + -0.014447837136685848, + 0.057866062968969345, + 0.002533274469897151, + 0.021424265578389168, + 0.032108381390571594, + -0.03603086993098259, + -0.02054637484252453, + 0.09182361513376236, + -0.010273187421262264, + 0.03380812704563141, + -0.034723371267318726, + 0.005967787932604551, + -0.03367737680673599, + 0.020004697144031525, + 0.012159718200564384, + -0.01570863649249077, + 0.026560857892036438, + 0.007055811583995819, + -0.05319643020629883, + -0.02674764394760132, + -0.008764896541833878, + 0.005024522542953491, + 0.02045298181474209, + -0.01433576550334692, + 0.006630875635892153, + 0.009955652058124542, + -0.026897072792053223, + 0.007574140559881926, + 0.004655621480196714, + -0.012402539141476154, + -0.04109274968504906, + -0.03971053659915924, + 0.0036656600423157215, + -0.015138942748308182, + 0.05054408311843872, + 0.03431244567036629, + 0.01710018701851368, + 0.01987394690513611, + 0.009572742506861687, + 0.0149148004129529, + 0.013523249886929989, + 0.026953106746077538, + -0.01506422832608223, + 0.007919693365693092, + -0.018641164526343346, + 0.017968738451600075, + -0.003149665892124176, + 0.03253798559308052, + 0.022937225177884102, + 0.08106478303670883, + -0.04426809772849083, + -0.008251236751675606, + -0.005234655924141407, + -0.00015920521400403231, + -0.0008662164909765124, + -0.03948639705777168, + -0.010086402297019958, + -0.019201520830392838, + -0.026598215103149414, + 0.030352598056197166, + -0.03070748969912529, + -0.01752045378088951, + 0.011935575865209103, + -0.01710018701851368, + 0.04636009410023689, + 0.010740150697529316, + 0.03580672666430473, + 0.008993708528578281, + -0.007639515679329634, + -0.008232559077441692, + 0.004314738791435957, + 0.007420042995363474, + 0.005542851518839598, + -0.04385717213153839, + 0.01056270394474268, + -0.05958448722958565, + -0.015512512996792793, + -0.044305454939603806, + -0.014214355498552322, + 0.07867393642663956, + 0.0277936402708292, + 0.01897737942636013, + -0.013579285703599453, + -0.06066783890128136, + -0.013719374313950539, + -0.029194530099630356, + -0.0012409542687237263, + -0.008774235844612122, + -0.0185571126639843, + -0.026971785351634026, + -0.025421468541026115, + 0.025010541081428528, + 0.03513430058956146, + -0.014513212256133556, + 0.04561294987797737, + 0.027961747720837593, + 0.034629981964826584, + 0.03829097002744675, + 0.021461622789502144, + -0.015661941841244698, + 0.012402539141476154, + -0.039561111479997635, + -0.045463524758815765, + 0.02770024910569191, + 0.011272488161921501, + 0.06993238627910614, + 0.0037613874301314354, + -0.02403925731778145, + 0.00867617316544056, + 0.05102972313761711, + 0.03425640985369682, + 0.022320834919810295, + -0.021368229761719704, + -0.03552654758095741, + 0.022974582388997078, + 0.010329223237931728, + -0.004770027473568916, + -0.013962195254862309, + 0.024674328044056892, + -0.009647456929087639, + -0.018874647095799446, + 0.08719134330749512, + -0.02536543272435665, + 0.007354668341577053, + 0.0032967592123895884, + 0.014980174601078033, + 0.007354668341577053, + 0.0604436993598938, + -0.013728713616728783, + -0.007158543448895216, + 0.016390403732657433, + -0.023180047050118446, + 0.018818611279129982, + -0.020098090171813965, + -0.009647456929087639, + -0.016100885346531868, + 0.022488940507173538, + 0.009740849025547504, + 0.011720772832632065, + -0.03126784786581993, + 0.012822805903851986, + -0.007279953919351101, + -0.03341587632894516, + 0.0057623242028057575, + 0.026859715580940247, + -0.0016483796061947942, + 0.07632043957710266, + 0.03545183688402176, + 0.011533987708389759, + -0.03068881295621395, + -0.009484020061790943, + -0.018015434965491295, + 0.058351702988147736, + 0.03388283774256706, + 0.022507619112730026, + -0.0023476567585021257, + -0.015717975795269012, + -0.01899605803191662, + -0.006845678202807903, + -0.01219707541167736, + 0.011888879351317883, + 0.03593747690320015, + 0.004538881126791239, + -0.03816021978855133, + 0.02770024910569191, + 0.02120012231171131, + 0.029661493375897408, + 0.036946117877960205, + 0.026616893708705902, + 0.012729412876069546, + 0.023516260087490082, + 0.03459262475371361, + 0.0134672150015831, + 0.06955881416797638, + -0.03866454213857651, + 0.04912451282143593, + -0.0480785146355629, + -0.04277381673455238, + 0.044417526572942734, + 0.024674328044056892, + 0.033359840512275696, + 0.006897044368088245, + 0.02177915722131729, + -0.013159018941223621, + 0.02577636018395424, + -0.015269692055881023, + -0.06186326593160629, + 0.0029955680947750807, + -0.05857584625482559, + -0.013831445947289467, + -0.014587925747036934, + 0.05510164052248001, + -0.0011423083487898111, + -0.006742946337908506, + 0.03662858158349991, + -0.07568537443876266, + -0.01659586653113365, + 0.004760688170790672, + 0.0216110497713089, + -7.821631152182817e-05, + -0.04154103249311447, + -0.02364700846374035, + -0.003053938504308462, + -0.04012146592140198, + -0.0008160179131664336, + -0.004443153273314238, + -0.026598215103149414, + 0.01575533300638199, + 0.039187539368867874, + 0.001384545466862619, + 0.0016040181508287787, + -0.06851281970739365, + -0.05162743479013443, + 0.01763252541422844, + 0.05069350823760033, + -0.0066542234271764755, + 0.04550088196992874, + -0.025346754118800163, + -0.002906844951212406, + -0.008540754206478596, + 0.02672896534204483, + -0.027270643040537834, + -0.011197773739695549, + 0.09443860501050949, + -0.030165813863277435, + 0.02431943640112877, + -0.0273266788572073, + 0.015176299028098583, + 0.00699510658159852, + -0.01317769754678011, + -0.01288818009197712, + 0.003231384325772524, + -0.05297229066491127, + 0.0028741576243191957, + 0.003719360800459981, + -0.01442915853112936, + -0.01628767140209675, + -0.05170214921236038, + 0.03881397098302841, + 0.020565053448081017, + 0.02207801304757595, + -0.07912222295999527, + -0.007209909614175558, + 0.019238878041505814, + -0.041690461337566376, + 0.035209015011787415, + 0.05607292428612709, + 0.016922740265727043, + 0.007275284267961979, + -0.008349299430847168, + -0.04777966067194939, + 0.019519055262207985, + 0.008139166049659252, + 0.03108106181025505, + -0.041503675282001495, + 0.014438497833907604, + 0.010992310009896755, + -0.0028344658203423023, + -0.017277633771300316, + -0.018575791269540787, + -0.020994659513235092, + -0.01229980681091547, + -0.06582311540842056, + 0.007139865309000015, + 0.04912451282143593, + 0.03974789381027222, + -0.04225081577897072, + -0.058052849024534225, + -0.021349551156163216, + -0.03261270001530647, + -0.013327125459909439, + -0.0055942172184586525, + 0.016166260465979576, + 0.036086905747652054, + 0.013018930330872536, + -0.05106708034873009, + -0.015858065336942673, + 0.006275983527302742, + 0.03681536763906479, + 0.0012444565072655678, + -0.06731739640235901, + -0.022246120497584343, + -0.016343707218766212, + -0.013597964309155941, + -0.003798744408413768, + 0.05947241559624672, + -0.009353269822895527, + 0.01777261309325695, + -0.06406733393669128, + 0.010646757669746876, + -0.009395296685397625, + 0.021274836733937263, + -0.0800187885761261, + 0.0277936402708292, + 0.011636719107627869, + 0.032874200493097305, + 0.03989732265472412, + 0.038122862577438354, + 0.013215054757893085, + -0.05577406659722328, + -0.02461829222738743, + -0.03517165780067444, + -0.018034113571047783, + 0.0480785146355629, + -0.0028648183215409517, + 0.005113245453685522, + -0.052150435745716095, + 0.011739451438188553, + 0.0432220995426178, + -0.023404188454151154, + -0.030614098533988, + -0.03619897738099098, + 0.008578111417591572, + -0.00042727121035568416, + 0.04240024462342262, + 0.008536084555089474, + -0.02770024910569191, + 0.014634622260928154, + -0.012794787995517254, + 0.02062108926475048, + -0.049946367740631104, + -0.01781930960714817, + -0.025103934109210968, + 0.037132903933525085, + -0.13941648602485657, + -0.00020050226885359734, + -0.04075653478503227, + -0.031529344618320465, + -0.021368229761719704, + -0.01501753181219101, + -0.027438748627901077, + 0.01756715029478073, + -0.02807381935417652, + -0.017922041937708855, + -0.027195928618311882, + 0.034144338220357895, + 0.027046499773859978, + -0.005482146516442299, + -0.04019618034362793, + 0.02138690836727619, + 0.018389005213975906, + -0.0004220178525429219, + 0.005659592337906361, + -0.00796172022819519, + 0.023945866152644157, + -0.02829796075820923, + -0.03485412150621414, + -0.020303552970290184, + -0.008601459674537182, + -0.03545183688402176, + 0.009787545539438725, + -0.007905684411525726, + -0.019705841317772865, + 0.008624807931482792, + -0.04154103249311447, + -0.058650560677051544, + 0.05461600050330162, + 0.04512730985879898, + 0.007578810211271048, + -0.006439420394599438, + 0.022993260994553566, + -0.021947262808680534, + 0.020359588786959648, + 0.004368439316749573, + 0.003490548813715577, + -0.0022005634382367134, + 0.01946301944553852, + 0.03819757699966431, + 0.020471660420298576, + 0.03776797279715538, + -0.025608254596590996, + 0.012925537303090096, + -0.023086654022336006, + 0.009054413996636868, + -0.020975980907678604, + 0.040831249207258224, + -0.007863657549023628, + 0.0011247972724959254, + 0.009647456929087639, + -0.0024865781888365746, + -0.06111612543463707, + -0.027251964434981346, + -0.009026396088302135, + 0.09922031313180923, + -0.03847775608301163, + 0.0007926697726361454, + -0.045089952647686005, + -0.057305704802274704, + 0.01733366958796978, + -0.04131689295172691, + -0.022713083773851395, + -0.028634173795580864, + 0.039000753313302994, + 0.02603786066174507, + -0.04124217852950096, + 0.009516706690192223, + -0.0580902025103569, + -0.0310063473880291, + 0.02471168525516987, + -0.023404188454151154, + 0.010497329756617546, + -0.03584408387541771, + -0.017688561230897903, + -0.017184240743517876, + 0.0032967592123895884, + 0.02140558697283268, + 0.026411430910229683, + 0.018202219158411026, + 0.036665938794612885, + 0.015222995541989803, + -0.0102171516045928, + 0.012794787995517254, + 0.04359567165374756, + 0.02316136844456196, + -0.005584878381341696, + 0.016231635585427284, + -0.006869026459753513, + -0.0067896428517997265, + -0.030277885496616364, + 0.00607518944889307, + 0.014242373406887054, + 0.013616642914712429, + -0.024543577805161476, + -0.06481447070837021, + -0.0383656844496727, + -0.026131251826882362, + -0.008321281522512436, + 0.015624583698809147, + -0.008237228728830814, + 0.04512730985879898, + 0.07800150662660599, + -0.0034275087527930737, + -0.002375674666836858, + -0.020845230668783188, + -0.07019388675689697, + -0.008606129325926304, + -0.053906213492155075, + -0.011505969800055027, + -0.057081565260887146, + -0.008554763160645962, + -0.026953106746077538, + -0.0245062205940485, + -0.06593518704175949, + 0.012365181930363178, + -0.01849173754453659, + 0.04781701788306236, + 0.01717490144073963, + -0.03844039887189865, + -0.008769566193223, + -0.059322986751794815, + 0.02867153100669384, + 0.00760682811960578, + -0.02577636018395424, + -0.010590721853077412, + 0.002084990032017231, + 0.026616893708705902, + -0.02151765674352646, + 0.040532391518354416, + -0.00433808658272028, + -0.0171468835324049, + -0.01994866132736206, + 0.06769096106290817, + -0.002320806495845318, + -0.027233285829424858, + -0.005939770024269819, + 0.02383379451930523, + 0.022451583296060562, + -0.04367038607597351, + -0.025346754118800163, + 0.026224644854664803, + 0.016670580953359604, + -0.00585571676492691, + 0.010123759508132935, + -0.02091994509100914, + -0.016726616770029068, + 0.01638106442987919, + -0.027662891894578934, + -0.0033924866002053022, + -0.00889564584940672, + 0.01976187713444233, + 0.07008181512355804, + -0.003831431968137622, + -0.07994407415390015, + 0.004081257153302431, + -0.003240723628550768, + -0.08136364072561264, + -0.02839135378599167, + -0.022320834919810295, + 0.03195895254611969, + 0.016876045614480972, + 0.01278544869273901, + 0.01966848410665989, + -0.03855247050523758, + 0.05233721807599068, + -0.010105080902576447, + -0.016390403732657433, + -0.013018930330872536, + 0.021349551156163216, + 0.027364034205675125, + -0.03109974041581154, + 0.010637418366968632, + -0.02151765674352646, + 0.05607292428612709, + -0.046733662486076355, + 0.017249615862965584, + 0.01219707541167736, + -0.01589542254805565, + 0.021909907460212708, + 0.013280428946018219, + 0.047107234597206116, + 0.021853871643543243, + 0.03948639705777168, + 0.005486815702170134, + -0.004587912000715733, + -0.02439415082335472, + 0.02334815263748169, + -0.03922489657998085, + 0.003581606550142169, + 0.04127953574061394, + -0.03334116190671921, + -0.002330145565792918, + 0.052822861820459366, + 0.01775393635034561, + 0.08861090987920761, + 0.023497581481933594, + 0.0067989821545779705, + -0.011328523978590965, + -0.04068182036280632, + -0.00958208180963993, + -0.005631574429571629, + 0.00867617316544056, + 0.004791040904819965, + -0.033658698201179504, + 0.04781701788306236, + -0.02691575139760971, + 0.01592344045639038, + -0.0001930600410560146, + -0.018566451966762543, + -0.01936962828040123, + -0.025720324367284775, + 0.023796437308192253, + -0.017072169110178947, + -0.01645577885210514, + -0.012869501486420631, + -0.03457394614815712, + -0.007177222054451704, + -0.002226246288046241, + -0.013868803158402443, + 0.031921595335006714, + -0.043633028864860535, + -0.009143136441707611, + -0.023366831243038177, + -0.015307049266994, + -0.006700919941067696, + -0.03184688091278076, + 0.013532589189708233, + 0.00011404113320168108, + 0.04154103249311447, + -0.033453233540058136, + 0.019519055262207985, + -0.02295590378344059, + 0.016670580953359604, + -0.0008107646135613322, + 0.026205966249108315, + 0.018295612186193466, + 0.012748091481626034, + -0.004492184612900019, + 0.03692743927240372 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "缸盖密封环老化失效导致主机启动困难或压缩压力不足", + "故障现象": "主机启动困难或压缩压力不足", + "故障原因": "缸盖密封环老化失效", + "维修方案": "执行以下维修项目:MT001保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + -0.013091787695884705, + 0.0062157283537089825, + -0.03182988986372948, + -0.03125568851828575, + -0.03581101819872856, + -0.029628783464431763, + 0.02409731224179268, + 0.04329477250576019, + -0.029399102553725243, + 0.018020348623394966, + -0.022145027294754982, + -0.016575274989008904, + -0.03791642189025879, + 0.022030187770724297, + -0.016718825325369835, + -0.003514589974656701, + 0.03835664317011833, + 0.0355047769844532, + -0.0055027618072927, + 0.026968317106366158, + 0.008249357342720032, + 0.043371330946683884, + 0.023733651265501976, + -0.03104514628648758, + -0.013302328065037727, + 0.005297006107866764, + 0.007670371327549219, + -0.005780292209237814, + 0.046127498149871826, + -0.03651919960975647, + -0.01285253744572401, + -0.013244908303022385, + -0.0331888310611248, + -0.03812696039676666, + 0.022259866818785667, + -0.030834605917334557, + -0.009589160792529583, + -0.021130604669451714, + -0.040730006992816925, + 0.038720302283763885, + -0.05853024497628212, + -0.0556209571659565, + 0.024901192635297775, + -0.016355164349079132, + -0.0033136196434497833, + -0.022489547729492188, + -0.018642399460077286, + -0.0258773360401392, + -0.023982470855116844, + -0.02446097321808338, + 0.0030600139871239662, + -0.02601131610572338, + 0.037782441824674606, + -0.019254881888628006, + 0.026049595326185226, + 0.027657359838485718, + 0.008617803454399109, + -0.00972792599350214, + -0.019982201978564262, + -0.0054357717745006084, + 0.012919527478516102, + 0.012374036014080048, + 0.0254753939807415, + -0.004904635716229677, + -0.00029338093008846045, + 0.03234666958451271, + 0.004086398519575596, + 0.01000067126005888, + -0.016938935965299606, + -0.035944998264312744, + 0.01923574134707451, + 0.013943519443273544, + 0.0016424547648057342, + -0.040500327944755554, + -0.034854013472795486, + 0.02826984040439129, + 0.03653833642601967, + -0.006818639580160379, + -0.013177918270230293, + 0.00513431616127491, + 0.020939204841852188, + -0.007990967482328415, + -0.022987188771367073, + 0.019867362454533577, + -0.003404534887522459, + 0.018747670575976372, + -0.026049595326185226, + 0.012393176555633545, + -0.024499252438545227, + -0.003926100675016642, + 0.010900253430008888, + 0.03512197360396385, + 0.0006094906711950898, + -0.00033465164597146213, + -0.026202715933322906, + 0.045132216066122055, + -0.00031491348636336625, + -0.026623796671628952, + 0.04777354374527931, + -0.022891489788889885, + 0.01877637952566147, + 0.06928694993257523, + 0.024269571527838707, + -0.0409214086830616, + 0.0401558056473732, + -0.0035672250669449568, + 0.03043266572058201, + 0.007392840925604105, + 0.00015835392696317285, + -0.00422516418620944, + 0.028078440576791763, + 0.0424526110291481, + 0.008392907679080963, + -0.02438441291451454, + -0.02570507489144802, + -0.03305485099554062, + 0.00471084238961339, + -0.04069172590970993, + 0.039103101938962936, + 0.007799566723406315, + -0.05217575281858444, + 0.04754386097192764, + 0.0440220944583416, + -0.03158106654882431, + -0.025226574391126633, + -0.0027968385256826878, + 0.031389668583869934, + 0.003301657037809491, + -0.017283456400036812, + 0.008713503368198872, + -0.005665452219545841, + 0.05156327039003372, + -0.03835664317011833, + 0.014833531342446804, + -0.03791642189025879, + -0.0030647991225123405, + -0.003411712357774377, + 0.05167810991406441, + 0.009359479881823063, + -0.0062157283537089825, + -0.0018529952503740788, + 0.020058762282133102, + 0.03690199926495552, + 0.008555598556995392, + 0.05148671194911003, + -0.03919880464673042, + -0.005210875999182463, + -0.00046982819912955165, + 0.0076751564629375935, + 0.0062157283537089825, + -0.010661003179848194, + 0.013254478573799133, + 0.0010461228666827083, + 0.059181004762649536, + -0.05160155147314072, + -0.017254747450351715, + -0.022642668336629868, + 0.01877637952566147, + 0.006651164032518864, + 0.004079221282154322, + -0.01612548530101776, + 0.059793487191200256, + -0.02346569113433361, + 0.0061200279742479324, + 0.005957337561994791, + -0.036404356360435486, + 0.08008193224668503, + 0.007234935648739338, + -0.04436661675572395, + 0.002013293094933033, + 0.02446097321808338, + -0.012833397835493088, + -0.04578297957777977, + -0.03496885299682617, + 0.001491726958192885, + 0.04677826166152954, + 0.03544735535979271, + 0.02987760305404663, + 0.010450462810695171, + 0.003325582016259432, + 0.009168080054223537, + 0.03875858336687088, + 0.022872349247336388, + -0.00542620150372386, + -0.007325850892812014, + -0.0007255271775647998, + 0.053400713950395584, + -0.01606806367635727, + -0.001771650044247508, + 0.0098475506529212, + -0.04306509345769882, + -0.030088145285844803, + -0.0013218590756878257, + -0.0054357717745006084, + 0.022432127967476845, + -0.02809757925570011, + 0.0031844242475926876, + 0.019436711445450783, + -0.01180940493941307, + -0.013426738791167736, + -0.016355164349079132, + 0.007474185898900032, + 0.028384679928421974, + 0.020594684407114983, + 0.020345862954854965, + 0.02377193048596382, + -0.03535165637731552, + -0.06216685473918915, + 0.04888366535305977, + -0.015771394595503807, + 0.002911678748205304, + -0.05064454674720764, + -0.03236581012606621, + 0.0034164972603321075, + -0.04478769749403, + 0.02130286581814289, + 0.002165217185392976, + -0.02819328010082245, + -0.0029690987430512905, + 0.00961308553814888, + -0.04719934239983559, + 0.06779402494430542, + -0.00798618234694004, + -0.04846258461475372, + 0.02425043098628521, + -0.0071535902097821236, + 0.029513943940401077, + 0.04911334440112114, + -0.017273886129260063, + -0.020652104169130325, + -0.011263914406299591, + -0.003347114659845829, + -0.021723946556448936, + -0.00542620150372386, + 0.05343899503350258, + -0.00275138090364635, + -0.023274289444088936, + 0.014661271125078201, + 0.03481573611497879, + -0.007900051772594452, + 0.00300259399227798, + -0.015694834291934967, + 0.016163764521479607, + -0.010249491780996323, + -0.025896474719047546, + 0.0071153100579977036, + 0.049304746091365814, + 0.03638521954417229, + -0.031389668583869934, + -0.01813518814742565, + -0.002238188637420535, + -0.007498111110180616, + -0.01196252554655075, + 0.01767582818865776, + 0.019436711445450783, + -0.016470005735754967, + 0.015302462503314018, + 0.013177918270230293, + -0.02694917842745781, + -0.016623126342892647, + -0.03435637429356575, + 0.0525202713906765, + 0.0016280997078865767, + -0.007828276604413986, + 0.02610701508820057, + 0.025073453783988953, + -0.004337611608207226, + -0.001282382756471634, + -0.031179126352071762, + 0.006670304108411074, + -0.04069172590970993, + 0.002239384688436985, + 0.020250163972377777, + 0.04348617419600487, + 0.03672973811626434, + 0.018498849123716354, + 0.0076177362352609634, + -0.015168482437729836, + 0.045515015721321106, + 0.025819914415478706, + 0.02832726016640663, + 0.022968048229813576, + 0.038490623235702515, + 0.010565302334725857, + -0.006268363445997238, + -0.01637430489063263, + -0.08329746127128601, + -0.013034367933869362, + -0.01486224215477705, + 0.0032968721352517605, + 0.01628817431628704, + -0.022719228640198708, + 0.05343899503350258, + -0.0308920256793499, + -0.01660398580133915, + 0.054242875427007675, + 0.026126155629754066, + -0.17103540897369385, + 0.010182501748204231, + -0.0019032377749681473, + 0.03449035435914993, + 0.00028650250169448555, + 0.030126424506306648, + -0.019886502996087074, + -0.012096505612134933, + -0.052788231521844864, + -0.03583015501499176, + 0.013981799595057964, + -0.05803260579705238, + -0.0036653177812695503, + -0.007498111110180616, + -0.0625879317522049, + -0.007321065757423639, + -0.004287369083613157, + -0.020192742347717285, + -0.007067460101097822, + -0.006459763739258051, + -0.0610184520483017, + 0.012718557380139828, + 0.06909554451704025, + -0.0393519252538681, + -0.039122242480516434, + -0.016737965866923332, + 0.021188024431467056, + 0.013445878401398659, + -0.006670304108411074, + 0.026910897344350815, + -0.03343765065073967, + -0.024920333176851273, + -0.00802446249872446, + 0.0632769763469696, + 0.017493996769189835, + 0.02539883367717266, + 0.04578297957777977, + -0.0031270042527467012, + 0.00136612041387707, + 0.014048789627850056, + 0.025150014087557793, + 0.045361898839473724, + 0.011129933409392834, + 0.0054740519262850285, + 0.006761219352483749, + -0.04494081437587738, + 0.023580530658364296, + -0.04409865289926529, + 0.0013972229789942503, + -0.007144020404666662, + 0.028308121487498283, + -0.01397223025560379, + 0.004646244924515486, + -0.017714107409119606, + -0.02438441291451454, + -0.014489010907709599, + 0.007373700849711895, + 0.04360101372003555, + -0.02155168540775776, + -0.0017417437629774213, + -0.04509393498301506, + -0.06653077900409698, + 0.03839492052793503, + -0.020211882889270782, + -0.05489363893866539, + 0.004024193622171879, + -0.020862644538283348, + -0.03272946923971176, + 0.010249491780996323, + -0.03026040457189083, + -0.01266113668680191, + 0.0068999845534563065, + 0.016096774488687515, + 0.019943922758102417, + 0.003552870126441121, + 0.010718422941863537, + -0.05305619165301323, + -0.009943251498043537, + -0.02015446312725544, + -0.1259414702653885, + 0.01684323512017727, + 0.053553834557533264, + 0.006655949167907238, + -0.008431187830865383, + 0.0022537398617714643, + -0.030011584982275963, + 0.008971894159913063, + 0.006665519438683987, + 0.017340878024697304, + 0.24591124057769775, + 0.029284263029694557, + 0.0062587931752204895, + -0.04295025020837784, + 0.06094188988208771, + -0.06656906008720398, + -0.04241432994604111, + -0.03227010741829872, + 0.03676801919937134, + -0.03575359657406807, + -0.042184650897979736, + -0.01015379186719656, + 0.01891035959124565, + -0.02562851458787918, + -0.020709523931145668, + -0.00074107846012339, + 0.005737227387726307, + -0.022834068164229393, + 0.08375681936740875, + -0.01722603663802147, + 0.037571899592876434, + 0.05742012336850166, + 0.012555866502225399, + -0.018872080370783806, + -0.03690199926495552, + -0.01536945253610611, + -0.022355567663908005, + 0.039734724909067154, + 0.0038638957776129246, + 0.026662077754735947, + -0.046280618757009506, + 0.023810211569070816, + 0.0563482791185379, + -0.005163026042282581, + -0.020116183906793594, + -0.0020754982251673937, + 0.006651164032518864, + 0.008172797039151192, + -0.022221587598323822, + 0.002483420306816697, + -0.011129933409392834, + -0.021743087098002434, + -0.03805040195584297, + 0.005052970722317696, + 0.004744337871670723, + -0.02781047858297825, + -0.02185792662203312, + 0.005430986639112234, + 0.05604204162955284, + 0.02886318229138851, + -0.05707560107111931, + -0.022987188771367073, + -0.039734724909067154, + -0.017580127343535423, + -0.028365541249513626, + -0.002935603726655245, + 0.00023640941071789712, + -0.03665317967534065, + -0.02448011189699173, + -0.020881785079836845, + -0.038088683038949966, + 0.01782894879579544, + -0.07051190733909607, + 0.03079632669687271, + -0.004471592139452696, + -0.015388593077659607, + -0.012144356034696102, + -0.018345728516578674, + 0.02570507489144802, + 0.02247040718793869, + -0.009622655808925629, + -0.0019175928318873048, + -0.008091452531516552, + 0.046586859971284866, + 0.02300632931292057, + -0.009014959447085857, + 0.014383740723133087, + 0.051448430866003036, + -0.06584174185991287, + 0.010794983245432377, + -0.0556209571659565, + -0.006182233337312937, + -0.03420325368642807, + -0.018020348623394966, + 0.02848038077354431, + -0.0038973907940089703, + 0.04360101372003555, + 0.026202715933322906, + -0.03366733342409134, + -0.012823827564716339, + -0.0440220944583416, + 0.007522036321461201, + 0.001585034653544426, + 0.012957807630300522, + -0.02717885747551918, + 0.025647655129432678, + -0.0262409970164299, + -0.07713436335325241, + -0.017159046605229378, + 0.022968048229813576, + -0.032231830060482025, + -0.02417387254536152, + -0.018642399460077286, + -0.04700794070959091, + 0.0036940278951078653, + 0.022527828812599182, + 0.03345679119229317, + 0.0021412919741123915, + -0.003952418453991413, + 0.025417974218726158, + -0.0015802496345713735, + 0.016709255054593086, + -0.003772980533540249, + 0.007598596159368753, + -0.02725541777908802, + 0.03171504661440849, + -0.0007536390912719071, + 0.01729302667081356, + 0.01921660080552101, + 0.032404087483882904, + -0.04670169949531555, + -0.04876882582902908, + -0.01767582818865776, + 0.009694430977106094, + -0.008081882260739803, + 0.002863828558474779, + -0.010498312301933765, + -0.037323080003261566, + -0.04222293198108673, + 0.06901898980140686, + -0.025819914415478706, + -0.020958345383405685, + -0.029590502381324768, + -0.0032107417937368155, + 0.027293698862195015, + 0.013407598249614239, + 0.027044877409934998, + 0.0347583144903183, + 0.014489010907709599, + -0.02834640070796013, + -0.019101761281490326, + -0.03196386992931366, + -0.00864651333540678, + -0.03690199926495552, + 0.011321334168314934, + -0.059334125369787216, + -0.0031557143665850163, + 0.011751985177397728, + -0.007000470068305731, + 0.03969644382596016, + 0.031179126352071762, + -0.010450462810695171, + 0.025035172700881958, + -0.02277664840221405, + 0.008101021870970726, + -0.014603851363062859, + -0.0008104611188173294, + -0.008019677363336086, + -0.033782172948122025, + -0.0004910616553388536, + 0.015532143414020538, + -0.02325514890253544, + 0.06813854724168777, + 0.0470844991505146, + 0.01836486905813217, + 0.0049237753264606, + 0.023657090961933136, + 0.03219354897737503, + 0.004904635716229677, + -0.02840382046997547, + 0.0393902026116848, + -0.030681485310196877, + -0.0370742604136467, + 0.0033136196434497833, + 0.00443809712305665, + 0.04122764989733696, + -0.025819914415478706, + 0.01115864422172308, + -0.020326724275946617, + 0.07824448496103287, + 0.02648981660604477, + 0.06878931075334549, + -0.027312837541103363, + 0.022566108033061028, + -0.03295915201306343, + -0.016173334792256355, + 0.016508284956216812, + 0.0012811864726245403, + -0.015044072642922401, + -0.01961854286491871, + -0.024824632331728935, + 0.11690737307071686, + -0.03152364864945412, + 0.004576862324029207, + 0.022910628467798233, + 0.010431322269141674, + 0.02247040718793869, + 0.024805493652820587, + 0.015618273057043552, + 0.015197192318737507, + 0.058338843286037445, + -0.05049142986536026, + 0.0216282457113266, + -0.05646312236785889, + -0.023733651265501976, + -0.01285253744572401, + -0.009598730131983757, + 0.027006598189473152, + 0.023657090961933136, + 0.001955872867256403, + 0.013225768692791462, + 0.014383740723133087, + -0.015637412667274475, + 0.00988583080470562, + -0.01204865612089634, + -0.008292422629892826, + 0.03202128782868385, + 0.09049411118030548, + 0.010058091953396797, + -0.020824365317821503, + 0.049304746091365814, + -0.03634693846106529, + 0.061898890882730484, + -0.002937996294349432, + -0.018087338656187057, + 0.003598327748477459, + -0.03194472938776016, + -0.03954332321882248, + 0.016001073643565178, + -0.016345594078302383, + 0.011330904439091682, + 0.04291197285056114, + -0.019886502996087074, + 0.011646714992821217, + 0.038969121873378754, + 0.033705610781908035, + -0.002412841422483325, + 0.03577273711562157, + 0.012460166588425636, + -0.003103079041466117, + -0.026662077754735947, + 0.03908396512269974, + 0.011015093885362148, + 0.007431121077388525, + -0.025417974218726158, + 0.02478635311126709, + -0.032461509108543396, + -0.0027202782221138477, + 0.02901630289852619, + 0.052635110914707184, + -0.00818236730992794, + 0.02555195428431034, + 0.049840666353702545, + -0.019809942692518234, + 0.01637430489063263, + 0.016173334792256355, + -0.06653077900409698, + 0.008306778036057949, + -0.03537079691886902, + -0.015857523307204247, + -0.01019207201898098, + 0.012517586350440979, + 0.007057890295982361, + -0.004043333698064089, + 0.014603851363062859, + -0.03634693846106529, + 0.007699081674218178, + 0.03680630028247833, + 0.02702573873102665, + -0.032404087483882904, + -0.033782172948122025, + -0.008168012835085392, + -0.024728933349251747, + -0.025437114760279655, + 0.04333305358886719, + -0.016862375661730766, + 0.0035002350341528654, + 0.011455314233899117, + 0.008459897711873055, + 0.02562851458787918, + -0.048232901841402054, + 0.007321065757423639, + 0.027217138558626175, + 0.010278201662003994, + 0.034088414162397385, + 0.010326052084565163, + 0.04876882582902908, + -0.006660734303295612, + -0.003765803063288331, + 0.012651567347347736, + 0.00988583080470562, + 0.00505775585770607, + -0.030451804399490356, + 0.044672854244709015, + -0.019283590838313103, + 0.04375413432717323, + 0.02338913083076477, + -0.001784808817319572, + -0.002107796957716346, + 0.021168885752558708, + 0.004816112574189901, + -0.016039354726672173, + -0.024537531659007072, + -0.034930575639009476, + -0.03584929555654526, + -0.018039489164948463, + -0.006019542925059795, + -0.014058359898626804, + 0.0316384881734848, + 0.009019744582474232, + 0.050759389996528625, + -0.09210187941789627, + -0.021666526794433594, + 0.018087338656187057, + 0.039122242480516434, + 0.017943788319826126, + 0.020575543865561485, + 0.019886502996087074, + 0.054549116641283035, + 0.01567569375038147, + -0.02694917842745781, + -0.017254747450351715, + -0.04578297957777977, + -0.013158777728676796, + -0.0010449265828356147, + -0.013618139550089836, + -0.026202715933322906, + 0.02277664840221405, + -0.0424526110291481, + -0.03071976639330387, + -0.028078440576791763, + 0.0037897280417382717, + -0.017101626843214035, + 0.014661271125078201, + 0.05202263221144676, + -0.019254881888628006, + -0.009105874225497246, + -0.05891304463148117, + 0.03182988986372948, + -0.03096858598291874, + 0.024059031158685684, + -0.03158106654882431, + 0.015953224152326584, + 0.013866960071027279, + 0.015187622047960758, + -0.015359883196651936, + -0.00033196009462699294, + -0.002703530713915825, + 0.03190644830465317, + 0.014661271125078201, + -0.028231561183929443, + 0.0030815466307103634, + -0.02863350138068199, + -0.038567181676626205, + 0.013015227392315865, + -0.020269302651286125, + 0.010010241530835629, + 0.044672854244709015, + 0.009392974898219109, + 0.008435972966253757, + -0.012565436773002148, + 0.025188293308019638, + -0.016106344759464264, + 0.033705610781908035, + 0.041801851242780685, + 0.05217575281858444, + 0.03234666958451271, + 0.054549116641283035, + 0.03812696039676666, + -0.02386763133108616, + 0.022948909550905228, + 0.022738369181752205, + 0.014986651949584484, + 0.04287369176745415, + -0.007215795572847128, + 0.021685665473341942, + -0.049840666353702545, + 0.0235613901168108, + -0.006230083294212818, + -0.03295915201306343, + -0.019714241847395897, + -0.035179395228624344, + -0.006952619645744562, + -0.012986517511308193, + 0.005311361514031887, + -0.00856995303183794, + -0.06063564866781235, + 0.0009133388521149755, + 0.024671513587236404, + 0.011216063983738422, + -0.029552223160862923, + -0.033858731389045715, + -0.04390725493431091, + 0.007287570741027594, + -0.1413300633430481, + -0.016575274989008904, + -0.018948640674352646, + -0.013493728823959827, + -0.03770587965846062, + -0.010220781899988651, + 0.022814929485321045, + 0.02865264192223549, + -0.0037131679710000753, + -0.06909554451704025, + 0.018862510100007057, + 0.019982201978564262, + 0.04593609645962715, + -0.025494534522294998, + -0.03071976639330387, + 0.04800322279334068, + -0.020747805014252663, + 0.016852805390954018, + 0.010144221596419811, + -0.02863350138068199, + -0.027217138558626175, + 0.003727522911503911, + -0.015551283024251461, + -0.020039623603224754, + -0.01300565805286169, + -0.016163764521479607, + -0.03020298480987549, + 0.0008786474936641753, + -0.021647386252880096, + 0.039734724909067154, + -0.007292355410754681, + -0.01813518814742565, + 0.03359077125787735, + 0.04076828807592392, + 0.002390112727880478, + -0.0220110472291708, + 0.017513137310743332, + 0.022566108033061028, + 0.014422020874917507, + 0.04455801472067833, + 0.013168347999453545, + 0.011139503680169582, + 8.867221913533285e-05, + -0.025303134694695473, + -0.006230083294212818, + 0.0556209571659565, + -0.014986651949584484, + -0.016852805390954018, + -0.059563808143138885, + -0.010661003179848194, + -0.0017860051011666656, + 0.027542518451809883, + -0.027121437713503838, + -0.011206493712961674, + -0.005718087311834097, + 0.019254881888628006, + -0.1088685542345047, + 0.0002540541463531554, + -0.004201238974928856, + 0.07005254924297333, + -0.06664562225341797, + -0.004170136526226997, + -0.012106075882911682, + -0.03546649590134621, + -0.00017420428048353642, + -0.021130604669451714, + -0.07992880791425705, + 0.000946833926718682, + -0.012919527478516102, + 0.01967596262693405, + -0.0044476669281721115, + -0.003505019936710596, + -0.03761018067598343, + -0.035389937460422516, + -0.0339927114546299, + -0.04130420833826065, + 0.03759104013442993, + -0.013962659984827042, + -0.020575543865561485, + -0.020728664472699165, + 0.04226120933890343, + -0.004337611608207226, + 0.04857742413878441, + 0.004383069463074207, + 0.038241803646087646, + 0.014259330928325653, + -0.04340961202979088, + -0.010469602420926094, + 0.04046204686164856, + -0.007971826940774918, + -0.05056798830628395, + -0.024365272372961044, + 0.04038548469543457, + -0.015178052708506584, + -0.018087338656187057, + 0.02888232097029686, + -0.02361880987882614, + -0.0385863222181797, + -0.0010622722329571843, + -0.05891304463148117, + -0.025456255301833153, + -0.003921316005289555, + 0.03181074932217598, + -0.027370259165763855, + -0.024135591462254524, + 0.04478769749403, + -0.027753058820962906, + -0.023293429985642433, + 0.010383471846580505, + -0.005072110798209906, + -0.006890414748340845, + 0.012708987109363079, + -0.008517318405210972, + -0.006517183966934681, + -0.05336243286728859, + -0.012163495644927025, + 0.0006382007268257439, + -0.0010102352825924754, + -0.021341145038604736, + -0.026068735867738724, + 0.016776245087385178, + 0.008790063671767712, + 0.000937263888772577, + 0.00941690057516098, + 0.002329103648662567, + -0.07460787892341614, + 0.004840037785470486, + -2.1775535060442053e-05, + -0.0005377155030146241, + -0.0054979766719043255, + 0.0030839391984045506, + -0.015417302958667278, + -0.05244371294975281, + 0.02438441291451454, + 0.009665721096098423, + 0.02285320870578289, + -0.022680949419736862, + 0.05121874809265137, + 0.002351832576096058, + -0.011551015079021454, + 0.021762225776910782, + 0.02781047858297825, + 0.010058091953396797, + -0.024422692134976387, + -0.0077756415121257305, + -0.02804015949368477, + 0.007397625595331192, + -0.015273752622306347, + 0.04980238527059555, + -0.007498111110180616, + -0.02092006430029869, + 0.010010241530835629, + -0.011129933409392834, + -0.02478635311126709, + 0.03768673911690712, + 0.01290038786828518, + -0.0011077298549935222, + 0.02346569113433361, + -0.01877637952566147, + 0.033246252685785294, + 0.02641325630247593, + -0.11529960483312607, + -0.006689444184303284, + -0.027504239231348038, + 0.01806819811463356, + -0.022680949419736862, + -0.010919393040239811, + 0.00011835424083983526, + -0.005297006107866764, + 0.004885495640337467, + -0.0026054379995912313, + 0.00024508225033059716, + -0.029073722660541534, + 0.01959940232336521, + 0.027236279100179672, + -0.01759926788508892, + 0.021092325448989868, + -0.03984956443309784, + 0.08115377277135849, + -0.011359614320099354, + 0.019503701478242874, + 0.04666341841220856, + -0.019905641674995422, + 0.0339927114546299, + -0.05033830925822258, + 0.026585517451167107, + 0.019034771248698235, + 0.03667232021689415, + -0.0037610181607306004, + -0.0035552626941353083, + -0.011340474709868431, + 0.007962256669998169, + -0.0008146479958668351, + -0.005177380982786417, + 0.06729638576507568, + -0.05990832671523094, + 0.024116450920701027, + -0.004258659202605486, + 0.015771394595503807, + 0.07732576876878738, + -0.032384950667619705, + -0.025207433849573135, + -0.008191937580704689, + -0.009086734615266323, + -0.024575812742114067, + -0.044290054589509964, + -0.008986249566078186, + -0.003595935180783272, + -0.036021556705236435, + 0.040883127599954605, + -0.02338913083076477, + 0.00604346813634038, + 0.008469467982649803, + -0.005349641665816307, + -0.0004255668609403074, + -0.01737915724515915, + -0.002540840534493327, + 0.0026652507949620485, + -0.029552223160862923, + 0.05983176827430725, + 0.007421550806611776, + 0.018814660608768463, + 0.032078709453344345, + -0.0011783087393268943, + 0.03179160878062248, + -0.03328453004360199, + -0.02987760305404663, + -0.017819378525018692, + 0.030624065548181534, + -0.004842430353164673, + -0.030011584982275963, + -0.024728933349251747, + -0.02231728844344616, + 0.041189368814229965, + -0.010029381141066551, + -0.021360285580158234, + -0.0617840513586998, + 0.029360823333263397, + 0.011838115751743317, + 0.01937929168343544, + 0.06741122156381607, + 0.037629321217536926, + 0.028767481446266174, + -0.020728664472699165 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "喷油器工作不一致导致主机功率输出不稳定", + "故障现象": "主机功率输出不稳定", + "故障原因": "喷油器工作不一致", + "维修方案": "执行以下维修项目:MT019 排除喷油器雾化不良故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + -0.01700081117451191, + -0.013305804692208767, + -0.07692418247461319, + -0.01512968260794878, + -0.025685494765639305, + -0.03226279839873314, + 0.00694113178178668, + 0.0289552453905344, + -0.009695849381387234, + 0.01608414761722088, + 0.01164257898926735, + -0.0036170431412756443, + 0.014921779744327068, + -0.019467299804091454, + -0.006180395372211933, + 0.009506846778094769, + 0.031204380095005035, + 0.03447413071990013, + -0.010565262287855148, + 0.004701447207480669, + 0.015110782347619534, + 0.0438486747443676, + 0.050425976514816284, + 0.017227616161108017, + -0.0010176625801250339, + 0.008084599860012531, + -0.038405392318964005, + 0.004717985168099403, + 0.06732283532619476, + 0.03481433540582657, + 0.006719053257256746, + -0.03744147717952728, + -0.04464248567819595, + 0.004179326817393303, + -0.05174899846315384, + -0.05775928869843483, + -0.03095867671072483, + -0.0144776226952672, + -0.030334966257214546, + 0.03757377713918686, + -0.011907183565199375, + -0.007304962258785963, + 0.010565262287855148, + -0.02782122790813446, + -0.008887861855328083, + -0.02636590600013733, + 0.013627110049128532, + -0.036023955792188644, + -0.0156872421503067, + -0.013277454301714897, + 0.002579889725893736, + -0.04347066953778267, + 0.05246720835566521, + -0.015828993171453476, + 0.03014596365392208, + 0.016594454646110535, + 0.009346193633973598, + 0.04271465912461281, + -0.00443684309720993, + 0.003583967685699463, + -0.051824599504470825, + 0.005344057455658913, + -0.005693712737411261, + -0.03243289887905121, + -0.01655665412545204, + 0.09382104128599167, + -0.0011192515958100557, + -0.0057456884533166885, + -0.0036879193503409624, + -0.047439731657505035, + -0.003335901303216815, + -0.013976764865219593, + -0.006974207237362862, + 0.01523363497108221, + -0.027348721399903297, + 0.03717687353491783, + 0.0827832743525505, + -0.047326330095529556, + 0.012294638901948929, + 0.007177385501563549, + 0.01889084093272686, + -0.036572061479091644, + 0.01444927230477333, + 0.062333159148693085, + -0.024343574419617653, + 0.02770782634615898, + -0.005107803735882044, + -0.005996117368340492, + 0.014061816968023777, + -0.0335669182240963, + 0.014921779744327068, + -0.008268876932561398, + -0.019505100324749947, + 0.009492671117186546, + -0.0281425341963768, + 0.01418466866016388, + -0.011160621419548988, + 0.004391955211758614, + 0.033812619745731354, + -0.02311505563557148, + 0.03231949731707573, + 0.03836759179830551, + 0.027197519317269325, + -0.029219849035143852, + 0.055944859981536865, + 0.011566977947950363, + 0.02398446947336197, + -0.003987961448729038, + -0.004821936599910259, + -0.004472281318157911, + 0.0004022218054160476, + 0.008684683591127396, + 0.015658890828490257, + -0.022113339975476265, + -0.026384806260466576, + -0.002253859769552946, + 0.0034115025773644447, + -0.028596140444278717, + 0.059724919497966766, + 0.004994401708245277, + 0.013825562782585621, + -0.03893459960818291, + 0.024381374940276146, + -0.030656272545456886, + -0.02251024730503559, + 0.0005371816805563867, + 0.03717687353491783, + 0.0048006740398705006, + -0.0017648147186264396, + 0.03449303284287453, + 0.018966441974043846, + 0.04683491960167885, + -0.023738766089081764, + -0.015904594212770462, + -0.036137357354164124, + 0.022321242839097977, + -0.008930387906730175, + 0.015980195254087448, + 0.013835012912750244, + -0.03317001089453697, + 0.01986420527100563, + 0.02003430761396885, + -0.00014219516015145928, + 0.019637402147054672, + -0.010971618816256523, + -0.015110782347619534, + 0.05862870439887047, + 0.0056700874119997025, + 0.019231045618653297, + -0.004155701491981745, + -0.006100068800151348, + -1.2698633327090647e-05, + 0.040144216269254684, + 0.02029891312122345, + 0.0035367170348763466, + 0.0024381375405937433, + -0.02262364886701107, + 0.05602046102285385, + 0.02349306084215641, + 0.057456884533166885, + 0.0007554210023954511, + 0.01478002779185772, + 0.020053207874298096, + -0.005925241392105818, + 0.0016868510283529758, + -0.027651125565171242, + 0.018881389871239662, + 0.04252565652132034, + -0.015469888225197792, + -0.023096155375242233, + 0.04093803092837334, + 0.01283329725265503, + -0.005391308106482029, + -0.013135702349245548, + -0.022170040756464005, + 0.02131952904164791, + 0.06214415654540062, + 0.01237024087458849, + -0.020828120410442352, + 0.012606494128704071, + -0.026063501834869385, + -0.00035644767922349274, + -0.0002778933267109096, + -0.026120202615857124, + 0.0007052171276882291, + -0.01715201325714588, + 0.054092634469270706, + -0.040786828845739365, + 0.011188971810042858, + 0.008448430337011814, + -0.01144412625581026, + -0.005339332390576601, + -0.004725072532892227, + 0.04460468515753746, + 0.041164834052324295, + -0.002259765984490514, + 0.019344447180628777, + 0.027367621660232544, + -0.0038131338078528643, + -0.012247388251125813, + 0.00768769346177578, + -0.014109067618846893, + 0.016906309872865677, + -0.00885006133466959, + -0.03674216568470001, + 0.028671741485595703, + 0.011595328338444233, + -0.05261841043829918, + 0.023001654073596, + 0.00974310003221035, + 0.038348689675331116, + -0.012700995430350304, + -0.022018838673830032, + 0.01770012266933918, + -0.05178679898381233, + 0.004080100450664759, + -0.024816082790493965, + -0.015384837053716183, + -0.012587593868374825, + -0.011519727297127247, + -0.042034246027469635, + 0.047931138426065445, + -0.0012840385315939784, + -0.01350425835698843, + 0.06161494925618172, + -0.0006237095803953707, + 0.05008577182888985, + 0.02294495329260826, + 0.0023979744873940945, + -0.030429469421505928, + -0.01916489563882351, + -0.010914918035268784, + -0.009762000292539597, + -0.023682065308094025, + 0.04570090398192406, + -0.008911487646400928, + 0.00332172610796988, + 0.0010241594864055514, + 0.012597043998539448, + 0.04989676922559738, + -0.015139132738113403, + 0.014912329614162445, + -0.019023142755031586, + -0.005296806339174509, + -0.00550943473353982, + 0.03392602130770683, + 0.049443162977695465, + 0.02245354652404785, + -0.023889968171715736, + 0.016424352303147316, + -0.006369397975504398, + -0.015932945534586906, + -0.022585848346352577, + -0.051559992134571075, + 0.009223341941833496, + 0.020525716245174408, + 0.018475035205483437, + 0.00034286308800801635, + -0.016414903104305267, + -0.043924275785684586, + -0.017615070566534996, + 0.045663103461265564, + 0.0219243373721838, + -0.0070356335490942, + 0.0008936293888837099, + 0.024532577022910118, + -0.011255123652517796, + 0.016707858070731163, + -0.034663133323192596, + 0.0378761813044548, + -0.045927707105875015, + -0.05447063967585564, + 0.015205283649265766, + 0.014137418009340763, + 0.01177488174289465, + 0.016414903104305267, + -0.008249976672232151, + -0.013419206254184246, + 0.04777993634343147, + -0.040560025721788406, + 0.06959087401628494, + -0.015706142410635948, + -0.0031941491179168224, + 0.007489240262657404, + 0.009672223590314388, + -0.023304058238863945, + -0.0389724001288414, + -0.019410599023103714, + -0.027084117755293846, + -0.017567820847034454, + 0.019410599023103714, + -0.050312574952840805, + 0.09586227685213089, + -0.027726726606488228, + -0.03156348690390587, + 0.020317813381552696, + 0.0046660094521939754, + -0.16042566299438477, + 0.04951876401901245, + -0.010952718555927277, + 0.008731934241950512, + -0.0047628735192120075, + 0.005051102954894304, + -0.01736936718225479, + 0.01954290084540844, + -0.02685731276869774, + -0.018002526834607124, + -0.020374514162540436, + -0.06826785206794739, + -0.03146898373961449, + -0.046797119081020355, + -0.049443162977695465, + -0.0033642516937106848, + -0.025137387216091156, + 0.02050681598484516, + -0.0004465193778742105, + -0.01971300318837166, + -0.04135383665561676, + 0.025307489559054375, + 0.026290304958820343, + -0.00828305259346962, + -0.06732283532619476, + 0.01469497662037611, + 0.04936756193637848, + -0.01645270362496376, + -0.038197487592697144, + -0.05299641564488411, + -0.03712017089128494, + 0.013721611350774765, + -9.760228567756712e-05, + 0.05125758796930313, + -0.028180334717035294, + -0.0018392346100881696, + 0.044529084116220474, + -0.03328341245651245, + 0.001698663691058755, + -0.016972461715340614, + 0.046683717519044876, + 0.023455260321497917, + 0.03543804585933685, + 0.00911939051002264, + -0.01797417737543583, + -0.08898256719112396, + 0.03290540724992752, + -0.058590903878211975, + 0.03415282443165779, + 0.025742195546627045, + 0.01774737238883972, + -0.007777469698339701, + 0.011935533955693245, + -0.032999906688928604, + -0.0378761813044548, + 0.01770957186818123, + -0.013438106514513493, + 0.0037493451964110136, + -0.05741908401250839, + 0.021640833467245102, + -0.04966996610164642, + -0.026706110686063766, + 0.003928897902369499, + 0.02999476157128811, + -0.04823354259133339, + 0.026120202615857124, + 0.02046901546418667, + 0.0008599632419645786, + 0.04347066953778267, + -0.02723531983792782, + -0.012275738641619682, + -0.025685494765639305, + 0.01780407503247261, + 0.02360646426677704, + 0.018541185185313225, + 0.02852053940296173, + 0.0005882715340703726, + -0.004538432229310274, + -0.03254630044102669, + -0.11725740879774094, + 0.031752489507198334, + 0.019524000585079193, + 0.03492773696780205, + -0.03528684377670288, + -0.009057964198291302, + -0.07476954907178879, + -0.029257649555802345, + 0.03534354269504547, + 0.042298849672079086, + 0.2175801545381546, + 0.021206125617027283, + -0.012105636298656464, + -0.010659764520823956, + -0.014335870742797852, + -0.05401703342795372, + 0.04532289877533913, + -0.001847503473982215, + 0.00938871968537569, + -0.018267130479216576, + -0.04146723821759224, + 0.03972841054201126, + 0.01883414015173912, + -0.002615327714011073, + 0.014959580264985561, + -0.0062134708277881145, + -0.03908580169081688, + -0.013636560179293156, + 0.08558052033185959, + 0.014231919310986996, + 0.014855628833174706, + 0.0010838136076927185, + -0.0024995633866637945, + -0.0013230203185230494, + -0.061463747173547745, + -0.045814305543899536, + -0.059460315853357315, + 0.05651187151670456, + -0.004323441535234451, + 0.05008577182888985, + -0.060594331473112106, + 0.01922159641981125, + 0.07125409692525864, + -0.010206157341599464, + -0.0024617628660053015, + -0.013069551438093185, + -0.005230655428022146, + -0.01277659647166729, + 0.07582797110080719, + 0.012984500266611576, + -0.06917506456375122, + -0.025515392422676086, + -0.014827278442680836, + 0.013598759658634663, + 0.00825470220297575, + -0.04966996610164642, + -0.023398559540510178, + 0.01910819485783577, + 0.032508499920368195, + -0.0265171080827713, + -0.016386551782488823, + 0.0004967232816852629, + 0.010735365562140942, + -0.016093598678708076, + -0.022907152771949768, + -0.027103018015623093, + -0.005594485905021429, + 6.556038715643808e-05, + -0.018323831260204315, + 0.02143293060362339, + 0.0313744843006134, + 0.009733649902045727, + -0.0584774985909462, + 0.019391698762774467, + 0.00560393650084734, + 0.011604778468608856, + -0.08353928476572037, + -0.029900260269641876, + 0.009015439078211784, + 0.025590993463993073, + 0.02982465922832489, + 0.02625250443816185, + 0.000682182377204299, + 0.02912534773349762, + 0.03623185679316521, + -0.0067710294388234615, + 0.009506846778094769, + 0.08285887539386749, + -0.05322321876883507, + 0.014742227271199226, + -0.07854960858821869, + 5.987553231534548e-05, + -0.06290017068386078, + -0.028766242787241936, + 0.030183764174580574, + 0.022926053032279015, + -0.008509855717420578, + -0.0049424259923398495, + 0.002565714530646801, + -0.009265867993235588, + -0.028331536799669266, + 0.056209463626146317, + -0.026479307562112808, + 0.028104731813073158, + -0.014770577661693096, + -0.005079453345388174, + -0.049291957169771194, + -0.027027416974306107, + 0.009487946517765522, + 0.0454741008579731, + 0.03706347197294235, + -0.0454741008579731, + -0.012332439422607422, + 0.029106447473168373, + 0.011377975344657898, + 0.01036680955439806, + 0.01770012266933918, + -0.011793782003223896, + -0.00018560676835477352, + 0.023908868432044983, + -0.012975050136446953, + 0.028407137840986252, + 0.00491407560184598, + -0.04324386641383171, + 0.029975861310958862, + 0.03199819102883339, + -0.006605651695281267, + 0.020204411819577217, + 0.030599571764469147, + 0.011755980551242828, + -0.04864934831857681, + -0.03781948238611221, + 0.0367988683283329, + -0.02869064174592495, + -0.048535946756601334, + -0.015554939396679401, + -0.03849989175796509, + -0.022907152771949768, + 0.006515875458717346, + 0.032130494713783264, + 0.018588436767458916, + -0.01986420527100563, + -0.01323020365089178, + -0.02311505563557148, + 0.047326330095529556, + -0.00790032185614109, + 0.0031020103488117456, + 0.020223312079906464, + 0.05927131325006485, + 0.013145152479410172, + 0.003678469220176339, + -0.041278235614299774, + -0.0035886927507817745, + -0.002974433358758688, + -0.01965630240738392, + -0.03540024533867836, + 0.03604285418987274, + -0.044680286198854446, + -0.04966996610164642, + 0.0643743947148323, + -0.008212176151573658, + 0.027216419577598572, + 0.009790350683033466, + -0.034984439611434937, + -0.005476359277963638, + -0.017189813777804375, + -0.006128419190645218, + -0.0037871457170695066, + 0.01628260128200054, + -0.007300237193703651, + -0.020828120410442352, + 0.014326420612633228, + 0.07839840650558472, + 0.0411270335316658, + 0.02343636006116867, + 0.04812014102935791, + 0.01942949928343296, + -0.011179521679878235, + 0.0072388113476336, + -0.03487103804945946, + 0.005863815080374479, + -0.06142594665288925, + -0.022226741537451744, + 0.020601317286491394, + -0.011264573782682419, + 0.019240496680140495, + -0.06153934821486473, + 0.014676076360046864, + -0.03598615527153015, + 0.0405978262424469, + 0.05137098953127861, + 0.060443129390478134, + -0.06218195706605911, + -0.00763099268078804, + 0.011888283304870129, + 0.008112950250506401, + -0.021565232425928116, + -0.015337586402893066, + 0.02506178617477417, + -0.02965455688536167, + -0.041164834052324295, + 0.09835711121559143, + -0.0270652174949646, + 0.009043789468705654, + 0.01727486588060856, + 0.04188304394483566, + 0.010045505128800869, + 0.07923001796007156, + 0.01922159641981125, + 0.0012958511942997575, + 0.06947746872901917, + 0.021527431905269623, + 0.02906864695250988, + -0.011359075084328651, + 0.032130494713783264, + -0.016036896035075188, + -0.011850482784211636, + 0.010196707211434841, + -0.010036054067313671, + 0.0016431440599262714, + -0.012587593868374825, + -0.007427814416587353, + -0.0037895082496106625, + 0.023398559540510178, + 0.02029891312122345, + -0.014061816968023777, + 0.047439731657505035, + 0.030920876190066338, + 0.01158587820827961, + -0.028671741485595703, + 0.01856953650712967, + 0.021716434508562088, + 0.04297926276922226, + -0.01942949928343296, + -0.007971197366714478, + -0.04139163717627525, + -0.03199819102883339, + -0.021073823794722557, + 0.0681922510266304, + -0.023020554333925247, + 0.004807761404663324, + 0.011859932914376259, + -0.008798085153102875, + -0.034606434404850006, + 0.04188304394483566, + -0.0015533677069470286, + 0.006388298235833645, + 0.020204411819577217, + -0.03165798634290695, + -0.009152465499937534, + 0.003432765370234847, + -0.0018380533438175917, + 0.027972429990768433, + 0.010432960465550423, + -0.03160128742456436, + 0.008032623678445816, + -0.09162861108779907, + 0.009341469034552574, + 0.02712191827595234, + 0.049443162977695465, + -0.010376259684562683, + 0.04577650502324104, + 0.009383994154632092, + -0.042563457041978836, + -0.023096155375242233, + -0.02462707832455635, + -0.028917444869875908, + -0.016499953344464302, + -0.031525686383247375, + -0.0013253828510642052, + -0.022926053032279015, + 0.016008546575903893, + -0.006492250133305788, + 0.02825593575835228, + -0.06346717476844788, + -0.03742257505655289, + 0.007867245934903622, + -0.01328690443187952, + -0.019788604229688644, + -0.02689511328935623, + -0.03638305887579918, + -0.045285098254680634, + -0.04248785600066185, + -0.003392602317035198, + 0.05053937807679176, + -0.020809220150113106, + -0.010574712418019772, + -0.009157191030681133, + 0.0330377072095871, + 0.006166219711303711, + -0.014609924517571926, + -0.025458691641688347, + -0.043281666934490204, + 0.019032593816518784, + 0.011028319597244263, + -0.04010641574859619, + 0.0541304349899292, + -0.01039515994489193, + 0.003680831752717495, + 0.021999938413500786, + 0.0002117423282470554, + -0.026044601574540138, + -0.01911764405667782, + 0.03422842547297478, + -0.03636416047811508, + -0.014165768399834633, + -0.03524904325604439, + 0.03859439492225647, + 0.011954434216022491, + 0.013986214995384216, + 0.019070394337177277, + -0.01220958773046732, + -0.03670436516404152, + -0.038348689675331116, + -0.0530342161655426, + -0.011718180030584335, + -0.008774460293352604, + 0.006336322519928217, + -0.015299785882234573, + 0.025042885914444923, + 0.00416987668722868, + 0.004668371751904488, + 0.016537753865122795, + 0.02294495329260826, + 0.01618809998035431, + 0.0367988683283329, + 0.0189475417137146, + -0.03254630044102669, + 0.03124218061566353, + 0.020658018067479134, + 0.005169229581952095, + 0.007489240262657404, + -0.03615625575184822, + -0.01161422859877348, + -0.032829806208610535, + -0.042034246027469635, + -0.010404610075056553, + 0.0015828993637114763, + -0.010603062808513641, + -0.034719835966825485, + -0.0389724001288414, + 0.009969903156161308, + -0.035910554230213165, + -0.030013661831617355, + 0.03717687353491783, + -0.04789333790540695, + 0.0104235103353858, + -0.05636066943407059, + 0.04588990658521652, + -0.02126282826066017, + 0.0005519475671462715, + -0.02933325245976448, + 0.005627561826258898, + 0.003392602317035198, + 0.00290355714969337, + 0.010262858122587204, + -0.007919222116470337, + 0.0005608070641756058, + -0.0022892977576702833, + 0.007493965327739716, + -0.03252740204334259, + -0.018115928396582603, + -0.015602190047502518, + -0.02526968903839588, + 0.009629698470234871, + 0.0012167062377557158, + -0.029030846431851387, + -0.03220609575510025, + 0.007919222116470337, + -0.009596622548997402, + 0.009280042722821236, + 0.0016195187345147133, + 0.020582417026162148, + 0.0026814788579940796, + -0.00455969525501132, + 0.027632225304841995, + 0.038027387112379074, + 0.02804803103208542, + 0.054810844361782074, + -0.01916489563882351, + -0.028766242787241936, + 0.014250819571316242, + -0.004932975862175226, + 0.02680061198771, + -0.020166611298918724, + -0.007673518266528845, + -0.02441917546093464, + 0.012530893087387085, + 0.02111162431538105, + 0.0031020103488117456, + -0.009303668513894081, + -0.0335480161011219, + -0.0313933826982975, + 0.01218123733997345, + 0.013920064084231853, + 0.0008640976739116013, + -0.02804803103208542, + -0.018966441974043846, + 0.06913726776838303, + 0.031090978533029556, + -0.04188304394483566, + -0.0014659537700936198, + -0.06482800096273422, + 0.026044601574540138, + -0.1406937688589096, + 0.001797890174202621, + -0.022283442318439484, + -0.03893459960818291, + -0.019287746399641037, + -0.024230172857642174, + 0.03530574217438698, + 0.024929484352469444, + -0.0011121639981865883, + -0.040144216269254684, + 0.021640833467245102, + -0.006322147324681282, + 0.048800550401210785, + 0.0009698211797513068, + -0.0454741008579731, + 0.0438486747443676, + 0.016159748658537865, + -0.002082575811073184, + 0.03643976151943207, + 0.00917136576026678, + 0.011812682263553143, + -0.019127095118165016, + 0.0065253255888819695, + -0.008538206107914448, + 0.000880044826772064, + -0.017189813777804375, + -0.048687148839235306, + 0.03919920325279236, + -0.03999301418662071, + 0.02642260678112507, + 0.01239859126508236, + 0.0007607367006130517, + 0.030864175409078598, + 0.04207204654812813, + 0.011992234736680984, + 0.03536244481801987, + 0.019023142755031586, + 0.02901194617152214, + 0.020072108134627342, + 0.012162337079644203, + 0.03695007041096687, + 0.02971125766634941, + 0.026347005739808083, + -0.013239653781056404, + 0.05224040523171425, + -0.0008865417912602425, + 0.007040358614176512, + -0.016963010653853416, + -0.013249103911221027, + 0.02268034964799881, + -0.012511992827057838, + 0.02441917546093464, + 0.032395098358392715, + 0.0020624941680580378, + 0.014940680004656315, + -0.019618501886725426, + -0.06796544790267944, + 0.02581779658794403, + 0.021243928000330925, + 0.047931138426065445, + -0.04297926276922226, + 0.005136154126375914, + -0.030429469421505928, + -0.04573870450258255, + 0.01678345911204815, + -0.010688114911317825, + -0.1125701367855072, + -0.023152856156229973, + 0.009034339338541031, + -0.008301952853798866, + 0.01915544457733631, + -0.04407547786831856, + -0.0020034308545291424, + -0.0741269439458847, + -0.015469888225197792, + -0.03636416047811508, + 0.0313933826982975, + -0.018767988309264183, + -0.049443162977695465, + -0.002778342692181468, + -0.00849568098783493, + 0.008112950250506401, + -0.009969903156161308, + -0.03298100829124451, + 0.03179029002785683, + 0.005514159798622131, + -0.022585848346352577, + -0.0010684570297598839, + 0.053072016686201096, + 0.0028421313036233187, + -0.02175423502922058, + -0.006926956586539745, + -0.007144310045987368, + -0.04532289877533913, + -0.0051125288009643555, + 0.009095764718949795, + 0.01271989569067955, + 0.0019514550222083926, + 0.009932102635502815, + -0.025779996067285538, + -0.043924275785684586, + -0.0013679085532203317, + 0.007049808744341135, + -0.0013088451232761145, + -0.03568375110626221, + -0.009346193633973598, + 0.011755980551242828, + -0.015668341889977455, + -0.015384837053716183, + -0.017388267442584038, + -0.05840189754962921, + 0.0013064825907349586, + -0.028444938361644745, + 0.02727312035858631, + -0.04456688463687897, + 0.029862459748983383, + 0.013003400526940823, + 0.006246546283364296, + -0.04725072905421257, + -0.03691226989030838, + -0.0029791584238409996, + -0.026611609384417534, + -0.03919920325279236, + -0.01931609772145748, + 0.009672223590314388, + -0.01090546790510416, + 0.03717687353491783, + 0.03305660933256149, + -0.008179101161658764, + 0.002042412757873535, + -0.009095764718949795, + -0.013116802088916302, + -0.008490955457091331, + 0.06048092991113663, + -0.00736166350543499, + 0.02700851671397686, + -0.04271465912461281, + 0.07635717839002609, + 0.01396731473505497, + -0.014090167358517647, + 0.021187225356698036, + 0.029541155323386192, + -0.021036023274064064, + -0.022340143099427223, + -0.00971474964171648, + -0.023266257718205452, + 0.014468172565102577, + -0.03417172655463219, + -0.011481926776468754, + -0.01271989569067955, + -0.03935040533542633, + 0.02012881077826023, + -0.01402401551604271, + 0.03468203544616699, + -0.009922652505338192, + 0.012530893087387085, + 0.004165151622146368, + -0.0032295873388648033, + -0.02938995324075222, + 0.015110782347619534, + 0.0400686152279377, + -0.07276611775159836, + -0.001204302883706987, + -0.04309266433119774, + 0.007560116238892078, + 0.037328075617551804, + 0.011321274563670158, + 0.02294495329260826, + 0.015526589006185532, + -0.001364364754408598, + -0.003394964849576354, + 0.041769642382860184, + -0.025647694244980812, + 0.004413217771798372, + 0.004486456513404846, + -0.04290366172790527, + 0.04846034571528435, + -0.018815239891409874, + 0.029295451939105988, + -0.02695181407034397, + 0.01694411039352417, + 0.007829445414245129, + -0.01280494686216116, + 0.015791192650794983, + 0.01512968260794878, + 0.00021262827794998884, + 0.019391698762774467, + 0.03659096360206604, + 0.012247388251125813, + -0.017737923189997673, + -0.01586679369211197, + 0.012011134997010231, + -0.01834273152053356, + -0.011122820898890495, + 0.037592679262161255, + -0.011113370768725872, + 0.024702681228518486, + 0.03653426095843315, + 0.01144412625581026, + 0.05923351272940636, + 0.012200137600302696, + 0.008883136324584484, + -0.00849568098783493, + -0.007512865588068962, + -0.03485213592648506, + -0.050312574952840805, + 0.01651885360479355, + 0.02549649216234684, + -0.04248785600066185, + 0.028237035498023033, + -0.001932554761879146, + -0.009903752245008945, + -0.008939838036894798, + 0.0008942200220189989, + -0.04180744290351868, + 0.016367651522159576, + 0.03528684377670288, + -0.00822635181248188, + 0.00411317590624094, + -0.025080686435103416, + -0.025156287476420403, + -0.006506425328552723, + 0.028180334717035294, + -0.01478002779185772, + 0.07012008130550385, + -0.023417459800839424, + 0.006501700263470411, + -0.0042572906240820885, + 0.009809250943362713, + -0.035097841173410416, + -0.027726726606488228, + -0.03674216568470001, + -0.012474192306399345, + 0.014231919310986996, + -0.004557332489639521, + -0.012105636298656464, + -0.05889330804347992, + 0.04418887943029404, + -0.0030594845302402973, + 0.029106447473168373, + 0.03859439492225647, + 0.04377307370305061, + 0.01803087815642357, + -0.004328166600316763 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "调速系统响应异常导致主机功率输出不稳定", + "故障现象": "主机功率输出不稳定", + "故障原因": "调速系统响应异常", + "维修方案": "执行以下维修项目:MT020 排除主机功率异常波动故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + 0.005261410493403673, + 0.001255834475159645, + -0.05934680998325348, + -0.016617488116025925, + -0.028473516926169395, + -0.026607025414705276, + 0.02952103689312935, + 0.04228174313902855, + -0.02136942185461521, + -0.007294553332030773, + -0.014855748042464256, + 0.004002005327492952, + 0.008761081844568253, + -0.0119893504306674, + 0.015331893227994442, + 0.015189049765467644, + 0.011303700506687164, + 0.004232936073094606, + -0.017150770872831345, + -0.010732325725257397, + 0.025654733180999756, + 0.04231983423233032, + 0.045443352311849594, + 0.020874230191111565, + -0.014351033605635166, + 0.021350376307964325, + -0.0034568181727081537, + 0.0019307710463181138, + 0.07500248402357101, + 0.06235605105757713, + 0.025273816660046577, + -0.03260646387934685, + -0.022664537653326988, + -0.02186461351811886, + -0.04590045288205147, + -0.033692073076963425, + -0.031197071075439453, + -0.05489008501172066, + -0.04414823651313782, + 0.008070670999586582, + -0.021578926593065262, + -0.017322182655334473, + 0.016188956797122955, + -0.013274944387376308, + 0.0007338596624322236, + -0.0391201376914978, + 0.005504244938492775, + -0.01658891886472702, + -0.01737932115793228, + -0.028054509311914444, + 0.008156376890838146, + -0.031178025528788567, + 0.036606088280677795, + -0.015046206302940845, + 0.012675000354647636, + 0.018331611528992653, + 0.011608433909714222, + -0.006623187568038702, + 0.009199135936796665, + 0.013874887488782406, + -0.03685368224978447, + 0.016093727201223373, + -0.020188581198453903, + -0.0349871926009655, + -0.013636814430356026, + 0.07568813115358353, + 0.02302640862762928, + 0.0014629578217864037, + -0.0028021177276968956, + -0.04186273738741875, + -0.013789181597530842, + 0.005799455568194389, + -0.0029854339081794024, + -0.011732231825590134, + -0.010627573356032372, + 0.06498437374830246, + 0.07370736449956894, + -0.02441675402224064, + 0.0192458126693964, + 0.010589482262730598, + -0.006270839832723141, + -0.03334924951195717, + 0.00024149517412297428, + 0.05142374336719513, + -0.005499483551830053, + 0.038948722183704376, + -0.018522070720791817, + -0.0069898199290037155, + -0.024473892524838448, + -0.01515095867216587, + 0.015827085822820663, + 0.007113617844879627, + -0.03753933310508728, + -0.027578363195061684, + -0.048262134194374084, + 0.03418726474046707, + -0.0010350218508392572, + 0.013017824850976467, + 0.03607280179858208, + -0.030816154554486275, + 0.00919437501579523, + 0.027845004573464394, + 0.026188017800450325, + -0.02759740874171257, + 0.0845634862780571, + 0.02424534223973751, + 0.05610901862382889, + 0.02169320173561573, + -0.0058565931394696236, + -0.010570435784757137, + 0.013751089572906494, + -0.01855063997209072, + -0.014808133244514465, + -0.017160292714834213, + -0.026188017800450325, + -0.021178964525461197, + -0.005380447022616863, + -0.04567190259695053, + 0.03685368224978447, + -0.04502434283494949, + 0.01803640089929104, + -0.008818219415843487, + 0.04311976209282875, + -0.05089046061038971, + -0.03536810725927353, + -0.019655296579003334, + 0.0162651389837265, + 0.030987566336989403, + -0.013389218598604202, + 0.012703568674623966, + 0.001579613541252911, + 0.008551578037440777, + -0.025178588926792145, + -0.03872017189860344, + -0.07008865475654602, + 0.02056949771940708, + -0.020379038527607918, + 0.046776559203863144, + -0.03689177334308624, + -0.027768820524215698, + 0.0016022304771468043, + 0.042624570429325104, + 0.01039902400225401, + 0.01191316731274128, + 0.013598723337054253, + -0.03811070695519447, + 0.061822764575481415, + -0.0007189800962805748, + 0.016407983377575874, + -0.032206498086452484, + 0.008737274445593357, + -0.010294271633028984, + 0.013884410262107849, + 0.024759579449892044, + -0.013360650278627872, + -0.0051233284175395966, + -0.019769571721553802, + 0.05012862756848335, + 0.017407888546586037, + 0.033215928822755814, + 0.0023973940405994654, + 0.009894308634102345, + 0.002228362252935767, + -0.011160857044160366, + -0.002940200036391616, + -0.027425996959209442, + 0.01345587894320488, + 0.0444529689848423, + -0.009875263087451458, + -0.017788805067539215, + 0.0017093633068725467, + -0.02142656035721302, + 0.004063904285430908, + -0.001398678170517087, + 0.015550920739769936, + 0.019474361091852188, + 0.0413675457239151, + 0.026892712339758873, + 0.024397708475589752, + -0.008203991688787937, + -0.005894684698432684, + 0.0028140214271843433, + 0.03780597448348999, + -0.024283433333039284, + -0.010913261212408543, + -0.010570435784757137, + 0.045176710933446884, + -0.022531216964125633, + 0.007527864538133144, + 0.030797109007835388, + -0.01829352043569088, + 0.02409297600388527, + 0.021140871569514275, + 0.008413495495915413, + 0.0611371174454689, + -0.004966200329363346, + -0.016141341999173164, + 0.013027348555624485, + 0.010570435784757137, + -0.004735269583761692, + 0.01817924529314041, + -0.0037091756239533424, + -0.01961720548570156, + 0.010275226086378098, + -0.02175033837556839, + 0.022207438945770264, + -0.012894026935100555, + -0.07481202483177185, + 0.028206875547766685, + 0.028492562472820282, + 0.027997370809316635, + -0.006370830349624157, + 0.02738790400326252, + -0.009703850373625755, + -0.04548144340515137, + 0.028740158304572105, + -0.02647370472550392, + -0.03609184920787811, + -0.007427874021232128, + -0.02281690575182438, + -0.050433360040187836, + 0.055118635296821594, + 0.010418069548904896, + -0.030187642201781273, + 0.030492374673485756, + -0.011065627448260784, + 0.007675469852983952, + 0.04205319285392761, + 0.01491288561373949, + -0.05386161059141159, + -0.009399116970598698, + -0.009675282053649426, + -0.016874605789780617, + -0.035120513290166855, + 0.09644808620214462, + 0.015065251849591732, + -0.00669937115162611, + -0.001043354393914342, + 0.04346258565783501, + 0.03062569536268711, + -0.00595658365637064, + 0.04216746985912323, + 0.004873352125287056, + -0.03047332912683487, + -0.03293024003505707, + 0.021769383922219276, + 0.024797672405838966, + 0.014255804009735584, + -0.007027911487966776, + -0.01760786958038807, + -0.0012486922787502408, + -0.05508054047822952, + -0.005594712682068348, + -0.042243652045726776, + 0.03658704087138176, + 0.02978767827153206, + 0.022626446560025215, + 0.0011070389300584793, + -0.0009755036444403231, + -0.01897916942834854, + 0.02275976724922657, + 0.025064313784241676, + 0.040339067578315735, + 0.008870596066117287, + 0.007737368810921907, + 0.02213125489652157, + -0.0016950789140537381, + -0.006389876361936331, + -0.04231983423233032, + 0.034168221056461334, + -0.06483200937509537, + -0.01643655262887478, + 0.022740721702575684, + 0.019293425604701042, + -0.004606710281223059, + 0.03173035383224487, + -0.034587226808071136, + -0.008646806702017784, + 0.04132945090532303, + 0.012874981388449669, + 0.002310497220605612, + 0.01031331717967987, + 0.0027568840887397528, + 0.007365975063294172, + 0.00043537578312680125, + -0.03468245640397072, + -0.05489008501172066, + -0.02068377286195755, + -0.018845848739147186, + -0.03999624401330948, + -0.024607213214039803, + -0.048795416951179504, + 0.08075432479381561, + -0.01031331717967987, + -0.0021140871103852987, + 0.013751089572906494, + 0.0046186139807105064, + -0.16699384152889252, + 0.040072426199913025, + 0.0037615515757352114, + 0.008599192835390568, + -0.0013772515812888741, + -0.016131818294525146, + -0.02249312587082386, + 0.018893463537096977, + -0.01513191219419241, + -0.005099521018564701, + 0.010341886430978775, + -0.0514618344604969, + -0.000968956621363759, + -0.03542524576187134, + -0.0682983472943306, + -0.019750526174902916, + -0.004018670413643122, + -0.010294271633028984, + 0.0027235536836087704, + -0.02371205948293209, + -0.01400820817798376, + -0.010484729893505573, + 0.009189613163471222, + -0.038148798048496246, + -0.05549954995512962, + -0.027883095666766167, + 0.06696514040231705, + 0.013132099993526936, + -0.03919631987810135, + -0.012598817236721516, + -0.05302359163761139, + -0.0018712528981268406, + -0.010560913011431694, + 0.05401397496461868, + 0.027083171531558037, + -0.012865458615124226, + 0.03125420957803726, + 0.005880400072783232, + 0.006137519143521786, + 0.0025807099882513285, + 0.0431959442794323, + 0.04810976982116699, + -0.004709081724286079, + 0.010941829532384872, + -0.005356640089303255, + -0.03938677906990051, + 0.04140563681721687, + -0.07610713690519333, + 0.04026288539171219, + -0.0069898199290037155, + 0.050547633320093155, + -0.02291213348507881, + 0.019541021436452866, + -0.036034710705280304, + -0.031616080552339554, + 0.02573091723024845, + -0.0009475300903432071, + 0.039424870163202286, + -0.04715747758746147, + -0.008418257348239422, + -0.011894120834767818, + -0.04026288539171219, + 0.017198385670781136, + 0.02074090950191021, + -0.050166718661785126, + 0.022721676155924797, + 0.02435961738228798, + 0.00266641634516418, + 0.03382539376616478, + -0.0018188768299296498, + -0.012836890295147896, + -0.012056010775268078, + 0.02195984311401844, + 0.004990007728338242, + 0.014265326783061028, + 0.023540645837783813, + 0.016826990991830826, + 0.03468245640397072, + -0.033844441175460815, + -0.11534155160188675, + -0.01649368926882744, + 0.02350255474448204, + 0.003763932269066572, + -0.04327212646603584, + -0.026226108893752098, + -0.030435238033533096, + 0.011018012650310993, + 0.007142186630517244, + 0.051766566932201385, + 0.22946417331695557, + 0.027140308171510696, + -0.03350161761045456, + 0.00789449643343687, + 0.006456536706537008, + -0.04399586841464043, + 0.025883283466100693, + -0.0017046018037945032, + 0.012103625573217869, + -0.0185125470161438, + -0.07210751622915268, + 0.027845004573464394, + 0.03750124201178551, + 0.006427967920899391, + -0.030168596655130386, + 0.005628042854368687, + -0.04407205060124397, + -0.01918867416679859, + 0.09035342186689377, + -0.023673968389630318, + 0.030873291194438934, + 0.016731761395931244, + -0.013579676859080791, + -0.01201791875064373, + -0.052299849689006805, + -0.024207251146435738, + -0.04327212646603584, + 0.05626138299703598, + -0.014684335328638554, + 0.017293613404035568, + -0.04700510948896408, + 0.007727845571935177, + 0.07275507599115372, + -0.03178749233484268, + -0.021731292828917503, + 0.03614898771047592, + 0.003875826485455036, + -0.011570341885089874, + 0.02801641635596752, + 0.00528997927904129, + -0.0341491736471653, + -0.004623375367373228, + -0.009799079969525337, + 0.012779752723872662, + -0.00112727505620569, + -0.07161232084035873, + -0.03475864231586456, + 0.005642327480018139, + 0.009322933852672577, + -0.042510293424129486, + -0.005832785740494728, + -0.0031354199163615704, + -0.009180090390145779, + -0.02234075963497162, + -0.01074184849858284, + -0.012903550639748573, + 0.015646150335669518, + -0.0016926982207223773, + -0.02133133076131344, + 0.031406573951244354, + 0.0384916253387928, + 0.04030097648501396, + -0.06372734904289246, + -0.019226765260100365, + 0.006775554269552231, + 0.021236101165413857, + -0.058889709413051605, + -0.024950038641691208, + 0.05237603560090065, + 0.023197822272777557, + 0.004856687039136887, + -0.009608621709048748, + -0.014931931160390377, + 0.010227611288428307, + 0.01755073294043541, + -0.02813069149851799, + 0.012903550639748573, + 0.06330834329128265, + -0.07900210469961166, + 0.023007363080978394, + -0.04338640347123146, + 0.004644801840186119, + -0.06711750477552414, + -0.027254583314061165, + 0.016093727201223373, + 0.026397520676255226, + 0.029063938185572624, + 0.025273816660046577, + -0.036453720182180405, + -0.008856311440467834, + -0.06216559186577797, + 0.02754027023911476, + -0.04776694253087044, + 0.05492817610502243, + 0.0062565552070736885, + 0.03030191734433174, + -0.0021069450303912163, + -0.03420631214976311, + 0.007175516802817583, + 0.00824208278208971, + -0.003966294229030609, + -0.043576858937740326, + -0.019236288964748383, + 0.02605469711124897, + -0.010703756473958492, + 0.0014070107135921717, + 0.03300642594695091, + -0.0027116502169519663, + -0.0283973328769207, + 0.028911570087075233, + -0.011827460490167141, + 0.024131067097187042, + -0.011456066742539406, + -0.023864425718784332, + 0.034968145191669464, + 0.038148798048496246, + 0.002228362252935767, + 0.04856686666607857, + 0.026188017800450325, + -0.001252263318747282, + -0.027845004573464394, + -0.006132757291197777, + 0.038624946027994156, + 0.022721676155924797, + -0.02175033837556839, + -0.01737932115793228, + -0.03195890411734581, + -0.022950226441025734, + 0.017055541276931763, + 0.021236101165413857, + 0.01318923756480217, + -0.004075807984918356, + 0.0002986326871905476, + -0.013979639858007431, + 0.025749962776899338, + 0.007127902004867792, + -0.03454913571476936, + 0.02424534223973751, + 0.029273441061377525, + 0.003230649046599865, + -0.003147323615849018, + -0.07869737595319748, + -0.015541397966444492, + 0.021978888660669327, + 0.0060327667742967606, + -0.05119519308209419, + -0.010789463296532631, + -0.04281502589583397, + -0.0389106310904026, + 0.03908204287290573, + 0.007880212739109993, + 0.005894684698432684, + 0.007304076105356216, + -0.023369234055280685, + -0.006194656249135733, + -0.020931368693709373, + -0.024207251146435738, + -0.019636251032352448, + 0.007070764433592558, + -0.021845567971467972, + -0.0116750942543149, + 0.01755073294043541, + 0.02291213348507881, + 0.034587226808071136, + 0.03207317739725113, + 0.03053046576678753, + 0.024207251146435738, + 0.005509006325155497, + -0.004642421379685402, + -0.05100473389029503, + 0.02723553776741028, + -0.01050377544015646, + -0.0452909842133522, + -0.013703474774956703, + -0.038529716432094574, + 0.023693013936281204, + -0.044491060078144073, + 0.017150770872831345, + -0.011894120834767818, + 0.0011945307487621903, + 0.06959346681833267, + 0.040948536247015, + -0.09263891726732254, + -0.029482945799827576, + 0.00786592811346054, + 0.038205936551094055, + -0.022264575585722923, + -0.010084766894578934, + 0.015303324908018112, + -0.02664511650800705, + -0.05694703385233879, + 0.11450353264808655, + -0.01081803161650896, + 0.0036091848742216825, + 0.017960218712687492, + 0.040224794298410416, + 0.011532250791788101, + 0.0985812172293663, + 0.012798798270523548, + -0.013474925421178341, + 0.03818688914179802, + -0.025388091802597046, + 0.017046017572283745, + -0.024588167667388916, + 0.016627009958028793, + -0.006008959375321865, + -0.0023473985493183136, + -0.012865458615124226, + 0.0010915641905739903, + 0.007884973660111427, + -0.0022783575113862753, + 0.000813018879853189, + -0.02361682988703251, + 0.0288163423538208, + 0.03350161761045456, + -0.013760612346231937, + 0.036567993462085724, + 0.042776934802532196, + 0.02557855099439621, + -0.010027630254626274, + -0.017988787963986397, + 0.014217712916433811, + 0.03833925724029541, + -0.0018902986776083708, + -0.044491060078144073, + -0.00043507819646038115, + -0.02127419225871563, + -0.02567378059029579, + 0.08197325468063354, + -0.00041603235877119005, + 0.01074184849858284, + -0.027197446674108505, + 0.005623281467705965, + -0.04216746985912323, + 0.026949850842356682, + -0.009770510718226433, + 0.021502742543816566, + 0.020779000595211983, + -0.012056010775268078, + -0.0009058673167601228, + 0.02127419225871563, + -0.002339066006243229, + 0.009446731768548489, + -0.016941266134381294, + -0.029102029278874397, + 0.0019319613929837942, + -0.07961156964302063, + -0.023635875433683395, + 0.011465590447187424, + 0.035920437425374985, + -0.014046300202608109, + 0.05058572441339493, + 0.007942111231386662, + -0.030054321512579918, + -0.021883659064769745, + 0.00813256949186325, + -0.05005244165658951, + -0.016027066856622696, + -0.007665946613997221, + -0.052452217787504196, + -0.03500623628497124, + -0.011951258406043053, + -0.0010987063869833946, + -0.0013463021023198962, + -0.05130946636199951, + -0.06879354268312454, + 0.02056949771940708, + 0.013760612346231937, + -0.008861072361469269, + -0.044910069555044174, + -0.032625507563352585, + -0.015712810680270195, + -0.04959534481167793, + -0.00997049268335104, + 0.0218074768781662, + -0.01055139023810625, + -0.02340732514858246, + 1.808795968827326e-05, + -0.016188956797122955, + 0.008118284866213799, + -0.03531096875667572, + 0.013655860908329487, + -0.026626070961356163, + 0.027940234169363976, + -0.0009136046865023673, + -0.000807067088317126, + 0.07035529613494873, + 0.0031235162168741226, + 0.02717840112745762, + 0.00813733134418726, + 0.009042007848620415, + -0.02813069149851799, + -0.01823638193309307, + 0.06570811569690704, + -0.030854245647788048, + 0.006494628265500069, + -0.0022355043329298496, + 0.031273253262043, + -0.011065627448260784, + 0.03153989464044571, + 0.013474925421178341, + -0.00952291488647461, + -0.01892203278839588, + -0.017588824033737183, + -0.034701503813266754, + 0.00622322503477335, + -0.01676033064723015, + 0.031292300671339035, + 0.02691175788640976, + 0.04727175086736679, + 0.02136942185461521, + -0.040491435676813126, + 0.016826990991830826, + 0.02599755860865116, + 0.04967152699828148, + 0.012475019320845604, + 0.021388467401266098, + 0.01217980869114399, + 0.013313035480678082, + 0.03422535955905914, + 0.010513298213481903, + -0.011103719472885132, + -0.01299877930432558, + -0.0016129438299685717, + -0.02765454538166523, + -0.017322182655334473, + -0.0015510448720306158, + -0.022778812795877457, + -0.004392444621771574, + -0.015312847681343555, + -0.07214560359716415, + 0.002744980389252305, + 0.003504432737827301, + -0.006028005387634039, + 0.04590045288205147, + -0.03428249433636665, + 0.010656142607331276, + -0.03152085095643997, + 0.040910445153713226, + -0.0160556361079216, + 0.052185576409101486, + -0.055270999670028687, + 0.00976098794490099, + -0.0015867557376623154, + -0.010856123641133308, + -0.004970961716026068, + -0.010113336145877838, + 0.018731573596596718, + 0.012436927296221256, + 0.01676033064723015, + 0.019398178905248642, + 0.0060041979886591434, + -0.02275976724922657, + -0.015503305941820145, + -0.003028287086635828, + -0.017684053629636765, + 0.000338063488015905, + 0.007965918630361557, + -0.023464463651180267, + 0.00837540440261364, + 0.014522446319460869, + 0.0049614389427006245, + 0.023750150576233864, + 0.011427498422563076, + -0.006394637748599052, + 0.014541491866111755, + 0.05424252524971962, + 0.030187642201781273, + 0.039805784821510315, + 0.0233501885086298, + -0.029159165918827057, + 0.009894308634102345, + 0.024473892524838448, + 0.03534906357526779, + 0.02712126262485981, + -0.009451493620872498, + -0.014846225269138813, + -0.001473671174608171, + -0.0011046582367271185, + -0.01342731062322855, + -0.02441675402224064, + -0.05012862756848335, + -0.010522820986807346, + -0.011132287792861462, + 0.009241988882422447, + -0.008742036297917366, + -0.03376825898885727, + -0.026949850842356682, + 0.06304170191287994, + 0.046129003167152405, + -0.02163606323301792, + -0.0356157049536705, + -0.07233606278896332, + 0.03350161761045456, + -0.16486071050167084, + -0.012932118959724903, + 0.002806879347190261, + 0.0036734645254909992, + -0.029654357582330704, + -0.0226454921066761, + 0.006894590798765421, + -0.02445484697818756, + 0.007623093668371439, + -0.04898587614297867, + -0.013598723337054253, + -0.02361682988703251, + 0.03062569536268711, + -0.014589106664061546, + -0.005223318934440613, + 0.04803358390927315, + -0.00634226156398654, + 0.014465308748185635, + 0.02643561363220215, + -0.007385020609945059, + -0.016103249043226242, + -0.007813552394509315, + 0.026607025414705276, + -0.020779000595211983, + -0.006718416698276997, + -0.017855465412139893, + -0.014322464354336262, + -0.02228362113237381, + -0.030397145077586174, + -0.020379038527607918, + -0.009122952818870544, + -0.003049713559448719, + 0.010751371271908283, + 0.09218182414770126, + -0.047576483339071274, + 0.01866491325199604, + 0.017941173166036606, + 0.007013627327978611, + -0.025292862206697464, + -0.01952197588980198, + 0.05249030888080597, + 0.04140563681721687, + -0.0017343609360978007, + -0.03748219460248947, + 0.009875263087451458, + 0.043424494564533234, + 0.03999624401330948, + -0.022950226441025734, + -0.006813645828515291, + -0.0038115468341857195, + -0.004756696056574583, + 0.04510052874684334, + 0.028968708589673042, + 0.01823638193309307, + 0.0010790653759613633, + 0.004999530501663685, + -0.06349880248308182, + -0.0014343891525641084, + 0.03493005409836769, + 0.04708129167556763, + -0.04475770145654678, + -0.001180841471068561, + -0.03542524576187134, + -0.07606904953718185, + 0.018322089686989784, + -0.02744504250586033, + -0.11107528209686279, + 0.003259217832237482, + -0.01711267977952957, + -0.003330639563500881, + -0.021559881046414375, + 0.013303512707352638, + 0.04132945090532303, + -0.04113899543881416, + -0.021617017686367035, + -0.05481389909982681, + 0.036872729659080505, + -0.02371205948293209, + -0.04993816837668419, + -0.018941078335046768, + 0.0006886257906444371, + 0.0026473705656826496, + -0.05237603560090065, + -0.02340732514858246, + 0.04997625946998596, + -0.02376919612288475, + 0.004328165203332901, + -0.0025021459441632032, + 0.017931649461388588, + -0.011836984194815159, + -0.03382539376616478, + -0.013303512707352638, + 0.014055822975933552, + -0.05222366750240326, + -0.014132006093859673, + -0.009141998365521431, + -0.007104094605892897, + -0.013493970967829227, + 0.013522540219128132, + -0.04270075261592865, + -0.0040258122608065605, + 0.0035782353952527046, + 0.02451198361814022, + -0.00047674094093963504, + -0.032625507563352585, + 0.0204742681235075, + 0.036567993462085724, + 0.010856123641133308, + -0.03115897811949253, + -0.025883283466100693, + -0.06513673812150955, + -0.006051812786608934, + -0.05153801664710045, + 0.026359429582953453, + -0.03454913571476936, + 0.026778437197208405, + 0.035653796046972275, + 0.018093539401888847, + 0.000825517694465816, + -0.02717840112745762, + -0.028949663043022156, + -0.029692450538277626, + -0.042510293424129486, + -0.02854970097541809, + 0.02106468938291073, + 0.01903630793094635, + 0.05961345136165619, + 0.03481577709317207, + 0.0010326411575078964, + 0.005299502518028021, + 0.031273253262043, + -0.04818595200777054, + 0.0028449709061533213, + 0.05877543240785599, + 0.0011171570513397455, + 0.022950226441025734, + -0.019864801317453384, + 0.06033719331026077, + 0.0044852932915091515, + -9.798187238629907e-05, + 0.023521600291132927, + 0.020340947434306145, + 0.010275226086378098, + -0.01994098536670208, + 0.008575385436415672, + 0.004832879640161991, + 0.020283808931708336, + -0.021350376307964325, + 0.001620086026377976, + -0.014151052571833134, + 0.012427404522895813, + 0.0070326728746294975, + -0.017636438831686974, + 0.03662513196468353, + -0.01117037981748581, + -0.015512828715145588, + -0.020664725452661514, + -0.006875544786453247, + -0.0047852648422122, + -0.008542055264115334, + 0.056870851665735245, + -0.02860683761537075, + -0.017131725326180458, + -0.008875356987118721, + 0.01196078211069107, + 0.037615515291690826, + -0.00018584563804324716, + 0.017350751906633377, + -0.00882774218916893, + -0.031406573951244354, + 0.005299502518028021, + 0.048681143671274185, + -0.03984387591481209, + 0.024226296693086624, + -0.006713655311614275, + -0.03287310525774956, + 0.017788805067539215, + -0.03694891184568405, + 0.03449200093746185, + -0.0026497512590140104, + 0.019207719713449478, + 0.03824402764439583, + -0.002828305820003152, + 0.00610418850556016, + -0.00837540440261364, + 0.021883659064769745, + 0.020074306055903435, + 0.042091283947229385, + 0.0025259533431380987, + 0.0027925949543714523, + -0.008380165323615074, + -0.002633086172863841, + 0.006323215551674366, + -0.02317877672612667, + 0.027616454288363457, + -0.01734122820198536, + 0.05214748531579971, + 0.00821351446211338, + -0.003287786617875099, + 0.050014350563287735, + 0.005042383447289467, + 0.00457338010892272, + -0.007361213676631451, + -0.030454283580183983, + -0.024283433333039284, + -0.05450916662812233, + -0.005356640089303255, + 0.0007784983026795089, + -0.03803452476859093, + 0.03472054749727249, + 0.017560256645083427, + 0.008223037235438824, + -0.005161419976502657, + 0.00434483028948307, + -0.040377162396907806, + 0.019693389534950256, + 0.023121638223528862, + -0.00999906100332737, + -0.0008897974039427936, + -0.020645679906010628, + -0.022740721702575684, + 0.0076469010673463345, + 0.01717934012413025, + -0.031197071075439453, + 0.01823638193309307, + 0.0015593774151057005, + 0.012513110414147377, + -0.015665195882320404, + -0.0027806912548840046, + 0.02590232901275158, + -0.022150300443172455, + -0.029159165918827057, + -0.008032578974962234, + 0.006680325139313936, + 0.005923253484070301, + -0.013884410262107849, + -0.051080916076898575, + 0.05732794851064682, + 0.03266359865665436, + 0.0151795269921422, + 0.05949917435646057, + 0.02441675402224064, + 0.004351972136646509, + 0.028702067211270332 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高", + "故障现象": "空冷器后扫气温度持续偏高", + "故障原因": "空冷器管束芯体结垢或堵塞", + "维修方案": "执行以下维修项目:MT016 清洗空冷器管束芯体", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + -0.03377019613981247, + 0.00948856957256794, + -0.0549323596060276, + -0.027577754110097885, + 0.01283118687570095, + -0.02822861261665821, + -0.010729847475886345, + 0.03871671110391617, + -0.06902806460857391, + 0.003921415191143751, + 0.005973940249532461, + 0.028805086389183998, + 0.004913972690701485, + 0.020027808845043182, + 0.005676405504345894, + -0.017638232558965683, + 0.018019448965787888, + -0.006183144636452198, + 0.04198959469795227, + 0.013230999931693077, + 0.033212319016456604, + 0.013714493252336979, + -0.029604710638523102, + -0.01350993849337101, + -0.017573148012161255, + -0.023151924833655357, + 0.01133421529084444, + 0.008489038795232773, + 0.0015794913051649928, + -0.00410737469792366, + 0.01599249430000782, + -0.004037640057504177, + -0.006197091657668352, + -0.0608830526471138, + -0.039460550993680954, + -0.030143991112709045, + -0.019730275496840477, + -0.04024157673120499, + -0.02019517309963703, + 0.034421052783727646, + 0.021515483036637306, + -0.004890727810561657, + 0.005332380998879671, + -0.036987293511629105, + 0.024063125252723694, + 0.004904674831777811, + -0.03533225506544113, + -0.046303849667310715, + -0.03412352129817009, + -0.014848845079541206, + 0.029641902074217796, + -0.03163166716694832, + 0.04098541662096977, + -0.0005087728495709598, + 0.012087350711226463, + 0.03683852404356003, + 0.010162672027945518, + -0.020492708310484886, + -0.013463448733091354, + 0.014969718642532825, + -0.004830291029065847, + 0.007931161671876907, + 0.002373304683715105, + -0.01359361968934536, + -0.021534079685807228, + 0.03990685194730759, + 0.0018549433443695307, + 0.019469931721687317, + -0.01543461624532938, + -0.017238421365618706, + 0.019376952201128006, + 0.019172396510839462, + -0.0023082189727574587, + -0.016197049990296364, + -0.030404334887862206, + 0.04615508392453194, + -0.0035680928267538548, + -0.019786061719059944, + 0.03233831003308296, + 0.025457819923758507, + 0.029455943033099174, + -0.043923571705818176, + 0.02949313446879387, + -0.009753561578691006, + 0.008507635444402695, + -0.00012225366663187742, + -0.01244067307561636, + 0.005332380998879671, + -0.009939521551132202, + -0.028860872611403465, + -0.00885165948420763, + -0.0171082504093647, + 0.008358867838978767, + -0.02547641471028328, + -0.009074810892343521, + 0.023746995255351067, + -0.0137330899015069, + -0.019014332443475723, + 0.03362143039703369, + -0.036894313991069794, + -0.01046950463205576, + 0.036633968353271484, + 0.02480696141719818, + -0.04950234666466713, + 0.023728398606181145, + -0.04362603649497032, + 0.025513606145977974, + -0.01111106388270855, + -0.03070187009871006, + -0.008182206191122532, + 0.03233831003308296, + 0.05437447875738144, + -0.006476030219346285, + -0.010367227718234062, + -0.04087384045124054, + 0.012050158344209194, + -0.02437925525009632, + -0.022891581058502197, + 0.039720892906188965, + 0.015313742682337761, + -0.001251738052815199, + -0.029474539682269096, + 0.025866929441690445, + -0.03326810896396637, + -0.023189116269350052, + -0.00875867996364832, + -0.012068754062056541, + 0.010199864394962788, + -0.006913034711033106, + 0.0039516338147223, + 0.004788450431078672, + 0.022891581058502197, + -0.01761963777244091, + 0.02635042369365692, + -0.009479272179305553, + -0.02703847363591194, + -0.017731213942170143, + 0.011659643612802029, + 0.016224943101406097, + -0.018846968188881874, + -3.141694105579518e-05, + 0.03122255578637123, + 0.013230999931693077, + 0.02984645776450634, + 0.01855873130261898, + 0.0026685150805860758, + 0.017666127532720566, + -0.018856266513466835, + -0.04935358092188835, + 0.058279626071453094, + 0.02274281531572342, + 0.01659686118364334, + 0.052105776965618134, + 0.07616890221834183, + 0.015360232442617416, + 0.039200205355882645, + 0.0014632667880505323, + 0.013156616128981113, + -0.05664318427443504, + -0.007745202165096998, + -0.03789849206805229, + 0.026052888482809067, + 0.012673121877014637, + 0.013110126368701458, + 0.021087776869535446, + -0.014886036515235901, + -0.02609007991850376, + 0.01650388166308403, + -0.04526247829198837, + 0.018344879150390625, + 0.051771052181720734, + -0.06787512451410294, + -0.06185004115104675, + -0.007336091715842485, + -0.016011090949177742, + 0.030887829139828682, + 0.086210697889328, + 0.0064434874802827835, + 0.009772158227860928, + -0.014997612684965134, + -0.007252410054206848, + 0.002807984361425042, + 0.003544847946614027, + -0.05240331217646599, + -0.0011233099503442645, + 0.008754030801355839, + 0.042026787996292114, + 0.0012633606093004346, + 0.0026871110312640667, + -0.01840066723525524, + -0.019265376031398773, + -0.02069726213812828, + -0.010534591041505337, + 0.031668856739997864, + -0.0007054828456602991, + -0.04712206870317459, + 0.017461571842432022, + 0.032710228115320206, + 0.007252410054206848, + -0.0074569652788341045, + 0.025030113756656647, + -0.008963234722614288, + -0.0062947203405201435, + 0.02564377896487713, + 0.003303100820630789, + 0.010571782477200031, + -0.006782863289117813, + -0.02899104543030262, + 0.008052035234868526, + -0.015778640285134315, + 0.0008472767658531666, + 0.016355114057660103, + -0.01581583358347416, + -0.0018142648041248322, + -0.023412268608808517, + 0.019376952201128006, + 0.04500213637948036, + 0.01693158783018589, + -0.002549966098740697, + 0.014597799628973007, + -0.043068159371614456, + 0.036633968353271484, + 0.02188740111887455, + 0.013203105889260769, + 0.013872559182345867, + 0.04463021457195282, + 0.045708779245615005, + 0.01132491696625948, + -0.005699650384485722, + 0.03934897482395172, + -0.054262906312942505, + 0.021998977288603783, + 0.02666655369102955, + 0.02291017770767212, + 0.0317804329097271, + -0.008577370084822178, + -0.010497398674488068, + 0.0062296343967318535, + 0.02274281531572342, + -0.02428627572953701, + 0.008349569514393806, + -0.036466605961322784, + -0.004449074622243643, + 0.010999488644301891, + 0.010850721038877964, + 0.04396076500415802, + 0.01325889304280281, + -0.000969312503002584, + -0.02214774489402771, + -0.037414997816085815, + 0.013314681127667427, + -0.0021489914506673813, + 0.0008769140113145113, + 0.01565776765346527, + 0.02421189285814762, + -0.005350977182388306, + -0.0011628263164311647, + 0.0012366288574412465, + -0.002026955597102642, + -0.031427111476659775, + 0.021106373518705368, + 0.007089695893228054, + -0.020901817828416824, + 0.005615968722850084, + 0.04500213637948036, + 0.00028620287775993347, + -0.05106440559029579, + -0.029195599257946014, + 0.006624797824770212, + -0.025792546570301056, + -0.04388637840747833, + -0.04351446032524109, + -0.019786061719059944, + 0.02488134615123272, + 0.036485202610492706, + -0.006843300070613623, + -0.0045792460441589355, + 0.009734965860843658, + 0.031761836260557175, + 0.006466732360422611, + 0.04020438715815544, + -0.00012021973816445097, + -0.008591316640377045, + 0.007591785863041878, + 0.01393764466047287, + 0.006327263079583645, + -0.04823782667517662, + -0.04976269230246544, + -0.002317517064511776, + -0.014337456785142422, + 0.0026824618689715862, + 0.0011825845576822758, + 0.060845863074064255, + -0.0029172354843467474, + -0.04414672404527664, + 0.07575979083776474, + -0.0016015738947317004, + -0.14854423701763153, + 0.0625566840171814, + 0.01701527088880539, + 0.005699650384485722, + -0.02026955597102642, + 0.030069608241319656, + -0.050320569425821304, + 0.007768447045236826, + -0.050506528466939926, + -0.023821378126740456, + -0.006913034711033106, + -0.06463942676782608, + 0.008154312148690224, + 0.015090592205524445, + -0.03838198632001877, + -0.0003036365669686347, + -0.032710228115320206, + -0.020213769748806953, + 0.02411891333758831, + -0.03650379925966263, + -0.008265888318419456, + 0.031854815781116486, + 0.036131881177425385, + -0.07743342220783234, + -0.05805647373199463, + -0.022594047710299492, + 0.04846097528934479, + 0.004311929922550917, + 0.008870255202054977, + -0.005285891238600016, + -0.025123093277215958, + -0.043737612664699554, + -0.014095709659159184, + 0.0352206788957119, + 0.023189116269350052, + -0.004886079113930464, + -0.012338395230472088, + -0.009163141250610352, + 0.013974836096167564, + 0.04184082895517349, + 0.09141755849123001, + 0.021143564954400063, + 0.007145483512431383, + 0.049651116132736206, + -0.012152436189353466, + 0.00679680984467268, + 0.03763815015554428, + 0.020492708310484886, + -0.022872986271977425, + 0.016383009031414986, + 0.030980808660387993, + 0.009576900862157345, + 0.0023268149234354496, + -0.021162161603569984, + -0.01253365259617567, + 0.03685712069272995, + 0.0172756128013134, + 0.07810287922620773, + -0.05162228271365166, + -0.017294209450483322, + -0.018075237050652504, + -0.07951617240905762, + -0.015397424809634686, + -0.010869317688047886, + -0.058019280433654785, + -0.023542439565062523, + -0.0005195236299186945, + -0.028098439797759056, + -0.005137124098837376, + -0.021775826811790466, + 0.024658193811774254, + 0.04935358092188835, + 0.008475092239677906, + 0.029455943033099174, + -0.020901817828416824, + 0.0073500387370586395, + -0.06635025143623352, + -0.004425829742103815, + -0.02694549225270748, + -0.10562484711408615, + -0.005281242076307535, + -0.005099932197481394, + 0.02599710039794445, + -0.013974836096167564, + -0.003191525349393487, + -0.023877166211605072, + -0.002733600791543722, + -0.03179902955889702, + -0.024769769981503487, + 0.2350524663925171, + 0.05076687037944794, + 0.0026545680593699217, + -0.0176940206438303, + 0.006671287585049868, + -0.011901390738785267, + -0.018103132024407387, + 0.0032147702295333147, + 0.0261644646525383, + -0.02437925525009632, + -0.02915840782225132, + -0.023133328184485435, + 0.010153374634683132, + -0.01624353975057602, + -0.007368634920567274, + 0.02863772213459015, + 0.008521581999957561, + -0.022203532978892326, + 0.07951617240905762, + -0.018707498908042908, + -0.023151924833655357, + -0.0006973471026867628, + 0.017312804237008095, + -0.027168644592165947, + -0.03745219111442566, + -0.08844221383333206, + -0.01958150789141655, + -0.014625693671405315, + 0.012710313312709332, + 0.020660070702433586, + -0.005304486956447363, + 0.07122238725423813, + 0.029307175427675247, + 0.024732578545808792, + -0.013928346335887909, + -0.012468567118048668, + -0.037917088717222214, + 0.020585687831044197, + 0.04158048331737518, + -0.013872559182345867, + -0.008182206191122532, + -0.029641902074217796, + -0.021069182083010674, + 0.019283972680568695, + 0.0038121643010526896, + -0.02164565585553646, + 0.004825642332434654, + 0.03427228704094887, + 0.01839136891067028, + 0.00995811726897955, + -0.04429548978805542, + -0.00017114060756284744, + -0.010432313196361065, + 0.007219867315143347, + -0.01381677109748125, + -0.029232792556285858, + -0.018865564838051796, + -0.035945918411016464, + -0.01124123577028513, + 0.010227757506072521, + -0.02093900926411152, + 0.007373283617198467, + -0.004058560356497765, + -0.026461999863386154, + 0.012719611637294292, + 0.0179450660943985, + -0.04217555373907089, + -0.010571782477200031, + 0.03053450584411621, + 0.030478717759251595, + -0.04299377650022507, + 0.03667116165161133, + -0.021013393998146057, + 0.009586198255419731, + 0.037061676383018494, + -0.05270084738731384, + 0.024137508124113083, + 0.0710364282131195, + -0.020288152620196342, + 0.017136143520474434, + -0.012635930441319942, + -0.03549961745738983, + -0.01682930998504162, + -0.02274281531572342, + 0.020920414477586746, + 0.0038818989414721727, + 0.06806108355522156, + -0.01950712315738201, + -0.06873053312301636, + -0.0171082504093647, + -0.046303849667310715, + 0.06928841024637222, + -0.031241150572896004, + -0.05448605492711067, + -0.009009724482893944, + 0.02462100237607956, + -0.058539967983961105, + -0.051101598888635635, + 0.022389492020010948, + 0.012254714034497738, + -0.05489516630768776, + -0.05798209086060524, + 0.01017197035253048, + -0.017117546871304512, + -0.02642480656504631, + 0.0030125395860522985, + -0.025364840403199196, + 0.04132014140486717, + -0.016736330464482307, + 0.013714493252336979, + 0.0051231770776212215, + 0.0008408844005316496, + -0.0605483278632164, + -0.014904632233083248, + 0.022277915850281715, + 0.024490831419825554, + -0.03036714345216751, + 0.033825986087322235, + 0.01854943297803402, + 0.06884210556745529, + -0.010339333675801754, + 0.007117589935660362, + 0.037173252552747726, + 0.019451335072517395, + 0.0011686375364661217, + -0.037414997816085815, + -0.005615968722850084, + -0.03540663793683052, + -0.03293338045477867, + 0.04753118008375168, + -0.039646510034799576, + -0.032542865723371506, + -0.05158509314060211, + 0.011873497627675533, + 0.0261644646525383, + 0.017080355435609818, + 0.05813085660338402, + 0.020027808845043182, + 0.016466690227389336, + -0.00808457750827074, + -0.011436493135988712, + -0.05173385888338089, + -0.03531365841627121, + 0.01753595657646656, + 0.029734881594777107, + -0.020399728789925575, + -0.030199779197573662, + -0.03590872883796692, + -0.006908385548740625, + 0.05095282942056656, + 0.03650379925966263, + 0.012561546638607979, + 0.04128295183181763, + -0.042547471821308136, + -0.0023535466752946377, + -0.07706150412559509, + -0.028619125485420227, + -0.048089057207107544, + -0.046638574451208115, + -0.012905570678412914, + -0.025030113756656647, + 0.04362603649497032, + 0.008307728916406631, + 0.024937134236097336, + 0.02488134615123272, + 0.02112496830523014, + -0.027428986504673958, + 0.025866929441690445, + 0.019432740285992622, + -0.03429088369011879, + 0.0194141436368227, + -0.013072934001684189, + -0.03923739865422249, + 0.0010274248197674751, + -0.004918621852993965, + 0.0018107780488207936, + -0.06463942676782608, + 0.012914869002997875, + 0.009167790412902832, + 0.0050580911338329315, + 0.026015697047114372, + 0.015973897650837898, + -0.02119935303926468, + 0.0005802509258501232, + 0.01337976660579443, + 0.024025933817029, + -0.019432740285992622, + -0.0158065352588892, + -0.00928401481360197, + -0.012366289272904396, + -0.006299369037151337, + 0.09483920782804489, + -0.022259321063756943, + 0.010227757506072521, + -0.0009158492321148515, + 0.04068788141012192, + 0.020325344055891037, + 0.02504870854318142, + 0.026815321296453476, + 0.01125053409487009, + 0.007638275623321533, + -0.038084451109170914, + 0.004488591104745865, + -0.020250961184501648, + -0.007875373587012291, + -0.01694088615477085, + 0.0030288109555840492, + 0.004451399203389883, + 0.021664250642061234, + -0.04909323900938034, + -0.0065085734240710735, + 0.0316130705177784, + -0.06441628187894821, + -0.035443831235170364, + 0.003991150297224522, + -0.04020438715815544, + 0.0302741639316082, + -0.020715858787298203, + -0.001428399351425469, + -0.008386761881411076, + 0.043402884155511856, + -0.030460122972726822, + 0.04950234666466713, + -0.01090650912374258, + 0.02207336202263832, + -0.010162672027945518, + -0.04589473828673363, + 0.00297302333638072, + -0.002366331173107028, + -0.002410496585071087, + 0.007424422539770603, + 0.054337289184331894, + 0.029641902074217796, + -0.014393244870007038, + 0.027503371238708496, + 0.0019723300356417894, + -0.00017622542509343475, + 0.01666194759309292, + -0.02932577207684517, + -0.017582446336746216, + 0.019283972680568695, + 0.06244511157274246, + 0.06754039227962494, + 0.026740938425064087, + 0.006076218094676733, + 0.034588418900966644, + -0.05322153493762016, + 0.013277489691972733, + 0.048609744757413864, + 0.025773949921131134, + 0.037173252552747726, + 0.008879553526639938, + 0.052812423557043076, + -0.019879043102264404, + -0.011743325740098953, + 0.0037982172798365355, + -0.008363517001271248, + -0.02376559004187584, + -0.006555063184350729, + 0.004946515429764986, + -0.021961785852909088, + 0.023635419085621834, + 0.021924594417214394, + 0.0002889632305596024, + -0.038270410150289536, + -0.018326282501220703, + 0.0100417984649539, + 0.039795275777578354, + -0.0068154060281813145, + -0.03215235099196434, + -0.06259387731552124, + -0.024025933817029, + 0.004983707331120968, + -0.030980808660387993, + -0.004081805236637592, + -0.008809818886220455, + -9.058248542714864e-05, + 0.0037819459103047848, + -0.014402543194591999, + 0.027075665071606636, + -0.03096221201121807, + -0.0028544743545353413, + 0.04299377650022507, + 0.02692689746618271, + 0.011696835979819298, + 0.04756837338209152, + 0.0533331073820591, + -0.011008786968886852, + -0.004402584861963987, + -0.009251471608877182, + 0.024044528603553772, + -0.018261196091771126, + -0.012701015919446945, + 0.04291938990354538, + -0.004476968664675951, + 0.019711678847670555, + -0.0086378064006567, + 0.031501494348049164, + -0.009042267687618732, + 0.004221274517476559, + 0.005169666837900877, + 0.03685712069272995, + -0.04909323900938034, + -0.07133395969867706, + -0.03856794536113739, + -0.010162672027945518, + 0.0057089487090706825, + -0.03129693865776062, + 0.007405826356261969, + 0.025253264233469963, + 0.057610172778367996, + -0.02105058543384075, + -0.0006340047693811357, + 0.04470460116863251, + 0.03291478380560875, + 0.007317495997995138, + 0.021143564954400063, + -0.0027731170412153006, + -0.025848332792520523, + 0.01805664226412773, + -0.01403062418103218, + 0.0016829310916364193, + -0.022556854411959648, + 0.06545764952898026, + -0.05069248750805855, + -0.024602407589554787, + -0.03670835122466087, + 0.005006952211260796, + -0.024025933817029, + 0.0039516338147223, + -0.012180330231785774, + -0.0357227697968483, + -0.04076226428151131, + -0.002826580312103033, + 0.04224993661046028, + -0.003802866442129016, + -0.019358355551958084, + -0.05504393205046654, + 0.04600631445646286, + -0.01838207058608532, + -0.016643350943922997, + -0.046378232538700104, + 0.025253264233469963, + -0.006257528439164162, + 0.016978077590465546, + -0.06333771347999573, + -0.02145969495177269, + 0.0004085291875526309, + -0.013454150408506393, + 0.014058518223464489, + -0.0039934744127094746, + -0.006713128183037043, + -0.0470476858317852, + -0.044332683086395264, + 0.010720550082623959, + -0.025271860882639885, + -0.03226392716169357, + 0.002738249721005559, + -0.05389098450541496, + 0.02257545106112957, + -0.0314457081258297, + 0.04180363565683365, + -0.06895368546247482, + 0.03802866488695145, + 0.006494626402854919, + 0.005978589411824942, + 0.02463959902524948, + -0.007424422539770603, + 0.005620617885142565, + -0.012589440681040287, + -0.021701442077755928, + 0.0022431332617998123, + 0.004774503409862518, + 0.033918965607881546, + -0.046564191579818726, + 0.002849825192242861, + -0.01761033944785595, + -0.01231979951262474, + 0.012291905470192432, + -0.006694532465189695, + -0.05284961313009262, + -0.011222640052437782, + 0.009576900862157345, + -0.03332389518618584, + 0.024658193811774254, + -0.012496460229158401, + -0.030925020575523376, + -0.004983707331120968, + 0.027726521715521812, + 0.044593024998903275, + 0.009112002328038216, + 0.004927919711917639, + -0.04712206870317459, + 0.04295658320188522, + -0.1309152990579605, + 0.006727075204253197, + -0.015155677683651447, + -0.0034727887250483036, + 0.008772626519203186, + -0.01005109678953886, + -0.010971594601869583, + 0.02291017770767212, + -0.0309436172246933, + -0.038084451109170914, + 0.02069726213812828, + 0.006973471492528915, + 0.08769837766885757, + -0.041766442358493805, + -0.05247769504785538, + 0.03308214619755745, + -0.009976712986826897, + -0.0036610723473131657, + 0.042882200330495834, + 0.03282180428504944, + 0.003740105079486966, + 0.008698243647813797, + -0.04358884319663048, + -0.002752196742221713, + 0.01659686118364334, + -0.02794967219233513, + -0.01210594642907381, + 0.01974887028336525, + 0.004202678799629211, + 0.04474179074168205, + 0.0007688252371735871, + -0.07683835923671722, + 0.031947795301675797, + 0.035778556019067764, + 0.009014373645186424, + 0.024342063814401627, + 0.0062947203405201435, + -0.00219199457205832, + 0.027689330279827118, + 0.02105058543384075, + -0.008112471550703049, + 0.013993432745337486, + -0.006104111671447754, + -0.011204044334590435, + -0.016011090949177742, + 0.05240331217646599, + -0.01922818459570408, + -0.0020048730075359344, + -0.04719645529985428, + -0.01492322888225317, + 0.016996674239635468, + 0.04582035541534424, + -0.027410391718149185, + -0.00918638613075018, + 0.00446999492123723, + -0.012384884990751743, + -0.04611789062619209, + -0.013147317804396152, + 0.019972022622823715, + 0.04987426847219467, + -0.052031394094228745, + 0.016634054481983185, + -0.03864232823252678, + -0.03778691589832306, + 0.026480594649910927, + -0.026034293696284294, + -0.07568541169166565, + 0.002505800686776638, + 0.005853067152202129, + 0.00381448888219893, + -0.03386317566037178, + 0.05411413684487343, + -0.013370469212532043, + -0.01659686118364334, + -0.010227757506072521, + -0.030646082013845444, + 0.0401671938598156, + -0.037080273032188416, + 0.029362963512539864, + 0.017591742798686028, + 0.016457391902804375, + -0.06036236882209778, + 0.0868801549077034, + -0.01933976076543331, + 0.02642480656504631, + 0.0031078436877578497, + -0.0434400774538517, + 0.015174273401498795, + 0.04206397756934166, + 0.00600648345425725, + -0.033993348479270935, + -0.018949246034026146, + -0.02711285650730133, + 0.03957212343811989, + 0.004714066628366709, + 0.029883649200201035, + -0.02735460363328457, + 0.009311908856034279, + 0.02530905231833458, + -0.024416446685791016, + -0.014039922505617142, + -0.03364002704620361, + -0.016736330464482307, + -0.00038877103361301124, + -0.03481156751513481, + 0.058279626071453094, + 0.02069726213812828, + -0.03300776332616806, + 0.012589440681040287, + -0.00566710764542222, + -0.016708437353372574, + 0.008470443077385426, + -0.01674562878906727, + 0.002060660859569907, + -0.030051011592149734, + -0.006052973214536905, + 0.04641542583703995, + -0.0023012454621493816, + 0.011873497627675533, + 0.0018433209042996168, + 0.008363517001271248, + 0.00829378142952919, + -0.011724730022251606, + -0.014328159391880035, + -0.0158065352588892, + -0.08516933023929596, + 0.030404334887862206, + 0.039646510034799576, + 0.013230999931693077, + 0.030887829139828682, + -0.012394183315336704, + 0.005392817780375481, + -0.06653621792793274, + 0.028191419318318367, + 0.01167824026197195, + 0.026406211778521538, + -0.026015697047114372, + 0.0523289293050766, + 0.01802874729037285, + 0.003052055835723877, + -0.0073081981390714645, + 0.0625566840171814, + 0.003549496876075864, + -0.05162228271365166, + -0.04559720307588577, + 0.026722341775894165, + -0.0005753113655373454, + 0.03298916667699814, + -0.0062296343967318535, + 0.03386317566037178, + -0.0025708863977342844, + 0.002367493463680148, + -0.03676414117217064, + -0.03259865567088127, + -0.009042267687618732, + 0.013454150408506393, + 0.03051591105759144, + 0.009641986340284348, + -0.04336569458246231, + 0.011352811008691788, + 0.021943189203739166, + -0.07847479730844498, + -0.061701275408267975, + 0.042212747037410736, + -0.02240808866918087, + 0.021775826811790466, + 0.001302876858972013, + -0.019469931721687317, + -0.009930223226547241, + 0.07096204161643982, + -0.037396401166915894, + 0.009660582058131695, + -0.01984184980392456, + 0.030757658183574677, + 0.007438369560986757, + -0.047419603914022446, + 0.015620575286448002, + -0.030553102493286133, + 0.06724286079406738, + 0.02385856956243515, + 0.036317840218544006, + 0.019172396510839462, + 0.005188262555748224, + 0.05522989109158516, + 0.047940291464328766, + 0.03644800931215286, + 0.03326810896396637, + 0.04124575853347778, + -0.008107822388410568, + -0.035629790276288986, + -0.010869317688047886, + -0.0086378064006567, + -0.04013000428676605, + 0.029455943033099174, + 0.034755781292915344, + -0.023821378126740456, + -0.0059506953693926334, + 0.060176409780979156, + -0.010013904422521591, + 0.06575518846511841, + -0.011064574122428894, + -0.004291009157896042, + 0.02240808866918087, + -0.007475561462342739, + 0.009930223226547241, + -0.024007337167859077, + -0.00318687641993165, + 0.0314457081258297, + -0.01591811142861843, + 0.022129148244857788, + -0.06240791827440262, + 0.0006845624302513897, + -0.016466690227389336, + 0.0006508573424071074, + -0.0043096053414046764, + -0.023914357647299767, + 0.0070292591117322445, + 0.010915807448327541, + 0.014132902026176453, + -0.005076687317341566, + 0.024583810940384865, + 0.03780551254749298, + -0.025718161836266518, + -0.01993482932448387, + 0.03131553530693054, + -0.043737612664699554, + 0.02086462639272213, + 0.003884223522618413, + -0.01855873130261898, + 0.0004474644083529711, + 0.028805086389183998, + -0.010283545590937138, + -0.033918965607881546, + 0.060176409780979156, + -0.03414211422204971, + -0.02112496830523014, + -0.01761033944785595, + -0.0042421952821314335, + 0.04124575853347778, + 0.00940023921430111, + 0.009651284664869308, + -0.027428986504673958, + -0.017768405377864838, + 0.044258296489715576 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞环磨损或断裂导致主机润滑油消耗异常增加", + "故障现象": "主机润滑油消耗异常增加", + "故障原因": "活塞环磨损或断裂", + "维修方案": "执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + 0.0009532102267257869, + 0.011900756508111954, + -0.04058270528912544, + -0.014697621576488018, + -0.053271837532520294, + -0.018939847126603127, + 0.021417606621980667, + 0.024026762694120407, + -0.04929240792989731, + 0.009235287085175514, + -0.016950130462646484, + 9.370789484819397e-05, + -0.019784538075327873, + 0.007306576240807772, + 0.009239980019629002, + -0.012585894204676151, + 0.027086421847343445, + 0.032342277467250824, + -0.017860518768429756, + -0.00348669639788568, + -0.01428466197103262, + 0.042272087186574936, + 0.0068513816222548485, + -0.025209330022335052, + -0.03881824016571045, + 0.017991915345191956, + -0.0011978186666965485, + 0.026560835540294647, + 0.07260587811470032, + -0.005645351018756628, + -0.006780990865081549, + -0.035139139741659164, + -0.040057118982076645, + -0.013937399722635746, + -0.025303184986114502, + -0.05860277637839317, + -0.023895366117358208, + -0.004950826987624168, + -0.04110829159617424, + 0.055674515664577484, + -0.015241977758705616, + -0.027067650109529495, + 0.026936253532767296, + 0.004856972489506006, + 0.012510810978710651, + -0.013364886865019798, + -0.012079079635441303, + -0.03410674259066582, + -0.03581489250063896, + -0.015504770912230015, + -0.007991714403033257, + -0.04125845804810524, + 0.07196766138076782, + -0.0757969319820404, + 0.0007402776973322034, + 0.03795477747917175, + -0.025077933445572853, + 0.057814400643110275, + -0.023970451205968857, + -0.04407409206032753, + -0.02355748973786831, + 0.018479960039258003, + 0.0008822327363304794, + -0.018564429134130478, + 0.007555290590971708, + 0.058039650321006775, + 0.012604665011167526, + 0.032473672181367874, + -0.00394189078360796, + -0.014791476540267467, + -0.025340726599097252, + -0.010624334216117859, + 0.013449355959892273, + -0.024890225380659103, + -0.030221162363886833, + 0.026861170306801796, + 0.040207285434007645, + -0.034594785422086716, + 0.04095812141895294, + 0.03557087108492851, + 0.021511461585760117, + 0.024064304307103157, + -0.04932994768023491, + 0.024589890614151955, + -0.024045534431934357, + 0.03061535209417343, + -0.024120617657899857, + -0.013768461532890797, + -0.0016494935844093561, + -0.05432301014661789, + 0.03136618807911873, + 0.01773850806057453, + 0.011900756508111954, + 0.05379742383956909, + -0.0025669217575341463, + 0.025190560147166252, + -0.003965354524552822, + -0.04384884238243103, + 0.02329469844698906, + -0.008747243322432041, + 0.04441196843981743, + 0.07057861983776093, + 0.02851301059126854, + -0.04865419492125511, + 0.05372234061360359, + -0.0066871363669633865, + 0.05375988408923149, + 0.026748545467853546, + -0.0037236791104078293, + -0.018254708498716354, + -0.0001374089188175276, + 0.0191744826734066, + -0.017447559162974358, + -0.04441196843981743, + -0.015983428806066513, + -0.034744951874017715, + 0.027142733335494995, + -0.032098252326250076, + 0.06231941655278206, + -0.01429404690861702, + 0.009272828698158264, + 0.03106585331261158, + 0.04193421080708504, + -0.0257161445915699, + -0.03692237660288811, + 0.017766665667295456, + 0.04842894524335861, + 0.00644780695438385, + 0.016293149441480637, + 0.007381659932434559, + -0.02031012251973152, + -0.005429485347121954, + -0.03512037172913551, + 0.02061045728623867, + -0.017916832119226456, + -0.01168489083647728, + 0.012182319536805153, + 5.1693321438506246e-05, + -0.012980083003640175, + -0.02314453013241291, + 0.0025645755231380463, + 0.030183620750904083, + 0.011065450496971607, + 0.011403326876461506, + 0.03566472604870796, + -0.040057118982076645, + 0.005377865396440029, + 0.0038363044150173664, + 0.014707007445394993, + -0.006766912527382374, + -0.04178404435515404, + -0.021567774936556816, + -0.0024472572840750217, + 0.029207533225417137, + -0.04606381058692932, + -0.02539703994989395, + 0.0011485449504107237, + 0.017654038965702057, + -0.013120865449309349, + -0.00014378810010384768, + 0.06611113995313644, + 0.04655185341835022, + 0.006884230766445398, + -0.012642206624150276, + 0.019108785316348076, + -0.011666120029985905, + 0.05672568455338478, + 0.012698519974946976, + -0.02845669724047184, + 0.012445112690329552, + 0.053121671080589294, + -0.047865819185972214, + -0.00817942339926958, + -0.024646203964948654, + 0.010511708445847034, + 0.034838806837797165, + 0.037316568195819855, + -0.006757527124136686, + 0.02098587527871132, + 0.0035125063732266426, + -0.009296292439103127, + -0.0190993994474411, + 0.023914137855172157, + 0.00911327637732029, + -0.006260097958147526, + 0.0026560835540294647, + 0.04827877879142761, + -0.015176279470324516, + 0.022675257176160812, + 0.04857911169528961, + -0.0189492329955101, + -0.022055817767977715, + 0.004296191968023777, + -0.004284460097551346, + 0.04681464657187462, + -0.04966782405972481, + 0.02832530066370964, + -0.005865909159183502, + 0.009324449114501476, + -0.026898711919784546, + -0.0005622473545372486, + 0.013036396354436874, + -0.004549598786979914, + 0.02100464701652527, + -0.024871453642845154, + -0.005340323317795992, + 0.02800619602203369, + -0.015908345580101013, + 0.02333224005997181, + -0.034425847232341766, + 0.05676322802901268, + -0.07485838234424591, + -0.022281069308519363, + 0.005682892631739378, + -0.03412551060318947, + 0.02321961335837841, + 0.01542030181735754, + -0.015335832722485065, + 0.007269034627825022, + -0.01911817118525505, + -0.04880436137318611, + 0.05424792692065239, + -0.0016354154795408249, + -0.03185423091053963, + 0.015223206952214241, + -0.017804207280278206, + -0.006574510596692562, + 0.014707007445394993, + 0.004512057173997164, + -0.01813269779086113, + -0.028813345357775688, + -0.013102094642817974, + 0.011168690398335457, + -0.013618294149637222, + 0.06539784371852875, + -0.0065792035311460495, + 0.006654287222772837, + 0.0014336281456053257, + 0.018273480236530304, + 0.052333295345306396, + -0.006682443432509899, + -0.024496035650372505, + 0.032698921859264374, + -0.012473268434405327, + -0.04872927814722061, + 0.027649547904729843, + 0.05638780817389488, + 0.05657551810145378, + -0.06299517303705215, + 0.009164895862340927, + -0.024589890614151955, + -0.029113680124282837, + -0.019277723506093025, + -0.007799312472343445, + -0.00817942339926958, + 0.009911039844155312, + 0.023914137855172157, + 0.002620888175442815, + -0.04711497947573662, + -0.042272087186574936, + -0.013393043540418148, + 0.1040659174323082, + -0.005889372434467077, + -0.008460987359285355, + 0.013590138405561447, + 0.013383657671511173, + 0.007536519784480333, + 0.019634369760751724, + -0.0026091563049703836, + 0.015795718878507614, + -0.02596016600728035, + 0.026241730898618698, + 0.0023932908661663532, + 0.03279277682304382, + 0.014725778251886368, + 0.021455148234963417, + -0.026035251095891, + -0.002588039031252265, + 0.04422426223754883, + -0.02074185386300087, + 0.02107973024249077, + 0.005349709186702967, + 0.016208680346608162, + -0.013937399722635746, + 0.0010101095540449023, + -0.0008740204502828419, + -0.07328163087368011, + -0.00514322891831398, + 0.021793024614453316, + -0.0014653040561825037, + 0.006874845363199711, + -0.004326694644987583, + 0.07414508610963821, + -0.032304733991622925, + -0.05736389756202698, + 0.05372234061360359, + 0.029470326378941536, + -0.1560238003730774, + 0.037110086530447006, + -0.005682892631739378, + 0.05695093795657158, + -0.009352604858577251, + 0.0260540209710598, + -0.07425771653652191, + 0.006752834655344486, + -0.04598872736096382, + -0.037523046135902405, + -0.034820035099983215, + -0.05871540307998657, + -0.02350117824971676, + -0.017560185864567757, + -0.042497336864471436, + 0.004758425522595644, + 0.0068513816222548485, + -0.018423646688461304, + 5.979560955893248e-05, + -0.0065604327246546745, + -0.014350359328091145, + 0.024120617657899857, + -0.0009473442914895713, + -0.03938136622309685, + -0.0763225182890892, + -0.021361293271183968, + 0.026748545467853546, + 0.0515449158847332, + -0.03130987659096718, + 0.002176252193748951, + -0.05402267724275589, + -0.009882883168756962, + -0.006987470667809248, + 0.06002936512231827, + 0.026955025270581245, + 0.02350117824971676, + 0.025303184986114502, + -0.022450007498264313, + 0.012097850441932678, + 0.007330039981752634, + 0.03423813730478287, + 0.022656487300992012, + 0.015016727149486542, + 0.034801263362169266, + -0.004066247958689928, + -0.05882802978157997, + 0.030446413904428482, + -0.047565482556819916, + 0.012351257726550102, + 0.015382759273052216, + 0.034538473933935165, + -0.04204683378338814, + 0.0017562531866133213, + 0.0012154163559898734, + -0.024364639073610306, + 0.00574389798566699, + 0.01535460352897644, + 0.01703459955751896, + -0.052671171724796295, + -0.0001531002199044451, + -0.052633628249168396, + -0.03904348984360695, + 0.018695825710892677, + 0.031741607934236526, + -0.06243204325437546, + -0.021098501980304718, + -0.014481755904853344, + -0.019240181893110275, + 0.022074589505791664, + -0.04970536753535271, + -0.00021029284107498825, + -0.0038198798429220915, + 0.03945644944906235, + 0.014997956342995167, + -0.01408756710588932, + -0.015232592821121216, + -0.02282542549073696, + -0.017597727477550507, + -0.02034766599535942, + -0.10571775585412979, + -0.019014930352568626, + 0.05488613620400429, + 0.02860686555504799, + 0.004068594425916672, + -0.006987470667809248, + -0.03692237660288811, + 0.0038503827527165413, + 0.021961962804198265, + 0.018996160477399826, + 0.22194722294807434, + -0.0015380412805825472, + 0.02825021743774414, + -0.0015990467509254813, + 0.055524349212646484, + -0.04565085098147392, + 0.015664324164390564, + -0.005387250799685717, + 0.03684729337692261, + -0.020047331228852272, + -0.03598383069038391, + -0.014575610868632793, + 0.02305067516863346, + -0.02286296710371971, + -0.02297559194266796, + 0.02290050871670246, + 0.009601320140063763, + -0.026654690504074097, + 0.060404784977436066, + -0.03361869603395462, + 0.04099566489458084, + 0.016189908608794212, + -0.00021249255223665386, + -0.0260540209710598, + -0.04835386201739311, + -0.04062024503946304, + -0.019934704527258873, + 0.050230950117111206, + -0.018179625272750854, + 0.06885169446468353, + -0.039681702852249146, + 0.03376886621117592, + 0.03615276888012886, + 0.03097200021147728, + -0.03558964282274246, + 0.009892269037663937, + -0.02800619602203369, + -0.028888428583741188, + 0.03863053023815155, + 0.01724107936024666, + -0.025265643373131752, + -0.03140373155474663, + -0.021380065008997917, + 0.009530928917229176, + 0.0519954189658165, + -0.042422253638505936, + -0.023839054629206657, + 0.018770908936858177, + 0.042272087186574936, + -0.012585894204676151, + -0.019315265119075775, + 0.025340726599097252, + -0.04125845804810524, + 0.006583896465599537, + -0.03934382647275925, + 0.003648595418781042, + 0.002742899116128683, + 0.004150717053562403, + -0.03140373155474663, + 0.00854545645415783, + 0.008048026822507381, + 0.018555043265223503, + -0.10729451477527618, + 0.010408468544483185, + -0.004535520914942026, + -0.022694028913974762, + -0.030164850875735283, + 0.007222107145935297, + 0.004307923372834921, + -0.003857421688735485, + -0.026279272511601448, + 0.044787388294935226, + 0.015645552426576614, + 0.015992814674973488, + 0.0522582083940506, + -0.023876596242189407, + -0.0023252463433891535, + 0.06442175805568695, + -0.048053525388240814, + -0.023745199665427208, + -0.04189666733145714, + -0.016762422397732735, + -0.0508691631257534, + -0.012623435817658901, + 0.035176683217287064, + 0.019671913236379623, + 0.016199294477701187, + 0.03067166544497013, + -0.0019287108443677425, + -0.03570226952433586, + -0.0258475411683321, + 0.02338855154812336, + -0.04362359270453453, + 0.010858970694243908, + -0.037560589611530304, + -0.013815389014780521, + -0.042835213243961334, + -0.04339833930134773, + -0.012576509267091751, + -0.0064524998888373375, + -0.015852032229304314, + -0.045237891376018524, + -0.04125845804810524, + -0.04362359270453453, + 0.0005144402384757996, + 0.03438830375671387, + 0.007409816142171621, + -0.004021667409688234, + -0.0017855827463790774, + 0.008071490563452244, + 0.04110829159617424, + 0.018723981454968452, + 0.040169745683670044, + -0.017635269090533257, + 0.005058759823441505, + 0.026729773730039597, + -0.019784538075327873, + 0.05939115583896637, + 0.003923119977116585, + 0.0510568730533123, + -0.0756092220544815, + -0.025265643373131752, + -0.0010717015247792006, + 0.03130987659096718, + -0.0025340726133435965, + -0.030164850875735283, + -0.006837303284555674, + 0.02288173697888851, + -0.0013550249859690666, + 0.034557241946458817, + -0.03375009447336197, + -0.017898062244057655, + -0.027292901650071144, + -0.02845669724047184, + 0.06682443618774414, + 0.02601647935807705, + 0.03848036378622055, + 0.010004894807934761, + 0.029057366773486137, + -0.003761220956221223, + 0.016631025820970535, + -0.045350514352321625, + -0.004148371051996946, + 0.0042609963566064835, + 0.012107236310839653, + -0.030559038743376732, + -0.00010353329707868397, + -0.039869409054517746, + -0.001379661844111979, + 0.05507384613156319, + 0.029357701539993286, + 0.028925970196723938, + -0.00422110827639699, + -0.03604014590382576, + -0.030596580356359482, + -0.037166398018598557, + -0.003507813671603799, + -0.013346116058528423, + -0.01186321396380663, + 0.00443931994959712, + 0.0076491450890898705, + 0.002158654620870948, + 0.009789029136300087, + 0.013393043540418148, + 0.03547701612114906, + 0.030052224174141884, + 0.008465680293738842, + 0.010230145417153835, + 0.032285962253808975, + -0.00907573476433754, + 0.03406919911503792, + -0.0257912278175354, + -0.032454900443553925, + 0.025340726599097252, + -0.019615599885582924, + 0.06971515715122223, + -0.002726474544033408, + 0.029169991612434387, + -0.008437523618340492, + 0.01697828620672226, + 0.037579357624053955, + 0.0256410613656044, + -0.001794968149624765, + -0.005044681951403618, + -0.008353054523468018, + 0.006461885292083025, + 0.0002639658923726529, + -0.009408918209373951, + -0.006518198177218437, + -0.005152614321559668, + 0.000341689185006544, + 0.10954702645540237, + -0.02806250937283039, + 0.0045331744477152824, + 0.014500526711344719, + -0.03179791942238808, + 0.015382759273052216, + 0.03540193289518356, + 0.004746693652123213, + 0.010708803310990334, + 0.027780944481492043, + -0.004941441584378481, + 0.008493836037814617, + -0.02055414579808712, + -0.009164895862340927, + -0.02331346832215786, + 0.010004894807934761, + -0.01155349425971508, + -0.004073287360370159, + -0.02046029083430767, + -0.007090710569173098, + 0.001507538603618741, + 0.014847788959741592, + 0.028944741934537888, + 0.03551455959677696, + -0.007658530957996845, + 0.03108462505042553, + 0.03848036378622055, + -0.057927023619413376, + -0.007658530957996845, + -0.009554392658174038, + -0.009995508939027786, + 0.04846648499369621, + -0.02806250937283039, + -0.013224105350673199, + -0.005720434244722128, + -0.000792484323028475, + -0.01669672317802906, + -0.011206232942640781, + 0.006264790892601013, + 0.009596627205610275, + 0.07493346929550171, + -0.013759075663983822, + -0.024984080344438553, + 0.019615599885582924, + -0.008615846745669842, + 0.025265643373131752, + 0.03519545495510101, + 0.04099566489458084, + -0.008667467162013054, + -0.0035969754680991173, + 0.012473268434405327, + -0.0032825625967234373, + 0.00771484337747097, + -0.0510568730533123, + 0.019897162914276123, + -0.050568826496601105, + -0.0032590990886092186, + 0.03592751920223236, + 0.034744951874017715, + 0.025153018534183502, + 0.047678109258413315, + 0.030483955517411232, + -0.021849337965250015, + -0.014753933995962143, + -0.00022921038907952607, + -0.03821757063269615, + 0.005701663438230753, + -0.04869173839688301, + -0.034538473933935165, + -0.005011832807213068, + 0.06258220970630646, + 0.022525090724229813, + 0.007672608830034733, + -0.007039090618491173, + -0.06896431744098663, + -0.0014383208472281694, + 0.032267190515995026, + -0.012276174500584602, + -0.017194151878356934, + -0.019596828147768974, + -0.022562632337212563, + -0.045200347900390625, + -0.060667578130960464, + 0.03765444457530975, + -0.02365134470164776, + 0.017316162586212158, + 0.024364639073610306, + 0.03290540352463722, + -0.006907694507390261, + -0.04324817284941673, + -0.03346852958202362, + -0.011337628588080406, + -0.0127548323944211, + 0.03063412383198738, + -0.004964905325323343, + 0.06483472138643265, + 0.0190806295722723, + 0.0009408917976543307, + -0.0036626735236495733, + 0.0007819256861694157, + -0.009648246690630913, + -0.017916832119226456, + 0.07440788298845291, + -0.017569569870829582, + 0.042534880340099335, + -0.01707214117050171, + 0.015044883824884892, + 0.003955969121307135, + 0.00029960129177197814, + 0.010192603804171085, + 0.04925486445426941, + -0.03649064525961876, + -0.0519578754901886, + -0.003376417327672243, + -0.002494184533134103, + -0.027142733335494995, + -0.013608909212052822, + 0.042272087186574936, + 0.013909243047237396, + -0.0051854634657502174, + -0.06280746310949326, + 0.0015791027108207345, + 0.02845669724047184, + 0.006039539817720652, + 0.0381987988948822, + 0.04636414349079132, + 0.007015627343207598, + 0.04137108474969864, + 0.014744549058377743, + -0.010680646635591984, + -0.007804005406796932, + -0.02567860297858715, + -0.005621887277811766, + -0.012360643595457077, + -0.013693378306925297, + -0.029995912685990334, + 0.008235735818743706, + 0.002869602758437395, + 0.014866559766232967, + -0.04197175055742264, + -0.015382759273052216, + -0.03765444457530975, + -0.007053168956190348, + 0.06986532360315323, + -0.015410915948450565, + -0.0023275925777852535, + -0.04948011413216591, + 0.032379817217588425, + -0.03258629888296127, + -0.008958416059613228, + -0.03271769359707832, + 0.02821267582476139, + 0.01695951633155346, + 0.0029024516697973013, + 0.008798863738775253, + -0.035214222967624664, + -0.011469025164842606, + 0.053084131330251694, + 0.013364886865019798, + -0.02051660418510437, + 0.017400631681084633, + -0.04103320837020874, + -0.027799716219305992, + 0.00024035561364144087, + -0.019371578469872475, + -0.021586544811725616, + 0.008193501271307468, + 0.013374272733926773, + 0.00584713788703084, + 0.011938298121094704, + 0.03316819667816162, + -0.014040639623999596, + 0.06258220970630646, + 0.008967801928520203, + 0.04688972979784012, + 0.045312974601984024, + 0.004903899971395731, + 0.005959763657301664, + -0.035383161157369614, + -0.01805761456489563, + -0.03061535209417343, + 0.0008693276904523373, + 0.035157911479473114, + 0.008475065231323242, + 0.009249364957213402, + -0.03504528850317001, + 0.02049783244729042, + 0.0016412812983617187, + -0.03414428234100342, + -0.0011215617414563894, + -0.07226800173521042, + -0.024270784109830856, + -0.013824773952364922, + 0.0005208927323110402, + 0.03159143775701523, + -0.03115970827639103, + 0.014885330572724342, + 0.050343576818704605, + 0.008127803914248943, + -0.020047331228852272, + -0.005471719894558191, + -0.050681453198194504, + 0.047265149652957916, + -0.1549726277589798, + -0.03376886621117592, + -0.01528890524059534, + -0.014275276102125645, + -0.03573980927467346, + -0.004204683471471071, + 0.009986123070120811, + 0.01435974519699812, + 0.013683992438018322, + -0.05867785960435867, + 0.030221162363886833, + 0.01142209768295288, + 0.03543947637081146, + -0.0019345767796039581, + -0.039831869304180145, + 0.0259226243942976, + 0.011168690398335457, + -0.02819390408694744, + -0.019465431571006775, + -0.04407409206032753, + 0.0071939509361982346, + -0.016987672075629234, + -0.004303230904042721, + -0.029714347794651985, + 0.029414014890789986, + -0.047790732234716415, + -0.014772704802453518, + -0.009399532340466976, + -0.01169427577406168, + 0.0254908949136734, + -0.012942541390657425, + -0.042835213243961334, + 0.03275523707270622, + 0.06885169446468353, + 0.0068701524287462234, + -0.007977636530995369, + -0.0025434582494199276, + -0.014453600160777569, + 0.02096710540354252, + 0.0027217818424105644, + 0.04414917901158333, + 0.009789029136300087, + -0.011356399394571781, + 0.011065450496971607, + 0.023839054629206657, + 0.05702602118253708, + 0.00457540899515152, + 0.0068326108157634735, + -0.032023169100284576, + -0.0006229595164768398, + -0.014829018153250217, + 0.027743402868509293, + 0.01811392605304718, + -0.01714722439646721, + 0.008686237968504429, + -0.0058002108708024025, + -0.03399411588907242, + -0.0190806295722723, + -0.014960414730012417, + 0.04655185341835022, + -0.01665918156504631, + 0.00026293937116861343, + -0.016818733885884285, + -0.06220678985118866, + 0.017212923616170883, + -0.025021621957421303, + -0.07196766138076782, + -0.03069043532013893, + 0.011009138077497482, + -0.016555940732359886, + -0.022055817767977715, + -0.007667916361242533, + -0.0378609225153923, + -0.03919365629553795, + -4.465423262445256e-05, + -0.05345954746007919, + 0.02789357118308544, + -0.008930259384214878, + -0.006138087250292301, + 0.0008798863273113966, + 0.0020249118097126484, + 0.024176931008696556, + 0.047828275710344315, + 0.03354361280798912, + 0.050756536424160004, + 0.01716599613428116, + -0.027011338621377945, + -0.009638861753046513, + 0.04948011413216591, + 0.017428789287805557, + -0.026973795145750046, + -0.030089767649769783, + -0.003695522667840123, + -0.005349709186702967, + -0.032417360693216324, + -0.005659428890794516, + 0.002728820778429508, + -0.02560351975262165, + -0.01154410932213068, + -0.06374600529670715, + -0.02295682206749916, + -0.009437073953449726, + 0.028925970196723938, + -0.024589890614151955, + -0.009559085592627525, + 0.03352484479546547, + -0.02305067516863346, + -0.0021797718945890665, + -0.027518151327967644, + -0.026748545467853546, + -0.047565482556819916, + -0.023670116439461708, + -0.04125845804810524, + -0.0063445670530200005, + -0.06228187680244446, + -0.012463883496820927, + -0.0036603272892534733, + -0.01158165093511343, + -0.02057291567325592, + -0.01824532262980938, + 0.011806901544332504, + -0.0255659781396389, + -0.01545784343034029, + -0.022525090724229813, + -0.016114825382828712, + -0.04110829159617424, + 0.04606381058692932, + 0.014725778251886368, + 0.009854727424681187, + -0.03076551854610443, + 0.012689134106040001, + -0.03284909203648567, + -0.06021707504987717, + 0.00767730176448822, + 0.007761770859360695, + 0.01699705794453621, + 0.003160551656037569, + 0.06389617174863815, + -0.0015497731510549784, + -0.01027707289904356, + -0.005035296082496643, + 0.04418671876192093, + 0.01588018797338009, + -0.03296171501278877, + -0.023782741278409958, + -0.0258287712931633, + -0.029564181342720985, + -0.035082828253507614, + 0.03326205164194107, + -0.013317959383130074, + -0.030127309262752533, + -0.004589487332850695, + -0.05338446423411369, + 0.04384884238243103, + 0.02107973024249077, + -0.014387901872396469, + 0.024270784109830856, + 0.015110581181943417, + -0.03054026886820793, + 0.011234388686716557, + 0.01835794933140278, + -0.0786125659942627, + -0.010305228643119335, + -0.023782741278409958, + 0.01032399944961071, + 0.014444214291870594, + -0.024477265775203705, + 0.007405123673379421, + -0.01770096644759178, + 0.00422580074518919, + -0.015664324164390564, + -0.005204234272241592, + -0.010258302092552185, + 0.024439722299575806, + 0.014979185536503792, + 0.0006429036147892475, + 0.01429404690861702, + -0.01724107936024666, + 0.03938136622309685, + -0.029564181342720985, + 0.024552349001169205, + 0.052220668643713, + -0.0037072545383125544, + 0.04917978122830391, + -0.008503221906721592, + 0.02614787593483925, + -0.017560185864567757, + 0.02055414579808712, + 0.01634007692337036, + -0.011290702037513256, + -0.0011649695225059986, + 0.0052746254950761795, + -0.021905651316046715, + -0.010474166832864285, + 0.008737858384847641, + -0.02031012251973152, + 0.01796375960111618, + 0.09205253422260284, + 0.030202392488718033, + 0.08852360397577286, + -0.0036697126924991608, + -0.03080306202173233, + 0.017363090068101883, + -0.03532684966921806, + -0.02040397748351097, + -0.02107973024249077, + 0.016246221959590912, + 0.005833060014992952, + -0.039644159376621246, + 0.026485752314329147, + -0.012445112690329552, + -0.001380834961310029, + 0.03609645739197731, + 0.019090013578534126, + -0.0033576462883502245, + -0.010812043212354183, + 0.025378268212080002, + 0.004838201683014631, + 0.004711498040705919, + 0.05736389756202698, + 0.004014628008008003, + -0.002145749516785145, + 0.008714394643902779, + -0.04107074812054634, + 0.04392392560839653, + -0.010164447128772736, + 0.01159103587269783, + -0.042459797114133835, + -0.009390147402882576, + -0.01811392605304718, + 0.021136043593287468, + -0.021924421191215515, + -0.012482654303312302, + 0.017372475937008858, + -0.021680399775505066, + -0.011731818318367004, + -0.039906952530145645, + 0.008512606844305992, + 0.019878393039107323, + 0.02567860297858715, + 0.01775727979838848, + 0.030127309262752533, + 0.011769359931349754, + 0.03536439314484596 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞杆填料函磨损导致", + "故障现象": "", + "故障原因": "活塞杆填料函磨损", + "维修方案": "执行以下维修项目:MT001保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + 0.007621952332556248, + 0.019534781575202942, + -0.037093501538038254, + -0.01333371177315712, + -0.0009715636842884123, + -0.0674872100353241, + -0.005297727417200804, + 0.04241945967078209, + -0.02265884168446064, + 0.007537263911217451, + 0.010614274069666862, + 0.02952800877392292, + 0.02772132307291031, + 0.0011185921030119061, + 0.0071044121868908405, + -0.01909252069890499, + 0.013192564249038696, + -0.0011950468178838491, + 0.034063540399074554, + -0.010143783874809742, + -0.020249927416443825, + 0.007250264752656221, + 0.0012197475880384445, + -0.02958446741104126, + 0.021002713590860367, + 0.02950918860733509, + 0.0265168659389019, + 0.04467781260609627, + 0.00743846083059907, + -0.015469740144908428, + 0.012223353609442711, + 0.012976138852536678, + -0.039897628128528595, + -0.03191810101270676, + -0.02949036844074726, + -0.06545469164848328, + 0.016890622675418854, + -0.01837737485766411, + -0.03818504139780998, + 0.05314664915204048, + 0.005006023216992617, + -0.038843728601932526, + 0.011112994514405727, + -0.03854261338710785, + 0.035079799592494965, + -0.026968536898493767, + -0.012976138852536678, + -0.0455811582505703, + 0.004446139093488455, + -0.011263552121818066, + -0.012976138852536678, + -0.006521003786474466, + 0.055593203753232956, + -0.032031018286943436, + 0.05141524225473404, + 0.011470567435026169, + -0.021153269335627556, + 0.028041256591677666, + -0.028022436425089836, + -0.025011295452713966, + 0.003787451656535268, + 0.00927808042615652, + -0.04136556014418602, + -0.0063139875419437885, + -0.0029405681416392326, + 0.07813912630081177, + 0.01189401000738144, + 0.00992735754698515, + -0.02258356288075447, + -0.019967632368206978, + -0.033084917813539505, + 0.03459049016237259, + 0.043096963316202164, + 0.01287263073027134, + -0.042833488434553146, + 0.02565116249024868, + 0.05152816325426102, + -0.039859987795352936, + 0.025067754089832306, + 0.04223126173019409, + 0.040800970047712326, + -0.022903496399521828, + 0.003218157682567835, + 0.05201747268438339, + -0.012439779005944729, + 0.017944522202014923, + -0.04068805277347565, + 0.008553524501621723, + -0.024973656982183456, + -0.010435488075017929, + 0.07294490933418274, + 0.03752635419368744, + 0.023336347192525864, + 0.03045017085969448, + -0.03067600540816784, + 0.0022889382671564817, + -0.0023477494250983, + -0.026422768831253052, + 0.02471018210053444, + -0.014265283942222595, + 0.025933457538485527, + 0.05254442244768143, + 0.030073776841163635, + -0.0067515443079173565, + -0.00669508520513773, + -0.01027552131563425, + 0.0005110707134008408, + -0.009193391539156437, + -0.003540443954989314, + -0.04038693755865097, + 0.0001929012651089579, + 0.0038368531968444586, + 0.003935656044632196, + -0.037055861204862595, + -0.0181515384465456, + -0.012552697211503983, + -0.009423932060599327, + -0.02053222246468067, + 0.034985702484846115, + 0.010746011510491371, + 0.01176227256655693, + 0.007984230294823647, + 0.02649804577231407, + -0.026817981153726578, + -0.021341467276215553, + -0.02367510087788105, + 0.05510389432311058, + 0.008398261852562428, + 0.0004972500610165298, + 0.023373987525701523, + 0.011178863234817982, + -0.007998345419764519, + -0.03974707052111626, + -0.007071477826684713, + -0.03521153703331947, + 0.013267843052744865, + 0.0181515384465456, + 0.054689861834049225, + 0.027363749220967293, + -0.013531317934393883, + 0.018255045637488365, + 0.021548481658101082, + 0.015065117739140987, + -0.012035156600177288, + -0.0002615635166876018, + -0.02073923870921135, + 0.03558792918920517, + -0.03656655177474022, + 0.04512948542833328, + -0.038109760731458664, + -0.0158461332321167, + -0.01325843296945095, + -0.0028958714101463556, + 0.030054958537220955, + 0.017662227153778076, + -0.05216803029179573, + 0.0005854670889675617, + -0.00030376066570170224, + -0.031974561512470245, + 0.005758808460086584, + 0.10034629702568054, + 0.08672087639570236, + -0.008534704335033894, + 0.0031852233223617077, + 0.010887159034609795, + 0.02279057912528515, + 0.05834086984395981, + 0.0305254478007555, + -0.012157484889030457, + -0.008529999293386936, + 0.02762722410261631, + -0.01577085442841053, + -0.00564118567854166, + -0.01924307644367218, + 0.00889227818697691, + 0.036133699119091034, + 0.02939627133309841, + -0.008026574738323689, + 0.04042457789182663, + -0.030299613252282143, + -0.008092443458735943, + 0.008849933743476868, + 0.008073623292148113, + 0.006756248883903027, + 0.007015019189566374, + -0.00022465939400717616, + 0.01082129031419754, + -0.008915802463889122, + 0.012129254639148712, + 0.007767804432660341, + -0.04219362139701843, + -0.02158612199127674, + -0.02156730182468891, + -0.01125414203852415, + 0.016166066750884056, + -0.031146496534347534, + 0.029339810833334923, + 0.01522508542984724, + 0.027119094505906105, + 0.0023324585054069757, + 0.04825354367494583, + -0.02461608313024044, + 0.005678825080394745, + 0.014133546501398087, + -0.025989916175603867, + -0.0016772999661043286, + 0.03837323561310768, + -0.014867511577904224, + 0.03543737530708313, + -0.0471620075404644, + 0.027100274339318275, + -0.06353508681058884, + -0.005241268314421177, + -0.008849933743476868, + -0.01632603444159031, + 0.002521831076592207, + 0.001066249911673367, + 0.0015926116611808538, + -0.009607424028217793, + 0.010520176030695438, + -0.04441433772444725, + 0.03223803639411926, + 0.01976061798632145, + -0.012119845487177372, + 0.0327649861574173, + -0.00663862656801939, + 0.007805443834513426, + -0.005255382973700762, + 0.025368869304656982, + -0.0727943480014801, + -0.015629706904292107, + 0.017953932285308838, + -0.002613576827570796, + -0.009701522067189217, + 0.056797660887241364, + 0.03553147241473198, + 0.03184282407164574, + 0.00992735754698515, + 0.021435564383864403, + 0.006492774002254009, + -0.04347335919737816, + -0.029095156118273735, + 0.018076259642839432, + -0.01239272952079773, + -0.00343458354473114, + 0.02382565848529339, + 0.003832148155197501, + 0.0393330380320549, + -0.013898300938308239, + 0.001967828022316098, + 0.012712663970887661, + 0.01330548245459795, + -0.015112167224287987, + -0.04953328147530556, + -0.01433115266263485, + 0.009527440182864666, + 0.008139492012560368, + 0.000870408141054213, + 0.004516712389886379, + -0.008304163813591003, + 0.009249851107597351, + 0.07926830649375916, + 0.002947625471279025, + -0.005457694176584482, + 0.02764604426920414, + 0.03419527783989906, + -0.029866760596632957, + -0.012693843804299831, + 0.02171785943210125, + -0.04663505777716637, + -0.022978775203227997, + -0.008732310496270657, + -0.02747666835784912, + 0.026178112253546715, + 0.018537340685725212, + 0.017888063564896584, + 0.0006092857220210135, + -0.014077086932957172, + 0.03050662949681282, + -0.02252710424363613, + 0.0158461332321167, + 0.04042457789182663, + 0.008370032534003258, + 0.009056949988007545, + 0.022150710225105286, + 0.010482536628842354, + -0.048855774104595184, + -0.053861796855926514, + 0.04535531997680664, + 0.0042226556688547134, + 0.024107953533530235, + -0.021285006776452065, + 0.06918098032474518, + -0.00022980538778938353, + -0.0397094301879406, + 0.030280793085694313, + -0.009325128979980946, + -0.1568804830312729, + 0.010783650912344456, + -0.03929539769887924, + 0.04377447068691254, + 0.0018466766923666, + 0.021153269335627556, + -0.038994286209344864, + -0.007476100232452154, + -0.047839514911174774, + -0.04162903502583504, + 0.00099391199182719, + -0.058641985058784485, + -0.010190832428634167, + 0.005655300337821245, + 0.013456039130687714, + -0.00933453906327486, + -0.022414185106754303, + -0.0181515384465456, + -0.0022077783942222595, + -0.01891373284161091, + -0.016834164038300514, + 0.02939627133309841, + 0.028775222599506378, + -0.041026804596185684, + -0.06026047095656395, + -0.04509184509515762, + 0.002161905635148287, + -0.009358063340187073, + -0.002914691111072898, + -0.004540237132459879, + -0.06598164141178131, + 0.011611714959144592, + -0.011959878727793694, + 0.051264688372612, + -0.006196364760398865, + 0.04456489533185959, + 0.025876998901367188, + 0.007372592110186815, + 0.0001695237442618236, + 0.018885504454374313, + 0.03651009127497673, + 0.024446707218885422, + 0.00492133479565382, + 0.04512948542833328, + 0.02565116249024868, + -0.06579344719648361, + 0.05017314851284027, + -0.012750303372740746, + -0.017332883551716805, + -0.0019419511081650853, + 0.033122558146715164, + 0.004086213186383247, + 0.007330248132348061, + 0.010379028506577015, + -0.021040352061390877, + 0.0016525991959497333, + 0.0225082840770483, + 0.04136556014418602, + -0.054689861834049225, + 0.008991081267595291, + -0.013474859297275543, + -0.023355167359113693, + -0.029960859566926956, + 0.009729751385748386, + -0.042908769100904465, + -0.03651009127497673, + -0.037037041038274765, + 0.0031875758431851864, + 0.019986452534794807, + -0.053711239248514175, + 0.04076332971453667, + 0.017351703718304634, + 0.02380683831870556, + 0.0012632680591195822, + -0.011809321120381355, + -0.015545018948614597, + -0.027119094505906105, + -0.04072568938136101, + -0.024352608248591423, + -0.1311352252960205, + -0.028116535395383835, + 0.027439028024673462, + 0.0016855335561558604, + -0.029170434921979904, + -0.019017241895198822, + 0.03438347205519676, + 0.028888139873743057, + 0.013070236891508102, + 0.031108858063817024, + 0.18307740986347198, + -0.024032674729824066, + 0.009329834021627903, + -0.0031899281311780214, + 0.03937067836523056, + -0.05822795256972313, + 0.01642013154923916, + -0.0029405681416392326, + 0.029358630999922752, + -0.02772132307291031, + -0.018076259642839432, + -0.013907711021602154, + 0.016570689156651497, + -0.019196027889847755, + 0.022433005273342133, + 0.041930146515369415, + -0.006822117604315281, + 0.013568957336246967, + 0.08988258242607117, + -0.01709763891994953, + 0.03841087594628334, + -0.03137233108282089, + -0.007160871289670467, + 0.013663055375218391, + -0.0053871204145252705, + -0.06398676335811615, + -0.035832587629556656, + 0.05796447768807411, + -0.04426378384232521, + 0.017436392605304718, + -0.03841087594628334, + 0.025632344186306, + 0.021002713590860367, + 0.021134451031684875, + -0.02457844465970993, + -0.039069563150405884, + -0.002917043399065733, + -0.004069746006280184, + 0.015987280756235123, + 0.011602304875850677, + -0.015102757140994072, + -0.03762045130133629, + -0.007763099391013384, + 0.0332731157541275, + 0.01325843296945095, + -0.04505420848727226, + -0.02085215598344803, + -0.011564666405320168, + 0.04561879485845566, + -0.02359982207417488, + 0.014829873107373714, + 0.01713527739048004, + -0.04960855841636658, + 0.011969287879765034, + -0.03551265224814415, + -0.011028306558728218, + 0.002841765061020851, + -0.026253391057252884, + -0.06372328847646713, + 0.05834086984395981, + 0.06214243546128273, + 0.0021819015964865685, + -0.08928035199642181, + 0.010858929716050625, + -0.007960706017911434, + -0.01190341915935278, + -0.04960855841636658, + -0.00766900135204196, + -0.0064080860465765, + 0.048780493438243866, + -0.001654951716773212, + 0.027062635868787766, + -0.012138664722442627, + 0.029885580763220787, + 0.05845378711819649, + -0.035023342818021774, + 0.009367473423480988, + 0.09725987911224365, + -0.028210634365677834, + 0.03620897978544235, + -0.03675474971532822, + 0.0043590981513261795, + -0.042833488434553146, + 0.013023187406361103, + 0.031993381679058075, + -0.02068278007209301, + 0.029791483655571938, + -0.01674947515130043, + -0.021473204717040062, + -0.03378124535083771, + -0.02559470385313034, + 0.016918852925300598, + -0.013625415973365307, + -0.0007692525978200138, + -0.010294340550899506, + -0.023468084633350372, + -0.005984643939882517, + -0.01638249307870865, + -0.0019525372190400958, + -0.020927434787154198, + -0.05292081460356712, + -0.05118940770626068, + -0.0366794690489769, + -0.03043135069310665, + 0.04407558590173721, + 0.04802770912647247, + -0.014001809060573578, + 0.006215184461325407, + 0.0035804356448352337, + 0.007965411059558392, + 0.017031770199537277, + 0.022847037762403488, + -0.020306386053562164, + -0.02179313823580742, + -0.0008415905758738518, + 0.004737843293696642, + -0.03355541080236435, + 0.02762722410261631, + 0.014124136418104172, + 0.029264533892273903, + -0.04452725872397423, + -0.012731483206152916, + -0.001991352764889598, + 0.04072568938136101, + -0.025143032893538475, + -0.037883926182985306, + -0.01955360174179077, + -0.006953855510801077, + -0.03359304741024971, + 0.022884676232933998, + -0.0235810037702322, + -0.016608327627182007, + -0.04817826673388481, + -0.049721475690603256, + 0.08980730175971985, + 0.02359982207417488, + 0.01974179781973362, + 0.021454384550452232, + -0.006586872506886721, + -0.02184959687292576, + 0.009908538311719894, + -0.036058422178030014, + -0.005547087639570236, + -0.005076596513390541, + -0.003168756142258644, + -0.07768745720386505, + -0.014406430535018444, + -0.06485246121883392, + -0.02072041854262352, + 0.06312105804681778, + 0.03773336857557297, + 0.008807589299976826, + -0.04900633171200752, + -0.04223126173019409, + -0.03842969611287117, + -0.015667347237467766, + -0.007941885851323605, + 0.02565116249024868, + 7.215418736450374e-05, + -0.021134451031684875, + -0.012082206085324287, + 0.02849292755126953, + 0.018433833494782448, + -0.024936016649007797, + 0.0306195467710495, + 0.03161698579788208, + 0.018829045817255974, + 0.02465372160077095, + 0.01977943629026413, + 0.0036721813958138227, + 0.006775068584829569, + -0.01480164285749197, + -0.06022283434867859, + 0.04900633171200752, + -0.008007754571735859, + 0.06312105804681778, + 0.009485096670687199, + 7.652828207938e-05, + -0.05201747268438339, + 0.042871128767728806, + 0.04742548242211342, + 0.022433005273342133, + -0.027250831946730614, + -0.010887159034609795, + -0.006106971763074398, + 0.03619015961885452, + -0.041741952300071716, + -0.015328592620790005, + 0.042833488434553146, + 0.0045614093542099, + -0.03368714824318886, + 0.09251733124256134, + -0.016335442662239075, + -0.006892691366374493, + 0.0025382982566952705, + 0.01613783650100231, + 5.9546502598095685e-05, + 0.05009786784648895, + -0.022000154480338097, + -0.021943693980574608, + 0.007565493229776621, + -0.002841765061020851, + 0.020268747583031654, + 0.008478245697915554, + 0.0006386913591995835, + -0.04648450016975403, + 0.026799160987138748, + 0.004493188112974167, + 0.00910399854183197, + -0.030186695978045464, + 0.00979562010616064, + 0.0017067056614905596, + -0.05596959590911865, + -0.004554351791739464, + 0.013719514012336731, + 0.005274202674627304, + 0.05435110628604889, + 0.02459726296365261, + -0.0336495079100132, + -0.018904324620962143, + -0.0004360862367320806, + -0.003159346291795373, + 0.045919910073280334, + 0.03351777046918869, + 0.004401442129164934, + 0.013145515695214272, + -0.00405327882617712, + -0.030017318204045296, + -0.011705812998116016, + -0.022941134870052338, + 0.01233627088367939, + 0.010651913471519947, + 0.018810225650668144, + -0.04629630222916603, + 0.05024842545390129, + -0.013578366488218307, + 0.03058190830051899, + 0.04430142045021057, + 0.00835591834038496, + 0.017925702035427094, + 0.023091692477464676, + -0.013173745013773441, + 0.051829274743795395, + 0.02676152065396309, + -0.033950623124837875, + 0.006831527687609196, + -0.04723728448152542, + -0.013568957336246967, + 0.04061277210712433, + 0.040876246988773346, + 0.028229452669620514, + 0.02264002151787281, + 0.043096963316202164, + -0.020024092867970467, + 0.014293513260781765, + -0.012326860800385475, + -0.05446402356028557, + 0.0034298785030841827, + -0.0727943480014801, + -0.015328592620790005, + -0.0016067263204604387, + 0.05205511301755905, + 0.016777705401182175, + 0.014481709338724613, + 0.02646040730178356, + -0.04313460364937782, + -0.03144761174917221, + -0.020042911171913147, + -0.010294340550899506, + -0.0036392470356076956, + -0.008497064933180809, + -0.019497143104672432, + -0.02962210588157177, + -0.05743752792477608, + 0.02350572496652603, + -0.006760953925549984, + 0.037037041038274765, + -0.00036551262019202113, + 0.05992171913385391, + -0.0235810037702322, + -0.026912078261375427, + -0.029923221096396446, + -0.07000904530286789, + -0.0045567043125629425, + 0.026347490027546883, + 0.017219966277480125, + 0.02678034082055092, + 0.005702349357306957, + -0.026178112253546715, + -0.012119845487177372, + 0.006563347764313221, + -0.012016337364912033, + -0.022395366802811623, + 0.08544114232063293, + -0.012411549687385559, + 0.02457844465970993, + -0.010595454834401608, + 0.037865106016397476, + -0.005095416214317083, + 0.029810301959514618, + -0.005678825080394745, + -0.004869580734521151, + -0.06097561866044998, + -0.006097561679780483, + -0.012524466961622238, + -0.013954759575426579, + -0.0286623053252697, + -0.006370446644723415, + 0.027871880680322647, + 0.0325767882168293, + 0.016024919226765633, + -0.10042157769203186, + -0.018998421728610992, + 0.013465449213981628, + -0.0208333358168602, + -0.020325206220149994, + 0.0575128048658371, + -0.010397848673164845, + 0.005504743196070194, + 0.001572615816257894, + -0.044978927820920944, + 6.763306737411767e-05, + -0.00686916708946228, + 0.009254556149244308, + -0.03854261338710785, + 0.01658009923994541, + 0.023844478651881218, + 0.032087478786706924, + -0.0347222276031971, + 0.007123231887817383, + -0.03833559900522232, + 0.00792306661605835, + -0.0590936541557312, + -0.015488560311496258, + 0.034063540399074554, + 0.02548178657889366, + -0.030130235478281975, + -0.05608251318335533, + -0.00497779343277216, + 0.015168625861406326, + -0.03637835383415222, + 0.006064627319574356, + 0.015093347989022732, + 0.01536623202264309, + -0.008506475016474724, + -0.050662457942962646, + -0.01909252069890499, + 0.03428937494754791, + 0.057663362473249435, + 0.02264002151787281, + -0.020456943660974503, + -0.006097561679780483, + -0.013813612051308155, + -0.010482536628842354, + 0.007066773250699043, + 0.03259560838341713, + 0.018236227333545685, + 0.03982234746217728, + -0.03835441544651985, + 0.006431610323488712, + 0.011479977518320084, + -0.010426077991724014, + -0.04524240270256996, + 0.045806992799043655, + -0.017351703718304634, + -0.014133546501398087, + 0.021021531894803047, + -0.00818183645606041, + 0.008722901344299316, + -0.028154173865914345, + -0.02062631957232952, + -0.05137760564684868, + 0.013982988893985748, + 0.03974707052111626, + -0.009320424869656563, + 0.008793475106358528, + -0.05028606578707695, + 0.03329193592071533, + 0.022433005273342133, + -0.0020019386429339647, + -0.04117736220359802, + -0.0332731157541275, + -0.004323811270296574, + -0.02168021909892559, + 0.032049838453531265, + 0.013427809812128544, + -0.02755194716155529, + 0.007226740010082722, + 0.025933457538485527, + 0.057625722140073776, + -0.04640921950340271, + 0.002985264640301466, + -0.026441587135195732, + 0.05254442244768143, + -0.1487503945827484, + -0.02376919984817505, + -0.026403948664665222, + -0.02452198415994644, + -0.02452198415994644, + 0.0011103585129603744, + -0.0035851404536515474, + 0.013164334930479527, + -0.015479150228202343, + 0.000719851057510823, + -0.011216502636671066, + 0.03959651291370392, + 0.029358630999922752, + 0.0002683268394321203, + -0.02452198415994644, + 0.021416744217276573, + 0.002067807363346219, + 0.001498513505794108, + -0.03677356615662575, + -0.0025147737469524145, + 0.02179313823580742, + -0.007325543090701103, + -0.04452725872397423, + -0.008680556900799274, + -0.017662227153778076, + -0.02578289993107319, + 0.024390246719121933, + -0.023054054006934166, + -0.022338906303048134, + 0.03748871386051178, + -0.049984950572252274, + -0.02653568610548973, + 0.0637609213590622, + 0.04415086284279823, + -0.0025288884062319994, + -0.03167344629764557, + 0.014914561063051224, + -0.04332280158996582, + 0.04053749516606331, + -0.009786210022866726, + 0.02583935856819153, + -0.010520176030695438, + 0.016598917543888092, + 0.08446252346038818, + 0.02252710424363613, + 0.03464694693684578, + -0.035192716866731644, + -0.0076925260946154594, + -0.021172089502215385, + 0.0017678694566711783, + -0.0029687974601984024, + 0.02854938618838787, + -0.026196932420134544, + -0.01976061798632145, + -0.0010144959669560194, + 0.007062068209052086, + -0.023957395926117897, + -0.040838610380887985, + 0.006389266345649958, + 0.06647095084190369, + -0.032162755727767944, + 0.0045143598690629005, + -0.031974561512470245, + -0.047839514911174774, + 0.00037609864375554025, + -0.04896869137883186, + -0.022941134870052338, + -0.02975384332239628, + 0.03869317099452019, + 0.025293590500950813, + -0.03174872323870659, + 0.0313158743083477, + -0.007603132631629705, + -0.05149052292108536, + 0.014246463775634766, + -0.01765281893312931, + 0.011912829242646694, + -0.02376919984817505, + -0.00013269313785713166, + 0.005547087639570236, + -0.008172426372766495, + 0.023166971281170845, + 0.027043815702199936, + 0.018716126680374146, + 0.08905451744794846, + 0.007320838049054146, + -0.01785983331501484, + 0.0336495079100132, + 0.03553147241473198, + 0.023900937288999557, + -0.020475763827562332, + 0.011959878727793694, + 0.0067044952884316444, + -0.040010545402765274, + -0.01772809587419033, + -0.007504329551011324, + -0.023486904799938202, + 0.004963678773492575, + -0.026893258094787598, + -0.06041102856397629, + 0.010294340550899506, + -0.011649354360997677, + -0.00910399854183197, + 0.0274954866617918, + -0.006525708362460136, + 0.03171108663082123, + 0.0395212359726429, + -6.175192538648844e-05, + -0.015761444345116615, + 0.006568052805960178, + -0.05103885009884834, + -0.00433557340875268, + -0.019478322938084602, + 0.009889718145132065, + -0.05002259090542793, + 0.006393970921635628, + 0.0028300026897341013, + -0.02943390980362892, + -0.07753689587116241, + -0.0076501816511154175, + 0.008939326740801334, + 0.028248272836208344, + -0.007993640378117561, + -0.04159139469265938, + 0.011922239325940609, + -0.0491192489862442, + 0.026912078261375427, + 0.03654773160815239, + 0.005547087639570236, + -0.013681874610483646, + 0.010934208519756794, + -0.00892991665750742, + -0.005876431241631508, + 0.03421409800648689, + 0.00764077203348279, + 0.035832587629556656, + -0.03532445430755615, + 0.06948209553956985, + -0.013616005890071392, + -0.016928261145949364, + -0.007330248132348061, + 0.004911924712359905, + 0.001191518153063953, + -0.0395212359726429, + -0.024409066885709763, + -0.028417648747563362, + -0.014190005138516426, + -0.025030115619301796, + 0.020024092867970467, + 0.01331489160656929, + -0.030995938926935196, + 0.0006622159271501005, + -0.0345340296626091, + -0.006756248883903027, + -0.001817270996980369, + 0.007598427589982748, + 0.04418850317597389, + -0.022338906303048134, + -0.05024842545390129, + 0.017756326124072075, + 0.028304731473326683, + -0.07151461392641068, + -0.03172990679740906, + 0.02162376046180725, + 0.021924875676631927, + 0.011621125042438507, + -0.008280639536678791, + 0.01328666228801012, + -0.03440229222178459, + 0.0023206963669508696, + -0.0028135355096310377, + -0.023204609751701355, + 0.0016949434066191316, + 0.01693767122924328, + 0.014293513260781765, + -0.008238295093178749, + -0.011705812998116016, + -0.02869994379580021, + 0.02971620485186577, + -0.03767691180109978, + 0.036848846822977066, + 0.022922316566109657, + 0.021021531894803047, + 0.04704909026622772, + -0.01865025795996189, + 0.06026047095656395, + 0.0073914118111133575, + 0.024258509278297424, + -0.007974820211529732, + -0.0015784968854859471, + 0.0071044121868908405, + 0.016533048823475838, + -0.08800061792135239, + 0.02548178657889366, + 0.036133699119091034, + -0.017643408849835396, + 0.006845642346888781, + 0.05702349543571472, + 0.005048367194831371, + 0.08243000507354736, + 0.014030038379132748, + -0.01757754012942314, + -0.02672388218343258, + -0.04418850317597389, + -0.013587776571512222, + -0.004455548711121082, + -0.02382565848529339, + 0.014039448462426662, + -0.06082506105303764, + 0.028737584128975868, + -0.027250831946730614, + -0.004321458749473095, + 0.007513739634305239, + -0.03336721286177635, + -7.77045133872889e-05, + -0.01968533918261528, + 0.045919910073280334, + 0.009212211705744267, + -0.021906055510044098, + 0.01189401000738144, + -0.030280793085694313, + -0.02375037968158722, + 0.009786210022866726, + -0.022244809195399284, + 0.014001809060573578, + -0.03332957252860069, + 0.015300363302230835, + -0.02662978321313858, + -0.030826563015580177, + -0.024145592004060745, + -0.00981444027274847, + -0.013559547252953053, + -0.026121653616428375, + 0.04211834445595741, + 0.010454307310283184, + 0.03543737530708313, + -0.026347490027546883, + -1.686231917119585e-05, + -0.006775068584829569, + 0.0015761444810777903, + 0.03918248042464256, + -0.0037074682768434286, + 0.00397564796730876, + 0.04456489533185959 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "高压油管接头密封失效导致高压燃油管路附近有油渍", + "故障现象": "高压燃油管路附近有油渍", + "故障原因": "高压油管接头密封失效", + "维修方案": "执行以下维修项目:MT014 更换高压油泵柱塞偶件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + -0.055210042744874954, + 0.012419456616044044, + -0.017867570742964745, + -0.03560430929064751, + 0.0038501250091940165, + -0.028109649196267128, + -0.02995995245873928, + 0.03962264582514763, + -0.05240655317902565, + -0.0034529638942331076, + -0.0046491194516420364, + -0.009999110363423824, + 0.01790495030581951, + -0.018372198566794395, + -0.0033828767482191324, + 0.006592871621251106, + 0.051658958196640015, + -0.024296903982758522, + 0.013830545358359814, + -0.010186010040342808, + -0.03405304625630379, + 0.040706660598516464, + -0.02061498910188675, + -0.02106354758143425, + -0.03164204582571983, + 0.0164564810693264, + -0.022988609969615936, + 0.019867392256855965, + -0.0015828032046556473, + -0.03736116364598274, + 0.001200827769935131, + -0.02835261821746826, + 0.0027287292759865522, + -0.019755251705646515, + -0.022764330729842186, + -0.05236917361617088, + 0.028520828112959862, + -0.02951139397919178, + -0.027717161923646927, + 0.02739943191409111, + -0.01661534421145916, + -0.011036401614546776, + -0.0017440037336200476, + -0.0649288073182106, + -0.011802688241004944, + -0.022521361708641052, + -0.015428534708917141, + -0.010457013733685017, + -0.00331512582488358, + 0.004623420536518097, + -0.0309505183249712, + -0.028707727789878845, + 0.0321279838681221, + -0.03580990061163902, + 0.027605021372437477, + 0.0022392868995666504, + -0.006564836949110031, + -0.03545479103922844, + -0.022689571604132652, + -0.005401388742029667, + -0.03810875862836838, + 0.016942419111728668, + 0.006905927788466215, + 0.006522784475237131, + 0.02951139397919178, + 0.0799928829073906, + -0.0011932350462302566, + 0.012550286017358303, + -0.0402207225561142, + -0.043996088206768036, + 0.02384834550321102, + 0.02472677268087864, + 0.023082058876752853, + 0.0006494749686680734, + -0.02855820767581463, + 0.020297260954976082, + 0.027941441163420677, + -0.0016482179053127766, + -0.0033548418432474136, + 0.02044677920639515, + 0.03508099168539047, + -0.027941441163420677, + -0.0006740054814144969, + 0.04896760731935501, + -0.021867213770747185, + 0.05378960818052292, + -0.02838999778032303, + 0.008966492488980293, + 0.005747152492403984, + -0.011101816780865192, + 0.010999022051692009, + -0.005910689476877451, + 0.012213867157697678, + 0.009438413195312023, + 0.0017872242024168372, + 0.04541652277112007, + -0.010064525529742241, + -0.01740032248198986, + 0.012251246720552444, + -0.021287826821208, + 0.035155750811100006, + 0.031268246471881866, + 0.021194376051425934, + -0.061714138835668564, + 0.05042542144656181, + -0.04227661341428757, + 0.03210929408669472, + 0.01761525496840477, + 0.025194020941853523, + 0.012101727537810802, + 0.0006196878966875374, + -0.00597610417753458, + -0.00019653626077342778, + -0.022371841594576836, + -0.012045658193528652, + -0.02807226963341236, + -0.037099502980709076, + -0.03936098515987396, + 0.02751157246530056, + 0.0026095809880644083, + 0.008602038957178593, + -0.0028338602278381586, + 0.004032351542264223, + -0.016652723774313927, + -0.005406061187386513, + -0.0009222310618497431, + 0.03416518494486809, + 0.018970275297760963, + 0.010298149660229683, + 0.05438768491148949, + -0.005677065346390009, + 0.023717517033219337, + -0.01447534840553999, + 0.04657529667019844, + -0.012419456616044044, + 0.009153391234576702, + 0.012886704877018929, + 0.030857069417834282, + 0.02773585170507431, + -0.040781419724226, + 0.01578364335000515, + 0.09187968075275421, + -0.02990388311445713, + 0.013839890249073505, + 0.0005560253048315644, + -0.06384479254484177, + -0.010382254607975483, + 0.0025535111781209707, + 0.019250623881816864, + -0.030427200719714165, + -0.019213244318962097, + 0.016316305845975876, + 0.03100658766925335, + 0.02652100659906864, + -0.008069375529885292, + -0.015624778345227242, + -0.002667987020686269, + -0.026464935392141342, + 0.009672037325799465, + 0.029978642240166664, + 0.0031282263807952404, + -0.0003816833486780524, + -0.027100393548607826, + 0.007578765042126179, + 0.006994705181568861, + -0.07737629860639572, + 0.04485582560300827, + 0.015624778345227242, + -0.02973567321896553, + -0.021998044103384018, + 0.03556692972779274, + -0.03689391538500786, + 0.0202224999666214, + -0.031698115170001984, + -0.00019230182806495577, + 0.03323068842291832, + 0.05330367013812065, + 0.007504005450755358, + -0.01272783987224102, + -0.022203633561730385, + -0.010457013733685017, + 0.015503293834626675, + 0.04608935862779617, + -0.06500356644392014, + 0.03323068842291832, + 0.03390352800488472, + 0.019157174974679947, + -0.024801531806588173, + -0.005317284259945154, + -0.0061910380609333515, + -0.03928622603416443, + -0.03508099168539047, + 0.0634709894657135, + -0.015279014594852924, + 0.004793966189026833, + -0.02584816887974739, + 0.04623887687921524, + 0.0014169301139190793, + 0.023923106491565704, + 0.005172437056899071, + -1.2374775906209834e-05, + -0.01236338634043932, + 0.03407173603773117, + -0.023605376482009888, + -0.05917230620980263, + 0.013727751560509205, + 0.03685653582215309, + -0.02207280322909355, + -0.016867658123373985, + -0.04511748254299164, + 0.023381099104881287, + -0.06384479254484177, + -0.02216625213623047, + -0.012858669273555279, + -0.047098614275455475, + 0.016092026606202126, + 0.047659311443567276, + -0.004910778254270554, + -0.04141687601804733, + 0.05023852363228798, + -0.04769669100642204, + 0.004639774095267057, + 0.003410911653190851, + 0.007793699391186237, + 0.08432894945144653, + 0.02151210606098175, + 0.06317195296287537, + 0.028875935822725296, + -0.038314349949359894, + -0.018147919327020645, + -0.0395478829741478, + 0.010242079384624958, + 0.010597188025712967, + -0.012924084439873695, + 0.04261303320527077, + 0.022596120834350586, + 0.04339801147580147, + 0.013269848190248013, + -0.0003501440805848688, + 0.01816660910844803, + 0.023885726928710938, + -0.03523050993680954, + -0.006606888957321644, + -0.016250891610980034, + -0.0436970479786396, + 0.026091137900948524, + 0.0323522612452507, + 0.036875225603580475, + -0.037977930158376694, + -0.0218485239893198, + 0.012512905523180962, + -0.007999288849532604, + -0.04466892406344414, + -0.01856844127178192, + 0.021269137039780617, + -0.018521716818213463, + 0.01475569698959589, + -0.01883944682776928, + -0.01816660910844803, + -0.01158775482326746, + 0.00710217235609889, + 0.055546462535858154, + 0.0030067418701946735, + -0.014867836609482765, + -0.0005814319592900574, + 0.052556075155735016, + -0.029548773542046547, + 0.0328008197247982, + 0.0012452163500711322, + 0.028147028759121895, + 0.0006798460963182151, + -0.012737184762954712, + 0.010513084009289742, + 0.029100215062499046, + 0.04250089451670647, + 0.006032173987478018, + -0.01164382416754961, + -0.020091671496629715, + 0.02418476529419422, + 0.012914739549160004, + 0.06014418229460716, + -0.035641688853502274, + 0.03734247386455536, + -0.03635190799832344, + 0.04029548168182373, + 0.020577609539031982, + -0.07102172076702118, + -0.0427999310195446, + 0.0014110894408077002, + -0.012297972105443478, + 0.020652368664741516, + -0.008279637433588505, + 0.05879851058125496, + -0.007326451130211353, + -0.022857779636979103, + 0.031698115170001984, + 0.006270470563322306, + -0.15146316587924957, + 0.05924706906080246, + 0.009517844766378403, + 0.016372375190258026, + 0.005406061187386513, + 0.03599679842591286, + -0.04272517189383507, + -0.009606622159481049, + -0.042538274079561234, + -0.07457280904054642, + -0.05285511165857315, + -0.06889107078313828, + -0.0024787515867501497, + 0.008260947652161121, + -0.0217363853007555, + 0.0055322181433439255, + -0.02323157899081707, + 0.02917497605085373, + 0.031604666262865067, + -0.03530527278780937, + 0.0034763263538479805, + 0.04141687601804733, + 0.07333926856517792, + -0.04836953058838844, + -0.029025455936789513, + -0.027268603444099426, + 0.029193665832281113, + 0.018858136609196663, + -0.011699894443154335, + 0.045603420585393906, + -0.017026523128151894, + -0.04818263277411461, + -0.011438234709203243, + 0.07752581685781479, + -0.006401299964636564, + 0.01578364335000515, + 0.01661534421145916, + -0.046276260167360306, + 0.010513084009289742, + -0.027380742132663727, + 0.022353151813149452, + 0.03780972212553024, + -0.010214044712483883, + -0.02495105192065239, + -0.01358757633715868, + -0.03969740495085716, + -0.00017682422185316682, + -0.04941616579890251, + 0.01917586475610733, + 0.014223034493625164, + 0.0307823084294796, + -0.014157619327306747, + 0.00988697074353695, + -0.059770386666059494, + -0.0202785711735487, + -0.00016528903506696224, + 0.006279815454035997, + 0.07049840688705444, + -0.04874332994222641, + 0.025978997349739075, + -0.05079922080039978, + -0.07285333424806595, + 0.02995995245873928, + -0.014428623020648956, + 0.002562856301665306, + -0.010288804769515991, + -0.0029249736107885838, + -0.05057494342327118, + 0.04306159168481827, + -0.04810786992311478, + 0.025810789316892624, + 0.04511748254299164, + 0.020185120403766632, + 0.01700783334672451, + 0.02106354758143425, + 0.031548596918582916, + -5.515718657989055e-05, + -0.04306159168481827, + -0.004836018662899733, + -0.10092560201883316, + -0.02033464051783085, + 0.02044677920639515, + 0.002974034519866109, + -0.0110924718901515, + -0.0405571423470974, + -0.011821378953754902, + 0.004265975672751665, + 0.010933606885373592, + 0.04186543449759483, + 0.19826273620128632, + 0.06063012033700943, + 0.02867034822702408, + -0.04870595037937164, + 0.01683962345123291, + -0.034595053642988205, + 0.011241991072893143, + 0.034426845610141754, + 0.014783731661736965, + -0.02745550312101841, + -0.010223389603197575, + 0.03822090104222298, + 0.008821645751595497, + 0.008134790696203709, + 0.00928422063589096, + 0.0436970479786396, + 0.013923995196819305, + 0.0331372395157814, + 0.07255429774522781, + -0.03207191452383995, + -0.024764152243733406, + 0.03822090104222298, + 0.010531773790717125, + 0.010858847759664059, + -0.0417906753718853, + -0.07113385945558548, + -0.026932183653116226, + 0.020409399643540382, + 0.004312700591981411, + -0.0017626937478780746, + -0.014288448728621006, + 0.015465914271771908, + 0.03534265235066414, + -0.028109649196267128, + -0.034034356474876404, + 0.013550196774303913, + -0.053939130157232285, + -0.018708616495132446, + 0.05603240057826042, + 0.023044679313898087, + -0.012400765903294086, + -0.044369887560606, + -0.05820043012499809, + 0.03857600688934326, + -0.000954354356508702, + -0.0422392338514328, + -0.009662692435085773, + 0.007807716727256775, + -0.006036846432834864, + -0.0016096698818728328, + -0.04952830448746681, + 0.010186010040342808, + -0.07737629860639572, + -0.005158419720828533, + -0.02773585170507431, + 0.012690460309386253, + -0.0023479219526052475, + -0.022820400074124336, + 0.0026539696846157312, + -0.010298149660229683, + 0.048481669276952744, + -0.023044679313898087, + -0.04590246081352234, + 0.008345052599906921, + 0.015503293834626675, + -0.003347833175212145, + -0.00905526988208294, + 0.013494127430021763, + 0.011241991072893143, + 0.01317639835178852, + 0.00278479908592999, + 0.008742213249206543, + -0.015353774651885033, + 0.05517266318202019, + 0.033978287130594254, + -0.029361875727772713, + 0.0018117547733709216, + 0.05524742230772972, + -0.018101194873452187, + -0.011326096020638943, + -0.04478106275200844, + -0.01805446855723858, + -0.019923461601138115, + -0.0016213511116802692, + -0.012597010470926762, + -0.008667453192174435, + 0.03250178322196007, + 0.007134879473596811, + -0.054761484265327454, + 0.016475170850753784, + 0.00018923550669569522, + 0.052331794053316116, + -0.01200827769935131, + 0.034931473433971405, + -0.022128872573375702, + -0.024932362139225006, + -0.07210573554039001, + -0.03410911560058594, + 0.01561543345451355, + -0.02255874127149582, + -0.0322401225566864, + -0.0417906753718853, + -0.00485003599897027, + -0.0110083669424057, + -0.007812389172613621, + 0.04885546863079071, + 0.0007464289665222168, + 0.0038571336772292852, + -0.017690015956759453, + -0.013344607315957546, + 0.0436970479786396, + 0.027642400935292244, + 0.04623887687921524, + -0.06048060208559036, + -0.03089444898068905, + 0.04489320516586304, + -0.05700427666306496, + 0.03780972212553024, + 0.03463243320584297, + 0.038164831697940826, + -0.010550463572144508, + -0.045042723417282104, + -0.021941974759101868, + -0.024913672357797623, + -0.023810965940356255, + -0.021138306707143784, + 0.01186810340732336, + -0.029586153104901314, + -0.045379143208265305, + 0.056107159703969955, + -0.028446068987250328, + -0.031100038439035416, + -0.00716758705675602, + 0.013129673898220062, + 0.029492704197764397, + 0.04907974600791931, + 0.088739775121212, + -0.017148008570075035, + 0.015176220797002316, + -0.017419012263417244, + 0.0033384880516678095, + -0.014606177806854248, + 0.02661445550620556, + -0.0421270951628685, + 0.01588643714785576, + -0.07599323987960815, + -0.016877003014087677, + 0.016549929976463318, + 0.004747241269797087, + 0.08036668598651886, + 0.010083215311169624, + 0.015578053891658783, + 0.04197757691144943, + -0.04601459950208664, + 0.012326006777584553, + -0.051771096885204315, + -0.01984870247542858, + -0.030931828543543816, + -0.016409754753112793, + -0.014802422374486923, + 0.013185743242502213, + -0.004223923198878765, + 0.03330544754862785, + -0.00975614134222269, + 0.03334283083677292, + 0.025380920618772507, + 0.006359247490763664, + 0.034090425819158554, + -0.011578409932553768, + -0.002520803827792406, + -0.0440334677696228, + -0.004681826569139957, + -0.04807049036026001, + 0.04261303320527077, + 0.005406061187386513, + 0.04795835167169571, + 0.004235604777932167, + -0.040370240807533264, + -0.002061732579022646, + 0.05812567099928856, + 0.003653880674391985, + 0.023025989532470703, + -0.015101460739970207, + -0.022483982145786285, + -0.009008544497191906, + 0.04096831753849983, + -0.016204167157411575, + 0.005046280100941658, + -0.031492527574300766, + -0.023418478667736053, + -0.009330946020781994, + 0.08350659161806107, + 0.007144224364310503, + 0.0076301624067127705, + 0.01078408770263195, + 0.025268780067563057, + 0.020091671496629715, + 0.04986472427845001, + 0.005345318932086229, + 0.015297705307602882, + 0.0029132922645658255, + -0.039323605597019196, + 0.044257745146751404, + 0.004373442847281694, + 0.009830901399254799, + -0.05094873905181885, + -0.007092826999723911, + -0.008620728738605976, + -0.0041351462714374065, + -0.025661269202828407, + -0.0030558030121028423, + 0.02001691237092018, + -0.04519224166870117, + 0.006873220670968294, + -0.0029132922645658255, + -0.0036678980104625225, + 0.03739854320883751, + 0.022820400074124336, + 0.016129406169056892, + -0.021213067695498466, + 0.03446422517299652, + -0.03295034170150757, + 0.026147207245230675, + -0.009662692435085773, + -0.009036579169332981, + -0.028875935822725296, + -0.004751913715153933, + 0.009045924060046673, + -0.00556959817185998, + 0.007443263195455074, + 0.011316750198602676, + 0.05307939276099205, + -0.01583036780357361, + -0.03360448777675629, + 0.052481312304735184, + 0.05853684991598129, + 0.002971698297187686, + 0.018755340948700905, + 0.0011833059834316373, + 0.011410200037062168, + 0.006237762980163097, + -0.0005893167690373957, + 0.0651530846953392, + 0.0334736593067646, + -0.0013573559699580073, + 0.045379143208265305, + -0.07124599814414978, + -0.016353685408830643, + 0.030146852135658264, + 0.023381099104881287, + 0.03616500645875931, + 0.025250090286135674, + 0.05640619993209839, + -0.02695087343454361, + 0.005578943062573671, + -0.020054291933774948, + -0.03308117017149925, + -0.011101816780865192, + -0.013540851883590221, + 0.014353863894939423, + 0.003198313759639859, + 0.033436279743909836, + -0.0010407952358946204, + 0.006256452761590481, + 0.01289604976773262, + -0.06892845034599304, + 0.03694998472929001, + 0.010260770097374916, + 0.01267177052795887, + -0.05550908297300339, + -0.047771453857421875, + -0.026913493871688843, + 1.4190837646310683e-05, + -0.012316661886870861, + 0.021437345072627068, + -0.03728640452027321, + -0.04657529667019844, + 0.03063279017806053, + 0.02500712126493454, + 0.008031995967030525, + -0.01896093040704727, + -0.025717338547110558, + -0.016643378883600235, + 0.003231021109968424, + 0.007195621728897095, + -0.005564925726503134, + 0.029773052781820297, + -0.011980243027210236, + -0.016213512048125267, + 0.02123175747692585, + 0.030371131375432014, + -0.014737007208168507, + -0.001626023673452437, + 0.008373087272047997, + -0.025586510077118874, + 0.04496796429157257, + -0.024652013555169106, + 0.015680847689509392, + 0.00906461477279663, + -0.0011208115611225367, + 0.02255874127149582, + 0.010578498244285583, + -0.04724813625216484, + -0.028277859091758728, + -0.0018397896783426404, + -0.017493771389126778, + -0.02216625213623047, + -0.005887326784431934, + 0.024296903982758522, + -0.009728106670081615, + 0.04422036558389664, + -0.0799928829073906, + 0.03194108605384827, + 0.0160079225897789, + 0.024969741702079773, + 0.030595410615205765, + 0.026371486485004425, + -0.006293832790106535, + 0.0014718316961079836, + -0.01244749128818512, + -0.0441456064581871, + 0.025810789316892624, + -0.014998666010797024, + 0.0039856270886957645, + -0.05251869559288025, + -0.01122330129146576, + -0.06048060208559036, + 0.008017978630959988, + -0.014092205092310905, + -0.015643468126654625, + -0.014905216172337532, + -0.012718494981527328, + -0.005723790265619755, + 0.0012849324848502874, + 0.02807226963341236, + -0.014073514379560947, + 0.021642934530973434, + -0.04029548168182373, + 0.009139373898506165, + -0.042313992977142334, + 0.002782462863251567, + -0.008503916673362255, + -0.01833481714129448, + 0.00020252287504263222, + 0.021493416279554367, + -0.05614453926682472, + -0.03528658300638199, + 0.012597010470926762, + 0.02272695116698742, + 0.0015594407450407743, + -0.019474903121590614, + -0.02728729322552681, + -0.00858334917575121, + -0.048930227756500244, + 9.354089343105443e-06, + 0.008387104608118534, + -0.034707192331552505, + -0.056555718183517456, + 0.0048733982257544994, + 0.04478106275200844, + -0.003252047346904874, + 0.026502316817641258, + -0.07789961248636246, + 0.03472588211297989, + 0.010793432593345642, + 0.020708438009023666, + 0.006527456920593977, + 0.018493682146072388, + 0.01417630910873413, + -0.014232379384338856, + 0.0006150153931230307, + -0.026464935392141342, + -0.010485048405826092, + 0.06085440143942833, + 0.002150509739294648, + 0.017970364540815353, + -0.03536134213209152, + 0.002352594630792737, + 0.013241812586784363, + 0.0071722595021128654, + -0.027810610830783844, + -0.007887149229645729, + -0.0024904327001422644, + -0.01805446855723858, + 0.0032824184745550156, + -0.010653258301317692, + -0.0438091866672039, + 0.00978417694568634, + -0.027081703767180443, + 0.02151210606098175, + -0.05180847644805908, + 0.010017801076173782, + -0.020428089424967766, + 0.0632467120885849, + -0.12081168591976166, + 0.031081348657608032, + -0.009232823736965656, + -0.02796013094484806, + 0.028483448550105095, + 0.012241901829838753, + 0.00012418579717632383, + 0.0075554028153419495, + -0.012241901829838753, + -0.025997687131166458, + 0.016148095950484276, + 0.000724818732123822, + -0.02272695116698742, + -0.028745107352733612, + -0.029530083760619164, + 0.025717338547110558, + 0.027754541486501694, + -0.02796013094484806, + 0.004574359394609928, + 0.00984024628996849, + 0.01672748476266861, + -0.026035068556666374, + -0.009905661456286907, + -0.00437811529263854, + -0.009130029007792473, + -0.025306161493062973, + -0.013017534278333187, + -0.031025277450680733, + -0.01236338634043932, + -0.0003843116282951087, + -0.03351103886961937, + -0.050873979926109314, + 0.03980954363942146, + 0.023212889209389687, + 0.07113385945558548, + 0.03822090104222298, + 0.0402207225561142, + -0.0077142673544585705, + 0.009989765472710133, + 0.03590334951877594, + 0.05304201319813728, + -0.006480732001364231, + -0.002240455010905862, + 0.0065414742566645145, + 0.03072623908519745, + -0.00665361387655139, + -0.02818441018462181, + -0.001275587477721274, + -0.03356710821390152, + -0.011400855146348476, + -0.04552866145968437, + -0.0015839713159948587, + 0.007569420151412487, + 0.003859469899907708, + 0.01979263313114643, + 0.002453052904456854, + -0.07270381599664688, + 0.0020465468987822533, + 0.03541741147637367, + 0.08275899291038513, + -0.03457636386156082, + 0.0005668304511345923, + -0.014082860201597214, + -0.0017510125180706382, + 0.0027707815170288086, + -0.040706660598516464, + -0.041267357766628265, + -0.03117479756474495, + 0.0109242619946599, + 0.008345052599906921, + -0.04870595037937164, + -0.041491638869047165, + -0.04635101929306984, + -0.02573602832853794, + 0.026801355183124542, + -0.035043612122535706, + 0.03207191452383995, + -0.03924884647130966, + -0.0153911542147398, + -0.03197846561670303, + -0.020129051059484482, + -0.006807805970311165, + 0.027137773111462593, + 0.011774653568863869, + 0.036819156259298325, + 0.016204167157411575, + -0.030371131375432014, + 0.01672748476266861, + 0.06163937970995903, + 0.029698293656110764, + -0.03567906841635704, + -0.014568798243999481, + 0.0050322627648711205, + -0.0055742706172168255, + 0.010400944389402866, + 0.01861516758799553, + 0.030688859522342682, + -0.01711062714457512, + -0.01639106497168541, + -0.07789961248636246, + -0.04934140667319298, + 0.00984024628996849, + 0.01272783987224102, + -0.0026516334619373083, + -0.016820933669805527, + 0.014073514379560947, + 0.022540051490068436, + 0.003462309017777443, + 0.050051622092723846, + -0.013681026175618172, + -0.03590334951877594, + 0.0006570677505806088, + -0.041043080389499664, + -0.011232646182179451, + -0.017633946612477303, + -0.010709327645599842, + -0.0032590560149401426, + -0.011541029438376427, + -0.034595053642988205, + 0.024296903982758522, + 0.017045212909579277, + -0.01616678573191166, + 0.039772164076566696, + -0.01217648759484291, + 0.006013483740389347, + -0.05020114406943321, + 0.02050285041332245, + -0.002411000430583954, + -0.014596832916140556, + 0.021605554968118668, + 0.018802065402269363, + 0.010914917103946209, + -0.032090604305267334, + -0.001211340888403356, + -0.01862451247870922, + 0.023268958553671837, + -0.06530260294675827, + 0.04208971560001373, + -0.028427379205822945, + 0.0030534667894244194, + 0.005471475888043642, + 0.04489320516586304, + 0.03263261169195175, + -0.0662744790315628, + -0.003368859179317951, + 0.007723612245172262, + 0.012120417319238186, + -0.014288448728621006, + -0.0334736593067646, + -0.03166073560714722, + -0.01812922954559326, + 0.013942684978246689, + -0.01778346486389637, + -0.017241457477211952, + -0.007181604392826557, + 0.03635190799832344, + -0.004511280916631222, + -0.0017101282719522715, + -0.01005518063902855, + -0.019362764433026314, + -0.03741723299026489, + -0.06519046425819397, + -0.027418121695518494, + -0.014223034493625164, + -0.008041340857744217, + 0.017437702044844627, + -0.0004062138614244759, + 0.044930584728717804, + 0.00970007199794054, + 0.030090782791376114, + -0.04463154450058937, + 0.024652013555169106, + -0.012288627214729786, + 0.022689571604132652, + 0.0029296460561454296, + -0.03463243320584297, + 0.006018156185746193, + 0.0019180537201464176, + 0.04197757691144943, + -3.139323598588817e-05, + 0.02444642409682274, + 0.013624956831336021, + -0.0105598084628582, + 0.010756053030490875, + 0.016596654430031776, + 0.035492170602083206, + 0.03524920344352722, + 0.016409754753112793, + -0.005186454858630896, + -0.014559452421963215, + -0.008541296236217022, + -0.01330722775310278, + -0.012288627214729786, + 0.003917875699698925, + 0.04283731058239937, + -0.051658958196640015, + -0.005153747275471687, + 0.012886704877018929, + 0.03405304625630379, + 0.08417943120002747, + 0.05734069645404816, + 0.007807716727256775, + 0.011531684547662735, + -0.0016937745967879891, + -0.023025989532470703, + 0.012148451991379261, + 0.0001746339985402301, + 0.017362941056489944, + -0.010709327645599842, + 0.042575653642416, + -0.053154151886701584, + 0.036594875156879425, + -0.01417630910873413, + 0.028875935822725296, + -0.03517444059252739, + -0.029361875727772713, + -0.015157530084252357, + -0.04650053754448891, + -0.001488185371272266, + -0.018147919327020645, + -0.03711819276213646, + 0.0169050395488739, + 0.006092916242778301, + 0.04272517189383507, + 0.010307494550943375, + -0.010223389603197575, + -0.012297972105443478, + -0.010718672536313534, + 0.03719295561313629, + -0.027885369956493378, + 0.0013304891763255, + 0.07236739248037338, + 0.010391599498689175, + 0.024932362139225006, + 0.01923193410038948, + 0.04519224166870117, + -0.04552866145968437, + 0.024857603013515472, + -0.008130118250846863, + 0.026988254860043526, + 0.021287826821208, + 0.03610893711447716, + -0.02072712779045105, + 0.03868814930319786 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "润滑油压力骤降导致主机紧急停机", + "故障现象": "主机紧急停机", + "故障原因": "润滑油压力骤降", + "维修方案": "执行以下维修项目:MT001保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + -0.020744990557432175, + 0.01947217434644699, + -0.02659614197909832, + -0.027963943779468536, + -0.04213588684797287, + -0.03985621780157089, + 0.014960329979658127, + 0.03985621780157089, + 0.02131490781903267, + -0.011778291314840317, + -0.010609961114823818, + -0.01017302367836237, + 0.019272703677415848, + -0.016603590920567513, + 0.0351828970015049, + 0.00043634293251670897, + 0.0302056185901165, + 0.05573791265487671, + -0.019605156034231186, + 0.003452748991549015, + -0.010448483750224113, + 0.034612979739904404, + 0.03814646601676941, + -0.0002769441925920546, + -0.007033729460090399, + 0.053002309054136276, + -0.01684105582535267, + -0.004856170620769262, + 0.006174104288220406, + 0.01655609719455242, + 0.00481342663988471, + -0.023214632645249367, + -0.07196155935525894, + -0.017990389838814735, + -0.009166169911623001, + -0.028172912076115608, + -0.010676451027393341, + -0.028951799497008324, + -0.05680175870656967, + 0.004423982929438353, + -0.017221001908183098, + -0.006530302576720715, + 0.02577926032245159, + 0.01731598749756813, + -0.0014283552300184965, + -0.022511733695864677, + 0.001892600441351533, + -0.03305520489811897, + -0.024677420035004616, + -0.0031107987742871046, + -0.013421553187072277, + -0.037139613181352615, + 0.050570663064718246, + -0.04737912490963936, + 0.045935336500406265, + -0.012253222055733204, + -0.02519034594297409, + 0.0017145012971013784, + -0.036436714231967926, + -0.011702301912009716, + -0.04650525376200676, + 0.0049820272251963615, + -0.004034539684653282, + -0.005618434865027666, + 0.029749684035778046, + 0.09369440376758575, + 0.026805110275745392, + -0.017287492752075195, + -0.023290621116757393, + -0.029825672507286072, + -0.03351113945245743, + -0.017002534121274948, + -0.020858973264694214, + 0.006601542234420776, + -0.038013484328985214, + 0.047455113381147385, + 0.04893689975142479, + 0.017828913405537605, + 0.04589734226465225, + 0.01518829632550478, + 0.03252328187227249, + 0.01397247239947319, + -0.02988266386091709, + 0.057865604758262634, + -0.007898104377090931, + 0.02973068691790104, + -0.010325002484023571, + -0.018845265731215477, + -0.0031559171620756388, + -0.04509945586323738, + 0.030794532969594002, + 0.013231580145657063, + 0.002626369008794427, + -0.007114467676728964, + -0.010771437548100948, + 0.0445675328373909, + -0.011749795638024807, + -0.01152182836085558, + 0.03645570948719978, + -0.011939767748117447, + 0.02175184339284897, + 0.019234709441661835, + 0.009674346074461937, + -0.029749684035778046, + 0.0448714904487133, + 0.0008928704774007201, + 0.0589294508099556, + 0.027640989050269127, + -0.0019234709907323122, + -0.010287007316946983, + -0.014304924756288528, + 0.03955226019024849, + 0.013697013258934021, + -0.028894808143377304, + -0.04240184649825096, + -0.055813901126384735, + 0.001319121103733778, + -0.03970424085855484, + 0.06618639826774597, + -0.025133352726697922, + 0.027640989050269127, + 0.03772852569818497, + 0.025380317121744156, + -0.011274863965809345, + 0.001615953049622476, + 0.01200625766068697, + 0.03246628865599632, + 0.00036777477362193167, + 0.02363257110118866, + 0.023556582629680634, + 0.0017738676397129893, + 0.03438501060009003, + -0.025798257440328598, + 0.008752980269491673, + -0.03535386919975281, + -0.017714930698275566, + -0.009265905246138573, + 0.02070699632167816, + -0.017619943246245384, + -0.06261491775512695, + 0.006292837206274271, + 0.05486404150724411, + -0.0044287326745688915, + 0.03134545311331749, + 0.010097035206854343, + -0.06413469463586807, + 0.044149596244096756, + -0.00250288681127131, + 0.003198660910129547, + -0.03791849687695503, + -0.02017507329583168, + -0.025608284398913383, + -0.0009658911149017513, + 0.025323325768113136, + -0.032390300184488297, + 0.00976458378136158, + -0.016385123133659363, + 0.022644715383648872, + -0.013981971889734268, + 0.022416748106479645, + 0.025437310338020325, + 0.02562728151679039, + 0.003946677315980196, + 0.012158236466348171, + -0.01742997206747532, + -0.014551889151334763, + 0.04243984445929527, + 0.010875921696424484, + -0.023556582629680634, + -0.01014452800154686, + 0.03311219438910484, + -0.048480965197086334, + -0.016860054805874825, + -0.014713365584611893, + 0.0122437234967947, + 0.019890114665031433, + 0.06797213852405548, + 0.013991470448672771, + 0.006815261207520962, + -0.005333476234227419, + -0.04190792143344879, + 0.05281233787536621, + 0.018864262849092484, + -0.005490203388035297, + -0.03523988649249077, + 0.03647470846772194, + 0.06428667157888412, + -0.01313659455627203, + 0.011312859132885933, + 0.004395487252622843, + -0.012557177804410458, + 0.008240054361522198, + -0.026786113157868385, + 0.006007878575474024, + 0.06664232909679413, + -0.012880131602287292, + 0.05699172988533974, + -0.010135029442608356, + 0.01887376233935356, + 0.007280693855136633, + -0.03128845989704132, + -0.014532891102135181, + 0.021884825080633163, + -0.007123966235667467, + -0.022359756752848625, + -0.00046751031186431646, + 0.006933994125574827, + -0.07237949967384338, + 0.02923675812780857, + -0.0058748978190124035, + 0.022150786593556404, + -0.009123425930738449, + -0.0017869282746687531, + 0.003476495621725917, + -0.07978842407464981, + 0.033967070281505585, + 0.01919671520590782, + -0.03278924152255058, + -0.008192561566829681, + 0.0046187047846615314, + -0.03706362098455429, + 0.0302056185901165, + -0.030566565692424774, + -0.03377709910273552, + 0.032390300184488297, + 0.0020932587794959545, + -0.010495977476239204, + 0.05228041484951973, + -0.005680175963789225, + -0.019301200285553932, + -0.016166655346751213, + -0.024411458522081375, + 0.004314749035984278, + -0.0015791459009051323, + 0.08001638948917389, + 0.016736572608351707, + -0.011369850486516953, + 0.00814981758594513, + 0.027071071788668633, + 0.04107204079627991, + -0.023651568219065666, + -0.015577740035951138, + 0.018921254202723503, + 0.004499972332268953, + -0.056079864501953125, + -0.0030941760633140802, + 0.05816956236958504, + -0.007651139982044697, + -0.032561276108026505, + -0.008976197801530361, + -0.012680660001933575, + -0.038488417863845825, + -0.025399314239621162, + 0.015150302089750767, + 0.01171180047094822, + 0.02600722759962082, + -0.003120297333225608, + -0.0037377076223492622, + -0.012443195097148418, + -0.0016705701127648354, + 0.011502831242978573, + 0.027773970738053322, + -0.001765556400641799, + -0.0029398235492408276, + 0.0006073181284591556, + 0.01581520587205887, + -0.0007978842477314174, + 0.026425166055560112, + -0.046315278857946396, + 0.0322573184967041, + -0.062386948615312576, + 0.0015328400768339634, + 0.016651084646582603, + 0.03216233476996422, + 0.015017321333289146, + 0.023594576865434647, + -0.036170750856399536, + -0.016480108723044395, + 0.00833978969603777, + 0.005153002217411995, + -0.0055994377471506596, + -0.02691909484565258, + 0.03381509333848953, + -0.0019769007340073586, + 0.008059580810368061, + -0.005219492595642805, + -0.07386128604412079, + 0.0034931180998682976, + -0.012509685009717941, + 0.002602622378617525, + -0.02902778796851635, + -0.020270058885216713, + 0.06895999610424042, + -0.005352473352104425, + -0.006568297278136015, + 0.000525095674674958, + 0.01194926630705595, + -0.16428816318511963, + 0.012766147963702679, + -0.009560363367199898, + 0.0064068203791975975, + -0.01394397672265768, + 0.02439246140420437, + -0.048632945865392685, + -0.019491171464323997, + -0.03220032900571823, + -0.00296119530685246, + -0.01947217434644699, + -0.046961188316345215, + 0.010106533765792847, + -0.029958654195070267, + -0.017439469695091248, + -0.01526428572833538, + 0.01240519993007183, + 0.016689078882336617, + 0.043883632868528366, + -0.02061200886964798, + -0.0135640325024724, + 0.0338720865547657, + 0.0428197868168354, + -0.041679952293634415, + -0.01894025132060051, + -0.013668516650795937, + 0.03656969591975212, + 0.01133185625076294, + -0.023803547024726868, + -0.019168218597769737, + -0.0019365315092727542, + -0.046315278857946396, + -0.016423117369413376, + 0.06550249457359314, + 0.04521343857049942, + 0.014741861261427402, + 0.05573791265487671, + -0.03214333578944206, + -0.001294187270104885, + 0.008040583692491055, + 0.020270058885216713, + 0.02779296785593033, + 0.009090181440114975, + 0.008705486543476582, + 0.005851150956004858, + -0.038602400571107864, + 0.023765552788972855, + -0.05919541046023369, + 0.02292967401444912, + -0.003167790360748768, + 0.03917231783270836, + -0.022093795239925385, + 0.03560083359479904, + -0.0042696306481957436, + -0.017192505300045013, + 0.023651568219065666, + 0.004321873188018799, + 0.03909632936120033, + -0.0633368119597435, + -0.030414586886763573, + -0.07804067432880402, + -0.018531810492277145, + 0.012177233584225178, + -0.0017691183602437377, + -0.07177158445119858, + 0.003317393595352769, + -0.03406205773353577, + 0.017771922051906586, + 0.040160171687603, + -0.02950271964073181, + -0.008197310380637646, + -0.028039932250976562, + 0.05163450911641121, + -0.004668572451919317, + -0.007470665965229273, + 0.018199359998106956, + -0.021162929013371468, + -0.04088206961750984, + -0.004046413116157055, + -0.12348208576440811, + -0.007950346916913986, + 0.036607690155506134, + 0.008430027402937412, + -0.03408105671405792, + -0.014019966125488281, + -0.014038963243365288, + -0.005067514721304178, + 0.03328317031264305, + 0.02498137578368187, + 0.21656857430934906, + 0.04224986955523491, + -0.031326454132795334, + -0.03240929916501045, + 0.0302056185901165, + -0.05334426090121269, + 0.006292837206274271, + 0.00036094762617722154, + 0.041793935000896454, + -0.03727259114384651, + -0.021713849157094955, + -0.004082032945007086, + 0.021124934777617455, + 0.0003395757230464369, + -0.00047819624887779355, + -0.03058556281030178, + -0.0038896857295185328, + -0.0018284847028553486, + 0.0996975377202034, + -0.03161141276359558, + 0.046315278857946396, + 0.06257691979408264, + -0.01731598749756813, + -0.02583625167608261, + -0.023974521085619926, + -0.028514863923192024, + -0.007746126037091017, + 0.044263578951358795, + -0.025665275752544403, + 0.03383409231901169, + -0.051824480295181274, + 0.03732958436012268, + 0.059271398931741714, + 0.012918125838041306, + -0.0404641292989254, + 0.006335580721497536, + -0.019776130095124245, + -0.040160171687603, + 0.021998807787895203, + 0.02805892936885357, + -0.050950609147548676, + -0.010429486632347107, + -0.025988230481743813, + 0.03328317031264305, + 0.00998305156826973, + -0.028666840866208076, + -0.042059898376464844, + -0.012823139317333698, + -0.008648495189845562, + 0.008947702124714851, + -0.018113872036337852, + 0.005062765441834927, + -0.060069285333156586, + 0.008705486543476582, + -0.039134323596954346, + -0.012281717732548714, + -0.0012751900358125567, + -0.006558798253536224, + 0.006573046557605267, + 0.026520151644945145, + -0.03168740123510361, + 0.04190792143344879, + -0.07298740744590759, + -0.0006637162296101451, + 0.005646930541843176, + 0.02114393189549446, + -0.023974521085619926, + 0.0306425541639328, + 0.03246628865599632, + 0.021618863567709923, + -0.0038944350089877844, + 0.03322618082165718, + 0.01345954742282629, + 0.04532742500305176, + 0.02234075963497162, + -0.01844632439315319, + -0.018683789297938347, + 0.12446994334459305, + -0.033150192350149155, + -0.03366311639547348, + -0.02955971099436283, + 0.004756434820592403, + -0.04935484007000923, + -0.026349177584052086, + 0.012519183568656445, + 0.01802838407456875, + 0.03273225203156471, + 0.05463607236742973, + -0.023404603824019432, + -0.0004336714628152549, + -0.014561387710273266, + 0.019814126193523407, + 0.003509740810841322, + 0.02196081355214119, + -0.00890020839869976, + 0.013896483927965164, + 0.0027379777748137712, + -0.03334016352891922, + -0.0009516431600786746, + 0.04004618898034096, + -0.0031155480537563562, + -0.05406615510582924, + 0.01378250028938055, + -0.0006951803807169199, + -0.013250577263534069, + 0.023537585511803627, + 0.030034642666578293, + -0.004044038243591785, + 0.025209343060851097, + 0.008259051479399204, + 0.024240482598543167, + 0.025931237265467644, + 0.02325262688100338, + -0.019006742164492607, + 0.007978842593729496, + 0.04494747892022133, + -0.017410973086953163, + 0.029901660978794098, + 0.032770246267318726, + 0.03909632936120033, + -0.05642181262373924, + -0.04943082854151726, + 0.004298126325011253, + -0.038279447704553604, + -0.010761938989162445, + -0.011559822596609592, + -0.017230499535799026, + -0.024050511419773102, + 0.032124340534210205, + 0.042705804109573364, + -0.02536132000386715, + -0.005471206270158291, + -0.01008753664791584, + 0.028343887999653816, + 0.014247932471334934, + 0.005770412739366293, + 0.029863666743040085, + -0.0016646335134282708, + 0.034309022128582, + 0.05129255726933479, + 0.025494301691651344, + -0.031193474307656288, + -0.01958615891635418, + 0.0018106747884303331, + -0.010771437548100948, + -0.05186247453093529, + 0.006734522990882397, + -0.020801981911063194, + -0.03351113945245743, + 0.042591821402311325, + 0.018949750810861588, + 0.02439246140420437, + -0.006601542234420776, + -0.042059898376464844, + -0.017562951892614365, + -0.030832527205348015, + -0.007722379639744759, + -0.010638456791639328, + -0.010457982309162617, + -0.01937718875706196, + 0.02471541427075863, + -0.012756649404764175, + 0.045783355832099915, + 0.03808947280049324, + 0.024240482598543167, + 0.0413380041718483, + -0.00337201077491045, + 0.0035168647300451994, + 0.02676711603999138, + -0.007199955638498068, + -0.011958764865994453, + -0.01683155819773674, + -0.027052074670791626, + -0.00998305156826973, + -0.006829509045928717, + 0.04088206961750984, + -0.016974037513136864, + 0.018978247418999672, + -0.00041200272971764207, + 0.048252999782562256, + 0.043997615575790405, + 0.016594093292951584, + -0.03808947280049324, + 0.04073008894920349, + -0.010581464506685734, + -0.009042687714099884, + -0.017344484105706215, + -0.007133465260267258, + -0.01970014162361622, + -0.0013084352249279618, + -0.014979327097535133, + 0.08746331185102463, + -0.014010467566549778, + -0.005053266882896423, + 0.04111003503203392, + 0.014133949764072895, + 0.02108694054186344, + 0.03539186343550682, + 0.03932429477572441, + 0.011797288432717323, + -0.010714445263147354, + -0.02481039986014366, + -0.008563007228076458, + -0.021428890526294708, + -0.0026524902787059546, + -0.037253595888614655, + -0.013269574381411076, + 0.00536672119051218, + 0.014276429079473019, + -0.0037757023237645626, + -0.003151167882606387, + -0.0007325811893679202, + 0.02099195495247841, + 0.02955971099436283, + 0.029578708112239838, + -0.0049012890085577965, + 0.06641436368227005, + 0.05266036093235016, + -0.024259479716420174, + 0.0014889090089127421, + 0.024468449875712395, + -0.028932802379131317, + 0.03727259114384651, + -0.02691909484565258, + 0.0006180040654726326, + -0.0214098934084177, + -0.00841577909886837, + -0.025000372901558876, + 0.06725024431943893, + 0.022207777947187424, + 0.014029464684426785, + 0.057865604758262634, + 0.016423117369413376, + -0.04122401773929596, + 0.0177434254437685, + 0.021922819316387177, + 0.013554533943533897, + 0.034328021109104156, + 0.040388140827417374, + -0.02794494479894638, + -0.010999403893947601, + -0.002339035738259554, + -0.023347612470388412, + 0.003462247783318162, + -0.02287268079817295, + 0.002707107225432992, + -0.025589287281036377, + -0.005399966612458229, + 0.04730313643813133, + 0.027470014989376068, + 0.010856924578547478, + 0.07108768820762634, + 0.013478544540703297, + -0.05022871121764183, + -0.04304775595664978, + 0.03284623473882675, + 0.0043052504770457745, + -0.018740780651569366, + -0.05380019545555115, + 0.01001154724508524, + 0.003132170531898737, + 0.05205244943499565, + -0.0072996909730136395, + 0.005575690884143114, + -0.004716065712273121, + -0.07758474349975586, + 0.0445675328373909, + 0.023936526849865913, + -0.0033292670268565416, + -0.01486534345895052, + -0.02724204771220684, + -0.04008418321609497, + -0.05767563357949257, + 0.016736572608351707, + 0.03981822356581688, + -0.010315502993762493, + 0.021656857803463936, + 0.008928705006837845, + 0.00667753117159009, + -0.01970014162361622, + -0.06565447151660919, + 0.02211279235780239, + -0.036816660314798355, + 0.0015767712611705065, + 0.020099084824323654, + 0.020517023280262947, + 0.05604187026619911, + -0.012414698489010334, + -0.017183007672429085, + 0.004440605640411377, + 0.02993965707719326, + -0.010923415422439575, + -0.03318818658590317, + 0.04084407538175583, + -0.03465097397565842, + 0.01812337152659893, + -0.02011808194220066, + 0.020839976146817207, + -0.007836363278329372, + 0.015767712146043777, + 0.0056136855855584145, + 0.0560038760304451, + -0.023746555671095848, + -0.007214203476905823, + -0.037253595888614655, + -0.00431712344288826, + -0.029597705230116844, + -0.014314423315227032, + 0.032675258815288544, + 0.018322842195630074, + 0.007109718397259712, + -0.07978842407464981, + 0.006867503747344017, + 0.05459807813167572, + 0.016926543787121773, + 0.027527006343007088, + 0.002809217432513833, + 0.028343887999653816, + 0.02275869809091091, + 0.016651084646582603, + 0.011341354809701443, + 0.027166059240698814, + -0.004697068594396114, + -0.022397750988602638, + -0.014941331930458546, + 0.01677456684410572, + -0.021485881879925728, + 0.027204053476452827, + 0.02158086933195591, + -0.016917046159505844, + -0.024506444111466408, + 0.012376704253256321, + -0.002296291757375002, + -0.010714445263147354, + 0.03043358400464058, + 0.0116548091173172, + 0.006701277568936348, + -0.06664232909679413, + 0.00044999722740612924, + -0.042591821402311325, + 0.05000074580311775, + -0.0326942577958107, + -0.022321760654449463, + -0.005646930541843176, + 0.021295910701155663, + 0.0022654214408248663, + -0.010467481799423695, + -0.01678406447172165, + 0.008173564448952675, + 0.018655292689800262, + -0.015872197225689888, + -0.04380764439702034, + -0.023480594158172607, + -0.0203840434551239, + -0.01608116738498211, + -0.014114951714873314, + -0.03917231783270836, + 0.023499591276049614, + 0.006288087926805019, + 0.00023509089078288525, + 0.01958615891635418, + 0.030034642666578293, + -0.017885904759168625, + -0.00245539378374815, + 0.021656857803463936, + 0.06337480247020721, + 0.012281717732548714, + 0.05250838026404381, + 0.036778662353754044, + -0.017448969185352325, + -0.007964594289660454, + -0.004331371746957302, + -0.023822544142603874, + 0.0359237864613533, + 0.0029421981889754534, + 0.017733927816152573, + -0.018522312864661217, + -0.001513842842541635, + 0.00847277045249939, + -0.034442003816366196, + -0.0056944238021969795, + -0.04646725952625275, + 0.0034456250723451376, + -0.01662258803844452, + 0.02503836713731289, + -0.016271138563752174, + -0.06261491775512695, + -0.0015577740268781781, + 0.012899128720164299, + 0.0003520426689647138, + -0.03339715301990509, + -0.008392032235860825, + -0.044149596244096756, + 0.02821090631186962, + -0.16231244802474976, + -0.00962685327976942, + -0.006387823261320591, + -0.024943381547927856, + -0.019662147387862206, + 0.0019139723153784871, + -0.016100164502859116, + -0.01694554090499878, + -0.014162445440888405, + -0.04483349621295929, + 0.00018982401525136083, + 0.017619943246245384, + -0.0011012464528903365, + -0.014466401189565659, + -0.03425202891230583, + 0.02017507329583168, + -0.03328317031264305, + 0.005941388197243214, + 0.017192505300045013, + -0.036873649805784225, + -0.0024815150536596775, + -0.024905387312173843, + 0.023062653839588165, + -0.013041608035564423, + -0.02439246140420437, + -0.05626983568072319, + 0.01629963517189026, + -0.009973553009331226, + -0.013962973840534687, + -0.009113927371799946, + 0.026577144861221313, + -0.04684720188379288, + 0.04035014659166336, + 0.04840497672557831, + -0.010334501042962074, + -0.019082730636000633, + 0.00863424688577652, + 0.008306545205414295, + -0.016119161620736122, + -0.018322842195630074, + 0.03429002687335014, + 0.033644117414951324, + 0.012728153727948666, + -0.04198390990495682, + 0.020858973264694214, + 0.04494747892022133, + -0.024126499891281128, + -0.0050770132802426815, + -0.022150786593556404, + -0.0007604834390804172, + -0.018142368644475937, + 0.03544885665178299, + 0.026235193014144897, + 0.017610445618629456, + -0.008643746376037598, + 0.03246628865599632, + -0.059271398931741714, + 0.011322357691824436, + -0.019833123311400414, + 0.038659390062093735, + -0.01038199383765459, + 0.021827833727002144, + -0.03527788072824478, + -0.060069285333156586, + -0.020479029044508934, + -0.01687905192375183, + -0.08989495784044266, + 0.019928108900785446, + 0.013991470448672771, + -0.0004826487274840474, + -0.047835059463977814, + 0.00992606021463871, + -0.004953531548380852, + -0.009579360485076904, + -0.002428085310384631, + -0.06512255221605301, + 0.010419988073408604, + -0.056839752942323685, + -0.05562392994761467, + -0.03685465455055237, + -0.04920286312699318, + 0.02967369556427002, + -0.009565112181007862, + -0.021979810670018196, + 0.04775907099246979, + 0.015368769876658916, + -0.026900097727775574, + -0.02368956245481968, + 0.047075171023607254, + -0.015986179932951927, + -0.041679952293634415, + -0.006107613909989595, + 0.007332935929298401, + -0.020099084824323654, + 0.019833123311400414, + -0.031744394451379776, + -0.012034754268825054, + -0.04198390990495682, + 0.0045617129653692245, + -0.030661551281809807, + -0.03263726457953453, + 0.012101244181394577, + 0.019348692148923874, + 0.002290355274453759, + -0.012414698489010334, + -0.021504880860447884, + 0.03560083359479904, + -0.0015316527569666505, + 0.010904418304562569, + -0.02351858839392662, + -0.09111078083515167, + 0.0037187105044722557, + -0.055547941476106644, + -0.009636351838707924, + -0.06531252712011337, + 0.001353553612716496, + -0.01171180047094822, + -0.031003501266241074, + -0.012756649404764175, + -0.00018596521113067865, + -0.011721299029886723, + -0.03776651993393898, + -0.011616814881563187, + -0.02583625167608261, + -0.020517023280262947, + -0.054674066603183746, + 0.06512255221605301, + -0.005684925243258476, + 0.03183938190340996, + 0.0012466941261664033, + 0.029749684035778046, + -0.004055911675095558, + -0.03478395193815231, + 0.03170640021562576, + -0.0023342862259596586, + -0.027963943779468536, + 0.0019519667839631438, + 0.0445675328373909, + -0.0019543415401130915, + -0.06162706017494202, + 0.04240184649825096, + 0.02114393189549446, + 0.027014080435037613, + -0.0580555759370327, + -0.026672130450606346, + -0.013953475281596184, + -0.001975713297724724, + -0.02266371250152588, + 0.028723832219839096, + -0.016423117369413376, + 0.01970014162361622, + -0.002718980424106121, + -0.0413380041718483, + 0.07598897814750671, + 0.00825430266559124, + -0.0049392832443118095, + -0.023860538378357887, + 0.002557503990828991, + -0.013716010376811028, + 0.026406168937683105, + 0.03235230594873428, + -0.027109067887067795, + -0.011379349045455456, + -0.012414698489010334, + 0.0014532891800627112, + 0.0589294508099556, + -0.025266334414482117, + 0.001198607380501926, + -0.03440400958061218, + 0.02378454990684986, + -0.0028614597395062447, + 0.005190996918827295, + -0.015311778523027897, + 0.018864262849092484, + 0.016261640936136246, + -0.009617354720830917, + 0.027147062122821808, + -0.06854205578565598, + 0.017002534121274948, + -0.030889518558979034, + 0.035486850887537, + 0.015957685187458992, + -0.052850332111120224, + 0.014513893984258175, + -0.006060120649635792, + 0.03166840597987175, + 0.03917231783270836, + 0.017771922051906586, + 0.04186992719769478, + -0.016546599566936493, + -0.016537100076675415, + 0.017287492752075195, + -0.004281503614038229, + -0.01763894036412239, + 0.010296505875885487, + -0.06151307374238968, + 0.009341894648969173, + 0.02574126608669758, + 0.006117112468928099, + 0.08381584286689758, + 0.014570886269211769, + -0.032504282891750336, + -0.00775562459602952, + -0.03052857145667076, + -0.02984466962516308, + 0.005238490179181099, + -0.011436340399086475, + 0.006952991243451834, + -0.006468561477959156, + 0.04148998111486435, + 0.012842136435210705, + 0.022473739460110664, + 0.04445355013012886, + -0.02773597650229931, + -0.022074798122048378, + -0.0315164290368557, + 0.016204649582505226, + 0.016575096175074577, + 0.006117112468928099, + 0.016432614997029305, + -0.028400879353284836, + 0.01970014162361622, + 0.015017321333289146, + -0.015245288610458374, + 0.047075171023607254, + 0.010695448145270348, + 0.009617354720830917, + -0.055433958768844604, + -0.005219492595642805, + -0.046429265290498734, + -0.022359756752848625, + -0.024126499891281128, + -0.021732846274971962, + 0.005347724072635174, + -0.042477838695049286, + -0.005637431982904673, + -0.04468151926994324, + 0.041451986879110336, + 0.012832637876272202, + -0.019776130095124245, + 0.026311183348298073, + 0.0395902544260025, + -0.010343999601900578, + 0.014741861261427402 + ] + } + }, + { + "type": "故障模式", + "properties": { + "名称": "多缸燃烧严重失衡导致主机紧急停机", + "故障现象": "主机紧急停机", + "故障原因": "多缸燃烧严重失衡", + "维修方案": "执行以下维修项目:MT020 排除主机功率异常波动故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]", + "embedding": [ + 0.014280816540122032, + 0.00011630389781203121, + -0.040152959525585175, + -0.03202766552567482, + -0.07314656674861908, + -0.007059913128614426, + 0.04189544543623924, + 0.016458924859762192, + 0.017377518117427826, + -0.033239830285310745, + 0.002018301747739315, + -0.004971769638359547, + 0.0028031310066580772, + 0.008982330560684204, + 0.017680559307336807, + -0.04087268188595772, + 0.026364583522081375, + 0.02039846032857895, + -0.04106208309531212, + 0.026913845911622047, + 0.014138765633106232, + 0.019394636154174805, + 0.054206494241952896, + 0.012131118215620518, + 0.000103726502857171, + 0.015246760100126266, + 0.007097793277353048, + -0.007523944601416588, + 0.024167535826563835, + 0.030531400814652443, + -0.006837367080152035, + -0.02515241876244545, + -0.04560770094394684, + -0.021326525136828423, + -0.0002960866258945316, + -0.051630645990371704, + -0.015720263123512268, + -0.02948969602584839, + -0.0417439267039299, + -0.005932978354394436, + 0.001387360505759716, + 0.007699140347540379, + 0.019063185900449753, + -0.02047422155737877, + -0.006411215290427208, + -0.038240011781454086, + 0.006406480446457863, + -0.023845555260777473, + -0.049585115164518356, + 0.010748492553830147, + -0.01809724234044552, + -0.02996319904923439, + 0.04128936305642128, + -0.017377518117427826, + 0.058714233338832855, + 0.005653612315654755, + -0.01577708311378956, + 0.035247478634119034, + -0.03170568495988846, + 0.001074257423169911, + -0.05284281075000763, + 0.016913486644625664, + 0.03886503353714943, + -0.024167535826563835, + 0.00033973759855143726, + 0.10144304484128952, + 0.023599334061145782, + -0.012367868795990944, + 0.0124815097078681, + -0.04337277263402939, + -0.00511382007971406, + -0.009716258384287357, + 0.004588233307003975, + -0.028069190680980682, + -0.06159312278032303, + 0.03397849574685097, + 0.08227568864822388, + -0.021099243313074112, + 0.03752028942108154, + 0.01647786609828472, + 0.045001618564128876, + -0.021231824532151222, + -0.01804989203810692, + 0.04102420061826706, + -0.008575119078159332, + 0.015331991016864777, + -0.01274667028337717, + 0.03498231992125511, + -0.0008481602417305112, + -0.028826793655753136, + 0.03206554800271988, + 0.017822610214352608, + -0.009971949271857738, + 0.0043562171049416065, + -0.026213062927126884, + 0.039887797087430954, + -0.02988743782043457, + -0.014981599524617195, + 0.025985782966017723, + -0.03162992373108864, + 0.01809724234044552, + 0.0227280892431736, + 0.014943718910217285, + -0.03992567956447601, + 0.040077198296785355, + 0.011875427328050137, + 0.058259669691324234, + 0.030720802024006844, + -0.009432157501578331, + 0.001733016804791987, + 0.033448170870542526, + 0.060721881687641144, + 0.03397849574685097, + -0.021856846287846565, + -0.03649752587080002, + -0.03873245418071747, + -0.009848838672041893, + -0.05761570855975151, + 0.06163100525736809, + -0.0232962928712368, + 0.009867778979241848, + 0.0046142758801579475, + 0.045001618564128876, + -0.06212344393134117, + -0.03443305566906929, + -0.023883434012532234, + 0.009971949271857738, + 0.022235648706555367, + -0.04670622572302818, + -0.0035110164899379015, + -0.003877980401739478, + 0.053638290613889694, + -0.035417940467596054, + -0.002051446819677949, + -0.030701860785484314, + -0.017869960516691208, + -0.037842269986867905, + 0.04560770094394684, + -0.026762325316667557, + -0.04655470326542854, + 0.030739741399884224, + 0.011780726723372936, + 0.014688028022646904, + -0.005132760386914015, + -0.016553625464439392, + -0.015189940109848976, + 0.033770155161619186, + -0.02736840769648552, + 0.016506275162100792, + -0.02733052894473076, + -0.012102708220481873, + -0.007500269450247288, + 0.008665083907544613, + 0.058411192148923874, + -0.0026894905604422092, + 0.011922777630388737, + -0.03931959718465805, + 0.03454669564962387, + -0.0406075194478035, + 0.027027487754821777, + -0.0183529332280159, + 0.03212236613035202, + 0.024205416440963745, + -0.022481868043541908, + -0.009990889579057693, + -0.00343288853764534, + 0.024546336382627487, + 0.023921314626932144, + -0.030777622014284134, + -0.017150238156318665, + 0.01602330431342125, + -0.016525214537978172, + -0.017311228439211845, + -0.02977379783987999, + -0.0015885988250374794, + 0.008428333327174187, + 0.03950899466872215, + 0.005369511432945728, + -0.0010860948823392391, + 0.0011192400706931949, + -0.04390309378504753, + 0.0314784049987793, + 0.01372208446264267, + -0.030493520200252533, + -0.017216527834534645, + 0.001523492275737226, + 0.06265376508235931, + -0.06159312278032303, + 0.025966843590140343, + 0.023372052237391472, + -0.024319056421518326, + 0.009332722052931786, + 0.026857025921344757, + 0.006325984839349985, + 0.0456455796957016, + -0.02973591722548008, + 0.0037430322263389826, + -0.0182108823210001, + 0.00812055729329586, + 0.011591325514018536, + -0.029319236055016518, + 0.01047386135905981, + 0.04591074213385582, + 0.013598973862826824, + -0.04121360182762146, + 0.0005528134643100202, + 0.007154613267630339, + -0.07977559417486191, + 0.039963558316230774, + 0.03714148700237274, + 0.00012569995305966586, + -0.035683102905750275, + -0.021629566326737404, + 0.03142158314585686, + -0.06254012882709503, + 0.01619376428425312, + 0.023485692217946053, + -0.026288824155926704, + 0.00025258364621549845, + -0.008792929351329803, + -0.06144160404801369, + 0.06613874435424805, + -0.0020076478831470013, + -0.008854485116899014, + 0.04197120666503906, + -0.04769111052155495, + 0.0048107788898050785, + 0.0181161817163229, + 0.03212236613035202, + -0.030891261994838715, + -0.015095239505171776, + -0.02979273721575737, + 0.026857025921344757, + 0.005942448507994413, + 0.073601134121418, + 0.02331523224711418, + -0.007684935349971056, + 0.0297169778496027, + 0.01828664168715477, + 0.007741755805909634, + 0.02278490923345089, + 0.026213062927126884, + 0.01020870078355074, + 0.010057180188596249, + -0.019546156749129295, + 0.02092878334224224, + 0.05291856825351715, + 0.010606441646814346, + -0.04329701140522957, + -0.011487155221402645, + 0.007197228260338306, + -0.008380983024835587, + -0.02041740156710148, + -0.026743385940790176, + 0.03954687714576721, + 0.04091056063771248, + 0.011828077025711536, + -0.0008043613051995635, + -0.0005288423853926361, + -0.03375121206045151, + 0.017595330253243446, + 0.04140300303697586, + 0.009526858106255531, + -0.006756871938705444, + -0.012718260288238525, + 0.030626101419329643, + -0.002552175195887685, + 0.0032671629451215267, + -0.03522853925824165, + 0.0368952676653862, + -0.05367617309093475, + -0.013456922955811024, + 4.4242831791052595e-05, + 0.024735737591981888, + 0.03151628375053406, + 0.02081514149904251, + -0.001746038207784295, + -0.02083408273756504, + 0.017027126625180244, + 0.03197084739804268, + 0.021818965673446655, + -0.017169177532196045, + 0.007779635954648256, + -0.021781086921691895, + -0.0041597140952944756, + -0.002438534749671817, + -0.0875789076089859, + -0.0600021556019783, + -0.009541062638163567, + 0.033012550324201584, + -0.010824252851307392, + -0.0232962928712368, + 0.06977523863315582, + -0.00816790759563446, + -0.008305222727358341, + 0.01481113862246275, + -0.005819337908178568, + -0.16182400286197662, + 0.028561633080244064, + -0.0033003080170601606, + 0.01862756349146366, + -0.013324342668056488, + 0.023637212812900543, + -0.0018229822162538767, + -0.02030375972390175, + -0.042501527816057205, + 0.028694214299321175, + -0.05310796946287155, + -0.0594339556992054, + 0.02515241876244545, + -0.031213244423270226, + -0.02492513880133629, + 0.007680200506001711, + 0.006472770590335131, + 0.037709690630435944, + 0.03645964339375496, + -0.03403531387448311, + -0.021326525136828423, + -0.005350571125745773, + -0.017529038712382317, + -0.06303256750106812, + -0.029129834845662117, + 0.004801309201866388, + 0.02501983940601349, + -0.022122006863355637, + -0.045039497315883636, + -0.02772826887667179, + -0.021875785663723946, + -0.017282817512750626, + -0.015227819792926311, + 0.05250188708305359, + 0.012898190878331661, + 0.019356757402420044, + 0.06299468874931335, + 0.002739208284765482, + -0.015085769817233086, + 0.005364776123315096, + 0.01577708311378956, + 0.04306973144412041, + 0.01376943476498127, + -0.017803670838475227, + 0.00092628801940009, + -0.02763357013463974, + 0.0687524750828743, + -0.05663082376122475, + 0.012121647596359253, + -0.021762145683169365, + 0.047047145664691925, + -0.008267343044281006, + 0.00791221670806408, + 0.0028694213833659887, + -0.00920961145311594, + 0.020966662093997, + -0.013362223282456398, + 0.031118543818593025, + -0.05450953543186188, + -0.01566344127058983, + -0.04780475050210953, + -0.03638388216495514, + 0.01361791417002678, + 0.02098560333251953, + -0.08470001816749573, + 0.033088311553001404, + 0.006704786326736212, + 0.008854485116899014, + 0.009451097808778286, + -0.02297431044280529, + 0.006922597531229258, + -0.011032593436539173, + 0.0456455796957016, + 0.013494803570210934, + -0.006501180585473776, + 0.02083408273756504, + -0.011932247318327427, + 0.019584037363529205, + -0.01624111458659172, + -0.10379160940647125, + 0.012178468517959118, + 0.046895626932382584, + 0.03227388858795166, + -0.010909482836723328, + 0.021345464512705803, + -0.0417439267039299, + -0.014034595340490341, + 0.0404181182384491, + 0.026383524760603905, + 0.2187957465648651, + 0.02102348394691944, + -0.040228720754384995, + -0.0559111014008522, + 0.053789813071489334, + -0.05522925779223442, + 0.00044479581993073225, + -0.009654703550040722, + 0.016667265444993973, + -0.042501527816057205, + -0.04083480313420296, + 0.016458924859762192, + 0.03403531387448311, + -0.0026989607140421867, + -0.0164021048694849, + 0.02507665939629078, + 0.014299756847321987, + -0.01027499046176672, + 0.09007899463176727, + -0.035550519824028015, + 0.04784262925386429, + 0.038126371800899506, + 0.008532503619790077, + -0.006657436490058899, + -0.0555322989821434, + -0.011941717006266117, + -0.03467927873134613, + 0.037633929401636124, + -0.015199409797787666, + 0.021496985107660294, + -0.05269128829240799, + 0.03973627835512161, + 0.042615167796611786, + -0.010492801666259766, + -0.02988743782043457, + 0.01507629919797182, + -0.0013447452802211046, + -0.03636494278907776, + 0.029205596074461937, + 0.01839081197977066, + -0.05075940117239952, + -0.03416789695620537, + -0.0598127581179142, + -5.2085204515606165e-05, + 0.02988743782043457, + -0.03498231992125511, + -0.004690036177635193, + 0.007594970054924488, + 0.008897100575268269, + -0.012377339415252209, + -0.01397777535021305, + 0.020019659772515297, + -0.030569281429052353, + 0.011032593436539173, + -0.04837295040488243, + 0.0008706515654921532, + -0.009271166287362576, + -0.0056820223107934, + -0.010767432861030102, + 0.024186475202441216, + 0.0024977223947644234, + 0.022008366882801056, + -0.081215038895607, + 0.03647858276963234, + -0.010085590183734894, + 0.0010843193158507347, + -0.00933745689690113, + 0.012244758196175098, + 0.02079620212316513, + 0.02325841225683689, + 0.03458457812666893, + 0.030701860785484314, + -0.021932607516646385, + 0.04814567044377327, + 0.006690581329166889, + -0.008636673912405968, + -0.009716258384287357, + 0.052047327160835266, + -0.05272916704416275, + 0.005374246276915073, + -0.04791839048266411, + 0.0036909470800310373, + -0.05666870251297951, + -0.03401637449860573, + 0.007003092672675848, + 0.0021875787060707808, + 0.03861881420016289, + 0.05992639809846878, + -0.01620323397219181, + -0.011667085811495781, + -0.04072115942835808, + 0.019924959167838097, + -0.021781086921691895, + 0.00788854155689478, + -0.017737379297614098, + 0.024697856977581978, + -0.009380072355270386, + -0.030436700209975243, + -0.023466752842068672, + 0.047350186854600906, + -0.024470577016472816, + -0.06545689702033997, + -0.0035678367130458355, + 0.037558168172836304, + -0.010786372236907482, + 0.026800205931067467, + 0.013750494457781315, + 0.004914949648082256, + -0.004806044045835733, + 0.026099422946572304, + 0.029451817274093628, + 0.028845734894275665, + -0.03644070401787758, + -0.0069936225190758705, + 0.01793625019490719, + 0.030796561390161514, + -0.016951367259025574, + -0.006988887675106525, + 0.0071072629652917385, + 0.04125148430466652, + -0.06416897475719452, + -0.035720981657505035, + 0.02269021049141884, + -0.017405929043889046, + -0.008589323610067368, + -0.0370846651494503, + -0.02108030393719673, + -0.00925696175545454, + 0.017008187249302864, + 0.04144088551402092, + -0.01822982169687748, + -0.01476378832012415, + -0.026629745960235596, + 0.04791839048266411, + 0.028883613646030426, + 0.017661619931459427, + -0.00039981314330361784, + -0.014489157125353813, + 0.04655470326542854, + 0.007367689162492752, + -0.00930431205779314, + -0.030550340190529823, + -0.03382697328925133, + -0.02094772271811962, + 0.006136584095656872, + -0.05045635998249054, + -0.03019047901034355, + 0.02769039012491703, + -0.02958439663052559, + 0.028864674270153046, + 0.010578031651675701, + -0.0007487248512916267, + -0.016951367259025574, + -0.05738842859864235, + -0.012235288508236408, + 0.007755960803478956, + -0.0125288600102067, + 0.0025095599703490734, + -0.02969803661108017, + -0.02286067046225071, + -0.011723906733095646, + 0.028107071295380592, + 0.07413145154714584, + 0.05337313190102577, + 0.029167715460062027, + 0.04341065138578415, + 0.009886719286441803, + 0.030569281429052353, + -0.012102708220481873, + -0.014290286228060722, + 0.031175363808870316, + -0.019129475578665733, + -0.028523752465844154, + 0.015720263123512268, + -0.006747401785105467, + 0.017803670838475227, + -0.014735378324985504, + 0.014441806823015213, + 0.0025379699654877186, + 0.055342897772789, + 0.05447165668010712, + 0.0250577200204134, + -0.0765557810664177, + 0.04091056063771248, + 0.0116007961332798, + -0.005123290233314037, + -0.011998537927865982, + -0.015492981299757957, + -0.009541062638163567, + 0.0009529225062578917, + -0.005932978354394436, + 0.09712470322847366, + -0.015578211285173893, + 0.010720082558691502, + -0.014044065959751606, + 0.026857025921344757, + 0.035493701696395874, + 0.01862756349146366, + 0.03628918528556824, + -0.0061034392565488815, + 0.0464031845331192, + -0.05348677188158035, + -0.0031914026476442814, + -0.0360429622232914, + 0.026345644146203995, + -0.013561093248426914, + 0.012462569400668144, + -0.01589072309434414, + 0.008906570263206959, + -0.02108030393719673, + 0.004337277263402939, + 0.0034849736839532852, + -0.0010955649195238948, + 0.009792018681764603, + 0.0014796933392062783, + -0.03397849574685097, + 0.016913486644625664, + 0.042766690254211426, + 0.02725476771593094, + -0.02049316093325615, + 0.004292294383049011, + -0.011922777630388737, + 0.028845734894275665, + -0.028694214299321175, + -0.030777622014284134, + -0.05284281075000763, + -0.0161180030554533, + -0.04814567044377327, + 0.08219992369413376, + 0.01843816228210926, + 0.011004183441400528, + -0.0041242013685405254, + 0.007074118126183748, + -0.0011470583267509937, + 0.00017549163021612912, + 0.008182112127542496, + -0.012756140902638435, + 0.03909231349825859, + 0.05356253311038017, + -0.005985063500702381, + 0.0012914763065055013, + -0.008163172751665115, + -0.02511454001069069, + 0.03950899466872215, + -0.010701142251491547, + 0.0036412293557077646, + -0.021762145683169365, + 0.010019299574196339, + 0.04405461251735687, + 0.06557054072618484, + 0.006397010292857885, + 0.03973627835512161, + 0.029338175430893898, + -0.06360077112913132, + -0.004742121323943138, + -0.001034601591527462, + -0.03894079476594925, + -0.022595509886741638, + -0.056176263839006424, + -0.0299063790589571, + -0.0020040967501699924, + 0.003025677055120468, + -0.026838086545467377, + 0.004091056063771248, + -0.006709521636366844, + -0.0786391943693161, + 0.0041289362125098705, + 0.012462569400668144, + -0.007078852970153093, + -0.02979273721575737, + -0.012301579117774963, + -0.04644106328487396, + -0.026080483570694923, + 0.016998717561364174, + 0.026118364185094833, + 0.003461298765614629, + 0.008702964521944523, + -0.02524711936712265, + 0.016629386693239212, + -0.0008025856805033982, + -0.024622097611427307, + 0.035910382866859436, + -0.014110355637967587, + 0.009474772028625011, + -0.0026468755677342415, + -0.019773438572883606, + 0.049130555242300034, + 0.026194123551249504, + 0.004758693743497133, + 0.01632634550333023, + 0.009744668379426003, + -0.009697318077087402, + -0.031213244423270226, + -0.005942448507994413, + -0.029129834845662117, + 0.04109996184706688, + -0.011723906733095646, + -0.001710525481030345, + 0.012576209381222725, + 0.017102887853980064, + 0.0006735564093105495, + -0.030834442004561424, + -0.00010727776680141687, + -0.037936970591545105, + -0.02267126925289631, + 0.011382984928786755, + 0.001653705257922411, + 0.004976504482328892, + 0.037709690630435944, + 0.018959015607833862, + 0.011117824353277683, + -0.061138562858104706, + 0.009839368984103203, + 0.06772971153259277, + 0.019328346475958824, + 0.02547440119087696, + 0.010199230164289474, + -0.008840279653668404, + -0.003063557203859091, + 0.02054998092353344, + -0.014384986832737923, + 0.006098703946918249, + -0.030626101419329643, + -0.0030446171294897795, + 0.008291018195450306, + 0.014138765633106232, + -0.023807674646377563, + -0.0035962467081844807, + -0.007699140347540379, + -0.023561453446745872, + -0.010549621656537056, + 0.006449095439165831, + 0.01051174197345972, + 0.0032245477195829153, + 0.03475503623485565, + -0.03286103159189224, + 0.0009913945104926825, + -0.03897867351770401, + 0.03276633098721504, + -0.029413936659693718, + 0.03721724823117256, + -0.001614641398191452, + 0.03627024218440056, + -0.007594970054924488, + -0.009332722052931786, + -0.02960333786904812, + 0.008395188488066196, + -0.013125471770763397, + 0.02051210030913353, + 0.0005241073668003082, + -0.0032932055182754993, + -0.05034272000193596, + -0.024489516392350197, + -0.016638856381177902, + -0.02053104154765606, + -0.03962263837456703, + -0.00753814959898591, + 0.027141127735376358, + 0.001699871732853353, + 0.012718260288238525, + 0.03672480583190918, + 0.019584037363529205, + 0.013598973862826824, + 0.04833507165312767, + 0.011828077025711536, + 0.06962371617555618, + 0.010691672563552856, + 0.042350009083747864, + 0.051820043474435806, + -0.006188669707626104, + -0.0073534841649234295, + 0.001080176094546914, + 0.013655793853104115, + 0.05469893664121628, + 0.026459284126758575, + 0.015398280695080757, + -0.002921506529673934, + -0.010729552246630192, + 0.004564558155834675, + 0.016771435737609863, + -0.01041704136878252, + -0.007443449459969997, + -0.00027374326600693166, + -0.015189940109848976, + 0.027084307745099068, + -0.0022491340059787035, + -0.0365164652466774, + 0.008219992741942406, + 0.025644861161708832, + -0.026004722341895103, + -0.047236546874046326, + 0.0028623188845813274, + -0.05462317541241646, + 0.007661260198801756, + -0.15061147511005402, + -0.01264249999076128, + 0.002176924841478467, + -0.012850840575993061, + -0.017027126625180244, + -0.026781266555190086, + -0.00822472758591175, + 0.007277723867446184, + -0.0005551809445023537, + -0.053714051842689514, + 0.005904568359255791, + 0.006543796043843031, + 0.021610625088214874, + -0.022216707468032837, + -0.03217918798327446, + 0.006037149112671614, + -0.0017010554438456893, + 0.012282638810575008, + 0.07212380319833755, + -0.017652150243520737, + -0.022216707468032837, + -0.0024858848191797733, + -0.017434338107705116, + -0.05966123566031456, + 0.011894366703927517, + -0.033183012157678604, + -0.030550340190529823, + -0.03244434669613838, + -0.028315411880612373, + 0.028675273060798645, + 0.0184476338326931, + -0.022917490452528, + 0.0296222772449255, + 0.08212416619062424, + -0.013759964145720005, + -0.024356937035918236, + 0.01623164489865303, + 0.021421223878860474, + -0.0005519256228581071, + -0.03448987752199173, + 0.030341999605298042, + 0.049282073974609375, + 0.015303580090403557, + -0.040456000715494156, + 0.04318337142467499, + 0.01820141263306141, + -0.0051706405356526375, + 0.000682434590999037, + -0.013532683253288269, + -0.010985243134200573, + -0.004765796475112438, + 0.04348641261458397, + 0.04784262925386429, + -0.01876961439847946, + 0.02102348394691944, + 0.006548530887812376, + -0.06666906177997589, + 0.00750500475987792, + 0.05511561781167984, + 0.03197084739804268, + -0.03479291871190071, + -0.014384986832737923, + -0.030398819595575333, + -0.06481293588876724, + -0.019356757402420044, + -0.010341281071305275, + -0.07610122114419937, + 0.0008594059036113322, + -0.01832452230155468, + -0.005786193069070578, + -0.01814459264278412, + 0.0018371872138231993, + 0.010161350481212139, + -0.04056964069604874, + -0.01871279440820217, + -0.06269165128469467, + 0.008972860872745514, + 0.005880893208086491, + -0.02744416892528534, + -0.03621342405676842, + -0.049547236412763596, + 0.011799667030572891, + 0.016714615747332573, + -0.016733556985855103, + 0.03962263837456703, + -0.028769973665475845, + -0.037955909967422485, + -0.01876014471054077, + 0.04753958806395531, + -0.03221706673502922, + -0.04325913265347481, + -0.024224355816841125, + 0.019110536202788353, + -0.08098775893449783, + -0.0037430322263389826, + -0.0004900744534097612, + -0.010767432861030102, + -0.05894151329994202, + 0.0018798024393618107, + -0.03683844581246376, + -0.03420577570796013, + 0.007059913128614426, + 0.008243667893111706, + 0.014119826257228851, + -0.02799343131482601, + 0.011288284324109554, + 0.03265269100666046, + -0.003037514630705118, + 0.035626281052827835, + -0.028239652514457703, + -0.0065390607342123985, + 0.014725908637046814, + -0.009403747506439686, + 0.003342923242598772, + -0.035550519824028015, + 0.009649967774748802, + 0.023447813466191292, + -0.008878160268068314, + -0.0017069742316380143, + -0.040228720754384995, + -0.008783459663391113, + -0.0045834979973733425, + 0.010492801666259766, + -0.02094772271811962, + -0.023334171622991562, + -0.042539406567811966, + 0.05212308466434479, + 0.03498231992125511, + 0.014422867447137833, + -0.03178144618868828, + 0.0182582326233387, + 0.00043917298899032176, + -0.04765322804450989, + 0.047160785645246506, + -0.013049711473286152, + 0.007045707665383816, + -0.0279555507004261, + 0.0365164652466774, + -0.02515241876244545, + -0.013343282975256443, + 0.049319956451654434, + 0.03183826431632042, + -0.003963210619986057, + -0.030493520200252533, + -0.010653791949152946, + -0.018873784691095352, + -0.04284244775772095, + -0.017159707844257355, + -0.001774448319338262, + 0.004981239791959524, + -0.0037477673031389713, + 0.01852339319884777, + -0.021459104493260384, + 0.006903657224029303, + -0.0010322340531274676, + 0.04746382683515549, + -0.027084307745099068, + 0.0019756865222007036, + -0.012225818820297718, + 0.023807674646377563, + 0.03939535468816757, + -0.04844871163368225, + 0.01258568000048399, + 0.007173553574830294, + -0.017652150243520737, + 0.056214142590761185, + -0.007670730352401733, + 0.009332722052931786, + -0.026572925969958305, + 0.008054266683757305, + 0.014110355637967587, + 0.010739022865891457, + -0.0360429622232914, + -0.013239112682640553, + 0.023334171622991562, + -0.0316678062081337, + 0.002323710359632969, + -0.06867671012878418, + 0.064850814640522, + -0.019981779158115387, + 0.006373335141688585, + 0.017102887853980064, + -0.028353292495012283, + 0.006340190302580595, + -0.037690747529268265, + -0.003252957947552204, + 0.02522817999124527, + 0.045115258544683456, + 0.026648685336112976, + 8.744988008402288e-05, + -0.004720813594758511, + 0.022425048053264618, + 0.0009026129264384508, + -0.011932247318327427, + 0.03248222917318344, + -0.022178826853632927, + 0.03856199234724045, + 0.004985974635928869, + 0.012765610590577126, + 0.061252202838659286, + -0.014356576837599277, + -0.0019567464478313923, + 0.0164021048694849, + -0.012860311195254326, + -0.036800567060709, + -0.04969875514507294, + 0.01820141263306141, + 0.0055352370254695415, + -0.05697174370288849, + 0.03505807742476463, + -0.014025125652551651, + 0.000671188929118216, + 0.02520924061536789, + -0.04420613497495651, + -0.04541829973459244, + -0.017216527834534645, + 0.01577708311378956, + -0.029413936659693718, + 0.028334351256489754, + 0.020265880972146988, + -0.012879250571131706, + 0.006917862221598625, + 0.01850445382297039, + -0.0249630194157362, + 0.05689598619937897, + 8.338072075275704e-05, + -0.02973591722548008, + -0.03424365445971489, + -0.007566560059785843, + -0.005843013059347868, + -0.026838086545467377, + -0.009953008964657784, + -0.01876014471054077, + 0.003960843198001385, + 0.011193584650754929, + -0.0011251588584855199, + -0.01626952365040779, + 0.06610085815191269, + -0.022349288687109947, + -0.022500809282064438, + 0.03017153963446617, + 0.035361118614673615, + -0.019640857353806496, + 0.033770155161619186 + ] + } + }, + { + "type": "维修工作", + "properties": { + "名称": "发动机的维修工作", + "维修项目索引表": "4.1 维修项目索引表\n表 4.1 船舶主发动机维修项目索引表\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 页码 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 20 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/2000h JY级 22 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 24 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JY级 26 MT005 020203 连杆小端轴承 更换连杆小端轴承 2A/12000h JY级 29 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 31 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 33 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 35 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 37 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 40 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 43 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 45 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 47 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 49 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 52 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 54 MT017 020201 连杆大端轴承 修复连杆大端轴承异常磨损 1U ZJ级 57 MT018 030201 活塞头 修复活塞头部烧蚀 1U ZJ级 59 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 61 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 63", + "内容": "4维修工作指导\n4.1 维修项目索引表\n表 4.1 船舶主发动机维修项目索引表\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 页码 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 20 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/2000h JY级 22 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 24 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JY级 26 MT005 020203 连杆小端轴承 更换连杆小端轴承 2A/12000h JY级 29 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 31 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 33 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 35 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 37 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 40 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 43 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 45 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 47 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 49 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 52 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 54 MT017 020201 连杆大端轴承 修复连杆大端轴承异常磨损 1U ZJ级 57 MT018 030201 活塞头 修复活塞头部烧蚀 1U ZJ级 59 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 61 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 63\n4.2 常见故障表\n表 4.2 船舶主发动机常见故障表\n序号 故障现象 故障原因 维修项目 1 主机运行中振动异常增大 主轴承或连杆大端轴承磨损 执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损 曲轴主轴颈跳动超差 执行以下维修项目:MTO03 检测曲轴主轴颈跳动量 2 单缸功率下降、排温偏低 活塞头烧蚀或活塞环断裂 执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀 气缸套严重磨损 执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套 喷油嘴偶件雾化不良 执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障 3 排气温度异常升高 排气阀密封面磨损或阀座烧蚀 执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座 涡轮增压器轴承损坏 执行以下维修项目:MT015 更换涡轮增压器轴承组件 4 扫气箱内发现润滑油泄漏 活塞杆填料函密封失效 执行以下维修项目:MTO01保养机座与机架组件 5 主机启动困难或压缩压力不足 缸盖密封环老化失效 执行以下维修项目:MT001保养机座与机架组件 6 主机功率输出不稳定 喷油器工作不一致 执行以下维修项目:MT019 排除喷油器雾化不良故障 调速系统响应异常 执行以下维修项目:MT020 排除主机功率异常波动故障 7 空冷器后扫气温度持续偏高 空冷器管束芯体结垢或堵塞 执行以下维修项目:MT016 清洗空冷器管束芯体 8 主机润滑油消耗异常增加 活塞环磨损或断裂 执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环 活塞杆填料函磨损 执行以下维修项目:MT001保养机座与机架组件 9 高压燃油管路附近有油渍 高压油管接头密封失效 执行以下维修项目:MT014 更换高压油泵柱塞偶件 10 主机紧急停机 润滑油压力骤降 执行以下维修项目:MT001保养机座与机架组件 多缸燃烧严重失衡 执行以下维修项目:MT020 排除主机功率异常波动故障\n4.3 维修项目表\n本节主要填写各维修项目的修理表,包括预防性、恢复性维修、故障排查项目。\n表 4.3 MT001 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。 安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。 序号 名称 规格/型号 数量及单位 备注 1 液压升降平台 HLP-3000 1台 用于接近主机上部 2 扭矩扳手 TB-200N·m 1把 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT 1套 厂家配套 4 工业吸油泵 VAC-0IL50 1台 防爆型 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 高压燃油泵 HD-45A 2个 原厂件 2 涡轮增压器 TC-80B 1个 耐高温氟橡胶 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 柴油机专用润滑油 Shell Mysella S5N80 50L 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 5张 不掉屑 3 清洗剂 CRC Brakleen 1罐 用于清洁滤座\n4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师 主导保养流程 2 电气专业 1 技师 监控主机ECU状 态 修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识; 3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油; 图 MT001.1旋松螺塞 (2)检查排出机油中是否有金属屑,若有则记录并上报异常。 图MT001.2检查 2)更换机油滤芯\n图 MT001.3 拆卸\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\n图 MT001.4 滤芯安装扭矩示意图\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\n图 MT001.5 滤芯安装扭矩示意图\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\n(2)静置 10 分钟后复查油位,补充至标准范围。\n图 MT001.6 油位检查\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\n图 MT001.7 安装放油螺塞\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\n图 MT001.8 油污清理\n3)拆除“禁止启动”牌,通知集控室保养完成。 验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下); 2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。 页码:2/2 版本号:1\n表 4.4 MT002 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/200h JY级 安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。 安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。 序号 名称 规格/型号 数量及单位 备注 1 激光对中仪 SKF TKSA 71 1套 用于轴承同轴度检测 2 塞尺组 0.02 -1.00 mm 1套 精度±0.005mm 3 液压拉伸器 HYTORC AVANTI-10 1台 用于地脚螺栓预紧 4 内径千分尺 200-300mm 1把 校验有效期内 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁酒精 AR Grade 100mL 2 防锈纸 VCI-200 2张 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;\n图 MT002.1 换油前清洗\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\n图 MT002.2 检查\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\n图 MT002.3 塞尺测量\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\n图 MT002.4 激光对中仪\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\n图 MT002.5 测量轴线偏移量\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\n判定与处理 1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。 验收标准 1.主轴承座与机座结合面间隙≤0.05mm(全周); 2.相邻主轴承同轴度偏差≤0.08 mm/m; 3.地脚螺栓预紧力在设计值 ±5% 范围内。 页码:1/1 版本号:1\n表 4.5 MT003 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。 安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg 序号 名称 规格/型号 数量及单位 备注 1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm 2 磁力表座 Starrett 16B 1个 带万向关节 3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg\n4 盘车手轮 OEM-MAN-BW-PCW 1个 原厂配套\n序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1\n序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 50mL 清洁轴颈表面 2 无绒擦拭布 Kimwipe EX-L 3张 防刮伤轴面\n序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工复刻数据\n图 MT003.1 清洁\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\n图 MT003.2 标记测量基准点\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\n2)安装千分表\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\n图 MT003.3 千分尺\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\n(2)预压千分表 0.3 mm,归零。\n3)盘车测量\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\n(2)跳动量 = 最大值 - 最小值;\n(3)重复上述步骤,依次测量其余主轴颈。\n数据判定\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\n表 4.6 MT004 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JT级 安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。 安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。 序号 名称 规格/型号 数量及单位 备注 1 液压拉伸器 HYTORC RS-20 1套 2 扭矩扳手 Norbar 1500N·m 1把 精度±2% 3 轴承安装导向套 OEM-MAN-BW-BG-04 1个 4 内窥镜 GE Mentor Visual iQ 1台 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆大端轴承上瓦 MAN 5L35MC-BRG-UP 1副 原厂高锡合金 2 连杆大端轴承下瓦 MAN 5L35MC-BRG-DN 1副 3 连杆螺栓 M30 ×2.0 Grade 12.9 2根 次性使用,强制更换 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\n1 轴承装配润滑脂 Kluber Isoflex LDS18 Special A 10g 仅涂瓦背 2 螺纹锁固胶 Loctite 2701 少量 用于螺栓螺纹(如适用) 3 清洗剂 Brulin 815GD 200mL 清洁连杆结合面\n4)人力人员\n序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2x工程师 总工监督关键步骤\n修理步骤及工艺\n更换前提确认\n1)主机已完成停机冷却,滑油系统泄压;\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\n拆卸旧轴承\n1)拆连杆盖\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\n(2)取下螺栓及连杆大端盖,放置于专用托架。\n2)取出旧轴承\n(1)轻敲连杆体侧面,使下瓦自然脱落;\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\n安装新轴承\n1)清洁与检查\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\n(2)目视检查新瓦背面涂层均匀,无裂纹。\n2)装配\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\n(2)将下瓦装入连杆盖,同样对准定位;\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\n3)紧固螺栓\n(1)安装新连杆螺栓,手工旋入到底;\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\n(3)最终用角度法复核(如适用)。\n图 MT004.1 连杆大端轴承结构分解图\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\n表 4.7 MT005 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT005 020203 连杆小段轴承 更换连杆小段轴承 2A/12000h JY级 安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。 安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。 序号 名称 规格/型号 数量及单位 备注 1 活塞吊装专用吊具 OEM-MAN-BW-PST-05 1套 带缓冲橡胶夹头 2 感应加热器 EFD Induction Minac16 1台 温控精度±5℃ 3 内径千分尺 40 - 50 mm 1把 校验有效期内 4 铜棒与塑料锤 Φ20×300 mm 各1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆小端衬套(上) MAN 5L35MC-BUSH-UP 1件 锡青铜基 2 连杆小端衬套(下) MAN 5L35MC-BUSH-DN 1件 3 活塞销卡簧 Φ50×2.5 mm 2个 不锈钢,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\n1 高温装配润滑脂 Molycote G-1052 5g 2 清洗剂 Brulin 815GD 150mL 3 耐高温标记笔 Markal 900°F 1支\n4)人力人员\n序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师主导热装\n修理步骤及工艺\n更换前提确认\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\n拆卸旧衬套\n1)抽出活塞-连杆总成\n(1)拆除缸头、喷油器及冷却水管路;\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\n2)压出旧衬套\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\n安装新衬套\n1)清洁与预装检查\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\n(2)测量座孔内径,记录作为过盈量计算依据。\n2)热装新衬套\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\n(2)迅速将热衬套套入连杆小端,确保完全到位;\n(3)自然冷却至室温,禁止强制冷却。\n3)精铰与研配(如需要)\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\n组装活塞销与卡簧\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\n验收标准 1.衬套与座孔过盈配合牢固,无松动或轴向位移; 2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。 页码:1/1 版本号:1\n表 4.8 MT006 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。 安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配350mm活塞 2 内窥镜 GE Mentor Visual iQ 1台 3 深度规 0-150mm 1把 4 放大镜 10× with scale 1个 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检查类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 积碳清洗剂 CRC Carbon CleanPro 200mL 环保型 2 无纺布 Industrial Grade 5张 3 防锈油 CRC 3-36 50mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。 抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态 1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查 (1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。 判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008; 3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。\n表 4.9 MT007 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。 安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配Φ350 mm活塞 2 环口间隙测量规 Feeler Gauge Set 1套 0.05-1.00mm 3 环槽清洁刮刀 Custom-Piston-Groove-Scraper 1把 铜质刃口 4 扭矩扳手 20-100 N·m 1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第一道压缩环 MAN 5L35MC-RING-1 1件 梯形截面,表面镀铬 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 5g 2 无绒布 Kimwipe EX-L 3张 3 清洗剂 Brulin 815GD 100mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师复刻还口间隙 修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。 验收标准 1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内; 页码:1/1 3.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1\n表 4.10 MT008 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。 安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 同MT007 2 环口定位夹具 Custom-Ring-Aligner 1套 控制各环开口相位 3 放大镜(带LED) 5X with light 1个 检查环体缺陷 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第二道压缩环 MAN 5L35MC-RING-2 1件 锥面环 2 第三道刮油环(组合式) MAN 5L35MC-RING-3 1套 含轨环+弹簧胀圈 3 第四道刮油环(组合式) MAN 5L35MC-RING-4 1套 同上 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 10g 涂所有环外圆 2 缸套润滑机油 Shell Mysella S5N80 50mL 涂缸壁 3 标记笔(耐油) Marka1Oil-Resistant 1支 标记环开口位置 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+ 技师 工程师监督相位布置 修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。 拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。 差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120° (1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证 1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;\n表 4.11 MT009 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。 安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 内径千分尺(三点式) Mitutoyo 204-304 mm 1套 分辨率0.001mm 2 缸套磨损测量记录仪 Custom-Bore-Wear-Log 1台 自动生成磨损曲线 3 防爆LED手电 Streamlight 88040 1个 24V安全电压 4 清洁气枪 Industrial Air BlowGun 1把 压力≤0.5 MPa 2)备品 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检测类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 100mL 清洁测量接触面 2 无绒布 Kimwipe EX-L 5张 防刮伤缸壁 3 防锈纸 VCI-200 2张 测量后临时覆盖 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工审核磨损趋势\n3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略) 验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。 页码:1/1 版本号:1\n表 4.12 MT010 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。 安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。 序号 名称 规格/型号 数量及单位 备注 1 液压压装机 HYDRA-PRESS-50T 1台 带压力与位移监控 2 缸套拔出器 OEM-MAN-BW-LINER-PULL 1套 螺纹顶压式 3 冷却水腔密封测试仪 LeakTest-CT300 1台 0.3 MPa保压 4 深度规 0- 300 mm 1把 测量缸套凸肩高度 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 气缸套总成 MAN5L35MC-LINER-ASSY 1件 含0形圈、定位销 2 缸套水封0形圈 Viton Φ380×5.0 2个 耐高温氟橡胶 3 缸套油封环 NBR Φ352×3.0 1个 下部密封 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 装配润滑脂 Kluber Isoflex LDS18 Special A 20g 涂缸套外壁 2 密封胶 Loctite 518 少量 水腔法兰面(如适用) 3 清洗剂 Brulin 815GD 300mL 清洁缸体座孔 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工监督压装对中\n修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。 3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm; 2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1\n表 4.13 MT011 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。 安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK 1套 带隔热手柄 2 红外测温仪 Fluke 62 Max+ 1台 测量阀杆温度 3 密封面检测平板 Optical Flat λ/10 1块 用于着色法检查 4 着色剂套装 Dykem Steel Blue +Developer 1套 检查接触印痕 2)备品备件 序 名称 规格/型号 消耗数量 备注 一 本项目为检查类,无备件消耗(但可能触发MT012) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温清洁剂 CRC Brakleen HT 100mL 清除积碳 2 无绒布 Kimwipe EX-L 5张 防刮伤密封面 3 防锈油 CRC 3-36 30mL 检查后临时防护 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座); 3)记录检查结果于《排气阀状态档案》。 验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm; 2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。 页码:1/1 版本号:1\n表 4.14 MT012 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。 安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。 序号 名称 规格/型号 数量及单位 备注 1 便携式阀座镗床 SUNNEN SV-20 1台 带角度调节 2 液压阀座压装机 HYDRA-SEAT-PRESS 1台 用于过盈配合座 3 渗透探伤套装 Magnaflux ZL-27A 1套 PT检测裂纹 4 角度规 0-90°Protractor 1把 检查密封锥角 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀座 MAN5L35MC-EXH-SEAT 1件 Stellite合金堆焊 2 定位销(如适用) Φ8×20 mm 1个 不锈钢 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温镍基焊条 ENiCrFe-3 1根 用于焊接固定(如需要) 2 清洗剂 Brulin 815GD 150mL 清洁阀座孔 3 研磨膏(细) Clover Leaf Green 20g 配合研磨 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工批准焊接/压装方案 修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座 1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。 2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座); 3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。 页码:1/1 版本号:1\n表 4.15 MT013 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火 安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 高压燃油压力表 0-20 MPa 1个 校验有效期内 3 喷油雾化测试台 Bosch EPS 815 1台 可测开启压力与雾化角 4 扭矩扳手 40 -200 N·m 1把 用于喷油器压紧螺母 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件(针阀+阀体) MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂高精度配对 2 喷油器铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性\n3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200 mL 用于冲洗油道 2 3 无绒布 高温润滑脂 Kimwipe EX-L 5张 少量 擦拭偶件表面 4)人力人员 Molycote G-1052 涂压紧螺纹 序号 专业 人数 技能等级 备注 修理步骤及工艺 1 机械专业 2 工程师+技师 工程师操作测试 台 更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件 (1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5° 无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa; 2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。\n表 4.16 MT014 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。 安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖 序号 名称 规格/型号 数量及单位 备注 1 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤 2 供油定时检测仪 AVL 545 1台 测量喷油始点 3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙 4 扭矩扳手 30-150 N·m 1把 用于泵体检修盖 2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用) 序 名称 规格/型号 消耗数量 备注 1 柱塞+套筒偶件 MAN5L35MC-PLUNGER-KIT 1套 配对编号一致 2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高压泵专用润滑油 Shell Tellus S4 VX32 100mL 用于偶件润滑 2 密封胶 Loctite 577 少量 泵体结合面(如适用) 3 清洗柴油 ISO 4020 Grade A 300mL 冲洗油道 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工确认供油定时 修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m; (2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA; 验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA; 3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1\n表 4.17 MT015 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。 安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。 序号 名称 规格/型号 数量及单位 备注 1 涡轮增压器专用拆装台 Custom-Turbo-Bench 1台 带V型支撑 2 感应加热器 EFD Minac 10 1台 温控±5℃ 3 动平衡检测仪 Schenck BALANCER V 1台 G2.5级精度 4 扭矩扳手 10-80 N·m 1把 用于壳体螺栓 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 径向轴承(主轴) MAN TCA77-BRG-RAD 1套 铜铅合金 2 止推轴承组件 MANTCA77-BRG-THRUST 1套 含瓦片+垫片组 3 轴封环 Carbon Seal Φ60X3 2个 石墨基 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温润滑脂 Kluber Isoflex LDS18 Special A 15g 仅涂轴承外圈 2 清洗剂 Brulin 815GD 200mL 清洁轴承座 3 密封胶 Loctite 518 少量 壳体结合面 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导装配 2 电子专业 1 中级 监测振动传感器\n(如适用) 修理步骤及工艺 更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换; 拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃; 2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。\n表 4.18 MT016 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。 安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。\n序号 名称 规格/型号 数量及单位 备注 1 高压清洗机 Kärcher HD 7/15-4 1台 压力0-5MPa可调 2 管束专用清洗喷头 Rotating Nozzle 3mm 2个 自旋式 3 风压干燥机 Industrial AirDryer 1台 0.6 MPa 4 泄漏测试装置 Air/Water LeakTester 1套 0.4 MPa 保压\n序 名称 规格/型号 消耗数量 备注 本项目为清洗 类,无备件消耗 (但可能触发堵 管修复\n序号 名称 牌号/品级/规格 消耗数量 备注 1 中性清洗剂 Alconox Detojet 2kg pH=9.5,环保型 2 软化水 Deionized Water 200L 配制清洗液 3 防锈剂 CRC 3-36 100mL 清洗后喷涂\n序号 专业 人数 技能等级 备注 1 机械专业 2 中级+初级 中级操作高压设备\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\n1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥 (1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准 1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1\n表 4.19 MT017 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 T017 030200 连杆大端轴承 修复连杆大端轴承异常磨损 故障触发 ZJ级 安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。 安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。 序号 名称 规格/型号 数量及单位 备注 1 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 1台 自动高压水射流 2 内窥镜(防爆) GE Mentor VisualiQ-Ex 1台 检查缸套下部 3 红外热像仪 FLIR T860 1台 检测局部热点 4 可燃气体检测仪 MSA Altair 5X 1台 多气体复合 2)备品 备件 序 名称 规格/型号 消耗数量 备注 1 全套活塞环组 MAN5L35MC-RING-SET 1套 含1-4号环 2 活塞头(如需更换) MAN5L35MC-PISTON-HEAD 1件 铸钢整体式 3 扫气口密封条 Viton Strip 5×10mm 若干 更换烧损件 3)消耗 材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 生物降解清洗剂 Envirox SC-90 5L 清除碳化油泥 2 耐高温防火毯 Fiberglass Mat1200°C 2m 局部隔热防护 3 防锈剂 CRC 3-36 200mL 修复后防护 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工主导故障分析 2 安全监督 1 高级安全员 全程监护受限空间作业 修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头; 2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。 验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。 页码:1/1 版本号:1\n表 4.20 MT018 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT018 030201 活塞头 修复活塞头部烧蚀熔损 故障触发 ZJ级 安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。 安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。 序号 名称 规格/型号 数量及单位 备注 1 等离子堆焊机 PLASMAD 5000 1台 自动送粉 2 热处理炉 Box Furnace 800° C 1台 控温±10℃ 3 超声波探伤仪 Olympus Epoch 650 1台 检测内部缺陷 4 三维扫描仪 FARO Arm Quantum 1台 修复前后形貌比对 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 本项目为修复类,通常不消耗新活塞(除非报废) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 镍基合金焊粉 INCONEL 625 300g 耐高温抗烧蚀 2 渗透探伤剂 Magnaflux ZL-27A 1套 PT检测裂纹 3 保温棉 Ceramic FiberBlanket 2 kg 焊后包裹缓冷 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+高级技师 总工批准修复方案 2 焊接专业 1 高级焊工(ASMEIX认证) 执行堆焊\n修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理 3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证 2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm); 3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1\n表 4.21 MT019 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗 3 扭矩扳手 40-200 N·m 1把 用于压紧螺母回装 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件 MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂配对 2 铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道 2 无绒布 Kimwipe EX-L 5张 3 高温润滑脂 Molycote G-1052 少量 4)人力人员 序号 专业 人数 技能等级 1 机械专业 2 高级+中级 修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m; 2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。 验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。 页码:1/1 版本号:1\n表 4.22 MT020 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。 安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。 序号 名称 规格/型号 数量及单位 备注 1 主机监控系统(PMS) Integrated BridgeSystem 1套 读取实时功率曲线 2 调速器性能测试仪 Woodward Test Bench 1台 检测响应滞后 3 燃油黏度计 MarconiViscotester 1台 测 HFO黏度 4 多通道数据记录仪 DataTaker DT80 1套 同步录负荷/转速 2)备品 序 名称 规格/型号 消耗数量 备注 1 调速器伺服阀滤芯 OEM-GOV-FILTER 1个 如堵塞 2 燃油温度传感器 PT100,0-200°C 1个 如漂移 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 标准测试燃油 ISO 8217 RMG380 300L 用于稳定测试 2 密封胶 Loctite 577 少量 传感器安装 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导系统分析 2 自动化专业 1 中级 负责调速器信号检测 修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。 分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。 针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟; 验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下); 3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4维修工作指导\\n4.1 维修项目索引表\\n表 4.1 船舶主发动机维修项目索引表\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 页码 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 20 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/2000h JY级 22 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 24 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JY级 26 MT005 020203 连杆小端轴承 更换连杆小端轴承 2A/12000h JY级 29 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 31 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 33 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 35 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 37 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 40 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 43 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 45 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 47 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 49 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 52 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 54 MT017 020201 连杆大端轴承 修复连杆大端轴承异常磨损 1U ZJ级 57 MT018 030201 活塞头 修复活塞头部烧蚀 1U ZJ级 59 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 61 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 63\\n4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n序号 故障现象 故障原因 维修项目 1 主机运行中振动异常增大 主轴承或连杆大端轴承磨损 执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损 曲轴主轴颈跳动超差 执行以下维修项目:MTO03 检测曲轴主轴颈跳动量 2 单缸功率下降、排温偏低 活塞头烧蚀或活塞环断裂 执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀 气缸套严重磨损 执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套 喷油嘴偶件雾化不良 执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障 3 排气温度异常升高 排气阀密封面磨损或阀座烧蚀 执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座 涡轮增压器轴承损坏 执行以下维修项目:MT015 更换涡轮增压器轴承组件 4 扫气箱内发现润滑油泄漏 活塞杆填料函密封失效 执行以下维修项目:MTO01保养机座与机架组件 5 主机启动困难或压缩压力不足 缸盖密封环老化失效 执行以下维修项目:MT001保养机座与机架组件 6 主机功率输出不稳定 喷油器工作不一致 执行以下维修项目:MT019 排除喷油器雾化不良故障 调速系统响应异常 执行以下维修项目:MT020 排除主机功率异常波动故障 7 空冷器后扫气温度持续偏高 空冷器管束芯体结垢或堵塞 执行以下维修项目:MT016 清洗空冷器管束芯体 8 主机润滑油消耗异常增加 活塞环磨损或断裂 执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环 活塞杆填料函磨损 执行以下维修项目:MT001保养机座与机架组件 9 高压燃油管路附近有油渍 高压油管接头密封失效 执行以下维修项目:MT014 更换高压油泵柱塞偶件 10 主机紧急停机 润滑油压力骤降 执行以下维修项目:MT001保养机座与机架组件 多缸燃烧严重失衡 执行以下维修项目:MT020 排除主机功率异常波动故障\\n4.3 维修项目表\\n本节主要填写各维修项目的修理表,包括预防性、恢复性维修、故障排查项目。\\n表 4.3 MT001 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。 安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。 序号 名称 规格/型号 数量及单位 备注 1 液压升降平台 HLP-3000 1台 用于接近主机上部 2 扭矩扳手 TB-200N·m 1把 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT 1套 厂家配套 4 工业吸油泵 VAC-0IL50 1台 防爆型 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 高压燃油泵 HD-45A 2个 原厂件 2 涡轮增压器 TC-80B 1个 耐高温氟橡胶 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 柴油机专用润滑油 Shell Mysella S5N80 50L 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 5张 不掉屑 3 清洗剂 CRC Brakleen 1罐 用于清洁滤座\\n4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师 主导保养流程 2 电气专业 1 技师 监控主机ECU状 态 修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识; 3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油; 图 MT001.1旋松螺塞 (2)检查排出机油中是否有金属屑,若有则记录并上报异常。 图MT001.2检查 2)更换机油滤芯\\n图 MT001.3 拆卸\\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\\n图 MT001.4 滤芯安装扭矩示意图\\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\\n图 MT001.5 滤芯安装扭矩示意图\\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\\n(2)静置 10 分钟后复查油位,补充至标准范围。\\n图 MT001.6 油位检查\\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\\n图 MT001.7 安装放油螺塞\\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\\n图 MT001.8 油污清理\\n3)拆除“禁止启动”牌,通知集控室保养完成。 验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下); 2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。 页码:2/2 版本号:1\\n表 4.4 MT002 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/200h JY级 安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。 安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。 序号 名称 规格/型号 数量及单位 备注 1 激光对中仪 SKF TKSA 71 1套 用于轴承同轴度检测 2 塞尺组 0.02 -1.00 mm 1套 精度±0.005mm 3 液压拉伸器 HYTORC AVANTI-10 1台 用于地脚螺栓预紧 4 内径千分尺 200-300mm 1把 校验有效期内 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁酒精 AR Grade 100mL 2 防锈纸 VCI-200 2张 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;\\n图 MT002.1 换油前清洗\\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\\n图 MT002.2 检查\\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\\n图 MT002.3 塞尺测量\\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\\n图 MT002.4 激光对中仪\\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\\n图 MT002.5 测量轴线偏移量\\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\\n判定与处理 1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。 验收标准 1.主轴承座与机座结合面间隙≤0.05mm(全周); 2.相邻主轴承同轴度偏差≤0.08 mm/m; 3.地脚螺栓预紧力在设计值 ±5% 范围内。 页码:1/1 版本号:1\\n表 4.5 MT003 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。 安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg 序号 名称 规格/型号 数量及单位 备注 1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm 2 磁力表座 Starrett 16B 1个 带万向关节 3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg\\n4 盘车手轮 OEM-MAN-BW-PCW 1个 原厂配套\\n序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1\\n序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 50mL 清洁轴颈表面 2 无绒擦拭布 Kimwipe EX-L 3张 防刮伤轴面\\n序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工复刻数据\\n图 MT003.1 清洁\\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\\n图 MT003.2 标记测量基准点\\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\\n2)安装千分表\\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\\n图 MT003.3 千分尺\\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\\n(2)预压千分表 0.3 mm,归零。\\n3)盘车测量\\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\\n(2)跳动量 = 最大值 - 最小值;\\n(3)重复上述步骤,依次测量其余主轴颈。\\n数据判定\\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\\n表 4.6 MT004 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JT级 安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。 安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。 序号 名称 规格/型号 数量及单位 备注 1 液压拉伸器 HYTORC RS-20 1套 2 扭矩扳手 Norbar 1500N·m 1把 精度±2% 3 轴承安装导向套 OEM-MAN-BW-BG-04 1个 4 内窥镜 GE Mentor Visual iQ 1台 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆大端轴承上瓦 MAN 5L35MC-BRG-UP 1副 原厂高锡合金 2 连杆大端轴承下瓦 MAN 5L35MC-BRG-DN 1副 3 连杆螺栓 M30 ×2.0 Grade 12.9 2根 次性使用,强制更换 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\\n1 轴承装配润滑脂 Kluber Isoflex LDS18 Special A 10g 仅涂瓦背 2 螺纹锁固胶 Loctite 2701 少量 用于螺栓螺纹(如适用) 3 清洗剂 Brulin 815GD 200mL 清洁连杆结合面\\n4)人力人员\\n序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2x工程师 总工监督关键步骤\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成停机冷却,滑油系统泄压;\\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\\n拆卸旧轴承\\n1)拆连杆盖\\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\\n(2)取下螺栓及连杆大端盖,放置于专用托架。\\n2)取出旧轴承\\n(1)轻敲连杆体侧面,使下瓦自然脱落;\\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\\n安装新轴承\\n1)清洁与检查\\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\\n(2)目视检查新瓦背面涂层均匀,无裂纹。\\n2)装配\\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\\n(2)将下瓦装入连杆盖,同样对准定位;\\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\\n3)紧固螺栓\\n(1)安装新连杆螺栓,手工旋入到底;\\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\\n(3)最终用角度法复核(如适用)。\\n图 MT004.1 连杆大端轴承结构分解图\\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\\n表 4.7 MT005 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT005 020203 连杆小段轴承 更换连杆小段轴承 2A/12000h JY级 安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。 安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。 序号 名称 规格/型号 数量及单位 备注 1 活塞吊装专用吊具 OEM-MAN-BW-PST-05 1套 带缓冲橡胶夹头 2 感应加热器 EFD Induction Minac16 1台 温控精度±5℃ 3 内径千分尺 40 - 50 mm 1把 校验有效期内 4 铜棒与塑料锤 Φ20×300 mm 各1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆小端衬套(上) MAN 5L35MC-BUSH-UP 1件 锡青铜基 2 连杆小端衬套(下) MAN 5L35MC-BUSH-DN 1件 3 活塞销卡簧 Φ50×2.5 mm 2个 不锈钢,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\\n1 高温装配润滑脂 Molycote G-1052 5g 2 清洗剂 Brulin 815GD 150mL 3 耐高温标记笔 Markal 900°F 1支\\n4)人力人员\\n序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师主导热装\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\\n拆卸旧衬套\\n1)抽出活塞-连杆总成\\n(1)拆除缸头、喷油器及冷却水管路;\\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\\n2)压出旧衬套\\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\\n安装新衬套\\n1)清洁与预装检查\\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\\n(2)测量座孔内径,记录作为过盈量计算依据。\\n2)热装新衬套\\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\\n(2)迅速将热衬套套入连杆小端,确保完全到位;\\n(3)自然冷却至室温,禁止强制冷却。\\n3)精铰与研配(如需要)\\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\\n组装活塞销与卡簧\\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\\n验收标准 1.衬套与座孔过盈配合牢固,无松动或轴向位移; 2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。 页码:1/1 版本号:1\\n表 4.8 MT006 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。 安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配350mm活塞 2 内窥镜 GE Mentor Visual iQ 1台 3 深度规 0-150mm 1把 4 放大镜 10× with scale 1个 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检查类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 积碳清洗剂 CRC Carbon CleanPro 200mL 环保型 2 无纺布 Industrial Grade 5张 3 防锈油 CRC 3-36 50mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。 抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态 1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查 (1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。 判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008; 3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。\\n表 4.9 MT007 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。 安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。\\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配Φ350 mm活塞 2 环口间隙测量规 Feeler Gauge Set 1套 0.05-1.00mm 3 环槽清洁刮刀 Custom-Piston-Groove-Scraper 1把 铜质刃口 4 扭矩扳手 20-100 N·m 1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第一道压缩环 MAN 5L35MC-RING-1 1件 梯形截面,表面镀铬 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 5g 2 无绒布 Kimwipe EX-L 3张 3 清洗剂 Brulin 815GD 100mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师复刻还口间隙 修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。 验收标准 1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内; 页码:1/1 3.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1\\n表 4.10 MT008 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。 安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 同MT007 2 环口定位夹具 Custom-Ring-Aligner 1套 控制各环开口相位 3 放大镜(带LED) 5X with light 1个 检查环体缺陷 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第二道压缩环 MAN 5L35MC-RING-2 1件 锥面环 2 第三道刮油环(组合式) MAN 5L35MC-RING-3 1套 含轨环+弹簧胀圈 3 第四道刮油环(组合式) MAN 5L35MC-RING-4 1套 同上 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 10g 涂所有环外圆 2 缸套润滑机油 Shell Mysella S5N80 50mL 涂缸壁 3 标记笔(耐油) Marka1Oil-Resistant 1支 标记环开口位置 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+ 技师 工程师监督相位布置 修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。 拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。 差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120° (1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证 1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;\\n表 4.11 MT009 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。 安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 内径千分尺(三点式) Mitutoyo 204-304 mm 1套 分辨率0.001mm 2 缸套磨损测量记录仪 Custom-Bore-Wear-Log 1台 自动生成磨损曲线 3 防爆LED手电 Streamlight 88040 1个 24V安全电压 4 清洁气枪 Industrial Air BlowGun 1把 压力≤0.5 MPa 2)备品 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检测类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 100mL 清洁测量接触面 2 无绒布 Kimwipe EX-L 5张 防刮伤缸壁 3 防锈纸 VCI-200 2张 测量后临时覆盖 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工审核磨损趋势\\n3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略) 验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。 页码:1/1 版本号:1\\n表 4.12 MT010 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。 安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。 序号 名称 规格/型号 数量及单位 备注 1 液压压装机 HYDRA-PRESS-50T 1台 带压力与位移监控 2 缸套拔出器 OEM-MAN-BW-LINER-PULL 1套 螺纹顶压式 3 冷却水腔密封测试仪 LeakTest-CT300 1台 0.3 MPa保压 4 深度规 0- 300 mm 1把 测量缸套凸肩高度 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 气缸套总成 MAN5L35MC-LINER-ASSY 1件 含0形圈、定位销 2 缸套水封0形圈 Viton Φ380×5.0 2个 耐高温氟橡胶 3 缸套油封环 NBR Φ352×3.0 1个 下部密封 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 装配润滑脂 Kluber Isoflex LDS18 Special A 20g 涂缸套外壁 2 密封胶 Loctite 518 少量 水腔法兰面(如适用) 3 清洗剂 Brulin 815GD 300mL 清洁缸体座孔 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工监督压装对中\\n修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。 3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm; 2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1\\n表 4.13 MT011 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。 安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。\\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK 1套 带隔热手柄 2 红外测温仪 Fluke 62 Max+ 1台 测量阀杆温度 3 密封面检测平板 Optical Flat λ/10 1块 用于着色法检查 4 着色剂套装 Dykem Steel Blue +Developer 1套 检查接触印痕 2)备品备件 序 名称 规格/型号 消耗数量 备注 一 本项目为检查类,无备件消耗(但可能触发MT012) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温清洁剂 CRC Brakleen HT 100mL 清除积碳 2 无绒布 Kimwipe EX-L 5张 防刮伤密封面 3 防锈油 CRC 3-36 30mL 检查后临时防护 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座); 3)记录检查结果于《排气阀状态档案》。 验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm; 2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。 页码:1/1 版本号:1\\n表 4.14 MT012 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。 安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。 序号 名称 规格/型号 数量及单位 备注 1 便携式阀座镗床 SUNNEN SV-20 1台 带角度调节 2 液压阀座压装机 HYDRA-SEAT-PRESS 1台 用于过盈配合座 3 渗透探伤套装 Magnaflux ZL-27A 1套 PT检测裂纹 4 角度规 0-90°Protractor 1把 检查密封锥角 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀座 MAN5L35MC-EXH-SEAT 1件 Stellite合金堆焊 2 定位销(如适用) Φ8×20 mm 1个 不锈钢 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温镍基焊条 ENiCrFe-3 1根 用于焊接固定(如需要) 2 清洗剂 Brulin 815GD 150mL 清洁阀座孔 3 研磨膏(细) Clover Leaf Green 20g 配合研磨 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工批准焊接/压装方案 修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座 1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。 2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座); 3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。 页码:1/1 版本号:1\\n表 4.15 MT013 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火 安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 高压燃油压力表 0-20 MPa 1个 校验有效期内 3 喷油雾化测试台 Bosch EPS 815 1台 可测开启压力与雾化角 4 扭矩扳手 40 -200 N·m 1把 用于喷油器压紧螺母 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件(针阀+阀体) MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂高精度配对 2 喷油器铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性\\n3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200 mL 用于冲洗油道 2 3 无绒布 高温润滑脂 Kimwipe EX-L 5张 少量 擦拭偶件表面 4)人力人员 Molycote G-1052 涂压紧螺纹 序号 专业 人数 技能等级 备注 修理步骤及工艺 1 机械专业 2 工程师+技师 工程师操作测试 台 更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件 (1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5° 无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa; 2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。\\n表 4.16 MT014 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。 安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖 序号 名称 规格/型号 数量及单位 备注 1 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤 2 供油定时检测仪 AVL 545 1台 测量喷油始点 3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙 4 扭矩扳手 30-150 N·m 1把 用于泵体检修盖 2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用) 序 名称 规格/型号 消耗数量 备注 1 柱塞+套筒偶件 MAN5L35MC-PLUNGER-KIT 1套 配对编号一致 2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高压泵专用润滑油 Shell Tellus S4 VX32 100mL 用于偶件润滑 2 密封胶 Loctite 577 少量 泵体结合面(如适用) 3 清洗柴油 ISO 4020 Grade A 300mL 冲洗油道 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工确认供油定时 修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m; (2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA; 验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA; 3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1\\n表 4.17 MT015 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。 安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。 序号 名称 规格/型号 数量及单位 备注 1 涡轮增压器专用拆装台 Custom-Turbo-Bench 1台 带V型支撑 2 感应加热器 EFD Minac 10 1台 温控±5℃ 3 动平衡检测仪 Schenck BALANCER V 1台 G2.5级精度 4 扭矩扳手 10-80 N·m 1把 用于壳体螺栓 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 径向轴承(主轴) MAN TCA77-BRG-RAD 1套 铜铅合金 2 止推轴承组件 MANTCA77-BRG-THRUST 1套 含瓦片+垫片组 3 轴封环 Carbon Seal Φ60X3 2个 石墨基 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温润滑脂 Kluber Isoflex LDS18 Special A 15g 仅涂轴承外圈 2 清洗剂 Brulin 815GD 200mL 清洁轴承座 3 密封胶 Loctite 518 少量 壳体结合面 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导装配 2 电子专业 1 中级 监测振动传感器\\n(如适用) 修理步骤及工艺 更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换; 拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃; 2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。\\n表 4.18 MT016 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。 安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。\\n序号 名称 规格/型号 数量及单位 备注 1 高压清洗机 Kärcher HD 7/15-4 1台 压力0-5MPa可调 2 管束专用清洗喷头 Rotating Nozzle 3mm 2个 自旋式 3 风压干燥机 Industrial AirDryer 1台 0.6 MPa 4 泄漏测试装置 Air/Water LeakTester 1套 0.4 MPa 保压\\n序 名称 规格/型号 消耗数量 备注 本项目为清洗 类,无备件消耗 (但可能触发堵 管修复\\n序号 名称 牌号/品级/规格 消耗数量 备注 1 中性清洗剂 Alconox Detojet 2kg pH=9.5,环保型 2 软化水 Deionized Water 200L 配制清洗液 3 防锈剂 CRC 3-36 100mL 清洗后喷涂\\n序号 专业 人数 技能等级 备注 1 机械专业 2 中级+初级 中级操作高压设备\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥 (1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准 1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1\\n表 4.19 MT017 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 T017 030200 连杆大端轴承 修复连杆大端轴承异常磨损 故障触发 ZJ级 安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。 安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。 序号 名称 规格/型号 数量及单位 备注 1 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 1台 自动高压水射流 2 内窥镜(防爆) GE Mentor VisualiQ-Ex 1台 检查缸套下部 3 红外热像仪 FLIR T860 1台 检测局部热点 4 可燃气体检测仪 MSA Altair 5X 1台 多气体复合 2)备品 备件 序 名称 规格/型号 消耗数量 备注 1 全套活塞环组 MAN5L35MC-RING-SET 1套 含1-4号环 2 活塞头(如需更换) MAN5L35MC-PISTON-HEAD 1件 铸钢整体式 3 扫气口密封条 Viton Strip 5×10mm 若干 更换烧损件 3)消耗 材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 生物降解清洗剂 Envirox SC-90 5L 清除碳化油泥 2 耐高温防火毯 Fiberglass Mat1200°C 2m 局部隔热防护 3 防锈剂 CRC 3-36 200mL 修复后防护 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工主导故障分析 2 安全监督 1 高级安全员 全程监护受限空间作业 修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头; 2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。 验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。 页码:1/1 版本号:1\\n表 4.20 MT018 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT018 030201 活塞头 修复活塞头部烧蚀熔损 故障触发 ZJ级 安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。 安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。 序号 名称 规格/型号 数量及单位 备注 1 等离子堆焊机 PLASMAD 5000 1台 自动送粉 2 热处理炉 Box Furnace 800° C 1台 控温±10℃ 3 超声波探伤仪 Olympus Epoch 650 1台 检测内部缺陷 4 三维扫描仪 FARO Arm Quantum 1台 修复前后形貌比对 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 本项目为修复类,通常不消耗新活塞(除非报废) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 镍基合金焊粉 INCONEL 625 300g 耐高温抗烧蚀 2 渗透探伤剂 Magnaflux ZL-27A 1套 PT检测裂纹 3 保温棉 Ceramic FiberBlanket 2 kg 焊后包裹缓冷 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+高级技师 总工批准修复方案 2 焊接专业 1 高级焊工(ASMEIX认证) 执行堆焊\\n修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理 3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证 2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm); 3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1\\n表 4.21 MT019 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗 3 扭矩扳手 40-200 N·m 1把 用于压紧螺母回装 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件 MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂配对 2 铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道 2 无绒布 Kimwipe EX-L 5张 3 高温润滑脂 Molycote G-1052 少量 4)人力人员 序号 专业 人数 技能等级 1 机械专业 2 高级+中级 修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m; 2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。 验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。 页码:1/1 版本号:1\\n表 4.22 MT020 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。 安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。 序号 名称 规格/型号 数量及单位 备注 1 主机监控系统(PMS) Integrated BridgeSystem 1套 读取实时功率曲线 2 调速器性能测试仪 Woodward Test Bench 1台 检测响应滞后 3 燃油黏度计 MarconiViscotester 1台 测 HFO黏度 4 多通道数据记录仪 DataTaker DT80 1套 同步录负荷/转速 2)备品 序 名称 规格/型号 消耗数量 备注 1 调速器伺服阀滤芯 OEM-GOV-FILTER 1个 如堵塞 2 燃油温度传感器 PT100,0-200°C 1个 如漂移 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 标准测试燃油 ISO 8217 RMG380 300L 用于稳定测试 2 密封胶 Loctite 577 少量 传感器安装 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导系统分析 2 自动化专业 1 中级 负责调速器信号检测 修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。 分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。 针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟; 验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下); 3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_24e1514f-5346-427b-9fb3-511f59fe36d4.pdf#page=31\"}]", + "embedding": [ + -0.03932313621044159, + -0.009300311096012592, + -0.03408654034137726, + 0.006764747202396393, + -0.0014721842017024755, + -0.021569324657320976, + 0.019126228988170624, + 0.008390233851969242, + 0.004854558035731316, + -0.003747378010302782, + -0.025268035009503365, + -0.014493105933070183, + 0.033833470195531845, + 0.022231198847293854, + 0.001361466245725751, + -0.06949683278799057, + 0.016021257266402245, + 0.01718927174806595, + -0.017306072637438774, + -0.033385731279850006, + 0.012079210951924324, + 0.013733897358179092, + 0.04025754705071449, + 0.01322775799781084, + 0.004156182985752821, + 0.0020038739312440157, + 0.004496853798627853, + -0.01901916041970253, + 0.05571426451206207, + -0.016712332144379616, + -0.05847856402397156, + -0.030640898272395134, + -0.07471396028995514, + -0.04037434980273247, + -0.02583257481455803, + -0.046175483614206314, + -0.002540430286899209, + -0.014901910908520222, + -0.04395625740289688, + 0.03381400182843208, + -0.010200655087828636, + -0.03805778920650482, + 0.012449081987142563, + -0.007295220158994198, + -0.021238386631011963, + -0.022036530077457428, + -0.02645551599562168, + -0.024722961708903313, + -0.03690924122929573, + -0.04578614607453346, + -0.02750672772526741, + -0.01569032110273838, + 0.014785110019147396, + -0.01523284800350666, + 0.014532039873301983, + 0.03858339414000511, + 0.019739435985684395, + 0.034514810889959335, + -0.06961362808942795, + 0.023691216483712196, + -0.011952675879001617, + 0.03424227610230446, + -0.009383045136928558, + 0.0014247336657717824, + 0.019262496381998062, + 0.08604369312524796, + -0.0006147281965240836, + -9.908347419695929e-05, + -0.00993298552930355, + -0.06739440560340881, + 0.009421979077160358, + 0.016459263861179352, + 0.00765535794198513, + -0.013393226079642773, + -0.029511818662285805, + 0.026864320039749146, + 0.036792438477277756, + -0.015554051846265793, + -0.012887086719274521, + 0.006978883408010006, + 0.011845608241856098, + -0.0021620425395667553, + 0.02507336623966694, + 0.014132969081401825, + -0.025968844071030617, + 0.023360278457403183, + -0.038388725370168686, + 0.027720864862203598, + -0.02281520515680313, + -0.05267743021249771, + 0.013967500068247318, + -0.007572623901069164, + -0.023126676678657532, + -0.008760104887187481, + -0.04823897406458855, + -0.01879529096186161, + -0.02894727885723114, + 0.027097923681139946, + 0.011076665483415127, + -0.005367997568100691, + 0.05404011160135269, + -0.0021997594740241766, + 0.03332732990384102, + -0.05789455771446228, + 0.06151540204882622, + -0.010648394003510475, + 0.03449534624814987, + 0.02499549835920334, + -0.01109613198786974, + -0.009348978288471699, + 0.015661120414733887, + 0.03324946388602257, + -0.03188677877187729, + 0.0207517147064209, + -0.0075969574972987175, + -0.03342466428875923, + 0.006935082841664553, + -0.05306676775217056, + 0.05318356677889824, + -0.0028519006446003914, + -0.02727312594652176, + 0.009879451245069504, + -0.0009471863158978522, + -0.04492960125207901, + -0.020323442295193672, + -0.032023049890995026, + 0.04660375788807869, + -0.013402960263192654, + -0.010755461640655994, + 0.012672951444983482, + -0.005085727199912071, + 0.030251560732722282, + -0.03539082407951355, + 0.028986211866140366, + -0.004207283724099398, + -0.054974522441625595, + 0.007280620280653238, + -0.008215031586587429, + -0.02061544544994831, + -0.02925874851644039, + -0.000467205565655604, + 0.018123682588338852, + 0.020712779834866524, + -0.014064834453165531, + -0.002418762305751443, + -0.006404609885066748, + 0.01531071588397026, + -0.03856392577290535, + 0.0035819094628095627, + 0.00668687978759408, + -0.006370542570948601, + 0.02811020240187645, + 0.029803821817040443, + 0.018075015395879745, + 0.01355869509279728, + 0.00868223700672388, + -0.08106016367673874, + 0.023379744961857796, + -0.043761588633060455, + -0.00018371886108070612, + 0.044890668243169785, + 0.055208124220371246, + -0.056570809334516525, + 0.011524404399096966, + 0.03274332359433174, + -0.022620536386966705, + 0.017491009086370468, + 0.006643079221248627, + -0.02546270377933979, + 0.019817303866147995, + 0.009582580998539925, + 0.010784662328660488, + -0.021316254511475563, + 0.0018749056616798043, + 0.02491763047873974, + 0.0027594328857958317, + 0.05879003554582596, + 0.03143904358148575, + 0.017851145938038826, + -0.010969597846269608, + 0.0287331435829401, + 0.036870308220386505, + 0.0384860597550869, + -0.016507931053638458, + 0.01143680326640606, + 0.045435741543769836, + 0.050886474549770355, + -0.03735698014497757, + 0.0075239562429487705, + -0.021082650870084763, + -0.0074217552319169044, + -0.03363880142569542, + 0.024236289784312248, + 0.020342908799648285, + 0.033015862107276917, + -0.056259337812662125, + 0.04045221582055092, + 0.009431712329387665, + 0.018230751156806946, + -0.0030587364453822374, + 0.02645551599562168, + -0.023243477568030357, + 0.024956565350294113, + -0.013432160019874573, + -0.02705898880958557, + 0.02084904909133911, + 0.014532039873301983, + -0.061865806579589844, + -0.0009131192346103489, + -0.05372864007949829, + 0.0039298804476857185, + -0.049757394939661026, + -0.011242134496569633, + -0.012020810507237911, + -0.030718766152858734, + 0.033833470195531845, + 0.008268564939498901, + -0.04084155336022377, + 0.014162168838083744, + -0.027526194229722023, + -0.03761005029082298, + 0.062410879880189896, + 0.025657372549176216, + -0.04099728912115097, + 0.01668313331902027, + -0.05536385998129845, + 0.0718717873096466, + 0.011466003954410553, + -0.006292675156146288, + -0.021491456776857376, + -0.03083556704223156, + -0.010512125678360462, + -0.04621441662311554, + 0.004297317937016487, + 0.024664560332894325, + 0.012507482431828976, + -0.0016157525824382901, + -0.015028445981442928, + 0.03529348969459534, + 0.03402813896536827, + -0.008253965526819229, + -0.04041328281164169, + -0.030660366639494896, + -0.012614550068974495, + -0.019116494804620743, + 0.04235997051000595, + 0.05267743021249771, + 0.0054215313866734505, + -0.023749615997076035, + 0.027565129101276398, + 0.013763097114861012, + -0.00912997592240572, + -0.03153637796640396, + -0.001845705322921276, + 0.011592538096010685, + -0.0005885694990865886, + 0.031633712351322174, + -0.016001790761947632, + -0.0013127990532666445, + -0.04084155336022377, + -0.014522306621074677, + 0.05855643376708031, + 0.01109613198786974, + 0.020634913817048073, + -0.0175007414072752, + 0.022386934608221054, + -0.013782564550638199, + 0.0012105978094041348, + -0.03893379867076874, + 0.07008083909749985, + -0.028986211866140366, + -0.022834671661257744, + 0.023613348603248596, + 0.019262496381998062, + 0.04356691986322403, + 0.01367549691349268, + 0.01421083603054285, + -0.006102873012423515, + 0.06525304168462753, + -0.03825245797634125, + 0.033599868416786194, + 0.012283612973988056, + 0.03190624713897705, + -0.05789455771446228, + 0.00329720601439476, + -0.0018055548425763845, + -0.06899069249629974, + -0.03945940360426903, + -0.019642101600766182, + -0.0706259086728096, + -0.027701396495103836, + -0.04570828005671501, + 0.08292899280786514, + -0.008701703511178493, + -0.005893603432923555, + 0.0636567622423172, + 0.012916287407279015, + -0.18236590921878815, + 0.022484268993139267, + -0.0215303897857666, + 0.03881699591875076, + -0.0018311052117496729, + -0.007898693904280663, + -0.010541325435042381, + 0.012040277011692524, + -0.02515123412013054, + -0.00540206441655755, + -0.03887539729475975, + -0.07502543181180954, + 0.004241350572556257, + -0.02485922910273075, + 0.0246256273239851, + -0.005319330375641584, + -0.02030397579073906, + 0.021413588896393776, + 0.018746623769402504, + -0.028908345848321915, + -0.03007635846734047, + 0.002334811259061098, + 0.02855794131755829, + -0.010551059618592262, + -0.045046404004096985, + -0.07183285802602768, + -6.885654875077307e-05, + 0.020557045936584473, + -0.05470198765397072, + 0.0006229407736100256, + 0.021043717861175537, + 0.001016537076793611, + -0.011738539673388004, + 0.06404609978199005, + -0.024645093828439713, + -0.030193161219358444, + -0.007368221413344145, + -0.0486283153295517, + -0.01788034662604332, + -0.002995469141751528, + 0.04317758232355118, + 0.06548664718866348, + -0.003367773490026593, + 0.039517804980278015, + -0.028908345848321915, + -0.03287959098815918, + -0.004652588628232479, + -0.017082203179597855, + -0.029064079746603966, + 0.003036836162209511, + -0.01553458534181118, + -0.03381400182843208, + -0.0008723604260012507, + 0.032159317284822464, + -0.03809672221541405, + 0.00665281293913722, + -0.032548654824495316, + 0.0016072358703240752, + -0.013003888539969921, + 0.02721472457051277, + -0.06455224007368088, + -0.04158129543066025, + -0.007095684763044119, + -0.034982018172740936, + -0.03336626663804054, + 0.012818953022360802, + 0.012643750756978989, + -0.03114703856408596, + 0.01007412001490593, + -0.03128330782055855, + 0.0016729366034269333, + -0.01620619371533394, + 0.03007635846734047, + 0.007562890183180571, + -0.015884989872574806, + -0.001709437114186585, + -0.018221016973257065, + -0.03544922173023224, + -0.02182239294052124, + -0.13120689988136292, + -0.025949375703930855, + 0.01569032110273838, + -8.896981307771057e-05, + -0.060503121465444565, + -0.0107262609526515, + -0.011125332675874233, + -0.011446536518633366, + 0.004552821163088083, + 0.012264146469533443, + 0.23905351758003235, + -0.007309820502996445, + 0.010813862085342407, + 0.01893155835568905, + 0.06864028424024582, + -0.025482170283794403, + -0.008964506909251213, + -0.024567225947976112, + 0.02795446664094925, + -0.030056891962885857, + -0.0033969739452004433, + 0.004808323923498392, + 0.03628629818558693, + 0.01680966652929783, + 0.029219815507531166, + -0.023516014218330383, + -0.01582658849656582, + 0.012449081987142563, + 0.10675647109746933, + -0.01832808554172516, + 0.01212787814438343, + 0.01780247874557972, + -0.012994155287742615, + -0.0010092370212078094, + -0.05727161839604378, + -0.037084441632032394, + -0.03472894802689552, + 0.04586401581764221, + -0.02279573865234852, + 0.009650715626776218, + -0.014843510463833809, + 0.019642101600766182, + 0.04107515513896942, + -0.00996705237776041, + -0.09266243875026703, + 0.014882444404065609, + 0.006302408408373594, + 0.006876681931316853, + 0.05006886273622513, + -0.008200431242585182, + -0.028129668906331062, + -0.03122490644454956, + -0.005080860573798418, + -0.0004057631886098534, + 0.0010524292010813951, + -0.05341717228293419, + -0.0028008001390844584, + -0.01900942623615265, + 0.007051884196698666, + -0.0037790117785334587, + 0.018201550468802452, + 0.017082203179597855, + -0.024138955399394035, + 0.010259055532515049, + -0.02137465588748455, + -0.01758834347128868, + 0.004844824317842722, + -0.02347707934677601, + 0.027487261220812798, + 0.002300744177773595, + 0.019904904067516327, + -0.009689648635685444, + -0.022542668506503105, + 0.054156914353370667, + 0.008555701933801174, + -0.02341867983341217, + -0.024976031854748726, + 0.003883646335452795, + 0.01330562587827444, + 0.0004988393047824502, + 0.0018955892883241177, + 0.0009185943054035306, + -0.005007859785109758, + 0.024976031854748726, + 0.010609460063278675, + 0.013013621792197227, + 0.0033969739452004433, + 0.07798440009355545, + -0.014609907753765583, + 0.013286158442497253, + -0.0628780871629715, + -0.045435741543769836, + -0.0415034294128418, + -0.04812217503786087, + 0.012059743516147137, + -0.0283438041806221, + -0.05357290431857109, + -0.03083556704223156, + -0.007450955454260111, + 0.010560792870819569, + -0.018230751156806946, + 0.004998126532882452, + 0.01668313331902027, + -0.0010560792870819569, + 0.002376178279519081, + -0.02742885984480381, + 0.002065924694761634, + -0.027935000136494637, + -0.01712113805115223, + -0.004134282469749451, + -0.03387240320444107, + -0.035721760243177414, + -0.003949346952140331, + -0.010434257797896862, + -0.009227310307323933, + 0.015203648246824741, + 0.0032509721349924803, + 0.03537135571241379, + -0.02781819924712181, + 0.019223563373088837, + 0.031400106847286224, + 0.01758834347128868, + -0.01421083603054285, + -0.015476184897124767, + 0.031477976590394974, + -0.009237043559551239, + 0.014687775634229183, + 0.07315660268068314, + 0.024353090673685074, + 0.026027243584394455, + -0.07533689588308334, + 0.054001178592443466, + -0.018075015395879745, + 0.01110586617141962, + -0.01667339913547039, + -0.016868067905306816, + -0.015524852089583874, + -0.030796634033322334, + -0.0049932594411075115, + 0.03727911040186882, + 0.01923329569399357, + 0.003499175189062953, + 0.019953571259975433, + -0.005280396435409784, + 0.023691216483712196, + 0.0063997432589530945, + -0.014064834453165531, + 0.02735099382698536, + 0.04516320675611496, + -0.008409700356423855, + -0.07471396028995514, + -0.03385293856263161, + -0.003243671962991357, + -0.012468548491597176, + 0.008244231343269348, + -0.010434257797896862, + -0.013724164105951786, + 0.004715856164693832, + -0.022776272147893906, + 0.030816100537776947, + -0.006355942692607641, + 0.062099408358335495, + 0.029667554423213005, + -0.052482761442661285, + 0.030952369794249535, + -0.04932912066578865, + -0.022250665351748466, + -0.021919727325439453, + -0.009558247402310371, + -0.032860126346349716, + 0.009640981443226337, + 0.014298437163233757, + 0.010774928145110607, + 0.043761588633060455, + 0.06451330333948135, + 0.04500747099518776, + -0.0018603055505082011, + 0.06642106175422668, + 0.038836464285850525, + -0.012935753911733627, + 0.030874501913785934, + -0.0024017286486923695, + -0.009538780897855759, + 0.035429757088422775, + 0.04029648005962372, + 0.003075770102441311, + -0.006175873801112175, + 0.006063939072191715, + -0.023827483877539635, + 0.051704082638025284, + 0.016556598246097565, + 0.06478583812713623, + -0.02493709698319435, + 0.008784438483417034, + -0.029881689697504044, + -0.007582357153296471, + 0.03143904358148575, + -0.006862082052975893, + 0.04524107277393341, + -0.0020038739312440157, + -0.0492512546479702, + 0.08651089668273926, + -0.014911644160747528, + 0.013218024745583534, + 0.009577713906764984, + -0.010278522968292236, + 0.06992509961128235, + -0.019885437563061714, + 0.04516320675611496, + -0.018989959731698036, + 0.02789606712758541, + -0.02221173234283924, + 0.01810421608388424, + 0.023983219638466835, + 0.008044696412980556, + -0.0284216720610857, + -0.008930440060794353, + 0.002269110409542918, + 0.01605045795440674, + -0.0034286074806004763, + -0.021238386631011963, + -0.027720864862203598, + 0.001835971954278648, + 0.023224011063575745, + -0.014240036718547344, + -0.016420328989624977, + 0.01766621135175228, + 0.06661573052406311, + 0.01849355362355709, + -0.028071267530322075, + 0.0025379969738423824, + 0.004384919069707394, + 0.05917937308549881, + -0.016760999336838722, + 0.0005818777717649937, + -0.024119487032294273, + -0.01451257336884737, + -0.05341717228293419, + 0.034514810889959335, + -0.009037507697939873, + 0.016352195292711258, + 0.02287360653281212, + 0.013101222924888134, + 0.013909099623560905, + 0.07035337388515472, + 0.013091489672660828, + 0.014035633765161037, + 0.027331525459885597, + 0.021335721015930176, + 0.00456498796120286, + -0.003586776088923216, + -0.0024674294982105494, + 0.04399519041180611, + 0.014055101200938225, + -0.018016615882515907, + 0.030563032254576683, + -0.06976936757564545, + 0.009558247402310371, + 0.010862529277801514, + 0.06533091515302658, + -0.04874511435627937, + 0.010843062773346901, + 0.061126064509153366, + 0.0015135513385757804, + -0.014979778788983822, + 0.0016072358703240752, + 0.01129080168902874, + -0.008278299123048782, + -0.029297683387994766, + -0.00666741281747818, + 0.017023803666234016, + 0.023146143183112144, + -0.00912510883063078, + -0.003202304942533374, + -0.01606019213795662, + 0.0038155121728777885, + 0.005207395646721125, + 0.030504630878567696, + -0.02302934229373932, + -0.06630425900220871, + -0.008497301489114761, + -0.003080636728554964, + -0.05380650982260704, + -0.033599868416786194, + 0.011874807998538017, + 0.010969597846269608, + -0.009232176467776299, + 0.022153330966830254, + 0.04333331808447838, + 0.020790647715330124, + -0.013140156865119934, + -0.02986222319304943, + -0.004594188183546066, + -0.0070664845407009125, + 0.048161108046770096, + -6.189865234773606e-05, + 0.031030237674713135, + -0.018298884853720665, + 0.0036646437365561724, + -0.031166505068540573, + -0.029745422303676605, + -0.013539228588342667, + -0.03280172497034073, + 0.05540279299020767, + -0.02583257481455803, + -0.011923475190997124, + 0.009431712329387665, + 0.030368361622095108, + -0.00856543518602848, + -0.0004805890785064548, + -0.015563786029815674, + 0.02661125175654888, + -0.022075463086366653, + -0.009280843660235405, + 0.017325541004538536, + 0.010482924990355968, + -0.010443991050124168, + -0.008672503754496574, + 0.026124577969312668, + 0.01718927174806595, + 0.04251570627093315, + -0.054156914353370667, + 0.02750672772526741, + 0.02645551599562168, + 0.022328533232212067, + 0.023983219638466835, + 0.005241462495177984, + 0.017237938940525055, + -0.004392219241708517, + 0.0016510363202542067, + 0.0015476184198632836, + -0.00659441202878952, + -0.04738243296742439, + 0.008195564150810242, + -0.06167113408446312, + 0.024294689297676086, + -0.026163512840867043, + 0.025501636788249016, + -0.018756357952952385, + -0.04329438507556915, + -0.019827036187052727, + -0.0014734008582308888, + 0.012030543759465218, + 0.02517070062458515, + 0.017851145938038826, + -0.0413476936519146, + 0.005367997568100691, + -0.023204542696475983, + 0.053611841052770615, + -0.03128330782055855, + -0.022172797471284866, + -0.01613806001842022, + 0.0384860597550869, + 0.009986518882215023, + 0.046175483614206314, + -0.021627724170684814, + -0.008531368337571621, + -0.016692865639925003, + 0.04162022843956947, + -0.010405057109892368, + -0.019583700224757195, + 0.00341887422837317, + -0.0003622668155003339, + -0.06638212502002716, + -0.007387688383460045, + -0.0011229966767132282, + -0.008161497302353382, + -0.0026742652989923954, + 0.012001343071460724, + -0.012225212529301643, + 0.007854893803596497, + 0.0019126228289678693, + -0.016576064750552177, + 0.018513020128011703, + 0.03418387472629547, + 0.0050467937253415585, + -0.005411798134446144, + -0.018162617459893227, + 0.031633712351322174, + -0.011884542182087898, + -0.02908354625105858, + 0.015339916571974754, + 0.01542751770466566, + 0.01432763785123825, + -0.028927812352776527, + 0.015524852089583874, + -0.059529777616262436, + 0.002259376924484968, + 0.011865074746310711, + -0.027389926835894585, + 0.0010335706174373627, + -0.07654384523630142, + -0.015203648246824741, + 0.001040870789438486, + 0.004708555992692709, + -0.0013115822803229094, + -0.04107515513896942, + -0.01772461086511612, + 0.026883788406848907, + 0.023399213328957558, + -0.06295595318078995, + -0.009300311096012592, + -0.01212787814438343, + -0.023593882098793983, + -0.14576813578605652, + -0.01318882405757904, + -0.015057646669447422, + -0.03759058192372322, + -0.057933490723371506, + -0.007436355575919151, + -0.003691410645842552, + 0.02908354625105858, + 0.017938748002052307, + -0.003489441704005003, + 0.031477976590394974, + 0.012770285829901695, + 0.028460606932640076, + -0.0025282634887844324, + -0.03060196526348591, + 0.021277321502566338, + -0.008648170158267021, + -0.02213386446237564, + 0.03377506881952286, + 0.08690023422241211, + -0.02598831057548523, + -0.011650939472019672, + 0.017549408599734306, + 0.004151316359639168, + 0.03221771866083145, + -0.025345902889966965, + 0.012818953022360802, + 0.02378855086863041, + -0.015330183319747448, + -0.002686432097107172, + 0.020323442295193672, + -0.037473779171705246, + 0.03206198289990425, + 0.024508826434612274, + 0.005436131730675697, + -0.015729254111647606, + -0.0038860796485096216, + 0.033229995518922806, + 0.011300534941256046, + 0.0107262609526515, + 0.020401310175657272, + -0.006672279443591833, + -0.017150338739156723, + 0.003027102677151561, + -0.000906427507288754, + 0.0700029656291008, + -0.021024251356720924, + 0.007105418015271425, + -0.02509283274412155, + 0.006078539416193962, + -0.004954325966536999, + -0.011076665483415127, + 0.037084441632032394, + -0.0005961738061159849, + -0.0038617460522800684, + 0.025287501513957977, + -0.019515566527843475, + 0.00018371886108070612, + -0.045357875525951385, + 0.09460912644863129, + -0.052560627460479736, + -0.003070903243497014, + -0.030173692852258682, + -0.025326436385512352, + 0.0035527090076357126, + -0.003367773490026593, + -0.02727312594652176, + 0.016848601400852203, + 0.02787659876048565, + -0.027720864862203598, + 0.02318507619202137, + -0.026650184765458107, + -0.0025063632056117058, + -0.006866948679089546, + 0.019573966041207314, + -0.004053981509059668, + 0.021627724170684814, + -0.0318283811211586, + -0.03313266113400459, + 0.018513020128011703, + 0.0005441606626845896, + 0.055130258202552795, + -0.007947361096739769, + 0.029979024082422256, + 0.019223563373088837, + -0.001455150661058724, + -0.0326070562005043, + -0.01916516199707985, + 0.028772076591849327, + -0.007961961440742016, + -0.01841568574309349, + -0.015505384653806686, + -0.004998126532882452, + 0.015875255689024925, + -0.01743260771036148, + -0.004032081458717585, + -0.01341269351541996, + -0.03463161364197731, + -0.011981876567006111, + -0.03184784576296806, + -0.017929013818502426, + -0.010638660751283169, + -0.00026706152129918337, + 0.019953571259975433, + -0.027467794716358185, + 0.01825021766126156, + 0.007314687129110098, + -0.027642996981739998, + 0.03885592892765999, + -0.045357875525951385, + -0.008472967892885208, + 0.0043046181090176105, + -0.005436131730675697, + -0.026786452159285545, + -0.03099130280315876, + 0.027681929990649223, + -0.01212787814438343, + -0.048083242028951645, + -0.04271037504076958, + 0.00044530531158670783, + 0.02008984051644802, + 0.019904904067516327, + -0.040646884590387344, + -0.03725964576005936, + -0.015057646669447422, + 0.012585350312292576, + 0.024061087518930435, + 0.03233451768755913, + 0.01643979549407959, + 0.024606160819530487, + 0.019973037764430046, + -0.02637764811515808, + -0.004175649955868721, + 0.062177274376153946, + 0.001752020907588303, + 0.02637764811515808, + -0.03192571550607681, + 0.04621441662311554, + -0.026786452159285545, + -0.05571426451206207, + 0.0326070562005043, + 0.03410600870847702, + -0.0049737924709916115, + -0.05871216580271721, + -0.004825357813388109, + 0.007504489738494158, + -0.0197881031781435, + -0.03718177601695061, + 0.026260847225785255, + -0.01743260771036148, + 0.018678490072488785, + -0.003061169758439064, + 0.009261377155780792, + 0.0769721195101738, + -0.008555701933801174, + 0.02848007343709469, + 0.023379744961857796, + 0.016332728788256645, + -0.017783012241125107, + 0.018075015395879745, + 0.04718776419758797, + -0.039284203201532364, + 0.004073448479175568, + -0.02795446664094925, + 0.008443767204880714, + 0.013237491250038147, + 0.021783459931612015, + 0.0023299444001168013, + -0.0418148972094059, + 0.018435154110193253, + 0.00039237967575900257, + 0.025209633633494377, + -0.013383492827415466, + 0.0010128871072083712, + 0.00763589097186923, + -0.05326143652200699, + 0.01833781972527504, + -0.005212262272834778, + 0.06634318828582764, + -0.01545671746134758, + -0.016313260421156883, + 0.03677297383546829, + 0.013461360707879066, + 0.006472744047641754, + 0.012147344648838043, + 0.011689872480928898, + 0.026319246739149094, + 0.009149442426860332, + 0.01041479129344225, + 0.0008212598040699959, + -0.004117249045521021, + 0.026708586141467094, + -0.042554643005132675, + -0.00025291761266998947, + 0.044073060154914856, + 0.0014308170648291707, + 0.019817303866147995, + 0.09118295460939407, + 0.01643979549407959, + 0.05279422923922539, + -0.012653484009206295, + 0.02855794131755829, + -0.029531285166740417, + -0.007718625478446484, + 0.00795709528028965, + -0.005343663971871138, + 0.027720864862203598, + -0.016420328989624977, + -0.057622019201517105, + -0.0004936683690175414, + -0.003847145941108465, + -0.018435154110193253, + 0.012565882876515388, + 0.011573071591556072, + -0.009144575335085392, + 0.037240177392959595, + -0.00557240005582571, + 0.00670634675770998, + -0.010872263461351395, + 0.015339916571974754, + -0.0071686855517327785, + -0.00970424897968769, + 0.019427964463829994, + 0.004569854587316513, + 0.060736723244190216, + -0.05306676775217056, + -0.019262496381998062, + -0.037395913153886795, + -0.05493558943271637, + -0.02509283274412155, + -0.03492361679673195, + -0.0033288397826254368, + -0.008414567448198795, + 0.04683735966682434, + 0.023009873926639557, + -0.034806814044713974, + -0.02347707934677601, + -0.01004492025822401, + 0.016196459531784058, + 0.01916516199707985, + 0.06778374314308167, + 0.03735698014497757, + 0.011164266616106033, + 0.01751047559082508 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "保养机座与机架组件", + "编号": "MT001", + "内容": "表 4.3 MT001 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT00101机座与机架组件保养机座与机架组件1MJY级
安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。
安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。
序号名称规格/型号数量及单位备注
1液压升降平台HLP-30001台用于接近主机上部
2扭矩扳手TB-200N·m1把精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FIT1套厂家配套
4工业吸油泵VAC-0IL501台防爆型
2)备品备件
名称规格/型号消耗数量备注
1高压燃油泵HD-45A2个原厂件
2涡轮增压器TC-80B1个耐高温氟橡胶
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1柴油机专用润滑油Shell Mysella S5N8050L符合MAN 97101标准
2无纺布抹布Industrial Grade5张不掉屑
3清洗剂CRC Brakleen1罐用于清洁滤座
\n\n
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师主导保养流程
2电气专业1技师监控主机ECU状 态
修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识;
3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油;
图 MT001.1旋松螺塞
(2)检查排出机油中是否有金属屑,若有则记录并上报异常。
图MT001.2检查
2)更换机油滤芯
\n图 MT001.3 拆卸\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\n图 MT001.4 滤芯安装扭矩示意图\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\n图 MT001.5 滤芯安装扭矩示意图\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\n(2)静置 10 分钟后复查油位,补充至标准范围。\n图 MT001.6 油位检查\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\n图 MT001.7 安装放油螺塞\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\n\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\n图 MT001.8 油污清理\n
3)拆除“禁止启动”牌,通知集控室保养完成。
验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下);
2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。
页码:2/2版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.3 MT001 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT00101机座与机架组件保养机座与机架组件1MJY级
安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。
安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。
序号名称规格/型号数量及单位备注
1液压升降平台HLP-30001台用于接近主机上部
2扭矩扳手TB-200N·m1把精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FIT1套厂家配套
4工业吸油泵VAC-0IL501台防爆型
2)备品备件
名称规格/型号消耗数量备注
1高压燃油泵HD-45A2个原厂件
2涡轮增压器TC-80B1个耐高温氟橡胶
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1柴油机专用润滑油Shell Mysella S5N8050L符合MAN 97101标准
2无纺布抹布Industrial Grade5张不掉屑
3清洗剂CRC Brakleen1罐用于清洁滤座
\\n\\n
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师主导保养流程
2电气专业1技师监控主机ECU状 态
修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识;
3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油;
图 MT001.1旋松螺塞
(2)检查排出机油中是否有金属屑,若有则记录并上报异常。
图MT001.2检查
2)更换机油滤芯
\\n图 MT001.3 拆卸\\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\\n图 MT001.4 滤芯安装扭矩示意图\\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\\n图 MT001.5 滤芯安装扭矩示意图\\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\\n(2)静置 10 分钟后复查油位,补充至标准范围。\\n图 MT001.6 油位检查\\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\\n图 MT001.7 安装放油螺塞\\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\\n\\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\\n图 MT001.8 油污清理\\n
3)拆除“禁止启动”牌,通知集控室保养完成。
验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下);
2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。
页码:2/2版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3e87ad34-4dc0-427a-b3a2-364164392059.pdf#page=20\"}]", + "embedding": [ + 0.008931329473853111, + -0.013109344057738781, + -0.051381081342697144, + 0.013081050477921963, + -0.010817565955221653, + -0.04832537844777107, + 0.022427352145314217, + -6.075007695471868e-05, + -0.00397288566455245, + 0.007771294564008713, + -0.01366578321903944, + 0.00820984411984682, + 0.01683466136455536, + 0.016872385516762733, + 0.004913646262139082, + -0.07824108749628067, + 0.0029590334743261337, + 0.019465960562229156, + -0.012090776115655899, + -0.004213380627334118, + 0.018192751333117485, + -0.03331093490123749, + 0.05858650431036949, + 0.017061010003089905, + -0.025351019576191902, + -0.021389922127127647, + -0.011166520416736603, + 0.0060453880578279495, + 0.03802652657032013, + -0.006125553045421839, + -0.03866785019636154, + 0.005828470923006535, + -0.042515769600868225, + 0.007917477749288082, + -0.04406248405575752, + -0.0550403818488121, + 0.019824346527457237, + -0.007087533827871084, + -0.055493079125881195, + 0.046175070106983185, + -0.0361214280128479, + -0.062019456177949905, + -0.002789272228255868, + -0.03246213123202324, + -0.036347776651382446, + -0.013467729091644287, + -0.04047863557934761, + -0.025011496618390083, + -0.006134984083473682, + -0.02288004942238331, + 0.0019994108006358147, + -0.009666962549090385, + 0.0020595344249159098, + -0.07028117030858994, + 0.007153552025556564, + 0.032669615000486374, + -0.017975833266973495, + -0.02567167952656746, + -0.05998232215642929, + 0.0014736222801730037, + -0.03761155530810356, + 0.03663071244955063, + -0.014854112640023232, + 0.007799588143825531, + 0.027048630639910698, + 0.07692072540521622, + 0.007625110913068056, + 0.000998526462353766, + -0.008492779918015003, + -0.04768405854701996, + -0.00983672309666872, + -0.0026808136608451605, + -0.006012378726154566, + -0.007436487358063459, + -0.05994459614157677, + 0.0395355187356472, + 0.020484527572989464, + -0.03200943395495415, + -0.027633365243673325, + -0.022936636582016945, + -0.0014429709408432245, + -0.014193929731845856, + 0.007714707404375076, + 0.02342705801129341, + 0.009501916356384754, + 0.03463130071759224, + -0.03316003829240799, + 0.03514058515429497, + -0.057756561785936356, + -0.062283530831336975, + 0.017617449164390564, + -0.006083112675696611, + 0.01950368471443653, + 0.0027939877472817898, + -0.049909818917512894, + -0.0014311819104477763, + -0.043119367212057114, + 0.012128501199185848, + 0.031292662024497986, + -0.006290598772466183, + 0.04179900139570236, + -0.009398173540830612, + 0.014863544143736362, + -0.012882995419204235, + 0.02446448802947998, + -0.0004379605525173247, + -0.0015832597855478525, + -0.004458591341972351, + 0.03082110546529293, + -0.022502802312374115, + -0.010261126793920994, + 0.06862128525972366, + -0.006488653365522623, + 0.023653406649827957, + 0.00012989981041755527, + -0.05028706416487694, + 0.002107869368046522, + -0.04534512385725975, + 0.08322075754404068, + -0.011600354686379433, + -0.020918363705277443, + -0.023370470851659775, + 0.028482170775532722, + -0.03204715996980667, + 0.015476570464670658, + -0.025445330888032913, + 0.03359387069940567, + -0.023276157677173615, + 0.016608312726020813, + 0.007941056042909622, + -0.0013474802253767848, + 0.01353374682366848, + -0.0173628069460392, + 0.0020312408450990915, + -0.004086059983819723, + -0.05605895072221756, + -0.015467138960957527, + -0.00854936707764864, + -0.02218214049935341, + -0.05726614221930504, + -0.0040648397989571095, + 0.012345418334007263, + -0.01606130413711071, + 0.0014736222801730037, + 0.002817565808072686, + 0.05021161586046219, + -0.028312409296631813, + -0.03185853362083435, + -0.03134924918413162, + -0.00013778368884231895, + -0.011138226836919785, + 0.029991161078214645, + 0.041308578103780746, + 0.009223696775734425, + 0.029104629531502724, + 0.030160922557115555, + -0.03029295802116394, + 0.07495903968811035, + -0.034951962530612946, + -0.03021750971674919, + 0.019711172208189964, + 0.05168288201093674, + -0.04145947843790054, + 0.016598882153630257, + 0.007092249114066362, + 0.0057530212216079235, + 0.03257530555129051, + 0.007144120987504721, + -0.019447097554802895, + 0.015306808985769749, + 0.03783790394663811, + 0.0057530212216079235, + 0.0002068965695798397, + -0.00047951668966561556, + 0.016749780625104904, + 0.008841733448207378, + 0.028425583615899086, + 0.005767168011516333, + 0.03406543284654617, + -0.016268789768218994, + 0.00456233462318778, + 0.01738166995346546, + -0.0009289715089835227, + -0.012392573989927769, + 0.010223401710391045, + 0.004861774388700724, + 0.04074271023273468, + -0.029613913968205452, + 0.0027444742154330015, + 0.01623106561601162, + -0.03431064262986183, + -0.010676098987460136, + 0.034857649356126785, + -0.010525199584662914, + 0.052173301577568054, + -0.016363101080060005, + -0.00854936707764864, + 0.009501916356384754, + 0.03621574118733406, + -0.009780135937035084, + 0.01505216769874096, + -0.02376657910645008, + 0.01001591607928276, + -0.0005148836062289774, + -0.02793516218662262, + 0.039384618401527405, + 0.01570291817188263, + -0.040516361594200134, + -0.011374006047844887, + -0.045646924525499344, + -0.0008824050310067832, + 0.009299146011471748, + 0.04062953591346741, + -0.003664014395326376, + -0.03563100844621658, + 0.026671383529901505, + 0.01993751898407936, + -0.009817861020565033, + -0.009346301667392254, + -0.004729737993329763, + -0.06518833339214325, + 0.016815798357129097, + 0.008615384809672832, + -0.008313587866723537, + 0.004324197303503752, + -0.030707931146025658, + 0.03151901066303253, + 0.007177129853516817, + 0.013430004008114338, + 0.010025346651673317, + -0.024502212181687355, + 0.008044798858463764, + -0.003595638321712613, + -0.021691719070076942, + 0.04738226160407066, + 0.02420041523873806, + -0.027142943814396858, + 0.03374477103352547, + 0.02593575231730938, + 0.005130563396960497, + -0.04647686704993248, + -0.0137978196144104, + -0.0030604186467826366, + -0.0065546720288693905, + -0.017636312171816826, + 0.019635722041130066, + 0.024238139390945435, + 0.028010612353682518, + -0.035555556416511536, + 0.025105807930231094, + 0.008290009573101997, + -0.01431653555482626, + -0.029481876641511917, + -0.005852048750966787, + -0.0040554082952439785, + 0.004618921782821417, + 0.023012084886431694, + -0.00045888597378507257, + 0.013307398185133934, + -0.03649867698550224, + -0.029651638120412827, + 0.06688594818115234, + 0.009459475986659527, + 0.021446509286761284, + -0.02027704194188118, + 0.019862070679664612, + -0.0036993813700973988, + -0.00030297672492451966, + -0.03776245564222336, + 0.0454205758869648, + -0.014835250563919544, + -0.015071029774844646, + 0.014335397630929947, + 0.007889184169471264, + 0.04327026382088661, + 0.04938167333602905, + 0.001210728078149259, + -0.010940171778202057, + 0.10261126607656479, + -0.033537283539772034, + 0.024936046451330185, + 0.0014889478916302323, + 0.024143828079104424, + -0.05873740464448929, + 0.005691718775779009, + 0.029180079698562622, + -0.04723136126995087, + 0.0003946360375266522, + -0.0027869143523275852, + -0.0694512277841568, + -0.04142175242304802, + -0.04210079833865166, + 0.06767816841602325, + -0.0003280283126514405, + -0.01637253351509571, + 0.03238667920231819, + -0.009407605044543743, + -0.1591983586549759, + 0.04500560462474823, + -0.025049220770597458, + 0.029274391010403633, + -0.012826408259570599, + -0.011694665998220444, + -0.025049220770597458, + 0.007035661954432726, + -0.01991865783929825, + 0.01575007475912571, + -0.02072973921895027, + -0.07824108749628067, + -0.004192160442471504, + -0.0028458593878895044, + 0.03223578259348869, + -0.016815798357129097, + 0.005668140482157469, + 0.0083701740950346, + -0.012920720502734184, + -0.018485117703676224, + -0.007144120987504721, + -0.053569115698337555, + 0.01813616417348385, + 0.005602122284471989, + -0.013439435511827469, + -0.024671973660588264, + 0.004376068711280823, + -0.014731506817042828, + -0.043383438140153885, + -0.02323843352496624, + -0.007950486615300179, + 0.04775950685143471, + 0.012213381007313728, + 0.03647981584072113, + -0.0367438867688179, + -0.03327321261167526, + 0.016438551247119904, + -0.0494571216404438, + -0.00301562063395977, + 0.023389331996440887, + 0.024238139390945435, + 0.09815974533557892, + 0.016117891296744347, + 0.02437017485499382, + -0.0028152079321444035, + -0.07307280600070953, + -0.0010256411042064428, + -0.0042440323159098625, + -0.010157383978366852, + -0.03979958966374397, + -0.0021479518618434668, + 0.0022823461331427097, + -0.009714118205010891, + -0.008313587866723537, + -0.043043918907642365, + 0.010515768080949783, + -0.023087535053491592, + 0.0013604480773210526, + 0.021955793723464012, + 0.027576778084039688, + -0.05790746212005615, + -0.031028591096401215, + -0.02706749364733696, + -0.037724729627370834, + -0.0381397008895874, + -0.025105807930231094, + -0.008337165229022503, + -0.04553375020623207, + 0.030274096876382828, + -0.0668104961514473, + 0.00530975591391325, + 0.01591983623802662, + 0.031104039400815964, + -0.03832832723855972, + -0.017428824678063393, + 0.02063542790710926, + -0.04708046466112137, + -0.009516063146293163, + -0.02314412221312523, + -0.11272149533033371, + -0.009091660380363464, + 0.0276710893958807, + 0.000849985342938453, + -0.09257648885250092, + -0.011392868123948574, + 0.003958738874644041, + 0.007120542693883181, + -0.006054819095879793, + 0.0017353375442326069, + 0.22876276075839996, + 0.005856764502823353, + -0.02680342085659504, + -0.025011496618390083, + 0.03289596363902092, + -0.04685411602258682, + 0.009685824625194073, + 0.003935161046683788, + 0.051909226924180984, + -0.010987327434122562, + -0.013015031814575195, + -0.026577072218060493, + 0.004010610282421112, + 0.014948423951864243, + 0.04300619289278984, + -0.010468612425029278, + -0.03231123089790344, + -0.005644562654197216, + 0.10313941538333893, + 2.004126326937694e-05, + -0.0070026530884206295, + -0.006913056597113609, + -0.023389331996440887, + -0.016721487045288086, + -0.0668104961514473, + -0.03453699126839638, + -0.035046275705099106, + 0.01567462459206581, + -0.008327733725309372, + 0.02357795648276806, + -0.03370704501867294, + 0.0398373156785965, + 0.0065546720288693905, + -0.037385206669569016, + -0.07465723901987076, + 0.020333629101514816, + -0.008129679597914219, + 0.043119367212057114, + 0.04013911262154579, + 0.010808135382831097, + -0.06183083355426788, + -0.03404656797647476, + -0.004465664736926556, + -0.018966108560562134, + -0.01991865783929825, + -0.03421632945537567, + 0.040516361594200134, + -0.0028482170309871435, + 0.016730917617678642, + -0.0103082824498415, + 0.0006778662209399045, + 0.01058178674429655, + -0.020937224850058556, + 0.02080518938601017, + -0.04213852435350418, + 0.008615384809672832, + -0.0025959329213947058, + -0.019711172208189964, + 0.02246507629752159, + 0.028331272304058075, + -0.02167285792529583, + -0.019013263285160065, + -0.010638373903930187, + 0.008294724859297276, + 0.019824346527457237, + -0.005847332999110222, + -0.024690836668014526, + 0.015816092491149902, + 0.029745949432253838, + -0.0006902446621097624, + 0.007507221307605505, + -0.006234011612832546, + 0.017013853415846825, + 0.034951962530612946, + 0.01426937896758318, + 0.0013687004102393985, + 0.026237549260258675, + 0.08887946605682373, + -0.005786030553281307, + -0.01984320767223835, + -0.05206012725830078, + -0.007846743799746037, + -0.025803714990615845, + -0.018428530544042587, + 0.013684646226465702, + -0.0205411147326231, + -0.014938993379473686, + -0.013043325394392014, + 0.0029425290413200855, + 0.010647805407643318, + 0.00403890386223793, + 0.0007933982415124774, + -0.007606248836964369, + -0.007601533085107803, + -0.025388743728399277, + -0.02959505096077919, + -0.03219805657863617, + -0.033537283539772034, + -0.04059180989861488, + -0.002808134537190199, + -0.028689656406641006, + -0.02697318233549595, + -0.0009401710121892393, + -0.023087535053491592, + 0.031198352575302124, + 0.017664605751633644, + -0.020069556310772896, + 0.006521662697196007, + 0.005503095220774412, + -0.0013910994166508317, + 0.015853818506002426, + 0.03378249704837799, + -0.006101975217461586, + -0.020239317789673805, + 0.029991161078214645, + -0.04760861024260521, + 0.027482466772198677, + 0.0508529357612133, + -0.013646921142935753, + 0.024860596284270287, + -0.055832602083683014, + 0.0370456837117672, + 0.026746833696961403, + -0.01685352250933647, + -0.006960212718695402, + -0.03327321261167526, + -0.005833186209201813, + -0.02331388369202614, + -0.0029283822514116764, + 0.037800177931785583, + -0.0312360767275095, + -0.036328915506601334, + -0.008950192481279373, + 0.02636958658695221, + 0.029651638120412827, + -0.02088063769042492, + -0.048966698348522186, + 0.018022989854216576, + 0.038856472820043564, + -0.034348368644714355, + -0.02499263361096382, + -0.03812083974480629, + -0.03168877214193344, + 0.003232537768781185, + 0.003161804052069783, + -0.01957913488149643, + -0.03374477103352547, + 0.02984026074409485, + -0.04594872146844864, + 0.03629118949174881, + -0.017325082793831825, + 0.05986914783716202, + -0.002296492923051119, + -0.044100210070610046, + 0.007266726344823837, + -0.01911700703203678, + -0.002553492784500122, + -0.013750663958489895, + 0.04266666993498802, + -0.01336398534476757, + 0.0156557634472847, + 0.017438257113099098, + 0.0022847040090709925, + 0.046967290341854095, + 0.048363104462623596, + 0.05998232215642929, + -0.03316003829240799, + 0.04934394732117653, + -0.019862070679664612, + 0.002951960079371929, + 0.03387680649757385, + -0.035385798662900925, + -0.0395355187356472, + 0.055568527430295944, + 0.03666843846440315, + 0.01654229499399662, + 0.0055219572968780994, + 0.030236370861530304, + -0.03802652657032013, + 0.01471264474093914, + 0.0155803132802248, + 0.08925671130418777, + -0.03746065869927406, + 0.00220335996709764, + -0.050890661776065826, + -0.002384910359978676, + 0.027803126722574234, + -0.005022104829549789, + 0.022597113624215126, + 0.016165046021342278, + -0.01545770838856697, + 0.08337165415287018, + 0.01738166995346546, + -0.005540819838643074, + -0.004477453883737326, + 0.031104039400815964, + 0.08050457388162613, + -0.013731801882386208, + 0.029727088287472725, + -0.04145947843790054, + -0.04228942096233368, + 0.003708812640979886, + 0.016240496188402176, + 0.03170763701200485, + -0.02506808377802372, + -0.04342116415500641, + -0.010129090398550034, + 0.014118480496108532, + -0.002605364192277193, + -0.008280578069388866, + -0.022936636582016945, + -0.015061598271131516, + -0.014175067655742168, + 0.02148423343896866, + -0.003918656148016453, + -0.007092249114066362, + 0.026067787781357765, + 0.06409431993961334, + -0.011043914593756199, + -0.047306813299655914, + 0.04847627878189087, + 0.02097495086491108, + 0.047985855489969254, + -0.05734159052371979, + 0.03881874680519104, + 0.02071087621152401, + 0.03725317120552063, + -0.04723136126995087, + 0.012194518931210041, + -0.023709993809461594, + 0.010044209659099579, + 0.037554968148469925, + -0.002900088671594858, + -0.03517831116914749, + 0.04413793608546257, + 0.0008022399852052331, + 0.025256706401705742, + 0.041195403784513474, + -0.0015089892549440265, + 0.005498379468917847, + 0.02593575231730938, + 0.019522547721862793, + 0.06420749425888062, + 0.02985912375152111, + 0.009025641717016697, + 0.04228942096233368, + -0.06118951365351677, + 0.05334276705980301, + -0.001140583655796945, + 0.04300619289278984, + -0.03150014951825142, + 0.004248747602105141, + 0.030519306659698486, + -0.018862364813685417, + -0.024181552231311798, + -0.010081933811306953, + -0.008025936782360077, + -0.0033056295942515135, + -0.04202535003423691, + -0.01409961748868227, + -0.00047833778080530465, + 0.05613439902663231, + -0.023200709372758865, + 0.01014795247465372, + 0.03383908420801163, + 0.015231359750032425, + 0.029217803850769997, + 0.008139110170304775, + -0.011713529005646706, + -0.018334219232201576, + -0.007497790269553661, + -0.0291423536837101, + -0.055304452776908875, + -0.0248040109872818, + 0.04013911262154579, + 0.0033244919031858444, + 0.010327144525945187, + 0.03474447503685951, + 0.003730032593011856, + 0.01426937896758318, + -0.016646036878228188, + -0.05307869613170624, + -0.010591218248009682, + 0.0067338645458221436, + 0.038252875208854675, + -0.017730623483657837, + 0.02029590494930744, + 0.0021962865721434355, + -0.01984320767223835, + -0.01630651392042637, + -0.008737990632653236, + 0.0324055440723896, + -0.05560625344514847, + -0.018428530544042587, + -0.002541703637689352, + 0.006993222050368786, + 0.001912172301672399, + -0.016334807500243187, + -0.006073681637644768, + 0.019371649250388145, + -0.008351312018930912, + 0.051909226924180984, + -0.013496022671461105, + -0.0297648124396801, + 0.01222281251102686, + -0.01591983623802662, + 0.02838785946369171, + -0.02106926217675209, + -0.005413498729467392, + 0.02393634058535099, + 0.04462835565209389, + -0.047306813299655914, + -0.024049514904618263, + 0.0019475391600281, + 0.023785442113876343, + 0.02184261940419674, + -0.021786032244563103, + -0.009987622499465942, + 0.015467138960957527, + -0.0027444742154330015, + -0.003843206912279129, + -0.0018508696230128407, + -0.045910995453596115, + -0.009105807170271873, + -0.02455879934132099, + 0.010298850946128368, + -0.038422636687755585, + 0.04413793608546257, + -0.016127321869134903, + 0.02071087621152401, + -0.003465959569439292, + 0.023464782163500786, + -0.025369880720973015, + 0.0031287947203963995, + 0.0511547327041626, + 0.014307104051113129, + 0.08986030519008636, + 0.0067197177559137344, + 0.02672797068953514, + 0.0023860891815274954, + -0.047570884227752686, + -0.02802947536110878, + 0.05360684171319008, + 0.00930857751518488, + 0.04726908728480339, + -0.041044507175683975, + 0.0036545831244438887, + -0.006705570966005325, + 0.009949897415935993, + -0.0025204834528267384, + -0.02289891056716442, + -0.006913056597113609, + 0.0012225169921293855, + -0.08163631707429886, + -0.007893899455666542, + -0.04059180989861488, + -0.020239317789673805, + 0.013788389042019844, + 0.011289125308394432, + -0.01940937340259552, + -0.02942528948187828, + 0.015259653329849243, + 0.013948719017207623, + 0.026765696704387665, + 0.019013263285160065, + 0.0014724433422088623, + 0.012600059621036053, + -0.013807251118123531, + 0.0067338645458221436, + -0.022597113624215126, + -0.02340819500386715, + -0.0050362516194581985, + -0.025558505207300186, + 0.02889714390039444, + -0.00987444818019867, + 0.028916005045175552, + -0.024690836668014526, + 0.017079871147871017, + 0.01861715503036976, + -0.011392868123948574, + -0.028406722471117973, + -0.058624230325222015, + -0.008879458531737328, + -0.013882700353860855, + 0.030613617971539497, + -0.006884763482958078, + -0.02470969781279564, + -0.021239023655653, + 0.025822577998042107, + 0.01733451336622238, + -0.04066725820302963, + 0.01074211671948433, + -0.028746243566274643, + -0.014806956984102726, + -0.13761980831623077, + 0.0020229886285960674, + -0.00940288882702589, + 0.0014476865762844682, + -0.03761155530810356, + -0.01991865783929825, + -0.00729030417278409, + 0.011477748863399029, + -0.004592985846102238, + 0.00594164477661252, + 0.033914532512426376, + -0.02793516218662262, + 0.0823153629899025, + -0.016042441129684448, + -0.004102564416825771, + 0.011543767526745796, + -0.01175125315785408, + -0.024577662348747253, + 0.00894547626376152, + 0.10276216268539429, + -0.011232538148760796, + -0.003369289916008711, + -0.007262010592967272, + 0.01074211671948433, + 0.04685411602258682, + -0.0007326849736273289, + 0.0007326849736273289, + 0.02489832229912281, + -0.01591983623802662, + 0.020597701892256737, + 0.009638668969273567, + -0.046967290341854095, + 0.02542646788060665, + 0.017541998997330666, + -0.01175125315785408, + -0.017513705417513847, + -0.028689656406641006, + 0.024785147979855537, + -0.001496021286584437, + 0.017617449164390564, + 0.03012319654226303, + -0.00720070768147707, + 0.0038974361959844828, + 0.04493015259504318, + -0.00837960559874773, + 0.09076569974422455, + -0.0354989692568779, + -0.01178897824138403, + -0.030236370861530304, + 0.05439906194806099, + 0.02403065375983715, + -0.006054819095879793, + 0.025275569409132004, + 0.02316298522055149, + -0.010081933811306953, + -0.001774241216480732, + -0.04802358150482178, + 0.023106398060917854, + -0.08110816776752472, + 0.07778839021921158, + -0.058624230325222015, + 0.03874329850077629, + -0.014920130372047424, + -0.02203124202787876, + 0.009893310256302357, + 0.0376681424677372, + -0.009421750903129578, + -0.0130621874704957, + 0.0011570882052183151, + -0.011779546737670898, + 0.03708340972661972, + 0.024747423827648163, + 0.013986444100737572, + -0.03657412528991699, + 0.02925552800297737, + -0.024181552231311798, + 0.024087240919470787, + -0.05832243338227272, + -0.03691364824771881, + 0.036781612783670425, + -0.021182436496019363, + -0.01587267965078354, + 0.009657531045377254, + 0.03819628804922104, + 0.03919599577784538, + 0.020352492108941078, + -0.027652226388454437, + -0.04376068711280823, + 0.021465372294187546, + -0.0061585623770952225, + -0.05613439902663231, + -0.03498968854546547, + 0.016344239935278893, + 0.022785736247897148, + 0.0188340712338686, + 0.016768641769886017, + -0.018258769065141678, + -0.04149720445275307, + -0.04081815853714943, + -0.020767463371157646, + -0.012732096016407013, + -0.04741998761892319, + -0.000924255873542279, + 0.011854996904730797, + -0.007233717013150454, + -0.008719128556549549, + 0.012986738234758377, + -0.0451187789440155, + 0.010100796818733215, + -0.027218392118811607, + 0.014910699799656868, + 0.021239023655653, + 0.016910109668970108, + -0.018287062644958496, + -0.05338049307465553, + 0.02288004942238331, + 0.018739759922027588, + -0.05160742998123169, + -0.06756499409675598, + -0.006002947688102722, + 0.036517538130283356, + 0.0003828470653388649, + -0.023917479440569878, + -0.042440321296453476, + -0.017466550692915916, + 0.018909521400928497, + 0.020522253587841988, + 0.04432655870914459, + 0.02906690537929535, + 0.026256412267684937, + 0.018768053501844406, + -0.012845270335674286, + -0.02776540070772171, + 0.031481288373470306, + 0.013279104605317116, + -0.00646507553756237, + -0.04379841312766075, + 0.07273328304290771, + -0.05213557556271553, + -0.05413498729467392, + 0.020333629101514816, + 0.025388743728399277, + -0.004571765661239624, + -0.011194813996553421, + -0.015363396145403385, + 0.0074506341479718685, + -0.019654585048556328, + -0.017343943938612938, + 0.01248688530176878, + -0.008601238019764423, + 0.00805422943085432, + 0.012562335468828678, + 0.012505748309195042, + 0.03438609093427658, + -0.011109933257102966, + -0.012383142486214638, + 0.05258827283978462, + 0.00639905733987689, + -0.02297436073422432, + 0.0011335102608427405, + 0.0438738614320755, + -0.012637784704566002, + 0.02768995240330696, + -0.014910699799656868, + 0.021389922127127647, + 0.007950486615300179, + 0.003956381231546402, + -0.009185971692204475, + -0.021352197974920273, + 0.01840023696422577, + -0.04153492674231529, + 0.006757442373782396, + -0.0247285608202219, + 0.020918363705277443, + 0.009346301667392254, + -0.020390216261148453, + 0.018918951973319054, + -0.0008222812321037054, + 0.0522487498819828, + -0.00014338344044517726, + 0.01663660630583763, + 0.05119245871901512, + 0.051758330315351486, + 0.027652226388454437, + 0.032933689653873444, + 0.05839788168668747, + 0.03863012418150902, + 0.0041167112067341805, + -0.04334571585059166, + -0.036857061088085175, + -0.008870027028024197, + 0.016146184876561165, + -0.02244621515274048, + -0.010242263786494732, + 0.03378249704837799, + 0.029180079698562622, + 0.0028458593878895044, + 0.03304686397314072, + -0.0029590334743261337, + 0.04044090956449509, + 0.00865782517939806, + 0.003001473844051361, + 0.017127027735114098, + 0.014175067655742168, + 0.020239317789673805, + -0.006101975217461586, + 0.03195284679532051, + -0.021710582077503204, + -0.01692897267639637, + -0.0014995579840615392, + -0.004246389959007502, + 0.0013993517495691776, + 0.00169171835295856, + 0.021389922127127647, + 0.004211022984236479, + 0.01948482356965542, + 0.03976186737418175, + -0.009577365592122078, + 0.0025063366629183292, + 0.011807840317487717, + -0.0007214854704216123, + -0.019975244998931885, + 0.009497201070189476, + -0.04772178456187248, + 0.04066725820302963, + -0.04858945310115814, + -0.001427645212970674, + -0.017862658947706223, + -0.01801355928182602, + -0.013646921142935753, + 0.021729445084929466, + -0.05647392198443413, + -0.027010906487703323, + 0.021635131910443306, + 0.018296493217349052, + -0.04274211823940277, + -0.018032420426607132, + 0.025181258097290993, + 0.013618627563118935, + 0.02531329356133938, + 0.07043207436800003, + 0.015882112085819244, + -0.00869083497673273, + 0.015391689725220203 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "机座与机架组件", + "组成编码": "01", + "维修项目名称": "保养机座与机架组件", + "维修项目编号": "MT001", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.3 MT001 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT00101机座与机架组件保养机座与机架组件1MJY级
安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。
安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。
序号名称规格/型号数量及单位备注
1液压升降平台HLP-30001台用于接近主机上部
2扭矩扳手TB-200N·m1把精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FIT1套厂家配套
4工业吸油泵VAC-0IL501台防爆型
2)备品备件
名称规格/型号消耗数量备注
1高压燃油泵HD-45A2个原厂件
2涡轮增压器TC-80B1个耐高温氟橡胶
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1柴油机专用润滑油Shell Mysella S5N8050L符合MAN 97101标准
2无纺布抹布Industrial Grade5张不掉屑
3清洗剂CRC Brakleen1罐用于清洁滤座
\\n\\n
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师主导保养流程
2电气专业1技师监控主机ECU状 态
修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识;
3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油;
图 MT001.1旋松螺塞
(2)检查排出机油中是否有金属屑,若有则记录并上报异常。
图MT001.2检查
2)更换机油滤芯
\\n图 MT001.3 拆卸\\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\\n图 MT001.4 滤芯安装扭矩示意图\\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\\n图 MT001.5 滤芯安装扭矩示意图\\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\\n(2)静置 10 分钟后复查油位,补充至标准范围。\\n图 MT001.6 油位检查\\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\\n图 MT001.7 安装放油螺塞\\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\\n\\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\\n图 MT001.8 油污清理\\n
3)拆除“禁止启动”牌,通知集控室保养完成。
验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下);
2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。
页码:2/2版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3e87ad34-4dc0-427a-b3a2-364164392059.pdf#page=20\"}, {\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.22 MT020 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT02001机座与机架组件排除主机功率异常波动故障1UZJ级
安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。
安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。
序号名称规格/型号数量及单位备注
1主机监控系统(PMS)Integrated BridgeSystem1套读取实时功率曲线
2调速器性能测试仪 Woodward Test Bench1台检测响应滞后
3燃油黏度计MarconiViscotester1台测 HFO黏度
4多通道数据记录仪DataTaker DT801套同步录负荷/转速
2)备品
名称规格/型号消耗数量备注
1调速器伺服阀滤芯OEM-GOV-FILTER1个如堵塞
2燃油温度传感器PT100,0-200°C1个如漂移
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1标准测试燃油ISO 8217 RMG380300L用于稳定测试
2密封胶Loctite 577少量传感器安装
4)人力人员人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导系统分析
2自动化专业1中级负责调速器信号检测
修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。
分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。
针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟;
验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下);
3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1
\\n\\n\\n5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n
序号名称规格/型号生产单位通用/专用体积山重量8)参考价(元)存放位置备注
1液压升降平台HLP-3000OEM 或市场品专用120045085,000主机车间东侧工具架A区用于接近主机上部
2扭矩扳手TB-200N·mOEM 或市场品通用32.51,200工具柜 B-02精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FITOEM专用53.82,500主机备件柜M-07厂家配套
4工业吸油泵VAC-0IL50OEM 或市场品专用25186,800油料间防爆柜防爆型
5激光对SKF TKSA 71SKF专用84.298,000精密仪器室轴承
中仪C-01同轴度检测
6塞尺组0.02 - 1.00 mm市品通用0.80.6180量具盒D-05精度土0.005m
7液压拉伸器HYTORCAVANTI-10 /RS-20HYTORC专用302242,000螺栓工具架E区用于地脚螺栓/连杆螺栓
8内径千分尺200-300mm /40-50mmMitutoyo 等通用21.43,600量具柜F-03校验有效期内
9精密千分表 Mitutoyo543-791DMitutoyo专用1.20.94,200精密仪器室C-02分辨率0.001mm
10磁力表座Starrett 16BStarrett通用1.51.81,500量具柜F-04带万向关节
11V型支撑架Custom-Crank-V300OEM专用8012018,000曲轴检修平台旁承重≥500kg
12盘车手轮OEM-MAN-BW-PCWOEM专用15125,500主机附件箱G-01原厂配套
13内窥镜GE MentorVisual iQ /iQ-ExGE专用63.575,000探伤设备柜H-02防爆型用于故障排查
14轴承安装导向套OEM-MAN-BW-BG-04OEM专用45.23,800轴承装配区I-03防止瓦片移位
15活塞吊装专用吊具 OEM-MAN-BW-PST-05OEM专用202812,000吊具架J-01带缓冲橡胶夹头
16感应加热器EFD InductionMinac 16 /EFD专用453568,000热装工具区K-02温控精度
序号名称规格/型号生产单位通用/专用体积U重量(kg)参考价(元)存放位置备注
Minac 10±5℃
17铜棒与塑料锤Φ20×300 mm市品通用22.1150普通工具箱L-05用于轻敲装配
18活塞环压缩器OEM-MAN-BW-RCC-06OEM专用86.54,200活塞维修台M-03适配350活塞
19环槽清洁刮刀Custom-Piston-Groove-ScraperOEM专用0.50.4320活塞工具盒N-01铜质加
20环口定位夹具Custom-Ring-AlignerOEM专用32.31,800活塞维修台M-04控制环开□相位
21缸套拔出器OEM-MAN-BW-LINER-PULLOEM专用25329,500缸体检修区0-02螺纹顶压式
22液压压装机HYDRA-PRESS-50TOEM或市品专用600800180,000压装工位P区带压力与位移监控
23冷却水腔密封测试仪LeakTest-CT300OEM专用181528,000密封测试台Q-010.3MPa保压
24深度规0-150mm/0-300mm市品通用10.7600量具柜F-05
25放大镜(带LED)5×/10×withscale/light市品通用0.60.3220检验工具盒R-01检查裂纹/印痕
26防爆LED手电Streamlight88040Streamlight专用0.40.51,100防爆工具柜S-0124V安全电压
27清洁气枪Industrial AirBlow Gun市品通用1.20.9180气动工具架T-02压力≤0.5MPa
28排气阀专用吊具OEM-MAN-BW-VALVE-HOOKOEM专用12166,200阀件吊装区U-01带隔热手柄
29红外测温仪Fluke 62 Max+Fluke通用0.80.352,400电子仪表柜V-03测量高温
序号名称规格/型号生产单位通用/专用体积山重量(kg)参考价(元)存放位置备注
部件
30密封面检测平板Optical Flat/10市品专用10815,000精密测量台W-01着色法检查
31便携式阀座镗床SUNNEN SV-20SUNNEN专用9075130,000阀维修区X-01带角度调节
32液压阀座压装机 HYDRA-SEAT-PRESSOEM专用12018078,000阀维修区X-02过盈配合
33角度规0-90°Protractor市品通用1.51.2300量具柜F-06检查锥角
34喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCHOEM专用43.62,800喷油器工具箱Y-01防滑齿设计
35高压燃油压力表0-20 MPa市品通用0.90.8950仪表校验柜Z-02校验有效期内
36喷油雾化测试台Bosch EPS 815Bosch专用200220220,000喷油器测试室AA-01测开启压力与雾化角
37柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDEOEM专用21.71,600喷油泵维修台AB-02防划伤
38供油定时检测仪AVL 545AVL专用151285,000燃油系统测试区AC-01测喷油始点
39涡轮增压器专用拆装台Custom-Turbo-BenchOEM专用30040095,000增压器维修区AD-01带V型支撑
40动平衡检测仪SchenckBALANCER VSchenck专用500600680,000平衡实验室AE-01G2.5级精度
41高压清洗机Kärcher HD7/15-4Karcher通用806532,000清洗站 AF-01压力0-5MPa可调
42管束专RotatingOEM专用0.30.2800清洗配件柜自旋
序号名称规格/型号生产单位通用/专用体积U重量8)参考价(元)存放位置备注
用清洗喷头Nozzle 3mm5AG-01
43风压干燥机Industrial AirDryer市品通用1209025,000空压站 AH-010.6MPa
44泄漏测试装置Air/Water LeakTesterOEM专用252036,000密封测试台Q-020.4MPa保压
45防爆型扫气箱清洗机器人SCB-CLEANBOT-X1OEM专用150130420,000机器人存放区AI-01自动高压水射流
46红外热像仪FLIR T860FLIR专用52.1120,000电气检测室AJ-01检测热点
47可燃气体检测仪MSA Altair 5XMSA专用10.78,500安全设备柜AK-01多气体复合
48等离子堆焊机PLASMAD 5000OEM专用400350580,000焊接修复区AL-01自动送粉
49热处理炉Box Furnace800°COEM专用10001200320,000热处理间AM-01控温土10℃
50超声波探伤仪Olympus Epoch650Olympus专用63.295,000探伤设备柜H-03检测内部缺陷
51三维扫描仪FARO ArmQuantumFARO专用3025750,000测绘室AN-01修复形貌比对
52主机监控系统(PMS)IntegratedBridge System船厂集成专用1,200,000集控室A0-01读取功率曲线
53调速器性能测试仪Woodward TestBenchWoodward专用180200480,000调速器测试间AP-01检测响应滞后
54燃油黏度计MarconiViscotesterMarconi专用12942,000燃油化验室AQ-01测HFO黏度
55多通道数据记录仪DataTaker DT80DataTaker通用32.418,000数据采集柜AR-01同步录负荷/转速
\\n\\n\\n\\n\\n\\n\\n\\n\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n
序号名称牌号/品级/规格生产单位备注
1柴油机专用润滑油 Shell Mysella S5 N80Shell符合MAN 97101标准
2无纺布抹布Industrial Grade市场品不掉屑
3清洗剂CRC Brakleen /Brulin 815GD/ CRC Carbon Clean ProCRC /Brulin多用途清洁
4主机油滤芯MAN B&W 5L35MC-FIL-01MAN原厂件
5机油放油螺塞密封圈Viton Φ22×2.5市场品耐高温氟橡胶
6清洁酒精AR Grade / ≥99.5%市场品
7防锈纸VCI-200市场品
8无绒擦拭布Kimwipe EX-LKimberly-Clark防刮伤
9轴承装配润滑脂 Kluber Isoflex LDS 18Special AKluber仅涂瓦背
10螺纹锁固胶Loctite 2701Henke1用于螺栓(如适用)
11高温装配润滑脂Molycote G-1052Dow Corning活塞销/螺纹
12积碳清洗剂CRC Carbon Clean ProCRC环保型
13防锈油CRC 3-36CRC临时防护
14二硫化钼润滑膏 Molycote BR2 PlusDow Corning涂活塞环外圆
15缸套润滑机油Shell Mysella S5 N80Shell同主滑油
16耐油标记笔Markal Oil-ResistantMarkal标记环开口
17耐高温标记笔Markal 900° FMarkal高温环境
18装配润滑脂 Kluber Isoflex LDS 18Special AKluber缸套外壁
19密封胶Loctite 518 / 577Henke1水腔/泵体法兰
20高温镍基焊条ENiCrFe-3市场品阀座焊接
21研磨膏(细)Clover Leaf GreenClover阀座研配
22清洁柴油ISO 4020 Grade A市场品冲洗油道
23高压泵专用润滑油 Shell Tellus S4 VX 32Shell偶件润滑
24中性清洗剂Alconox DetojetAlconoxpH=9.5,环保
25软化水Deionized Water市场品配清洗液
26生物降解清洗剂Envirox SC-90Envirox清除碳化油泥
27耐高温防火毯Fiberglass Mat 1200°C市场品局部隔热
28镍基合金焊粉INCONEL 625Special Metals堆焊修复
29渗透探伤剂Magnaflux ZL-27AMagnafluxPT检测裂纹
30保温棉Ceramic Fiber Blanket市场品焊后缓冷
31标准测试燃油ISO 8217 RMG380市场品稳定测试用
\\n\\n\\n6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n
序号维修项目安全防护要求备注
1MT001保养机座与机架组件1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡防止误启与油污扩散
2MT002检查主轴承座1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区防止转动伤人
3MT003检测曲轴跳动1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固防止测量中曲轴转动
4MT004更换连杆大端轴承1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区防止异物落入/坠落
5MT005更换连杆小端轴承1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫防止活塞坠落损坏
6MT006 拆检活塞头1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁防爆防误启
2.缸内作业使用≤24V防爆照明
7MT007/008更换活塞环1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩防止工具/异物落入
8MT009 检测缸套磨损1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳高空/旋转风险
9MT010 更换气缸套1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布防水防砸
10MT011 检查排气阀杆1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识防高温/误动作
11MT012 更换排气阀座1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线防金属屑/电击
12MT013/019 更换/排除喷油器1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火防燃防爆
13MT014 更换柱塞偶件隔离燃油系统,LOTO 挂牌上锁防燃油泄漏
14MT015 更换增压器轴承1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫防气体倒流/坠落
15MT016 清洗空冷器1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服防高压水伤人
16MT017 修复连杆异常磨损1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体防复燃/室息
17MT018修复活塞烧蚀1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证防火灾
18MT020 排除功率波动1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范防飞车/电火花
\\n\\n\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n
序号维修项目注意事项备注
1MT0011.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜防烫伤
2MT0021.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间防夹伤
3MT0031.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油防滑脱
4MT0041.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整防损伤
5MT0051.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套防烫/变形
6MT0061.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩防吸入积碳
7MT007/0081.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180°防划伤/装反
8MT0091.冷却水未排空不得测量2.手不得置于千分尺与缸壁间防夹伤
9MT0101.禁用火焰加热缸体2.压装时人员不得站压机正下方防裂纹/砸伤
10MT0111.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜防碎屑/热辐射
11MT0121.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测防热应力/裂纹
12MT013/0191.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装防卡死/污染
13MT0141.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确防相位错误
14MT0151.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形防误判/失效
15MT0161.禁用酸性清洗剂2.清洗压力≤5 MPa防腐蚀/翅片倒伏
16MT0171.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温防自燃
17MT0181.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷防二次裂纹
18MT0201.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认防飞车
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_bfa2402a-7784-4dcf-a836-3569e52ccafc.pdf#page=60\"}]", + "embedding": [ + 0.027071798220276833, + -0.02069217339158058, + -0.03694634884595871, + 0.008691082708537579, + 0.0012574332067742944, + -0.017724260687828064, + 0.01721573993563652, + 0.0005339468480087817, + 0.012722265906631947, + 0.002459391485899687, + -0.00045506833703257143, + 0.00034151793806813657, + 0.03169471397995949, + 0.007073062006384134, + -0.008848262019455433, + -0.08210299164056778, + 0.0040751006454229355, + 0.0006558762397617102, + 0.0065969014540314674, + 0.008889867924153805, + 0.017308197915554047, + -0.06490574777126312, + 0.028144314885139465, + 0.025518497452139854, + -0.014441990293562412, + -0.0319535993039608, + 0.010854607447981834, + 0.00741978082805872, + 0.017548590898513794, + -0.0024200966581702232, + -0.02723822370171547, + -0.00585261220112443, + -0.006402738858014345, + 0.0039017414674162865, + -0.04800436273217201, + -0.04892894625663757, + 0.009985499083995819, + 0.020766140893101692, + -0.07722119241952896, + 0.023743297904729843, + -0.05551197752356529, + -0.03520813211798668, + 0.0004166403377894312, + -0.06375925987958908, + -0.044712845236063004, + -0.031195439398288727, + -0.043899212032556534, + -0.03868456184864044, + -0.01732669025659561, + 0.005565991159528494, + 0.005750908050686121, + -0.009597173891961575, + 0.012925674207508564, + -0.05728717893362045, + -0.01009644940495491, + 0.026794422417879105, + -0.08106745779514313, + 0.0019947884138673544, + -0.09120089560747147, + -0.017446886748075485, + -0.026332130655646324, + 0.05384773015975952, + -0.02291117236018181, + -1.2451175280148163e-05, + 0.025629447773098946, + 0.051665712147951126, + -0.00013962651428300887, + 0.007891317829489708, + -0.010660445317626, + -0.05022336170077324, + 0.000611958559602499, + -0.03206454589962959, + -0.024057656526565552, + 0.007803482934832573, + -0.06605222821235657, + 0.035540979355573654, + 0.02696084789931774, + -0.03387673199176788, + -0.039165347814559937, + -0.022892681881785393, + -0.008011514320969582, + -0.03125091269612312, + -0.012019582092761993, + 0.0003435404796618968, + 0.017770489677786827, + 0.03726070374250412, + -0.04430602863430977, + 0.018186552450060844, + -0.07370777428150177, + -0.05980204418301582, + -0.012065811082720757, + 0.0020826237741857767, + 0.030936555936932564, + -0.02004496566951275, + -0.057435113936662674, + 0.01009644940495491, + -0.035651929676532745, + 0.03261929750442505, + 0.024519948288798332, + -0.010706674307584763, + 0.018510157242417336, + 0.013184557668864727, + 0.008316626772284508, + -0.012639053165912628, + 0.026406098157167435, + -0.0030534362886101007, + 0.006222445517778397, + -0.009010063484311104, + 0.02614721469581127, + -0.019249822944402695, + -0.016124732792377472, + 0.07322699576616287, + 0.005242387298494577, + 0.03184264898300171, + 0.00639349315315485, + -0.06261277943849564, + -0.007613942958414555, + -0.02355838194489479, + 0.0693807303905487, + -0.005283993203192949, + -0.003816217416897416, + -0.039720095694065094, + 0.044860780239105225, + -0.04001596197485924, + 0.024556931108236313, + -0.03113996423780918, + 0.00872806552797556, + -0.017835211008787155, + 0.006860408000648022, + 0.007701778784394264, + -0.010623461566865444, + 0.007489124312996864, + -0.016818169504404068, + -0.0022178441286087036, + -0.0023900477681308985, + -0.04515664651989937, + -0.03126940503716469, + -0.02061820589005947, + -0.031158456578850746, + -0.054254546761512756, + 0.01611548662185669, + -0.004542015492916107, + 9.094143024412915e-05, + 0.006430476438254118, + 0.024427490308880806, + 0.0656084269285202, + -0.008478428237140179, + -0.025130173191428185, + -0.04005294665694237, + -0.013683832250535488, + 0.012232236564159393, + 0.02603626437485218, + 0.03942422941327095, + 0.01489503588527441, + 0.01704007014632225, + 0.024741848930716515, + -0.029808564111590385, + 0.09046122431755066, + -0.025333581492304802, + 0.008390593342483044, + -0.034339021891355515, + 0.03853663057088852, + -0.027478614822030067, + 0.0007974530453793705, + 0.004854062106460333, + -0.00031551404390484095, + 0.034024663269519806, + 0.009893041104078293, + -0.01360061950981617, + -0.02720123901963234, + 0.037316180765628815, + 0.015098444186151028, + -0.013045869767665863, + -0.00042097430559806526, + 0.03849964588880539, + 0.015375819988548756, + 0.020026473328471184, + -0.0046298508532345295, + 0.03883249685168266, + -0.019397756084799767, + -0.0016665613511577249, + 0.01643908955156803, + -0.013739307411015034, + -0.005949693266302347, + 0.0057740225456655025, + -0.009153374470770359, + 0.017899932339787483, + -0.015893585979938507, + -0.0017243478214368224, + 0.01618945226073265, + -0.04430602863430977, + 0.0011938681127503514, + 0.030881080776453018, + -0.031435832381248474, + 0.036927856504917145, + 0.02696084789931774, + -0.012879445217549801, + -0.01618945226073265, + 0.026664981618523598, + -0.000204852971364744, + -0.028255265206098557, + -0.01814032346010208, + -0.024778831750154495, + -0.011631257832050323, + -0.024852797389030457, + 0.06387021392583847, + 0.0046506538055837154, + -0.03942422941327095, + -0.04127339646220207, + -0.021265415474772453, + -0.004928028676658869, + 0.03293365612626076, + 0.05765701085329056, + -0.015995290130376816, + -0.003125091316178441, + 0.028384706005454063, + 0.012149023823440075, + -0.015588473528623581, + -0.0002676957519724965, + -0.045637428760528564, + -0.050815094262361526, + 0.006458214018493891, + 0.012001090683043003, + 0.04171719774603844, + 0.021542789414525032, + -0.04193909838795662, + 0.018399206921458244, + 0.0050667161121964455, + -0.0033354340121150017, + -0.006097626406699419, + -0.021025022491812706, + 0.00241316226311028, + 0.0014250139938667417, + -0.03213851526379585, + 0.046525031328201294, + 0.03369181230664253, + -0.02050725743174553, + 0.043936196714639664, + 0.038092829287052155, + -0.014099895022809505, + -0.0417911633849144, + 0.02611023187637329, + -0.0004932073643431067, + 0.006361132953315973, + -0.01452520303428173, + 0.01303662359714508, + 0.010309102945029736, + 0.006319526582956314, + -0.04966861382126808, + 0.026627998799085617, + 0.004262328613549471, + -0.011658994480967522, + -0.03548550605773926, + -0.011945615522563457, + 0.026091739535331726, + 0.024945257231593132, + 0.023317988961935043, + 0.015764145180583, + 0.021191447973251343, + -0.004923406057059765, + -0.020377814769744873, + 0.05033431202173233, + 0.007091553416103125, + 0.01717875711619854, + -0.0022282456047832966, + 0.0011574627133086324, + -0.002017902908846736, + 0.0336548313498497, + -0.03500472381711006, + 0.01583811081945896, + -0.012851707637310028, + 0.0013961207587271929, + 0.023151565343141556, + -0.00825190544128418, + 0.046562012284994125, + 0.08165919035673141, + -0.00626867450773716, + -0.011649749241769314, + 0.08802032470703125, + -0.005565991159528494, + 0.029420239850878716, + 0.007572337053716183, + 0.03964613005518913, + -0.04955766350030899, + 0.014747102744877338, + 0.013646848499774933, + -0.039165347814559937, + 0.0035157278180122375, + -0.014534449204802513, + -0.052849180996418, + -0.0536997951567173, + -0.033488404005765915, + 0.060763612389564514, + 0.006462837103754282, + -0.03946121409535408, + 0.02483430691063404, + -0.0020190586801618338, + -0.1431254893541336, + 0.03300762176513672, + -0.030011972412467003, + 0.023632347583770752, + -0.017724260687828064, + -6.652665615547448e-05, + -0.013822520151734352, + -0.023706315085291862, + -0.008949966169893742, + 0.04023786261677742, + -0.006999095436185598, + -0.0788484588265419, + -0.016300402581691742, + -0.025278106331825256, + 0.011890140362083912, + -0.018399206921458244, + 0.005565991159528494, + 0.023669332265853882, + -0.02220848947763443, + -0.006689359899610281, + 0.0012088925577700138, + -0.05728717893362045, + 0.0028823884204030037, + -0.002124230144545436, + 0.00503897899761796, + 0.005344091448932886, + 0.00469457171857357, + -0.004186050500720739, + -0.03095504827797413, + -0.031787171959877014, + -0.00047558252117596567, + 0.05728717893362045, + 0.01626341976225376, + 0.030788622796535492, + -0.04844816401600838, + -0.03539304807782173, + 0.020100440829992294, + -0.04467586427927017, + -0.020877089351415634, + 0.023706315085291862, + 0.005131436977535486, + 0.09475129097700119, + 0.02677593193948269, + 0.007174766156822443, + -0.009185735136270523, + -0.04685787856578827, + 0.0183437317609787, + 0.0020571977365761995, + -0.01739141158759594, + -0.057361144572496414, + 0.02193111553788185, + 0.005903464276343584, + -0.01392422430217266, + -0.03171320632100105, + -0.0366874635219574, + 0.025333581492304802, + -0.027996381744742393, + 0.0021623692009598017, + 0.04526759684085846, + -0.004271574784070253, + -0.02479732222855091, + -0.027922414243221283, + 0.0006512533291243017, + -0.02596229873597622, + -0.024131622165441513, + -0.032989129424095154, + 0.010826869867742062, + -0.03613271564245224, + 0.005501270294189453, + -0.0579528771340847, + 0.01313832774758339, + 0.006633884739130735, + 0.013304753229022026, + -0.03912836313247681, + -0.01632814109325409, + 0.02990102209150791, + -0.041569262742996216, + 0.01009644940495491, + -0.04537854716181755, + -0.074114590883255, + 0.00540881184861064, + 0.019989490509033203, + 0.013341736048460007, + -0.07566789537668228, + -0.016309648752212524, + 0.020784631371498108, + 0.027885431423783302, + -0.0319535993039608, + 0.00034151793806813657, + 0.20562732219696045, + 0.004435688257217407, + -0.017650295048952103, + -0.014072157442569733, + 0.01193637028336525, + -0.05225744470953941, + 0.006046774331480265, + 0.004158313386142254, + 0.03729768842458725, + -0.00942150317132473, + -0.005875726696103811, + -0.03432052955031395, + 0.010984049178659916, + 0.009255078621208668, + 0.03842568024992943, + 0.014155369251966476, + -0.04038579761981964, + -0.027497105300426483, + 0.10236985981464386, + -0.016207944601774216, + -0.02143183909356594, + -0.04545251280069351, + -0.017474623396992683, + -0.03722372278571129, + -0.05551197752356529, + -0.005311730783432722, + -0.01360061950981617, + 0.012685282155871391, + 0.010420053265988827, + 0.014368023723363876, + -0.037038806825876236, + 0.04763453081250191, + -0.01923133246600628, + -0.01753934472799301, + -0.054809294641017914, + 0.0027945528272539377, + -0.015153919346630573, + 0.044158097356557846, + 0.021838655695319176, + 0.026221180334687233, + -0.06808631122112274, + -0.04012691229581833, + -0.032286446541547775, + -0.007590828463435173, + -0.016587024554610252, + -0.043936196714639664, + 0.05569689720869064, + -0.003610497573390603, + 0.005399566143751144, + -0.014996740035712719, + -0.031398847699165344, + -0.004928028676658869, + -0.029993480071425438, + 0.019397756084799767, + -0.03332198038697243, + 0.006587655749171972, + -0.007983776740729809, + 0.008228790946304798, + 0.022818714380264282, + 0.03099203109741211, + -0.018584122881293297, + -0.021025022491812706, + -0.005357959773391485, + 0.01326776947826147, + 0.01866733655333519, + -0.033451423048973083, + -0.02635062299668789, + -0.012130532413721085, + 0.02808883972465992, + -0.007355059962719679, + 0.05451342836022377, + 0.017585573717951775, + 0.006129987072199583, + 0.03531907871365547, + 0.021653739735484123, + 0.019471723586320877, + 0.04504569619894028, + 0.08136332780122757, + 0.008524657227098942, + -0.0255739726126194, + -0.051517780870199203, + -0.015884339809417725, + -0.00862636137753725, + 0.011335390619933605, + 0.019786082208156586, + -0.03886948153376579, + 0.012676036916673183, + -0.006999095436185598, + 0.014266319572925568, + 0.01089159119874239, + 0.0009124481002800167, + 0.0018676582258194685, + 0.01792766898870468, + 0.006546049378812313, + -0.030936555936932564, + -0.01104876957833767, + -0.03156527131795883, + -0.03598478063941002, + -0.021949606016278267, + 0.018695073202252388, + -0.04086657986044884, + -0.019083399325609207, + -0.004683014005422592, + -0.05384773015975952, + 0.033026114106178284, + 0.009541699662804604, + -0.01785370334982872, + -0.007368928752839565, + 0.011825419962406158, + 0.0026350622065365314, + 0.015810374170541763, + 0.03759355470538139, + -0.010068711824715137, + -0.01452520303428173, + 0.030233873054385185, + -0.03045577183365822, + -0.004158313386142254, + 0.033063098788261414, + -0.018537893891334534, + 0.0302523635327816, + -0.0287915226072073, + 0.01450671162456274, + 0.03868456184864044, + -0.015643948689103127, + 0.009222717955708504, + -0.029919514432549477, + -0.01895395666360855, + -0.03141734004020691, + -0.004572064150124788, + 0.03909137845039368, + -0.035540979355573654, + -0.038943447172641754, + -0.04474982991814613, + 0.012860952876508236, + 0.04634011164307594, + -0.020266864448785782, + -0.044712845236063004, + 0.026128722354769707, + 0.009763599373400211, + -0.0575830452144146, + -0.03234192356467247, + -0.007646303623914719, + -0.016799677163362503, + 0.00673096626996994, + 0.01081762369722128, + 0.005533630959689617, + -0.037168245762586594, + 0.0336548313498497, + -0.05854461342096329, + 0.03759355470538139, + -0.0012019582791253924, + 0.026239672675728798, + 0.00984681211411953, + -0.05192459747195244, + -0.005210026632994413, + -0.0020571977365761995, + -0.002933240495622158, + 0.0043709673918783665, + 0.025555482134222984, + 0.006804932840168476, + 0.023576872423291206, + 0.04423206299543381, + 0.016522303223609924, + 0.005954316351562738, + 0.020599715411663055, + 0.08232489228248596, + -0.027330681681632996, + 0.03160225600004196, + -0.04530458152294159, + 0.011779190972447395, + 0.014016682282090187, + -0.028347723186016083, + -0.04926179721951485, + 0.079218290746212, + 0.036225173622369766, + 0.040718648582696915, + -0.001881526899524033, + 0.01485805306583643, + -0.04341842979192734, + 0.012241482734680176, + 0.02298513986170292, + 0.07426252961158752, + -0.04168021306395531, + -0.007586205843836069, + -0.03872154653072357, + -0.007960662245750427, + -0.012149023823440075, + -0.005884972400963306, + 0.010660445317626, + 0.023077597841620445, + -0.011437094770371914, + 0.08757652342319489, + 0.015385065227746964, + -0.024593913927674294, + -0.00860786996781826, + 0.022448882460594177, + 0.052479345351457596, + -0.02437201514840126, + 0.004132887348532677, + -0.044971730560064316, + 0.008982326835393906, + 0.0033076966647058725, + 0.023465923964977264, + -0.004965011961758137, + -0.0400899313390255, + -0.055733878165483475, + -0.013498915359377861, + -0.00430393498390913, + -0.010290611535310745, + -0.03420957922935486, + -0.015542244538664818, + -0.019434740766882896, + -0.018889235332608223, + 0.027460122480988503, + 0.018796777352690697, + -0.005020487122237682, + 0.029105881229043007, + 0.06634809821844101, + -0.01450671162456274, + -0.036003272980451584, + 0.02429804764688015, + 0.02189413085579872, + 0.02163524739444256, + -0.05055621266365051, + 0.022615306079387665, + 0.004646030720323324, + 0.029605155810713768, + -0.05466136336326599, + 0.03949819505214691, + -0.018870744854211807, + 0.004615982063114643, + 0.022226981818675995, + -0.013517407700419426, + -0.04345541447401047, + 0.02801487222313881, + 0.004479605704545975, + 0.024852797389030457, + 0.04020088165998459, + -0.025795873254537582, + -0.013452686369419098, + 0.04352938011288643, + 0.038240764290094376, + 0.06679189205169678, + 0.045637428760528564, + 0.022448882460594177, + 0.04841117933392525, + -0.06812329590320587, + 0.04582234472036362, + 0.00016237993258982897, + 0.06261277943849564, + -0.012075057253241539, + -0.015394311398267746, + 0.011797682382166386, + -0.033802762627601624, + -0.02146882377564907, + -0.03215700760483742, + -0.02341044880449772, + -0.005635335110127926, + -0.05259029567241669, + -0.015967553481459618, + -0.017770489677786827, + 0.04371429607272148, + -0.018935464322566986, + 0.004375590477138758, + 0.04105149582028389, + 0.0018341420218348503, + 0.039720095694065094, + -0.01820504479110241, + -0.010577232576906681, + 0.005667695309966803, + -0.005954316351562738, + -0.02670196443796158, + -0.034764330834150314, + -0.043159548193216324, + 0.06797536462545395, + 0.008561640977859497, + 0.02379877306520939, + 0.0036890872288495302, + 0.004918782971799374, + 0.010022482834756374, + -0.0438622310757637, + -0.059210311621427536, + -0.011316899210214615, + 0.0050990767776966095, + 0.025592464953660965, + -0.019212840124964714, + 0.03095504827797413, + -0.001367227523587644, + -0.005501270294189453, + -0.0049095372669398785, + 0.011067261919379234, + 0.02723822370171547, + -0.05188761278986931, + -0.0392393134534359, + 0.013841011561453342, + 0.023743297904729843, + -0.007613942958414555, + -0.02596229873597622, + -0.015005986206233501, + 0.021209940314292908, + -0.005690809804946184, + 0.03459790721535683, + -0.012001090683043003, + -0.019675131887197495, + -0.0021034269593656063, + -0.015098444186151028, + 0.0358368456363678, + -0.013341736048460007, + 0.0007240642444230616, + 0.024575423449277878, + 0.04537854716181755, + -0.05262728035449982, + -0.020063456147909164, + -0.02418709732592106, + 0.02649855613708496, + 0.00848305132240057, + -0.019786082208156586, + -0.018907727673649788, + 0.018306748941540718, + 0.0021092055831104517, + 0.0025171779561787844, + -0.00882052443921566, + -0.020784631371498108, + -0.013387965969741344, + -0.01926831528544426, + 0.0227817315608263, + -0.020951056852936745, + 0.05222046375274658, + -0.02529659867286682, + 0.01092857401818037, + 0.002468637190759182, + 0.03175019100308418, + -0.0417911633849144, + 0.012370924465358257, + 0.030936555936932564, + 0.029216831550002098, + 0.0613553449511528, + 0.013785536400973797, + 0.023225530982017517, + 0.026480063796043396, + -0.02805185690522194, + -0.044934745877981186, + 0.06420306116342545, + -0.0034417612478137016, + 0.05229442939162254, + -0.03378427401185036, + 0.0017509295139461756, + -0.0009737017680890858, + 0.01923133246600628, + 0.015237132087349892, + -0.020063456147909164, + -0.004015002865344286, + -0.000666855659801513, + -0.07995796203613281, + -0.018796777352690697, + -0.0541805773973465, + -0.018426943570375443, + -0.002403916558250785, + 0.018084848299622536, + -0.010253628715872765, + -0.02723822370171547, + 0.02823677286505699, + 0.0328042134642601, + 0.026664981618523598, + 0.003735316451638937, + -0.002963289385661483, + 0.010253628715872765, + 0.0017694211564958096, + 0.003864757949486375, + -0.030862588435411453, + -0.015375819988548756, + -0.04108848050236702, + -0.011871648952364922, + 0.032286446541547775, + -0.0060745119117200375, + 0.02255983091890812, + -0.018935464322566986, + 0.004634473472833633, + 0.007752630859613419, + -0.0006813022773712873, + -0.030825605615973473, + -0.06642206013202667, + 0.002323015360161662, + -0.015486769378185272, + 0.060800593346357346, + -0.021727707237005234, + -0.0080022681504488, + -0.009148751385509968, + 0.03454243019223213, + 0.03304460644721985, + -0.019064906984567642, + 0.01021664496511221, + -0.0345609225332737, + -0.0010881188791245222, + -0.11738508939743042, + -0.004687637090682983, + -0.02472335658967495, + 0.01796465367078781, + -0.03439449891448021, + -0.018713565543293953, + -0.00928281620144844, + -0.009107145480811596, + 0.01126142404973507, + -0.02298513986170292, + 0.01777973584830761, + -0.02294815704226494, + 0.06128137931227684, + -0.015366573818027973, + -0.020766140893101692, + -0.001324465498328209, + -0.0005975119420327246, + -0.014636153355240822, + 0.006134610157459974, + 0.05802684649825096, + -0.005006618332117796, + 0.00012301291280891746, + 0.013535899110138416, + 0.00986530352383852, + 0.05458739399909973, + 0.016513057053089142, + -0.012823970057070255, + 0.000990459811873734, + -0.020248373970389366, + 0.027367664501070976, + 0.022189998999238014, + -0.03722372278571129, + 0.005968185141682625, + 0.04419507831335068, + -0.003566579893231392, + -0.007979153655469418, + -0.020803123712539673, + 0.002163524739444256, + 0.02383575588464737, + 0.01704007014632225, + 0.03674294054508209, + 0.013656094670295715, + 0.03805584833025932, + 0.017409902065992355, + -0.009643403813242912, + 0.08469182997941971, + -0.026646489277482033, + -0.008302757516503334, + -0.03513416275382042, + 0.06035679578781128, + 0.012389415875077248, + 0.0034163352102041245, + 0.025241123512387276, + 0.0311029814183712, + 0.004659899510443211, + -0.014793331734836102, + -0.06963960826396942, + 0.015274115838110447, + -0.07596375793218613, + 0.049113862216472626, + -0.074114590883255, + 0.026554031297564507, + -0.0185563862323761, + -0.01973060704767704, + 0.00034238473745062947, + 0.049890514463186264, + -0.010503266006708145, + -0.004708440043032169, + -0.0099022863432765, + -0.012038074433803558, + 0.010161169804632664, + 0.05229442939162254, + 0.026017772033810616, + -0.0489659309387207, + 0.03507868945598602, + -0.019527198746800423, + 0.03311857208609581, + -0.03369181230664253, + -0.0315837636590004, + 0.017206493765115738, + -0.01923133246600628, + -0.022818714380264282, + -0.005834120325744152, + 0.016568532213568687, + 0.030881080776453018, + -0.0016180207021534443, + -0.02511168085038662, + -0.03602176532149315, + -0.008441445417702198, + -0.02677593193948269, + -0.039941996335983276, + -0.044823795557022095, + 0.014552940614521503, + 0.026720456779003143, + 0.0104477908462286, + 0.0016076191095635295, + -0.01429405715316534, + -0.03539304807782173, + -0.020562732592225075, + -0.01788143999874592, + -0.006153101567178965, + -0.024741848930716515, + 0.013702323660254478, + 0.0037699881941080093, + 0.00781272817403078, + 0.0011129671474918723, + 0.03102901391685009, + -0.030548231676220894, + 0.02766353078186512, + -0.024242572486400604, + 0.016596268862485886, + 0.01704007014632225, + 0.006707851774990559, + -0.0017520852852612734, + -0.05103699490427971, + 0.027940906584262848, + 0.03439449891448021, + -0.04108848050236702, + -0.05987601354718208, + -0.005616843234747648, + 0.04175417870283127, + 0.017825964838266373, + -0.0079883998259902, + -0.042345914989709854, + -0.01535732764750719, + 0.025555482134222984, + 0.024002181366086006, + 0.04785642772912979, + 0.0202298816293478, + 0.037852440029382706, + 0.02058122307062149, + 0.009019309654831886, + -0.029549680650234222, + 0.012232236564159393, + 0.025352073833346367, + -0.0010014392901211977, + -0.019675131887197495, + 0.07082308083772659, + -0.06616317480802536, + -0.052405379712581635, + 0.002817667555063963, + 0.03424656391143799, + -0.0027575695421546698, + 0.005510515999048948, + -0.0005379918729886413, + 0.01427556574344635, + -0.02448296546936035, + -0.0404597632586956, + 0.004382524639368057, + 0.011658994480967522, + 0.028329230844974518, + -0.015135427936911583, + 0.004174493253231049, + 0.030196888372302055, + -0.01335098221898079, + -0.02673894725739956, + 0.04116244614124298, + 0.006384247448295355, + -0.017761243507266045, + 0.005385697353631258, + 0.029660630971193314, + 0.001980919623747468, + 0.03138035535812378, + -0.007502993103116751, + 0.013896486721932888, + 0.026905372738838196, + 0.0023565315641462803, + -0.007674041204154491, + -0.021875640377402306, + 0.03679841384291649, + -0.018251273781061172, + 0.013665340840816498, + -0.015736406669020653, + 0.01657777838408947, + 0.01766878552734852, + -0.01976758986711502, + 0.0038185289595276117, + 0.0038948070723563433, + 0.08639305830001831, + 0.01941624842584133, + 0.022485865280032158, + 0.036853887140750885, + 0.053995661437511444, + 0.01771501451730728, + 0.022504355758428574, + 0.10495869070291519, + 0.08750256150960922, + 0.008164070546627045, + -0.05876651033759117, + -0.031176947057247162, + -0.014562186785042286, + 0.014460482634603977, + 0.010068711824715137, + -0.00702220993116498, + 0.040718648582696915, + 0.03718673810362816, + 0.0032106153666973114, + 0.036853887140750885, + -0.03099203109741211, + 0.04108848050236702, + -0.013175311498343945, + 0.0010846516815945506, + -0.006767949555069208, + -0.004403327591717243, + 0.018010882660746574, + -0.0049095372669398785, + 0.025518497452139854, + -0.043196529150009155, + -0.021025022491812706, + 0.025315089151263237, + -0.003501859027892351, + 0.00919035729020834, + -0.013711569830775261, + 0.010826869867742062, + 0.0038416434545069933, + 0.02135787345468998, + 0.046562012284994125, + -0.014053665101528168, + 0.01607850380241871, + 0.04682089760899544, + 0.002104582730680704, + -0.014710119925439358, + 0.006851161830127239, + -0.047449611127376556, + 0.029031913727521896, + -0.03506019711494446, + -0.013767044991254807, + 0.0043178037740290165, + -0.002276786370202899, + -0.029697613790631294, + 0.0127869863063097, + -0.07389269769191742, + -0.019804572686553, + 0.028458673506975174, + -0.00534871406853199, + -0.02239340730011463, + -0.01881526969373226, + 0.016318894922733307, + 0.0026235049590468407, + 0.007156274281442165, + 0.0665699914097786, + 0.043122563511133194, + -0.031861137598752975, + 0.00534871406853199 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检查主轴承座安装状态", + "编号": "MT002", + "内容": "表 4.4 MT002 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0020101焊接机座组件检查主轴承座安装状态6M/200hJY级
安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。
安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。
序号名称规格/型号数量及单位备注
1激光对中仪SKF TKSA 711套用于轴承同轴度检测
2塞尺组0.02 -1.00 mm1套精度±0.005mm
3液压拉伸器HYTORC AVANTI-101台用于地脚螺栓预紧
4内径千分尺200-300mm1把校验有效期内
2)备品备件
名称规格/型号消耗数量备注
1排气阀PV-1001
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁酒精AR Grade100mL
2防锈纸VCI-2002张
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师
修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;
\n图 MT002.1 换油前清洗\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\n图 MT002.2 检查\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\n图 MT002.3 塞尺测量\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\n图 MT002.4 激光对中仪\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\n图 MT002.5 测量轴线偏移量\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\n\n
判定与处理
1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。
验收标准
1.主轴承座与机座结合面间隙≤0.05mm(全周);
2.相邻主轴承同轴度偏差≤0.08 mm/m;
3.地脚螺栓预紧力在设计值 ±5% 范围内。
页码:1/1版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.4 MT002 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0020101焊接机座组件检查主轴承座安装状态6M/200hJY级
安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。
安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。
序号名称规格/型号数量及单位备注
1激光对中仪SKF TKSA 711套用于轴承同轴度检测
2塞尺组0.02 -1.00 mm1套精度±0.005mm
3液压拉伸器HYTORC AVANTI-101台用于地脚螺栓预紧
4内径千分尺200-300mm1把校验有效期内
2)备品备件
名称规格/型号消耗数量备注
1排气阀PV-1001
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁酒精AR Grade100mL
2防锈纸VCI-2002张
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师
修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;
\\n图 MT002.1 换油前清洗\\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\\n图 MT002.2 检查\\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\\n图 MT002.3 塞尺测量\\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\\n图 MT002.4 激光对中仪\\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\\n图 MT002.5 测量轴线偏移量\\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\\n\\n
判定与处理
1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。
验收标准
1.主轴承座与机座结合面间隙≤0.05mm(全周);
2.相邻主轴承同轴度偏差≤0.08 mm/m;
3.地脚螺栓预紧力在设计值 ±5% 范围内。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1416a6cb-7b91-466b-9287-ff15f275e8c7.pdf#page=23\"}]", + "embedding": [ + -0.03859652951359749, + -0.03490234538912773, + -0.04098235443234444, + 0.018701806664466858, + -0.009423055686056614, + -0.0005029598250985146, + 0.04290641099214554, + -0.009326852858066559, + -0.025166630744934082, + 0.025647643953561783, + 0.032554998993873596, + 0.010697741992771626, + 0.023800551891326904, + 0.047716546803712845, + -0.03850032761693001, + -0.036095257848501205, + 0.014805597253143787, + 0.001402154564857483, + 0.007292165886610746, + -0.0021152570843696594, + -0.04402236267924309, + -0.01249673217535019, + 0.040597546845674515, + 0.025551440194249153, + 0.012650656513869762, + 0.02439700812101364, + -0.036345385015010834, + 0.019875479862093925, + 0.009384574368596077, + 0.02880309335887432, + -0.02391599491238594, + -0.03717272728681564, + -0.0019084212835878134, + 0.002152535831555724, + -0.03813475742936134, + -0.05398896336555481, + 0.00992812030017376, + -0.05414288863539696, + -0.04837072268128395, + 0.04710084944963455, + -0.03626842424273491, + -0.013766608200967312, + 0.0051949466578662395, + 0.012621795758605003, + 0.00721520371735096, + -0.05348870903253555, + -0.01825927570462227, + -0.007152671925723553, + -0.0035089938901364803, + -0.015796486288309097, + -0.017124082893133163, + -0.01781674288213253, + 0.016277499496936798, + -0.01893269456923008, + 0.0011381983058527112, + 0.06056922674179077, + 0.010832425206899643, + -0.0676882266998291, + -0.005647099111229181, + -0.00317709450609982, + -0.036095257848501205, + 0.035133231431245804, + -0.035902854055166245, + 0.023704348132014275, + 0.036633994430303574, + 0.03998184949159622, + 0.004213678650557995, + -0.030515501275658607, + -0.02420460246503353, + -0.029399549588561058, + -0.0026455745100975037, + -0.008480269461870193, + -0.02503194659948349, + 0.014824838377535343, + -0.05660567805171013, + 0.061762142926454544, + 0.021761054173111916, + -0.016248637810349464, + -0.014363065361976624, + 0.007984825409948826, + -0.0031794996466487646, + -0.015305851586163044, + 0.016594968736171722, + 0.026802076026797295, + 0.033536266535520554, + 0.06060770899057388, + -0.023800551891326904, + 0.026513468474149704, + -0.04240615665912628, + -0.0034320317208766937, + -0.013843570835888386, + -0.00653697457164526, + 0.0035258294083178043, + 0.023088650777935982, + -0.05414288863539696, + -0.010890146717429161, + -0.023762069642543793, + -0.02736005187034607, + 0.04983300715684891, + -0.009278751909732819, + -0.008879510685801506, + 0.01036103256046772, + 0.04494590684771538, + -0.012352428399026394, + 0.05148769170045853, + 0.02014484815299511, + 0.03707652539014816, + 0.009817486628890038, + -0.013304835185408592, + -0.010572678409516811, + -0.027764102444052696, + 0.015459775924682617, + 0.017999527975916862, + -0.01922130212187767, + -0.01727800816297531, + -0.013227873481810093, + -0.014055216684937477, + -0.04444565251469612, + -0.0032853225711733103, + -0.025435997173190117, + 0.04906338453292847, + -9.372249041916803e-05, + 0.025936251506209373, + -0.010582298040390015, + 0.0028908916283398867, + -0.01515192724764347, + 0.03715348616242409, + -0.01179445255547762, + 0.04525375738739967, + 0.023030929267406464, + -0.0036677285097539425, + 0.046562112867832184, + -0.0332091748714447, + -0.01339141745120287, + -0.008004065603017807, + -0.023069411516189575, + 0.014757496304810047, + 0.01922130212187767, + -0.01932712458074093, + -0.024608654901385307, + 0.013247113674879074, + 0.044137805700302124, + -0.061184924095869064, + -0.011669388972222805, + 0.025917010381817818, + -0.0027081063017249107, + 0.014536229893565178, + -0.03451753407716751, + 0.02576308697462082, + -0.0007353494875133038, + -0.024858782067894936, + 0.02285776473581791, + -0.02416612207889557, + -0.006065580993890762, + -0.03234335407614708, + -0.023511942476034164, + -0.046292744576931, + 0.020029405131936073, + -0.008802548050880432, + 0.027186887338757515, + 0.01906737871468067, + 0.08411965519189835, + 0.012823821976780891, + -0.00818685069680214, + 0.033093731850385666, + -0.021510927006602287, + 0.02295396663248539, + 0.010024323128163815, + 0.01641218364238739, + -0.019086617976427078, + 0.04236767441034317, + -0.02483954094350338, + 0.014324584044516087, + -0.005493174772709608, + 0.033517025411129, + 0.02129928022623062, + 0.03678791597485542, + 0.011630907654762268, + 0.009702043607831001, + -0.007715457584708929, + 0.02072206512093544, + 0.04956363886594772, + 0.01157318614423275, + 0.006796721834689379, + 0.006796721834689379, + 0.0367109552025795, + 0.06945835798978806, + -0.005170895718038082, + 0.004398868884891272, + 0.031015755608677864, + -0.0376729816198349, + 0.0073114060796797276, + 0.02551295980811119, + -0.08165686577558517, + 0.0015067750355228782, + 0.04082843288779259, + -0.020799025893211365, + 0.003371905069798231, + 0.012208124622702599, + -0.04332970082759857, + -0.027918027713894844, + -0.01825927570462227, + 0.060838595032691956, + -0.008047357201576233, + -0.0059068468399345875, + 0.03370942920446396, + -0.008475459180772305, + -0.04005881026387215, + 0.030380817130208015, + -0.058760616928339005, + -0.014593951404094696, + -0.00564228929579258, + 0.03236259147524834, + 0.013208632357418537, + -0.01674889214336872, + 0.003814437659457326, + 0.016720032319426537, + -0.010197487659752369, + -0.028495244681835175, + -0.001187502290122211, + -0.02861068770289421, + 0.039827924221754074, + 0.03632614389061928, + -0.021376242861151695, + 0.02518587000668049, + -0.04763958230614662, + 0.01406483631581068, + 0.01312205009162426, + -0.01845168136060238, + -0.018288135528564453, + -0.03386335447430611, + 0.01703749969601631, + -0.04125172272324562, + -0.003934691194444895, + 0.08004065603017807, + 0.018923074007034302, + -0.05498947203159332, + 0.035325635224580765, + 0.01858636364340782, + 0.01922130212187767, + -0.03903906047344208, + 0.00878811813890934, + 0.027975749224424362, + -0.009355713613331318, + -0.033728670328855515, + -0.016691170632839203, + 0.04221374914050102, + 0.015815725550055504, + -0.031073477119207382, + 0.012063819915056229, + -0.03370942920446396, + -0.03819247707724571, + -0.02318485453724861, + -0.02997676469385624, + 0.009860778227448463, + 0.027321571484208107, + 0.009937739931046963, + -0.028302839025855064, + 0.012054200284183025, + -0.019336745142936707, + -0.010024323128163815, + 0.018605604767799377, + 0.007970394566655159, + 0.006955455988645554, + 0.0058058337308466434, + 0.05252668261528015, + -0.04421476647257805, + 0.004800515249371529, + -0.006411910988390446, + -0.017787881195545197, + -0.0517185777425766, + 0.01409369707107544, + 0.015998510643839836, + -0.009341283701360226, + -0.013574202544987202, + 0.07272925227880478, + -0.0010925020324066281, + -0.0008267420926131308, + 0.04540767893195152, + -0.031881578266620636, + 0.007874191738665104, + -0.006969886366277933, + 0.026321062818169594, + -0.0006373429787345231, + -0.0055508967489004135, + -0.006488873157650232, + -0.04744717851281166, + -0.0015656991163268685, + -0.007931914180517197, + -0.060646191239356995, + -0.003362284740433097, + -0.037403613328933716, + 0.0878138393163681, + 0.016681550070643425, + -0.030515501275658607, + 0.01956763118505478, + -0.000719716539606452, + -0.17408843338489532, + 0.03848108649253845, + -0.012256225571036339, + -0.01288154348731041, + -0.0010041157947853208, + -0.0005531656206585467, + -0.0221843458712101, + -0.05629782751202583, + -0.003557095304131508, + -0.018865352496504784, + -0.003917855676263571, + -0.08850649744272232, + -0.007234443910419941, + -0.02730233035981655, + 0.022915486246347427, + -0.0073546976782381535, + -0.03093879297375679, + 0.018971174955368042, + -0.0034897534642368555, + -0.031689174473285675, + -0.04259856045246124, + -0.034440573304891586, + 0.0549125075340271, + 0.009038245305418968, + -0.016469905152916908, + -0.03869273141026497, + 0.04194438457489014, + -0.023608146235346794, + -0.021780293434858322, + 0.03143904730677605, + 0.033824872225522995, + 0.012160022743046284, + -0.001976965693756938, + 0.036383867263793945, + 0.029418790712952614, + 0.019288644194602966, + 0.0475626215338707, + -0.021895738318562508, + -0.021126115694642067, + 0.020375734195113182, + -0.0018711427692323923, + 0.034940823912620544, + 0.007042038720101118, + 0.03007296845316887, + -0.025628402829170227, + -0.1222928911447525, + -0.027629420161247253, + -0.018316997215151787, + -0.01927902363240719, + -0.015248130075633526, + 0.003573930822312832, + 0.018605604767799377, + 0.008412927389144897, + -0.03428664803504944, + -0.05656719580292702, + -0.0015115850837901235, + -0.023030929267406464, + 0.020645102486014366, + -0.026474986225366592, + -0.007143051363527775, + -0.038077034056186676, + -0.052603643387556076, + 0.053681112825870514, + -0.023896753787994385, + -0.0609925203025341, + -0.016469905152916908, + -0.04052058234810829, + -0.02803347073495388, + 0.0099762212485075, + -0.030765628442168236, + 0.0011201603338122368, + 0.013574202544987202, + 0.007171912118792534, + -0.048832498490810394, + -0.0002651587419677526, + 0.047370217740535736, + -0.020471937954425812, + -0.01970231533050537, + -0.01806687004864216, + -0.10459159314632416, + 0.051449209451675415, + 0.085581935942173, + -0.0034536775201559067, + -0.05602845922112465, + -0.013728126883506775, + 0.028880054131150246, + 0.027667900547385216, + -4.964210165780969e-05, + -0.007013177964836359, + 0.2404298186302185, + 0.05060262605547905, + -0.02624410018324852, + -0.08250344544649124, + 0.02464713528752327, + -0.017114462330937386, + 0.0078645721077919, + -0.03199702128767967, + 0.02749473601579666, + -0.02343498170375824, + -0.034690696746110916, + -0.0014706989750266075, + 0.041136279702186584, + -0.002842790214344859, + -0.011919516138732433, + 0.028841573745012283, + -0.009471157565712929, + 0.015998510643839836, + 0.1037450060248375, + -0.020664343610405922, + 0.009120017290115356, + 0.02609017677605152, + -0.023858273401856422, + -0.02895701676607132, + -0.059337832033634186, + -0.04013577103614807, + -0.020010164007544518, + 0.0472547747194767, + 0.00451671751216054, + 0.01612357422709465, + -0.02818739414215088, + 0.04275248572230339, + 0.03397879749536514, + -0.009192169643938541, + -0.04240615665912628, + 0.017008639872074127, + -0.03307449445128441, + 0.014776736497879028, + 0.04148260876536369, + 0.037788424640893936, + -0.01559446007013321, + -0.026667391881346703, + -0.029591955244541168, + -0.006479252595454454, + 0.034979306161403656, + -0.05902998521924019, + 0.030438538640737534, + 0.03828867897391319, + 0.01491142064332962, + 0.04633122682571411, + -0.051641616970300674, + -0.016239017248153687, + -0.04236767441034317, + -0.013516481034457684, + -0.018817251548171043, + 0.020895229652523994, + 0.0026167137548327446, + -0.03163145110011101, + 0.0054787443950772285, + 0.042252231389284134, + -0.00837444607168436, + 0.015652181580662727, + -0.046985406428575516, + -0.004870262462645769, + 0.015276990830898285, + -0.0221843458712101, + -0.011409642174839973, + -0.010726602748036385, + -0.017104841768741608, + -0.010774703696370125, + 0.04071298986673355, + -0.008552420884370804, + -0.004268995486199856, + 0.019971683621406555, + 0.04140564799308777, + 0.014555471017956734, + -0.014651672914624214, + 0.07122848927974701, + -0.030977273359894753, + 0.010082044638693333, + -0.03099651448428631, + 0.007547102868556976, + -0.04606185853481293, + 0.03796159103512764, + 0.017941806465387344, + -0.01801876910030842, + -0.019182821735739708, + 0.026263341307640076, + -0.019634973257780075, + -0.039443112909793854, + -0.01561370026320219, + 7.951755833346397e-05, + -0.002361776540055871, + 0.018509402871131897, + -0.04167501628398895, + -0.023030929267406464, + 0.011515464633703232, + -0.033093731850385666, + -0.005964568350464106, + 0.026955999433994293, + -0.0258592888712883, + -0.01666231080889702, + -0.014622812159359455, + 0.010659260675311089, + 0.021703332662582397, + 0.01222736481577158, + 0.034055761992931366, + 0.0027081063017249107, + 0.011505845002830029, + -0.004555198363959789, + -0.014497748576104641, + 0.0354410782456398, + 0.021703332662582397, + -0.009192169643938541, + 0.0028812712989747524, + -0.02168409153819084, + 0.014709395356476307, + 0.02726384811103344, + 0.0015476611442863941, + 0.030630944296717644, + -0.0364031083881855, + 0.018191933631896973, + -0.012775720097124577, + -0.0285722054541111, + -0.0683424100279808, + -0.019721556454896927, + -0.04382995516061783, + -0.0069843172095716, + -0.043791476637125015, + 0.05160313472151756, + 0.03001524694263935, + -0.017018260434269905, + -0.017855223268270493, + 0.020606622099876404, + 0.052372757345438004, + 0.01494028139859438, + -0.01898079551756382, + 0.011553945951163769, + 6.001395740895532e-05, + 0.015652181580662727, + -0.040405139327049255, + -0.07257533073425293, + -0.005425833165645599, + -0.026667391881346703, + -0.011823313310742378, + -0.038038551807403564, + 0.0285722054541111, + -0.033728670328855515, + -0.07207507640123367, + 0.03540259972214699, + -0.013352937065064907, + 0.04032817855477333, + 0.002180194016546011, + -0.027129165828227997, + -0.02624410018324852, + -0.00956735946238041, + 0.0010444007348269224, + -0.011265337467193604, + 0.030919551849365234, + -0.019971683621406555, + 0.004413299262523651, + -0.02280004322528839, + 0.014834458008408546, + 0.04879401624202728, + 0.012063819915056229, + 0.01217926386743784, + -0.029591955244541168, + 0.05968416482210159, + 0.026013214141130447, + 0.00385532365180552, + 0.042252231389284134, + -0.046946924179792404, + -0.04625426605343819, + 0.01217926386743784, + 0.043214257806539536, + 0.019048137590289116, + -0.022492194548249245, + 0.025262832641601562, + 0.029130181297659874, + 0.06941987574100494, + 0.05872213467955589, + 0.04517679288983345, + -0.012111921794712543, + -0.03603753820061684, + -0.02126079984009266, + 0.0011881034588441253, + -0.010976729914546013, + -0.0025710174813866615, + 0.005238237790763378, + 0.0086197629570961, + -0.02116459608078003, + 0.11090248823165894, + 0.013468380086123943, + 0.0010973121970891953, + -0.0023269031662493944, + 0.0033021580893546343, + 0.050910476595163345, + -0.0140455961227417, + 0.004800515249371529, + -0.04783198982477188, + -0.02014484815299511, + -0.055181875824928284, + -0.02557068131864071, + 0.008898750878870487, + 0.008028116077184677, + -0.03761526197195053, + -0.03313221409916878, + 0.015094205737113953, + 0.00033911457285284996, + -0.03090031072497368, + 0.009740524925291538, + -0.00371582992374897, + 0.012794961221516132, + 0.012843062169849873, + 0.005271908827126026, + 0.008523560129106045, + 0.04933275282382965, + 0.04560008645057678, + -0.01956763118505478, + -0.024762578308582306, + 0.021568648517131805, + 0.022011181339621544, + 0.028687648475170135, + -0.024820299819111824, + 0.007898243144154549, + 0.027475494891405106, + 0.010101284831762314, + -0.03840412199497223, + 0.044676538556814194, + 0.00584431504830718, + 0.00953849870711565, + 0.02953423373401165, + -0.006969886366277933, + -0.052796050906181335, + -0.015479017049074173, + -0.04517679288983345, + 0.010726602748036385, + 0.028456762433052063, + 0.009240270592272282, + -0.03249727562069893, + 0.0440608412027359, + -0.0010816792491823435, + 0.014834458008408546, + -0.0040140580385923386, + 0.018422819674015045, + 0.04286792874336243, + -0.03649931028485298, + -0.023473462089896202, + 0.01612357422709465, + -0.01883649080991745, + -0.0018182313069701195, + 0.04402236267924309, + 0.02609017677605152, + -0.00521899713203311, + -0.026128657162189484, + -0.022261308506131172, + -0.026898277923464775, + -0.016277499496936798, + -0.057067450135946274, + -0.008230142295360565, + 0.023261815309524536, + 0.059915050864219666, + -0.0549125075340271, + -0.010774703696370125, + 0.025205111131072044, + -0.041559573262929916, + 0.03986640274524689, + -0.003768741386011243, + -0.010697741992771626, + -0.04860161244869232, + -0.02049117721617222, + -0.0029510182794183493, + -0.0536426343023777, + 0.018134212121367455, + 0.009014193899929523, + -0.006003049202263355, + 0.018701806664466858, + -0.03409424051642418, + -0.003256461815908551, + 0.0359220914542675, + -0.00859571248292923, + -0.06499455124139786, + -0.026802076026797295, + 0.00749419117346406, + 0.0001276940747629851, + -0.02832207828760147, + -0.02736005187034607, + -0.013083568774163723, + 0.0013384202029556036, + 0.008663054555654526, + -0.02866840921342373, + 0.017614716663956642, + -0.031150437891483307, + 0.024473970755934715, + -0.028629926964640617, + 0.021376242861151695, + -0.019490670412778854, + -0.02164561115205288, + -0.02068358287215233, + 0.03486386314034462, + 0.003475323086604476, + 0.0603383406996727, + -0.021780293434858322, + -0.01941370777785778, + 0.01063039992004633, + 0.006488873157650232, + 0.008874700404703617, + 0.03661475330591202, + 0.03865424916148186, + 0.014978762716054916, + 0.01578686572611332, + -0.05398896336555481, + -0.0028235495556145906, + 0.04525375738739967, + 0.017499273642897606, + 0.011823313310742378, + 0.04686996340751648, + -0.004908743314445019, + -0.0044878567568957806, + 0.03482538089156151, + -0.02068358287215233, + -0.006589885801076889, + -0.01510382629930973, + 0.00463456567376852, + -0.013805089518427849, + 0.014680533669888973, + -0.004199248272925615, + 0.06368619948625565, + -0.0058010234497487545, + -0.016008131206035614, + 0.00140696472954005, + -0.01932712458074093, + -0.008013686165213585, + -0.012948885560035706, + 0.02430080622434616, + 0.001373293693177402, + -0.000520997797138989, + -0.044330209493637085, + 0.031208159402012825, + 0.02914942242205143, + 0.014055216684937477, + 0.019952442497015, + -0.004860641900449991, + -0.01537319365888834, + 0.018913453444838524, + -0.006820772308856249, + -4.8138936108443886e-05, + -0.02318485453724861, + 0.01985624060034752, + 0.022357510402798653, + -0.0036340574733912945, + -0.012814201414585114, + 0.02203042060136795, + -0.07092063874006271, + -0.0015079774893820286, + 0.03461373597383499, + -0.011323058977723122, + -0.005401782225817442, + 0.034459810703992844, + -0.020779786631464958, + -0.00012731827155221254, + 0.004422919824719429, + 0.010505336336791515, + 0.035806648433208466, + -0.0003845102328341454, + 0.023569663986563683, + 0.002419498283416033, + -0.012833441607654095, + 0.03301677107810974, + 0.012785340659320354, + -0.02710992470383644, + 0.010284069925546646, + 0.007051658816635609, + 0.023396499454975128, + -0.0005357288755476475, + 0.015806104987859726, + -0.006402290426194668, + 0.01869218796491623, + -0.0076625463552773, + 0.05041022226214409, + -0.008254192769527435, + -0.040405139327049255, + -0.04779350757598877, + -0.01498838234692812, + 0.022838523611426353, + 0.012794961221516132, + -0.025878529995679855, + -0.028168154880404472, + 0.03490234538912773, + 0.03036157600581646, + -0.052565161138772964, + 0.0017881679814308882, + -0.027725622057914734, + 0.004858237225562334, + -0.16100485622882843, + -0.005988618824630976, + -0.003915450535714626, + -0.012246605008840561, + -0.03361322730779648, + -0.031785376369953156, + -0.017633957788348198, + -0.01689319685101509, + 0.015854207798838615, + -0.010534197092056274, + 0.004591274540871382, + -0.014141798950731754, + 0.05641327053308487, + -0.006383050233125687, + 0.007195963058620691, + 0.04513831436634064, + -0.018028387799859047, + 0.014805597253143787, + -0.013352937065064907, + 0.02726384811103344, + -0.0006722164689563215, + -0.002825954696163535, + -0.010640020482242107, + -0.004355577751994133, + 0.03930842876434326, + 0.009726094081997871, + 0.012679517269134521, + 0.02164561115205288, + -0.016864335164427757, + -0.05902998521924019, + 0.01728762686252594, + -0.028437521308660507, + 0.02697524055838585, + 0.03313221409916878, + 0.012063819915056229, + -0.0036797537468373775, + 0.00835039559751749, + -0.008499509654939175, + -0.015950409695506096, + 0.0014658888103440404, + 0.013699266128242016, + 0.014055216684937477, + 0.001679939916357398, + 0.027129165828227997, + 0.03230487182736397, + 0.05579757317900658, + 0.030823349952697754, + 0.0016558892093598843, + -0.05772162973880768, + 0.026667391881346703, + -0.006647607311606407, + 0.005454693920910358, + -0.010611159726977348, + 0.0362299419939518, + 0.030438538640737534, + -0.0019012060947716236, + -0.0290532186627388, + 0.04613882303237915, + -0.026359543204307556, + 0.04794743284583092, + -0.02512814849615097, + -0.00816280022263527, + -0.025840049609541893, + -0.048101358115673065, + -0.06430189311504364, + -0.005175705999135971, + -0.07234443724155426, + -0.010591918602585793, + 0.011226857081055641, + -0.00922584068030119, + 0.03180461749434471, + -0.005310389678925276, + 0.044676538556814194, + -0.027956508100032806, + -0.00010642425331752747, + -0.031977780163288116, + 0.014141798950731754, + -0.039443112909793854, + -0.021510927006602287, + -0.02464713528752327, + -0.03667247295379639, + -0.012669897638261318, + -0.007970394566655159, + 0.03674943745136261, + 0.06976620852947235, + 0.030342336744070053, + -0.02595549263060093, + -0.012804580852389336, + 0.0172395259141922, + -0.00023750045511405915, + -0.0357489287853241, + -0.000291614473098889, + 0.011784831993281841, + 0.005252668168395758, + 0.05475858598947525, + -0.007619254756718874, + -0.01642180234193802, + -0.06191606819629669, + -0.032612718641757965, + -0.011515464633703232, + -0.016200536862015724, + -0.03143904730677605, + 0.01853826269507408, + 0.03886589780449867, + -0.015209648758172989, + -0.001981775974854827, + 0.015392433851957321, + 0.013612683862447739, + -0.0016294334782287478, + -0.03511399030685425, + -0.013843570835888386, + 0.03336310014128685, + -0.001278293551877141, + -0.007508622016757727, + -0.032554998993873596, + -0.00943748652935028, + -0.0344790518283844, + -0.021972699090838432, + -0.03707652539014816, + -0.027321571484208107, + -0.0007329444051720202, + 0.023319538682699203, + 0.003011144930496812, + -0.030804108828306198, + -0.030053727328777313, + 0.012987365946173668, + 0.03297828882932663, + 0.013487620279192924, + 0.00047259582788683474, + 0.026648150756955147, + 0.018047628924250603, + -0.012746859341859818, + -0.0035931712482124567, + 0.023069411516189575, + -0.009528879076242447, + -0.028552966192364693, + -0.05629782751202583, + 0.06811152398586273, + -0.01733572967350483, + -0.0472547747194767, + -0.010890146717429161, + 0.00023509538732469082, + -0.018711427226662636, + -0.03878893330693245, + 0.019144339486956596, + 0.040366657078266144, + -0.014161039143800735, + -0.018721047788858414, + 0.00042088687769137323, + -0.012448631227016449, + 0.029033979400992393, + -0.0017244336195290089, + -0.007749128621071577, + 0.012246605008840561, + 0.030284613370895386, + 0.02101067267358303, + 0.049217309802770615, + 0.02541675604879856, + -0.02324257604777813, + 0.024954983964562416, + 0.039443112909793854, + -0.009625081904232502, + 0.014680533669888973, + -0.06091555953025818, + 0.03586437180638313, + 0.03505627065896988, + 0.013949393294751644, + 0.012775720097124577, + -0.04513831436634064, + -0.005781783256679773, + -0.02818739414215088, + 0.02653270773589611, + -0.010553437285125256, + 0.012862302362918854, + 0.02068358287215233, + -0.027283089235424995, + 0.01810535043478012, + -0.03490234538912773, + 0.048447687178850174, + 0.011178755201399326, + 0.012160022743046284, + 0.06180062144994736, + 0.021780293434858322, + 0.008605333045125008, + 0.03099651448428631, + 0.002283611800521612, + 0.04286792874336243, + 0.04475350305438042, + -0.048832498490810394, + 0.009639511816203594, + -0.0068640634417533875, + -0.004591274540871382, + -0.04329122230410576, + 0.0002532837097533047, + 0.04783198982477188, + -0.043406665325164795, + 0.024050679057836533, + 0.021626370027661324, + 0.03307449445128441, + 0.03342082351446152, + -0.008191660977900028, + -0.014632432721555233, + -0.025051185861229897, + 0.023665867745876312, + -0.05175705999135971, + 0.007186342496424913, + -0.0038986150175333023, + -0.009880018420517445, + -0.027052203193306923, + 0.019115479663014412, + -0.008845839649438858, + -0.026494227349758148, + -0.01816307194530964, + 0.0664183497428894, + -0.002068358240649104, + 0.03528715670108795, + -0.006907355040311813, + -0.015305851586163044, + -0.01926940307021141, + 0.009192169643938541, + 0.014795977622270584, + 0.009461537003517151, + 0.01358382310718298, + -0.035229433327913284, + 0.024858782067894936, + -0.05210338905453682, + 0.00975976511836052, + -0.017066361382603645, + 0.010341791436076164, + -0.0170856025069952, + 0.03805779293179512, + -0.02145320549607277, + -0.009533689357340336, + 0.05472010374069214, + 0.014391926117241383, + -0.004021273460239172, + -0.04890945926308632, + -0.01671041175723076, + 0.0006211087456904352, + -0.012044579721987247, + 0.06526391953229904, + -0.0032925377599895, + -0.0346522182226181, + -0.0012879138812422752 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "焊接机座组件", + "组成编码": "0101", + "维修项目名称": "检查主轴承座安装状态", + "维修项目编号": "MT002", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.4 MT002 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0020101焊接机座组件检查主轴承座安装状态6M/200hJY级
安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。
安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。
序号名称规格/型号数量及单位备注
1激光对中仪SKF TKSA 711套用于轴承同轴度检测
2塞尺组0.02 -1.00 mm1套精度±0.005mm
3液压拉伸器HYTORC AVANTI-101台用于地脚螺栓预紧
4内径千分尺200-300mm1把校验有效期内
2)备品备件
名称规格/型号消耗数量备注
1排气阀PV-1001
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁酒精AR Grade100mL
2防锈纸VCI-2002张
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师
修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;
\\n图 MT002.1 换油前清洗\\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\\n图 MT002.2 检查\\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\\n图 MT002.3 塞尺测量\\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\\n图 MT002.4 激光对中仪\\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\\n图 MT002.5 测量轴线偏移量\\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\\n\\n
判定与处理
1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。
验收标准
1.主轴承座与机座结合面间隙≤0.05mm(全周);
2.相邻主轴承同轴度偏差≤0.08 mm/m;
3.地脚螺栓预紧力在设计值 ±5% 范围内。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1416a6cb-7b91-466b-9287-ff15f275e8c7.pdf#page=23\"}]", + "embedding": [ + -0.01780424267053604, + -0.02367175742983818, + -0.026513835415244102, + 0.02185649611055851, + 0.0133027583360672, + -0.02402014285326004, + 0.009910600259900093, + -0.004086632747203112, + -5.364708340493962e-05, + 0.01457710936665535, + -0.008361210115253925, + -0.017639219760894775, + 0.0301810335367918, + 0.019142769277095795, + -0.0010313992388546467, + -0.06560616195201874, + -0.0004575401544570923, + -0.031079497188329697, + 0.042796190828084946, + 0.010451512411236763, + -0.028622474521398544, + -0.00240659830160439, + -0.026513835415244102, + 0.004840700421482325, + -0.004272284917533398, + -0.008159513585269451, + -0.033353157341480255, + 0.023176686838269234, + -0.009653897024691105, + 0.005088236182928085, + -0.02479025349020958, + 0.00046670815208926797, + 0.005386196076869965, + -0.01387117337435484, + -0.05878517031669617, + -0.06828321516513824, + 0.0008297034073621035, + -3.867747000185773e-05, + -0.06666964292526245, + 0.003690117271617055, + -0.053761113435029984, + 0.017538370564579964, + -0.010964919812977314, + -0.07506752759218216, + 0.005248676054179668, + -0.03901897743344307, + -0.022699950262904167, + -0.041329313069581985, + -0.01309189386665821, + 0.008544569835066795, + 0.004542740527540445, + -0.020481295883655548, + 0.00027274779858998954, + -0.030052682384848595, + -0.01695161871612072, + 0.018125122413039207, + -0.07847802340984344, + 0.0011374041205272079, + -0.07613101601600647, + -0.015961475670337677, + -0.01708913967013359, + 0.07169370353221893, + -0.03214298561215401, + 0.010222312062978745, + 0.01899608224630356, + 0.027852363884449005, + 0.00936510507017374, + 0.027797354385256767, + -0.0103965038433671, + -0.049690522253513336, + -0.004354796838015318, + -0.015979811549186707, + -0.03423328697681427, + 0.02840244211256504, + -0.07396736741065979, + 0.054457880556583405, + 0.04114595428109169, + -0.021233072504401207, + -0.034031592309474945, + -0.012853526510298252, + 0.002702265977859497, + -0.07220711559057236, + 0.0036098973359912634, + 0.0178409144282341, + -0.0023321083281189203, + 0.07294055074453354, + -0.05134076252579689, + 0.075837641954422, + -0.07015348225831985, + -0.0770844891667366, + -0.015933971852064133, + -0.007953234016895294, + 0.02433185465633869, + -0.003263805527240038, + -0.03714870661497116, + 0.02328670211136341, + -0.03905564919114113, + 0.01257848646491766, + 0.033701542764902115, + 0.0015516828279942274, + -0.01368781365454197, + 0.004490024875849485, + 0.027228940278291702, + -0.0054641240276396275, + 0.05236757546663284, + -0.02444186992943287, + 0.026403820142149925, + 0.005940859671682119, + 0.007609434425830841, + -0.018427666276693344, + -0.017950929701328278, + 0.03579184412956238, + 0.025211980566382408, + 0.01093741599470377, + -0.008356626145541668, + -0.06520276516675949, + -0.013376101851463318, + -0.01972952112555504, + 0.054384537041187286, + -0.024955278262495995, + -0.012514310888946056, + -0.06307579576969147, + 0.06670631468296051, + -0.034049928188323975, + 0.028200747445225716, + -0.028695818036794662, + 0.006559699308127165, + 0.03890896216034889, + -0.023580078035593033, + 0.006481771357357502, + -0.011029095388948917, + 0.01820763386785984, + -0.006252571474760771, + -0.026440491899847984, + -0.02809073030948639, + -0.02730228379368782, + -0.01843683421611786, + -0.027137259021401405, + -0.018601858988404274, + -0.025028621777892113, + 0.030511081218719482, + -0.006743059027940035, + -8.802705997368321e-05, + 0.011826710775494576, + 0.046683419495821, + 0.005092820152640343, + 0.011771703138947487, + -0.012679334729909897, + -0.0305844247341156, + -0.0295576099306345, + 0.04000912234187126, + 0.0068301549181342125, + 0.015970643609762192, + 0.009186329320073128, + 0.0438230074942112, + 0.011725863441824913, + 0.013513621874153614, + 0.08573906868696213, + -0.03861558809876442, + 0.022864975035190582, + -0.03181293606758118, + 0.03762544319033623, + 0.0014554188819602132, + -0.0033233975991606712, + 0.03452666103839874, + -0.032656390219926834, + 0.05101071298122406, + 0.012495975010097027, + -0.026330476626753807, + -0.017364179715514183, + 0.03410493582487106, + -0.019766192883253098, + -0.007082274649292231, + -0.02189316786825657, + 0.04121929779648781, + -0.00201810454018414, + 0.03639693185687065, + -0.006179227493703365, + 0.03349984809756279, + -0.03784547746181488, + -0.008471225388348103, + 0.03392157331109047, + -0.002353882184252143, + 0.027760682627558708, + 0.004991972353309393, + -0.013403605669736862, + 0.022699950262904167, + -0.015970643609762192, + -0.0031492055859416723, + 0.020682992413640022, + -0.048223644495010376, + -0.02178315259516239, + 0.00018536536663305014, + -0.030162697657942772, + 0.05354107916355133, + 0.01689661107957363, + -0.012862694449722767, + -0.010313992388546467, + 0.03142787888646126, + 0.01894107460975647, + -0.016768259927630424, + -0.00934676919132471, + 0.005189083982259035, + -0.025707053020596504, + -0.02882417105138302, + 0.03377488628029823, + 0.002892501885071397, + -0.005312852095812559, + -0.050864025950431824, + -0.022333230823278427, + 0.007756122387945652, + 0.017868418246507645, + 0.028952522203326225, + -0.03322480618953705, + -0.023745102807879448, + 0.019766192883253098, + 0.0033967415802180767, + 0.008539985865354538, + -0.01894107460975647, + -0.06648628413677216, + -0.031042825430631638, + 0.04147600010037422, + 0.02436852641403675, + 0.033628199249506, + 0.031501226127147675, + -0.03133619949221611, + 0.03205130249261856, + 0.01054319180548191, + 0.0012617451138794422, + -0.003907856997102499, + 0.008567489683628082, + -0.0035961454268544912, + -0.005019476171582937, + -0.02181982435286045, + 0.0328214168548584, + 0.044189728796482086, + -0.019802864640951157, + 0.019912881776690483, + 0.040229152888059616, + -0.0007116654887795448, + -0.019564498215913773, + 0.03993577882647514, + 0.029007529839873314, + -0.0028260338585823774, + -0.032234665006399155, + 0.019931217655539513, + 0.027027243748307228, + -0.032638054341077805, + -0.031042825430631638, + 0.02726561203598976, + -0.009126736782491207, + -0.006183811463415623, + -0.04217276722192764, + -0.0020903025288134813, + 0.018620194867253304, + 0.01346778217703104, + 0.02436852641403675, + 0.005363276228308678, + 0.020884688943624496, + 0.005991283338516951, + -0.02730228379368782, + 0.07935814559459686, + 0.026330476626753807, + 0.017657555639743805, + 0.003346317447721958, + -0.00021200983610469848, + -0.003584685269743204, + 0.051524121314287186, + -0.013586966320872307, + 0.016658242791891098, + -0.01583312451839447, + -0.001239971024915576, + 0.024496877565979958, + 0.00564289977774024, + 0.030364394187927246, + 0.04961717873811722, + 0.014787972904741764, + -0.019179441034793854, + 0.07847802340984344, + 6.50712609058246e-05, + 0.04734351485967636, + -0.0050790682435035706, + 0.036231908947229385, + -0.00675222696736455, + -0.002070820424705744, + 0.015191365033388138, + -0.08126509189605713, + -0.011093271896243095, + 9.927217615768313e-05, + -0.05112072825431824, + -0.014320405200123787, + -0.06091214716434479, + 0.06091214716434479, + -0.00946136936545372, + -0.022828303277492523, + 0.04983720928430557, + -0.02765066735446453, + -0.13612636923789978, + 0.01996788941323757, + -0.06721972674131393, + 0.01577811688184738, + -0.021251408383250237, + -0.011423319578170776, + 0.004694012459367514, + -0.0027824859134852886, + 0.0046802605502307415, + 0.018143458291888237, + -0.026367148384451866, + -0.08251193910837173, + -0.03131786361336708, + 0.012734342366456985, + 0.003270681481808424, + -0.028695818036794662, + -0.01581478863954544, + 0.017611714079976082, + -0.01186338346451521, + -0.00592252379283309, + 0.001053173211403191, + -0.05368776619434357, + 0.04092592000961304, + -0.008425385691225529, + -0.006623874884098768, + 0.0038688930217176676, + 0.0027779019437730312, + 0.0027893618680536747, + -0.035461798310279846, + 0.007801962085068226, + 0.0010044683003798127, + -0.0007924584206193686, + 0.00818701833486557, + 0.038102179765701294, + -0.020829681307077408, + -0.04859036207199097, + -0.028310762718319893, + -0.05676821246743202, + -0.04950716346502304, + -0.0013683229917660356, + 0.0009322703117504716, + 0.061718929558992386, + 0.020334608852863312, + 0.023946797475218773, + 0.013293590396642685, + -0.037772130221128464, + 0.012239270843565464, + 0.007811130024492741, + -0.03927568346261978, + -0.04987388104200363, + 0.029264234006404877, + -0.01381616573780775, + 0.00240659830160439, + -0.06659629940986633, + -0.03315146267414093, + 0.019106097519397736, + -0.04690345376729965, + 0.03337149694561958, + 0.012248438782989979, + -0.03454499691724777, + -0.01091908011585474, + -0.03278474509716034, + 0.004031625110656023, + -0.009928936138749123, + -0.03507674112915993, + -0.027834028005599976, + 0.021068047732114792, + -0.04323625564575195, + -0.015998147428035736, + -0.04859036207199097, + 0.03533344715833664, + 0.002265640301629901, + -0.0092000812292099, + -0.02218654379248619, + 0.0006996324518695474, + 0.04881039634346962, + -0.032638054341077805, + -0.007921146228909492, + -0.03652528300881386, + -0.08419884741306305, + -0.0013007089728489518, + 0.026752203702926636, + -0.022809967398643494, + -0.0374237485229969, + -0.020517969503998756, + 0.0008784083183854818, + 0.02550535649061203, + -0.010020616464316845, + 0.025597037747502327, + 0.19069425761699677, + 0.023231694474816322, + -0.007879890501499176, + -0.012156759388744831, + 0.014247061684727669, + -0.01564059592783451, + -0.03392157331109047, + -0.05057065188884735, + 0.029777642339468002, + -0.013898677192628384, + 0.0007953234016895294, + -0.03316979855298996, + 0.04550991952419281, + 0.012340119108557701, + 0.01455877348780632, + 0.01167085487395525, + -0.02110471948981285, + -0.02620212361216545, + 0.08713261038064957, + -0.015209700912237167, + -0.012569318525493145, + -0.03846890106797218, + -0.000110302418761421, + -0.03526009991765022, + -0.004707764368504286, + -0.04004579409956932, + -0.0018072406528517604, + 0.027558987960219383, + -0.023506734520196915, + 0.011404983699321747, + -0.024900268763303757, + 0.05475125461816788, + 0.0006749934982508421, + -0.04195273667573929, + -0.06611956655979156, + 0.014797140844166279, + -0.03861558809876442, + 0.06989677995443344, + 0.013238581828773022, + 0.00024166256480384618, + -0.03377488628029823, + -0.047893594950437546, + -0.00926884077489376, + -0.008526233956217766, + -0.017923425883054733, + -0.04180604964494705, + 0.018097618594765663, + 0.02225988730788231, + 0.005138660315424204, + -0.011808374896645546, + -0.03901897743344307, + -0.013972021639347076, + -0.047966938465833664, + 0.009172577410936356, + -0.04356630519032478, + -0.0023091882467269897, + -0.013146902434527874, + -0.02002289704978466, + 0.009415528737008572, + 0.018867729231715202, + 0.022809967398643494, + -0.019417809322476387, + -0.013917014002799988, + 0.004593164660036564, + 0.00016416437574662268, + -0.02728394791483879, + -0.027925707399845123, + -0.037313733249902725, + -0.004627544432878494, + 0.004123304970562458, + 0.07730451971292496, + 0.01651155576109886, + -0.006820986978709698, + 0.021233072504401207, + 0.03504006937146187, + -0.005991283338516951, + 0.047563549131155014, + 0.07367399334907532, + 0.02510196529328823, + -0.013238581828773022, + -0.0642126277089119, + -0.03386656567454338, + -0.027577323839068413, + 0.03137287124991417, + 0.020664656534790993, + -0.013366933912038803, + 0.011570007540285587, + -0.02185649611055851, + 0.019436145201325417, + -0.004840700421482325, + -0.017309170216321945, + 0.0036717811599373817, + 0.013376101851463318, + 0.02403847873210907, + -0.019051089882850647, + -0.010836567729711533, + 0.002878749743103981, + -0.03100615367293358, + -0.0010457242606207728, + -0.0049186283722519875, + -0.051854170858860016, + -0.04484982416033745, + -0.03126285597681999, + -0.04360297694802284, + 0.046756766736507416, + 0.03173959255218506, + -0.040302496403455734, + -0.0033509014174342155, + 0.013082725927233696, + 0.02220487967133522, + 0.020572977140545845, + 0.03098781779408455, + -0.004100385122001171, + -0.04000912234187126, + 0.034801702946424484, + -0.03351818397641182, + -0.004260824993252754, + 0.03509507700800896, + 0.012936037965118885, + 0.037662114948034286, + -0.039092324674129486, + 0.0008703863713890314, + 0.007879890501499176, + -0.011909223161637783, + -0.0018760005477815866, + -0.04349295794963837, + -0.037918820977211, + -0.033756550401449203, + -0.017905090004205704, + 0.050790682435035706, + -0.0016674287617206573, + -0.04613334313035011, + -0.023085007444024086, + -0.015924803912639618, + 0.012605990283191204, + 0.008732513524591923, + -0.018390994518995285, + 0.026513835415244102, + -0.000977537245489657, + -0.012550982646644115, + -0.012184263207018375, + -0.026348812505602837, + 0.0007575054187327623, + 0.0032958935480564833, + 0.010277320630848408, + 0.01928945817053318, + 0.002906253794208169, + 0.01577811688184738, + -0.06655962765216827, + 0.03788214921951294, + -0.028915850445628166, + 0.04994722828269005, + 0.02479025349020958, + -0.05900520458817482, + -0.039165668189525604, + -0.0016502387588843703, + 0.0008812733576633036, + 0.02622046135365963, + 0.009053393267095089, + 0.00019481984782032669, + 0.004283744841814041, + 0.04481315240263939, + 0.03173959255218506, + -0.01747419498860836, + 0.0002545550523791462, + 0.04686678200960159, + -0.06505607813596725, + 0.030126025900244713, + -0.029392585158348083, + 0.014522100798785686, + -0.013843669556081295, + 0.012220934964716434, + -0.04804028570652008, + 0.07921145856380463, + -0.01818929798901081, + -0.0013855129946023226, + 0.025597037747502327, + 0.03452666103839874, + -0.004886540584266186, + 0.021324751898646355, + 0.03318813443183899, + 0.06567950546741486, + -0.01705246791243553, + -0.023195022717118263, + -0.033719878643751144, + -0.016080660745501518, + -0.016337363049387932, + -0.004712348338216543, + 0.0320146307349205, + 0.0240568146109581, + -0.01514552440494299, + 0.07129031419754028, + 0.008425385691225529, + -0.0061012995429337025, + -0.008462057448923588, + 0.0012858110712841153, + 0.027503980323672295, + 0.0018152625998482108, + -0.009080897085368633, + -0.02295665442943573, + -0.008122841827571392, + -0.03199629485607147, + 0.03531511127948761, + -0.010882407426834106, + -0.019509488716721535, + -0.05838178098201752, + -0.034031592309474945, + -0.018427666276693344, + -0.017226658761501312, + -0.009571384638547897, + 0.0001310020306846127, + -0.004620668478310108, + -0.030712777748703957, + 0.018115954473614693, + 0.013724485412240028, + 0.005386196076869965, + 0.012642662972211838, + 0.06872327625751495, + -0.034471653401851654, + -0.029245898127555847, + 0.03665363788604736, + 0.0325097031891346, + 0.055154647678136826, + -0.02369009517133236, + 0.0436396487057209, + -0.002920005936175585, + -0.007426074240356684, + -0.05852846801280975, + 0.024258509278297424, + -0.018216801807284355, + 0.006527611054480076, + -0.013036886230111122, + 0.027173932641744614, + -0.0444464311003685, + 0.03357319161295891, + -0.0066147069446742535, + 0.012670166790485382, + 0.02260827086865902, + -0.020591313019394875, + 0.01399952545762062, + 0.012844358570873737, + -0.0016158587532117963, + 0.06622958183288574, + 0.035535141825675964, + 0.022039854899048805, + 0.03839555382728577, + -0.04870038107037544, + 0.05024060234427452, + -0.011129943653941154, + 0.028640810400247574, + -0.0006961944745853543, + 0.0009465952753089368, + 0.01309189386665821, + -0.03436163812875748, + -0.022791631519794464, + -0.029319241642951965, + -0.02365342155098915, + -0.011881719343364239, + -0.05170748010277748, + -0.015631427988409996, + 0.00799448974430561, + 0.05856513977050781, + -0.015081348828971386, + 0.015136356465518475, + 0.037332069128751755, + 0.007820297963917255, + 0.02873248979449272, + -0.010983255691826344, + -0.012871862389147282, + 0.003291309578344226, + 0.012550982646644115, + -0.05434786528348923, + -0.010093960911035538, + -0.008219106122851372, + 0.07030016928911209, + -0.007132698781788349, + 0.011955062858760357, + -0.003169833682477474, + 0.055227991193532944, + -3.0440602131420746e-05, + -0.028714153915643692, + -0.044666461646556854, + -0.026330476626753807, + 0.0035250934306532145, + 0.0063167475163936615, + -0.02299332618713379, + 0.02255326323211193, + -0.012514310888946056, + 0.0005497930687852204, + 0.010249816812574863, + -0.007765290327370167, + 0.02810906618833542, + -0.04290620982646942, + -0.018886065110564232, + -0.0048269485123455524, + 0.02187483198940754, + -0.0006154015427455306, + -0.035131748765707016, + -0.018656866624951363, + 0.029392585158348083, + -0.023781774565577507, + 0.0325097031891346, + -0.023378383368253708, + -0.012340119108557701, + 0.023946797475218773, + -0.007572762202471495, + 0.009534712880849838, + -0.006445099133998156, + 0.014622949063777924, + 0.01696995459496975, + 0.034068264067173004, + -0.052587609738111496, + -0.020151248201727867, + 0.00493238028138876, + 0.013027718290686607, + 0.012899366207420826, + 0.010680711828172207, + -0.02367175742983818, + 0.006018787622451782, + -0.001270913053303957, + -0.03709369897842407, + -0.02618378773331642, + -0.030767785385251045, + 0.010827399790287018, + -0.035865187644958496, + 0.016135668382048607, + -0.008264945819973946, + 0.04950716346502304, + -0.024918604642152786, + 0.040999267250299454, + 0.019124433398246765, + 0.01925278641283512, + -0.021233072504401207, + -0.021673135459423065, + 0.06314913928508759, + 0.029997672885656357, + 0.06692635267972946, + 0.00718312244862318, + 0.0407792329788208, + 0.03228967264294624, + -0.061352211982011795, + -0.0006973404670134187, + 0.05563138425350189, + -0.0031835855916142464, + 0.030731113627552986, + -0.01698829047381878, + -0.04184272140264511, + 0.012275942601263523, + 0.01726333051919937, + 0.02002289704978466, + -0.02154478430747986, + 0.008709593676030636, + -0.017382515594363213, + -0.04081590473651886, + -0.003080445807427168, + -0.016575731337070465, + -0.04290620982646942, + 0.010708215646445751, + -0.03289476037025452, + -0.04965385049581528, + -0.0067063868045806885, + -0.002198026282712817, + 0.04591330885887146, + 0.03868893161416054, + -0.014027029275894165, + -0.014118709601461887, + 0.02108638361096382, + -0.002041024388745427, + 0.0538344569504261, + -0.007054770831018686, + -0.007962401956319809, + -0.06325915455818176, + 0.002137288451194763, + 0.020884688943624496, + -0.011010759510099888, + 0.028292426839470863, + -0.022131536155939102, + 0.0099931126460433, + 0.03461834043264389, + 0.004849868360906839, + -0.030144361779093742, + -0.0589318610727787, + 0.007352730724960566, + -0.03817552328109741, + 0.06241569668054581, + 0.01670408435165882, + -0.00945220049470663, + -0.029759306460618973, + 0.04052253067493439, + 0.07591098546981812, + -0.009007553569972515, + 0.0001236962852999568, + -0.014888821169734001, + 0.02037128061056137, + -0.1207241341471672, + -0.003706161165609956, + -0.029245898127555847, + -0.038432225584983826, + -0.024680238217115402, + -0.02519364468753338, + -0.012101750820875168, + -0.0056245638988912106, + -0.012752678245306015, + 0.01346778217703104, + 0.03452666103839874, + -0.012349287047982216, + 0.016575731337070465, + -0.028879178687930107, + -0.03942237049341202, + 0.02046296000480652, + -0.02262660674750805, + 0.0036351094022393227, + -0.013229413889348507, + 0.05889518931508064, + 0.005065316334366798, + -0.0034059095196425915, + 0.0012491390807554126, + 0.007751538418233395, + 0.03315146267414093, + -0.014402917586266994, + 0.01309189386665821, + -0.0007534944452345371, + -0.030309384688735008, + -0.004068296868354082, + 0.00859040953218937, + -0.04378633573651314, + 0.02583540417253971, + 0.03615856543183327, + 0.0002473925705999136, + -0.017079971730709076, + -0.0008503313874825835, + -0.0009431572980247438, + 0.03597520664334297, + 0.023451726883649826, + 0.05761167034506798, + 0.012495975010097027, + 0.02805405855178833, + -0.01309189386665821, + 0.008594993501901627, + 0.032674726098775864, + 0.009727240540087223, + -0.012440966442227364, + -0.04191606491804123, + 0.032179657369852066, + 0.019949553534388542, + 0.013614470139145851, + 0.011414151638746262, + 0.006477187387645245, + 0.012605990283191204, + -0.005248676054179668, + -0.05251426622271538, + 0.006669715046882629, + -0.008095338009297848, + 0.034765031188726425, + -0.04837033152580261, + 0.06094881892204285, + -0.011432487517595291, + 0.005711659789085388, + -0.012816854752600193, + 0.019417809322476387, + -0.006866826675832272, + -0.026055436581373215, + 0.015173028223216534, + 0.030071018263697624, + 0.013944517821073532, + 0.018464338034391403, + 0.01223010290414095, + -0.04154934361577034, + 0.03252803906798363, + 0.008654585108160973, + 0.04341961443424225, + -0.04037584364414215, + -0.037735458463430405, + 0.021288080140948296, + -0.027852363884449005, + -0.009800584986805916, + 0.01168002374470234, + 0.02037128061056137, + 0.05585141479969025, + 0.013174406252801418, + -0.024258509278297424, + -0.032197993248701096, + -0.008054082281887531, + 0.01571393944323063, + -0.026678860187530518, + -0.029630953446030617, + 0.007169370539486408, + 0.047893594950437546, + -0.010799895972013474, + -0.028934186324477196, + -0.02326836623251438, + -0.030822793021798134, + -0.017602546140551567, + 0.00463442038744688, + 0.0031331616919487715, + -0.011551671661436558, + 0.024863597005605698, + 0.036928676068782806, + -0.006678882986307144, + -0.032234665006399155, + 0.04341961443424225, + -0.007879890501499176, + 0.002238136250525713, + -0.03254637494683266, + 0.012477639131247997, + -0.0022782462183386087, + 0.0009271132876165211, + -0.009543880820274353, + -0.009154241532087326, + 0.03784547746181488, + 0.02737562730908394, + -0.0430162250995636, + -0.031152840703725815, + -0.021948175504803658, + 0.015053845010697842, + 0.04033916816115379, + -0.01328442245721817, + -0.04121929779648781, + -0.03945904225111008, + -0.029630953446030617, + 0.002633505966514349, + 0.03832221031188965, + -0.01146915927529335, + 0.07576429843902588, + 0.01696995459496975, + -0.027760682627558708, + -0.04044918715953827, + 0.031042825430631638, + 0.014604613184928894, + 0.015163860283792019, + -0.028200747445225716, + 0.06960340589284897, + -0.038102179765701294, + -0.06615623831748962, + -0.0028329098131507635, + 0.04763689264655113, + -0.013623638078570366, + -0.00019596585480030626, + -0.0042516570538282394, + 0.030896136537194252, + -0.023598413914442062, + -0.041402656584978104, + 0.014650452882051468, + 0.04987388104200363, + 0.013678645715117455, + -0.011909223161637783, + -0.014173717238008976, + 0.030877800658345222, + -0.034765031188726425, + -0.03254637494683266, + 0.047893594950437546, + 0.00931468140333891, + -0.04686678200960159, + 0.01832681894302368, + 0.007444410584867001, + -0.028292426839470863, + 0.004214984830468893, + 0.009424696676433086, + 0.004767356440424919, + -0.003605313366279006, + 0.01876688189804554, + 0.012092582881450653, + -0.011560839600861073, + 0.022754959762096405, + -0.027540652081370354, + 0.031519562005996704, + -0.012450134381651878, + 0.05222088843584061, + 0.027834028005599976, + -0.01564059592783451, + 0.0007689654012210667, + -0.037662114948034286, + 0.11632350087165833, + 0.020316272974014282, + 0.02227822318673134, + 0.05427451804280281, + 0.054824598133563995, + -0.016493219882249832, + 0.01892273873090744, + 0.07943148910999298, + 0.08867283165454865, + 0.013348598033189774, + -0.08170515298843384, + -0.03458166867494583, + 9.039068390848115e-05, + -0.010827399790287018, + 0.029410922899842262, + -0.002674761926755309, + 0.020939696580171585, + -0.004313540644943714, + 0.019014418125152588, + 0.050827354192733765, + -0.015072180889546871, + 0.04191606491804123, + 0.0026862220838665962, + -0.0017843206878751516, + -0.0023561741691082716, + -0.0017740066396072507, + 0.01927112229168415, + 0.013779493980109692, + 0.007393986452370882, + -0.01843683421611786, + -0.030859464779496193, + 0.026733867824077606, + -0.006944754626601934, + -0.01726333051919937, + -0.0022679322864860296, + 0.006422179285436869, + 0.008420801721513271, + 0.024515213444828987, + 0.014604613184928894, + -0.051890842616558075, + 0.03175792843103409, + 0.040999267250299454, + -0.01807011477649212, + -0.01696995459496975, + 0.009672232903540134, + -0.01845517009496689, + 0.0284391138702631, + -0.04052253067493439, + 0.017740067094564438, + 0.012890198267996311, + -0.021764814853668213, + -0.04330959916114807, + 0.01113911159336567, + -0.03390323743224144, + 0.014531268738210201, + 0.006784314755350351, + 0.04870038107037544, + -0.03379322215914726, + -0.019876210018992424, + 0.030492745339870453, + -0.018886065110564232, + 0.0031812936067581177, + 0.06982343643903732, + 0.048223644495010376, + -0.05456789582967758, + 0.045729950070381165 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检测曲轴主轴颈跳动量", + "编号": "MT003", + "内容": "表 4.5 MT003 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0030201曲轴组件检测曲轴主轴颈跳动量1A/8000hJY级
安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。
安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg
序号名称规格/型号数量及单位备注
1精密千分表Mitutoyo 543-791D1套分辨率0.001 mm
2磁力表座Starrett 16B1个带万向关节
3V型支撑架Custom-Crank-V3002组承重≥500kg
\n\n
4盘车手轮OEM-MAN-BW-PCW1个原厂配套
\n\n
名称规格/型号消耗数量备注
1排气阀PV-1001
\n\n
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%50mL清洁轴颈表面
2无绒擦拭布Kimwipe EX-L3张防刮伤轴面
\n\n
序号专业人数技能等级备注
1机械专业2总工+工程师总工复刻数据
\n图 MT003.1 清洁\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\n图 MT003.2 标记测量基准点\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\n2)安装千分表\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\n图 MT003.3 千分尺\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\n(2)预压千分表 0.3 mm,归零。\n3)盘车测量\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\n(2)跳动量 = 最大值 - 最小值;\n(3)重复上述步骤,依次测量其余主轴颈。\n数据判定\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\n\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.5 MT003 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0030201曲轴组件检测曲轴主轴颈跳动量1A/8000hJY级
安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。
安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg
序号名称规格/型号数量及单位备注
1精密千分表Mitutoyo 543-791D1套分辨率0.001 mm
2磁力表座Starrett 16B1个带万向关节
3V型支撑架Custom-Crank-V3002组承重≥500kg
\\n\\n
4盘车手轮OEM-MAN-BW-PCW1个原厂配套
\\n\\n
名称规格/型号消耗数量备注
1排气阀PV-1001
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%50mL清洁轴颈表面
2无绒擦拭布Kimwipe EX-L3张防刮伤轴面
\\n\\n
序号专业人数技能等级备注
1机械专业2总工+工程师总工复刻数据
\\n图 MT003.1 清洁\\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\\n图 MT003.2 标记测量基准点\\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\\n2)安装千分表\\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\\n图 MT003.3 千分尺\\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\\n(2)预压千分表 0.3 mm,归零。\\n3)盘车测量\\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\\n(2)跳动量 = 最大值 - 最小值;\\n(3)重复上述步骤,依次测量其余主轴颈。\\n数据判定\\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\\n\\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8e20bf10-c161-4a3f-89fc-2cd7afd91b16.pdf#page=27\"}]", + "embedding": [ + -0.03934222459793091, + -0.025218404829502106, + -0.07289103418588638, + 0.0005076340166851878, + -0.024991212412714958, + 0.04331810027360916, + 0.011577368713915348, + -0.005940146278589964, + -0.03095502406358719, + 0.0089125856757164, + -0.01125551201403141, + 0.013943960890173912, + 0.01389662828296423, + 0.012703865766525269, + 0.008869986981153488, + -0.024423230439424515, + -0.02567279152572155, + -0.019803643226623535, + 0.023325132206082344, + -0.025388799607753754, + -0.034703705459833145, + 0.0012187949614599347, + -0.01678387075662613, + 0.006740054115653038, + 0.008496065624058247, + 0.017228789627552032, + -0.028361238539218903, + 0.0051307715475559235, + 0.028152979910373688, + 0.03146620839834213, + 0.005760285072028637, + 0.0005182836903259158, + 0.02075027860701084, + -0.020049767568707466, + -0.06368972361087799, + -0.02306007221341133, + -0.020466288551688194, + -0.0327346995472908, + -0.058123502880334854, + 0.04884646087884903, + -0.0051733702421188354, + -0.0355367474257946, + 0.025578126311302185, + 0.017067862674593925, + 0.016102291643619537, + -0.035423148423433304, + 0.015146189369261265, + -0.03523382171988487, + 0.02317366935312748, + -0.025218404829502106, + -0.00163531512953341, + -0.021185731515288353, + 0.027054879814386368, + -0.013404377736151218, + -0.0012566604418680072, + 0.059108003973960876, + -0.057328324764966965, + -0.017721042037010193, + -0.04271225258708, + -0.01562897488474846, + 0.022113436833024025, + 0.042068541049957275, + 0.014672870747745037, + 0.012732265517115593, + 0.03246964141726494, + 0.04812701791524887, + -0.0029014418832957745, + -0.00656965933740139, + -0.005069239996373653, + 0.02536986768245697, + -0.010110081173479557, + -0.029856925830245018, + -0.009348038583993912, + 0.013555839657783508, + -0.044378332793712616, + 0.06978606432676315, + -0.0001616678200662136, + -0.02743353508412838, + 0.05668461322784424, + -0.037751875817775726, + 0.0343061201274395, + -0.003306129015982151, + -0.017900902777910233, + 0.012221081182360649, + -0.04490845277905464, + 0.1031455472111702, + 0.007525762543082237, + -0.03472263738512993, + -0.021924108266830444, + -0.038168396800756454, + -0.01587509922683239, + 0.004856246989220381, + -0.030368110164999962, + 0.020826010033488274, + -0.02622183971107006, + -0.008235740475356579, + -0.03203418850898743, + -0.03212885558605194, + 0.038414523005485535, + 0.013224516063928604, + -0.008874719962477684, + 0.07966895401477814, + 0.04933870956301689, + -0.008254673331975937, + 0.07232305407524109, + -0.020958539098501205, + 0.01383983064442873, + 0.027906853705644608, + -0.014161687344312668, + 0.0072938366793096066, + -0.022738216444849968, + -0.00805587973445654, + 0.0007425182848237455, + -0.02268141880631447, + -0.027035947889089584, + 0.019860440865159035, + -0.07569307833909988, + -0.006077408324927092, + -0.030197715386748314, + -0.026562629267573357, + 0.03267790377140045, + 0.07065697014331818, + 0.041879214346408844, + -0.0037510483525693417, + -0.010763260535895824, + -0.007809753995388746, + 0.04153842478990555, + -0.013659968972206116, + 0.01521245390176773, + 0.022340629249811172, + 0.007426365744322538, + 0.06989966332912445, + -0.015988696366548538, + -0.022416360676288605, + -0.0016270320629701018, + -0.01329078059643507, + -0.008434534072875977, + 0.010715928860008717, + -0.00762042636051774, + 0.012542937882244587, + 0.017437050119042397, + 0.00061945547349751, + 0.022529955953359604, + -0.0039238096214830875, + 0.020220162346959114, + -0.0513455830514431, + 0.02154545485973358, + -0.014606606215238571, + 0.003661117982119322, + 0.003100235713645816, + 0.000946636835578829, + 0.04403754323720932, + 0.01898953504860401, + 0.0031806996557861567, + -0.040175266563892365, + 0.0142942164093256, + -0.015723638236522675, + 0.037089232355356216, + 0.004408961161971092, + 0.05626809224486351, + 0.046991050243377686, + 0.006200471427291632, + 0.02092067338526249, + 0.005618289578706026, + 0.020579883828759193, + 0.0002405049162916839, + 0.031788066029548645, + 0.019917238503694534, + 0.05274660512804985, + -0.025634925812482834, + 0.00973142683506012, + -0.035006631165742874, + 0.0013856396544724703, + -0.009863955900073051, + 0.04233359917998314, + 0.016073893755674362, + 0.09595111012458801, + 0.0014767535030841827, + 0.009305439889431, + -0.03235604614019394, + 0.017967166379094124, + 0.030822494998574257, + -0.018412087112665176, + -0.0063330004923045635, + 0.005301166325807571, + 0.029667597264051437, + 0.06274309009313583, + -0.03953155502676964, + 0.014369946904480457, + 0.029175346717238426, + -0.015950830653309822, + 0.014398345723748207, + -0.015278718434274197, + -0.0019772876985371113, + 0.005230168346315622, + 0.018819140270352364, + -0.027812190353870392, + -0.015117790549993515, + 0.023022208362817764, + 0.015174588188529015, + 0.004683485720306635, + -0.008680659346282482, + -0.0001872565917437896, + -0.025142673403024673, + -0.035442084074020386, + 0.003864644793793559, + -0.03631298989057541, + -0.041954945772886276, + 0.04835420846939087, + -0.02360912226140499, + -0.03900143876671791, + 0.01128391083329916, + 0.02451789379119873, + -0.009224975481629372, + -0.011662566103041172, + -0.004794715438038111, + 0.02330619841814041, + -0.00833513680845499, + -0.004813648294657469, + -0.04112190380692482, + -0.02050415426492691, + 0.056003034114837646, + 0.030216647312045097, + -0.0514591783285141, + 0.048089150339365005, + -0.022776082158088684, + 0.04354529455304146, + 0.05153490975499153, + 0.05365537479519844, + -0.027641795575618744, + 0.020788144320249557, + 0.028664162382483482, + -0.05619236081838608, + 0.0001925814285641536, + 0.03521488979458809, + 0.045287106186151505, + -0.03583966940641403, + 0.03498769551515579, + 0.025899983942508698, + 0.04210640490055084, + 0.01341384369879961, + 0.015231386758387089, + 0.08754497021436691, + -0.01077272742986679, + -0.01143537275493145, + 0.010413005016744137, + 0.04392394796013832, + 0.06107700616121292, + -0.019633248448371887, + 0.05214075744152069, + -0.006825251504778862, + 0.0005111838690936565, + -0.03424932062625885, + 0.003173599950969219, + 0.020220162346959114, + 0.015004193410277367, + -0.008846321143209934, + -0.010602332651615143, + 0.009267574176192284, + -0.002215130254626274, + 0.024972278624773026, + 0.04365888983011246, + 0.026183973997831345, + 0.002970073139294982, + 0.00790441781282425, + 0.040175266563892365, + -0.0163673497736454, + 0.02677088975906372, + -0.022832879796624184, + -0.015174588188529015, + -0.022662485018372536, + -0.005476294085383415, + 0.006820518523454666, + 0.005523625761270523, + -0.017796771600842476, + 0.062137242406606674, + 0.015411247499287128, + -0.007866552099585533, + 0.04593081772327423, + -0.048694998025894165, + -0.025502396747469902, + 0.024801885709166527, + 0.015449113212525845, + 0.016632409766316414, + -0.005334298592060804, + -0.03703243285417557, + -0.05759338289499283, + -0.03203418850898743, + -0.03188272938132286, + -0.05956238880753517, + -0.0051497044041752815, + -0.01033727452158928, + 0.08277392387390137, + 0.009144512005150318, + -0.006673789583146572, + 0.006517594680190086, + 0.0062383366748690605, + -0.1626700758934021, + 0.005817083176225424, + -0.04767262935638428, + 0.00900251604616642, + 0.02663836069405079, + 0.0052254353649914265, + -0.024801885709166527, + -0.04115976765751839, + -0.004808914847671986, + 0.03388959914445877, + 0.019140996038913727, + -0.07440565526485443, + -0.004534390289336443, + -0.0312768816947937, + -0.03903930261731148, + 0.008434534072875977, + -0.023760585114359856, + -0.05221648886799812, + 0.01690693385899067, + -0.048202745616436005, + -0.033662404865026474, + 0.005282233469188213, + 0.04142482578754425, + 0.011993888765573502, + -0.010384606197476387, + -0.025748521089553833, + 0.05857788771390915, + 0.01727612130343914, + 0.011776162311434746, + -0.01824169233441353, + 0.012694399803876877, + -0.06577232480049133, + -0.002184364479035139, + 0.042598657310009, + 0.012079086154699326, + -0.00897411722689867, + -0.02306007221341133, + 0.002861209912225604, + -0.02383631467819214, + 0.007270170841366053, + 0.030368110164999962, + 0.032942961901426315, + 0.023628056049346924, + 0.03754361718893051, + 0.012419874779880047, + -0.07966895401477814, + 0.015070457942783833, + 0.0003940375754609704, + -0.0018554081907495856, + -0.02391204610466957, + -0.03315122053027153, + -0.0052254353649914265, + 0.025881050154566765, + -0.004553323145955801, + -0.05017175152897835, + 0.029554001986980438, + 0.03279149904847145, + 0.004723717924207449, + -0.037751875817775726, + -0.0008046412840485573, + -0.05376897007226944, + -0.07966895401477814, + 0.01033727452158928, + -0.014265816658735275, + -0.06217510625720024, + -0.0330754891037941, + -0.04081897810101509, + -0.019633248448371887, + 0.007478430867195129, + -0.02724420838057995, + 0.005537825636565685, + -0.014691803604364395, + -0.0021559654269367456, + -0.015004193410277367, + -0.018847540020942688, + 0.0005949020851403475, + -0.015581642277538776, + 0.026733024045825005, + -0.01562897488474846, + -0.10935548692941666, + -0.008680659346282482, + 0.032204583287239075, + 0.029819060117006302, + -0.019424987956881523, + -0.026259705424308777, + 0.0032090989407151937, + 0.003173599950969219, + -0.009977552108466625, + -0.01006274949759245, + 0.24127879738807678, + -0.020220162346959114, + -0.03417358919978142, + -0.01951965130865574, + 0.012173749506473541, + -0.05339031666517258, + -0.03347307816147804, + -0.02457469142973423, + -0.0007762421737425029, + -0.010214211419224739, + -0.043961815536022186, + -0.007071377243846655, + -0.010943121276795864, + -0.020579883828759193, + -0.014483543112874031, + 0.055094264447689056, + -0.01568577252328396, + 0.0010247343452647328, + 0.11564115434885025, + -0.03182592988014221, + 0.038717444986104965, + 0.07792714238166809, + -0.017380252480506897, + 0.003703716676682234, + -0.05941092595458031, + -0.056533150374889374, + -0.004645620007067919, + 0.07255024462938309, + 0.01685013622045517, + 0.013158251531422138, + 0.0010235510999336839, + 0.007752955425530672, + 0.04021313413977623, + -0.03383279964327812, + -0.027338871732354164, + 0.02839910425245762, + 0.027206342667341232, + -0.025899983942508698, + 0.002043552231043577, + 0.047596897929906845, + 0.0243853647261858, + -0.03782760724425316, + -0.08459146320819855, + -0.012542937882244587, + -0.01793876849114895, + -0.060736220329999924, + 0.008652260527014732, + -0.0021890976931899786, + 0.014985260553658009, + 0.011511104181408882, + -0.005386363714933395, + 0.033738136291503906, + 0.01989830657839775, + -0.02889135666191578, + 0.011369108222424984, + 0.04509777948260307, + -0.021375060081481934, + -0.010999919846653938, + 0.004328496754169464, + 0.006285668350756168, + 0.0025914183352142572, + -0.0018139928579330444, + -0.05638168752193451, + 0.036161527037620544, + -0.008254673331975937, + -0.017238257452845573, + -0.02366591989994049, + 0.0027712793089449406, + 0.012031754478812218, + -0.014956861734390259, + 0.019633248448371887, + 0.006001677364110947, + -0.03601006418466568, + 0.035252753645181656, + 0.008136343210935593, + 0.012912126258015633, + -0.022908611223101616, + 0.06403051316738129, + -0.026751955971121788, + 0.031239015981554985, + -0.0431666374206543, + -0.007857085205614567, + 0.012732265517115593, + -0.029099615290760994, + 0.02421496994793415, + 0.010659130290150642, + -0.009343305602669716, + -0.0014897696673870087, + -0.01557217538356781, + -0.03672950714826584, + -0.04422687366604805, + -0.01536391582340002, + -0.019746843725442886, + 0.052708737552165985, + -0.014767534099519253, + 0.020693480968475342, + 9.451577352592722e-05, + -0.05028534680604935, + -0.019860440865159035, + 0.02215130254626274, + 0.031901661306619644, + -0.008619128726422787, + -0.027528198435902596, + 0.014843265525996685, + -0.0033723937813192606, + -0.0005940145929343998, + -0.024858683347702026, + 0.023022208362817764, + -0.002742880256846547, + -0.00048663048073649406, + -0.05172423645853996, + 0.030576368793845177, + -0.004581722430884838, + -0.043886084109544754, + 0.009977552108466625, + 0.03070889785885811, + -0.011094583198428154, + 0.016632409766316414, + -0.011946557089686394, + 0.021980907768011093, + -0.03335948288440704, + 0.05456414818763733, + -0.013678901828825474, + 0.029364673420786858, + -0.0455142967402935, + 0.020636683329939842, + -0.03192059323191643, + -0.01976577751338482, + -0.012003354728221893, + 0.07716983556747437, + 0.012268412858247757, + -0.020295893773436546, + -0.03048170544207096, + 0.0024399564135819674, + 0.027812190353870392, + 0.024915480986237526, + 0.05907013639807701, + 0.041576288640499115, + 0.013707301579415798, + 0.00669272243976593, + -0.031049687415361404, + -0.04309090971946716, + -0.0049698431976139545, + 0.015202987007796764, + 0.0033652938436716795, + -0.0027689128182828426, + 0.0914829820394516, + -0.002563019283115864, + -0.038660649210214615, + -0.0018755241762846708, + -0.011946557089686394, + 0.0012649435084313154, + 0.00336056062951684, + -0.06066048890352249, + 0.017067862674593925, + -0.03941795602440834, + -0.03012198396027088, + -0.024196038022637367, + 0.0022766615729779005, + -0.01824169233441353, + 0.0009495950653217733, + -0.01563844084739685, + 0.003672950901091099, + 0.01800503209233284, + 0.027584997937083244, + -0.03120115026831627, + 0.011302843689918518, + 0.06115273758769035, + 0.036350853741168976, + -0.009324372746050358, + 0.04714251309633255, + -0.043393831700086594, + -0.03712709620594978, + 0.0007289103814400733, + 0.0062052044086158276, + 0.004524923861026764, + -0.08300111442804337, + 0.027111679315567017, + -0.008576530031859875, + 0.043886084109544754, + 0.034590110182762146, + 0.01793876849114895, + -0.009816624224185944, + -0.031068621203303337, + 0.004979309625923634, + -0.015562709420919418, + 0.0021228331606835127, + -0.019557517021894455, + -0.031844861805438995, + -0.00882265530526638, + -0.04502204805612564, + 0.09193737059831619, + -0.02536986768245697, + 0.003488356713205576, + -0.01605495996773243, + -0.026297571137547493, + 0.0041249701753258705, + 0.02154545485973358, + -0.0298758577555418, + -0.057214729487895966, + 0.03691883757710457, + 0.030084118247032166, + -0.02834230661392212, + -0.012722798623144627, + -0.008231007494032383, + -0.0010111264418810606, + -0.005410029552876949, + -0.008538664318621159, + -0.010583399794995785, + 0.00469768512994051, + -0.022700350731611252, + -0.010469803586602211, + -0.013546372763812542, + 0.02408244088292122, + -0.05657101795077324, + -0.019443919882178307, + 0.00717550702393055, + 0.01308252103626728, + -0.026505831629037857, + 0.003973508253693581, + 0.01313931867480278, + 0.03515809029340744, + 0.014341548085212708, + 0.006820518523454666, + -0.028380172327160835, + -0.015439646318554878, + -0.017967166379094124, + -0.015912964940071106, + 0.06387905031442642, + -0.007255971431732178, + 0.006801585666835308, + 0.003876477712765336, + -0.023022208362817764, + -0.02756606414914131, + 0.000796358217485249, + -0.06777919828891754, + 0.018875937908887863, + 0.0399102084338665, + -0.020182296633720398, + -0.037448953837156296, + 0.021677983924746513, + 0.0051733702421188354, + -0.01775890775024891, + 0.021450789645314217, + -0.029535068199038506, + 0.04093257710337639, + 0.017806239426136017, + -0.02391204610466957, + -0.003036337671801448, + -0.004721350967884064, + 0.009504233486950397, + 0.06971033662557602, + 0.0368809700012207, + -0.010460336692631245, + -0.01569523848593235, + 0.03633192181587219, + -0.0711870864033699, + -0.002250629011541605, + -0.027584997937083244, + 0.025540262460708618, + -0.027584997937083244, + 0.003852811874821782, + -0.003090769285336137, + -0.0005378080531954765, + -0.06467422842979431, + -0.011662566103041172, + 0.04593081772327423, + 0.014691803604364395, + -0.024745086207985878, + -0.0542612224817276, + -0.02749033272266388, + -0.011984421871602535, + -0.025691723451018333, + -0.03697563335299492, + 0.02323046699166298, + -0.006801585666835308, + 0.0015536677092313766, + -0.0037013499531894922, + -0.03137154504656792, + -0.009575231932103634, + 0.011634166352450848, + 0.0024174738209694624, + 0.021318260580301285, + -0.0016518812626600266, + 0.018942203372716904, + 0.06781706213951111, + 0.0033984261099249125, + -0.00933383870869875, + -0.023381929844617844, + 0.005263300612568855, + -0.04119763523340225, + -0.04907365143299103, + -0.03697563335299492, + 0.05062613636255264, + -0.02391204610466957, + 0.022776082158088684, + -0.03873638063669205, + 0.029004951938986778, + -0.00482074823230505, + 0.015117790549993515, + 0.0006519961170852184, + 0.0401374027132988, + -0.022113436833024025, + -0.022605687379837036, + -0.022776082158088684, + -0.034760504961013794, + -0.029175346717238426, + 0.027755390852689743, + 0.045968685299158096, + 0.029554001986980438, + 0.01444567833095789, + -0.06240230053663254, + 0.016414683312177658, + 0.04134909808635712, + -0.01100938580930233, + 0.024177104234695435, + 0.0713006854057312, + 0.0016885633813217282, + -0.012703865766525269, + 0.02347659319639206, + -0.014729669317603111, + -0.016622941941022873, + -0.020087633281946182, + 0.014256350696086884, + -0.03568820655345917, + -0.037013500928878784, + 0.01702999696135521, + 0.04100830852985382, + -0.01305412221699953, + -0.050815463066101074, + 0.0030197715386748314, + 0.019633248448371887, + -0.007123441901057959, + -0.03532848507165909, + 0.009797691367566586, + 0.060130372643470764, + -0.024120306596159935, + -0.012978390790522099, + 0.03383279964327812, + 0.03447651490569115, + 0.008983583189547062, + 0.02037162519991398, + 0.004595921840518713, + -0.0114637715741992, + -0.016329485923051834, + -0.0013513240264728665, + 0.018894871696829796, + -0.030216647312045097, + -0.019727911800146103, + -0.009106646291911602, + -0.010204744525253773, + 0.008169475942850113, + -0.01588456518948078, + -0.0571768656373024, + -0.008410868234932423, + -0.004735550843179226, + 0.021431857720017433, + -0.032204583287239075, + 0.07792714238166809, + -0.01474860217422247, + 0.0003665259573608637, + 0.02501014433801174, + 0.027111679315567017, + -0.026733024045825005, + 0.004195967689156532, + 0.0009602447389625013, + 0.045476432889699936, + -0.0025180538650602102, + 0.0428258515894413, + -0.011189247481524944, + -0.028001517057418823, + -0.003575920592993498, + -0.00516863726079464, + 0.011530036106705666, + 0.019264059141278267, + 0.005954345688223839, + -0.0013170085148885846, + -0.007795554120093584, + -0.020598817616701126, + -0.002645849948748946, + -0.016092825680971146, + -0.012135883793234825, + -0.04725611209869385, + -0.015250319615006447, + -0.004311930853873491, + -0.0009383537690155208, + -0.026619426906108856, + -0.012912126258015633, + 0.05524572357535362, + -0.010479269549250603, + -0.005495226942002773, + -0.009627296589314938, + -0.03714602813124657, + 0.014057557098567486, + -0.15441539883613586, + -0.02196197398006916, + -0.016206422820687294, + -0.029156414791941643, + -3.577621464501135e-05, + -0.0025038544554263353, + -0.015013660304248333, + -0.01588456518948078, + 0.004399494733661413, + -0.011302843689918518, + 0.010119548067450523, + 0.03644551709294319, + 0.01478646695613861, + -0.013603171333670616, + 0.03455224260687828, + 0.03824412822723389, + -0.007994348183274269, + 0.012022287584841251, + 0.013016256503760815, + -0.00942850299179554, + 0.0030126716010272503, + -0.021091068163514137, + 0.013735700398683548, + 0.005769751500338316, + 0.0186676774173975, + -0.011331242509186268, + -0.039683014154434204, + 0.008297272026538849, + -0.012495606206357479, + -0.026922350749373436, + 0.003414992243051529, + -0.06251589953899384, + 0.036767374724149704, + 0.04210640490055084, + 0.032450709491968155, + -0.006517594680190086, + -0.005722419824451208, + 0.0024825551081448793, + 0.02531306818127632, + -0.016935333609580994, + 0.01128391083329916, + 0.02075027860701084, + -0.03523382171988487, + 0.002489654812961817, + 0.008874719962477684, + 0.02531306818127632, + 0.016812270507216454, + -0.020542019978165627, + -0.025691723451018333, + 0.00045408986625261605, + -0.007331702392548323, + 0.03527168929576874, + -0.008065345697104931, + 0.028323374688625336, + 0.0027476134710013866, + 0.0021240164060145617, + -0.0229275431483984, + 0.029213212430477142, + 0.021791579201817513, + 0.019368190318346024, + -0.010820059105753899, + -0.004037405829876661, + -0.039077166467905045, + -0.038963571190834045, + -0.04426473751664162, + 0.020220162346959114, + -0.07031618058681488, + 0.031049687415361404, + 0.01581830158829689, + -0.018932737410068512, + 0.014644471928477287, + 0.03862278163433075, + 0.046082280576229095, + -0.05676034465432167, + 0.00018207967514172196, + 0.02061774954199791, + 0.0485435351729393, + 0.024650422856211662, + -0.01521245390176773, + -0.012126417830586433, + -0.006711655296385288, + 0.0020352692808955908, + -0.012533471919596195, + 0.017560113221406937, + 0.04642307013273239, + 0.011520570144057274, + 0.009769291616976261, + 0.014710736460983753, + -0.020295893773436546, + -0.009920753538608551, + -0.028739893808960915, + -0.0025701189879328012, + 0.005040841177105904, + -0.0570632666349411, + 0.019424987956881523, + -0.03034917637705803, + -0.0597517155110836, + -0.02487761527299881, + -0.0002422798570478335, + -0.0040847379714250565, + -0.0039971740916371346, + -0.013044655323028564, + 0.02268141880631447, + 0.012864794582128525, + -0.044189006090164185, + 0.0038930438458919525, + -0.013309713453054428, + 0.0004745017213281244, + -0.02075027860701084, + 0.006285668350756168, + -0.014209019020199776, + -0.018639279529452324, + -0.003133367979899049, + -0.00232635997235775, + -0.02798258513212204, + 0.008415601216256618, + -0.008131610229611397, + 0.008604928851127625, + 0.0005824774852953851, + -0.03849025443196297, + -0.015950830653309822, + 0.04555216431617737, + -0.021867310628294945, + -0.036464449018239975, + -0.00243285670876503, + -0.028077248483896255, + 0.02980012632906437, + 0.02872096188366413, + -0.017976634204387665, + 0.022605687379837036, + 0.022832879796624184, + -0.006252536084502935, + -0.04369675740599632, + 0.028550567105412483, + 0.018516216427087784, + 0.009703027084469795, + -0.023949911817908287, + 0.06119060516357422, + 0.005869148299098015, + -0.015136722475290298, + 0.011444839648902416, + 0.002875409321859479, + 0.0010945488465949893, + -0.02122359722852707, + 0.03180699795484543, + 0.038963571190834045, + 0.010110081173479557, + -0.012940525077283382, + -0.004941444378346205, + -0.007118708919733763, + 0.023249400779604912, + -0.029307875782251358, + -0.01077272742986679, + 0.025104807689785957, + 0.02160225249826908, + -0.015023126266896725, + -0.0062478031031787395, + 0.07262597978115082, + -0.00660279206931591, + 0.014067023061215878, + 0.033851731568574905, + -0.07179293781518936, + -0.012580803595483303, + -0.04199280962347984, + -0.010933655314147472, + -0.008013281039893627, + -0.000573011115193367, + 0.001925222692079842, + -0.02701701410114765, + -0.024669354781508446, + 0.004035039339214563, + 0.03831985965371132, + -0.03260217234492302, + -0.019055798649787903, + 0.026676226407289505, + 0.0014033891493454576, + 0.026751955971121788, + -0.029591867700219154, + 0.04983096197247505, + 0.014379413798451424, + 0.0018743409309536219, + 0.05085333064198494, + -0.04112190380692482, + 0.009892354719340801, + -0.004794715438038111, + 0.018459418788552284, + 0.05876721441745758, + 0.024896549060940742, + -0.0020506519358605146, + 0.04604441672563553, + 0.0060584754683077335, + 0.01951965130865574, + -0.006560193374752998, + -0.01697319746017456, + 0.04566575959324837, + 0.013735700398683548, + -0.0013596070930361748, + -0.025578126311302185, + 0.005111838690936565, + 0.03582073748111725, + -0.04271225258708, + 0.02245422638952732, + -0.051004793494939804, + -0.02749033272266388, + 0.007890217937529087, + 0.011425906792283058, + 0.007052444387227297, + -0.0028896089643239975, + -0.028077248483896255, + -0.022113436833024025, + -0.006044276058673859, + -0.008032213896512985, + -0.028853490948677063, + 0.032507508993148804, + -0.010431937873363495, + -0.0010484002996236086, + -0.019690046086907387, + 0.0039001437835395336, + -0.06478782743215561, + 0.02232169546186924, + 0.03231818228960037, + 0.015278718434274197, + 0.011293377727270126, + -0.02237849496304989, + 0.020939607173204422, + -0.03358667343854904, + 0.005570957902818918, + -0.04044032469391823, + -0.019803643226623535, + -0.005258567631244659, + 0.014909530058503151, + -0.04399967938661575, + -0.05263300612568855, + 0.07845725864171982, + 0.0036587512586265802, + 0.012590269558131695, + 0.004752116743475199, + -0.040364593267440796, + -0.026619426906108856, + -0.011757229454815388, + 0.03502556309103966, + -0.0037510483525693417, + 0.023590190336108208, + 0.026808755472302437 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "曲轴组件", + "组成编码": "0201", + "维修项目名称": "检测曲轴主轴颈跳动量", + "维修项目编号": "MT003", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.5 MT003 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0030201曲轴组件检测曲轴主轴颈跳动量1A/8000hJY级
安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。
安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg
序号名称规格/型号数量及单位备注
1精密千分表Mitutoyo 543-791D1套分辨率0.001 mm
2磁力表座Starrett 16B1个带万向关节
3V型支撑架Custom-Crank-V3002组承重≥500kg
\\n\\n
4盘车手轮OEM-MAN-BW-PCW1个原厂配套
\\n\\n
名称规格/型号消耗数量备注
1排气阀PV-1001
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%50mL清洁轴颈表面
2无绒擦拭布Kimwipe EX-L3张防刮伤轴面
\\n\\n
序号专业人数技能等级备注
1机械专业2总工+工程师总工复刻数据
\\n图 MT003.1 清洁\\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\\n图 MT003.2 标记测量基准点\\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\\n2)安装千分表\\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\\n图 MT003.3 千分尺\\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\\n(2)预压千分表 0.3 mm,归零。\\n3)盘车测量\\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\\n(2)跳动量 = 最大值 - 最小值;\\n(3)重复上述步骤,依次测量其余主轴颈。\\n数据判定\\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\\n\\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8e20bf10-c161-4a3f-89fc-2cd7afd91b16.pdf#page=27\"}]", + "embedding": [ + 0.015156945213675499, + -0.0018597203306853771, + -0.04711891710758209, + 0.01159961149096489, + -0.008884329348802567, + 0.0346367284655571, + 0.022298632189631462, + -0.01119434554129839, + -0.03566339984536171, + -0.007857656106352806, + 0.017192281782627106, + 0.006101503502577543, + 0.03215109556913376, + -0.0037081832997500896, + 0.0244420375674963, + -0.029881607741117477, + 0.0004759060393553227, + -0.006596828810870647, + 0.02790030650794506, + -0.009573281742632389, + -0.03962600231170654, + -0.02157815918326378, + -0.026243219152092934, + 0.009312110021710396, + -0.01921861059963703, + 0.0180298313498497, + -0.017525499686598778, + 0.03481684625148773, + -0.02125394716858864, + 0.012365113943815231, + -0.017075203359127045, + 0.011959847994148731, + 0.03912166878581047, + -0.015769347548484802, + -0.07118270546197891, + -0.04737108200788498, + 0.021704241633415222, + -0.00997854769229889, + -0.06206872686743736, + 0.028836922720074654, + -0.03560936450958252, + -0.026747550815343857, + 0.006335657089948654, + -0.03415040671825409, + -0.01343681663274765, + -0.032619405537843704, + -0.02092973329126835, + -0.04711891710758209, + 0.024135837331414223, + -0.011887800879776478, + -0.013562900014221668, + -0.010158665478229523, + 0.02568485401570797, + -0.01927264593541622, + -0.04906419292092323, + 0.013463834300637245, + -0.12053509056568146, + -0.034996964037418365, + -0.07600987702608109, + 0.00852859579026699, + 0.0002113574300892651, + 0.058790575712919235, + 0.03179085999727249, + 0.013013538904488087, + 0.03692422807216644, + 0.05223427340388298, + -0.020749615505337715, + 0.0023820630740374327, + -0.0025239060632884502, + 0.010933173820376396, + -0.008109821006655693, + -0.03966202586889267, + -0.007425372488796711, + 0.02325325831770897, + -0.017948778346180916, + 0.04013033211231232, + -0.020479438826441765, + -0.005876355804502964, + 0.026855621486902237, + -0.011365457437932491, + 0.0008375495672225952, + -0.028999028727412224, + 0.00884830579161644, + -0.023559458553791046, + -0.030295878648757935, + 0.08069294691085815, + -0.005961912218481302, + -0.019182587042450905, + -0.05407147854566574, + -0.007628005463629961, + -0.009303104132413864, + -0.024243908002972603, + 0.04625435173511505, + 0.029647454619407654, + -0.03377215936779976, + 0.008001750335097313, + -0.017021168023347855, + 0.00812332984060049, + 0.04434509947896004, + 0.004338596947491169, + -0.01241014339029789, + 0.08573625981807709, + 0.0206595566123724, + -0.017039179801940918, + 0.06444628536701202, + -0.00809180922806263, + 0.0382210798561573, + -0.009591293521225452, + -0.0020207008346915245, + 0.018327025696635246, + 0.0040549105033278465, + 0.0279543437063694, + 0.01227505411952734, + -0.021812312304973602, + -0.008978892117738724, + -0.027774224057793617, + -0.04272403568029404, + -0.007110165432095528, + -0.0018979953601956367, + -0.010708026587963104, + 0.023649517446756363, + 0.014463490806519985, + 0.08213389664888382, + -0.01476068515330553, + 0.05039706826210022, + -0.006659870035946369, + 0.03894155099987984, + 0.043408483266830444, + -0.005822320468723774, + 0.031322553753852844, + -0.010870132595300674, + 0.025288593024015427, + -0.020101189613342285, + 0.017120234668254852, + -0.04520966485142708, + -0.015192968770861626, + 0.010176677256822586, + 0.004469182342290878, + 0.00782163254916668, + -0.0005977672408334911, + -0.01947077549993992, + -0.10187485069036484, + -0.00855561438947916, + -0.0115455761551857, + 0.0039445883594453335, + -0.007785608526319265, + -0.0026454858016222715, + -0.00022965068637859076, + -0.015328058041632175, + -0.02871083840727806, + 0.01905650459229946, + 0.018534161150455475, + 0.030674127861857414, + -0.0021242687944322824, + -0.004741611424833536, + -0.01889439858496189, + -0.021560147404670715, + 0.07449688017368317, + -0.004117952194064856, + 0.021235933527350426, + 0.049352385103702545, + 0.04614628106355667, + -0.007902685552835464, + -0.012031895108520985, + 0.03330385312438011, + 0.008325963281095028, + 0.04272403568029404, + 0.025486724451184273, + 0.009113980457186699, + -0.0451015941798687, + -0.019380716606974602, + -0.036780133843421936, + -0.0072632660157978535, + 0.007173206657171249, + 0.06693191826343536, + 0.005705243442207575, + 0.07687444239854813, + -0.006151036359369755, + 0.016552861779928207, + -0.02741398848593235, + 0.01959685981273651, + 0.01840807870030403, + -0.021758276969194412, + -0.023721564561128616, + 0.0014150534989312291, + 0.011032238602638245, + 0.018768316134810448, + -0.02006516605615616, + 0.019380716606974602, + 0.03220513090491295, + -0.04693879932165146, + -0.01889439858496189, + -0.033159758895635605, + -0.07752286642789841, + 0.016201630234718323, + 0.05396340787410736, + -0.0038432718720287085, + 0.02476625144481659, + -0.00527295982465148, + -0.010401825420558453, + -0.061600420624017715, + 0.001725757378153503, + -0.004804652649909258, + -0.0214700885117054, + -0.06768841296434402, + 0.021938394755125046, + -0.015589228831231594, + -0.030890269204974174, + 0.007137183099985123, + 0.005453078076243401, + 0.008650176227092743, + 0.007609993685036898, + 0.01489577442407608, + -0.06286124885082245, + 0.0049082208424806595, + -0.016336720436811447, + -0.006556301843374968, + 0.009780417196452618, + -0.018696267157793045, + -0.046326398849487305, + -0.03995021432638168, + 0.006668875925242901, + 0.019614871591329575, + 0.0393017902970314, + 0.06545495241880417, + -0.04247186705470085, + 0.04441714659333229, + 0.026405327022075653, + -0.008875323459506035, + -0.033538006246089935, + 0.0016728476621210575, + -0.004471433814615011, + -0.021073827520012856, + -0.051297660917043686, + 0.035537317395210266, + 0.0230911523103714, + -0.0027738201897591352, + 0.0236315056681633, + 0.05111754313111305, + 0.004016635473817587, + 0.021830324083566666, + 0.032187119126319885, + 0.03492491692304611, + -0.03717639297246933, + 0.022424714639782906, + 0.01916457526385784, + 0.03955395519733429, + 0.022965069860219955, + -0.03894155099987984, + 0.003174582961946726, + -0.025000404566526413, + 0.030692139640450478, + -0.0002559648419264704, + 0.04182344302535057, + 0.052810654044151306, + 0.02784627117216587, + 0.027612118050456047, + -0.0008364238310605288, + 0.004831670317798853, + -0.005583663936704397, + -0.004226022865623236, + 0.08638468384742737, + 0.03503298759460449, + 0.010572937317192554, + 0.02222658507525921, + 0.022730914875864983, + -0.0211999099701643, + 0.06667975336313248, + -0.029809560626745224, + 0.015283028595149517, + -0.03195296600461006, + -0.012347102165222168, + 0.003478532424196601, + -0.03188091889023781, + 0.0012101690517738461, + 0.06426616758108139, + 0.014904780313372612, + -0.03177284821867943, + 0.10050594806671143, + -0.01995709538459778, + 0.04585809260606766, + -0.005182900931686163, + 0.03940986096858978, + -0.02190237119793892, + 0.01732737012207508, + 0.021073827520012856, + -0.10713429749011993, + -0.018119890242815018, + -0.003651896258816123, + -0.031052375212311745, + -0.03233121335506439, + 0.017525499686598778, + 0.0704982578754425, + 0.01297751534730196, + -0.07507326453924179, + 0.013409798964858055, + -0.03496094048023224, + -0.12168785184621811, + -0.0033614556305110455, + -0.0681927427649498, + 0.019290657714009285, + 0.0073443190194666386, + -0.004345351364463568, + -0.048703957349061966, + -0.0034695265349000692, + 0.03231320157647133, + 0.0014634602703154087, + -0.007749584969133139, + -0.0881858617067337, + -0.032241154462099075, + -0.018155913800001144, + -0.027017727494239807, + -0.03306970000267029, + -0.03519509360194206, + 0.0006760060787200928, + 0.009690358303487301, + -0.049028169363737106, + 0.0012585758231580257, + -0.029935643076896667, + 0.062032703310251236, + 0.017183275893330574, + 0.0009338002419099212, + -0.05176596716046333, + 0.0382210798561573, + 0.007461396045982838, + -0.0279543437063694, + -0.021992430090904236, + -0.00458851084113121, + -0.025054439902305603, + 0.023379340767860413, + 0.04625435173511505, + -0.0015670282300561666, + -0.029377276077866554, + -0.020191248506307602, + -0.022622844204306602, + -0.023325305432081223, + 0.014175301417708397, + -0.0017313860589638352, + 0.0021265202667564154, + 0.027179835364222527, + 0.004349854309111834, + -0.018858375027775764, + -0.0869610607624054, + 0.03636586293578148, + -0.003323180601000786, + -0.002026329515501857, + -0.04484942927956581, + 0.005011788569390774, + -0.01997510716319084, + -0.0003486975620035082, + -0.06444628536701202, + -0.022028453648090363, + 0.04020237922668457, + -0.007231745403259993, + 0.019452763721346855, + -0.0014747176319360733, + -0.006106006447225809, + -0.012995527125895023, + -0.03442058712244034, + 0.028314579278230667, + -0.060519710183143616, + -0.011770723387598991, + -0.0206595566123724, + 0.004876699764281511, + -0.03890552744269371, + 0.020047154277563095, + -0.05407147854566574, + 0.021992430090904236, + -0.010077612474560738, + -0.012599267065525055, + -0.046974822878837585, + -0.052090179175138474, + 0.006916538346558809, + -0.043084271252155304, + 0.05144175514578819, + -0.058790575712919235, + -0.06581518799066544, + -0.026747550815343857, + 0.0023212730884552, + 0.024099813774228096, + -0.018876386806368828, + -0.050000809133052826, + -0.02092973329126835, + 0.013598923571407795, + -0.0222806204110384, + -0.002677006646990776, + 0.19957095384597778, + -0.035861533135175705, + 0.0047326055355370045, + 0.014184307307004929, + 0.047407105565071106, + -0.03220513090491295, + -0.009618311189115047, + -0.025504736229777336, + -0.012698331847786903, + -0.037464581429958344, + -0.043192341923713684, + -0.055332306772470474, + 0.01484173908829689, + -0.024622157216072083, + -0.006335657089948654, + 0.04560592398047447, + -0.014094248414039612, + 0.007898182608187199, + 0.08134137094020844, + -0.025162510573863983, + -0.027720188722014427, + 0.012022889219224453, + -0.022478749975562096, + -0.028584755957126617, + -0.0058088116347789764, + -0.032241154462099075, + 0.011113292537629604, + 0.023703552782535553, + 0.029053064063191414, + 0.015877418220043182, + -0.027756212279200554, + 0.02168622985482216, + 0.025540759786963463, + -0.027017727494239807, + -0.018200943246483803, + -0.021001780405640602, + 0.02067756839096546, + 0.030187807977199554, + 0.023973731324076653, + 0.010699020698666573, + 0.0030732667073607445, + -0.01846211403608322, + -0.04928033798933029, + -0.01159961149096489, + -0.006236592307686806, + -0.04899214580655098, + 0.02719784714281559, + -0.027323929592967033, + 0.04124706611037254, + 0.0050207944586873055, + 0.039265766739845276, + -0.006430219393223524, + -0.017039179801940918, + -0.015012850984930992, + 0.005709746386855841, + -0.04214765504002571, + -0.017444446682929993, + -0.029719501733779907, + 0.024622157216072083, + 0.011203351430594921, + 0.04722698777914047, + -0.007655023131519556, + -0.03955395519733429, + 0.01186978816986084, + 0.003034991445019841, + -0.04391281306743622, + 0.0006084617343731225, + -0.01019468903541565, + 0.02163219451904297, + 0.001810187823139131, + 0.08364688605070114, + -0.008875323459506035, + -0.025720877572894096, + 0.018804339691996574, + 0.019903060048818588, + 0.006952561903744936, + 0.028963005170226097, + 0.058142151683568954, + -0.022262608632445335, + -0.013688982464373112, + -0.03071015141904354, + -0.05763782188296318, + -0.0010942179942503572, + 0.009924512356519699, + 0.053711242973804474, + -0.007902685552835464, + -0.0051108538173139095, + 0.01619262434542179, + -0.0007553706527687609, + -0.028692826628684998, + -0.02152412384748459, + -0.019668906927108765, + -0.016210636124014854, + 0.011437504552304745, + -0.038761433213949203, + -0.003296162933111191, + 0.020911721512675285, + -0.033375900238752365, + -0.029179146513342857, + 0.008803276345133781, + -0.009753399528563023, + -0.03168278932571411, + -0.03373613581061363, + -0.07006597518920898, + 0.008109821006655693, + -0.0028458673041313887, + -0.020191248506307602, + 0.011851776391267776, + -0.014013195410370827, + -0.011572593823075294, + 0.005146877374500036, + 0.03533918783068657, + 0.03297964110970497, + -0.04466931149363518, + 0.014121266081929207, + 0.004971262067556381, + 0.0057502733543515205, + 0.024406014010310173, + 0.0017831700388342142, + 0.012157977558672428, + -0.029287217184901237, + -0.01332874596118927, + 0.026459362357854843, + -0.001980174332857132, + -0.03258338198065758, + -0.025937018916010857, + -0.04639844596385956, + -0.025648830458521843, + -0.019614871591329575, + 0.029593419283628464, + -0.0025666842702776194, + -0.0650947168469429, + -0.02255079708993435, + -0.023775601759552956, + 0.014607585035264492, + -0.0027265390381217003, + 0.0020848680287599564, + 0.025450700893998146, + -0.016039524227380753, + -0.02903505228459835, + -0.019849024713039398, + -0.0279543437063694, + -0.01465261448174715, + -0.012184995226562023, + 0.00952825229614973, + -0.000888770679011941, + 0.013986177742481232, + -0.008470057509839535, + -0.029611431062221527, + 0.0328175351023674, + -0.02206447720527649, + 0.06700396537780762, + 0.016048530116677284, + -0.049460455775260925, + -0.0127613740041852, + 0.02563081867992878, + -0.014067230746150017, + 0.03622176870703697, + 0.006304136477410793, + 0.009028424508869648, + -0.015319052152335644, + 0.020263295620679855, + 0.03314174711704254, + -0.02476625144481659, + 0.036455921828746796, + 0.0688771978020668, + -0.036672063171863556, + 0.036834169179201126, + -0.01624665968120098, + 0.0009754525381140411, + 0.02179430052638054, + -0.019092528149485588, + -0.04520966485142708, + 0.0786035805940628, + 0.02881891094148159, + 0.00825841911137104, + -0.033483970910310745, + -0.008051282726228237, + -0.0076415142975747585, + 0.0451015941798687, + 0.0188403632491827, + 0.01108627486974001, + -0.005354013293981552, + -0.06426616758108139, + 0.005200912710279226, + -0.0036361359525471926, + -0.026459362357854843, + -0.00882579106837511, + 0.0196508951485157, + 0.04160730168223381, + -0.049244314432144165, + 0.08018861711025238, + -0.07795514911413193, + -0.022856997326016426, + 0.022154537960886955, + -0.023649517446756363, + 0.008114323951303959, + -0.0043228366412222385, + -0.008942867629230022, + -0.09222051501274109, + 0.0035123047418892384, + 0.02319922298192978, + 0.002325776033103466, + -0.010744050145149231, + -0.0185701847076416, + -0.03252934664487839, + -0.03130454197525978, + -0.03674411028623581, + -0.021181898191571236, + -0.02665749192237854, + -0.014481502585113049, + -0.025504736229777336, + -0.027648141607642174, + 0.008343975059688091, + -0.0301157608628273, + -0.04910021647810936, + 0.0067994617857038975, + 0.018480125814676285, + -0.07752286642789841, + -0.00562419043853879, + -0.017786670476198196, + 0.014427467249333858, + 0.02800837904214859, + 0.0001226351596415043, + -0.0037171891890466213, + -0.026729539036750793, + 0.000228384233196266, + -0.011878794990479946, + 0.04488545283675194, + -0.015850400552153587, + 0.0019914316944777966, + 0.0034672750625759363, + -0.03814903274178505, + -0.01878632791340351, + 0.03303367644548416, + -0.02087569795548916, + 0.008996903896331787, + 0.052702583372592926, + -0.03977009654045105, + -0.02779223583638668, + 0.03696025162935257, + -0.00022979140339884907, + 0.062248844653367996, + 0.024730227887630463, + -0.02062353305518627, + 0.039373837411403656, + -0.03654598072171211, + 0.01535507570952177, + 0.01430138386785984, + 0.043192341923713684, + 0.0005589292268268764, + 0.03476281091570854, + 0.041895490139722824, + 0.0034019823651760817, + -0.02860276773571968, + -0.038509268313646317, + -0.044921476393938065, + 0.023055128753185272, + -0.011734699830412865, + 0.042327772825956345, + -0.02395571954548359, + 0.04031044989824295, + 0.016471808776259422, + 0.009717375971376896, + -0.03209706023335457, + 0.014922792091965675, + 0.04722698777914047, + -0.04376871883869171, + -0.03739253431558609, + -0.006835485342890024, + 0.0033051688224077225, + -0.02654942125082016, + -0.013067574240267277, + -0.020317330956459045, + 0.049244314432144165, + -0.008704211562871933, + -0.03366408869624138, + -0.03649194538593292, + -0.008384501561522484, + 0.01871427893638611, + 0.007524437271058559, + -0.025828948244452477, + 0.0024856310337781906, + -0.02130798250436783, + 0.022082488983869553, + 0.02217254973948002, + 0.02157815918326378, + 0.0002373901370447129, + 0.004153975751250982, + -0.016480814665555954, + 0.005394539795815945, + 0.012437161058187485, + -0.05551242455840111, + 0.05745770037174225, + -0.007655023131519556, + 0.02811644971370697, + -0.05810612812638283, + 0.01170768216252327, + -0.01711122877895832, + 0.020947745069861412, + 0.004025641363114119, + 0.06091597303748131, + 0.012581255286931992, + -0.036347851157188416, + -0.001301353913731873, + -0.049352385103702545, + -0.022352667525410652, + 0.0018777321092784405, + 0.05028899759054184, + 0.025612806901335716, + -0.010221707634627819, + -0.02071359194815159, + -0.00831245444715023, + -0.00906895101070404, + 0.03546527028083801, + 0.009113980457186699, + 0.08033271133899689, + -0.05616085231304169, + 0.03231320157647133, + 0.008699708618223667, + -0.016147594898939133, + -0.01607554778456688, + -0.021776288747787476, + 0.02357747033238411, + -0.03757265582680702, + -0.014130271971225739, + 0.011572593823075294, + 0.03706832230091095, + -0.02752205915749073, + 0.003651896258816123, + -0.022911032661795616, + 0.03901359811425209, + -0.03865336254239082, + -0.02051546238362789, + 0.04135513678193092, + 0.04149923101067543, + 0.016057536005973816, + 0.005336001515388489, + 0.02352343499660492, + 0.04149923101067543, + -0.010906156152486801, + -0.028963005170226097, + 0.026963692158460617, + -0.017903747037053108, + 0.0409228540956974, + -0.014328401535749435, + -0.007857656106352806, + -0.014823727309703827, + -0.010608960874378681, + 0.010662997141480446, + -0.001582788536325097, + -0.038869503885507584, + -0.007569466717541218, + -0.056088805198669434, + -0.004538978450000286, + -0.05363919585943222, + 0.01332874596118927, + -0.027377964928746223, + 0.038401197642087936, + 0.004854185041040182, + -0.0037059318274259567, + -0.0014330653939396143, + 0.023883672431111336, + 0.0203893780708313, + -0.01947077549993992, + -0.005331498570740223, + 0.05439569428563118, + -0.01684105023741722, + 0.03728446364402771, + -0.02719784714281559, + -0.033483970910310745, + -0.034294504672288895, + 0.006385189946740866, + 0.031106410548090935, + -0.004162981640547514, + 0.015886424109339714, + -0.0011640137527137995, + 0.009118483401834965, + 0.014580567367374897, + -0.026621468365192413, + -0.01413927786052227, + -0.022352667525410652, + -0.026531409472227097, + -0.037644702941179276, + 0.03404233604669571, + 0.007389348465949297, + -0.001657087355852127, + -0.003699177410453558, + 0.03919371962547302, + 0.0478033684194088, + -0.020029142498970032, + 0.020479438826441765, + -0.02671152725815773, + -0.000401325843995437, + -0.124785877764225, + 0.014580567367374897, + -0.00792970322072506, + -0.007452390156686306, + -0.013409798964858055, + 0.003442508867010474, + -0.01008661836385727, + -0.030367925763130188, + 0.0220104418694973, + 0.0004812532861251384, + -0.01889439858496189, + 0.030475998297333717, + 0.06196065619587898, + -0.03270946443080902, + -0.0008201005985029042, + 0.007231745403259993, + -0.0053720250725746155, + 0.001777541358023882, + 0.0037442068569362164, + 0.018011819571256638, + 0.01565227098762989, + -0.0041202036663889885, + 0.017930766567587852, + 0.01769661158323288, + 0.02573888935148716, + 0.017291346564888954, + 0.04928033798933029, + -0.029017040506005287, + 0.012031895108520985, + -0.0494244322180748, + 0.013499857857823372, + -0.021452076733112335, + 0.024153849110007286, + 0.05111754313111305, + 0.02492835745215416, + -0.01262628473341465, + 0.00014887894212733954, + -0.02925119362771511, + 0.03670808672904968, + 0.041463207453489304, + 0.035915568470954895, + 0.01014065369963646, + 0.00952825229614973, + 0.023397352546453476, + 0.0362577922642231, + 0.030674127861857414, + -0.0203893780708313, + -0.023775601759552956, + -0.0526665598154068, + 0.024946369230747223, + 0.011437504552304745, + 0.0009726381977088749, + 0.05399943143129349, + 0.026945680379867554, + -0.0006619343184866011, + -0.03449263423681259, + -0.026837609708309174, + 0.0048721968196332455, + 0.0028548731934279203, + 0.010653991252183914, + -0.03696025162935257, + 0.030097749084234238, + -0.0007998373475857079, + -0.06296931952238083, + -0.009375151246786118, + 0.02908908762037754, + -0.01343681663274765, + -0.030205819755792618, + 0.019380716606974602, + 0.001698739710263908, + 0.007596484385430813, + 0.01662490889430046, + 0.013914129696786404, + -0.03771675005555153, + 0.03285355865955353, + 0.027125800028443336, + 0.05115356668829918, + 0.009726381860673428, + -0.03703229874372482, + -0.004894711542874575, + 0.0013745268806815147, + 0.017237311229109764, + -0.01581437699496746, + 0.03333987668156624, + 0.07766696065664291, + 0.02330729365348816, + -0.024045778438448906, + -0.023811625316739082, + -0.05551242455840111, + -0.0039986236952245235, + 0.016633914783596992, + -0.020137213170528412, + 0.015274022705852985, + -0.02817048504948616, + 0.0031025358475744724, + -0.008307951502501965, + -0.03469076380133629, + -0.029647454619407654, + 0.019182587042450905, + -0.027486035600304604, + -0.007078644819557667, + 0.02082166261970997, + 0.011860782280564308, + 0.029863595962524414, + -0.042327772825956345, + 0.028728850185871124, + 0.014409455470740795, + -0.01186978816986084, + 0.032025013118982315, + 0.006718408316373825, + -0.02098376862704754, + 0.009717375971376896, + -0.0077540879137814045, + -0.0024811280891299248, + 0.014130271971225739, + 0.02022727206349373, + 0.026423338800668716, + -0.027540070936083794, + -0.007682040799409151, + -0.01775064691901207, + -5.2065413910895586e-05, + 0.05115356668829918, + 0.019993118941783905, + -0.04366064816713333, + -0.03395227715373039, + -0.01165364682674408, + 0.02995365485548973, + 0.05309884250164032, + 0.000938303186558187, + 0.03587954491376877, + 0.024406014010310173, + 0.0012675817124545574, + -0.010356795974075794, + 0.004372369032353163, + 0.040994901210069656, + 0.0030957814306020737, + -0.023055128753185272, + 0.07330810278654099, + -0.027233870700001717, + -0.03216910734772682, + -0.01424734853208065, + 0.007321804296225309, + -0.0022109507117420435, + -0.013373775407671928, + 0.021163886412978172, + 0.04250789433717728, + 0.010428843088448048, + -0.016210636124014854, + 0.0011178584536537528, + 0.017660588026046753, + 0.01916457526385784, + -0.027648141607642174, + -0.0017842957749962807, + 0.0036181241739541292, + 0.0002511804341338575, + -0.02590099535882473, + -0.02255079708993435, + -0.006578817032277584, + -0.019074516370892525, + 0.0195788461714983, + 0.043408483266830444, + -0.04647049307823181, + -0.016120577231049538, + 0.006560804788023233, + 0.026513397693634033, + -0.00448044016957283, + -0.03033190220594406, + 0.038401197642087936, + -0.020155224949121475, + -0.004169736057519913, + -0.004741611424833536, + 0.02757609449326992, + -0.016814032569527626, + 0.029989678412675858, + 0.028566744178533554, + -0.02217254973948002, + 0.031376589089632034, + -0.03152068331837654, + 0.05317088961601257, + -0.010852120816707611, + 0.030475998297333717, + 0.012905468232929707, + 0.01900246925652027, + -0.017084209248423576, + 0.026135148480534554, + 0.06275317817926407, + 0.0677964836359024, + 0.04250789433717728, + -0.011968853883445263, + 0.005106350872665644, + -0.014265360310673714, + 0.009249068796634674, + 0.027864282950758934, + -0.017624564468860626, + 0.0055701551027596, + 0.04279608279466629, + -0.031052375212311745, + -0.03811300918459892, + -0.025234557688236237, + 0.04765927419066429, + 0.01710222288966179, + 0.00674542598426342, + -0.024622157216072083, + -0.01792176067829132, + 0.03144863620400429, + 0.03940986096858978, + -0.019200598821043968, + -0.004876699764281511, + -0.022730914875864983, + 0.009906500577926636, + -0.008465554565191269, + 0.024135837331414223, + -0.03476281091570854, + 0.04034647345542908, + 0.0064482311718165874, + 0.003012476721778512, + 0.015895429998636246, + -0.007880170829594135, + -0.01812889613211155, + 0.04791143909096718, + -0.023019105195999146, + -0.020587509498000145, + -0.022640855982899666, + -0.013517869636416435, + 0.01871427893638611, + -0.03406034782528877, + 0.018930422142148018, + -0.02779223583638668, + -0.00669139064848423, + -0.042111631482839584, + 0.010581943206489086, + -0.05464785918593407, + -0.0026499887462705374, + 0.0423998199403286, + 0.03912166878581047, + 0.016093559563159943, + -0.022208573296666145, + -0.012608272954821587, + -0.006205071695148945, + -0.0006917664431966841, + 0.0784594863653183, + 0.01894843392074108, + -0.037644702941179276, + 0.033429935574531555 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换连杆大端轴承", + "编号": "MT004", + "内容": "表 4.6 MT004 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT004020201连杆大端轴承更换连杆大端轴承2A/12000hJT级
安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。
安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。
序号名称规格/型号数量及单位备注
1液压拉伸器HYTORC RS-201套
2扭矩扳手Norbar 1500N·m1把精度±2%
3轴承安装导向套OEM-MAN-BW-BG-041个
4内窥镜GE Mentor Visual iQ1台
2)备品备件
名称规格/型号消耗数量备注
1连杆大端轴承上瓦MAN 5L35MC-BRG-UP1副原厂高锡合金
2连杆大端轴承下瓦MAN 5L35MC-BRG-DN1副
3连杆螺栓M30 ×2.0 Grade 12.92根次性使用,强制更换
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\n\n
1轴承装配润滑脂Kluber Isoflex LDS18 Special A10g仅涂瓦背
2螺纹锁固胶Loctite 2701少量用于螺栓螺纹(如适用)
3清洗剂Brulin 815GD200mL清洁连杆结合面
\n4)人力人员\n\n
序号专业人数技能等级备注
1机械专业3总工+2x工程师总工监督关键步骤
\n修理步骤及工艺\n更换前提确认\n1)主机已完成停机冷却,滑油系统泄压;\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\n拆卸旧轴承\n1)拆连杆盖\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\n(2)取下螺栓及连杆大端盖,放置于专用托架。\n2)取出旧轴承\n(1)轻敲连杆体侧面,使下瓦自然脱落;\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\n安装新轴承\n1)清洁与检查\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\n(2)目视检查新瓦背面涂层均匀,无裂纹。\n2)装配\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\n(2)将下瓦装入连杆盖,同样对准定位;\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\n3)紧固螺栓\n(1)安装新连杆螺栓,手工旋入到底;\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\n(3)最终用角度法复核(如适用)。\n图 MT004.1 连杆大端轴承结构分解图\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.6 MT004 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT004020201连杆大端轴承更换连杆大端轴承2A/12000hJT级
安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。
安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。
序号名称规格/型号数量及单位备注
1液压拉伸器HYTORC RS-201套
2扭矩扳手Norbar 1500N·m1把精度±2%
3轴承安装导向套OEM-MAN-BW-BG-041个
4内窥镜GE Mentor Visual iQ1台
2)备品备件
名称规格/型号消耗数量备注
1连杆大端轴承上瓦MAN 5L35MC-BRG-UP1副原厂高锡合金
2连杆大端轴承下瓦MAN 5L35MC-BRG-DN1副
3连杆螺栓M30 ×2.0 Grade 12.92根次性使用,强制更换
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1轴承装配润滑脂Kluber Isoflex LDS18 Special A10g仅涂瓦背
2螺纹锁固胶Loctite 2701少量用于螺栓螺纹(如适用)
3清洗剂Brulin 815GD200mL清洁连杆结合面
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业3总工+2x工程师总工监督关键步骤
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成停机冷却,滑油系统泄压;\\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\\n拆卸旧轴承\\n1)拆连杆盖\\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\\n(2)取下螺栓及连杆大端盖,放置于专用托架。\\n2)取出旧轴承\\n(1)轻敲连杆体侧面,使下瓦自然脱落;\\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\\n安装新轴承\\n1)清洁与检查\\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\\n(2)目视检查新瓦背面涂层均匀,无裂纹。\\n2)装配\\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\\n(2)将下瓦装入连杆盖,同样对准定位;\\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\\n3)紧固螺栓\\n(1)安装新连杆螺栓,手工旋入到底;\\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\\n(3)最终用角度法复核(如适用)。\\n图 MT004.1 连杆大端轴承结构分解图\\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3c8cb01b-bfd0-4e6d-9fd7-d7490b0cc28f.pdf#page=29\"}]", + "embedding": [ + -0.02486521191895008, + -0.010594991967082024, + -0.05899505689740181, + -0.009317276068031788, + -0.012269900180399418, + -0.004153772722929716, + 0.01807943917810917, + 0.0073073860257864, + -0.03573776036500931, + -0.04134630784392357, + 0.024731218814849854, + 0.013782103545963764, + 0.0034431330859661102, + 0.03344074264168739, + -0.02540118247270584, + -0.047739673405885696, + 0.0024082788731902838, + -0.009704897180199623, + 0.037785932421684265, + -0.018041156232357025, + -0.015830276533961296, + 0.008790875785052776, + -0.02469293400645256, + 0.008805232122540474, + -0.0065130009315907955, + 0.002128330059349537, + 0.028176743537187576, + 0.027717340737581253, + 0.03943212702870369, + -0.0011156086111441255, + -0.04192056506872177, + -0.010078162886202335, + -0.011245813220739365, + -0.03705854341387749, + 0.008757377974689007, + -0.050189826637506485, + 0.007235604338347912, + 0.0016964429523795843, + -0.06998245418071747, + 0.035220928490161896, + -0.01399266254156828, + -0.012949434109032154, + -0.009652257896959782, + -0.007757218554615974, + 0.00189384282566607, + -0.03422555699944496, + 0.0005951906787231565, + -0.01831871271133423, + 0.00690540811046958, + -0.005780826788395643, + 0.00275163515470922, + -0.006843197159469128, + 0.02063487097620964, + -0.03416813164949417, + -0.0017347264802083373, + 0.03323018178343773, + 0.020443452522158623, + -0.049539003521203995, + -0.050496093928813934, + -0.02553517371416092, + -0.012537885457277298, + 0.011073537170886993, + 0.023525284603238106, + -0.010135588236153126, + 0.039814963936805725, + 0.08797575533390045, + 0.004297336097806692, + 0.0211708415299654, + -0.005441059358417988, + -0.04245653375983238, + -0.016557665541768074, + 0.009786250069737434, + -0.018232574686408043, + 0.001741904648952186, + -0.05394161865115166, + 0.036120593547821045, + 0.01825171522796154, + -0.02553517371416092, + -0.0010300686117261648, + 0.015763280913233757, + 0.06795342266559601, + 0.0030698678456246853, + 0.026760250329971313, + -0.000855399644933641, + -0.049117885529994965, + 0.04081033915281296, + -0.024118680506944656, + 0.009135428816080093, + -0.062249165028333664, + 0.02880842424929142, + 0.015935556963086128, + 0.005838252138346434, + 0.026702824980020523, + 0.028846707195043564, + -0.024654651060700417, + -0.011255384422838688, + -0.014988036826252937, + -0.012480460107326508, + 0.027411071583628654, + 0.021247409284114838, + -0.007350455038249493, + 0.033670444041490555, + 0.015897272154688835, + -0.04486840218305588, + 0.026396555826067924, + -0.004742383491247892, + 0.002342479070648551, + 0.04211198166012764, + -0.03669485077261925, + 0.004790238104760647, + 0.0026989951729774475, + 0.041422877460718155, + 0.004986441694200039, + -0.01282501220703125, + -0.010059021413326263, + -0.03763279691338539, + -0.021515393629670143, + -0.061100658029317856, + 0.06178976222872734, + -0.012413463555276394, + 0.022529909387230873, + 0.03740309551358223, + 0.02785133384168148, + -0.031698837876319885, + 0.02153453603386879, + 0.005359706934541464, + 0.05149146914482117, + 0.02750677987933159, + -0.01386824157088995, + 0.016796939074993134, + 0.03100973181426525, + 0.032119955867528915, + -0.01801244355738163, + 0.00855638924986124, + -0.03690540790557861, + -0.03845589607954025, + -0.03870473802089691, + -0.035871751606464386, + -0.002658318728208542, + -0.02069229632616043, + -0.005307066719979048, + -0.0068144844844937325, + -0.04104004055261612, + -0.004677779972553253, + 0.0027540279552340508, + -0.033498167991638184, + 0.03841761127114296, + -0.0036800128873437643, + 0.02176423743367195, + -0.027813049033284187, + -0.005063008517026901, + 0.03864731267094612, + 0.007541873026639223, + -0.025516033172607422, + 0.034512683749198914, + -0.05700431019067764, + -0.02170681208372116, + 0.04310735687613487, + -0.01091083139181137, + 0.007197320461273193, + 0.05482214316725731, + 0.09456054121255875, + -0.033670444041490555, + -0.01962035521864891, + 0.017285054549574852, + 0.03129686042666435, + 0.04180571436882019, + 0.022893603891134262, + 0.039508696645498276, + -0.027640772983431816, + 0.030760888010263443, + 0.00041543709812685847, + 0.0013339448487386107, + 0.030263202264904976, + 0.03129686042666435, + 0.0051443614065647125, + 0.03437868878245354, + 0.0055702668614685535, + 0.006565640680491924, + -0.007240389473736286, + -0.02164938673377037, + 0.04218854755163193, + -0.0014332430437207222, + -0.02601371891796589, + 0.009944169782102108, + 0.0465145967900753, + 0.026090286672115326, + -0.015332589857280254, + 0.006589568220078945, + 0.015275164507329464, + -0.02790875919163227, + 0.02928696945309639, + 0.023601852357387543, + -0.023831553757190704, + 0.01181049644947052, + -0.004897910635918379, + -0.039700113236904144, + -0.006675706245005131, + 0.04574892669916153, + -0.020960282534360886, + -0.0018328282749280334, + -0.02080714702606201, + 0.040465787053108215, + 0.025860585272312164, + -0.03173711895942688, + 0.021879088133573532, + -0.001929733669385314, + -0.042494818568229675, + 0.026626257225871086, + -0.011954059824347496, + -0.008599458262324333, + -0.009259850718080997, + 0.03445525839924812, + -0.013198277913033962, + -0.0190748143941164, + 0.0022479663603007793, + 0.006847982294857502, + -0.04073376953601837, + -0.031239433214068413, + -0.015906844288110733, + -0.03192853927612305, + 0.03853246197104454, + -0.024539800360798836, + 0.025573458522558212, + 0.035948317497968674, + -0.02063487097620964, + 0.056506622582674026, + 0.021630244329571724, + -0.004759132396429777, + -0.009953740984201431, + -0.009432126767933369, + 0.03566119074821472, + 0.022338492795825005, + -0.006431648042052984, + 0.08613814413547516, + 0.022759612649679184, + 0.0022156646009534597, + 0.021477110683918, + 0.00787685438990593, + 0.0035675547551363707, + 0.005900463089346886, + -0.016117403283715248, + 0.05742542818188667, + -0.0044408999383449554, + 0.016012124717235565, + 0.005393204744905233, + -0.04467698559165001, + 0.016624661162495613, + -0.029497528448700905, + 0.00817355327308178, + -0.0060153137892484665, + -0.010288722813129425, + -0.021266549825668335, + -0.02798532508313656, + 0.031086299568414688, + 0.0006705615087412298, + 0.02959323860704899, + -0.023697560653090477, + -0.00795820727944374, + -0.03973839804530144, + -0.00404370715841651, + 0.07714149355888367, + -0.0025315042585134506, + 0.03380443528294563, + -0.014538204297423363, + 0.06213431432843208, + -0.022089648991823196, + 0.029057268053293228, + -0.019170522689819336, + 0.00927899219095707, + -0.0656181275844574, + 0.019457649439573288, + -0.025075770914554596, + 0.01165736187249422, + 0.05482214316725731, + 0.029727229848504066, + 0.02630084753036499, + -0.0038068273570388556, + 0.07319828122854233, + -0.014385069720447063, + 0.021974798291921616, + 0.016433244571089745, + 0.038264479488134384, + -0.027545064687728882, + 0.0009768304880708456, + 0.009767108596861362, + -0.0841473937034607, + -0.023601852357387543, + 0.006067953538149595, + -0.04119317606091499, + -0.013648110441863537, + -0.05463072657585144, + 0.07909395545721054, + 0.006795342545956373, + -0.0095374071970582, + 0.011370235122740269, + -0.025726592168211937, + -0.17013239860534668, + 0.05815281718969345, + -0.012317754328250885, + 0.010623704642057419, + 0.004694528877735138, + 0.012394322082400322, + -0.03411070629954338, + -0.019237518310546875, + -0.0041753072291612625, + -0.008551603183150291, + -0.03508693724870682, + -0.06971447169780731, + -0.027832191437482834, + -0.026855958625674248, + -0.0190748143941164, + -0.016059977933764458, + -0.048160795122385025, + 0.005527197383344173, + 0.010604562237858772, + -0.052525125443935394, + -0.02725793793797493, + -0.011102249845862389, + 0.029746372252702713, + -0.011178816668689251, + -0.01112139131873846, + -0.0173041969537735, + 0.026875101029872894, + -0.0334024578332901, + -0.02452065795660019, + -0.008723880164325237, + -0.006723560858517885, + 0.057655129581689835, + -0.01706492342054844, + 0.02057744562625885, + -0.007316956762224436, + 0.019945766776800156, + 0.01598341204226017, + 0.015351731330156326, + -0.012365609407424927, + 0.018931249156594276, + 0.039700113236904144, + 0.048275645822286606, + -0.01365768164396286, + 0.01854841411113739, + 0.0009899904252961278, + -0.1038251742720604, + 0.0030196204315871, + -0.02237677574157715, + -0.02886584959924221, + 0.024290956556797028, + -0.022644761949777603, + 0.009073218330740929, + 0.017916733399033546, + -0.0169979277998209, + -0.002170202787965536, + 0.008656883612275124, + 0.03210081532597542, + 0.06967619061470032, + -0.0075275166891515255, + 0.015973839908838272, + -0.028483012691140175, + -0.0146147720515728, + -0.00807784404605627, + -0.0244440920650959, + -0.06018184870481491, + -0.011666933074593544, + -0.003191896714270115, + -0.027334503829479218, + 0.008029988966882229, + -0.03445525839924812, + 0.024846069514751434, + 0.04107832536101341, + 0.031220292672514915, + -0.022510768845677376, + -0.01741904765367508, + 0.04862019792199135, + 0.00682884082198143, + -0.01855798438191414, + -0.01344712171703577, + -0.1270250529050827, + 0.035278353840112686, + 0.07189663499593735, + -0.022166214883327484, + -0.02218535728752613, + -0.01926623098552227, + 0.009767108596861362, + 0.03129686042666435, + 0.0001516390184406191, + 0.030454618856310844, + 0.2361333668231964, + 0.03914500027894974, + -0.0014990429626777768, + -0.005340564996004105, + 0.06244058534502983, + -0.037785932421684265, + 0.01908438466489315, + -0.045059818774461746, + 0.04574892669916153, + -0.04061891883611679, + -0.020060617476701736, + 0.0092454943805933, + 0.017093636095523834, + -0.018356995657086372, + -0.020309459418058395, + 0.0003924070915672928, + 9.271813905797899e-05, + 0.026205137372016907, + 0.11553996056318283, + -0.0030076568946242332, + 0.011973202228546143, + 0.0009684559190645814, + -0.04647631570696831, + -0.02212793193757534, + -0.10267666727304459, + -0.05394161865115166, + -0.02898070029914379, + 0.02237677574157715, + 0.02832987904548645, + 0.041537728160619736, + 0.006551284343004227, + 0.0030244060326367617, + 0.025669166818261147, + -0.010604562237858772, + -0.01112139131873846, + 0.013016430661082268, + -0.019543787464499474, + -0.015964269638061523, + 0.01530387718230486, + 0.035642050206661224, + 0.023008454591035843, + -0.023754986003041267, + 0.009408199228346348, + 0.021993938833475113, + -0.02635827288031578, + -0.049653854221105576, + -0.013552401214838028, + 0.019046101719141006, + 0.020902857184410095, + 0.026702824980020523, + -0.030167492106556892, + -0.0018974319100379944, + -0.04743340611457825, + -0.0014655448030680418, + 0.01031743548810482, + -0.03233051672577858, + -0.0009170123375952244, + -0.044944968074560165, + 0.032770778983831406, + -0.002591322408989072, + 0.045289523899555206, + 0.014681768603622913, + -0.017495613545179367, + -0.018471846356987953, + -0.0022252353373914957, + -0.029746372252702713, + -0.021151699125766754, + 0.047816239297389984, + -0.02164938673377037, + 0.008733450435101986, + 0.0199840497225523, + -0.0086473124101758, + -0.0187876857817173, + -5.783667802461423e-05, + 0.03275163844227791, + 0.01777317002415657, + 0.004991226829588413, + 0.07044185698032379, + -0.020443452522158623, + 0.0027707768604159355, + -0.04842877760529518, + 0.007881640456616879, + -0.03060775436460972, + -0.01569628342986107, + 0.010212155990302563, + -0.023640135303139687, + -0.0022336100228130817, + 0.02869357354938984, + -0.030282342806458473, + -0.001991944620385766, + -0.031583987176418304, + 0.008671239949762821, + -0.013533259741961956, + 0.005359706934541464, + -0.02344871684908867, + 0.03407242149114609, + 0.04092518985271454, + -0.030014358460903168, + -0.004029350820928812, + 0.027277078479528427, + 0.03114372491836548, + -0.01973520591855049, + 0.007695007603615522, + -0.03167969360947609, + 0.03765194118022919, + -0.011312809772789478, + -0.03583346679806709, + 0.0052879247814416885, + 0.0047687035985291, + -0.0021055990364402533, + 0.017332909628748894, + 0.027066519483923912, + -0.01338969636708498, + -0.04525123909115791, + -0.012375179678201675, + 0.031220292672514915, + -0.00480220140889287, + 0.042801085859537125, + -0.01127452589571476, + -0.0012549848761409521, + -0.03589089214801788, + 0.03005264140665531, + -0.010164300911128521, + 0.015102887526154518, + -0.007556229364126921, + -0.03334503248333931, + -0.013552401214838028, + -0.0035268785431981087, + -0.011264954693615437, + 0.05972244590520859, + -0.01753389835357666, + -0.020118042826652527, + 0.0015504865441471338, + 0.011025682091712952, + 0.05761684849858284, + 0.0025386824272572994, + 0.00397910363972187, + 0.036541715264320374, + -0.0037996491882950068, + -0.013533259741961956, + -0.037537090480327606, + -0.0780985876917839, + -0.002174988156184554, + -0.03242622688412666, + 0.011102249845862389, + -0.05685117468237877, + -0.003924070857465267, + 0.014011804945766926, + -0.029267827048897743, + 0.03275163844227791, + 0.0023951190523803234, + 0.026702824980020523, + -0.009221566841006279, + -0.055740948766469955, + -0.026587974280118942, + -0.005354921333491802, + 0.005790397524833679, + 0.032885629683732986, + 0.0022204499691724777, + -0.032828204333782196, + -0.019964907318353653, + 0.015830276533961296, + -0.008465465158224106, + 0.02528632991015911, + 0.06228744983673096, + 0.03851332142949104, + -0.03363215923309326, + 0.05880364030599594, + 0.07427021861076355, + -0.04502153769135475, + 0.02677939273416996, + -0.032885629683732986, + -0.03213910013437271, + 0.02720051258802414, + 0.012250758707523346, + 0.025611741468310356, + -0.015102887526154518, + 0.002852129749953747, + -0.023812411352992058, + 0.059377893805503845, + -0.008637742139399052, + 0.05620035529136658, + -0.036771416664123535, + -0.048160795122385025, + -0.028961557894945145, + 0.026741107925772667, + -0.07197320461273193, + -0.004577285144478083, + 0.036522574722766876, + 0.02034774422645569, + -0.03311533108353615, + 0.09080874919891357, + 0.0016103048110380769, + 0.007948636077344418, + 0.01085340604186058, + 0.01317913644015789, + 0.05451587587594986, + -0.03412984684109688, + -0.006718775257468224, + -0.07423193752765656, + -0.03661828115582466, + 0.009078003466129303, + -0.029842082411050797, + 0.003890572814270854, + -0.012384750880300999, + -0.026817675679922104, + -0.04754825681447983, + -0.012480460107326508, + 0.002708566142246127, + -0.02731536328792572, + -0.0014535811496898532, + -0.023219015449285507, + -0.013743819668889046, + -0.010164300911128521, + -0.02832987904548645, + -0.005895677488297224, + 0.02099856548011303, + 0.02898070029914379, + -0.06404849886894226, + -0.017380762845277786, + -0.0003648907586466521, + 0.008283617906272411, + 0.009154570288956165, + 0.011044824495911598, + -0.019160952419042587, + 0.03711596876382828, + -0.004402616061270237, + -0.003560376586392522, + 0.05045780912041664, + -0.014318074099719524, + 0.007580156903713942, + 0.03035891056060791, + 0.020654013380408287, + -0.02635827288031578, + 0.003318711183965206, + 0.001208326779305935, + -0.018270857632160187, + 0.05688945949077606, + 0.01986919902265072, + 0.01735205017030239, + -0.008116126991808414, + -0.019696922972798347, + 0.027468496933579445, + 0.016433244571089745, + -0.023544427007436752, + 0.004261445254087448, + -0.039700113236904144, + -0.028674431145191193, + 0.011848780326545238, + 0.01633753441274166, + -0.022510768845677376, + 0.025133196264505386, + 0.04502153769135475, + 0.0074461642652750015, + -0.04460041597485542, + -0.04199713096022606, + -0.026090286672115326, + 0.019907481968402863, + -0.04777795821428299, + 0.025516033172607422, + 0.002137900795787573, + 0.033727869391441345, + -0.026741107925772667, + -0.002713351510465145, + 0.01509331725537777, + -0.04203541576862335, + 0.03973839804530144, + -0.014930611476302147, + -0.008034775033593178, + -0.06875737756490707, + -0.04230339825153351, + 0.00023673035320825875, + -0.0381687693297863, + -0.0518743060529232, + -0.04364332556724548, + -0.01843356341123581, + 0.005383634008467197, + -0.005110863130539656, + -0.002352049807086587, + 0.006163662765175104, + -0.022951029241085052, + -0.03684798255562782, + -0.0024262242950499058, + 0.028483012691140175, + 0.0009110305109061301, + 0.018031584098935127, + 0.013026001863181591, + 0.038207054138183594, + -0.001697639236226678, + -0.02243420109152794, + 0.0369819775223732, + -0.013322699815034866, + -0.04015951603651047, + 0.025209764018654823, + -0.01813686452805996, + 0.03924071043729782, + -0.015514437109231949, + 0.0501132570207119, + 0.01825171522796154, + 0.01413622684776783, + -0.0016330356011167169, + 0.010633274912834167, + -0.03246450796723366, + -0.029191259294748306, + -0.018586697056889534, + -0.02128569222986698, + -0.00621630297973752, + 0.008475036360323429, + 0.04069548845291138, + 0.006685276981443167, + 0.027104802429676056, + -0.08774605393409729, + -0.030703462660312653, + 0.01794544607400894, + -0.006857553496956825, + 0.00828840397298336, + 0.0005521215498447418, + -0.018156006932258606, + -0.00811134185642004, + 0.04597862809896469, + -0.030875738710165024, + 0.0003167371323797852, + -0.0055080559104681015, + -0.04337533935904503, + 0.004905088804662228, + 0.02189823053777218, + 0.042609669268131256, + 0.05497527867555618, + -0.05719572678208351, + -0.018031584098935127, + -0.011092678643763065, + -0.0049385870806872845, + 0.0006538124289363623, + -0.017399905249476433, + 0.034570109099149704, + 0.026626257225871086, + -0.025918010622262955, + -0.010480141267180443, + -0.01885468326508999, + 0.0274302139878273, + -0.01824214495718479, + 0.036292873322963715, + 0.018328282982110977, + -0.004342798143625259, + 0.016241826117038727, + -0.03801563382148743, + -0.002476471709087491, + -0.014968895353376865, + 0.043337058275938034, + 0.019754348322749138, + 0.001201746752485633, + -0.02153453603386879, + -0.015954699367284775, + -0.020902857184410095, + 0.023467859253287315, + -0.022817037999629974, + -0.03144999220967293, + -0.013016430661082268, + -0.0033115330152213573, + 0.020921997725963593, + -0.012786729261279106, + -0.021017707884311676, + -0.0058095394633710384, + 0.0316031277179718, + 0.01365768164396286, + 0.03166055306792259, + 0.004239910747855902, + -0.023525284603238106, + 0.005522412247955799, + 0.006111023016273975, + 0.021457968279719353, + 0.01973520591855049, + 0.04287765547633171, + 0.051682885736227036, + -0.01574413850903511, + 0.025554316118359566, + -0.030339768156409264, + 0.0019022173946723342, + 0.009982453659176826, + 0.03541234880685806, + -0.016902217641472816, + -0.04417929798364639, + -0.024616368114948273, + -0.05554953217506409, + -0.0013471049023792148, + -0.015227309428155422, + -0.014241506345570087, + -0.03830276057124138, + 0.013648110441863537, + 0.04689743369817734, + -0.049117885529994965, + 0.02582230232656002, + -0.010786409489810467, + 0.020079758018255234, + -0.15596747398376465, + 0.027640772983431816, + -0.023238157853484154, + -0.024424949660897255, + -0.024597225710749626, + -0.053175948560237885, + -0.02291274629533291, + -0.03131600096821785, + 0.010384432040154934, + -0.008929654024541378, + -0.008752592839300632, + -0.007412665989249945, + 0.04946243762969971, + -0.003112936858087778, + -0.018691977486014366, + 0.036350298672914505, + -0.01240389235317707, + -0.009633115492761135, + 0.011236242018640041, + 0.011915776878595352, + -0.0070202588103711605, + -0.027717340737581253, + -0.0010527995182201266, + -0.018596269190311432, + 0.024195248261094093, + 0.020615728572010994, + 0.020137183368206024, + 0.003620194736868143, + -0.008120913058519363, + -0.05202743783593178, + -0.017313767224550247, + -0.03267506882548332, + 0.03294305503368378, + 0.019850056618452072, + -0.013226990588009357, + -0.009709683246910572, + 0.018940821290016174, + 0.0017885628622025251, + 0.032005105167627335, + -0.017620036378502846, + 0.0036130165681242943, + 0.019227948039770126, + 0.015198596753180027, + 0.04961556941270828, + 0.007025044411420822, + 0.05688945949077606, + -0.010011166334152222, + -0.026702824980020523, + -0.03393843024969101, + 0.007005902472883463, + 0.02511405386030674, + 0.02700909413397312, + 0.00930291973054409, + 0.027813049033284187, + 0.010441857390105724, + 0.038857873529195786, + -0.06278513371944427, + -0.006374222692102194, + -0.00045820706873200834, + 0.04241824895143509, + -0.015045462176203728, + -0.01482533197849989, + -0.03256021812558174, + -0.04490668699145317, + -0.04456213489174843, + 0.033191896975040436, + -0.004560536239296198, + -0.012537885457277298, + 0.018184719607234, + -0.011207529343664646, + -0.006747487932443619, + -0.01569628342986107, + 0.0040317438542842865, + -0.007135109510272741, + 0.0030052640940994024, + -0.025516033172607422, + 0.03711596876382828, + -0.041537728160619736, + -0.04383474588394165, + -0.03422555699944496, + 0.022108789533376694, + -0.0011640613665804267, + 0.006709204521030188, + -0.009848461486399174, + 0.024673793464899063, + 0.024903494864702225, + -0.03185197338461876, + -0.03924071043729782, + 0.0405423529446125, + -0.005967459175735712, + -0.02697080932557583, + -0.008350614458322525, + 0.008900941349565983, + -0.007776360027492046, + 0.03376615419983864, + 0.03095230646431446, + -0.044638700783252716, + -0.05087893083691597, + -0.02499920316040516, + -0.035642050206661224, + -0.044408999383449554, + -0.03233051672577858, + 0.018778115510940552, + 0.04586377739906311, + -0.028195885941386223, + 0.017017068341374397, + -0.019591642543673515, + -0.00229582074098289, + -0.005077364854514599, + -0.02725793793797493, + -0.03845589607954025, + 0.01154251117259264, + 0.004919445142149925, + -0.019696922972798347, + -0.0005631879321299493, + 0.007235604338347912, + -0.011102249845862389, + -0.032598502933979034, + -0.0027061733417212963, + -0.04111660644412041, + 0.0020960280671715736, + 0.06603924185037613, + -0.0023687989450991154, + -0.03388100489974022, + 0.001219692174345255, + 0.0044672200456261635, + 0.05868878960609436, + 0.043030787259340286, + 0.03284734487533569, + 0.044830117374658585, + 0.006503429729491472, + 0.036465149372816086, + -0.02683681808412075, + 0.02649226412177086, + -0.0011849976144731045, + -0.013380125164985657, + -0.048581913113594055, + 0.04513638839125633, + -0.055434681475162506, + -0.06071782112121582, + 0.04597862809896469, + 0.014365928247570992, + 0.0009786250302568078, + -0.04735683649778366, + -0.006857553496956825, + -0.020500877872109413, + 0.0045390017330646515, + -0.005474557634443045, + -0.004799808841198683, + 0.008211836218833923, + 0.00966182816773653, + -0.00796299334615469, + 0.016787366941571236, + -0.008297974243760109, + 0.006163662765175104, + -0.01693093031644821, + 0.013561972416937351, + -0.06335938721895218, + -0.02689424343407154, + 0.035278353840112686, + 0.03680970147252083, + -0.03005264140665531, + 0.002682246034964919, + -0.020864572376012802, + 0.016863934695720673, + -0.0014882757095620036, + 0.025267189368605614, + 0.017265912145376205, + -0.017313767224550247, + -0.0016246611485257745, + 0.00035502074752002954, + -0.006412506103515625, + -0.032655928283929825, + -0.006402935367077589, + 0.012375179678201675, + -0.050074975937604904, + 0.04149944335222244, + -0.08093157410621643, + 0.018577126786112785, + -0.0307226050645113, + 0.0050917211920022964, + 0.06255543231964111, + 0.01903652958571911, + -0.025669166818261147, + 0.017811454832553864, + -0.007594513241201639, + -0.0021426863968372345, + 0.03895358368754387, + 0.0016988356364890933, + -0.0006514197448268533, + -0.0025721807032823563, + 0.019428936764597893, + -0.02004147507250309, + -0.0029621950816363096, + 0.04586377739906311, + -0.024769501760601997, + 0.00590524822473526, + -0.022319350391626358, + -0.013542830012738705, + 0.0674174576997757, + 0.02756420709192753, + 0.015466582030057907, + 0.004373903386294842, + 0.032713353633880615, + 0.008364970795810223, + -0.02725793793797493, + -0.008082629181444645, + 0.019754348322749138, + -0.04659116640686989, + 0.04433242976665497, + 0.0038666455075144768, + 0.008604243397712708, + -0.013083427213132381, + 0.048581913113594055, + 0.0199840497225523, + 0.02141968533396721, + 0.012011486105620861, + -0.02230020798742771, + -0.04157600924372673, + 0.0035412348806858063, + -0.009298134595155716, + -0.01213590707629919, + -0.02379326894879341, + -0.0027588133234530687, + 0.062478866428136826, + -0.036599140614271164, + -0.0068862661719322205, + -0.015351731330156326, + -0.022281067445874214, + -0.05183602124452591, + 0.019189665094017982, + -0.005096506793051958, + 0.014231936074793339, + 0.05570266768336296, + -0.02677939273416996, + 0.006637422367930412, + 0.020730579271912575, + -0.01365768164396286, + -0.014117084443569183, + 0.022032223641872406, + 0.011915776878595352, + 0.01854841411113739, + -0.05183602124452591, + 0.05577923357486725 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "连杆大端轴承", + "组成编码": "020201", + "维修项目名称": "更换连杆大端轴承", + "维修项目编号": "MT004", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.19 MT017 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
T017030200连杆大端轴承修复连杆大端轴承异常磨损故障触发ZJ级
安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。
安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。
序号名称规格/型号数量及单位备注
1防爆型扫气箱清洗机器人SCB-CLEANBOT-X11台自动高压水射流
2内窥镜(防爆)GE Mentor VisualiQ-Ex1台检查缸套下部
3红外热像仪FLIR T8601台检测局部热点
4可燃气体检测仪MSA Altair 5X1台多气体复合
2)备品备件
名称规格/型号消耗数量备注
1全套活塞环组MAN5L35MC-RING-SET1套含1-4号环
2活塞头(如需更换)MAN5L35MC-PISTON-HEAD1件铸钢整体式
3扫气口密封条Viton Strip 5×10mm若干更换烧损件
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1生物降解清洗剂Envirox SC-905L清除碳化油泥
2耐高温防火毯Fiberglass Mat1200°C2m局部隔热防护
3防锈剂CRC 3-36200mL修复后防护
4)人力人员人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工主导故障分析
2安全监督1高级安全员全程监护受限空间作业
修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头;
2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。
验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_6daa944c-849a-4f46-8a4a-342424b06d3b.pdf#page=48\"}, {\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.6 MT004 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT004020201连杆大端轴承更换连杆大端轴承2A/12000hJT级
安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。
安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。
序号名称规格/型号数量及单位备注
1液压拉伸器HYTORC RS-201套
2扭矩扳手Norbar 1500N·m1把精度±2%
3轴承安装导向套OEM-MAN-BW-BG-041个
4内窥镜GE Mentor Visual iQ1台
2)备品备件
名称规格/型号消耗数量备注
1连杆大端轴承上瓦MAN 5L35MC-BRG-UP1副原厂高锡合金
2连杆大端轴承下瓦MAN 5L35MC-BRG-DN1副
3连杆螺栓M30 ×2.0 Grade 12.92根次性使用,强制更换
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1轴承装配润滑脂Kluber Isoflex LDS18 Special A10g仅涂瓦背
2螺纹锁固胶Loctite 2701少量用于螺栓螺纹(如适用)
3清洗剂Brulin 815GD200mL清洁连杆结合面
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业3总工+2x工程师总工监督关键步骤
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成停机冷却,滑油系统泄压;\\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\\n拆卸旧轴承\\n1)拆连杆盖\\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\\n(2)取下螺栓及连杆大端盖,放置于专用托架。\\n2)取出旧轴承\\n(1)轻敲连杆体侧面,使下瓦自然脱落;\\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\\n安装新轴承\\n1)清洁与检查\\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\\n(2)目视检查新瓦背面涂层均匀,无裂纹。\\n2)装配\\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\\n(2)将下瓦装入连杆盖,同样对准定位;\\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\\n3)紧固螺栓\\n(1)安装新连杆螺栓,手工旋入到底;\\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\\n(3)最终用角度法复核(如适用)。\\n图 MT004.1 连杆大端轴承结构分解图\\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3c8cb01b-bfd0-4e6d-9fd7-d7490b0cc28f.pdf#page=29\"}]", + "embedding": [ + -0.008267118595540524, + -0.015727464109659195, + -0.0471452958881855, + -0.0052996729500591755, + -0.011823417618870735, + 0.02299770526587963, + 0.029118062928318977, + 0.005290399771183729, + -0.04169261455535889, + -0.023257357999682426, + 0.010107862763106823, + 0.027560153976082802, + 0.02761579304933548, + 0.0346820242702961, + -0.03998633474111557, + -0.038873542100191116, + -0.009978036396205425, + -0.029544632881879807, + 0.037334177643060684, + -0.0020007076673209667, + -0.01793450117111206, + 0.026985211297869682, + -0.05779100954532623, + 0.005494411569088697, + -0.00028616725467145443, + -0.006004441529512405, + 0.026948118582367897, + 0.03275318443775177, + -0.015486358664929867, + 0.011471033096313477, + -0.029080970212817192, + 0.0036374395713210106, + 0.013168041594326496, + -0.04354726895689964, + 0.00775245251134038, + -0.048183903098106384, + 0.009166626259684563, + 0.01217580121010542, + -0.0785631313920021, + 0.026632826775312424, + -0.017545023933053017, + 0.010608619078993797, + -0.011786323972046375, + -0.0007007113308645785, + 0.008902337402105331, + -0.05949728935956955, + -0.014113914221525192, + -0.036555223166942596, + -0.0056427838280797005, + -0.011072282679378986, + 0.006393918767571449, + -0.013316413387656212, + 0.014800135977566242, + -0.0046667722053825855, + -0.012314900755882263, + 0.033717602491378784, + -0.01283420342952013, + -0.04499389976263046, + -0.06502415984869003, + -0.013316413387656212, + 0.013891356065869331, + 0.04721948131918907, + 0.020697934553027153, + -0.02494509145617485, + 0.031640391796827316, + 0.05764263495802879, + -0.006704573053866625, + 0.04006052017211914, + -0.00011859640653710812, + -0.03802040219306946, + -0.004541583359241486, + 0.0034937039017677307, + -0.024907998740673065, + -0.005364585667848587, + -0.05508321523666382, + 0.01980770193040371, + 0.0003306499856989831, + -0.00954219326376915, + -0.013835716061294079, + -0.006403191946446896, + 0.055491238832473755, + -0.011072282679378986, + 0.03138073906302452, + -0.021847819909453392, + -0.063614621758461, + 0.037352725863456726, + -0.0446600615978241, + 0.023034797981381416, + -0.07337009906768799, + 0.04781297221779823, + 0.02175508812069893, + 0.0051327538676559925, + 0.041173312813043594, + 0.015050514601171017, + -0.001222912222146988, + -0.03462638333439827, + -0.021365610882639885, + 0.0016436867881566286, + 0.008925520814955235, + 0.04785006493330002, + -0.028598759323358536, + 0.036128655076026917, + -0.0024875542148947716, + -0.03266045078635216, + 0.018045781180262566, + -0.029414808377623558, + -0.006407828535884619, + 0.028672946617007256, + -0.05775391682982445, + 0.014725950546562672, + 0.007010590750724077, + 0.0372970849275589, + -0.0031529113184660673, + -0.005721606779843569, + -0.0066952998749911785, + -0.042694129049777985, + -0.02661428041756153, + -0.03360632434487343, + 0.06313241273164749, + -0.01582947000861168, + 0.032938648015260696, + 0.04258284717798233, + 0.013474059291183949, + -0.02335008978843689, + 0.016367318108677864, + 0.005026111379265785, + 0.0419151745736599, + 0.04870320484042168, + -0.007812729105353355, + 0.025686953216791153, + 0.026855384930968285, + 0.03935575112700462, + -0.01741519756615162, + 0.009570012800395489, + -0.017248278483748436, + -0.056492749601602554, + -0.03080579824745655, + -0.03666650503873825, + 0.014902142807841301, + -0.014577577821910381, + 0.005582507699728012, + -0.020623749122023582, + -0.042397383600473404, + -0.0009435550891794264, + 0.009876030497252941, + -0.051373906433582306, + 0.010923909954726696, + 0.008294939063489437, + -0.007900824770331383, + -0.05348821356892586, + 0.022385669872164726, + 0.03789057582616806, + 0.022367123514413834, + -0.022367123514413834, + 0.024240324273705482, + -0.060610082000494, + -0.035813361406326294, + 0.05385914444923401, + -0.012667284347116947, + 0.03470056876540184, + 0.06331788003444672, + 0.063614621758461, + 0.012936209328472614, + -0.02848748117685318, + 0.02711503766477108, + 0.04351017624139786, + 0.046885646879673004, + 0.042619943618774414, + 0.023034797981381416, + -0.032512079924345016, + 0.0213285181671381, + -0.015644004568457603, + -0.01823124662041664, + 0.019714968279004097, + 0.026558641344308853, + 0.0018395846709609032, + 0.05627019330859184, + 0.0008989274501800537, + 0.0021618306636810303, + -0.01973351463675499, + -0.01952950283885002, + 0.03868807479739189, + 0.007061593700200319, + -0.002520010806620121, + 0.00773854274302721, + 0.052746351808309555, + 0.048554833978414536, + -0.0020065035205334425, + 0.007933281362056732, + 0.021068865433335304, + -0.023257357999682426, + 0.01077553816139698, + 0.03432964161038399, + -0.0608697347342968, + 0.0021247377153486013, + 0.006375371944159269, + -0.046106692403554916, + -0.011044463142752647, + 0.03304992988705635, + -0.01952950283885002, + -0.019121479243040085, + -0.01792522706091404, + 0.022682415321469307, + -0.004254112020134926, + -0.038650982081890106, + 0.024258870631456375, + -0.021068865433335304, + -0.01413246151059866, + 0.011220654472708702, + -0.00634755240753293, + -0.03204841539263725, + -0.0190843865275383, + 0.048109717667102814, + -0.007831275463104248, + -0.00720996642485261, + 0.007279515732079744, + 0.0001866245293058455, + -0.039504121989011765, + -0.022441308945417404, + -0.030713064596056938, + -0.05141099914908409, + 0.06009078025817871, + -0.017693396657705307, + 0.07362975180149078, + 0.051299721002578735, + -0.03846551850438118, + 0.042619943618774414, + 0.011378300376236439, + -0.0002080689591821283, + -0.0066767530515789986, + -0.0018732001772150397, + 0.030193762853741646, + 0.03008248284459114, + -0.0018824734725058079, + 0.07069940119981766, + 0.011498852632939816, + 0.011582312174141407, + 0.011508125811815262, + 0.018759822472929955, + 0.0017468519508838654, + 0.017109179869294167, + 0.009588559158146381, + 0.08494313806295395, + -0.008141929283738136, + 0.018527990207076073, + -0.002888623159378767, + -0.05623310059309006, + 0.02247840352356434, + -0.026503000408411026, + 0.012305627577006817, + 0.005767973139882088, + 0.012212894856929779, + -0.04343599081039429, + -0.03277172893285751, + 0.03913319110870361, + 0.0038901360239833593, + 0.04113622009754181, + -0.009185172617435455, + 0.004706183914095163, + -0.034014347940683365, + -0.003964322153478861, + 0.0335506834089756, + -0.02103177271783352, + 0.03644394502043724, + -0.01532871276140213, + 0.03605446591973305, + -0.003210869152098894, + 0.007710722740739584, + -0.028802771121263504, + 0.008957977406680584, + -0.06309531629085541, + -0.005679877009242773, + -0.014614671468734741, + -0.0020980769768357277, + 0.03013812191784382, + 0.016589878126978874, + 0.018629996106028557, + -0.011962516233325005, + 0.05949728935956955, + -0.01967787556350231, + 0.03787202760577202, + 0.024110497906804085, + 0.03392161428928375, + -0.041321683675050735, + 0.007043047342449427, + 0.002102713566273451, + -0.07047683745622635, + -0.01822197251021862, + 0.0044395774602890015, + 0.0009325430728495121, + -0.020846307277679443, + -0.030917076393961906, + 0.07444579899311066, + 0.005624237470328808, + -0.022515496239066124, + 0.014939235523343086, + -0.04595831781625748, + -0.1446629911661148, + 0.04647762328386307, + -0.009008980356156826, + -0.0017213504761457443, + -0.007506710942834616, + 0.011582312174141407, + -0.02435160242021084, + -0.02609497681260109, + 0.007460344582796097, + 0.002367001725360751, + -0.03384742885828018, + -0.06817706674337387, + -0.05994240567088127, + -0.024407243356108665, + -0.02654009498655796, + -0.009495826438069344, + -0.046737272292375565, + 0.015356532298028469, + 0.010209868662059307, + -0.04299087077379227, + 0.0018476987024769187, + -0.019770609214901924, + -0.013205134309828281, + -0.0036281663924455643, + 0.001630936050787568, + -0.004497535061091185, + 0.044066570699214935, + -0.04006052017211914, + -0.0002131402725353837, + -0.04603250324726105, + -0.012185074388980865, + 0.06302113085985184, + -0.012110888957977295, + 0.010274781845510006, + -0.0015718189533799887, + 0.02090194635093212, + 0.00497047184035182, + 0.005424862261861563, + -0.0042007905431091785, + -0.006672116462141275, + 0.03531260788440704, + 0.04432622343301773, + -0.015078334137797356, + 0.008141929283738136, + -0.018314704298973083, + -0.08301430195569992, + 0.023368636146187782, + -0.016005661338567734, + -0.03557225689291954, + 0.01973351463675499, + -0.012852749787271023, + 0.013705890625715256, + 0.010552979074418545, + -0.02240421622991562, + -0.01243545301258564, + 0.011294840835034847, + 0.04128459095954895, + 0.045809946954250336, + 0.03323539346456528, + -0.025686953216791153, + -0.032641906291246414, + -0.024555614218115807, + -0.0006143540376797318, + -0.05927473306655884, + -0.038131680339574814, + -0.032419346272945404, + 0.007349065039306879, + 0.00951437372714281, + -0.004998291842639446, + -0.06665625423192978, + 0.04098784551024437, + 0.031102541834115982, + 0.030564691871404648, + -0.011304114013910294, + 4.799640737473965e-05, + 0.045216456055641174, + 0.008624139241874218, + -0.011016642674803734, + -0.005383132491260767, + -0.08687198162078857, + 0.009672018699347973, + 0.0713299810886383, + -0.018036507070064545, + 0.004877739120274782, + -0.0281907357275486, + 0.027745619416236877, + 0.03215969353914261, + -0.020048806443810463, + 0.0362955741584301, + 0.2152882069349289, + 0.017749035730957985, + 0.010608619078993797, + -0.000858936517033726, + 0.059682756662368774, + -0.03304992988705635, + 0.02928498201072216, + -0.053636584430933, + 0.028394747525453568, + -0.029822831973433495, + -0.022942066192626953, + -0.007668992970138788, + 0.025575675070285797, + -0.015059787780046463, + -0.04250866174697876, + 0.011137195862829685, + -0.0044465321116149426, + 0.005169847048819065, + 0.10334130376577377, + -0.0057401531375944614, + 0.00791473500430584, + 0.014763043262064457, + -0.04547610878944397, + -0.04851774126291275, + -0.08672360330820084, + -0.061426129192113876, + -0.014345746487379074, + -0.0004349742375779897, + 0.07641173154115677, + 0.03169603273272514, + 0.010256234556436539, + 0.0014582214644178748, + 0.005814339499920607, + -0.021143052726984024, + 0.006927131675183773, + -0.012055248953402042, + -0.03789057582616806, + -0.006162086967378855, + 0.015078334137797356, + 0.03946702927350998, + 0.00607399083673954, + -0.03100981004536152, + -0.022738054394721985, + 0.03212260082364082, + -0.03327248618006706, + -0.06702718138694763, + -0.010840450413525105, + 0.012556005269289017, + 0.02965591289103031, + -0.011304114013910294, + -0.04803553223609924, + 0.01967787556350231, + -0.053747862577438354, + 0.007270242553204298, + -0.008874517865478992, + -0.023368636146187782, + -0.0012460954021662474, + -0.030453413724899292, + 0.031640391796827316, + 0.007984284311532974, + 0.0658402070403099, + 0.02233003079891205, + 0.0113504808396101, + -0.012407633475959301, + -0.010005856864154339, + -0.016070574522018433, + -0.01547708548605442, + 0.01655278354883194, + 0.019399678334593773, + 0.0029164429288357496, + 0.06057298928499222, + 0.01186051033437252, + -0.030675971880555153, + 0.01800868660211563, + 0.047330763190984726, + 0.012862022966146469, + 0.027819804847240448, + 0.060906827449798584, + -0.056715309619903564, + -0.0014663356123492122, + -0.050149835646152496, + -0.00387622625567019, + -0.025835325941443443, + 0.02140270359814167, + 0.00784518476575613, + -0.0007888074032962322, + 0.004184562247246504, + 0.04080238193273544, + -0.02878422476351261, + 0.011341207660734653, + -0.04076528921723366, + 0.013418419286608696, + 0.023628288879990578, + -0.004713138565421104, + -0.030546145513653755, + 0.06413392722606659, + 0.026447361335158348, + -0.019566595554351807, + 0.0037719018291682005, + 0.024277416989207268, + 0.04699692502617836, + -0.017906680703163147, + 0.005179120227694511, + -0.005276489537209272, + 0.005916345398873091, + 0.008359851315617561, + -0.02466689422726631, + -0.012871296145021915, + 0.008239299058914185, + 0.0012553686974570155, + -0.01613548770546913, + 0.023535555228590965, + -0.001308690058067441, + -0.04373273253440857, + 0.0013249182375147939, + 0.03534970059990883, + -0.025112010538578033, + 0.04747913405299187, + 0.021365610882639885, + -0.027170676738023758, + -0.038650982081890106, + 0.007553077302873135, + -0.003906364552676678, + -0.032289519906044006, + -0.010154228657484055, + -0.05445263162255287, + 0.01228708028793335, + -0.019714968279004097, + 0.003962004091590643, + 0.04395529255270958, + 0.0022313802037388086, + -0.030546145513653755, + -0.011721411719918251, + 0.0019612961914390326, + 0.028357654809951782, + -0.015143247321248055, + 0.04172970727086067, + 0.05052076652646065, + -0.034886036068201065, + -0.031269460916519165, + -0.03334667161107063, + -0.06405974179506302, + 0.015486358664929867, + -0.02327590435743332, + 0.02422177791595459, + -0.04632924869656563, + -0.0024713261518627405, + 0.03245643898844719, + -0.016497144475579262, + 0.01157303899526596, + -0.00468300050124526, + 0.020920492708683014, + 0.021959099918603897, + -0.05055785924196243, + -0.013538971543312073, + -0.006495924666523933, + -0.02552003413438797, + 0.03939284384250641, + -0.009727658703923225, + -0.023739567026495934, + -0.022793693467974663, + 0.024741079658269882, + 0.002506100805476308, + -0.010821904055774212, + 0.015115427784621716, + 0.035294059664011, + -0.04198936000466347, + 0.039800867438316345, + 0.040950752794742584, + -0.0591263584792614, + 0.004729366861283779, + -0.053636584430933, + -0.024091951549053192, + 0.03653667867183685, + 0.013130947947502136, + 0.02234857715666294, + -0.01844453066587448, + -0.02240421622991562, + -0.018249792978167534, + 0.06146322190761566, + -0.03232661262154579, + 0.055417053401470184, + -0.028543120250105858, + -0.04766460135579109, + -0.01945531740784645, + 0.0338103361427784, + -0.06239055097103119, + -0.01713700033724308, + 0.020772121846675873, + 0.005577871110290289, + -0.024462882429361343, + 0.07292498648166656, + 0.000996876391582191, + 0.015031968243420124, + 0.007274879142642021, + -0.007311972323805094, + -0.026651373133063316, + -0.045290641486644745, + -0.009838937781751156, + -0.07463126629590988, + -0.034236907958984375, + -0.0037417637649923563, + -0.01858362928032875, + -0.0065747471526265144, + -0.007214603014290333, + -0.03514568880200386, + -0.045142270624637604, + -0.023591194301843643, + 0.004525355063378811, + -0.025408755987882614, + 0.007566987071186304, + -0.01678461581468582, + -0.007265605963766575, + -0.010988823138177395, + -0.04258284717798233, + 0.004766460042446852, + -0.003533115377649665, + 0.029006782919168472, + -0.056418564170598984, + -0.016524964943528175, + 0.012092341668903828, + 0.005485138390213251, + 0.002543193753808737, + 0.017183367162942886, + -0.024926545098423958, + 0.003011493943631649, + 0.0018755185883492231, + 0.008350578136742115, + 0.05059495195746422, + -0.015365805476903915, + 0.005758699495345354, + -0.010330420918762684, + 0.04944506660103798, + -0.038502611219882965, + -0.007803455460816622, + -0.015959294512867928, + -0.02948899380862713, + 0.06016496568918228, + 0.0034380643628537655, + 0.010172775015234947, + -0.007562350481748581, + -0.0028260285034775734, + 0.012954755686223507, + 0.00392491091042757, + -0.02349846251308918, + -0.001713236328214407, + -0.00565669359639287, + -0.017554298043251038, + 0.03388452157378197, + -0.002008821815252304, + 0.04113622009754181, + 0.018676362931728363, + 0.05393332988023758, + -0.0043167066760361195, + -0.006060081068426371, + -0.05300600081682205, + -0.04473424702882767, + 0.013418419286608696, + -0.03549807146191597, + 0.028431840240955353, + -0.006852945312857628, + 0.03779784217476845, + -0.04043145105242729, + 0.00798892043530941, + 0.011452486738562584, + -0.02103177271783352, + 0.03201132267713547, + -0.030898530036211014, + -0.018175605684518814, + -0.05560251697897911, + -0.03946702927350998, + -0.0034751573111861944, + -0.01879691518843174, + -0.047182388603687286, + -0.001962455455213785, + -0.0051049343310296535, + -0.0011637952411547303, + -0.03036068007349968, + 0.009811118245124817, + 0.017619209364056587, + -0.027003757655620575, + -0.028209282085299492, + 0.005647420417517424, + 0.059163451194763184, + -0.005735516548156738, + 0.03601737320423126, + 0.002438869560137391, + 0.018954560160636902, + -0.008689052425324917, + -0.02479672059416771, + 0.06413392722606659, + -0.012212894856929779, + -0.021959099918603897, + 0.033291034400463104, + -0.02225584350526333, + 0.04959344118833542, + -0.02746742032468319, + 0.039726682007312775, + 0.022070378065109253, + 0.0007812728872522712, + -0.00706623075529933, + 0.008067743852734566, + -0.04443750157952309, + -0.03635121136903763, + -0.0014512664638459682, + -0.013603884726762772, + -0.012240714393556118, + -0.015996387228369713, + 0.008220752701163292, + 0.0008815400651656091, + 0.030397774651646614, + -0.0526350699365139, + -0.02162526175379753, + 0.0018268339335918427, + -0.02776416577398777, + 0.03577626869082451, + 0.006310459226369858, + -0.04766460135579109, + -0.010506613180041313, + 0.04295377805829048, + -0.04228610545396805, + 0.024036312475800514, + 0.00773854274302721, + -0.050706230103969574, + 0.024036312475800514, + 0.015421445481479168, + 0.040320172905921936, + 0.03169603273272514, + -0.03108399547636509, + 0.014475571922957897, + -0.004722411744296551, + -0.019140025600790977, + -0.022738054394721985, + -0.020215725526213646, + 0.03961540386080742, + 0.05875542759895325, + -0.04380692169070244, + 0.010107862763106823, + -0.010265507735311985, + 0.05319146811962128, + -0.02386939339339733, + 0.05230123549699783, + 0.02379520609974861, + -0.0002232829137938097, + 0.0034427009522914886, + -0.029470447450876236, + 0.009370638057589531, + -0.016469324007630348, + 0.052894722670316696, + -0.0028468933887779713, + 0.012361266650259495, + -0.032790277153253555, + -0.03707452863454819, + -0.02841329388320446, + 0.024759626016020775, + -0.03931865841150284, + -0.03145492821931839, + -0.028172189369797707, + 0.015124700963497162, + 0.017109179869294167, + 0.0022835424169898033, + -0.01413246151059866, + -0.001911452505737543, + 0.02284933254122734, + 0.010256234556436539, + 0.027448873966932297, + 0.023183170706033707, + -0.03512714058160782, + 0.019214212894439697, + -0.01590365543961525, + 0.03531260788440704, + 0.004775733221322298, + 0.032716091722249985, + 0.06817706674337387, + -0.022886427119374275, + 0.029451901093125343, + -0.028227828443050385, + -0.009384547360241413, + -0.014011908322572708, + 0.06324368715286255, + -0.010274781845510006, + -0.05204158276319504, + -0.021235784515738487, + -0.047404948621988297, + 0.03406998887658119, + -0.03188149631023407, + 0.021421249955892563, + -0.03601737320423126, + 0.008063106797635555, + 0.0701059103012085, + -0.051002975553274155, + 0.028969690203666687, + -0.019214212894439697, + 0.042768314480781555, + -0.12403924018144608, + 0.018991652876138687, + -0.029340621083974838, + -0.028747132048010826, + -0.012528185732662678, + -0.047256577759981155, + -0.019344037398695946, + -0.025074917823076248, + 0.004133559297770262, + -0.014160281047224998, + -0.007905460894107819, + -0.01749865710735321, + 0.030119575560092926, + -0.025501487776637077, + -0.030638879165053368, + 0.02155107632279396, + -0.012908389791846275, + -0.03457074612379074, + 0.005128117278218269, + -0.012880570255219936, + -0.01062716543674469, + -0.03853970393538475, + 0.014188100583851337, + -0.013427692465484142, + -0.02624334953725338, + 0.03347649797797203, + 0.026354629546403885, + 0.018685635179281235, + -0.01369661744683981, + -0.037482552230358124, + 0.011090829037129879, + -0.0381687730550766, + 0.04228610545396805, + 0.04506808519363403, + -0.0034241543617099524, + 0.022942066192626953, + 0.026373175904154778, + -0.009440187364816666, + 0.035831909626722336, + 0.0008032968617044389, + 0.01800868660211563, + 0.025056371465325356, + 0.016089120879769325, + 0.04187808185815811, + 0.004328297916799784, + 0.030193762853741646, + 0.008939431048929691, + -0.024852359667420387, + -0.03694470226764679, + 0.01878764107823372, + 0.02097613364458084, + 0.034960221499204636, + 0.03440382704138756, + 0.020735029131174088, + 0.016728976741433144, + 0.009560739621520042, + -0.06124066561460495, + -0.010209868662059307, + 0.00401068851351738, + 0.016079846769571304, + -0.019622236490249634, + -0.0011806029360741377, + -0.031417831778526306, + -0.019789155572652817, + -0.033865977078676224, + 0.024314509704709053, + -0.009755478240549564, + -0.005902435164898634, + 0.008053833618760109, + -0.0009470325312577188, + -0.014521938748657703, + 0.010617892257869244, + 0.02876567840576172, + -0.027207769453525543, + -0.0017422153614461422, + -0.015541997738182545, + 0.04692273959517479, + -0.013112401589751244, + -0.01575528271496296, + -0.03692615404725075, + 0.016580604016780853, + -0.014614671468734741, + 0.041470058262348175, + 0.018333252519369125, + 0.043844014406204224, + 0.01618185266852379, + -0.02169944904744625, + -0.0372970849275589, + 0.013576065190136433, + -0.01642295904457569, + -0.003414881182834506, + 0.0006120357429608703, + -0.023535555228590965, + -0.030490506440401077, + 0.01641368493437767, + 0.03935575112700462, + -0.05523158609867096, + -0.04043145105242729, + -0.0190843865275383, + -0.048183903098106384, + -0.03000829741358757, + -0.010821904055774212, + 0.01748938485980034, + 0.04621797055006027, + -0.00842012744396925, + -0.0034705207217484713, + -0.008114109747111797, + 0.008698325604200363, + -0.006681390106678009, + -0.02806091122329235, + -0.03520132601261139, + 0.020289910957217216, + -0.007562350481748581, + -0.0011498852400109172, + -0.016858801245689392, + -0.016033481806516647, + 0.010469520464539528, + -0.022830786183476448, + -0.0034380643628537655, + -0.03178876265883446, + 0.004166015889495611, + 0.06224217638373375, + -0.0010275940876454115, + -0.03577626869082451, + 2.9141971026547253e-05, + 0.012871296145021915, + 0.05790228769183159, + 0.04829518124461174, + 0.024778172373771667, + 0.03310556709766388, + 0.010321147739887238, + 0.008095563389360905, + -0.0464034341275692, + 0.011767777614295483, + -0.008503586985170841, + -0.0038646345492452383, + -0.0488886721432209, + 0.04180389270186424, + -0.056641124188899994, + -0.04662599414587021, + 0.02385084703564644, + 0.026873931288719177, + -0.010172775015234947, + -0.021866366267204285, + -0.00406864657998085, + -0.009273268282413483, + 0.0140953678637743, + -0.004087192937731743, + 0.012917662970721722, + 0.01380789652466774, + 0.0240734051913023, + -0.004379300866276026, + 0.01757284440100193, + -0.029748644679784775, + 0.027133584022521973, + -0.019974621012806892, + -0.0018071281956508756, + -0.05040948837995529, + -0.030917076393961906, + 0.013483332470059395, + 0.037927668541669846, + -0.04057982191443443, + 0.0049843816086649895, + -0.019492410123348236, + -0.0010107862763106823, + -0.009352090768516064, + 0.023591194301843643, + 0.02935916744172573, + 0.0024527795612812042, + 0.003368514822795987, + 0.016589878126978874, + -0.0049565620720386505, + -0.026132071390748024, + -0.015375078655779362, + 0.02514910325407982, + -0.014559031464159489, + 0.028357654809951782, + -0.08442383259534836, + 0.014512665569782257, + -0.04158133640885353, + 0.00925472192466259, + 0.08375616371631622, + 0.012222168035805225, + -0.009959490038454533, + 0.006018351297825575, + -0.0008363329106941819, + 0.015866562724113464, + 0.0204568300396204, + 0.009792571887373924, + 0.0032804186921566725, + -0.01005222275853157, + 0.023331543430685997, + -0.0009725340059958398, + -0.00856850016862154, + 0.04280540719628334, + -0.007998193614184856, + 0.0018743594409897923, + -0.02449997514486313, + -0.027448873966932297, + 0.07574405521154404, + -0.005058567970991135, + 0.00896261353045702, + -0.008772511966526508, + -0.006315095815807581, + 0.011304114013910294, + 0.011981062591075897, + -0.009922397322952747, + -0.005049294792115688, + -0.06398554891347885, + 0.03935575112700462, + 0.026781199499964714, + 0.016163306310772896, + -0.013622431084513664, + 0.04299087077379227, + -0.004965835250914097, + 0.010395334102213383, + 0.010896090418100357, + -0.04202645272016525, + -0.039726682007312775, + 0.02876567840576172, + -0.038502611219882965, + -0.011739958077669144, + -0.02524183690547943, + -0.002004185225814581, + 0.07047683745622635, + -0.024926545098423958, + 0.015885109081864357, + 0.0037000339943915606, + 0.020772121846675873, + -0.05645565688610077, + 0.007970374077558517, + 0.005271852947771549, + 0.01936258375644684, + 0.08798477053642273, + -0.03284591808915138, + 0.04525354877114296, + 0.006166723556816578, + -0.010868270881474018, + -0.041544243693351746, + 0.0003152911376673728, + 0.021198691800236702, + 0.03614719957113266, + -0.035460978746414185, + 0.05704914778470993 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换连杆小段轴承", + "编号": "MT005", + "内容": "表 4.7 MT005 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT005020203连杆小段轴承更换连杆小段轴承2A/12000hJY级
安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。
安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。
序号名称规格/型号数量及单位备注
1活塞吊装专用吊具OEM-MAN-BW-PST-051套带缓冲橡胶夹头
2感应加热器EFD Induction Minac161台温控精度±5℃
3内径千分尺40 - 50 mm1把校验有效期内
4铜棒与塑料锤Φ20×300 mm各1把
2)备品备件
名称规格/型号消耗数量备注
1连杆小端衬套(上)MAN 5L35MC-BUSH-UP1件锡青铜基
2连杆小端衬套(下)MAN 5L35MC-BUSH-DN1件
3活塞销卡簧Φ50×2.5 mm2个不锈钢,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\n\n
1高温装配润滑脂Molycote G-10525g
2清洗剂Brulin 815GD150mL
3耐高温标记笔Markal 900°F1支
\n4)人力人员\n\n
序号专业人数技能等级备注
1机械专业2工程师+技师工程师主导热装
\n修理步骤及工艺\n更换前提确认\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\n拆卸旧衬套\n1)抽出活塞-连杆总成\n(1)拆除缸头、喷油器及冷却水管路;\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\n2)压出旧衬套\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\n安装新衬套\n1)清洁与预装检查\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\n(2)测量座孔内径,记录作为过盈量计算依据。\n2)热装新衬套\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\n(2)迅速将热衬套套入连杆小端,确保完全到位;\n(3)自然冷却至室温,禁止强制冷却。\n3)精铰与研配(如需要)\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\n组装活塞销与卡簧\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\n\n
验收标准
1.衬套与座孔过盈配合牢固,无松动或轴向位移;
2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。
页码:1/1版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.7 MT005 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT005020203连杆小段轴承更换连杆小段轴承2A/12000hJY级
安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。
安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。
序号名称规格/型号数量及单位备注
1活塞吊装专用吊具OEM-MAN-BW-PST-051套带缓冲橡胶夹头
2感应加热器EFD Induction Minac161台温控精度±5℃
3内径千分尺40 - 50 mm1把校验有效期内
4铜棒与塑料锤Φ20×300 mm各1把
2)备品备件
名称规格/型号消耗数量备注
1连杆小端衬套(上)MAN 5L35MC-BUSH-UP1件锡青铜基
2连杆小端衬套(下)MAN 5L35MC-BUSH-DN1件
3活塞销卡簧Φ50×2.5 mm2个不锈钢,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1高温装配润滑脂Molycote G-10525g
2清洗剂Brulin 815GD150mL
3耐高温标记笔Markal 900°F1支
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业2工程师+技师工程师主导热装
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\\n拆卸旧衬套\\n1)抽出活塞-连杆总成\\n(1)拆除缸头、喷油器及冷却水管路;\\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\\n2)压出旧衬套\\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\\n安装新衬套\\n1)清洁与预装检查\\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\\n(2)测量座孔内径,记录作为过盈量计算依据。\\n2)热装新衬套\\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\\n(2)迅速将热衬套套入连杆小端,确保完全到位;\\n(3)自然冷却至室温,禁止强制冷却。\\n3)精铰与研配(如需要)\\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\\n组装活塞销与卡簧\\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\\n\\n
验收标准
1.衬套与座孔过盈配合牢固,无松动或轴向位移;
2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_989f92a1-7f51-4cdf-8bbb-2aeba9ccac07.pdf#page=31\"}]", + "embedding": [ + -0.025645282119512558, + -0.0005136206746101379, + -0.05826913192868233, + 0.004097048193216324, + -0.007755552884191275, + -0.016636066138744354, + 0.021583985537290573, + 0.018237704411149025, + -0.03847745805978775, + -0.020764099434018135, + 0.027818934991955757, + 0.022613609209656715, + 0.023662300780415535, + 0.02000141330063343, + 0.010753857903182507, + -0.04095618426799774, + -0.012117157690227032, + -0.008575439453125, + 0.030984077602624893, + -0.012832175008952618, + -0.024730060249567032, + 0.003634670516476035, + -0.011077999137341976, + 0.04732460156083107, + -0.01028671395033598, + 0.024787262082099915, + 0.02289961650967598, + 0.015530172735452652, + 0.021183574572205544, + 0.016740934923291206, + -0.0322997085750103, + 0.005005120299756527, + -0.0021915275137871504, + -0.029210835695266724, + -0.014996293000876904, + -0.05205325037240982, + 0.0009444185416214168, + -0.0011732239509001374, + -0.06486635655164719, + 0.03052646666765213, + -0.006754528731107712, + -0.05212951824069023, + 0.018685782328248024, + -0.00600614445284009, + 0.023681368678808212, + -0.025168605148792267, + 0.022785214707255363, + -0.024634724482893944, + 0.008079693652689457, + -0.014529149048030376, + 0.014348011463880539, + -0.014271742664277554, + 0.00578687246888876, + -0.04183327034115791, + -0.0019293546210974455, + 0.04419759288430214, + 0.016092652454972267, + -0.06063345447182655, + -0.07028142362833023, + -0.010467851534485817, + -0.008289432153105736, + 0.03632287308573723, + -0.0075553483329713345, + 0.0059775435365736485, + 0.04793475195765495, + 0.087098628282547, + 0.021259844303131104, + -0.014643551781773567, + -0.02362416684627533, + -0.048811838030815125, + -0.021431447938084602, + 0.008117828518152237, + 0.029210835695266724, + -0.012384097091853619, + -0.045761097222566605, + 0.0449984148144722, + 0.016254723072052002, + -0.011230536736547947, + 0.004990819841623306, + 0.026636773720383644, + 0.06212069094181061, + 0.024539388716220856, + 0.02064969576895237, + 0.004685746040195227, + -0.008332333527505398, + 0.05296847224235535, + -0.03237597644329071, + -0.021717455238103867, + -0.0697094053030014, + 0.027018114924430847, + 0.02305215410888195, + 0.003870626213029027, + 0.01770382560789585, + 0.013509057462215424, + -0.02539741061627865, + -0.008170262910425663, + -0.03037392906844616, + -0.010448784567415714, + 0.04850676655769348, + 0.010115109384059906, + 0.0014371845172718167, + 0.045341622084379196, + 0.014586349949240685, + -0.04919318109750748, + 0.031193815171718597, + -0.014672152698040009, + 0.003944511525332928, + 0.01667420007288456, + -0.012336429208517075, + 0.00327239534817636, + -0.013690195046365261, + 0.04347304254770279, + 0.008584972470998764, + -0.011916953139007092, + -0.021507715806365013, + -0.032833587378263474, + -0.03344373777508736, + -0.04778221249580383, + 0.054837051779031754, + -0.02234666980803013, + 0.022880548611283302, + 0.007088203448802233, + 0.04637124761939049, + -0.03403481841087341, + 0.04400692507624626, + 0.0076077827252447605, + 0.05277780070900917, + 0.0071549382992088795, + -0.032833587378263474, + 0.018066100776195526, + 0.015091628767549992, + 0.010296246968209743, + -0.03125101700425148, + 0.027189720422029495, + -0.04835422709584236, + -0.02652237005531788, + -0.02135518006980419, + -0.03399668261408806, + -0.012641503475606441, + -0.0288485586643219, + -0.013442322611808777, + 0.003660887945443392, + -0.022041596472263336, + -0.007521980442106724, + -0.004433106631040573, + -0.028638821095228195, + 0.03662794455885887, + 0.00963843148201704, + 0.0319565013051033, + -0.010038841515779495, + -0.01577804610133171, + 0.03424455597996712, + -0.014185940846800804, + -0.04259595647454262, + 0.018456976860761642, + -0.04328237101435661, + -0.014205007813870907, + 0.046943262219429016, + -0.0005457964143715799, + -0.0006470905500464141, + 0.08542072027921677, + 0.06829843670129776, + -0.042062077671289444, + -0.0363038033246994, + 0.026064759120345116, + 0.03676141798496246, + 0.03758130222558975, + 0.003918293863534927, + 0.029859116300940514, + -0.017541754990816116, + 0.00321281049400568, + 0.012079023756086826, + 0.004838282708078623, + 0.039964694529771805, + 0.03670421615242958, + 0.006377953104674816, + 0.020916635170578957, + 0.0100769754499197, + 0.014395679347217083, + -0.018018431961536407, + 0.0033558139111846685, + 0.04835422709584236, + 0.0027385158464312553, + -0.033767879009246826, + -0.008780410513281822, + 0.06273084133863449, + 0.045341622084379196, + -0.021869990974664688, + 0.015787579119205475, + 0.0031722928397357464, + -0.016207056120038033, + 0.04347304254770279, + 0.025130469352006912, + -0.014738887548446655, + 0.033710677176713943, + 0.012307829223573208, + -0.00021093006944283843, + -0.026160094887018204, + 0.04137565940618515, + -0.007183539215475321, + 0.0040160128846764565, + -0.02135518006980419, + 0.029859116300940514, + 0.013146782293915749, + -0.03904947265982628, + 0.018333040177822113, + 0.017389217391610146, + -0.0392020083963871, + 0.037219028919935226, + -0.010982663370668888, + -0.009471594356000423, + -0.008160728961229324, + 0.004347304347902536, + -0.029363371431827545, + -0.045036546885967255, + -0.005114756058901548, + -0.014119205996394157, + -0.07127290964126587, + -0.02650330401957035, + 0.012956110760569572, + -0.04522721841931343, + 0.030068855732679367, + -0.03127008303999901, + 0.0035989198368042707, + 0.02474912814795971, + -0.03752410039305687, + 0.03725716099143028, + 0.014033403247594833, + -0.001748217036947608, + -0.03834398835897446, + -0.0022606458514928818, + 0.03765757009387016, + 0.016702800989151, + -0.002583595458418131, + 0.0638367310166359, + 0.04648565128445625, + 0.010877794586122036, + 0.04625684395432472, + 0.007436178624629974, + 0.002488259691745043, + 0.005825006403028965, + -0.0034153987653553486, + 0.049536388367414474, + -0.01157374493777752, + 0.000812140351627022, + -0.0063636526465415955, + -0.026083827018737793, + 0.04404505714774132, + -0.03672328218817711, + 0.0028862860053777695, + -0.017589421942830086, + -0.007407577708363533, + -0.03331026807427406, + -0.01679813675582409, + 0.01389993354678154, + 0.004976519383490086, + 0.019505668431520462, + -0.03224250674247742, + -0.0055962009355425835, + -0.026808377355337143, + -0.013852265663444996, + 0.07161612063646317, + 0.0028243178967386484, + 0.0259503573179245, + -0.004464090336114168, + 0.07173052430152893, + -0.03403481841087341, + 0.040117230266332626, + -0.03601779788732529, + 0.022708944976329803, + -0.07481939345598221, + 0.02707531675696373, + -0.04236714914441109, + 0.02185092493891716, + 0.02730412222445011, + 0.0314035527408123, + 0.015377636067569256, + -0.0040326970629394054, + 0.08145475387573242, + -0.023586032912135124, + 0.016616998240351677, + 0.025435544550418854, + 0.0613580085337162, + -0.007255041040480137, + -0.003262861631810665, + 0.00558190094307065, + -0.10006427019834518, + 0.0011291312985122204, + 0.005152890458703041, + -0.06193001940846443, + -0.012803574092686176, + -0.058536071330308914, + 0.06833657622337341, + -0.0013001395855098963, + -0.0002705148363020271, + -0.006220649462193251, + -0.004733413457870483, + -0.1668754667043686, + 0.030183257535099983, + -0.02852441743016243, + 0.012774973176419735, + 0.010210445150732994, + 0.018342573195695877, + -0.03422548994421959, + -0.010200911201536655, + 0.00899968296289444, + -0.011583277955651283, + 0.003560785437002778, + -0.08069206774234772, + -0.016740934923291206, + -0.013966668397188187, + 0.00305312336422503, + 0.0021224094089120626, + -0.030068855732679367, + 0.0035631689243018627, + 0.005338795017451048, + -0.024806328117847443, + -0.020211152732372284, + -0.005357861984521151, + 0.055065855383872986, + -0.001940079964697361, + -0.011754882521927357, + -0.041184987872838974, + 0.04019349813461304, + -0.002173652173951268, + -0.022880548611283302, + 0.010382049717009068, + 0.0075124469585716724, + 0.03037392906844616, + -0.017293881624937057, + 0.031613294035196304, + -0.01612125337123871, + 0.014796088449656963, + -0.0059870770201087, + 0.018180502578616142, + -0.008432435803115368, + 0.026007557287812233, + 0.03784824162721634, + 0.03769570589065552, + 0.013156316243112087, + 0.016569331288337708, + -0.010382049717009068, + -0.11257230490446091, + 0.005815472919493914, + -0.023509765043854713, + -0.052015114575624466, + 0.01457681693136692, + -0.03237597644329071, + -0.0025645282585173845, + 0.01852371171116829, + -0.010505985468626022, + -0.0020687829237431288, + -0.00896154809743166, + 0.009409626014530659, + 0.042939163744449615, + -0.018037499859929085, + 0.021717455238103867, + -0.028715088963508606, + -0.01060132123529911, + -0.017589421942830086, + -0.023261891677975655, + -0.06959500163793564, + -0.013623460195958614, + 0.009771901182830334, + -0.029039230197668076, + 0.017341550439596176, + -0.034263622015714645, + 0.022842414677143097, + 0.03617033362388611, + 0.025530880317091942, + -0.04152819886803627, + -0.03760036826133728, + 0.03590339422225952, + 0.024768194183707237, + -0.009781435132026672, + -0.017741959542036057, + -0.1437661200761795, + 0.04705766215920448, + 0.047286469489336014, + -0.01664559915661812, + -0.0536930225789547, + -0.032261576503515244, + -0.005553300026804209, + 0.029820982366800308, + -0.006716394796967506, + 0.0018876453395932913, + 0.21934820711612701, + 0.013594860211014748, + -0.03657074645161629, + -0.017255747690796852, + 0.0653621032834053, + -0.05849793925881386, + 0.016731401905417442, + -0.03813425078988075, + 0.05209138244390488, + -0.04038416966795921, + -0.01635005883872509, + 0.002179610775783658, + -0.003682338399812579, + -0.003596536349505186, + -0.003353430423885584, + -0.0056391023099422455, + -0.008832845836877823, + 0.02802867256104946, + 0.10258112847805023, + 0.005748738069087267, + 0.04103245213627815, + 0.0015515872510150075, + -0.03615126758813858, + -0.005825006403028965, + -0.0660485178232193, + -0.043015431612730026, + -0.018209103494882584, + 0.013432789593935013, + 0.006449454929679632, + 0.02922990173101425, + 0.005772572010755539, + 0.026560503989458084, + 0.02915363386273384, + -0.015635041519999504, + 0.0015742294490337372, + 0.033062394708395004, + 0.015110696665942669, + -0.007626849692314863, + -0.013127715326845646, + 0.025283006951212883, + 0.0272278543561697, + -0.030984077602624893, + 0.0060252114199101925, + 0.01165001280605793, + -0.01378553081303835, + -0.054265037178993225, + -0.025588080286979675, + 0.0068689314648509026, + -0.00262172962538898, + 0.04991773143410683, + -0.011754882521927357, + 0.012183892540633678, + -0.03985029086470604, + -0.02289961650967598, + 0.0052577597089111805, + -0.05437944084405899, + 0.013890400528907776, + -0.047286469489336014, + 0.02345256321132183, + -0.015692243352532387, + 0.009361958131194115, + -0.001145815011113882, + -0.0239483080804348, + -0.035312313586473465, + -0.02307122014462948, + -0.020363688468933105, + -0.04267222434282303, + 0.047439005225896835, + 0.015043960884213448, + 0.016531197354197502, + -0.006683027371764183, + -0.03965961933135986, + -0.02314748987555504, + 0.005500865634530783, + 0.027094384655356407, + -0.009395325556397438, + -0.00876134354621172, + 0.07180678844451904, + 0.00029002883820794523, + -0.00014709988317918032, + -0.05312100797891617, + -0.0025287773460149765, + -0.05098549276590347, + -0.021183574572205544, + 0.007850888185203075, + -0.04476960748434067, + -0.014214541763067245, + 0.02442498691380024, + -0.029820982366800308, + -0.021583985537290573, + -0.01083966065198183, + 0.002929186914116144, + -0.009800502099096775, + 0.016054518520832062, + -0.027056248858571053, + 0.012584302574396133, + 0.04087991639971733, + -0.05003213509917259, + -0.013957135379314423, + 0.03529324755072594, + -0.025569014251232147, + -0.03165142610669136, + -0.00847533717751503, + -0.06581971049308777, + 0.02562621608376503, + -0.0064828223548829556, + -0.017160411924123764, + 0.00556283351033926, + 0.007846121676266193, + -0.027094384655356407, + 0.018418842926621437, + 0.025759685784578323, + -0.02522580511868, + -0.039392679929733276, + -0.006678260397166014, + 0.02152678370475769, + 0.03254758194088936, + 0.04701953008770943, + 0.0028147841803729534, + -0.0005437109502963722, + -0.0515575036406517, + 0.01912432536482811, + -0.012441298924386501, + 0.02610289305448532, + -0.011983687989413738, + 0.00632551871240139, + -0.022518273442983627, + 0.005491331685334444, + 0.004230518359690905, + 0.05171004310250282, + -0.009209421463310719, + -0.0223276037722826, + -0.02314748987555504, + -0.005991843994706869, + 0.07085343450307846, + 0.01635005883872509, + -0.007026235572993755, + 0.042939163744449615, + -0.019906077533960342, + -0.0067688291892409325, + -0.01232689619064331, + -0.07470499724149704, + -0.0009193929145112634, + -0.04797288402915001, + -0.008275131694972515, + -0.050184670835733414, + -0.005991843994706869, + 0.00737421028316021, + -0.04263409227132797, + 0.03147982433438301, + -0.015167897567152977, + 0.048964377492666245, + -0.008542072027921677, + -0.05277780070900917, + -0.01924826204776764, + 0.009752834215760231, + 0.006168214604258537, + 0.030831540003418922, + 0.013280251994729042, + -0.027532927691936493, + -0.012422231957316399, + -0.004464090336114168, + -0.004318703897297382, + 0.025607148185372353, + 0.06276897341012955, + 0.04343491047620773, + -0.004773931112140417, + 0.08404788374900818, + 0.05895555019378662, + -0.03735249862074852, + 0.04560856148600578, + -0.005925109144300222, + -0.0515575036406517, + 0.027094384655356407, + 0.009581229649484158, + -0.007159705273807049, + -0.0026527137961238623, + 0.02579781971871853, + -0.038992270827293396, + 0.058688610792160034, + 0.016883939504623413, + 0.0348547026515007, + -0.008570672944188118, + -0.04385438561439514, + -0.034187354147434235, + 0.024615658447146416, + -0.04217648133635521, + -0.01136400643736124, + 0.04312983527779579, + 0.020916635170578957, + -0.04271036013960838, + 0.07706931978464127, + 0.011058932170271873, + -0.008809011429548264, + -0.025607148185372353, + 0.005419830325990915, + 0.05872674286365509, + -0.010229512117803097, + 0.007207373157143593, + -0.08191236853599548, + -0.035388581454753876, + 0.011182868853211403, + -0.02207973040640354, + 0.010315313935279846, + 0.0009867236949503422, + -0.03424455597996712, + -0.03027859330177307, + -0.013308852910995483, + 0.018561845645308495, + -0.024405919015407562, + 0.0033415136858820915, + -0.02434871718287468, + -0.02064969576895237, + -0.011259136721491814, + -0.02812400832772255, + -0.00795099139213562, + 0.03399668261408806, + 0.010934995487332344, + -0.0798531174659729, + -0.05472264811396599, + -0.012994245626032352, + -0.000463569478597492, + 0.019734473899006844, + 0.006201582029461861, + -0.022937750443816185, + 0.04435013234615326, + -0.021069172769784927, + -0.021145440638065338, + 0.053540486842393875, + -0.010906395502388477, + 0.007750785909593105, + 0.06353165954351425, + -0.005357861984521151, + -0.015406236983835697, + 0.021831857040524483, + -0.008046326227486134, + 0.01830443926155567, + 0.05887928232550621, + 0.010544120334088802, + 0.011545144021511078, + 0.014815155416727066, + -0.011182868853211403, + 0.03479750081896782, + 0.0288485586643219, + -0.039392679929733276, + 0.04660005122423172, + -0.05022280663251877, + -0.009118852205574512, + 0.025893155485391617, + 0.01349952444434166, + -0.021831857040524483, + 0.024939799681305885, + 0.03220437467098236, + 0.023090288043022156, + -0.034187354147434235, + -0.03639914095401764, + -0.024367785081267357, + 0.02169838733971119, + -0.05098549276590347, + 0.011936020106077194, + -0.014004803262650967, + 0.033939480781555176, + -0.00911408569663763, + -0.005510399118065834, + 0.015577840618789196, + -0.02127891033887863, + 0.048011019825935364, + -0.002926803659647703, + -0.00590127520263195, + -0.0328526571393013, + -0.019496135413646698, + 0.007974824868142605, + -0.03512164205312729, + -0.059489428997039795, + -0.0204971581697464, + -0.019391264766454697, + 0.011287737637758255, + -0.0025907454546540976, + 0.045913636684417725, + 0.01967727206647396, + -0.04648565128445625, + -0.023471631109714508, + -0.01389993354678154, + -0.006692560855299234, + 0.0038968436419963837, + 0.027437591925263405, + -0.002583595458418131, + 0.0053101941011846066, + -0.022594543173909187, + -0.03357720747590065, + 0.030736204236745834, + 0.0033295967150479555, + -0.038286786526441574, + 0.046790722757577896, + -0.027780801057815552, + 0.030240459367632866, + -0.014290809631347656, + 0.07043395936489105, + -0.017837295308709145, + 0.02530207484960556, + 0.0031722928397357464, + 0.013203984126448631, + -0.024730060249567032, + -0.012774973176419735, + -0.03237597644329071, + -0.019734473899006844, + -0.02242293767631054, + 0.006373186595737934, + 0.026541437953710556, + 0.007092970423400402, + 0.02617916278541088, + -0.05937502533197403, + -0.025263940915465355, + 0.017780093476176262, + 0.029115499928593636, + 0.0034654499031603336, + -0.022365737706422806, + -0.010019773617386818, + 0.015282300300896168, + 0.04682885855436325, + -0.0013382737524807453, + -0.013041913509368896, + -0.02080223336815834, + -0.014853290282189846, + -0.011173334904015064, + 0.003377264365553856, + 0.033710677176713943, + 0.05243459343910217, + -0.04999399930238724, + -0.026312632486224174, + -0.012889375910162926, + 0.02337629534304142, + -0.0002002048131544143, + -0.031060345470905304, + 0.030736204236745834, + 0.023681368678808212, + -0.009095018729567528, + -0.008818545378744602, + -0.008518237620592117, + 0.040536705404520035, + -0.028581619262695312, + 0.01699834130704403, + 0.013223051093518734, + -0.025092335417866707, + 0.021583985537290573, + -0.020992904901504517, + -0.006149147637188435, + -0.008508704602718353, + 0.044540803879499435, + 0.038439322263002396, + 0.006830797530710697, + -0.00219033588655293, + -0.00759348226711154, + -0.025092335417866707, + -0.007064369507133961, + -0.024844463914632797, + -0.018609514459967613, + -0.012860775925219059, + 0.024444052949547768, + 0.00952402874827385, + -0.007083436939865351, + -0.011106600053608418, + 0.008241764269769192, + 0.033786945044994354, + 0.002353598130866885, + 0.011297271586954594, + 0.007474313024431467, + -0.009137919172644615, + 0.0036656546872109175, + 0.010229512117803097, + 0.009700399823486805, + 0.008370467461645603, + 0.04347304254770279, + 0.037238094955682755, + -0.0019448467064648867, + 0.021793723106384277, + -0.048087287694215775, + 0.0032104270067065954, + 0.018237704411149025, + 0.0007048877887427807, + -0.007803220767527819, + -0.031136615201830864, + -0.010830126702785492, + -0.04339677467942238, + 0.0024930264335125685, + -0.003699022112414241, + -0.04412132501602173, + -0.023967375978827477, + 0.021831857040524483, + 0.030965009704232216, + -0.042290881276130676, + 0.017046010121703148, + -0.020039547234773636, + 0.014996293000876904, + -0.15276579558849335, + 0.015196498483419418, + -0.018342573195695877, + -0.019944211468100548, + -0.039011336863040924, + -0.031784895807504654, + -0.013451856561005116, + -0.030984077602624893, + -0.0044903079979121685, + -0.015644576400518417, + -0.012794040143489838, + -0.0014062004629522562, + 0.04419759288430214, + 0.005558067001402378, + -0.007455245591700077, + 0.03714275732636452, + -0.0005651614628732204, + -0.0005028953892178833, + 0.021145440638065338, + 0.04614244028925896, + 0.006182515062391758, + -0.014719820581376553, + 0.008627873845398426, + -0.021317046135663986, + 0.03445429354906082, + 0.03268105164170265, + 0.04267222434282303, + -0.003498817328363657, + -0.01967727206647396, + -0.08473429828882217, + -0.019305463880300522, + -0.03310052677989006, + 0.05823099985718727, + 0.026293564587831497, + -0.0026503303088247776, + -0.0007007168023847044, + 0.01967727206647396, + -0.01188835222274065, + 0.04858303442597389, + -0.012202959507703781, + 0.00588697474449873, + 0.015892447903752327, + 0.02497793361544609, + 0.051443103700876236, + 0.02129797823727131, + 0.03180396556854248, + -0.025912221521139145, + -0.02207973040640354, + -0.03363440930843353, + 0.005176724400371313, + 0.022365737706422806, + -0.010000706650316715, + 0.011221002787351608, + 0.03454963117837906, + 0.021831857040524483, + 0.03597966581583023, + -0.057163238525390625, + 0.0064113205298781395, + -0.003300996031612158, + 0.04701953008770943, + -0.02917269989848137, + 0.01103986520320177, + -0.025454610586166382, + -0.06162494793534279, + -0.030869673937559128, + 0.03191836550831795, + 0.0005079600960016251, + -0.006802196614444256, + 0.02450125478208065, + -0.010544120334088802, + -0.016369126737117767, + -0.02522580511868, + -0.00664489297196269, + -0.00781275425106287, + 0.016283323988318443, + -0.021660253405570984, + 0.03946894779801369, + -0.032414112240076065, + -0.03037392906844616, + -0.03493097051978111, + 0.03832491859793663, + 0.004535592161118984, + -0.016254723072052002, + -0.003820575075224042, + 0.027818934991955757, + 0.010610855184495449, + -0.027380390092730522, + -0.022785214707255363, + 0.019343597814440727, + -0.016512129455804825, + -0.038763463497161865, + 0.015024893917143345, + 0.013833198696374893, + 0.005028954241424799, + 0.03493097051978111, + 0.008480103686451912, + -0.026388900354504585, + -0.029306169599294662, + -0.02185092493891716, + -0.009390559047460556, + -0.03729529678821564, + -0.04843049496412277, + 0.030507398769259453, + 0.030240459367632866, + -0.03515977784991264, + 0.007297941949218512, + -0.012441298924386501, + 0.0024250999558717012, + -0.015282300300896168, + -0.010525052435696125, + -0.035140711814165115, + 0.013385121710598469, + -0.010915928520262241, + -0.03092687577009201, + -0.007417111657559872, + 0.0185999795794487, + -0.019715406000614166, + -0.019982347264885902, + -0.018161436542868614, + -0.03243317827582359, + -0.00973853375762701, + 0.03597966581583023, + -0.008503937162458897, + -0.027494793757796288, + -0.01802796684205532, + -0.021317046135663986, + 0.045989904552698135, + 0.03695208579301834, + 0.012917976826429367, + 0.07203559577465057, + 0.007588715758174658, + 0.04457893595099449, + -0.0071787722408771515, + 0.02072596363723278, + -0.0031579926144331694, + -0.025721551850438118, + -0.058612339198589325, + 0.03807704895734787, + -0.040040962398052216, + -0.04705766215920448, + 0.0392020083963871, + 0.017017409205436707, + -0.009790968149900436, + -0.0584598034620285, + -0.003153225639835, + -0.007498146500438452, + 0.007974824868142605, + 0.003522651270031929, + -0.019734473899006844, + 0.008904347196221352, + 0.0007704310119152069, + -0.02619822882115841, + 0.0052386922761797905, + 0.023242825642228127, + -0.02354789897799492, + -0.0073932777158916, + 0.009147453121840954, + -0.047439005225896835, + -0.02402457781136036, + 0.03849652409553528, + 0.03365347534418106, + -0.022136932238936424, + -0.008046326227486134, + -0.01261290255934, + 0.012755906209349632, + 0.007707885000854731, + 0.01136400643736124, + 0.020382756367325783, + -0.019143393263220787, + -0.007302708923816681, + -0.011230536736547947, + -0.0019245878793299198, + -0.023395361378788948, + -0.0006292150937952101, + -0.0010683548171073198, + -0.0671544149518013, + 0.028390947729349136, + -0.05270153284072876, + 0.003548868466168642, + -0.019515201449394226, + 0.007440945133566856, + 0.03413015231490135, + 0.011440274305641651, + -0.024768194183707237, + 0.032833587378263474, + 0.016168922185897827, + 0.015453904867172241, + 0.0620444230735302, + -0.006139614153653383, + -0.0003613815933931619, + 0.017084144055843353, + 0.004547509364783764, + -0.03331026807427406, + -0.007736485917121172, + 0.033214930444955826, + -0.02490166388452053, + -0.011821617372334003, + -0.025168605148792267, + 0.00566293578594923, + 0.06330285221338272, + 0.030869673937559128, + 0.02120264247059822, + 0.009371492080390453, + 0.033233996480703354, + -0.013203984126448631, + -0.01627379097044468, + -0.011392607353627682, + -0.001186928479000926, + -0.0490025095641613, + 0.033786945044994354, + 0.03247131407260895, + 0.00144671811722219, + -0.019286395981907845, + 0.053540486842393875, + 0.029782848432660103, + 0.020020481199026108, + 0.01518696453422308, + -0.017513154074549675, + -0.03617033362388611, + 0.00878994446247816, + 0.008518237620592117, + -0.0067688291892409325, + -0.004759631119668484, + 0.008818545378744602, + 0.05384555831551552, + -0.04541788995265961, + -0.03222344070672989, + -0.013108648359775543, + -0.024939799681305885, + -0.05678189545869827, + -0.005920342169702053, + -0.019210128113627434, + 0.010391582734882832, + 0.038038913160562515, + -0.03231877461075783, + 0.010944529436528683, + 0.02089756913483143, + -0.011916953139007092, + 0.01750362105667591, + 0.03184209764003754, + 0.0360940657556057, + 0.00429486995562911, + -0.04385438561439514, + 0.0308506079018116 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "连杆小段轴承", + "组成编码": "020203", + "维修项目名称": "更换连杆小段轴承", + "维修项目编号": "MT005", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.7 MT005 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT005020203连杆小段轴承更换连杆小段轴承2A/12000hJY级
安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。
安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。
序号名称规格/型号数量及单位备注
1活塞吊装专用吊具OEM-MAN-BW-PST-051套带缓冲橡胶夹头
2感应加热器EFD Induction Minac161台温控精度±5℃
3内径千分尺40 - 50 mm1把校验有效期内
4铜棒与塑料锤Φ20×300 mm各1把
2)备品备件
名称规格/型号消耗数量备注
1连杆小端衬套(上)MAN 5L35MC-BUSH-UP1件锡青铜基
2连杆小端衬套(下)MAN 5L35MC-BUSH-DN1件
3活塞销卡簧Φ50×2.5 mm2个不锈钢,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1高温装配润滑脂Molycote G-10525g
2清洗剂Brulin 815GD150mL
3耐高温标记笔Markal 900°F1支
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业2工程师+技师工程师主导热装
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\\n拆卸旧衬套\\n1)抽出活塞-连杆总成\\n(1)拆除缸头、喷油器及冷却水管路;\\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\\n2)压出旧衬套\\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\\n安装新衬套\\n1)清洁与预装检查\\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\\n(2)测量座孔内径,记录作为过盈量计算依据。\\n2)热装新衬套\\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\\n(2)迅速将热衬套套入连杆小端,确保完全到位;\\n(3)自然冷却至室温,禁止强制冷却。\\n3)精铰与研配(如需要)\\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\\n组装活塞销与卡簧\\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\\n\\n
验收标准
1.衬套与座孔过盈配合牢固,无松动或轴向位移;
2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_989f92a1-7f51-4cdf-8bbb-2aeba9ccac07.pdf#page=31\"}]", + "embedding": [ + -0.01259953435510397, + 0.000123042322229594, + -0.04492971673607826, + 0.012266995385289192, + 0.0017111904453486204, + 0.011140057817101479, + 0.026011941954493523, + 0.014594768173992634, + -0.04843985289335251, + 0.003401597263291478, + 0.015934161841869354, + 0.038131143897771835, + 0.048957135528326035, + 0.023776540532708168, + 0.0004748495703097433, + -0.026270583271980286, + -0.024940427392721176, + -0.024792632088065147, + 0.025808723643422127, + 0.012618009001016617, + -0.037151999771595, + 0.015259847044944763, + -0.04105009511113167, + 0.05254116654396057, + -0.001690406701527536, + 0.02811802178621292, + 0.020007764920592308, + 0.013698760420084, + -0.03585879132151604, + 0.03473185375332832, + -0.014142146334052086, + 0.017495248466730118, + 0.02732362411916256, + -0.03707810118794441, + -0.020321829244494438, + -0.05394522100687027, + 0.00524210836738348, + 0.012691906653344631, + -0.07685346156358719, + 0.026178210973739624, + -0.013569439761340618, + -0.04722054302692413, + 0.02285282127559185, + -0.006147353444248438, + 0.032551877200603485, + -0.0471096970140934, + 0.020765215158462524, + -0.04245414957404137, + -0.008410465903580189, + -0.025790249928832054, + 0.020321829244494438, + -0.023185359314084053, + -0.0010651641059666872, + -0.019342686980962753, + -0.01292283646762371, + 0.05180219188332558, + -0.026011941954493523, + -0.0551275797188282, + -0.08912046253681183, + 0.0077500068582594395, + 0.024386195465922356, + 0.07068301737308502, + -0.011989879421889782, + -0.0007141506648622453, + 0.04020027443766594, + 0.0600048191845417, + 0.022113844752311707, + -0.015028916299343109, + -0.022557230666279793, + -0.046444617211818695, + -0.015416879206895828, + 0.004941899329423904, + 0.033567968755960464, + -0.02213232032954693, + -0.04485582187771797, + 0.03478727862238884, + 0.009311093017458916, + 0.0004569525190163404, + -0.002111853798851371, + 0.007532932795584202, + 0.05172829329967499, + 0.024238400161266327, + 0.028247343376278877, + -0.01635907217860222, + -0.015130525454878807, + 0.05715976282954216, + -0.060041770339012146, + -0.01456705667078495, + -0.08202629536390305, + 0.048883236944675446, + 0.023739591240882874, + 0.005449945107102394, + 0.027046507224440575, + -0.005112787708640099, + -0.001434074598364532, + -0.03539693355560303, + -0.037743180990219116, + 0.002861221320927143, + 0.03220086172223091, + 0.031443413347005844, + -0.0198784451931715, + 0.0491788275539875, + 0.006041125860065222, + -0.027600739151239395, + 0.0188438780605793, + -0.02835818938910961, + -0.006687729619443417, + -0.00969905499368906, + -0.030963078141212463, + 0.01428994070738554, + -0.017014913260936737, + 0.03901791200041771, + 0.008646015077829361, + -0.0024201450869441032, + -0.014622480608522892, + -0.02889394760131836, + -0.04334092140197754, + -0.01307063177227974, + 0.05693807080388069, + -0.026085838675498962, + 0.030279526486992836, + 0.0017793147126212716, + 0.0307044368237257, + -0.022631129249930382, + 0.051469653844833374, + 0.011601917445659637, + 0.0505828820168972, + 0.023573322221636772, + -0.030796809121966362, + 0.033401697874069214, + 0.007325096055865288, + 0.012516399845480919, + -0.027582265436649323, + 0.025864146649837494, + -0.03354949504137039, + -0.04311922937631607, + -0.01370799820870161, + -0.03425151854753494, + -0.001165041234344244, + -0.03007630817592144, + 0.0015079721342772245, + -0.0075144581496715546, + -0.017883209511637688, + -0.0037295175716280937, + -0.0048402901738882065, + -0.050435084849596024, + 0.016128143295645714, + 0.026011941954493523, + -0.0019709866028279066, + -0.021892152726650238, + 0.0018127996008843184, + 0.03391898050904274, + -0.016710085794329643, + -0.045890387147665024, + 0.008512075059115887, + -0.0411609411239624, + -0.019416583701968193, + 0.059007205069065094, + -0.0013186095748096704, + 0.024090604856610298, + 0.10264371335506439, + 0.03923960402607918, + 0.0022411744575947523, + -0.05324319377541542, + 0.03857452794909477, + 0.04788561910390854, + 0.04725749045610428, + 0.012128437869250774, + 0.015500013716518879, + -0.024515517055988312, + -0.0010530402651056647, + 0.006669254973530769, + -0.010696671903133392, + 0.034436263144016266, + 0.03491659834980965, + 0.0023947427980601788, + 0.04374735802412033, + 0.012128437869250774, + 0.01189750712364912, + -0.03330932557582855, + 0.010493453592061996, + 0.04548395052552223, + 0.00409438693895936, + -0.008438178338110447, + -0.010779807344079018, + 0.06591662764549255, + 0.07179148495197296, + -0.014650192111730576, + 0.026326006278395653, + 0.011611154302954674, + -0.006502985488623381, + 0.02708345651626587, + 0.037724707275629044, + -0.05110016465187073, + 0.03486117348074913, + 0.026270583271980286, + -0.0013982804957777262, + -0.038205038756132126, + 0.026603123173117638, + -0.001906326157040894, + -0.010696671903133392, + -0.0205804705619812, + 0.00017723868950270116, + -0.023591795936226845, + -0.048107314854860306, + 0.020081663504242897, + 0.013255375437438488, + -0.014437736012041569, + 0.01761533133685589, + 0.0041174800135195255, + -0.030907655134797096, + -0.009223339147865772, + 0.010632012039422989, + -0.023296207189559937, + -0.04042196646332741, + -0.0064152320846915245, + -0.03116629645228386, + -0.08335644751787186, + -0.022871294990181923, + 0.008327331393957138, + -0.06647085398435593, + 0.05549706891179085, + -0.0268617644906044, + 0.04995475336909294, + 0.041567377746105194, + -0.05911805108189583, + 0.01932421326637268, + -0.0007574500050395727, + -0.002312762662768364, + -0.052725911140441895, + 0.005625451914966106, + 0.03142493963241577, + 0.02811802178621292, + -0.0019340377766638994, + 0.043377868831157684, + 0.04167822375893593, + 0.01787397265434265, + 0.052023883908987045, + 0.02010013721883297, + -3.500031016301364e-05, + 0.013929690234363079, + 0.029171062633395195, + 0.07352807372808456, + -0.015195186249911785, + -0.001233165618032217, + -0.012738091871142387, + -0.03724437206983566, + 0.05911805108189583, + -0.03589574247598648, + 0.004235254134982824, + -0.0034939690958708525, + 0.022834347561001778, + -0.06491900980472565, + -0.020783688873052597, + 0.014474685303866863, + 0.004244491457939148, + 0.028395138680934906, + -0.021541139110922813, + 0.011749712750315666, + -0.010733621194958687, + -0.018492864444851875, + 0.03170205280184746, + -0.013449355959892273, + 0.02048809826374054, + -0.00832271296530962, + 0.04555784538388252, + -0.01869608275592327, + 0.02473720908164978, + -0.045594796538352966, + 0.02089453488588333, + -0.0725674033164978, + 0.006512222811579704, + -0.03894401714205742, + 0.011666577309370041, + -0.006904803682118654, + 0.016192803159356117, + 0.0027041889261454344, + -0.01480722427368164, + 0.06713593751192093, + -0.028838524594902992, + 0.029632922261953354, + 0.03850062936544418, + 0.06118718162178993, + -0.006507603917270899, + -0.002373959170654416, + -0.003380813403055072, + -0.09251974523067474, + 0.010087016969919205, + 0.007084928918629885, + -0.030334949493408203, + -0.021171651780605316, + -0.03744759038090706, + 0.06211090087890625, + -0.011019974015653133, + -0.002010244643315673, + -0.006198158022016287, + -0.013846555724740028, + -0.14114435017108917, + 0.013957401737570763, + -0.031147822737693787, + 0.0109091280028224, + 0.002061049221083522, + 0.018345069140195847, + -0.022575704380869865, + -0.0171072855591774, + 0.027748534455895424, + -0.007398993242532015, + 0.023203834891319275, + -0.08350424468517303, + -0.047626979649066925, + -0.014317653141915798, + -0.00028592004673555493, + 0.015841789543628693, + -0.030445795506238937, + 0.01056735124439001, + 0.005158973392099142, + -0.005482275504618883, + 0.007629923522472382, + -0.012895124964416027, + 0.025938045233488083, + 0.010881416499614716, + 0.0020864515099674463, + -0.03354949504137039, + 0.059709228575229645, + -0.002230782760307193, + -9.850602509686723e-05, + -0.013375459238886833, + 0.009057070128619671, + 0.028542933985590935, + -0.00804559700191021, + 0.02615973725914955, + -0.01476103812456131, + 0.001901707611978054, + -0.01923184096813202, + 0.014373076148331165, + -0.0005109323537908494, + -0.00023800210328772664, + 0.028616830706596375, + 0.023739591240882874, + 0.015342981554567814, + 0.007103403098881245, + -0.026196686550974846, + -0.09052451699972153, + 0.0307044368237257, + -0.02440466918051243, + -0.06587968021631241, + 0.00031233267509378493, + -0.020525047555565834, + 0.002978995442390442, + 0.010983025655150414, + -0.01405901089310646, + -0.008059453219175339, + -0.017356690019369125, + 0.012017590925097466, + 0.009417320601642132, + 0.02128249779343605, + -0.017014913260936737, + -0.030833758413791656, + -0.01232241839170456, + -0.016820931807160378, + -0.05945058912038803, + -0.05919194594025612, + -0.03676403686404228, + 0.026991084218025208, + 0.005200541112571955, + 0.0033046065364032984, + -0.06502985209226608, + 0.03491659834980965, + 0.031535785645246506, + 0.02017403393983841, + -0.022150794044137, + -0.030353423207998276, + 0.03659776598215103, + 0.03879621997475624, + 0.014086722396314144, + -0.01558314822614193, + -0.11055075377225876, + 0.02239096164703369, + 0.04105009511113167, + -0.013218426145613194, + -0.044634126126766205, + -0.04633377119898796, + -0.000277981860563159, + 0.024792632088065147, + -0.02874615229666233, + -0.010114728473126888, + 0.189916729927063, + -0.017116522416472435, + -0.03920265659689903, + -0.01836354471743107, + 0.0634780079126358, + -0.06103938817977905, + 0.0225202813744545, + -0.0457056425511837, + 0.038278937339782715, + -0.03244103118777275, + -0.011694288812577724, + -0.013698760420084, + -0.004812578670680523, + 0.004570102319121361, + -0.01722736842930317, + 0.01071514654904604, + -0.015860265120863914, + -0.002789632882922888, + 0.09503226727247238, + 0.00823957845568657, + 0.04925272613763809, + 0.01118624396622181, + -0.032219335436820984, + -0.022963667288422585, + -0.04659241437911987, + -0.047146644443273544, + -0.006235106848180294, + 0.004988085478544235, + 0.04452328011393547, + 0.024995850399136543, + 0.009301855228841305, + 0.03029800020158291, + 0.007112640421837568, + -0.023979758843779564, + 0.026677019894123077, + 0.010003882460296154, + 0.015666283667087555, + 0.010465742088854313, + -0.026991084218025208, + 0.032163914293050766, + 0.013181477785110474, + -0.04437548667192459, + -0.02615973725914955, + 0.005902567878365517, + -0.02647380158305168, + -0.07060912251472473, + -0.023148411884903908, + 0.002003316767513752, + -0.005288294516503811, + 0.022631129249930382, + -0.022261640056967735, + 0.03534150868654251, + -0.040717557072639465, + -0.0258271973580122, + -0.014160620048642159, + -0.05497978627681732, + 0.022945193573832512, + -0.040643658488988876, + 0.0065168412402272224, + -0.014151383191347122, + 0.019342686980962753, + 0.0015276011545211077, + -0.004205232951790094, + -0.03693030774593353, + -0.034990496933460236, + -0.0003960447502322495, + -0.04541005194187164, + 0.015287558548152447, + 0.06092853844165802, + 0.009260288439691067, + 0.02865377999842167, + -0.02983614057302475, + -0.031535785645246506, + 0.024090604856610298, + 0.04500361531972885, + -0.021707408130168915, + 0.007657635025680065, + 0.07393451035022736, + -0.030334949493408203, + -1.2755267562170047e-05, + -0.06048515439033508, + -0.007121877744793892, + -0.05727061256766319, + 0.007579118944704533, + 0.00012859907292295247, + -0.03343864530324936, + -0.016008058562874794, + 0.036394547671079636, + -0.031055450439453125, + -0.020765215158462524, + -0.014234517700970173, + 0.002819653833284974, + 0.030482744798064232, + 0.015324506908655167, + -0.034269995987415314, + 0.0411609411239624, + 0.02872767671942711, + -0.054684195667505264, + -0.0029512839391827583, + 0.034510161727666855, + -0.033087633550167084, + -0.024607887491583824, + -0.01899167336523533, + -0.056642480194568634, + -0.007315858732908964, + 0.011879033409059048, + -0.0006616141181439161, + -0.013966639526188374, + 0.008438178338110447, + -0.030722912400960922, + -0.010197863914072514, + 0.029152588918805122, + -0.0225202813744545, + -0.04300837963819504, + 0.0076807281002402306, + 0.021264024078845978, + 0.01755990833044052, + 0.05302150174975395, + 0.03968299180269241, + -0.031147822737693787, + -0.05926584452390671, + -0.00399739621207118, + -0.01971217431128025, + -0.010539639741182327, + -0.00804559700191021, + -0.00011827940033981577, + -0.001089989091269672, + -0.0109091280028224, + 0.013652574270963669, + 0.029466653242707253, + 0.015666283667087555, + -0.032699670642614365, + -0.034676432609558105, + -0.030815282836556435, + 0.04925272613763809, + 0.007426705211400986, + 0.029023267328739166, + 0.06573188304901123, + -0.06288682669401169, + -0.020469624549150467, + -0.006433706730604172, + -0.06218479946255684, + 0.024053657427430153, + -0.04178906977176666, + -0.01209148857742548, + -0.046296823769807816, + 0.006793957203626633, + 0.02096843346953392, + -0.034898124635219574, + 0.013578677549958229, + -0.01664542593061924, + 0.05364963039755821, + 0.01724584400653839, + -0.044966667890548706, + -0.0018763053230941296, + 0.008544405922293663, + -0.02615973725914955, + 0.03700420260429382, + 0.012109963223338127, + -0.017190421000123024, + -0.016700848937034607, + 0.00712649617344141, + 0.011694288812577724, + -0.013883504085242748, + 0.019065571948885918, + 0.043377868831157684, + -0.010955313220620155, + 0.07434094697237015, + 0.03116629645228386, + -0.0439690500497818, + 0.02850598469376564, + -0.017522959038615227, + -0.05693807080388069, + 0.03739216551184654, + 0.015767892822623253, + -0.029023267328739166, + -0.005288294516503811, + 0.006937133613973856, + -0.050250343978405, + 0.05497978627681732, + -0.004283749498426914, + 0.028395138680934906, + 0.009726766496896744, + -0.04718359187245369, + -0.02464483678340912, + 0.033567968755960464, + -0.023499425500631332, + -0.021615037694573402, + 0.02976224385201931, + 0.007486746646463871, + -0.03432541713118553, + 0.05505368486046791, + 0.0198784451931715, + -0.0061057861894369125, + -0.05087847262620926, + -0.014012825675308704, + -0.020137086510658264, + -0.010511928237974644, + 0.007214249577373266, + -0.07840531319379807, + -0.02817344479262829, + 0.004232944920659065, + -0.007195774931460619, + -0.0039812312461435795, + 0.0036764037795364857, + -0.045742589980363846, + -0.03303220868110657, + -0.02567940205335617, + 0.029411230236291885, + -0.021448766812682152, + 0.013301561586558819, + -0.01754143461585045, + -0.018372781574726105, + -0.007052598521113396, + -0.03824198991060257, + -0.004008942749351263, + 0.012442502193152905, + 0.012867413461208344, + -0.08187849819660187, + -0.06244343891739845, + -0.012673432007431984, + 0.0013301561120897532, + 0.01628517545759678, + 0.019453532993793488, + -0.029078690335154533, + 0.019767597317695618, + -0.015767892822623253, + -0.01606348343193531, + 0.05364963039755821, + -0.012738091871142387, + 0.0036463828291743994, + 0.039535194635391235, + 0.00823957845568657, + -0.023665694519877434, + 0.020118610933423042, + -0.03007630817592144, + 0.017846262082457542, + 0.06602746993303299, + -0.01307063177227974, + 0.0015853336080908775, + 0.015860265120863914, + 0.010946076363325119, + 0.023665694519877434, + 0.021615037694573402, + -0.04444938525557518, + 0.060817692428827286, + -0.014650192111730576, + 0.014604005962610245, + 0.055090632289648056, + -0.013246137648820877, + 0.033087633550167084, + 0.01848362758755684, + 0.03635760024189949, + 0.020746741443872452, + -0.0015506941126659513, + -0.04308227822184563, + -0.037743180990219116, + 0.015998821705579758, + -0.035988111048936844, + 0.010724383406341076, + -0.03253340348601341, + 0.0336788147687912, + -0.01562933437526226, + 0.01778160035610199, + 0.013901978731155396, + -0.0013232282362878323, + 0.045114461332559586, + -0.019564379006624222, + -0.009066306985914707, + -0.012848938815295696, + -0.01585102640092373, + 0.007089547347277403, + -0.009948459453880787, + -0.055866558104753494, + 0.023905862122774124, + -0.012904361821711063, + 0.012793515808880329, + -0.02244638465344906, + 0.07171758264303207, + 0.03809419274330139, + -0.06078074499964714, + -0.01374494656920433, + -0.010872178710997105, + 0.011250903829932213, + 0.0036833316553384066, + 0.05442555621266365, + -0.01826193556189537, + -0.019896918907761574, + -0.03212696686387062, + -0.03619132936000824, + 0.04507751390337944, + 0.005583884660154581, + -0.016220515593886375, + 0.056014351546764374, + -0.032865941524505615, + 0.033494070172309875, + -0.023277731612324715, + 0.06621221452951431, + -0.03284746780991554, + 0.011278615333139896, + -0.0014906524447724223, + 0.009560497477650642, + -0.036948781460523605, + -0.009606682695448399, + -0.029392754659056664, + -0.006345953326672316, + -0.03157273307442665, + -0.007380519062280655, + -0.011731238104403019, + 0.00653531588613987, + 0.023905862122774124, + -0.0205804705619812, + -0.019213365390896797, + -0.007297384086996317, + 0.024866530671715736, + 0.015841789543628693, + -0.03345712274312973, + -0.03515676409006119, + 0.019582854583859444, + 0.0516543947160244, + 0.0005963764269836247, + 0.005699349567294121, + -0.007897801697254181, + -0.010114728473126888, + 0.007689964957535267, + -0.01075209490954876, + 0.030815282836556435, + 0.03118477202951908, + -0.022501807659864426, + 0.00537604745477438, + -0.009269525296986103, + 0.017883209511637688, + -0.02654770016670227, + -0.03667166456580162, + 0.028062598779797554, + 0.05246726796030998, + -0.017809312790632248, + 0.014354601502418518, + 0.007925513200461864, + 0.07205012440681458, + -0.03316153213381767, + 0.02464483678340912, + 0.025660928338766098, + -0.029485126957297325, + 0.010391844436526299, + -0.008479745127260685, + -0.0031013882253319025, + -0.010151677764952183, + 0.05002864822745323, + 0.022631129249930382, + 0.01746753603219986, + -0.005371429026126862, + -0.024718735367059708, + -0.030334949493408203, + -0.01862218603491783, + -0.03887011855840683, + -0.008082546293735504, + -0.014742563478648663, + 0.048883236944675446, + 0.00683090602979064, + 0.009782189503312111, + 0.0031960695050656796, + 0.015084340237081051, + 0.025217542424798012, + -0.005533080082386732, + -0.0007632232736796141, + 0.03155425935983658, + -0.014437736012041569, + 0.019601328298449516, + -0.01292283646762371, + 0.020303355529904366, + -0.008955460973083973, + 0.03831588476896286, + 0.052171677350997925, + -0.0092048654332757, + 0.026030415669083595, + -0.04932662472128868, + -0.010040831752121449, + 0.0003284977574367076, + 0.017458299174904823, + 0.007043361198157072, + -0.03244103118777275, + -0.006272055674344301, + -0.028986318036913872, + 0.04020027443766594, + -0.010142439976334572, + -0.021245548501610756, + -0.02017403393983841, + 0.016830170527100563, + 0.05364963039755821, + -0.03358644247055054, + 0.014890358783304691, + -0.026566173881292343, + 0.04075450450181961, + -0.12015743553638458, + 0.0037456827703863382, + -0.02850598469376564, + -0.023499425500631332, + -0.02773006074130535, + -0.02017403393983841, + -0.0027434469666332006, + -0.022409435361623764, + -0.015693994238972664, + -0.02652922458946705, + -0.01075209490954876, + -0.012276232242584229, + 0.01985996961593628, + -0.018742268905043602, + -0.012848938815295696, + 0.022427910938858986, + 0.006978700868785381, + -0.018631422892212868, + 0.015961874276399612, + 0.023222308605909348, + 0.004570102319121361, + -0.02811802178621292, + 0.01932421326637268, + -0.018178800120949745, + -0.012414790689945221, + 0.05032423883676529, + 0.051469653844833374, + 0.007131114602088928, + -0.03220086172223091, + -0.08276526629924774, + 0.008022503927350044, + -0.03923960402607918, + 0.07663176953792572, + 0.04485582187771797, + 0.009158679284155369, + 0.029466653242707253, + 0.0284320879727602, + -0.019989291206002235, + 0.05874856188893318, + 0.009306474588811398, + 0.012784278020262718, + 0.023203834891319275, + 0.029632922261953354, + 0.04600123316049576, + 0.019989291206002235, + -0.0002444970014039427, + -0.010327184572815895, + -0.01872379519045353, + -0.034602534025907516, + 0.017966344952583313, + 0.02748989313840866, + -0.02002623863518238, + 0.04108704626560211, + 0.026898711919784546, + 0.03327237814664841, + 0.008151824586093426, + -0.054795041680336, + 0.005057364236563444, + 0.002250411780551076, + 0.025716351345181465, + -0.03532303497195244, + 0.03644997254014015, + -0.015222897753119469, + -0.04056975990533829, + -0.018862353637814522, + 0.030408846214413643, + 0.0014710233081132174, + 7.577386713819578e-05, + 0.01778160035610199, + 0.003708733944222331, + -0.02128249779343605, + -0.007131114602088928, + 0.014502396807074547, + -0.02684328891336918, + 0.013338509947061539, + -0.018132613971829414, + 0.05239337310194969, + -0.00010204214049736038, + -0.00830885674804449, + -0.03798334673047066, + 0.034547109156847, + -0.012507162056863308, + 0.000805367948487401, + 0.01930573768913746, + 0.04130873829126358, + 0.0010085862595587969, + -0.019841495901346207, + -0.016673138365149498, + -0.02128249779343605, + -0.032163914293050766, + -0.018566763028502464, + 0.0354154072701931, + -0.018853114917874336, + -0.0035909595899283886, + 0.024127554148435593, + 0.008276526816189289, + -0.029466653242707253, + -0.01742134988307953, + -0.017522959038615227, + -0.014493159018456936, + -0.01754143461585045, + -0.032865941524505615, + 0.03824198991060257, + 0.022095371037721634, + -0.02065436914563179, + -0.01416985783725977, + 0.004784867167472839, + 0.014751801267266273, + -0.020765215158462524, + 0.0006720059318467975, + -0.026510750874876976, + 0.01691330410540104, + -0.02811802178621292, + -0.015693994238972664, + -0.03188679739832878, + 0.00154030229896307, + -0.00537604745477438, + -0.0025448473170399666, + -0.023333154618740082, + -0.028154971078038216, + -0.012987496331334114, + 0.02889394760131836, + -0.007334332913160324, + -0.027656162157654762, + -0.020007764920592308, + -0.018391255289316177, + 0.03408525139093399, + 0.03887011855840683, + -0.0035817224998027086, + 0.06872473657131195, + 0.013338509947061539, + 0.023425526916980743, + -0.02527296543121338, + 0.005593121983110905, + -0.004780248738825321, + -0.01961980201303959, + -0.06259123235940933, + 0.03338322415947914, + -0.03602506220340729, + -0.028487510979175568, + 0.015536962077021599, + 0.019749123603105545, + -0.022945193573832512, + -0.036708615720272064, + -0.004350719042122364, + 0.005352954845875502, + 0.017171945422887802, + 0.012904361821711063, + -0.009061688557267189, + 0.020525047555565834, + 0.00409438693895936, + -0.031277142465114594, + 0.000641985097900033, + 0.0102902352809906, + -0.01495501957833767, + -0.0044777304865419865, + -0.010179389268159866, + -0.018834641203284264, + -0.029226485639810562, + 0.025309914723038673, + 0.03548930585384369, + -0.032071541994810104, + -0.009389609098434448, + -0.009634395129978657, + -0.00657226424664259, + -0.0018890064675360918, + 0.008193392306566238, + 0.03290288895368576, + -0.0006396757671609521, + -0.005717823747545481, + -0.005690112244337797, + 0.0025610122829675674, + -0.01930573768913746, + -0.01048421673476696, + 0.011666577309370041, + -0.03783555328845978, + 0.015934161841869354, + -0.043377868831157684, + -0.004766392987221479, + -0.02167046070098877, + 0.01899167336523533, + 0.046666309237480164, + 0.002812725957483053, + -0.009865324944257736, + 0.018345069140195847, + 0.029466653242707253, + 0.036154381930828094, + 0.05483199283480644, + -0.005468419753015041, + -0.008433558978140354, + 0.016469920054078102, + 0.003916570916771889, + -0.015481539070606232, + -0.011758949607610703, + 0.027120405808091164, + -0.022113844752311707, + -0.02466331236064434, + -0.030353423207998276, + -0.009551259689033031, + 0.07877480238676071, + -0.0014802605146542192, + 0.016118906438350677, + -0.0005897372029721737, + -0.008184155449271202, + -0.022113844752311707, + 0.012100725434720516, + -0.0184097308665514, + -0.036560818552970886, + -0.06351495534181595, + 0.02553160861134529, + 0.07349112629890442, + 0.007639160379767418, + -0.025420760735869408, + 0.04788561910390854, + 0.013338509947061539, + 0.020451150834560394, + 0.010835230350494385, + -0.03693030774593353, + -0.03382660821080208, + 0.03375271335244179, + -0.014068248681724072, + -0.0061057861894369125, + -0.0005657782312482595, + 0.02089453488588333, + 0.058379072695970535, + -0.04297143220901489, + -0.01370799820870161, + 0.003563248086720705, + 0.016506867483258247, + -0.06525154411792755, + -0.01804948039352894, + -0.02026640623807907, + 0.017255080863833427, + 0.06979624927043915, + -0.03423304483294487, + 0.04341481626033783, + 0.009121729992330074, + -0.01879769191145897, + 0.0021130084060132504, + 0.018954724073410034, + 0.045262258499860764, + 0.019767597317695618, + -0.030408846214413643, + 0.01985996961593628 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "拆检活塞头磨损情况", + "编号": "MT006", + "内容": "表 4.8 MT006 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT006030201活塞头拆检活塞头磨损情况1A/8000hJY级
安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。
安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配350mm活塞
2内窥镜GE Mentor Visual iQ1台
3深度规0-150mm1把
4放大镜10× with scale1个
2)备品备件
名称规格/型号消耗数量备注
11本项目为检查类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1积碳清洗剂CRC Carbon CleanPro200mL环保型
2无纺布Industrial Grade5张
3防锈油CRC 3-3650mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。
抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态
1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查
(1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。
判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008;
3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.8 MT006 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT006030201活塞头拆检活塞头磨损情况1A/8000hJY级
安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。
安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配350mm活塞
2内窥镜GE Mentor Visual iQ1台
3深度规0-150mm1把
4放大镜10× with scale1个
2)备品备件
名称规格/型号消耗数量备注
11本项目为检查类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1积碳清洗剂CRC Carbon CleanPro200mL环保型
2无纺布Industrial Grade5张
3防锈油CRC 3-3650mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。
抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态
1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查
(1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。
判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008;
3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_5617ece6-b596-47da-a2c7-4218c18390b7.pdf#page=32\"}]", + "embedding": [ + 0.015690835192799568, + 0.013803782872855663, + -0.05246003717184067, + -0.004620918072760105, + -0.006354646757245064, + -0.0057602254673838615, + 0.037080567330121994, + -0.0007241560961119831, + -0.041477397084236145, + 0.007543489336967468, + -0.008001099340617657, + 0.013171620666980743, + 0.019455503672361374, + 0.025437457486987114, + 0.029702194035053253, + -0.020663216710090637, + 0.0029367241077125072, + -0.02628662995994091, + 0.005014840047806501, + -0.04521375894546509, + -0.0064725871197879314, + -0.010124032385647297, + -0.02458828315138817, + -0.00015214354789350182, + -0.004203407559543848, + 0.017898686230182648, + -0.0269093569368124, + 0.0166154894977808, + 0.052158109843730927, + 0.002556954976171255, + -0.004432212561368942, + -0.035646405071020126, + -0.032513901591300964, + -0.033306460827589035, + -0.045100536197423935, + -0.0806148499250412, + -0.013671689666807652, + -0.004948792979121208, + -0.02738112024962902, + 0.0662355124950409, + 0.006661292631179094, + -0.0321553610265255, + 0.0424586646258831, + -0.013379196636378765, + 0.028551092371344566, + -0.02662630006670952, + 0.01925736293196678, + -0.030721202492713928, + 0.0026159253902733326, + -0.017757156863808632, + -0.02375798113644123, + -0.0191913153976202, + 0.019163010641932487, + -0.05008235201239586, + 0.025871478021144867, + 0.014888837933540344, + 0.01584179885685444, + 0.03024943917989731, + -0.03779764473438263, + -0.019776301458477974, + -0.01803077943623066, + 0.04143965616822243, + -0.009661704301834106, + 0.008326615206897259, + 0.03317436948418617, + 0.07465176284313202, + -0.0030381532851606607, + 0.023701369762420654, + -0.024644894525408745, + -0.01258663460612297, + -0.027362249791622162, + 0.007680300623178482, + 0.018172306939959526, + 0.006684880703687668, + -0.022380433976650238, + 0.04740273952484131, + 0.024456189945340157, + -0.03557092323899269, + 0.03855246677994728, + 0.03955260291695595, + 0.04970494285225868, + 0.039779048413038254, + -0.029022855684161186, + 0.03674089536070824, + -0.028456740081310272, + 0.0191913153976202, + -0.014435945078730583, + -0.021172720938920975, + -0.03355177864432335, + -0.04313800111413002, + 0.009515457786619663, + 0.012058259919285774, + -0.026022443547844887, + 0.022720102220773697, + -0.00793505273759365, + -0.013501854613423347, + -0.039779048413038254, + -0.0437418594956398, + 0.056724775582551956, + -0.0070528555661439896, + 0.034080155193805695, + 0.019078092649579048, + 0.06136691942811012, + -0.01764393411576748, + 0.03379709646105766, + -0.026041314005851746, + 0.04151513800024986, + 0.02739999070763588, + 0.0020592452492564917, + -0.028400128707289696, + -0.004156231414526701, + 0.014209499582648277, + -0.020191453397274017, + -0.017209911718964577, + 0.0023493794724345207, + 0.020040489733219147, + -0.0029461595695465803, + -0.038326021283864975, + 0.0062744468450546265, + -0.017266523092985153, + 0.03621252253651619, + 0.03294792398810387, + 0.01220922451466322, + -0.021380295976996422, + -0.04000549763441086, + 0.0013787271454930305, + 0.06483909487724304, + -0.03876004368066788, + 0.05729088932275772, + -0.007854852825403214, + -0.00984097458422184, + 0.013086703605949879, + -0.02741886116564274, + -0.015879539772868156, + 0.006576375104486942, + -0.006897173821926117, + 0.0037599503993988037, + 0.013652819208800793, + -0.037382494658231735, + 0.01603993959724903, + 0.001481335610151291, + 0.046345990151166916, + 0.006208400242030621, + 0.016181468963623047, + 0.01392644178122282, + -0.03115522302687168, + 0.04208125174045563, + -0.004616199992597103, + 0.06329171359539032, + -0.02296542003750801, + -0.018285531550645828, + 0.004149154759943485, + 0.004748293664306402, + 0.01031273789703846, + -0.0020651421509683132, + -0.014134016819298267, + -0.011133604682981968, + 0.020361287519335747, + -0.026211148127913475, + 0.00936921127140522, + 0.05132780596613884, + 0.04657243564724922, + -0.03808070346713066, + -0.010963770560920238, + 0.03153263404965401, + -0.01659661903977394, + 0.024833600968122482, + 0.002338764723390341, + -0.011709155514836311, + -0.010661842301487923, + 0.047138553112745285, + -0.02977767586708069, + 0.02721128612756729, + -0.006590527947992086, + 0.0336650013923645, + 0.02000274881720543, + 0.029475746676325798, + 0.00026256556157022715, + 0.03715604916214943, + -0.029230430722236633, + 0.003134864615276456, + 0.029494618996977806, + 0.006911326665431261, + 0.009567352011799812, + 0.011529886163771152, + 0.023229606449604034, + 0.038344889879226685, + -0.006099894642829895, + 0.030117345973849297, + 0.007118902634829283, + -0.026343241333961487, + -0.022720102220773697, + 0.018964869901537895, + 0.012888562865555286, + 0.046044062823057175, + -0.02202189341187477, + 0.02281445451080799, + 0.009907021187245846, + 0.006566939875483513, + 0.002882471540942788, + 0.02313525415956974, + -0.02107836678624153, + 0.021965282037854195, + -0.00896349549293518, + -0.028211422264575958, + -0.02594696171581745, + 0.04815755784511566, + -0.013671689666807652, + 0.05223359167575836, + -0.023078642785549164, + 0.027437731623649597, + -0.03436321020126343, + 0.009586222469806671, + -0.041326433420181274, + -0.01323766727000475, + 0.0030971236992627382, + 0.003653803840279579, + 0.015153025276958942, + 0.012218659743666649, + -0.020984014496207237, + -0.042911555618047714, + 0.03736362233757973, + 0.05083717405796051, + -0.021285943686962128, + 0.021380295976996422, + -0.015568176284432411, + 0.005566802341490984, + 0.007246278692036867, + 0.03481610491871834, + -0.019115833565592766, + 0.00450297724455595, + -0.003564168931916356, + 0.005448861978948116, + -0.017681675031781197, + 0.06287655979394913, + 0.02438070811331272, + -0.005769660696387291, + 0.02221059799194336, + 0.009907021187245846, + -0.0027928363997489214, + -0.001470720861107111, + -0.027022579684853554, + 0.03940163925290108, + -0.021625611931085587, + -0.03604268655180931, + 0.0036372921895235777, + 0.05521513149142265, + 0.05151651054620743, + -0.027607565745711327, + -0.0006421872531063855, + 0.008614391088485718, + -0.00664713978767395, + -0.012218659743666649, + -0.020682087168097496, + 0.0201537124812603, + 0.01787981577217579, + 0.006859432905912399, + -0.03245728835463524, + -0.03562753647565842, + -0.024663764983415604, + 0.01563422381877899, + 0.08801209181547165, + 0.01850254274904728, + 0.012614940293133259, + 0.008081299252808094, + 0.039099711924791336, + -0.030192827805876732, + 0.036778636276721954, + 0.024342967197299004, + -0.012416800484061241, + -0.035665277391672134, + 0.015020931139588356, + -0.015360601246356964, + 0.006255576387047768, + 0.004540718160569668, + 0.04932752996683121, + 0.017719415947794914, + 0.005335638765245676, + 0.07050025463104248, + -0.01642678491771221, + 0.003672674298286438, + -0.002258565044030547, + 0.016813630238175392, + -0.002168930135667324, + 0.016153162345290184, + -0.011633673682808876, + -0.08001099526882172, + -0.057064443826675415, + 0.025078916922211647, + -0.03491045534610748, + 0.05687573924660683, + -0.01820061355829239, + 0.0696699470281601, + -0.0008715820149518549, + -0.0525355190038681, + 0.04404378682374954, + 0.004330783616751432, + -0.16032391786575317, + -0.01689854823052883, + -0.036438968032598495, + 0.050459761172533035, + 0.0023399440106004477, + -0.01219978928565979, + -0.044647641479969025, + 0.020889662206172943, + -0.08687985688447952, + -0.030947647988796234, + -0.02662630006670952, + -0.055177390575408936, + -0.016087114810943604, + -0.010671277530491352, + 0.034570787101984024, + 0.02253139764070511, + -0.013983053155243397, + -0.05355452746152878, + 0.00046173797454684973, + -0.04136417433619499, + -0.02285219542682171, + 0.005401685368269682, + 0.040835797786712646, + -0.03464626893401146, + -0.047176294028759, + -0.04645921289920807, + -0.0005454758647829294, + -0.011869555339217186, + -0.014473686926066875, + 0.038948748260736465, + -0.033929187804460526, + -0.013822653330862522, + -0.004804905503988266, + 0.05449805408716202, + 0.0020344776567071676, + 0.03683524951338768, + 0.00969001092016697, + -0.06080080568790436, + -0.027437731623649597, + 0.02077643945813179, + 0.059895019978284836, + 0.06423524022102356, + -0.0037953327409923077, + 0.06272559612989426, + -0.004915769677609205, + -0.05891375243663788, + 0.0037316447123885155, + -0.034099023789167404, + -0.013775477185845375, + 0.001832798938266933, + -0.0033731048461049795, + -0.00673677446320653, + 0.009737187065184116, + -0.015388906933367252, + -0.009284294210374355, + -0.007420830894261599, + 0.02706032060086727, + 0.015502129681408405, + -0.049969129264354706, + 0.015766317024827003, + -0.04706306755542755, + -0.08303027600049973, + -0.0020061717368662357, + 0.028418999165296555, + -0.03458965942263603, + -0.040873538702726364, + -0.08287931233644485, + -0.045100536197423935, + -0.0006504431366920471, + -0.02645646408200264, + 0.013133879750967026, + -0.013860395178198814, + 0.006349929142743349, + -0.03853359445929527, + 0.008873860351741314, + -0.015605917200446129, + -0.012058259919285774, + -0.02298429049551487, + 0.0007318222196772695, + -0.14039663970470428, + -0.029154948890209198, + 0.030664589256048203, + -0.002295126672834158, + -0.02992863953113556, + -0.015539870597422123, + 0.026550818234682083, + 0.0017915196949616075, + 0.02741886116564274, + 0.02283332496881485, + 0.23535308241844177, + -0.02426748536527157, + -0.0062744468450546265, + -0.028079329058527946, + 0.04517601802945137, + -0.04143965616822243, + -0.0058404249139130116, + 0.006982091348618269, + 0.031853433698415756, + -0.0308721661567688, + -0.035023678094148636, + -0.004352013114839792, + 0.011048687621951103, + 0.024663764983415604, + -0.006618833635002375, + -0.0045808181166648865, + 0.006637704558670521, + 0.021342555060982704, + 0.08959721773862839, + -0.044949572533369064, + 0.026701781898736954, + 0.009067283011972904, + 0.0017702904297038913, + -0.008977648802101612, + -0.026720652356743813, + -0.0563851036131382, + -0.016304126009345055, + 0.07046250998973846, + -0.02566390298306942, + 0.06049887835979462, + -0.008255851455032825, + 0.041817065328359604, + 0.028720926493406296, + 0.014832226559519768, + -0.04513827711343765, + -0.005189392250031233, + -0.0251921396702528, + -0.003597192233428359, + 0.03647670894861221, + 0.038948748260736465, + 0.01936114951968193, + -0.009619246236979961, + -0.015511564910411835, + 0.021833188831806183, + 0.03068345971405506, + -0.06974542886018753, + 0.0037269270978868008, + 0.051403287798166275, + 0.04611954465508461, + 0.018087390810251236, + 0.009765492752194405, + 0.018228920176625252, + 0.017332570627331734, + 0.004109055269509554, + -0.012331882491707802, + 0.03536335006356239, + 0.002122933277860284, + -0.03759007155895233, + -0.004715270362794399, + 0.04317574203014374, + 0.04411926865577698, + 0.01006742101162672, + -0.08884239196777344, + -0.008472861722111702, + -0.02264462038874626, + -0.005137498024851084, + -0.06412201374769211, + 0.027834013104438782, + 0.003611345076933503, + -0.01456803921610117, + -0.0028282187413424253, + 0.029324783012270927, + -0.007628406397998333, + 0.024946823716163635, + 0.052497778087854385, + -0.03192891553044319, + -0.024607153609395027, + 0.061329178512096405, + 0.007996381260454655, + 0.03038153238594532, + -0.03985453024506569, + -0.03872229903936386, + -0.034702882170677185, + 0.028098199516534805, + 0.03540109097957611, + -0.02673952281475067, + 0.016181468963623047, + 0.0007789985393173993, + -0.02185205928981304, + -0.04404378682374954, + -0.0061565060168504715, + 0.014813356101512909, + -0.02896624431014061, + 0.021795447915792465, + -0.01899317465722561, + -0.015162460505962372, + -0.009633398614823818, + -0.030815554782748222, + -0.031400538980960846, + -0.010784500278532505, + -0.014775615185499191, + -0.04362863674759865, + -0.0351557731628418, + -0.007699171081185341, + -0.022927677258849144, + 0.047780148684978485, + -0.026645170524716377, + 0.021965282037854195, + 0.016068244352936745, + 0.0023871203884482384, + 0.022267209365963936, + 0.013265973888337612, + 0.0010974385077133775, + -0.027003709226846695, + -0.036118168383836746, + 0.013917006552219391, + -0.0338725782930851, + 0.06276334077119827, + 0.012284706346690655, + 0.01873842254281044, + -0.043062519282102585, + 0.05997050181031227, + -0.04898786172270775, + 0.06012146547436714, + -0.007670864928513765, + -0.0239089448004961, + -0.03762781247496605, + 0.02032354660332203, + -0.020870791748166084, + 0.06487683951854706, + -0.00048650550888851285, + -0.009307882748544216, + -0.025626162067055702, + -0.03845811262726784, + 0.07465176284313202, + 0.02438070811331272, + -0.004198689945042133, + 0.028381258249282837, + 0.04377960041165352, + 0.027437731623649597, + -0.008902166038751602, + -0.06215948238968849, + -0.0030145649798214436, + -0.003693903796374798, + 0.00855306163430214, + -0.05619639903306961, + 0.011482710018754005, + -0.06600906699895859, + -0.041817065328359604, + 0.03940163925290108, + -0.012907433323562145, + 0.04785563051700592, + -0.028720926493406296, + -0.05430934950709343, + -0.025267621502280235, + -0.07986003160476685, + -0.022097375243902206, + -0.008491733111441135, + -0.012114872224628925, + -0.024909082800149918, + -0.021908670663833618, + -0.009812668897211552, + -0.017672238871455193, + 0.0028730363119393587, + 0.016558878123760223, + 0.04830852523446083, + -0.022889936342835426, + 0.011539321392774582, + 0.035193514078855515, + 6.884790491312742e-05, + 0.02122933231294155, + -0.03685411810874939, + -0.04676114022731781, + 0.021814318373799324, + 0.004300118889659643, + 0.045100536197423935, + -0.009274858981370926, + 0.025060046464204788, + -0.01558704674243927, + 0.03557092323899269, + -0.0005310281412675977, + 0.04174158349633217, + -0.012086566537618637, + 0.01612485758960247, + -0.005939495284110308, + 0.013001786544919014, + -0.02249365672469139, + -0.012369624339044094, + 0.010095726698637009, + -0.0016594261396676302, + -0.06064984202384949, + 0.09880602359771729, + 0.02566390298306942, + -0.010916594415903091, + 0.024663764983415604, + -0.03719379007816315, + 0.030419273301959038, + 0.027286767959594727, + -0.021285943686962128, + -0.03196665644645691, + -0.007274584379047155, + 0.0028235011268407106, + 0.009496587328612804, + 0.009227682836353779, + -0.011001511476933956, + -0.015115284360945225, + 0.0025805432815104723, + 0.005198827479034662, + -0.002764530712738633, + 0.016587184742093086, + -0.01455860398709774, + 0.016483396291732788, + -0.016690973192453384, + 0.025588421151041985, + -0.04928978905081749, + 0.019200751557946205, + 0.04460990056395531, + 0.058347638696432114, + -0.04955397918820381, + -0.01478505041450262, + -0.009581505320966244, + 0.013511289842426777, + 0.08219996839761734, + -0.0016110703581944108, + 0.000695850292686373, + 0.02568277344107628, + 0.017398616299033165, + -0.017785461619496346, + -0.017285393550992012, + 0.014266110956668854, + 0.013615078292787075, + -0.013416937552392483, + 0.015077543444931507, + -0.05363000929355621, + 0.037042826414108276, + -0.033608391880989075, + 0.01670040749013424, + 0.029796546325087547, + 0.0141528882086277, + 0.043062519282102585, + 0.01007685624063015, + -0.0015827646711841226, + 0.024324096739292145, + 0.03545770049095154, + -0.019757431000471115, + 0.03413676470518112, + -0.020870791748166084, + -0.002323432359844446, + 0.009232399985194206, + 0.0030074885580688715, + 0.016728714108467102, + 0.048119816929101944, + 0.03207987919449806, + -0.013869830407202244, + 0.0021241125650703907, + 0.025928091257810593, + -0.023871203884482384, + -0.03149489313364029, + -0.07401017099618912, + -0.015728576108813286, + 0.016794759780168533, + 0.07250052690505981, + -0.004382677376270294, + 0.0424586646258831, + -0.02249365672469139, + -0.05400741845369339, + 0.0021040625870227814, + 0.012124307453632355, + -0.012869692407548428, + -0.03036266192793846, + -0.014841661788523197, + -0.01408684067428112, + -0.04766692593693733, + -0.035193514078855515, + -0.0218709297478199, + -0.008633261546492577, + -0.0006286241114139557, + 0.0456666499376297, + 0.01268098782747984, + 0.010029680095613003, + 0.02013484202325344, + -0.041137728840112686, + -0.041628360748291016, + -0.002592337317764759, + 0.031381670385599136, + -0.04011872038245201, + 0.0070387027226388454, + -0.027513213455677032, + -0.026494204998016357, + -0.005212980322539806, + -0.00021362015104386955, + -0.006477304734289646, + -0.0362313911318779, + 0.07570851594209671, + -0.0034438692964613438, + 0.02362588793039322, + -0.04868593439459801, + 0.013869830407202244, + -0.023965556174516678, + -0.016181468963623047, + -0.025060046464204788, + 0.0403074249625206, + -0.04789337143301964, + -0.038175057619810104, + 0.007307607680559158, + -0.008284157142043114, + -0.0021040625870227814, + -0.02849448099732399, + 0.03257051110267639, + 0.020191453397274017, + 0.010199514217674732, + -0.05872504785656929, + 0.00036650081165134907, + 0.04204351082444191, + -0.019795171916484833, + 0.006934915203601122, + 0.038024090230464935, + 0.013973617926239967, + 0.00441098352894187, + 0.018172306939959526, + -0.007694453466683626, + 0.006010259501636028, + -0.027588695287704468, + 0.027834013104438782, + -0.017058948054909706, + 0.011284569278359413, + -0.023569276556372643, + 0.020568864420056343, + -0.0054771676659584045, + -0.04189254716038704, + -0.01605881005525589, + 0.006382952444255352, + -0.0004110234440304339, + -0.04057161137461662, + 0.044496677815914154, + 0.03464626893401146, + 0.013652819208800793, + -0.01219978928565979, + 0.04215673357248306, + -0.020531121641397476, + -0.0345141738653183, + 0.021285943686962128, + 0.05914020165801048, + 0.01820061355829239, + -0.02281445451080799, + 0.035986077040433884, + -0.017832638695836067, + -0.014539733529090881, + 0.029853157699108124, + 0.025060046464204788, + -0.004566665273159742, + 0.03247616067528725, + -0.011709155514836311, + -0.009317317977547646, + 0.00779824098572135, + 0.023040901869535446, + 0.007854852825403214, + 0.02898511476814747, + -0.0017761874478310347, + -0.007463289424777031, + 0.010548618622124195, + -0.007793523371219635, + -0.008284157142043114, + 0.02379572205245495, + -0.014294416643679142, + -0.024663764983415604, + 0.010152338072657585, + -0.013445243239402771, + 0.0379486083984375, + -0.010907159186899662, + -0.051252324134111404, + -0.01938002184033394, + -0.0037929739337414503, + -0.011878990568220615, + -0.025871478021144867, + -0.013360326178371906, + -0.03736362233757973, + 0.021644482389092445, + 0.016879677772521973, + 0.0020733980927616358, + -0.01777602732181549, + -0.010057985782623291, + -0.008538909256458282, + -0.013398067094385624, + 0.005854577757418156, + 0.017313700169324875, + -0.014020794071257114, + 0.003382540075108409, + 0.04264736920595169, + 0.03477836400270462, + -0.025890348479151726, + -0.009954197332262993, + -0.006430128589272499, + 0.041628360748291016, + -0.15851233899593353, + 0.004444006830453873, + -0.011982778087258339, + -0.021304814144968987, + -0.026418723165988922, + -0.007807676214724779, + -0.005802683997899294, + 0.007562359794974327, + -0.0018422341672703624, + -0.011671414598822594, + 0.020833050832152367, + 0.04170384258031845, + 0.027928365394473076, + 7.062622898956761e-06, + -0.012086566537618637, + 0.04774240776896477, + -0.006934915203601122, + -0.011001511476933956, + -0.0011068737367168069, + 0.02017258293926716, + 0.028400128707289696, + -0.002015607198700309, + -0.0347406230866909, + 0.001695987768471241, + -0.0018705399706959724, + -0.005321485921740532, + 0.02407877892255783, + 0.002653666539117694, + 0.011907296255230904, + 0.004708194173872471, + -0.04302477836608887, + -0.05525287240743637, + 0.0375145860016346, + 0.052497778087854385, + 0.01518133096396923, + -0.0180119089782238, + -0.006816974375396967, + -0.0051941098645329475, + 0.027777401730418205, + -0.014001923613250256, + 0.014756744727492332, + -0.00708587933331728, + -0.00740196043625474, + 0.05208262801170349, + -0.0035169925540685654, + 0.056460585445165634, + 0.008590802550315857, + 0.0014553886139765382, + 0.012879127636551857, + -0.0005274899303913116, + 0.002441373188048601, + 0.03806183114647865, + -0.050610724836587906, + -0.004977098666131496, + 0.015747446566820145, + 0.012633810751140118, + -0.018540283665060997, + -0.03891100734472275, + 0.0059583657421171665, + 0.017842072993516922, + -0.001706602401100099, + 0.007812393829226494, + -0.03498593717813492, + -0.07850135117769241, + -0.018238354474306107, + -0.027834013104438782, + -0.07125507295131683, + 0.00110038707498461, + 0.0325893834233284, + -0.024475060403347015, + -0.010407090187072754, + 0.00935977604240179, + -0.03421224653720856, + -0.04864819347858429, + 0.01936114951968193, + -0.012143177911639214, + 0.002941441722214222, + -0.021946411579847336, + -0.0008185086771845818, + 0.017719415947794914, + -0.004040649626404047, + 0.02077643945813179, + 0.016709843650460243, + 0.032023265957832336, + 0.025154398754239082, + -0.0015863028820604086, + -0.02264462038874626, + -0.007666147314012051, + 0.024946823716163635, + 0.01534172985702753, + -0.02472037635743618, + -0.011482710018754005, + 0.01922905631363392, + -0.011076993308961391, + 0.010444831103086472, + 0.004802546463906765, + -0.02264462038874626, + -0.02502230554819107, + -0.01890825852751732, + -0.018813906237483025, + -0.005986671429127455, + -0.007529336493462324, + 0.008968213573098183, + 0.026060184463858604, + 0.006623551249504089, + 0.013973617926239967, + -0.013482984155416489, + -0.017464663833379745, + -0.005939495284110308, + 0.0061234827153384686, + -0.037571199238300323, + -0.010142902843654156, + -0.011860120110213757, + -0.02079530991613865, + -0.04389282315969467, + -0.0013574977638199925, + -0.012982916086912155, + -0.022304950281977654, + -0.05363000929355621, + -0.049063343554735184, + 0.0015662529040127993, + -0.010454266332089901, + -0.03970356658101082, + -0.036608804017305374, + -0.031419411301612854, + 0.002625360619276762, + 0.04800659418106079, + 0.030173957347869873, + -0.007675583008676767, + 0.010765629820525646, + 0.045402463525533676, + -0.012803645804524422, + -0.0390242300927639, + 0.050459761172533035, + 0.023682499304413795, + 0.0006734415655955672, + -0.04861045256257057, + 0.06091402843594551, + 0.004821416921913624, + -0.02489021234214306, + 0.02834351733326912, + 0.026230018585920334, + -0.004878028761595488, + -0.05181843787431717, + -0.023097513243556023, + 0.012530023232102394, + -0.02141803689301014, + -0.047289516776800156, + -0.0007276943069882691, + -0.012492282316088676, + -0.026531947776675224, + -0.021474648267030716, + -0.03634461387991905, + 0.0325893834233284, + -0.026418723165988922, + -0.019200751557946205, + 0.07631237059831619, + 0.008293592371046543, + -0.0032339347526431084, + 0.013728301040828228, + 0.031249575316905975, + -0.05132780596613884, + -0.036457840353250504, + -0.0023116383235901594, + 0.01610598713159561, + 0.0004900437197647989, + 0.0016983465757220984, + 0.008661567233502865, + -0.047289516776800156, + -0.01749296858906746, + -0.016540007665753365, + 0.008996519260108471, + -0.021531259641051292, + -0.001208892441354692, + -0.002223182702437043, + -0.023644758388400078, + 0.005024275276809931, + 0.008015251718461514, + 0.0518939234316349, + -0.029985250905156136, + 0.025852607563138008, + 0.02532423473894596, + -0.010095726698637009, + 0.03925067558884621, + 0.0017667521024122834, + 0.002479114104062319, + -0.013152750208973885, + 0.022267209365963936, + -0.025550680235028267, + -0.012388494797050953, + 0.013492419384419918, + 0.012916868552565575, + -0.0992589220404625, + -0.007703888695687056, + 0.03898648917675018, + -0.03989227116107941, + 0.014907708391547203, + 0.018898822367191315, + 0.008222827687859535, + 0.041326433420181274, + -0.006486740428954363, + -0.012237530201673508, + -0.019181881099939346, + -0.024965694174170494, + -0.03432546928524971, + -0.014766179956495762, + 0.021606741473078728, + 0.01181294396519661, + -0.04200576990842819, + -0.010416525416076183, + -0.02077643945813179, + -0.005481885280460119, + 0.012558328919112682, + 0.03475949168205261, + 0.005481885280460119, + 0.016096550971269608, + -0.0235881470143795, + 0.03872229903936386, + -0.034853845834732056, + 0.014445380307734013, + -0.019776301458477974, + -0.016492832452058792, + 0.006802821531891823, + -0.02770191803574562, + 0.03842037171125412, + -0.037080567330121994, + 0.012379059568047523, + -0.05747959390282631, + -0.027135804295539856, + -0.02928704209625721, + 0.03285356983542442, + -0.0125960698351264, + -0.027796272188425064, + 0.04060935229063034, + 0.012237530201673508, + -0.018691247329115868, + -0.017530709505081177, + -0.022701231762766838, + -0.008637978695333004, + 0.03509915992617607, + -0.005698896013200283, + -0.02500343509018421, + -0.01725708693265915, + 0.04868593439459801 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "活塞头", + "组成编码": "030201", + "维修项目名称": "拆检活塞头磨损情况", + "维修项目编号": "MT006", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.8 MT006 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT006030201活塞头拆检活塞头磨损情况1A/8000hJY级
安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。
安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配350mm活塞
2内窥镜GE Mentor Visual iQ1台
3深度规0-150mm1把
4放大镜10× with scale1个
2)备品备件
名称规格/型号消耗数量备注
11本项目为检查类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1积碳清洗剂CRC Carbon CleanPro200mL环保型
2无纺布Industrial Grade5张
3防锈油CRC 3-3650mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。
抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态
1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查
(1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。
判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008;
3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_5617ece6-b596-47da-a2c7-4218c18390b7.pdf#page=32\"}, {\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.20 MT018 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT018030201活塞头修复活塞头部烧蚀熔损故障触发ZJ级
安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。
安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。
序号名称规格/型号数量及单位备注
1等离子堆焊机PLASMAD 50001台自动送粉
2热处理炉Box Furnace 800° C1台控温±10℃
3超声波探伤仪Olympus Epoch 6501台检测内部缺陷
4三维扫描仪FARO Arm Quantum1台修复前后形貌比对
2)备品备件
名称规格/型号消耗数量备注
1本项目为修复类,通常不消耗新活塞(除非报废)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1镍基合金焊粉INCONEL 625300g耐高温抗烧蚀
2渗透探伤剂Magnaflux ZL-27A1套PT检测裂纹
3保温棉Ceramic FiberBlanket2 kg焊后包裹缓冷
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+高级技师总工批准修复方案
2焊接专业1高级焊工(ASMEIX认证)执行堆焊
\\n\\n
修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理
3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证
2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm);
3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_ce42d490-31ba-4c97-afad-26cf5192f901.pdf#page=50\"}]", + "embedding": [ + 0.006857255939394236, + 0.016354788094758987, + 0.006134212017059326, + 0.011326134204864502, + -0.00960948783904314, + -0.0036758622154593468, + 0.02082366682589054, + 0.0095628397539258, + -0.016839927062392235, + -0.008499265648424625, + -0.008998398669064045, + 0.018575232475996017, + 0.032522983849048615, + 0.009973342530429363, + 0.035116612911224365, + -0.06336664408445358, + -0.010794347152113914, + -0.03321337327361107, + -0.005359855014830828, + -0.030209243297576904, + 0.019946685060858727, + -0.025731036439538002, + -0.061239492148160934, + 0.02914566919207573, + -0.014376913197338581, + 0.016933223232626915, + -0.004963347222656012, + 0.015748364850878716, + -0.01781020499765873, + -0.02097294107079506, + 0.007902170531451702, + 0.028940418735146523, + -0.030171925202012062, + -0.053439948707818985, + -0.05351458489894867, + -0.07015859335660934, + -0.031328797340393066, + -0.007034518290311098, + -0.04698386415839195, + 0.027596956118941307, + 0.027746230363845825, + 0.05123816058039665, + 0.04161001369357109, + -0.029686786234378815, + 0.02522723749279976, + -0.05635078251361847, + -0.0018146071815863252, + -0.039370909333229065, + -0.0191256795078516, + -0.027335727587342262, + -0.00241403398104012, + 0.012958814390003681, + 0.014890041202306747, + -0.03442622348666191, + -0.0015627079410478473, + 0.017968809232115746, + -0.029071033000946045, + 0.04799146205186844, + -0.06855390220880508, + -0.019237633794546127, + 0.004356923047453165, + 0.07859254628419876, + -0.06881512701511383, + 0.027932820841670036, + 0.058440614491701126, + 0.07881645858287811, + 0.012007194571197033, + 0.04041582718491554, + -0.0050566429272294044, + -0.012837529182434082, + -0.008634544909000397, + 0.006134212017059326, + 0.004422230180352926, + 0.008228707127273083, + -0.04123682901263237, + 0.008308008313179016, + 0.025339193642139435, + -0.058552566915750504, + 0.031048908829689026, + -0.008909767493605614, + 0.0680314376950264, + 0.006544714327901602, + -0.021234169602394104, + 0.029388239607214928, + -0.02584299072623253, + 0.04179660603404045, + -0.007603623904287815, + -0.007617618422955275, + -0.0325976200401783, + -0.007752897217869759, + -0.006544714327901602, + -0.002474676351994276, + 0.004870051052421331, + 0.024350255727767944, + -0.007006529252976179, + -0.006591362413018942, + 0.03806476667523384, + -0.015757694840431213, + 0.05120084434747696, + -0.015365851111710072, + 0.016793278977274895, + 0.08493667840957642, + 0.022279083728790283, + 0.0013306341134011745, + 0.014199650846421719, + 0.00316973146982491, + 0.03489270433783531, + -0.04452085122466087, + 0.01182993222028017, + -0.01185792125761509, + 0.03735571727156639, + -0.0007125482079572976, + 0.0039534177631139755, + -0.05153670907020569, + -0.009124348871409893, + -0.037057168781757355, + 0.0062181781977415085, + -0.033885106444358826, + -0.03248566761612892, + -0.0022472674027085304, + -0.01431160606443882, + 0.02843661978840828, + 0.026384107768535614, + -0.02224176563322544, + 0.008676527999341488, + -0.0031137538608163595, + 0.03179527446627617, + -0.015356521122157574, + 0.04593895003199577, + -0.005219911225140095, + -0.0077622272074222565, + -0.0004344094777479768, + -0.006465412676334381, + 0.0003414050443097949, + -0.005798346363008022, + 0.0030601087491959333, + 0.007580299861729145, + 0.051984529942274094, + 0.02494734898209572, + 0.021551376208662987, + -0.0005536534590646625, + 0.05530586838722229, + 0.024966008961200714, + -0.005579100456088781, + 0.015701716765761375, + -0.04381180182099342, + -0.006073569413274527, + 0.06064239889383316, + 0.031328797340393066, + -0.02418232336640358, + 0.028324665501713753, + -0.008592561818659306, + -0.00018411381461191922, + 0.02007729932665825, + 0.02455550618469715, + -0.055007319897413254, + -0.06485937535762787, + -0.0023312338162213564, + -0.0015417163958773017, + 0.06191122531890869, + 0.03933359310030937, + -0.013705181889235973, + -0.0269252248108387, + -0.014806075021624565, + 0.025954946875572205, + 0.004140010103583336, + 0.06620284169912338, + 0.021849922835826874, + -0.017035849392414093, + 0.0016245165606960654, + -0.006059574894607067, + 0.0009253796888515353, + 0.021943219006061554, + 0.00234406185336411, + 0.0026332794222980738, + 0.01247367449104786, + -0.010868983343243599, + -0.02110355533659458, + 0.031291477382183075, + -0.04575235769152641, + 0.002560975030064583, + -0.006082898937165737, + -0.010999598540365696, + -0.01638277806341648, + 0.016597358509898186, + -0.013014791533350945, + 0.02436891384422779, + -0.001279321382753551, + 0.03334398940205574, + 0.019778750836849213, + -0.025152601301670074, + -0.00899373460561037, + 0.056425418704748154, + -0.02748499996960163, + 0.0453418530523777, + 0.0012338395463302732, + 0.0019580498337745667, + -0.020245231688022614, + -0.006222843192517757, + 0.03325069323182106, + 0.011578033678233624, + -0.004636811092495918, + -0.022801542654633522, + -0.014041047543287277, + -0.04052777960896492, + -0.012417697347700596, + 0.026608018204569817, + 0.03631080314517021, + 0.03343728557229042, + -0.022129811346530914, + 0.014703448861837387, + -0.025245897471904755, + 0.02560042217373848, + -0.06101558357477188, + 0.023883774876594543, + 0.005275888834148645, + 0.014656800776720047, + -0.012744233012199402, + 0.007417031563818455, + -0.03819538280367851, + -0.022372379899024963, + 0.03726242110133171, + 0.020431824028491974, + 0.0022437686566263437, + 0.05079033970832825, + -0.004471210762858391, + -0.016466744244098663, + -0.02602958306670189, + 0.004067705478519201, + 0.030003992840647697, + -0.02282020077109337, + 0.0004962180973961949, + 0.006348792463541031, + 0.010775688104331493, + 0.04403571039438248, + 0.01799679733812809, + -0.03198186680674553, + -0.01102758664637804, + -0.008238036185503006, + -0.004338263999670744, + -0.006610021460801363, + -0.014535516500473022, + 0.02035718597471714, + -0.028175391256809235, + -0.04049046337604523, + 0.027093157172203064, + 0.021178191527724266, + 0.030059970915317535, + -0.015655068680644035, + -0.007640941999852657, + 0.022596290335059166, + 0.02035718597471714, + -0.06474742293357849, + -0.02026388980448246, + -0.0017026519635692239, + 0.025376511737704277, + 0.020805006846785545, + 0.014423561282455921, + -0.006180859636515379, + -0.009674794971942902, + 0.023417295888066292, + 0.09740102291107178, + 0.04851391911506653, + 0.00489804008975625, + 0.006754630245268345, + 0.039035044610500336, + -0.020245231688022614, + 0.07161400467157364, + 0.0495961531996727, + -0.010374515317380428, + -0.019330929964780807, + -0.02735438570380211, + -0.04149806126952171, + 0.007463679648935795, + 0.00014985669986344874, + 0.0013236369704827666, + -0.0026939220260828733, + -0.014591493643820286, + 0.026533382013440132, + -0.007291082292795181, + -0.00816806498914957, + -0.022876178845763206, + 0.011456748470664024, + 0.004077035002410412, + 0.02375316061079502, + -0.014582164585590363, + -0.07441288977861404, + -0.010738369077444077, + 0.01766093261539936, + -0.02696254290640354, + 0.013518590480089188, + 0.03479940816760063, + 0.05205916613340378, + -0.008769824169576168, + -0.05579100549221039, + 0.03334398940205574, + 0.005028654355555773, + -0.1520351618528366, + -0.021924559026956558, + -0.03763560578227043, + 0.02483539469540119, + -0.008718511089682579, + 0.005350525490939617, + -0.007431026082485914, + -0.0032863514497876167, + -0.03041449561715126, + -0.020469142124056816, + 0.0060502453707158566, + -0.04963346943259239, + -0.017278417944908142, + -0.008275355212390423, + 0.00013943378871772438, + 0.03168332204222679, + -0.028828462585806847, + -0.032858848571777344, + 0.015403169207274914, + -0.025898968800902367, + 0.004228641279041767, + 0.006302144844084978, + 0.05258162319660187, + -0.033455945551395416, + -0.05105156823992729, + 0.0047417692840099335, + 0.007832199335098267, + -0.02337997779250145, + -0.026048243045806885, + -0.020133275538682938, + -0.029630808159708977, + 0.030824998393654823, + -0.01530054397881031, + 0.047021184116601944, + -0.01107423473149538, + 0.02403304912149906, + -0.007361054420471191, + -0.0012385043082758784, + 0.010038649663329124, + 0.010047978721559048, + 0.03989337012171745, + 0.058254022151231766, + -0.008583231829106808, + 0.06907635927200317, + -0.01506730355322361, + -0.034930020570755005, + 0.03782219812273979, + -0.015421828255057335, + -0.007468344643712044, + -0.025488466024398804, + 0.011176860891282558, + 0.001420431537553668, + 0.01949886418879032, + -0.0552685484290123, + -0.0029574830550700426, + -0.018808472901582718, + 0.043289341032505035, + -0.02328668162226677, + -0.030078629031777382, + 0.0023125745356082916, + -0.0387364998459816, + -0.08411566913127899, + 0.024966008961200714, + -0.005942955147475004, + -0.009926694445312023, + -0.028306005522608757, + -0.03248566761612892, + -0.02578701451420784, + -0.018715176731348038, + -0.05310408025979996, + 0.029108351096510887, + -0.032840192317962646, + 0.02800745889544487, + 0.015981605276465416, + 0.008163399994373322, + 0.019200315698981285, + -0.007939489558339119, + 0.0007924328674562275, + -0.024854052811861038, + -0.1346447765827179, + -0.02711181715130806, + 0.018575232475996017, + -0.009105688892304897, + -0.011540714651346207, + -0.007449685595929623, + -0.008415298536419868, + 0.011018257588148117, + 0.03858722373843193, + 0.044371575117111206, + 0.24928690493106842, + -0.025115283206105232, + 0.05120084434747696, + -0.0006979706813581288, + 0.05239503085613251, + -0.02464880235493183, + -0.04049046337604523, + -0.035452477633953094, + -0.0205437783151865, + -0.035732366144657135, + -0.011223508045077324, + -0.019704114645719528, + 0.031944550573825836, + 0.020581096410751343, + -0.01884579099714756, + 0.0486631914973259, + -0.009665464982390404, + 0.027074499055743217, + 0.06586697697639465, + -0.029873378574848175, + -0.030171925202012062, + -0.05370117723941803, + -0.0065727028995752335, + 0.011895239353179932, + -0.016970541328191757, + -0.03808342665433884, + -0.003344661556184292, + 0.0797867402434349, + 0.00218429253436625, + 0.032467007637023926, + 0.010915631428360939, + 0.011400771327316761, + 0.008919097483158112, + -0.02578701451420784, + -0.05172330141067505, + -0.050566431134939194, + 0.013677192851901054, + -0.005910301581025124, + -0.02498466894030571, + 0.032840192317962646, + -0.0001521890953881666, + -0.02418232336640358, + 0.003615219844505191, + 0.009320270270109177, + 0.01048647053539753, + -0.04090096428990364, + 0.03338130936026573, + 0.028679190203547478, + 0.041087556630373, + -0.014824734069406986, + 0.010533117689192295, + -0.008741835132241249, + -0.016093559563159943, + -0.013723840937018394, + 0.008592561818659306, + 0.020245231688022614, + -0.005984938237816095, + -0.04179660603404045, + -0.006824602372944355, + 0.033847786486148834, + 0.06866585463285446, + 0.00019650469766929746, + -0.0590377077460289, + -0.04884978383779526, + -0.014526186510920525, + -0.03356790170073509, + -0.05030520260334015, + 0.011428759433329105, + 0.015272554941475391, + 0.02569371834397316, + 0.027055839076638222, + 0.018836461007595062, + 0.00960948783904314, + 0.03713180869817734, + 0.05105156823992729, + -0.0036898567341268063, + 0.0013248032191768289, + 0.03552711755037308, + -0.010971609503030777, + 0.026104219257831573, + -0.02483539469540119, + -0.032746896147727966, + -0.0377848781645298, + 0.0193682499229908, + 0.020581096410751343, + 0.0019393905531615019, + 0.013313339091837406, + 0.026197515428066254, + -0.023678524419665337, + -0.04198319837450981, + -0.0006081732572056353, + 0.038325995206832886, + -0.017082497477531433, + 0.001061241957359016, + -0.04000532254576683, + -0.017222441732883453, + -0.030339857563376427, + -0.016000263392925262, + -0.016942553222179413, + 0.039930686354637146, + -0.010570436716079712, + -0.026626678183674812, + -0.024312937632203102, + -0.0302279032766819, + -0.02464880235493183, + 0.02427561767399311, + -0.020842324942350388, + 0.05672396719455719, + -8.447661093669012e-05, + 0.0016373447142541409, + 0.022353721782565117, + -0.009553509764373302, + 0.02082366682589054, + -0.03155270591378212, + 0.020581096410751343, + 0.01124216802418232, + -0.026365449652075768, + 0.02106623537838459, + 0.04190856218338013, + 0.04105024039745331, + -0.033082760870456696, + -0.011372782289981842, + -0.04287884011864662, + 0.022745564579963684, + 0.008401304483413696, + -0.024145003408193588, + -0.008802477270364761, + -0.0040047308430075645, + -0.04325202479958534, + 0.030395835638046265, + -0.005000665318220854, + -0.02295081503689289, + -0.04030387103557587, + -0.00562108401209116, + 0.04832732677459717, + 0.027746230363845825, + 0.021196851506829262, + 0.0033423290587961674, + 0.03586298227310181, + 0.04246833920478821, + 0.023827798664569855, + 0.012874847277998924, + 0.011354123242199421, + 0.00638611102476716, + 0.020189253613352776, + -0.049334924668073654, + 0.03244834765791893, + -0.03877381607890129, + 0.004790749400854111, + 0.04090096428990364, + 0.013798478059470654, + 0.031328797340393066, + -0.03584432229399681, + -0.051275480538606644, + -0.01955484040081501, + -0.09381845593452454, + -0.05295480787754059, + -0.02489137277007103, + -0.023454613983631134, + 0.0027615614235401154, + -0.03075036033987999, + 0.04605090618133545, + 0.020954281091690063, + -0.029164329171180725, + -0.01511395163834095, + 0.08792214840650558, + -0.05970943719148636, + -0.018407300114631653, + 0.008261360228061676, + 0.02375316061079502, + 0.02474209852516651, + -0.04840196296572685, + -0.0013621215475723147, + 0.03065706416964531, + 0.00276389392092824, + 0.00013199925888329744, + -0.010066637769341469, + 0.0008694020798429847, + 0.00859722588211298, + 0.052544306963682175, + 0.010477140545845032, + 0.024910030886530876, + 0.0006903903558850288, + 0.004739436786621809, + 0.022223107516765594, + 0.017390374094247818, + -0.008452617563307285, + -0.012604289688169956, + 0.0269252248108387, + -0.018024787306785583, + -0.04515526443719864, + 0.06582965701818466, + 0.01176462508738041, + -0.014180991798639297, + 0.018948417156934738, + -0.04870051145553589, + 0.001306143938563764, + 0.02532053366303444, + -0.026813270524144173, + -0.039221636950969696, + 0.02914566919207573, + 0.0006653170567005873, + 0.013024121522903442, + -0.00563041353598237, + -0.008587896823883057, + -0.014423561282455921, + -0.006614685989916325, + -0.010570436716079712, + -0.006124882027506828, + 0.013639874756336212, + -0.010635743848979473, + -0.02621617540717125, + -0.006526054814457893, + 0.049521517008543015, + -0.032243095338344574, + 0.011867251247167587, + 0.012399038299918175, + 0.05399972200393677, + -0.058254022151231766, + -0.027037180960178375, + 0.0008198386058211327, + 0.014479538425803185, + 0.06295613944530487, + -0.020338527858257294, + -0.020487800240516663, + -0.017875513061881065, + -0.01620551384985447, + 0.003151072422042489, + -0.021140873432159424, + 0.014796745032072067, + 0.006861920468509197, + -0.05474609136581421, + -0.005238570272922516, + -0.05370117723941803, + 0.0481780543923378, + -0.005401838105171919, + 0.02621617540717125, + 0.009572169743478298, + 0.0219618771225214, + 0.0025796343106776476, + -0.011139541864395142, + 0.014059706591069698, + 0.03918432071805, + 0.07590562105178833, + -0.01102758664637804, + 0.013733170926570892, + 0.017119815573096275, + 0.0027102488093078136, + 0.0002514618681743741, + 0.006983205210417509, + 0.01733439601957798, + -0.015412499196827412, + 0.021849922835826874, + -0.03933359310030937, + 0.01031853724271059, + 0.018397970125079155, + -0.025731036439538002, + -0.023174725472927094, + -0.07482338696718216, + 0.03907236456871033, + 0.022633608430624008, + 0.05067838728427887, + 0.012809540145099163, + 0.020338527858257294, + -0.031627342104911804, + -0.021570034325122833, + -0.0034053039271384478, + 0.015057973563671112, + -0.025563104078173637, + -0.05317872017621994, + 0.015692386776208878, + -0.025954946875572205, + -0.005037983879446983, + -0.05616419017314911, + 0.0043475935235619545, + 0.003421630710363388, + -0.042580291628837585, + 0.014591493643820286, + 0.02470478042960167, + -0.01624283380806446, + 0.0008169231005012989, + -0.04552844539284706, + -0.028641872107982635, + 0.060567762702703476, + 0.012063172645866871, + -0.032952144742012024, + 0.032000526785850525, + 0.011839262209832668, + 0.0013994399923831224, + -0.009898705407977104, + -0.007333065383136272, + -0.024779416620731354, + -0.01908836141228676, + 0.043289341032505035, + -0.019293611869215965, + 0.021737966686487198, + -0.029742764309048653, + 0.03728108108043671, + -0.015076633542776108, + -0.0021971208043396473, + -0.02735438570380211, + 0.048252690583467484, + -0.04414766654372215, + -0.035583093762397766, + -0.011792614124715328, + 0.008951750583946705, + -0.03356790170073509, + -0.03556443378329277, + -0.02479807659983635, + -0.010822335258126259, + -0.01483406312763691, + -0.007417031563818455, + -0.027410363778471947, + 0.008261360228061676, + -0.018547244369983673, + 0.011699317954480648, + 0.048999056220054626, + -0.03136611357331276, + -0.006171530112624168, + -0.00027041262364946306, + -0.006087563931941986, + 0.010896972380578518, + 0.010103956796228886, + 0.02584299072623253, + 0.00028819715953432024, + 0.013425294309854507, + -0.010803676210343838, + 0.014563505537807941, + -0.0011271322146058083, + -0.027932820841670036, + 0.011932558380067348, + 0.011456748470664024, + -0.022838860750198364, + -0.047394365072250366, + 0.030302539467811584, + 0.038475267589092255, + -0.002672930248081684, + -0.010831665247678757, + -0.007561640813946724, + -0.039370909333229065, + -0.029630808159708977, + 0.0406024195253849, + 0.07609221339225769, + 0.019330929964780807, + 0.012212445959448814, + 0.03914700075984001, + -0.055231232196092606, + -0.0033913094084709883, + 0.040453143417835236, + 0.021849922835826874, + 0.028753826394677162, + 0.06937490403652191, + -0.011839262209832668, + -0.010001330636441708, + -0.016839927062392235, + 0.032989464700222015, + 0.022092491388320923, + 0.022447016090154648, + 0.00970278400927782, + -0.02304411120712757, + -0.029500193893909454, + 0.018099423497915268, + 0.005000665318220854, + 0.04004264250397682, + 0.00036035579978488386, + -0.02035718597471714, + -0.0017061505932360888, + -0.022316401824355125, + 0.021196851506829262, + -0.029686786234378815, + -0.02211115136742592, + -0.048999056220054626, + -0.01846327818930149, + -0.01178328413516283, + -0.01738104410469532, + 0.014516857452690601, + -0.02886578068137169, + 0.015589761547744274, + 0.012063172645866871, + 0.01828601583838463, + -0.026943884789943695, + -0.03757962957024574, + -0.010523788630962372, + -0.012977473437786102, + 0.036105550825595856, + -0.004706783220171928, + -0.0019872046541422606, + -0.008102756924927235, + 0.048961739987134933, + 0.02655204012989998, + -0.008298679254949093, + -0.005844994448125362, + -0.013714511878788471, + 0.05295480787754059, + -0.13531652092933655, + -0.013863785192370415, + -0.019330929964780807, + -0.021943219006061554, + -0.034407563507556915, + 0.009497532621026039, + -0.017978139221668243, + 0.004436224699020386, + -0.005891642067581415, + -0.0024700115900486708, + 0.013313339091837406, + 0.06747166812419891, + -0.04127414897084236, + -0.02522723749279976, + -0.05067838728427887, + 0.0013119749492034316, + -0.010337196290493011, + -0.01338797528296709, + -0.0377848781645298, + -0.0056723966263234615, + 0.04355057328939438, + -0.03507929667830467, + 0.005009994842112064, + -0.002229774370789528, + 0.013080098666250706, + -0.023958412930369377, + -0.016233503818511963, + 0.031907230615615845, + -0.018360652029514313, + 0.06452351063489914, + -0.008009461686015129, + -0.07157669216394424, + 0.04075169190764427, + 0.07799545675516129, + 0.04832732677459717, + 0.0029808070976287127, + 0.0012291747843846679, + 0.00935292337089777, + 0.05082765966653824, + 0.006554043851792812, + 0.017959479242563248, + -0.00034548674011603, + 0.0026636007241904736, + -9.890833462122828e-05, + -0.030918292701244354, + 0.023398635908961296, + -0.001618685550056398, + 0.010066637769341469, + 0.040826328098773956, + -0.02390243485569954, + 0.006628680508583784, + 0.061090219765901566, + -0.0005970943602733314, + 0.015673726797103882, + 0.04261761158704758, + 0.014666130766272545, + 0.002581966808065772, + -0.03575102612376213, + 0.007370383944362402, + 0.025283215567469597, + 0.02143942005932331, + -0.004119018092751503, + -0.02735438570380211, + -0.06381446123123169, + -0.010243900120258331, + -0.02300679311156273, + -0.06250831484794617, + -0.011988535523414612, + -0.01851925626397133, + -0.0264587439596653, + -0.013761159963905811, + -0.0373183973133564, + -0.014097025617957115, + -0.054298270493745804, + 0.021980537101626396, + 0.0014495865907520056, + -0.010822335258126259, + 0.005821670405566692, + -0.033325329422950745, + 0.01530054397881031, + -0.008294014260172844, + 0.0538504496216774, + 0.00559775996953249, + 0.01823003776371479, + -0.003116086358204484, + 0.031254157423973083, + -0.009474208578467369, + -0.0020105286967009306, + -0.022801542654633522, + 0.0069785406813025475, + -0.009740102104842663, + -0.01126082707196474, + -0.003531253430992365, + 0.018314003944396973, + -0.037672922015190125, + -0.005350525490939617, + 0.012604289688169956, + 0.01686791703104973, + -0.0058356644585728645, + -0.03640409931540489, + -0.017651602625846863, + 0.018687188625335693, + 0.04593895003199577, + 0.002852525096386671, + 0.008326667360961437, + -0.009768091142177582, + -0.03612421080470085, + -0.026290811598300934, + 0.015291213989257812, + -0.00485139200463891, + -0.04407303035259247, + 0.013098757714033127, + -0.0210102591663599, + 0.02229774370789528, + -0.0476929135620594, + 0.025115283206105232, + 0.0014064371353015304, + -0.04687190800905228, + -0.020058639347553253, + -0.04870051145553589, + -0.0009148838580586016, + 0.051275480538606644, + -0.013929092325270176, + -0.043289341032505035, + -0.040639735758304596, + 0.02211115136742592, + 0.033455945551395416, + 0.04780486971139908, + 0.02602958306670189, + 0.004412900656461716, + 0.04216979071497917, + -0.046312134712934494, + -0.003458949038758874, + 0.031720638275146484, + 0.02097294107079506, + -0.016783950850367546, + -0.004926028661429882, + 0.05597759783267975, + -0.02063707448542118, + -0.016224173828959465, + 0.021793944761157036, + 0.023118747398257256, + -0.024872712790966034, + -0.03821403905749321, + -0.027802206575870514, + -0.027186453342437744, + -0.024910030886530876, + -0.03748633340001106, + 0.012427026405930519, + -0.012399038299918175, + -0.005681726150214672, + -0.034463539719581604, + -0.011624680832028389, + -0.004977341275662184, + -0.04254297539591789, + -0.0344821996986866, + 0.04112487658858299, + 0.027373045682907104, + -0.05034251883625984, + -0.010840995237231255, + 0.005308542400598526, + -0.04459548741579056, + -0.034463539719581604, + 0.012996132485568523, + 0.01619618572294712, + -0.010999598540365696, + 0.021980537101626396, + -0.002581966808065772, + -0.026384107768535614, + 0.016606686636805534, + -0.010159933939576149, + 0.05601491779088974, + 0.0015568769304081798, + -0.0340157188475132, + 0.04022923484444618, + -0.021271487697958946, + -0.010850324295461178, + 0.019722774624824524, + 0.07657735794782639, + -0.03519124910235405, + 0.022036515176296234, + 0.03229907527565956, + 0.006302144844084978, + 0.01653205044567585, + -0.006208848673850298, + 0.020767688751220703, + -0.04940956085920334, + 0.001963880844414234, + 0.01031853724271059, + -0.01494601834565401, + -0.023641206324100494, + 0.005975608713924885, + -0.06243368238210678, + 0.010607754811644554, + 0.026794610545039177, + -0.00475809583440423, + 0.012119149789214134, + 0.018052775412797928, + -0.032336391508579254, + 0.06269490718841553, + 0.009231639094650745, + -0.04452085122466087, + -0.03888577222824097, + -0.052880171686410904, + -0.028511255979537964, + -0.0096841249614954, + 0.026533382013440132, + 0.021271487697958946, + -0.039370909333229065, + 0.03358655795454979, + 0.019909365102648735, + -0.043475933372974396, + -0.008704516105353832, + 0.010738369077444077, + 0.04146074131131172, + -0.017278417944908142, + -0.04728241264820099, + 0.05190989375114441, + -0.00816806498914957, + 0.013779819011688232, + -0.03339996561408043, + -0.011820603162050247, + -0.05437290668487549, + -0.01025323010981083, + 0.02479807659983635, + 0.009898705407977104, + 0.028175391256809235, + -0.042057834565639496, + -0.04496867209672928, + -0.0019405568018555641, + -0.03151538968086243, + 0.027167795225977898, + 0.008513259701430798, + 0.06344127655029297, + -0.03925895690917969, + -0.03466879203915596, + -0.0004265376483090222, + -0.03444488346576691, + -0.028492597863078117, + 0.00953951571136713, + 0.020039979368448257, + 0.0056070894934237, + -0.016737302765250206, + 0.06795680522918701 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换1号压缩环", + "编号": "MT007", + "内容": "表 4.9 MT007 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0070302031号压缩环更换1号压缩环1A/8000hJY级
安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。
安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。
\n\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配Φ350 mm活塞
2环口间隙测量规Feeler Gauge Set1套0.05-1.00mm
3环槽清洁刮刀Custom-Piston-Groove-Scraper1把铜质刃口
4扭矩扳手20-100 N·m1把
2)备品备件
名称规格/型号消耗数量备注
1第一道压缩环MAN 5L35MC-RING-11件梯形截面,表面镀铬
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus5g
2无绒布Kimwipe EX-L3张
3清洗剂Brulin 815GD100mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师复刻还口间隙
修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。
验收标准
1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内;
页码:1/13.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.9 MT007 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0070302031号压缩环更换1号压缩环1A/8000hJY级
安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。
安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配Φ350 mm活塞
2环口间隙测量规Feeler Gauge Set1套0.05-1.00mm
3环槽清洁刮刀Custom-Piston-Groove-Scraper1把铜质刃口
4扭矩扳手20-100 N·m1把
2)备品备件
名称规格/型号消耗数量备注
1第一道压缩环MAN 5L35MC-RING-11件梯形截面,表面镀铬
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus5g
2无绒布Kimwipe EX-L3张
3清洗剂Brulin 815GD100mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师复刻还口间隙
修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。
验收标准
1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内;
页码:1/13.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_11764560-e529-4268-a045-e036ba8ba667.pdf#page=33\"}]", + "embedding": [ + -0.040148843079805374, + 0.017184775322675705, + -0.04240697622299194, + -0.024265363812446594, + 0.016706358641386032, + -0.03743142634630203, + -0.014620454981923103, + 0.021356580778956413, + -0.02573889121413231, + -0.018065065145492554, + 0.005693174432963133, + -0.023040613159537315, + -0.022677015513181686, + -0.004415798466652632, + -0.019108016043901443, + -0.026695726439356804, + -0.007453753147274256, + 0.0107835428789258, + 0.012611099518835545, + -0.011941314674913883, + -0.009094727225601673, + -0.011051456443965435, + -0.019768232479691505, + -0.0032580269034951925, + -0.011070593260228634, + 0.019462045282125473, + -0.011252392083406448, + 0.014984052628278732, + 0.04730597510933876, + -0.006300765555351973, + -0.04156496003270149, + -0.013347863219678402, + -0.03984265401959419, + -0.06969594210386276, + -0.004475600551813841, + -0.016878588125109673, + 0.011099298484623432, + -0.0056214118376374245, + -0.04623432084918022, + 0.016342760995030403, + -0.027690835297107697, + -0.026332128793001175, + 0.03021688386797905, + -0.02332766354084015, + 0.011061024852097034, + 0.006472995970398188, + 0.021337443962693214, + -0.016275782138109207, + -0.03745056316256523, + -0.025260472670197487, + 0.033738039433956146, + -2.165962905564811e-05, + 0.025624070316553116, + -0.06992558389902115, + -0.012658941559493542, + 0.027748245745897293, + -0.00270066992379725, + -0.020648522302508354, + -0.018505210056900978, + -0.051860515028238297, + 0.01812247559428215, + 0.03712524101138115, + -0.002657612320035696, + -0.025298746302723885, + 0.033240485936403275, + 0.05806081369519234, + 0.012639804743230343, + 0.023021476343274117, + -0.0046430472284555435, + -0.03130767494440079, + -0.009424835443496704, + 0.03302998095750809, + 0.004932490177452564, + -0.0035115883219987154, + -0.06326600164175034, + 0.04933446645736694, + 0.03852222114801407, + -0.0054635340347886086, + -0.018170317634940147, + 0.006798320449888706, + 0.054310016334056854, + 0.01694556698203087, + -0.0267531368881464, + -0.015672974288463593, + -0.004394269548356533, + 0.04190941900014877, + 0.0055257282219827175, + 0.03343185409903526, + -0.04730597510933876, + -0.03519243001937866, + 0.008822028525173664, + 0.040684670209884644, + -0.008420157246291637, + 0.017146501690149307, + -0.017146501690149307, + 0.0241696797311306, + 0.016314055770635605, + -0.03180523216724396, + 0.047229427844285965, + -0.012113545089960098, + 0.024782054126262665, + 0.11665745824575424, + 0.05155432969331741, + -0.005286519415676594, + 0.0293748676776886, + -0.04091431200504303, + -0.003970869816839695, + 0.043287262320518494, + -0.052396342158317566, + -0.029795875772833824, + -0.012257070280611515, + 0.048951733857393265, + -0.014543908648192883, + -0.0327812023460865, + -0.015070168301463127, + -0.04416755214333534, + -0.017012545838952065, + -0.035460345447063446, + 0.04045502841472626, + -0.0016038964968174696, + 0.03105889819562435, + 0.044779930263757706, + 0.030599618330597878, + -0.027767382562160492, + -0.0018586540827527642, + -0.00479614082723856, + 0.027021050453186035, + 0.007740803994238377, + -0.014486498199403286, + -0.01501275785267353, + -0.009912821464240551, + 0.04248352348804474, + -0.0224665105342865, + 0.03706783056259155, + -0.03488624468445778, + -0.03580480441451073, + -0.03643631935119629, + -0.02175845205783844, + -0.006114182528108358, + -0.023920901119709015, + -0.00888900738209486, + 0.023959174752235413, + 0.02746119536459446, + -0.0064586433582007885, + 0.019576866179704666, + -0.02194982022047043, + 0.022389965131878853, + 0.00014404868124984205, + 0.04971720278263092, + -0.026810547336935997, + -0.01693599857389927, + 0.03197746351361275, + -0.007453753147274256, + -0.02436104603111744, + -0.0026169465854763985, + -0.007099723909050226, + -0.01362534612417221, + 0.008520625531673431, + 0.029948968440294266, + 0.0034302573185414076, + 0.020246651023626328, + 0.057754624634981155, + -0.058634914457798004, + -0.024590687826275826, + 0.017663193866610527, + 0.03207314386963844, + 0.03949819505214691, + 0.0033776313066482544, + -0.00043745350558310747, + 0.024571551010012627, + 0.017232617363333702, + 0.012257070280611515, + -0.03714437782764435, + 0.005664469674229622, + 0.028781630098819733, + 0.02294492907822132, + 0.040340207517147064, + 0.004693280905485153, + 0.012668509967625141, + -0.008061343804001808, + 0.008348395116627216, + 0.03708696737885475, + -0.014850095845758915, + -0.036876462399959564, + 0.024820327758789062, + -0.002755687804892659, + 0.01795024424791336, + -0.03681905195116997, + 0.0040234955959022045, + 0.02552838623523712, + -0.006803104653954506, + 0.03519243001937866, + 0.0033369658049196005, + 0.013453115709125996, + 0.05388900637626648, + 0.014505635015666485, + -0.022141186520457268, + -0.018208591267466545, + 0.005372634623199701, + 0.010219009593129158, + 0.03492451831698418, + -0.009893684647977352, + 0.0362066775560379, + 0.011022751219570637, + -0.03327875956892967, + 0.030159473419189453, + -0.008716776967048645, + -0.011338507756590843, + 0.02193068340420723, + -0.037412289530038834, + -0.022141186520457268, + -0.026025941595435143, + 0.0021935466211289167, + -0.012802466750144958, + -0.03492451831698418, + 0.04776525869965553, + 0.025470975786447525, + -0.05607059597969055, + -0.021031256765127182, + -0.022830108180642128, + 0.008568466641008854, + 0.04129704460501671, + -0.005281735211610794, + -0.03658941015601158, + 0.004580852575600147, + -0.014448224566876888, + 0.010372103191912174, + 0.05040612444281578, + -0.04110567644238472, + -0.009893684647977352, + -0.0215670857578516, + -0.010840952396392822, + -0.00729109114035964, + -0.004037848208099604, + 0.017232617363333702, + 0.05381246283650398, + 0.000118931733595673, + 0.031345948576927185, + 0.0069322772324085236, + -0.022562194615602493, + -0.01054433360695839, + -9.858027624431998e-06, + 0.005970657337456942, + -0.0001779117010300979, + -0.0077599408105015755, + -0.016323624178767204, + 0.019586434587836266, + 0.047038063406944275, + -0.0328386127948761, + 0.01918456330895424, + -0.012505847960710526, + -0.008157027885317802, + -0.018399957567453384, + 0.041871145367622375, + 0.04887518659234047, + -0.0022306242026388645, + 0.04301935061812401, + -0.019462045282125473, + 0.010563470423221588, + -0.03058048151433468, + -0.0047841803170740604, + 0.08527322858572006, + -0.008946416899561882, + 0.015261535532772541, + -0.009960663504898548, + 0.010094620287418365, + 0.0013024931540712714, + 0.0638018324971199, + -0.0034135126043111086, + -0.0004350614035502076, + -0.03178609535098076, + 0.005066446959972382, + -0.042062513530254364, + 0.055496491491794586, + 0.020265787839889526, + 0.05488411709666252, + 0.031499043107032776, + -0.01112800370901823, + 0.08091005682945251, + 0.015108441933989525, + 0.04286625608801842, + 0.02053370140492916, + 0.04420582577586174, + -0.008664150722324848, + -0.019031468778848648, + 0.0035618222318589687, + -0.12645545601844788, + 0.033738039433956146, + 0.02122262492775917, + -0.029738465324044228, + -0.03396768122911453, + -0.02692536637187004, + 0.05492239072918892, + -0.019366363063454628, + -0.022715289145708084, + 0.045660216361284256, + -0.006487348582595587, + -0.1710057407617569, + 0.01587391085922718, + -0.011443759314715862, + 0.0009215527679771185, + 0.01113757211714983, + 0.005817563273012638, + 0.004889432340860367, + -0.002374149626120925, + -0.04332553595304489, + -0.06694025546312332, + -0.019787369295954704, + -0.06514140218496323, + -0.006075908895581961, + 0.005994577892124653, + 0.008142675273120403, + -0.014610886573791504, + -0.036876462399959564, + -0.0021038432605564594, + -0.019481182098388672, + -0.01434297300875187, + -0.05633850768208504, + 0.004131139721721411, + 0.04692324250936508, + -0.011290665715932846, + -0.03727833181619644, + 0.0013622953556478024, + 0.024820327758789062, + -0.027671698480844498, + -0.008051775395870209, + 0.01672549545764923, + -0.008616308681666851, + 0.018170317634940147, + -0.00289442902430892, + 0.04114395007491112, + 0.015596427954733372, + 0.012333616614341736, + 0.006219434551894665, + 0.0267722737044096, + -0.02348075807094574, + 0.015988731756806374, + 0.0741356611251831, + 0.02748033218085766, + -0.02001701109111309, + 0.05450138449668884, + 0.015242398716509342, + -0.06621305644512177, + -0.023423347622156143, + -0.028877312317490578, + -0.021146077662706375, + -0.002035668818280101, + -0.04018711671233177, + 0.00608069309964776, + 0.017883265390992165, + 0.006123750936239958, + -0.0006195513415150344, + -0.0016457580495625734, + -0.013558367267251015, + 0.06529449671506882, + -0.05607059597969055, + 0.03147990629076958, + -0.02485860139131546, + -0.03905804827809334, + -0.0034087286330759525, + 0.026446949690580368, + -0.07899639010429382, + -0.03984265401959419, + -0.01706038787961006, + -0.027901340276002884, + 0.03898150101304054, + 0.00144721451215446, + -0.006200297735631466, + 0.019471613690257072, + -0.014017648994922638, + -0.0030307783745229244, + -0.035479482263326645, + 0.05783117190003395, + -0.029987242072820663, + -0.017309164628386497, + -0.06452902406454086, + -0.1484244167804718, + -0.00304513075388968, + 0.017213480547070503, + -0.01883053407073021, + -0.003650329541414976, + -0.031690411269664764, + -0.012879014015197754, + 0.03155645355582237, + 0.03938337415456772, + -0.010037210769951344, + 0.2400510311126709, + 0.030771847814321518, + 0.02744205854833126, + -0.007764724548906088, + 0.05798426643013954, + -0.0517456941306591, + -0.004757867194712162, + -0.045851584523916245, + 0.03264724835753441, + -0.034522645175457, + -0.03725919872522354, + 0.021318307146430016, + -0.0014663513284176588, + -0.024418456479907036, + 0.014362109825015068, + -0.01157771609723568, + 0.04022539034485817, + 0.00025565465330146253, + 0.0949181392788887, + -0.011319370940327644, + 0.052243251353502274, + -0.002667180495336652, + -0.011089730076491833, + -0.0032149692997336388, + -0.06651924550533295, + -0.03431214019656181, + -0.023078886792063713, + 0.01312779076397419, + -0.005669253878295422, + 0.02690623141825199, + -0.010238146409392357, + 0.016160961240530014, + 0.025834573432803154, + -0.004700457211583853, + -0.012649373151361942, + 0.022696152329444885, + -0.028016161173582077, + -0.004805709235370159, + -0.021356580778956413, + 0.006171592511236668, + -0.017002977430820465, + -0.04217733442783356, + 0.006004146300256252, + -0.015041463077068329, + 0.01775887794792652, + -0.04003402218222618, + -0.006506485398858786, + -0.019261110574007034, + 0.027001913636922836, + 0.030312566086649895, + -0.04523921012878418, + 0.010161599144339561, + -0.007501594722270966, + -0.01762492023408413, + 0.02229428105056286, + -0.009252605028450489, + -0.02139485441148281, + -0.03760365769267082, + -0.022906655445694923, + 0.014907506294548512, + -0.032379332929849625, + -0.015682542696595192, + -0.049985118210315704, + 0.022141186520457268, + 0.004277057480067015, + -0.004829630255699158, + -0.012850308790802956, + 0.02466723322868347, + -0.018265999853610992, + 0.012257070280611515, + 0.002506910590454936, + -0.0025212629698216915, + 0.01054433360695839, + -0.009807569906115532, + 0.026370402425527573, + 0.018036359921097755, + -0.013778439722955227, + 0.06682543456554413, + 0.025107378140091896, + 0.012936423532664776, + -0.05541994422674179, + -0.022504784166812897, + -0.025432702153921127, + -0.04336380958557129, + 0.005807994864881039, + -0.055840954184532166, + 0.02864767238497734, + -0.008817244321107864, + -0.02191154658794403, + -0.034771423786878586, + -0.01932808943092823, + 0.034101638942956924, + -0.015682542696595192, + -0.0013371784007176757, + -0.017519667744636536, + -0.04474165663123131, + 0.061046142131090164, + -0.0380246639251709, + -0.009132999926805496, + 0.007898681797087193, + -0.03142249584197998, + -0.04937274008989334, + 0.0006120760808698833, + -0.053774189203977585, + 0.02589198388159275, + 0.016706358641386032, + 0.0081857331097126, + -0.009477461688220501, + -0.007846055552363396, + -0.004336859565228224, + 0.027422921732068062, + 0.020820753648877144, + -0.013405273668467999, + -0.005076015368103981, + -0.008070912212133408, + 0.012601531110703945, + 0.00079895812086761, + 0.037393152713775635, + -0.004774611908942461, + 0.041679780930280685, + -0.034522645175457, + -0.004578460473567247, + 0.0053917714394629, + 0.015940889716148376, + 0.010419945232570171, + -0.012831171974539757, + -0.04424409940838814, + -0.0022509568370878696, + -0.002722198609262705, + 0.04294280335307121, + -0.025337019935250282, + 0.0018036359688267112, + 0.019050605595111847, + 0.01501275785267353, + 0.024896875023841858, + 0.021528812125325203, + 0.05040612444281578, + 0.02436104603111744, + 0.006544758565723896, + 0.0004368554800748825, + -0.031690411269664764, + -0.02711673453450203, + -0.008783754892647266, + -0.03329789638519287, + 0.011682968586683273, + -0.027212418615818024, + 0.020150966942310333, + -0.014209015294909477, + -0.0010919892229139805, + 0.03128853812813759, + -0.017931107431650162, + 0.017644057050347328, + -0.020418882369995117, + -0.028437167406082153, + -0.019050605595111847, + -0.02397831156849861, + 0.012888582423329353, + 0.020801616832613945, + -0.014390815049409866, + -0.03125026449561119, + 0.008807675912976265, + -0.00633903918787837, + 0.015806932002305984, + 0.03523070365190506, + 0.07673825323581696, + 0.04500956833362579, + -0.014610886573791504, + 0.0742122083902359, + 0.06364873796701431, + -0.05714225023984909, + 0.05852009356021881, + -0.022064639255404472, + -0.03557516634464264, + -0.013864554464817047, + -0.004922921769320965, + 0.012371890246868134, + -0.03176695853471756, + 0.02468637004494667, + -0.014371678233146667, + 0.04079949110746384, + 0.0198639165610075, + 0.027346374467015266, + -0.027365511283278465, + -0.039421647787094116, + -0.037029556930065155, + 0.010582607239484787, + -0.02210291288793087, + -0.010161599144339561, + 0.020457156002521515, + 0.0016816394636407495, + -0.034235596656799316, + 0.08741654455661774, + -0.027231555432081223, + -0.0035450777504593134, + 0.022543057799339294, + 0.027556879445910454, + 0.0535445474088192, + 0.019615139812231064, + -0.03580480441451073, + -0.04171805456280708, + -0.010391240008175373, + -0.0002718012547120452, + -0.015079736709594727, + -0.05163087323307991, + -0.02261960506439209, + 0.014888369478285313, + -0.02212204970419407, + 0.02832234837114811, + 0.01535721868276596, + -0.022830108180642128, + -0.018438231199979782, + 0.016132256016135216, + 0.03777588903903961, + 0.0006781575502827764, + -0.009903253056108952, + 0.018725281581282616, + 0.06640442460775375, + 0.0586731880903244, + -0.00982670672237873, + -0.024437593296170235, + 0.046196047216653824, + -0.02537529356777668, + 0.03716351464390755, + -0.003085796255618334, + -0.024207953363656998, + 0.016476716846227646, + -0.023595577105879784, + -0.022887518629431725, + 0.01113757211714983, + -0.016160961240530014, + 0.006975335069000721, + 0.05943865701556206, + -0.035996172577142715, + 0.025604933500289917, + 0.030465660616755486, + 0.030944079160690308, + -0.04114395007491112, + 0.0379289835691452, + 0.021299170330166817, + 0.020935572683811188, + -0.0033321816008538008, + 0.02604507841169834, + 0.008224005810916424, + 0.04715288057923317, + 0.004499521572142839, + 0.05197533592581749, + -0.041335318237543106, + -0.05381246283650398, + 0.04355517774820328, + 0.04474165663123131, + -0.02696364000439644, + 0.0023478365037590265, + 0.017892833799123764, + 0.0094918143004179, + -0.04520093649625778, + -0.0007559005171060562, + 0.009855411946773529, + 0.004985115956515074, + -0.023193705826997757, + -0.026102488860487938, + 0.009912821464240551, + 0.038407400250434875, + -0.0016672868514433503, + -0.01844779960811138, + -0.01712736487388611, + -0.02573889121413231, + 0.03666595742106438, + 0.04914310202002525, + 0.010324261151254177, + 0.001651738304644823, + -0.03524984046816826, + -0.02399744838476181, + -0.05082713067531586, + -0.06368701159954071, + 0.010324261151254177, + -0.029106954112648964, + 0.0017797150649130344, + 0.016620242968201637, + 0.010994046926498413, + 0.010831383988261223, + 0.014036784879863262, + -0.014869232662022114, + -0.008515841327607632, + -0.0010375691344961524, + -0.018725281581282616, + -0.012362321838736534, + 0.05266425758600235, + -0.0016780513105913997, + -0.012926855124533176, + -0.01311822235584259, + 0.0036048798356205225, + -0.03725919872522354, + -0.03331703320145607, + 0.04543057829141617, + -0.019213268533349037, + 0.010352966375648975, + 0.020648522302508354, + 0.010946204885840416, + -0.02263874188065529, + 0.016007866710424423, + 0.008520625531673431, + 0.010927068069577217, + -0.05461620166897774, + -0.038101211190223694, + -0.017194343730807304, + -0.01919413171708584, + 0.0004111404996365309, + -0.021107804030179977, + 0.0881054624915123, + 0.023901764303445816, + 0.028188390657305717, + -0.08213480561971664, + -0.023538166657090187, + 0.010458217933773994, + 0.014381246641278267, + -0.003968477714806795, + 0.01019030436873436, + 0.006659578997641802, + 0.022370828315615654, + 0.02868594601750374, + -0.014964915812015533, + -0.04726770147681236, + -0.05974484607577324, + -0.03075271099805832, + -0.007855623960494995, + 0.025164788588881493, + -0.007224112283438444, + 0.04650223255157471, + -0.04340208321809769, + -0.041526686400175095, + -0.03833085298538208, + 0.019395066425204277, + 0.0028202743269503117, + -0.018954923376441002, + 0.06112268939614296, + 0.010065915994346142, + -0.016821177676320076, + -0.005616627633571625, + 0.018170317634940147, + -0.053276631981134415, + -0.01865830272436142, + 0.02363385073840618, + 0.017739741131663322, + -0.01914628967642784, + 0.022657878696918488, + 0.005176483187824488, + -0.009711885824799538, + -0.023404210805892944, + 0.04956410825252533, + 0.01640973798930645, + -0.032723795622587204, + 0.008415373042225838, + -0.028207527473568916, + -0.032207101583480835, + 0.021681904792785645, + -0.029394004493951797, + -0.025758028030395508, + 0.02522219903767109, + 0.013166064396500587, + 0.010247714817523956, + -0.019978737458586693, + -0.014591749757528305, + -0.0241696797311306, + 0.034599192440509796, + -0.008099617436528206, + 0.03140335902571678, + 0.014553477056324482, + 0.004853550810366869, + -0.04500956833362579, + -0.022007230669260025, + -0.0038105996791273355, + 0.004411014262586832, + 0.009606634266674519, + 0.03735487908124924, + -0.023882629349827766, + 0.022657878696918488, + -0.053582821041345596, + -0.02311716042459011, + 0.0022569370921701193, + -0.02057197503745556, + -0.004994684364646673, + -0.04386136680841446, + -0.0012211620341986418, + -0.03903891146183014, + 0.006032851524651051, + 0.004571284167468548, + -0.046387411653995514, + -0.027901340276002884, + 0.04229215532541275, + 0.00994152668863535, + -0.019241973757743835, + -0.03293429687619209, + -0.013204338029026985, + 0.021854136139154434, + -0.14406123757362366, + 0.0028107059188187122, + -0.02105039358139038, + -0.03247501701116562, + -0.032034870237112045, + -0.0016947959084063768, + -0.004382309038192034, + -0.020514564588665962, + 0.001559642842039466, + -0.02124176174402237, + 0.04018711671233177, + -0.03764193132519722, + 0.04887518659234047, + 0.030657028779387474, + -0.011462896130979061, + 0.014735275879502296, + 0.016467148438096046, + 0.009874548763036728, + 0.040301933884620667, + 0.02868594601750374, + -0.003990006633102894, + -0.03716351464390755, + -0.009056453593075275, + -0.0024853816721588373, + 0.0328386127948761, + -0.0038871464785188437, + -0.0327620655298233, + 0.015328514389693737, + -0.0267531368881464, + -0.03521156683564186, + -0.013051244430243969, + -0.008137891069054604, + 0.025298746302723885, + 0.05580268055200577, + -0.017644057050347328, + -0.027384648099541664, + -0.0058606211096048355, + 0.0075685735791921616, + -0.0009538459707982838, + 0.0024291675072163343, + -0.012247501872479916, + 0.006707421038299799, + 0.04164150729775429, + 0.002355012809857726, + -0.009262173436582088, + 0.04692324250936508, + 0.011903041042387486, + -0.014209015294909477, + -0.027537742629647255, + -0.0038895385805517435, + -0.007913034409284592, + -0.00729109114035964, + -0.03500106558203697, + -0.00792738702148199, + 0.028551988303661346, + 0.016438443213701248, + -0.030790984630584717, + 0.021471401676535606, + 0.01043908204883337, + 0.06919838488101959, + -0.04500956833362579, + -0.0006327078444883227, + -0.04726770147681236, + -0.06475866585969925, + -0.007453753147274256, + 0.01706038787961006, + -0.03999574854969978, + 0.0011493993224576116, + 0.02661917917430401, + -0.004207686521112919, + -0.00763555197045207, + -0.025088241323828697, + -0.02918349951505661, + -0.0431724451482296, + -0.004908569157123566, + -0.01406549010425806, + 0.030484797433018684, + -0.025604933500289917, + -0.03190091624855995, + -0.039421647787094116, + 0.03603444620966911, + -0.015452902764081955, + -0.00803263857960701, + -0.005702742841094732, + -0.005678822286427021, + 0.00415027653798461, + -0.045851584523916245, + -0.010601744055747986, + 0.05576440691947937, + 0.03192005306482315, + -0.023959174752235413, + -0.0010256086243316531, + 0.048951733857393265, + 0.036149267107248306, + -0.021605359390378, + 0.03362321853637695, + -0.01303210761398077, + 0.0018347331788390875, + -0.004310546442866325, + -0.023346800357103348, + -0.06089304760098457, + -0.003100148867815733, + 0.015299809165298939, + 0.017481395974755287, + -0.005339145194739103, + 0.06024239957332611, + 0.017682330682873726, + -0.029279183596372604, + 0.01775887794792652, + -0.028398895636200905, + -0.03605358302593231, + 0.020284924656152725, + -0.026638315990567207, + -0.009716670028865337, + -0.00608547730371356, + 0.000930523092392832, + -0.035460345447063446, + -0.029738465324044228, + 0.012027429416775703, + -0.040148843079805374, + 0.006678715813905001, + 0.05610886588692665, + 0.0013933925656601787, + -0.019079310819506645, + -0.0036598979495465755, + -0.06812673062086105, + 0.051362961530685425, + 0.03126940131187439, + -0.003990006633102894, + 0.038579631596803665, + 0.015328514389693737, + 0.016859451308846474, + -0.041526686400175095, + 0.040340207517147064, + -0.003982830327004194, + -0.027901340276002884, + -0.062270890921354294, + 0.062270890921354294, + -0.054807569831609726, + -0.05021475628018379, + -0.008046991191804409, + 0.037890709936618805, + 0.010027642361819744, + -0.042560067027807236, + -0.014036784879863262, + 0.004286625422537327, + 0.01814161241054535, + -0.0017258931184187531, + 0.01149160135537386, + -0.004059377126395702, + -0.020323198288679123, + -0.0004485169192776084, + 0.02468637004494667, + 0.008353179320693016, + -0.019462045282125473, + -0.006166808307170868, + 0.03073357418179512, + -0.0005839689983986318, + -0.024954285472631454, + 0.015529449097812176, + 0.03092494234442711, + -0.06449075043201447, + -0.020514564588665962, + 0.001617052941583097, + 0.013874122872948647, + 0.004918137565255165, + 0.011032319627702236, + -0.010592175647616386, + -0.020418882369995117, + 0.0030905804596841335, + 0.03930682688951492, + 0.04971720278263092, + -0.022485647350549698, + 0.029489688575267792, + 0.009731022641062737, + -0.04007229581475258, + 0.03641718253493309, + -0.029604507610201836, + 0.034962791949510574, + -0.01181692536920309, + 0.024035722017288208, + 0.03172868490219116, + 0.012017861008644104, + 0.00479135662317276, + -0.0033441421110183, + 0.013788008131086826, + 0.0009382973657920957, + 0.02881990186870098, + -0.02434190921485424, + 0.004561716224998236, + 0.01796938106417656, + -0.009726238436996937, + 0.030790984630584717, + 0.019749097526073456, + 0.09553051739931107, + -0.030503934249281883, + 0.00020078607485629618, + -0.0032412821892648935, + -0.0034111205022782087, + 0.06824155151844025, + 0.0006004146416671574, + -0.009027748368680477, + -0.007602062541991472, + 0.018935786560177803, + 0.001333590247668326, + -0.017223048955202103, + 0.0014543908182531595, + 0.03314480185508728, + -0.01642887480556965, + 0.016333192586898804, + -0.04818626493215561, + -0.0033967681229114532, + -0.013194769620895386, + 0.029221773147583008, + 0.03957473859190941, + 0.013778439722955227, + 0.0072958748787641525, + 0.0037149160634726286, + -0.03999574854969978, + 0.023059749975800514, + -0.01019030436873436, + 0.023365937173366547, + -0.02311716042459011, + -0.0011924569262191653, + 0.065562404692173, + -0.01242930069565773, + -0.018074633553624153, + -0.01347225159406662, + -0.008147459477186203, + -0.02225600741803646, + -0.011338507756590843, + -0.017337869852781296, + -0.019576866179704666, + 0.02001701109111309, + -0.030331702902913094, + -0.03371890261769295, + 0.018246864899992943, + -0.009951095096766949, + 0.006779183633625507, + 0.015118010342121124, + 0.042904529720544815, + -0.013424410484731197, + -0.03815862163901329, + 0.030944079160690308 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "1号压缩环", + "组成编码": "030203", + "维修项目名称": "更换1号压缩环", + "维修项目编号": "MT007", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.9 MT007 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0070302031号压缩环更换1号压缩环1A/8000hJY级
安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。
安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配Φ350 mm活塞
2环口间隙测量规Feeler Gauge Set1套0.05-1.00mm
3环槽清洁刮刀Custom-Piston-Groove-Scraper1把铜质刃口
4扭矩扳手20-100 N·m1把
2)备品备件
名称规格/型号消耗数量备注
1第一道压缩环MAN 5L35MC-RING-11件梯形截面,表面镀铬
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus5g
2无绒布Kimwipe EX-L3张
3清洗剂Brulin 815GD100mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师复刻还口间隙
修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。
验收标准
1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内;
页码:1/13.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_11764560-e529-4268-a045-e036ba8ba667.pdf#page=33\"}]", + "embedding": [ + -0.02639651857316494, + 0.02155594900250435, + -0.03002241440117359, + -0.025435656309127808, + 0.019017821177840233, + -0.028445148840546608, + -0.01632559485733509, + 0.04079132154583931, + -0.03321320191025734, + 0.006023518741130829, + -0.0011319592595100403, + 0.0008333894074894488, + -0.023115083575248718, + -0.014612358063459396, + -0.01169351302087307, + -0.005928338970988989, + -0.009472651407122612, + 0.01186574250459671, + 0.013234518468379974, + -0.009159917943179607, + -0.00435107434168458, + -0.009445457719266415, + -0.03760053589940071, + 0.010161572135984898, + -0.01972487010061741, + 0.03605952858924866, + -0.027484286576509476, + 0.009517975151538849, + -0.0039748880080878735, + 0.016171492636203766, + -0.013724014163017273, + -0.015382861718535423, + 0.001215808093547821, + -0.06892827153205872, + -0.015228760428726673, + -0.003224780783057213, + 0.018872786313295364, + -0.016733506694436073, + -0.05902957543730736, + 0.028173208236694336, + -0.04169779643416405, + -0.012355238199234009, + 0.028698962181806564, + -0.023858392611145973, + 0.02003307268023491, + -0.004890426527708769, + 0.02307882346212864, + -0.02529061958193779, + -0.06508482247591019, + -0.0150474663823843, + 0.035860106348991394, + 0.006522079464048147, + 0.015174372121691704, + -0.06087878346443176, + -0.020431920886039734, + -0.00787272583693266, + -0.030729463323950768, + 0.0014174984535202384, + -0.005370857659727335, + -0.047027863562107086, + 0.0377093106508255, + 0.09478090703487396, + 0.0009342345874756575, + -0.04173405468463898, + 0.04322067275643349, + 0.030330615118145943, + 0.01470300555229187, + 0.03450039401650429, + 0.00785006396472454, + -0.01774875819683075, + -0.011330923065543175, + 0.02643277682363987, + 0.022426163777709007, + 0.006263734307140112, + -0.06203906983137131, + 0.02750241756439209, + 0.032814353704452515, + 0.011720706708729267, + -0.02110271155834198, + -0.005529490299522877, + 0.07839185744524002, + 0.010288477875292301, + -0.048623256385326385, + -0.03257866948843002, + -0.007501071318984032, + 0.05058123916387558, + -0.0030729463323950768, + 0.052466705441474915, + -0.03551564738154411, + -0.04981980472803116, + 0.0058603533543646336, + 0.044888585805892944, + -0.01746775023639202, + 0.004890426527708769, + -0.0003300131356809288, + 0.02262558788061142, + 0.00486776465550065, + -0.013216388411819935, + 0.0210664514452219, + 0.032741837203502655, + 0.0253631379455328, + 0.13394057750701904, + 0.04242297634482384, + 0.011956389993429184, + 0.028390761464834213, + -0.05406210198998451, + -0.009214306250214577, + 0.04129894822835922, + -0.0738232284784317, + -0.03334010764956474, + -0.020051201805472374, + 0.0595734603703022, + -0.03408341854810715, + -0.018564583733677864, + -0.0053481957875192165, + -0.044163405895233154, + -0.00946358684450388, + -0.011648189276456833, + 0.030693205073475838, + -0.02200918458402157, + 0.046375203877687454, + 0.047716785222291946, + 0.01639811135828495, + -0.01774875819683075, + 0.0036168305668979883, + -0.008520854637026787, + 0.035823848098516464, + 0.01245495118200779, + 0.00714301411062479, + -0.008652293123304844, + -0.022099832072854042, + 0.06664396077394485, + -0.03100140579044819, + 0.03062068670988083, + -0.012373368255794048, + -0.05054498091340065, + -0.010007471777498722, + -0.031146440654993057, + 0.00837128609418869, + -0.03272370621562004, + 0.0013223186833783984, + 0.027719970792531967, + 0.041008878499269485, + -0.01643437147140503, + 0.004607153125107288, + -0.07023359090089798, + -0.008362221531569958, + 0.019054081290960312, + 0.026595942676067352, + -0.03839823231101036, + 0.008221717551350594, + 0.027067309245467186, + 0.01611710526049137, + -0.019326021894812584, + -0.04169779643416405, + 0.00141863152384758, + -0.03527996316552162, + -0.012989770621061325, + 0.03344888612627983, + 0.025816375389695168, + 0.03016744926571846, + 0.017241133376955986, + -0.030113061890006065, + -0.026523424312472343, + 0.027339251711964607, + 0.03674845024943352, + 0.05562123656272888, + 0.030221838504076004, + -0.016905738040804863, + 0.036476507782936096, + 0.017168615013360977, + -0.00473179342225194, + -0.054642245173454285, + -0.016543148085474968, + 0.017204873263835907, + 0.001449225121177733, + 0.04608513042330742, + 0.00045210382086224854, + 0.009499846026301384, + -0.03295939043164253, + 0.02079451084136963, + 0.02822759561240673, + -0.011666318401694298, + -0.01598113402724266, + 0.02532687969505787, + 0.007736754138022661, + 0.039486002177000046, + -0.028481408953666687, + 0.008248912170529366, + 0.01950731687247753, + 0.023967169225215912, + 0.028082560747861862, + -0.0029845652170479298, + 0.00732430862262845, + 0.036476507782936096, + 0.040247440338134766, + -0.023296378552913666, + -0.041770316660404205, + -0.013832790777087212, + 0.019054081290960312, + 0.03005867265164852, + -0.003505787579342723, + 0.023785874247550964, + -0.028427019715309143, + -0.04590383544564247, + 0.02864457294344902, + -0.028517667204141617, + 0.023459542542696, + 0.0008481196127831936, + -0.04086384177207947, + -0.06098756194114685, + -0.031055795028805733, + 0.020957674831151962, + 0.0016271205386146903, + -0.03702039271593094, + 0.050907570868730545, + 0.02342328429222107, + -0.0693996399641037, + 0.004357872996479273, + -0.03683909773826599, + 0.013914373703300953, + 0.04528743401169777, + 0.008162797428667545, + -0.03629521280527115, + 0.024692347273230553, + -0.029841119423508644, + -0.008466465398669243, + 0.05866698920726776, + -0.03299564868211746, + -0.02837263233959675, + -0.033956509083509445, + -0.030566297471523285, + -0.010632938705384731, + -0.00775941601023078, + 0.002117749536409974, + 0.0487682931125164, + 0.0045822253450751305, + 0.027375509962439537, + 0.023586450144648552, + -0.027865005657076836, + -0.008575242944061756, + 0.029224716126918793, + 0.041117653250694275, + -0.030910758301615715, + -0.020812639966607094, + -0.03149090334773064, + 0.03221607953310013, + 0.06287302821874619, + -0.0350080206990242, + 0.033847734332084656, + 0.009826176799833775, + 0.007297114469110966, + -0.018483001738786697, + 0.05794180929660797, + 0.04322067275643349, + 0.0010645402362570167, + 0.06758669018745422, + -0.0006277331267483532, + 0.04383707419037819, + -0.008783731609582901, + 0.0016214550705626607, + 0.04662901535630226, + -0.008833588100969791, + 0.022154221311211586, + -0.013035094365477562, + -0.038760822266340256, + 0.018727749586105347, + 0.05199534073472023, + 0.0021143502090126276, + -0.01588142104446888, + -0.01968861185014248, + -0.012790346518158913, + -0.02799191325902939, + 0.047970596700906754, + -0.004854167345911264, + 0.028481408953666687, + 0.011303729377686977, + -0.020522568374872208, + 0.05384454503655434, + 0.030838239938020706, + 0.03843449056148529, + 0.01874587871134281, + 0.03141838312149048, + -0.0151381129398942, + -0.008470998145639896, + 0.004598088562488556, + -0.1251659095287323, + 0.04884080961346626, + 0.03339449688792229, + 0.027738099917769432, + -0.03865204378962517, + -0.0243841465562582, + 0.0427493080496788, + -0.012518404051661491, + -0.03428284078836441, + 0.0573616661131382, + -0.02757493406534195, + -0.1271238923072815, + 0.01551883202046156, + -0.013297971338033676, + 0.0018650699639692903, + 0.008747472427785397, + -0.005987260024994612, + 0.04731793329119682, + -0.010478837415575981, + -0.057687994092702866, + -0.047898080199956894, + -0.018800267949700356, + -0.05750670284032822, + -0.03190787881612778, + -0.0038706434424966574, + 0.017223002389073372, + -0.009336681105196476, + -0.029043423011898994, + 0.0039046360179781914, + -0.012935382314026356, + -0.005062656477093697, + -0.04227793961763382, + 0.0006775892106816173, + 0.016543148085474968, + -0.0012441353173926473, + -0.041770316660404205, + 0.009953082539141178, + 0.04811563342809677, + -0.01992429606616497, + 0.008711214177310467, + -0.013805597089231014, + -0.03854326903820038, + 0.013080418109893799, + 0.004178844392299652, + 0.0443447008728981, + 0.028843997046351433, + 0.008112940937280655, + 0.004267225507646799, + 0.009418263100087643, + -0.004475714638829231, + -0.022190479561686516, + 0.05025491118431091, + -0.0013245849404484034, + -0.028390761464834213, + 0.04050125181674957, + 0.0070070428773760796, + -0.033503275364637375, + -0.02483738400042057, + -0.028934644535183907, + -0.027375509962439537, + -0.007768481038510799, + -0.030838239938020706, + -0.0008339559426531196, + 0.013243583030998707, + 0.01784846931695938, + 0.012754087336361408, + -0.007754883728921413, + -0.02951478771865368, + 0.043329451233148575, + -0.05130641907453537, + 0.02411220408976078, + -0.02936975285410881, + -0.041153911501169205, + 0.01188387256115675, + 0.01413192693144083, + -0.053228143602609634, + -0.058485694229602814, + -0.011611930094659328, + 0.008543516509234905, + 0.03459104150533676, + -0.015609479509294033, + -0.00722912885248661, + 0.0005846756394021213, + -0.03223421052098274, + 0.005148771684616804, + -0.007618912495672703, + 0.034337230026721954, + -0.024964289739727974, + -0.022335516288876534, + -0.06272798776626587, + -0.10855931043624878, + -0.030747592449188232, + 0.002255986910313368, + -0.027792489156126976, + 0.03386586159467697, + -0.04285808280110359, + 0.0005852421745657921, + 0.036621544510126114, + 0.02708543837070465, + -0.02871709130704403, + 0.1973937451839447, + -0.0029641694854944944, + 0.040356215089559555, + -0.016561277210712433, + 0.0453236922621727, + -0.041770316660404205, + -0.0003880841250065714, + -0.04278556630015373, + -0.0035420465283095837, + -0.04296686127781868, + -0.05217663571238518, + 0.015817968174815178, + -0.0062546697445213795, + -0.0126815689727664, + -0.005883015226572752, + 0.015999263152480125, + 0.047898080199956894, + -0.0389421172440052, + 0.09492594003677368, + -0.007265388034284115, + 0.06044367700815201, + -0.008693084120750427, + 0.002612910931929946, + -0.016379982233047485, + -0.03629521280527115, + -0.030330615118145943, + -0.0023149074986577034, + 0.006798553746193647, + 0.0204500500112772, + 0.0199605543166399, + -0.006091504357755184, + -0.011802289634943008, + 0.007365100085735321, + -0.005393519531935453, + 0.021429041400551796, + 0.022299256175756454, + -0.021229617297649384, + 0.0022525875829160213, + -0.029623566195368767, + -0.0175040103495121, + -0.05069001764059067, + -0.058449432253837585, + -0.02518184296786785, + -0.022081702947616577, + 0.020286884158849716, + -0.041081395000219345, + -0.0070387693122029305, + -0.0367303192615509, + 0.031092053279280663, + 0.014576099812984467, + -0.04829692840576172, + 0.02422098070383072, + -0.009853370487689972, + -0.0007365100318565965, + -0.0014922826085239649, + 0.017077967524528503, + -0.02895277552306652, + -0.01395969744771719, + -0.028408890590071678, + 0.023405155166983604, + -0.02822759561240673, + -0.012291785329580307, + -0.05562123656272888, + 0.018220124766230583, + -0.0035012552980333567, + 0.03448226675391197, + -0.007913516834378242, + -0.003891038941219449, + 0.01611710526049137, + -0.003091075923293829, + 0.02837263233959675, + -0.0008027959265746176, + -0.011593800969421864, + -0.02030501514673233, + 0.03190787881612778, + 0.017984440550208092, + -0.02220860868692398, + 0.05964598059654236, + 0.011321858502924442, + 0.0001960249646799639, + -0.050943829119205475, + -0.05634641647338867, + -0.01881839707493782, + -0.02023249678313732, + -0.015718257054686546, + -0.049312178045511246, + 0.0529380738735199, + -0.013361424207687378, + -0.01636185310781002, + -0.03934096544981003, + -0.022353645414114, + 0.034717947244644165, + 0.0003858179261442274, + 0.01491149514913559, + -0.010234089568257332, + -0.0312008298933506, + 0.05667274445295334, + -2.1794323401991278e-05, + -0.013515525497496128, + 0.005420713685452938, + -0.029804861173033714, + -0.033231332898139954, + -0.026305871084332466, + -0.024094074964523315, + 0.01767623983323574, + 0.0267772376537323, + 0.023604579269886017, + -0.03908715397119522, + 0.002522263443097472, + -0.00984430592507124, + 0.0030321551021188498, + 0.015400990843772888, + 0.002563054906204343, + 0.004768052604049444, + -0.01112243440002203, + 0.016724443063139915, + -0.02369522675871849, + 0.05456972494721413, + 0.02723047509789467, + 0.029387881979346275, + -0.03818067908287048, + -0.03179910406470299, + 0.012146749533712864, + -0.022462422028183937, + 0.013814661651849747, + -0.019416669383645058, + -0.027248604223132133, + 0.004799779038876295, + 0.0049992031417787075, + 0.033648308366537094, + -0.012790346518158913, + -0.004559563472867012, + 0.013597107492387295, + 0.012663439847528934, + -0.0013427144149318337, + 0.028862128034234047, + 0.1067463606595993, + 0.034717947244644165, + -0.0121920732781291, + -0.009087400510907173, + -0.007591718342155218, + -0.0027284862007945776, + 0.006059777922928333, + 0.009508910588920116, + 0.00984430592507124, + -0.01470300555229187, + -0.0048224409110844135, + -0.02304256521165371, + 0.010587614960968494, + -0.003372082719579339, + -0.04006614536046982, + 0.0029551046900451183, + -0.012917252257466316, + 0.012146749533712864, + -0.0004209438047837466, + -0.012164878658950329, + -0.003458197694271803, + 0.011140563525259495, + -0.025417527183890343, + -0.021320264786481857, + 0.010315672494471073, + -0.008176393806934357, + 0.027031050994992256, + 0.005597475916147232, + 0.03303190693259239, + 0.04224168136715889, + -0.01819293014705181, + 0.07095877081155777, + 0.033503275364637375, + -0.068783238530159, + 0.0465564988553524, + -0.022879399359226227, + -0.03176284208893776, + -0.015681996941566467, + -0.004518772009760141, + -0.01961609348654747, + -0.031327735632658005, + 0.00818092655390501, + -0.008090279065072536, + 0.03778183087706566, + 0.006046180613338947, + 0.009835241362452507, + -0.015609479509294033, + -0.02594328112900257, + -0.030566297471523285, + 0.005783303175121546, + -0.0038842405192553997, + -0.0194710586220026, + -0.004156182520091534, + -0.021501559764146805, + -0.03821693733334541, + 0.0693996399641037, + -0.020522568374872208, + -0.010098118335008621, + 0.010252219624817371, + -0.007392294239252806, + -0.01257279235869646, + 0.033612050116062164, + -0.02860831469297409, + -0.02601579949259758, + -0.023930909112095833, + -0.02224486880004406, + -0.0025902490597218275, + -0.07364193350076675, + -0.03047564998269081, + 0.024402275681495667, + -0.018963433802127838, + 0.028862128034234047, + 0.008774667046964169, + -0.02521810308098793, + -0.015419119969010353, + 0.02643277682363987, + 0.06860194355249405, + -0.004226434510201216, + -0.03493550047278404, + 0.026940403506159782, + 0.05137893930077553, + 0.06515733897686005, + 0.010070924647152424, + -0.03295939043164253, + 0.06309057772159576, + -0.02273436449468136, + 0.05786928907036781, + -0.0002031067997450009, + -0.0253631379455328, + -0.012273656204342842, + -0.03558816388249397, + -0.03595075383782387, + 0.01816573552787304, + 0.009255098178982735, + 0.010506032034754753, + 0.02719421498477459, + -0.0174405574798584, + 0.027629323303699493, + 0.021737242117524147, + 0.03638586029410362, + -0.05427965521812439, + 0.028390761464834213, + 0.03158155083656311, + 0.017866600304841995, + -0.0020973538048565388, + 0.03330384939908981, + -0.031073924154043198, + 0.047970596700906754, + 0.005117044784128666, + 0.06483101099729538, + -0.009236968122422695, + -0.05786928907036781, + 0.06794928014278412, + 0.016343723982572556, + 0.0006571935373358428, + -0.02688601426780224, + 0.032850611954927444, + -0.006803086027503014, + -0.031563419848680496, + 0.011022722348570824, + 0.011720706708729267, + 0.0050128004513680935, + 0.0029279105365276337, + -0.04358326271176338, + 0.0034785934258252382, + 0.05939216539263725, + -0.01333423051983118, + -0.0054433755576610565, + -0.021429041400551796, + -0.02400342747569084, + 0.03567881137132645, + 0.05783303081989288, + 0.008226250298321247, + 0.020178107544779778, + -0.02795565314590931, + -0.023949040099978447, + -0.031599678099155426, + -0.04894958809018135, + 0.042604271322488785, + -0.037999384105205536, + -0.01667005382478237, + 0.015364731661975384, + 0.05257548391819, + 0.016316529363393784, + 0.013751208782196045, + 0.006077907048165798, + -0.0017472283216193318, + 0.012210202403366566, + -0.009436393156647682, + -0.025236232206225395, + 0.042568013072013855, + -0.03857952728867531, + -0.008389415219426155, + -0.01649782434105873, + 0.017630916088819504, + -0.02947852946817875, + -0.027738099917769432, + 0.047100380063056946, + -0.029768601059913635, + 0.004002082161605358, + 0.015999263152480125, + 0.00780020747333765, + -0.03348514437675476, + -0.014059409499168396, + -0.004097261931747198, + 0.005951000843197107, + -0.0624016597867012, + -0.02521810308098793, + -0.002415752736851573, + -0.03821693733334541, + -0.013016964308917522, + -0.06084252521395683, + 0.06954467296600342, + 0.022988175973296165, + 0.01134905219078064, + -0.048695776611566544, + -0.0383257158100605, + -0.021338393911719322, + 0.005978194996714592, + -0.006970783695578575, + 0.006490352563560009, + 0.000456919486168772, + 0.0399211086332798, + 0.019833648577332497, + -0.018727749586105347, + -0.030004285275936127, + -0.06330813467502594, + -0.03234298527240753, + -0.008421141654253006, + 0.03373895585536957, + -0.028862128034234047, + 0.026904143393039703, + -0.02289753034710884, + -0.029188457876443863, + -0.04989232122898102, + 0.014603293500840664, + -0.007510135881602764, + -0.007768481038510799, + 0.0649760439991951, + 0.049348436295986176, + -0.0366034135222435, + 0.016561277210712433, + 0.03926844894886017, + -0.04285808280110359, + -0.015301278792321682, + 0.05185030400753021, + 0.012890058569610119, + -0.020395660772919655, + 0.007056898903101683, + 0.038724564015865326, + 0.00530287204310298, + -0.019670482724905014, + 0.06167647987604141, + -0.0019069943809881806, + -0.00940919853746891, + 0.011004592292010784, + -0.04314815625548363, + -0.031055795028805733, + 0.04398211091756821, + -0.04296686127781868, + -0.027393639087677002, + 0.03219795227050781, + 0.04474354907870293, + -0.007065963465720415, + -0.019108468666672707, + 0.006544741336256266, + -0.02791939489543438, + 0.022480551153421402, + -0.018446743488311768, + 0.02200918458402157, + 0.013896244578063488, + 0.004863232374191284, + -0.007763948757201433, + -0.020957674831151962, + 0.007093158084899187, + -0.01306228805333376, + -0.005126109812408686, + 0.04042873531579971, + -0.046375203877687454, + 0.023822132498025894, + -0.06410583108663559, + -0.04749922826886177, + -0.0074693444184958935, + -0.016597535461187363, + 0.010379125364124775, + -0.024094074964523315, + -0.00894236471503973, + -0.023822132498025894, + 0.03912341222167015, + 0.009962148033082485, + -0.053264401853084564, + -0.017458686605095863, + 0.035932622849941254, + 0.0020044404082000256, + -0.03926844894886017, + -0.04079132154583931, + -0.015500702895224094, + 0.03676658123731613, + -0.10515096783638, + 0.007999631576240063, + -0.019217245280742645, + -0.029931766912341118, + -0.019869906827807426, + 0.026686590164899826, + 0.0009863568702712655, + -0.03450039401650429, + -0.00737869692966342, + -0.013859985396265984, + 0.056310154497623444, + -0.03912341222167015, + 0.011004592292010784, + 0.018981562927365303, + -0.03591449558734894, + -0.003702945774421096, + 0.02064947411417961, + -0.0023409686982631683, + 0.0529380738735199, + 0.0180569589138031, + -0.014086604118347168, + -0.04021117836236954, + 0.004625282716006041, + 0.01055135577917099, + -0.013742143288254738, + 0.0003693880862556398, + -0.038108162581920624, + 0.023133212700486183, + -0.03448226675391197, + -0.045577503740787506, + 0.032324858009815216, + -0.009051141329109669, + 0.031527161598205566, + 0.07563617825508118, + -0.014712071046233177, + 0.000445022014901042, + -0.0016769766807556152, + -0.019180987030267715, + -0.014050344936549664, + 0.01740429736673832, + -0.014621423557400703, + -0.002748881932348013, + 0.05275677889585495, + -0.027411770075559616, + -0.028390761464834213, + 0.035370610654354095, + 0.01988803595304489, + -0.01574545167386532, + -0.022679975256323814, + -0.012799411080777645, + -0.024637959897518158, + 0.0018140807515010238, + -0.03179910406470299, + -0.022117961198091507, + 0.03194413706660271, + -0.008049488067626953, + -0.027411770075559616, + 0.015156242996454239, + 0.010923010297119617, + 0.04427218437194824, + -0.03386586159467697, + 0.02217235043644905, + -0.05039994791150093, + -0.04133520647883415, + 0.00775941601023078, + 0.018319835886359215, + -0.036277081817388535, + 0.002234457992017269, + 0.029587306082248688, + -0.003841182915493846, + -0.027701841667294502, + -0.0064178346656262875, + -0.016869477927684784, + -0.055548716336488724, + -0.0063407844863832, + 0.0008668156224302948, + 0.031780973076820374, + -0.008421141654253006, + -0.012037972919642925, + -0.05670900270342827, + 0.026650331914424896, + -0.030076801776885986, + 0.005701720714569092, + -0.010152507573366165, + 0.0011818152852356434, + -0.003999815788120031, + -0.058485694229602814, + 0.0046320813708007336, + 0.017739692702889442, + 0.03085636906325817, + -0.015564155764877796, + 0.005642799660563469, + 0.027683710679411888, + 0.030638815835118294, + -0.06243791803717613, + 0.011784160509705544, + -0.0048360382206737995, + 0.023241989314556122, + -0.01580890454351902, + -0.006268266588449478, + -0.02521810308098793, + 0.004659275524318218, + 0.018392354249954224, + 0.011376246809959412, + 0.01754026859998703, + 0.0601898655295372, + 0.037346724420785904, + -0.03100140579044819, + 0.03531622141599655, + -0.023604579269886017, + -0.041879091411828995, + 0.03411967679858208, + -0.02837263233959675, + 0.003188521834090352, + -0.03150903061032295, + -0.003666686825454235, + -0.020159978419542313, + -0.03149090334773064, + 0.011766030453145504, + -0.02193666808307171, + 0.006880136672407389, + 0.044816065579652786, + 0.006871071644127369, + -0.019434798508882523, + 0.005751576740294695, + -0.06251043826341629, + 0.05333692207932472, + 0.03564255312085152, + -0.016660990193486214, + 0.008348624221980572, + 0.018319835886359215, + -0.015246890485286713, + -0.04050125181674957, + 0.020522568374872208, + -0.007745819166302681, + -0.03667593374848366, + -0.06044367700815201, + 0.05942842736840248, + -0.04300311952829361, + -0.04006614536046982, + -0.015618544071912766, + 0.047716785222291946, + -0.0014956818195059896, + -0.013787467032670975, + -0.024202851578593254, + 0.013470201753079891, + 0.021284006536006927, + -0.008022293448448181, + 0.019942425191402435, + -0.02521810308098793, + -0.014866171404719353, + 0.004439455922693014, + 0.020595086738467216, + 0.020576955750584602, + -0.008883443661034107, + -0.009672076441347599, + -0.008421141654253006, + 0.014811783097684383, + -0.014086604118347168, + -0.013026028871536255, + 0.03326759114861488, + -0.06294554471969604, + -0.008498192764818668, + 0.048550739884376526, + -0.009246033616364002, + 0.0023976233787834644, + -0.005475101992487907, + -0.009051141329109669, + -0.0028123350348323584, + 0.00742855342105031, + 0.03908715397119522, + 0.07215531915426254, + -0.019344152882695198, + 0.048550739884376526, + 0.011058980599045753, + -0.02086702734231949, + 0.026070188730955124, + -0.0033539533615112305, + 0.001965915085747838, + -0.01598113402724266, + 0.027973782271146774, + 0.025888893753290176, + 0.0030661479104310274, + 0.03103766404092312, + -0.02048630826175213, + 0.035896364599466324, + 0.014993077144026756, + 0.016171492636203766, + -0.015718257054686546, + 0.01451264601200819, + 0.017032643780112267, + -0.011747901327908039, + 0.03915967047214508, + 0.0210664514452219, + 0.09710147976875305, + -0.022462422028183937, + -4.043723311042413e-05, + -0.0022786485496908426, + -0.0009144055075012147, + 0.07219158113002777, + -0.019797388464212418, + -0.0377093106508255, + -0.029841119423508644, + -0.01594487577676773, + -0.014222574420273304, + 0.04013866186141968, + 0.0019387209322303534, + 0.010261284187436104, + -0.006164022255688906, + 0.011521282605826855, + -0.036585286259651184, + -0.0029551046900451183, + -0.01670631393790245, + 0.01784846931695938, + 0.025616951286792755, + 0.011620994657278061, + 0.006372511386871338, + -0.011403441429138184, + -0.031744714826345444, + 0.04307563602924347, + -0.0415165014564991, + 0.01950731687247753, + -0.014050344936549664, + 0.018120411783456802, + 0.0681668370962143, + 0.005388987250626087, + -0.011285599321126938, + 0.003947693854570389, + 0.018618972972035408, + -0.013071352615952492, + -0.019489187747240067, + -0.02909781038761139, + 0.0014718868769705296, + 0.02902529202401638, + -0.017902858555316925, + -0.014204445295035839, + -0.007242726162075996, + -0.009962148033082485, + -0.006612726952880621, + 0.017567463219165802, + 0.06345316767692566, + -0.009572363458573818, + -0.014766459353268147, + 0.020812639966607094 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换2-4号活塞环", + "编号": "MT008", + "内容": "表 4.10 MT008 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0080302042-4号活塞环更换2-4号活塞环1A/8000hJY级
安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。
安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个同MT007
2环口定位夹具Custom-Ring-Aligner1套控制各环开口相位
3放大镜(带LED)5X with light1个检查环体缺陷
2)备品备件
名称规格/型号消耗数量备注
1第二道压缩环MAN 5L35MC-RING-21件锥面环
2第三道刮油环(组合式)MAN 5L35MC-RING-31套含轨环+弹簧胀圈
3第四道刮油环(组合式)MAN 5L35MC-RING-41套同上
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus10g涂所有环外圆
2缸套润滑机油Shell Mysella S5N8050mL涂缸壁
3标记笔(耐油)Marka1Oil-Resistant1支标记环开口位置
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+ 技师工程师监督相位布置
修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。
拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。
差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120°
(1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证
1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.10 MT008 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0080302042-4号活塞环更换2-4号活塞环1A/8000hJY级
安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。
安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个同MT007
2环口定位夹具Custom-Ring-Aligner1套控制各环开口相位
3放大镜(带LED)5X with light1个检查环体缺陷
2)备品备件
名称规格/型号消耗数量备注
1第二道压缩环MAN 5L35MC-RING-21件锥面环
2第三道刮油环(组合式)MAN 5L35MC-RING-31套含轨环+弹簧胀圈
3第四道刮油环(组合式)MAN 5L35MC-RING-41套同上
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus10g涂所有环外圆
2缸套润滑机油Shell Mysella S5N8050mL涂缸壁
3标记笔(耐油)Marka1Oil-Resistant1支标记环开口位置
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+ 技师工程师监督相位布置
修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。
拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。
差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120°
(1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证
1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_c8dc7bf9-e9b4-4423-91ad-4afb1911fadd.pdf#page=35\"}]", + "embedding": [ + -0.019171399995684624, + 0.04386867210268974, + -0.026896346360445023, + 0.035222746431827545, + -0.014604095369577408, + -0.02037431113421917, + 0.00842977687716484, + 0.005925278179347515, + -0.019754059612751007, + 0.009313165210187435, + 0.00427597388625145, + 0.030843397602438927, + -0.0058876872062683105, + -0.01625809818506241, + -0.0014096617233008146, + -0.03467767685651779, + -0.024095818400382996, + 0.016474246978759766, + 0.002492751693353057, + -0.049620091915130615, + -0.001967652700841427, + -0.024434136226773262, + -0.02022394724190235, + 0.020806606858968735, + -0.004245431162416935, + 0.0324598103761673, + -0.0008604809991084039, + 0.0008017451036721468, + 0.048717908561229706, + -0.001201149309054017, + -0.017235463485121727, + -0.015543869696557522, + -0.05841638147830963, + -0.04574822261929512, + -0.03037351183593273, + -0.0391697995364666, + -0.027554187923669815, + -0.011653203517198563, + -0.049770455807447433, + 0.030147965997457504, + 0.001366197131574154, + -0.020054787397384644, + 0.03657602146267891, + -0.018156442791223526, + 0.0114934416487813, + -0.028399985283613205, + 0.023400384932756424, + -0.0106664402410388, + -0.01947212778031826, + -0.027723347768187523, + 0.00886207353323698, + -0.00024580975878052413, + 0.03839918598532677, + -0.06315284222364426, + -0.012254659086465836, + 0.032722946256399155, + -0.01700052060186863, + 0.03495961055159569, + -0.018137646839022636, + -0.02388906665146351, + -0.016436655074357986, + 0.02129529044032097, + -0.015402903780341148, + 0.03415140509605408, + 0.03165160492062569, + 0.07307686656713486, + 0.030768215656280518, + 0.020562265068292618, + 0.006653603166341782, + -0.015760017558932304, + -0.027723347768187523, + 0.017658362165093422, + 0.03542949631810188, + -0.014284571632742882, + -0.03396344929933548, + 0.04052307456731796, + 0.02958410046994686, + -0.050635047256946564, + 0.01945333182811737, + 0.03467767685651779, + 0.06138606742024422, + 0.016511837020516396, + -0.03924498334527016, + 0.06210029870271683, + -0.010553667321801186, + 0.033681515604257584, + 0.0025256439112126827, + -0.02456570416688919, + -0.010450292378664017, + -0.02620091289281845, + -0.006009857635945082, + 0.012499000877141953, + -0.026990322396159172, + 0.06119811534881592, + -0.023043271154165268, + 0.0023752800188958645, + 0.04499640315771103, + -0.04601135849952698, + 0.012527193874120712, + -0.03544829413294792, + 0.018861273303627968, + 0.09495481103658676, + 0.006202511489391327, + -0.026708390563726425, + 0.025091977789998055, + -0.014857834205031395, + 0.027591777965426445, + 0.008284112438559532, + -0.0213328804820776, + -0.02048708312213421, + 0.012132488191127777, + 0.028606735169887543, + -0.0009444733732379973, + -0.030918579548597336, + -0.03450851887464523, + -0.07544509321451187, + 0.012141886167228222, + -0.048868272453546524, + 0.03037351183593273, + -0.04379349201917648, + 0.015807006508111954, + 0.04571063071489334, + 0.05187555029988289, + -0.02719707414507866, + -0.008594237267971039, + -0.010732224211096764, + 0.038643527776002884, + 0.005958170164376497, + -0.027309846132993698, + 0.01877669431269169, + -0.03984643891453743, + -0.025016795843839645, + 0.012508397921919823, + 0.01966008171439171, + -0.023250021040439606, + 0.014463129453361034, + -0.010356314480304718, + 0.004755259025841951, + 0.017996681854128838, + -0.0002566759067121893, + -0.005126469768583775, + 0.009538711048662663, + 0.04221466928720474, + -0.00019647160661406815, + 0.0008017451036721468, + 0.003777893492951989, + 0.017564384266734123, + -0.0028381189331412315, + 0.03315524384379387, + 0.002741792006418109, + 0.004398144781589508, + -0.011352475732564926, + 0.010826202109456062, + 0.018100056797266006, + 0.011014156974852085, + -0.025994163006544113, + -0.006113233044743538, + 0.021032152697443962, + -0.005295629147440195, + -0.028475167229771614, + 0.014716868288815022, + 0.042928896844387054, + -0.05649924278259277, + -0.042816124856472015, + -0.013814684934914112, + 0.02114492654800415, + 0.03497840464115143, + -0.003568793646991253, + 0.009233283810317516, + 0.022423019632697105, + 0.012912501581013203, + 0.01447252742946148, + -0.010046188719570637, + 0.056311286985874176, + 0.02729105018079281, + 0.021520836278796196, + -0.0045814006589353085, + -0.005671538878232241, + 0.01694413460791111, + -0.015788210555911064, + 0.007583979982882738, + 0.012386227957904339, + -0.011671999469399452, + -0.03830520808696747, + 0.05691274255514145, + -0.0002895680081564933, + 0.03155762702226639, + -0.04492121934890747, + 0.002021689899265766, + 0.014782652258872986, + -0.0424778051674366, + 0.027441414073109627, + -0.014575902372598648, + 0.006395165342837572, + 0.05014636740088463, + -0.020693834871053696, + -0.02204710990190506, + 0.01187874935567379, + 0.011559226550161839, + 0.004156152717769146, + 0.03234703838825226, + -0.0006314109778031707, + 0.03415140509605408, + 0.030185556039214134, + -0.020054787397384644, + -0.013307206332683563, + 0.0457858107984066, + 0.012517795898020267, + -0.0027464909944683313, + -0.036068543791770935, + 0.01874850131571293, + -0.01683136075735092, + -0.018842479214072227, + -0.03661361336708069, + 0.017226066440343857, + 0.02364472672343254, + 0.009012437425553799, + -0.016746781766414642, + -0.0494697280228138, + -0.004980804864317179, + -0.001053722109645605, + 0.024114612489938736, + -0.0017291849944740534, + -0.03905702754855156, + 0.02712189219892025, + -0.0012040860019624233, + -0.0053426180966198444, + 0.032534994184970856, + -0.02048708312213421, + -1.945626900123898e-05, + -0.025110773742198944, + 0.0020111172925680876, + -0.028512757271528244, + -0.018109453842043877, + 0.051198914647102356, + 0.04939454793930054, + -0.03636927157640457, + 0.029828442260622978, + 0.019030433148145676, + 0.005803107284009457, + 0.005328521132469177, + -0.013457570225000381, + 0.04221466928720474, + 0.011249100789427757, + -0.03212149068713188, + -0.0017785232048481703, + 0.001962953945621848, + 0.05431896448135376, + -0.04018475487828255, + -0.0016528284177184105, + -0.0018501810263842344, + 0.006611313670873642, + -0.04003439098596573, + 0.055446695536375046, + 0.009054726921021938, + -0.001982924062758684, + 0.036951933056116104, + -0.009449432604014874, + -0.021783972159028053, + -0.019190194085240364, + 0.006456250790506601, + 0.11728385835886002, + -0.0013015876756981015, + 0.0048774294555187225, + -0.011869351379573345, + 0.031707990914583206, + -0.0289638489484787, + 0.04860513657331467, + 0.008091458119452, + 0.008208930492401123, + -0.029358554631471634, + 0.02886987291276455, + -0.030298329889774323, + 0.047966089099645615, + 0.008011577650904655, + 0.07112213224172592, + 0.02623850293457508, + -0.019077422097325325, + 0.06476926058530807, + 0.01790270395576954, + 0.014209389686584473, + -0.019885627552866936, + 0.02700911834836006, + -0.01939694583415985, + 0.002094522351399064, + 0.007466508075594902, + -0.05616092309355736, + 0.01700052060186863, + -0.014942414127290249, + -0.04736463353037834, + 0.008885568007826805, + 0.0025162461679428816, + 0.05766456201672554, + -0.029433736577630043, + 0.007494701538234949, + -0.00883388053625822, + 0.0038883169181644917, + -0.15773174166679382, + -0.02373870275914669, + -0.04646245017647743, + 0.0136079341173172, + 0.01224526111036539, + 0.02127649448812008, + -0.03794809430837631, + 0.011859954334795475, + -0.06025834009051323, + -0.06458130478858948, + 0.005939374677836895, + -0.0639798492193222, + -0.009176897816359997, + 0.03249740228056908, + -0.03456490486860275, + -0.004588448908179998, + -0.03144485503435135, + -0.030298329889774323, + -0.011380668729543686, + -0.022535791620612144, + -0.037816524505615234, + 0.007226865738630295, + 0.05819083750247955, + -0.033512357622385025, + -0.03283572196960449, + -0.017479805275797844, + 0.0007905852980911732, + 0.0009485848713666201, + -0.0014813195448368788, + 0.013288411311805248, + -0.023456770926713943, + 0.011126929894089699, + -0.006677097640931606, + 0.0492817722260952, + 0.029490122571587563, + 0.05619851499795914, + 0.027479005977511406, + 0.009980404749512672, + 0.015487483702600002, + 0.015562665648758411, + 0.03890666365623474, + 0.035091180354356766, + 0.0028381189331412315, + 0.05262736976146698, + 0.01097656600177288, + -0.07766295969486237, + 0.002088648732751608, + -0.013410582207143307, + -0.002206120640039444, + 0.012884307652711868, + -0.04244021698832512, + -0.004045729059726, + 0.019208990037441254, + -0.02212229184806347, + 0.013645525090396404, + -0.020806606858968735, + -0.02195313200354576, + 0.04642485827207565, + -0.007198672741651535, + 0.017150884494185448, + -0.027572983875870705, + -0.04770295321941376, + 0.016399065032601357, + 0.04845477268099785, + -0.08645924925804138, + -0.019716467708349228, + -0.01146524865180254, + -0.07052067667245865, + 0.008970146998763084, + -0.029377350583672523, + 0.016333280131220818, + 0.019359353929758072, + -0.0011617961572483182, + -0.009308465756475925, + -0.05503319203853607, + 0.03413260728120804, + -0.035899385809898376, + -0.03450851887464523, + -0.03385067731142044, + -0.1529952883720398, + -0.012611773796379566, + 0.05713828653097153, + -0.020562265068292618, + -0.019866831600666046, + -0.0007676782552152872, + -0.050635047256946564, + 0.015807006508111954, + 0.02561825141310692, + 0.014566504396498203, + 0.23787571489810944, + 0.02708430029451847, + 0.031012557446956635, + -0.002807576209306717, + 0.08134687691926956, + -0.06010797619819641, + -0.005178157240152359, + -0.04353035241365433, + 0.03210269659757614, + 0.002291874960064888, + -0.020167561247944832, + -0.01607014425098896, + 0.028381189331412315, + -0.031707990914583206, + 0.04589858651161194, + 0.01773354411125183, + -0.0017244861228391528, + 0.020769016817212105, + 0.05676237866282463, + -0.019199592992663383, + 0.03042989782989025, + -0.025806207209825516, + -0.015487483702600002, + -0.007320843171328306, + -0.06623530387878418, + -0.057363834232091904, + 0.015393505804240704, + 0.03588058799505234, + -0.011549828574061394, + 0.04168839752674103, + -0.00639046635478735, + 0.02193433605134487, + 0.00893725547939539, + 0.011371270753443241, + -0.0320839025080204, + 0.006836859509348869, + -0.017461009323596954, + 0.0017585529712960124, + -0.006926137953996658, + 0.010281132534146309, + 0.03152003511786461, + -0.04078621417284012, + 0.04770295321941376, + -0.009186295792460442, + 0.0009767781011760235, + -0.06281452625989914, + -0.013795888982713223, + -0.01873910240828991, + 0.02279892936348915, + 0.02035551518201828, + -0.020618652924895287, + 0.015703631564974785, + -0.008152543567121029, + -0.024114612489938736, + 0.029922420158982277, + -0.030053988099098206, + -0.025655843317508698, + -0.019002240151166916, + -0.04443253576755524, + 0.0066207111813127995, + 0.020994562655687332, + 0.0004358204023446888, + -0.07713668793439865, + 0.002103920094668865, + -0.0077202473767101765, + -0.03875629976391792, + -0.0029532413464039564, + 0.004555556923151016, + -0.031839560717344284, + 0.03229065239429474, + -0.002045184141024947, + 0.02106974460184574, + 0.025862593203783035, + 0.023156043142080307, + 0.020054787397384644, + -0.006724086590111256, + -0.02715948224067688, + 0.08435415476560593, + 0.013720707036554813, + 0.004353505093604326, + -0.01223586406558752, + -0.036181315779685974, + -0.047890909016132355, + -0.02024274319410324, + 0.030918579548597336, + -0.02202831394970417, + 0.03571143001317978, + -0.00371680804528296, + -0.029377350583672523, + -0.020900584757328033, + -0.026990322396159172, + 0.0060662440955638885, + -0.06845317035913467, + 0.00035505855339579284, + -0.01272454671561718, + -0.0376097746193409, + 0.035166360437870026, + -0.015769416466355324, + -0.006216607987880707, + 0.003726205788552761, + -0.05345437303185463, + -0.03501599654555321, + -0.02212229184806347, + -0.04435735568404198, + 0.03294849395751953, + -0.00020954034698661417, + -0.030053988099098206, + 0.031125331297516823, + 0.017226066440343857, + 0.018231624737381935, + 0.024922819808125496, + 0.017583180218935013, + 0.004863332957029343, + -0.014923619106411934, + -0.008481464348733425, + -0.004811645485460758, + -0.023569544777274132, + 0.036933135241270065, + -0.017179077491164207, + 0.037816524505615234, + -0.048717908561229706, + 0.01105174794793129, + 0.013279013335704803, + 0.048642728477716446, + -0.008500260300934315, + -0.016577621921896935, + -0.03909461945295334, + 0.004811645485460758, + -0.024208590388298035, + 0.06506998836994171, + -0.038530752062797546, + -0.011155122891068459, + 0.0003450734366197139, + -0.008298208937048912, + 0.0803695097565651, + 0.052138689905405045, + 0.008359294384717941, + 0.019302967935800552, + 0.0511237308382988, + 0.015703631564974785, + -0.023550748825073242, + -0.024866431951522827, + -0.024095818400382996, + -0.019152604043483734, + 0.009942813776433468, + -0.03385067731142044, + 0.03541070222854614, + -0.015628449618816376, + -0.02214108593761921, + 0.08352715522050858, + 0.005572862457484007, + 0.056424058973789215, + -0.05195073410868645, + -0.03580540791153908, + -0.026050549000501633, + -0.028493961319327354, + 0.007607474457472563, + 0.011145724914968014, + -0.05104855075478554, + -0.008984244428575039, + -0.0016622261609882116, + 0.010910782031714916, + -0.010882588103413582, + 0.03214028850197792, + 0.0474398173391819, + 0.04135007783770561, + -0.015290130861103535, + 0.062438614666461945, + 0.0608597956597805, + -0.03804207220673561, + 0.056311286985874176, + -0.005239242687821388, + -0.03817363828420639, + 0.017273055389523506, + 0.0038460269570350647, + 0.031106535345315933, + 0.01679377071559429, + 0.012856114655733109, + 0.004783452022820711, + 0.029245782643556595, + 0.03977125510573387, + 0.019791649654507637, + 0.0031505939550697803, + -0.0492817722260952, + -0.04657522216439247, + 0.005027793347835541, + -0.029283372685313225, + -0.006442153826355934, + 0.01952851377427578, + 0.024960409849882126, + -0.036106135696172714, + 0.07010717689990997, + -0.035993363708257675, + -0.014284571632742882, + 0.004144405480474234, + 0.015750620514154434, + 0.02110733464360237, + 0.014923619106411934, + 0.002495101187378168, + -0.0034231285098940134, + -0.013683116063475609, + 0.01945333182811737, + 0.012442613951861858, + -0.03146364912390709, + -0.04337998852133751, + -0.02704671025276184, + -0.015026994049549103, + -0.012536591850221157, + -0.009543409571051598, + -0.008749300613999367, + 0.0024575102142989635, + -0.01795908994972706, + 0.02294929325580597, + 0.0009697297937236726, + -0.01856994442641735, + -0.009552807547152042, + 0.04428217187523842, + 0.05018395557999611, + -0.05236423388123512, + -0.004595497157424688, + 0.008133748546242714, + -0.022704951465129852, + 0.07292649894952774, + -0.0018854225054383278, + -0.020092377439141273, + 0.019490921869874, + -0.024960409849882126, + -0.018316203728318214, + -0.01952851377427578, + -0.017479805275797844, + 0.009670278988778591, + 0.042928896844387054, + -0.03394465520977974, + -0.0037731945049017668, + 0.0639798492193222, + 0.04980804771184921, + -0.0070483083836734295, + 0.016643406823277473, + 0.04680076986551285, + 0.01791210100054741, + -0.01019655354321003, + -0.012827921658754349, + 0.0341138131916523, + 0.04225226119160652, + -0.03905702754855156, + 0.04845477268099785, + -0.041162122040987015, + -0.04307926073670387, + 0.0220659039914608, + 0.06052147597074509, + -0.03932016342878342, + 0.025862593203783035, + 0.03159521892666817, + -0.01013076864182949, + -0.02881348505616188, + 0.015393505804240704, + -0.04819163680076599, + -0.0037802427541464567, + -0.04330480843782425, + -0.02204710990190506, + 0.002478655194863677, + 0.014340958558022976, + 0.009031232446432114, + 0.003991692326962948, + -0.010938975028693676, + -0.05195073410868645, + 0.03676397725939751, + 0.03678277134895325, + -0.01766776107251644, + -0.01523374393582344, + -0.014998801052570343, + -0.0009544584318064153, + -0.026652004569768906, + -0.06187475100159645, + -0.020750220865011215, + 0.006207210477441549, + 0.002350610913708806, + -0.009773654863238335, + -0.015703631564974785, + 0.002530342899262905, + -0.0008358119521290064, + -0.025242341682314873, + 0.010234144516289234, + -0.008246521465480328, + -0.008594237267971039, + -0.023964248597621918, + 0.036745183169841766, + 0.006085039582103491, + 0.0020675037521868944, + -0.024904023855924606, + 0.015581460669636726, + -0.02214108593761921, + -0.01856994442641735, + 0.05364232882857323, + -0.027610573917627335, + 0.010779213160276413, + -0.02202831394970417, + 0.005709129851311445, + -0.004985503386706114, + 0.028512757271528244, + 0.013589139096438885, + 0.01696292869746685, + -0.020524675026535988, + -0.030805807560682297, + -0.0212389025837183, + -0.02306206524372101, + -0.017216667532920837, + -0.009905222803354263, + 0.05243941769003868, + -0.0017127390019595623, + 0.010487883351743221, + -0.09089498966932297, + -0.03142605721950531, + 0.0441318079829216, + -0.005662141367793083, + 0.013730105012655258, + 0.04721426963806152, + 0.002934445859864354, + 0.0024904024321585894, + 0.024828841909766197, + 0.005239242687821388, + -0.03065544366836548, + 0.0009133433341048658, + -0.020637447014451027, + 0.007668559905141592, + 0.014632288366556168, + -0.033681515604257584, + 0.017404623329639435, + -0.04567303881049156, + 0.00185840402264148, + -0.016182916238904, + -0.0005738497711718082, + -0.027629369869828224, + -0.042064305394887924, + 0.05251459777355194, + 0.01189754530787468, + 0.0032680658623576164, + -0.015177357941865921, + 0.0023259418085217476, + -0.04435735568404198, + -0.032647766172885895, + 0.028625531122088432, + 0.026802368462085724, + 0.0021250650752335787, + -0.003841328201815486, + -0.004294769372791052, + -0.025204751640558243, + -0.005699732340872288, + 0.012226466089487076, + 0.034395746886730194, + 0.0006560800829902291, + 0.02535511553287506, + 0.004811645485460758, + -0.020693834871053696, + 0.0056386468932032585, + 0.04161321371793747, + -0.015900984406471252, + 0.012113693170249462, + 0.019227785989642143, + 0.014115412719547749, + 0.0025256439112126827, + 0.018156442791223526, + -0.029264576733112335, + 0.03537311032414436, + -0.0036862653214484453, + 0.02808046154677868, + 0.005751419812440872, + -0.01685015670955181, + -0.013156842440366745, + -0.0016117132036015391, + -0.018964648246765137, + 0.0010666439775377512, + -0.003253969131037593, + 0.014209389686584473, + 0.001933585968799889, + 0.05146205052733421, + -0.03824882209300995, + -0.012818523682653904, + -0.002095696981996298, + -0.0025984763633459806, + -0.029039030894637108, + -0.015835199505090714, + -0.01689714565873146, + -0.03552347421646118, + -0.009007737971842289, + 0.04093657806515694, + -0.035203952342271805, + -0.022404223680496216, + 0.06807726621627808, + 0.024998001754283905, + -0.026896346360445023, + -0.021013356745243073, + 0.008594237267971039, + 0.003766146255657077, + -0.13292169570922852, + 0.020844198763370514, + 0.0024551607202738523, + -0.00017459248192608356, + -0.04213948920369148, + 0.006315284408628941, + -0.026764776557683945, + 0.00703421188518405, + 0.03242221847176552, + 0.002748840255662799, + 0.011718987487256527, + -0.020769016817212105, + 0.033343199640512466, + 0.004160851705819368, + -0.0061085340566933155, + -0.002350610913708806, + 0.006667700130492449, + 0.007170479279011488, + 0.02714068628847599, + 0.04601135849952698, + 0.013344797305762768, + -0.023569544777274132, + 0.01707570254802704, + -0.039508119225502014, + 0.030843397602438927, + -0.008927857503294945, + -0.0032422218937426805, + -0.008387487381696701, + -0.004529713187366724, + 0.000925677886698395, + -0.0630776658654213, + -0.0387938916683197, + 0.01858873851597309, + 0.06319043785333633, + 0.007753139361739159, + -0.021502040326595306, + -0.014707470312714577, + -0.013072263449430466, + 0.0490938201546669, + -0.024810045957565308, + 0.03358754143118858, + 0.008232424035668373, + 0.038718707859516144, + 0.019180797040462494, + -0.0008146670297719538, + 0.040147166699171066, + 0.017197873443365097, + 0.002032262273132801, + 0.018447773531079292, + -0.019105615094304085, + 0.01862633042037487, + 0.025900185108184814, + -0.03542949631810188, + 0.014622891321778297, + 0.014923619106411934, + 0.02379509061574936, + -0.01689714565873146, + -0.0003682741371449083, + -0.023212429136037827, + 0.057175878435373306, + -0.03289210796356201, + -0.03326801583170891, + -0.025862593203783035, + -0.0998416393995285, + -0.006554927211254835, + -0.03065544366836548, + -0.026482844725251198, + -0.008025674149394035, + 0.012837319634854794, + -0.022366631776094437, + -0.02112613059580326, + -0.029226986691355705, + -0.050522275269031525, + -0.038605935871601105, + -0.02375749871134758, + -0.039470527321100235, + -0.00047370506217703223, + 0.00025271123740822077, + -0.006381068844348192, + -0.010844997130334377, + -0.0017174378735944629, + 0.042966488748788834, + 3.40117585437838e-05, + 0.005159361753612757, + 0.0011083465069532394, + -0.006663001142442226, + -0.04337998852133751, + -0.020825402811169624, + 0.0229868832975626, + 0.03161401301622391, + -0.02706550434231758, + -0.013654923066496849, + 0.00896544847637415, + 0.03644445538520813, + -0.028324803337454796, + 0.016530632972717285, + -0.015853995457291603, + 0.003930606879293919, + -0.01937814988195896, + -0.042064305394887924, + -0.029358554631471634, + -0.0074571105651557446, + 0.03148244321346283, + 0.007753139361739159, + -0.024114612489938736, + 0.011634408496320248, + 0.0037543990183621645, + -0.03159521892666817, + 0.0014977655373513699, + -0.00403868081048131, + -0.016380269080400467, + -0.012912501581013203, + 0.006348176393657923, + -0.027309846132993698, + -0.046236906200647354, + 0.019340557977557182, + -0.04386867210268974, + -0.04495881125330925, + -0.011136327870190144, + -0.03319283574819565, + 0.0050089978612959385, + 0.0011365397367626429, + -0.0016504789236932993, + -0.02193433605134487, + -0.007955190725624561, + -0.010751020163297653, + 0.019284171983599663, + 0.023080861195921898, + -0.04492121934890747, + 0.038605935871601105, + 0.01270575076341629, + 0.005023094359785318, + -0.025768615305423737, + 0.03875629976391792, + 0.052251461893320084, + 0.005469487514346838, + -0.055559467524290085, + 0.07021994888782501, + -0.05586019530892372, + -0.05837878957390785, + -0.02031792514026165, + 0.05029673129320145, + -0.032779332250356674, + -0.03475286066532135, + -0.02385147660970688, + -0.051349278539419174, + -0.007640366442501545, + -0.047890909016132355, + -0.015863392502069473, + 0.010704031214118004, + -0.016333280131220818, + -0.020956970751285553, + 0.006644205655902624, + 0.019340557977557182, + -0.015515676699578762, + 0.0004681251593865454, + 0.056348878890275955, + -0.005911181680858135, + -0.05604815110564232, + 0.015910381451249123, + 0.020787810906767845, + -0.0593937486410141, + -0.022479405626654625, + 0.002041660016402602, + 0.02199072204530239, + 0.0008434475748799741, + 0.027535391971468925, + -0.04556026682257652, + -0.02635127678513527, + 0.008725806139409542, + -0.023118453100323677, + 0.024998001754283905, + -0.005817204248160124, + 0.04334240034222603, + 0.03059905767440796, + -0.05022154748439789, + 0.0246408861130476, + -0.038605935871601105, + 0.056348878890275955, + -0.006164920516312122, + 0.038981843739748, + 0.05082300305366516, + 0.02122010849416256, + 0.009327261708676815, + 0.0039376551285386086, + 0.002403473248705268, + -0.0023200681898742914, + -0.005422498565167189, + -0.0341138131916523, + -0.0018572292756289244, + 0.02197192795574665, + -0.01703811064362526, + -0.004583749920129776, + 0.02725346013903618, + 0.052213869988918304, + -0.0019970207940787077, + 0.013852275907993317, + 0.01786511205136776, + 0.002833419945091009, + 0.058153245598077774, + 0.035147566348314285, + -0.021389266476035118, + -0.01878609135746956, + 0.029264576733112335, + 0.005939374677836895, + -0.024885227903723717, + 0.0015929177170619369, + 0.00803037267178297, + -0.045334719121456146, + 0.016840757802128792, + -0.049620091915130615, + -0.009571603499352932, + 0.022742541506886482, + 0.029133008792996407, + 0.02806166559457779, + 0.020637447014451027, + 0.017235463485121727, + 0.027385028079152107, + -0.005352015607059002, + 0.029960010200738907, + 0.007696752902120352, + -0.010027393698692322, + -0.00895135197788477, + -0.041199713945388794, + 0.046199314296245575, + -0.028249621391296387, + -0.007151683792471886, + -0.04589858651161194, + -0.019960809499025345, + -0.03242221847176552, + -0.03492201864719391, + -0.002922698622569442, + -0.034376949071884155, + 0.02806166559457779, + -0.0010631198529154062, + -0.030223147943615913, + 0.038605935871601105, + -0.02631368488073349, + 0.01599496230483055, + 0.00403868081048131, + -0.001973526319488883, + -0.012151284143328667, + -0.025599457323551178, + 0.05236423388123512 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "2-4号活塞环", + "组成编码": "030204", + "维修项目名称": "更换2-4号活塞环", + "维修项目编号": "MT008", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.10 MT008 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0080302042-4号活塞环更换2-4号活塞环1A/8000hJY级
安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。
安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个同MT007
2环口定位夹具Custom-Ring-Aligner1套控制各环开口相位
3放大镜(带LED)5X with light1个检查环体缺陷
2)备品备件
名称规格/型号消耗数量备注
1第二道压缩环MAN 5L35MC-RING-21件锥面环
2第三道刮油环(组合式)MAN 5L35MC-RING-31套含轨环+弹簧胀圈
3第四道刮油环(组合式)MAN 5L35MC-RING-41套同上
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus10g涂所有环外圆
2缸套润滑机油Shell Mysella S5N8050mL涂缸壁
3标记笔(耐油)Marka1Oil-Resistant1支标记环开口位置
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+ 技师工程师监督相位布置
修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。
拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。
差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120°
(1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证
1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_c8dc7bf9-e9b4-4423-91ad-4afb1911fadd.pdf#page=35\"}]", + "embedding": [ + -0.0008197709685191512, + 0.04888561740517616, + -0.02787337824702263, + 0.05160770192742348, + -0.008357352577149868, + -0.030409017577767372, + 0.022727524861693382, + 0.00218022963963449, + -0.019222376868128777, + 0.013759567402303219, + 0.0032068369910120964, + 0.0639130026102066, + 0.002366673666983843, + -0.020173242315649986, + -0.004870849661529064, + -0.029402220621705055, + -0.024722475558519363, + -0.005686542019248009, + 0.026176737621426582, + -0.05138396844267845, + -0.012929892167448997, + -0.0007300447905436158, + -0.041577015072107315, + 0.03933968394994736, + -0.024125853553414345, + 0.035387072712183, + 0.0026451742742210627, + 0.003940960392355919, + -0.011690039187669754, + 0.022988546639680862, + 0.0058403583243489265, + -0.01222140435129404, + -0.013908722437918186, + -0.05544844642281532, + -0.012659547850489616, + -0.03684133663773537, + -0.028619155287742615, + -0.02996155247092247, + -0.07468947023153305, + 0.034137897193431854, + 0.0076488652266561985, + 0.005635269917547703, + 0.041651591658592224, + -0.00043435627594590187, + 0.03721422329545021, + -0.06059430167078972, + 0.022224126383662224, + -0.033448055386543274, + -0.032664988189935684, + -0.025859784334897995, + 0.007378521375358105, + 0.020825795829296112, + 0.01752573624253273, + -0.06939446181058884, + -0.022242769598960876, + 0.039078664034605026, + -0.0371582917869091, + 0.048139844089746475, + -0.0068285115994513035, + 0.0006612935685552657, + 0.002289765514433384, + 0.06637406349182129, + -0.009909498505294323, + 0.04470927268266678, + 0.03212430328130722, + 0.03411925211548805, + 0.024629253894090652, + 0.015922317281365395, + 0.011857838369905949, + 0.008567102253437042, + -0.035275205969810486, + 0.013237524777650833, + 0.04168887808918953, + -0.007681493181735277, + -0.0491839274764061, + 0.016108762472867966, + 0.045716069638729095, + -0.03098699450492859, + 0.032944656908512115, + 0.013657023198902607, + 0.05343485251069069, + 0.01010526530444622, + -0.04273296520113945, + 0.05776035413146019, + -0.013330746442079544, + 0.038556620478630066, + 0.019912220537662506, + -0.007215382996946573, + 0.006903089117258787, + -0.02487163059413433, + -0.0110095189884305, + 0.009909498505294323, + -0.030763261020183563, + 0.0604451484978199, + -0.004647116642445326, + 0.0070149558596313, + 0.023436011746525764, + -0.02030375227332115, + -0.0007079045753926039, + -0.00172111124265939, + -0.005532725714147091, + 0.0906863659620285, + -0.01009594276547432, + 0.011065451428294182, + 0.003610022133216262, + -0.02996155247092247, + 0.0029854346066713333, + -0.011167995631694794, + -0.034137897193431854, + -0.008348030038177967, + 0.042695678770542145, + 0.011401050724089146, + -9.664499521022663e-05, + -0.023417366668581963, + -0.032422613352537155, + -0.09165587276220322, + -0.003463197499513626, + -0.04180074483156204, + 0.013181591406464577, + -0.05104836821556091, + 0.02634453773498535, + 0.03590911626815796, + 0.04500758275389671, + -0.009900176897644997, + 0.0010091281728819013, + -0.019222376868128777, + 0.054516226053237915, + 0.00880947895348072, + -0.007028939202427864, + 0.01708759367465973, + -0.05630609020590782, + -0.004379103425890207, + 0.007998447865247726, + 0.010543408803641796, + -0.00204971875064075, + 0.011652749963104725, + -0.009601865895092487, + -0.0036146831698715687, + 0.029308997094631195, + 0.014430765993893147, + -0.007909886538982391, + -0.008739562705159187, + 0.026008939370512962, + -0.000641483929939568, + -0.005663236603140831, + -0.009984076954424381, + -0.020583419129252434, + -0.01488755363970995, + 0.026530982926487923, + -0.0088421069085598, + 0.028637798503041267, + -0.007499710191041231, + 0.027332691475749016, + 0.024069922044873238, + 0.005472131539136171, + -0.03706507012248039, + -0.010524763725697994, + 0.007485726848244667, + -0.0003361818380653858, + -0.020695284008979797, + -0.006409012712538242, + -0.006520878989249468, + -0.036300648003816605, + -0.05951292812824249, + -0.012790058739483356, + 0.010077298618853092, + 0.06204856559634209, + 0.00504797138273716, + 0.0029877652414143085, + 0.012911247089505196, + 0.016798604279756546, + 0.018168969079852104, + -0.03288872167468071, + 0.053658585995435715, + 0.025169940665364265, + 0.00604544673115015, + -0.005579337012022734, + -0.0019273649668321013, + 0.013340068981051445, + -0.03072597272694111, + 0.005537386983633041, + 0.01540959719568491, + -0.01615537330508232, + -0.030017485842108727, + 0.0474686436355114, + 0.007784037385135889, + 0.06518082320690155, + -0.040197327733039856, + 0.009769666008651257, + 0.04161430150270462, + -0.027220824733376503, + 0.02280210144817829, + 0.017246071249246597, + -1.3082032637612429e-05, + 0.0284886434674263, + -0.01776811294257641, + -0.010347642004489899, + -0.013955334201455116, + 0.029066620394587517, + 0.010785785503685474, + 0.026381826028227806, + -0.004581861663609743, + 0.015083320438861847, + -0.0007772384560666978, + -0.014561276882886887, + -0.014589243568480015, + 0.0345480740070343, + 0.05768577381968498, + -0.005728492047637701, + -0.010291709564626217, + -0.02729540318250656, + -0.03495825082063675, + -0.013573124073445797, + -0.023547878488898277, + 0.030017485842108727, + 0.03003612905740738, + 0.01805710233747959, + -0.015344341285526752, + -0.03747524693608284, + 0.005859002936631441, + 0.0088514294475317, + 0.026717426255345345, + 0.00811031460762024, + -0.022130902856588364, + 0.03402603045105934, + 0.0021627505775541067, + -0.01718081533908844, + 0.037978645414114, + -0.016556227579712868, + -0.01550281886011362, + -0.035181984305381775, + -0.00923830084502697, + -0.015819773077964783, + -0.01096290722489357, + 0.04855002090334892, + 0.03960070759057999, + -0.04098039120435715, + 0.03866848722100258, + 0.023771610110998154, + -0.0075323376804590225, + -0.009182367473840714, + 0.02211225964128971, + 0.04996699467301369, + -0.008870073594152927, + -0.03706507012248039, + -0.0032114980276674032, + -0.0029691208619624376, + 0.06078074499964714, + -0.04799068719148636, + 0.00442571472376585, + 0.008562440983951092, + 0.013834144920110703, + -0.05048903822898865, + 0.07838106155395508, + -0.0012515053385868669, + 0.0028409406077116728, + 0.052614498883485794, + 0.009918821044266224, + 0.009611188434064388, + -0.023286856710910797, + -0.002526316326111555, + 0.08419810980558395, + -0.011550205759704113, + 0.01734861545264721, + -0.04153972491621971, + 0.020098663866519928, + -0.015726551413536072, + 0.04392620921134949, + 0.008706934750080109, + -0.017329970374703407, + -0.0045888531021773815, + 0.006698000710457563, + -0.026736071333289146, + 0.03807186707854271, + -0.03956341743469238, + 0.06171296536922455, + 0.012277337722480297, + -0.022913968190550804, + 0.0569772869348526, + 0.018672367557883263, + 0.015185864642262459, + -0.020098663866519928, + 0.02323092333972454, + -0.04687202349305153, + 0.002468052553012967, + -0.020080018788576126, + -0.0682012140750885, + -0.0002295591839356348, + -0.030632751062512398, + -0.03840746358036995, + 0.02779880166053772, + 0.028171690180897713, + 0.05086192488670349, + -0.022858034819364548, + 0.011102740652859211, + -0.015083320438861847, + -7.231988274725154e-05, + -0.14975182712078094, + -0.021030884236097336, + -0.07133347541093826, + -0.004584191832691431, + 0.012976502999663353, + 0.009476016275584698, + -0.03592776134610176, + 0.022932613268494606, + -0.06753002107143402, + -0.060221415013074875, + 0.011456984095275402, + -0.06122821196913719, + -0.04012275114655495, + 0.032068368047475815, + -0.034678585827350616, + 0.0046797445975244045, + -0.039153240621089935, + -0.052353475242853165, + -0.014785009436309338, + -0.02599029429256916, + -0.03253448009490967, + -0.008362013846635818, + 0.03866848722100258, + -0.02226141467690468, + -0.04799068719148636, + 0.007835309021174908, + 0.02123597264289856, + -0.005322976503521204, + 0.006516218185424805, + -0.01924102194607258, + -0.00910778995603323, + 0.008087009191513062, + -0.010804430581629276, + 0.06551642715930939, + 0.029663240537047386, + 0.0569772869348526, + 0.028115756809711456, + -0.005061954725533724, + 0.038556620478630066, + -0.017749469727277756, + 0.0163884274661541, + 0.026102161034941673, + 0.022000392898917198, + 0.02269023470580578, + -0.005229754373431206, + -0.07234027236700058, + 0.005863664206117392, + 0.0027733545284718275, + -0.007709459867328405, + -0.013545157387852669, + -0.037978645414114, + -0.012547682039439678, + 0.012827347964048386, + -0.00919635035097599, + -0.008105653338134289, + -0.03132259473204613, + -0.033205676823854446, + 0.01761895790696144, + 0.0044327061623334885, + -4.300593354855664e-05, + -0.035181984305381775, + -0.06577744334936142, + 0.028470000252127647, + 0.04247194528579712, + -0.05686542019248009, + -0.03305652365088463, + -0.0042998651042580605, + -0.05250263214111328, + -0.010412897914648056, + -0.043814342468976974, + 0.020154597237706184, + 0.020863084122538567, + -0.00655816774815321, + 0.002440085867419839, + -0.016118085011839867, + -0.001647698925808072, + -0.017283359542489052, + -0.03937697410583496, + -0.023958055302500725, + -0.12812432646751404, + -0.049594104290008545, + 0.04963139444589615, + -0.00781666487455368, + -0.010002721101045609, + -0.004267237149178982, + -0.059885814785957336, + 0.01925966516137123, + 0.020602062344551086, + -0.008035737089812756, + 0.19539332389831543, + -0.008413285948336124, + 0.05026530474424362, + -0.013237524777650833, + 0.0750996470451355, + -0.042695678770542145, + 0.028768310323357582, + -0.033205676823854446, + -0.006996311247348785, + -0.004239270463585854, + -0.04601437970995903, + -0.018765589222311974, + 0.03020392917096615, + -0.011643428355455399, + 0.0431804321706295, + 0.06163838878273964, + -0.0005756458849646151, + -0.030968349426984787, + 0.05119752511382103, + -0.010310353711247444, + 0.02832084521651268, + -0.01488755363970995, + -0.00026204122696071863, + -0.008031075820326805, + -0.04992970451712608, + -0.05932648107409477, + 0.03167683631181717, + 0.014523987658321857, + 0.0159689299762249, + 0.044671982526779175, + 0.014980776235461235, + 0.025524184107780457, + -0.008613713085651398, + 0.025002140551805496, + -0.024759763851761818, + -0.012342593632638454, + 0.005677219945937395, + 0.01718081533908844, + -0.023976698517799377, + 0.0025869105011224747, + 0.010515442118048668, + -0.047170333564281464, + 0.0163884274661541, + -0.013107013888657093, + 0.007042922545224428, + -0.07711324095726013, + 0.000293649296509102, + -0.031919214874506, + 0.03065139427781105, + 0.0059568858705461025, + -0.012687514536082745, + 0.03141581639647484, + -0.004318509250879288, + -0.023081768304109573, + 0.024983497336506844, + -0.013349390588700771, + -0.04176345840096474, + -0.005639931187033653, + -0.05295009911060333, + -0.0035098083317279816, + 0.011186640709638596, + -0.0020508840680122375, + -0.09695088118314743, + 0.008702274411916733, + -0.006311129778623581, + -0.009401438757777214, + -0.021813949570059776, + -0.027220824733376503, + -0.009611188434064388, + 0.03790406510233879, + 0.009378133341670036, + 0.03212430328130722, + 0.00366828590631485, + 0.035704027861356735, + 0.023249568417668343, + -0.007476404774934053, + -0.029551375657320023, + 0.05951292812824249, + -0.011056129820644855, + 0.015036708675324917, + -0.01299514714628458, + -0.049594104290008545, + -0.0483262874186039, + 0.0043161786161363125, + 0.02433094196021557, + -0.003274422837421298, + 0.025785205885767937, + 0.0007597593357786536, + -0.030427662655711174, + -0.02295125648379326, + -0.031397171318531036, + -0.002789668506011367, + -0.05925190448760986, + 0.009853566065430641, + -0.02349194511771202, + -0.01666809432208538, + 0.02037833072245121, + 0.007294621784240007, + -0.02761235646903515, + 0.009135756641626358, + -0.037419311702251434, + -0.03615149110555649, + -0.03736338019371033, + -0.03152768313884735, + 0.012827347964048386, + 0.009900176897644997, + -0.027258113026618958, + 0.01761895790696144, + 0.020564774051308632, + 0.014421443454921246, + 0.022335991263389587, + 0.008613713085651398, + 0.015008742921054363, + -0.016015540808439255, + -0.011783260852098465, + 0.026661492884159088, + -0.04239736869931221, + 0.044075362384319305, + -0.011671395041048527, + 0.04064479470252991, + -0.05048903822898865, + -0.023846188560128212, + 0.016957081854343414, + 0.026008939370512962, + 0.0006251700688153505, + -0.008571763522922993, + -0.014197710901498795, + 0.02470383048057556, + -0.028973398730158806, + 0.059102751314640045, + -0.042695678770542145, + -0.016211306676268578, + -0.018457956612110138, + -0.005089921411126852, + 0.05626880005002022, + 0.06290620565414429, + 0.04202447831630707, + 0.0013482231879606843, + 0.03818373382091522, + -0.011084096506237984, + 0.008604390546679497, + -0.018877455964684486, + -0.004171684850007296, + 0.03020392917096615, + 0.011531561613082886, + -0.023174989968538284, + 0.011550205759704113, + -0.015073997899889946, + -0.02269023470580578, + 0.06361469626426697, + -0.01890542171895504, + 0.05138396844267845, + -0.054516226053237915, + -0.035088762640953064, + -0.010142553597688675, + -0.04098039120435715, + -0.011531561613082886, + 0.017563024535775185, + -0.04526860639452934, + 0.007770054042339325, + -0.01864439994096756, + 0.02554282918572426, + 0.012398526072502136, + -0.010925618931651115, + 0.0127341253682971, + 0.041912611573934555, + -0.01186716090887785, + 0.05567217990756035, + 0.026829292997717857, + -0.03930239751935005, + 0.04456011578440666, + -0.045119449496269226, + -0.029327642172574997, + 0.0177121814340353, + 0.02149699442088604, + 0.006227229721844196, + 0.010543408803641796, + 0.02090037241578102, + -0.010114586912095547, + 0.010953585617244244, + 0.017590992152690887, + 0.005313653964549303, + 0.023119056597352028, + -0.033019233494997025, + -0.05716373398900032, + 0.022839391604065895, + -0.012724803760647774, + -0.011550205759704113, + 0.0035307833459228277, + 0.007863275706768036, + -0.019707132130861282, + 0.051682278513908386, + -0.025617405772209167, + -0.02779880166053772, + 0.00043231702875345945, + 0.0011105070589110255, + -0.04016003757715225, + 0.03814644366502762, + 0.023436011746525764, + -0.01173665001988411, + -0.006642067804932594, + 0.022317348048090935, + 0.0022734515368938446, + -0.03445485234260559, + -0.05157041177153587, + -0.01976306550204754, + -0.012706158682703972, + 0.0061246855184435844, + -0.02925306372344494, + -0.0039060020353645086, + 0.021963104605674744, + -0.03548029437661171, + 0.041912611573934555, + 0.004052826669067144, + -0.04008546099066734, + -0.010394253768026829, + 0.03264634683728218, + 0.07353351265192032, + -0.03978715091943741, + -0.02746320143342018, + 0.03072597272694111, + -0.02970053069293499, + 0.06984192132949829, + 0.007275977171957493, + -0.03693455830216408, + -0.016295205801725388, + -0.023790255188941956, + -0.009247622452676296, + -0.03792271018028259, + -0.02936493046581745, + 0.006609439849853516, + -0.008147602900862694, + -0.0018236554460600019, + 0.003358322661370039, + 0.07025209814310074, + 0.035778604447841644, + -0.011895127594470978, + 0.016435038298368454, + 0.061414655297994614, + 0.0014903867850080132, + 0.005392892751842737, + 0.019632553681731224, + 0.007378521375358105, + 0.048139844089746475, + -0.04359060898423195, + 0.08270656317472458, + -0.01916644349694252, + -0.04392620921134949, + 0.06581473350524902, + 0.045716069638729095, + 0.012072249315679073, + 0.04470927268266678, + 0.04221092164516449, + -0.026046227663755417, + -0.004402409307658672, + -0.0011209945660084486, + -0.017367258667945862, + -0.025785205885767937, + -0.04586522653698921, + -0.015866385772824287, + 0.013535834848880768, + 0.02919713221490383, + 0.01441212184727192, + 0.025412317365407944, + -0.026736071333289146, + -0.05656711012125015, + 0.025002140551805496, + 0.03605826944112778, + -0.019147800281643867, + 0.0039502824656665325, + -0.027090314775705338, + -0.006059430073946714, + -0.024125853553414345, + -0.054851826280355453, + 0.028097111731767654, + 0.009695088490843773, + -0.007616237737238407, + 0.005900952965021133, + 0.02798524498939514, + -0.0074251326732337475, + -0.028637798503041267, + -0.023622455075383186, + 0.03201243653893471, + -0.03488367423415184, + 0.003936299122869968, + -0.015167219564318657, + 0.010161198675632477, + -0.015073997899889946, + 0.019035933539271355, + -0.03471587225794792, + 0.03417518734931946, + -0.014682465232908726, + 0.0013773550745099783, + 0.07289960980415344, + -0.03738202154636383, + 0.009261606261134148, + -0.007462421432137489, + -0.010123909451067448, + -0.028693731874227524, + 0.015596041455864906, + 0.005038649309426546, + 0.028525933623313904, + -0.042770255357027054, + -0.003675277577713132, + -0.03400738537311554, + -0.03749388828873634, + -0.04049563780426979, + -0.054851826280355453, + 0.007341232616454363, + 0.003409594763070345, + 0.03236667811870575, + -0.04560420289635658, + -0.051495835185050964, + 0.017236748710274696, + -0.019800353795289993, + 0.020359685644507408, + 0.036822691559791565, + -0.0037615078035742044, + -0.004241601098328829, + 0.01976306550204754, + 0.0016488641267642379, + -0.02295125648379326, + -0.014346865937113762, + 0.023100411519408226, + 0.01855117827653885, + -5.447660805657506e-05, + -0.011214607395231724, + -0.005747136659920216, + -0.03081919439136982, + 0.006157313473522663, + -0.01866304501891136, + -0.029476797208189964, + -0.060295991599559784, + -0.020322397351264954, + 0.044671982526779175, + 0.04004817083477974, + -0.011177318170666695, + 0.008003109134733677, + 0.026698781177401543, + -0.022149547934532166, + -0.024200432002544403, + 0.03288872167468071, + 0.04799068719148636, + 0.006926394999027252, + -0.005267043132334948, + 0.0071268221363425255, + -0.01580112986266613, + -0.017199460417032242, + 0.011018840596079826, + 0.025598762556910515, + 0.0075416602194309235, + 0.013423968106508255, + -0.008786173537373543, + -0.03844475373625755, + 0.0181410014629364, + 0.056417956948280334, + -0.027239469811320305, + 0.016891827806830406, + 0.052278898656368256, + 0.014589243568480015, + 0.0066047790460288525, + 0.03762440010905266, + -0.005686542019248009, + 0.03678540140390396, + -0.011783260852098465, + 0.036393869668245316, + 0.03221752494573593, + -0.029663240537047386, + 0.01502738706767559, + -0.011699361726641655, + 0.0007906391401775181, + -0.0021056518889963627, + 0.001349388505332172, + 0.016882505267858505, + -0.01726471446454525, + 0.04896019771695137, + -0.020359685644507408, + -0.013629056513309479, + -0.010291709564626217, + 0.012594292871654034, + -0.022168193012475967, + 0.008100992068648338, + -0.029812397435307503, + -0.022298702970147133, + -6.412654329324141e-05, + 0.03851933032274246, + -0.03287007659673691, + -0.006842494942247868, + 0.05198058858513832, + 0.04508215934038162, + -0.029681885614991188, + -0.003279083874076605, + 0.00688910624012351, + 0.02615809440612793, + -0.10493068397045135, + 0.02425636537373066, + -0.010431542061269283, + 0.0070102945901453495, + -0.03825831040740013, + 0.02996155247092247, + -0.017833368852734566, + 0.00038483209209516644, + 0.020583419129252434, + -0.00042969518108293414, + 0.015782484784722328, + -0.026530982926487923, + 0.007429793477058411, + -0.021441061049699783, + -0.030875127762556076, + -0.015586718916893005, + -0.004383764695376158, + -0.010953585617244244, + 0.008930668234825134, + 0.04713304340839386, + 0.010776463896036148, + -0.05690271034836769, + 0.03963799402117729, + -0.03480909764766693, + -0.016546905040740967, + -0.007830648683011532, + -0.02694115974009037, + -0.01022645365446806, + -0.003649641526862979, + 0.0023212279193103313, + -0.021608861163258553, + -0.03305652365088463, + 0.03005477413535118, + 0.07058770209550858, + 0.019446110352873802, + 0.005220432300120592, + 0.00032394647132605314, + -0.03436163067817688, + 0.05828239768743515, + -0.011895127594470978, + 0.02237328141927719, + 0.01023577619343996, + 0.043553318828344345, + -0.01152224000543356, + -0.02580385096371174, + 0.012034961022436619, + 0.03134123608469963, + -0.0009689261787571013, + 0.02442416548728943, + -0.01966984197497368, + -0.0009194019949063659, + 0.038892220705747604, + -0.016099439933896065, + 0.01528840884566307, + 0.02390212193131447, + 0.005453487392514944, + 0.0011833368334919214, + -0.006851817015558481, + 0.004530589561909437, + 0.057984087616205215, + -0.03514469414949417, + -0.01856982335448265, + -0.011979027651250362, + -0.09091009944677353, + 0.01238920446485281, + -0.031024282798171043, + -0.030334439128637314, + -0.0030087402556091547, + 0.017730824649333954, + -0.007299283053725958, + -0.03273956850171089, + -0.02919713221490383, + -0.042770255357027054, + -0.045641493052244186, + -0.04646184667944908, + -0.026661492884159088, + -0.007322588469833136, + 0.021720726042985916, + -0.007919209077954292, + -0.018588466569781303, + -0.02608351595699787, + 0.02703438140451908, + 0.013946011662483215, + 0.03272092342376709, + 0.022149547934532166, + -0.002221014117822051, + -0.054516226053237915, + 0.0039759185165166855, + 0.0015369977336376905, + 0.024815697222948074, + -0.023174989968538284, + -0.013293457217514515, + -0.021627504378557205, + 0.030446305871009827, + -0.05283823236823082, + -0.011848516762256622, + -0.008534474298357964, + 0.03956341743469238, + -0.004393086768686771, + -0.038892220705747604, + 0.006861139554530382, + 0.018439311534166336, + 0.04713304340839386, + -0.012361237779259682, + -0.022224126383662224, + 0.01277141459286213, + 0.018113035708665848, + -0.017367258667945862, + 0.0090705007314682, + 0.0012515053385868669, + -0.0163884274661541, + 0.003449214156717062, + -0.005700525362044573, + -0.00537424860522151, + -0.06588931381702423, + 0.015857063233852386, + -0.019725775346159935, + -0.031732771545648575, + -0.02433094196021557, + -0.030875127762556076, + -0.0009619345655664802, + 0.013349390588700771, + -0.02841406688094139, + -0.03048359416425228, + -0.0007387843797914684, + 0.0005130123463459313, + 0.01779608055949211, + 0.0371396467089653, + -0.057014577090740204, + 0.02356652170419693, + 0.009392117150127888, + -0.01881220005452633, + -0.0211613941937685, + 0.024107210338115692, + 0.05645524337887764, + 0.010077298618853092, + -0.06025870144367218, + 0.059624794870615005, + -0.048475440591573715, + -0.03029715083539486, + -0.01831812411546707, + 0.07748612761497498, + -0.050563614815473557, + -0.024386875331401825, + -0.03762440010905266, + -0.07349622994661331, + 0.0025146636180579662, + -0.0500788614153862, + 0.0052017876878380775, + 0.01994950883090496, + -0.020956305786967278, + -0.03169548138976097, + 0.001389007898978889, + 0.022727524861693382, + -0.01693843863904476, + 0.021552927792072296, + 0.0595875047147274, + 0.015922317281365395, + -0.05705186724662781, + -0.010757818818092346, + 0.029886974021792412, + -0.0750996470451355, + -0.03460400924086571, + 0.028880177065730095, + 0.008310741744935513, + 0.019632553681731224, + 0.02442416548728943, + -0.03559216111898422, + -0.005411537364125252, + -0.0021557589061558247, + -0.036822691559791565, + 0.027500491589307785, + -0.0007009129622019827, + 0.04016003757715225, + 0.048400864005088806, + -0.024647897109389305, + 0.023603811860084534, + -0.020788507536053658, + 0.029159842059016228, + -0.0414651483297348, + 0.037344735115766525, + 0.050116147845983505, + -0.021795304492115974, + 0.02608351595699787, + -0.023976698517799377, + 0.015950284898281097, + -0.00936881173402071, + -0.007499710191041231, + -0.033802296966314316, + -0.008944651111960411, + 0.02893611043691635, + -0.003048359416425228, + 0.022335991263389587, + -0.007793359458446503, + 0.0656282901763916, + 0.02787337824702263, + 0.021515637636184692, + 0.01735793612897396, + 0.023715676739811897, + 0.07200467586517334, + 0.01248242612928152, + -0.03840746358036995, + -0.012034961022436619, + 0.005607303697615862, + 0.014393477700650692, + 0.003661294234916568, + 0.0133773572742939, + -0.027314046397805214, + -0.04373976215720177, + 0.01761895790696144, + -0.04373976215720177, + -0.013330746442079544, + 0.029663240537047386, + 0.02099359594285488, + 0.00996543187648058, + 0.027481846511363983, + 0.014794331975281239, + 0.03989901766180992, + 2.443436096655205e-05, + 0.057984087616205215, + -0.014617210254073143, + -0.009420083835721016, + -0.011718005873262882, + -0.05984852463006973, + 0.039227817207574844, + -0.019110510125756264, + -0.011652749963104725, + -0.041651591658592224, + 0.002377161057665944, + -0.009247622452676296, + -0.05731288716197014, + 0.013228202238678932, + -0.02254107967019081, + 0.04884833097457886, + -0.0076581877656280994, + -0.01726471446454525, + 0.02287667989730835, + -0.0310802161693573, + -0.0064369793981313705, + -0.004700719378888607, + -0.002322393236681819, + -0.010515442118048668, + 0.017805403098464012, + 0.06458420306444168 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检测气缸套内径磨损量", + "编号": "MT009", + "内容": "表 4.11 MT009 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT009030301气缸套检测气缸套内径磨损量1A/8000hJY级
安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。
安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1内径千分尺(三点式) Mitutoyo 204-304 mm1套分辨率0.001mm
2缸套磨损测量记录仪Custom-Bore-Wear-Log1台自动生成磨损曲线
3防爆LED手电Streamlight 880401个24V安全电压
4清洁气枪Industrial Air BlowGun1把压力≤0.5 MPa
2)备品
名称规格/型号消耗数量备注
11本项目为检测类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%100mL清洁测量接触面
2无绒布Kimwipe EX-L5张防刮伤缸壁
3防锈纸VCI-2002张测量后临时覆盖
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工审核磨损趋势
\n\n\n\n
3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略)
验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。
页码:1/1版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.11 MT009 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT009030301气缸套检测气缸套内径磨损量1A/8000hJY级
安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。
安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1内径千分尺(三点式) Mitutoyo 204-304 mm1套分辨率0.001mm
2缸套磨损测量记录仪Custom-Bore-Wear-Log1台自动生成磨损曲线
3防爆LED手电Streamlight 880401个24V安全电压
4清洁气枪Industrial Air BlowGun1把压力≤0.5 MPa
2)备品
名称规格/型号消耗数量备注
11本项目为检测类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%100mL清洁测量接触面
2无绒布Kimwipe EX-L5张防刮伤缸壁
3防锈纸VCI-2002张测量后临时覆盖
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工审核磨损趋势
\\n\\n\\n\\n
3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略)
验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1352eb4a-1f16-4fb9-b64d-4c5786cb8e8d.pdf#page=36\"}]", + "embedding": [ + -0.03210540488362312, + 0.0062207747250795364, + -0.04630551114678383, + -0.023528916761279106, + -0.015751773491501808, + 0.00912192277610302, + 0.012479165568947792, + -0.005176926031708717, + -0.04525225982069969, + 0.015563691966235638, + -0.02119671367108822, + 0.024093160405755043, + 0.04638074338436127, + 0.010062326677143574, + 0.030770031735301018, + 0.0034324759617447853, + -0.02584231272339821, + -0.002435647416859865, + 0.008205028250813484, + -0.04216773062944412, + -0.010758225806057453, + 0.02744099870324135, + 0.011858498677611351, + -0.017040127888321877, + 0.03090168721973896, + 0.019786108285188675, + -0.030356252565979958, + -0.005999779794365168, + 0.03838730603456497, + -0.012667247094213963, + 0.02999889850616455, + -0.007485618814826012, + -0.0024638595059514046, + -0.04547795653343201, + -0.030469100922346115, + -0.04386046156287193, + 0.019231269136071205, + -0.043296217918395996, + -0.031954940408468246, + 0.07184689491987228, + -0.0178958959877491, + -0.08711905777454376, + 0.026162048801779747, + -0.03661934658885002, + 0.0037663194816559553, + -0.04273197427392006, + 0.00320442789234221, + -0.04273197427392006, + -0.0007699560956098139, + -0.0014035535277798772, + 0.006366537418216467, + -0.027553848922252655, + 0.019409947097301483, + -0.051421310752630234, + -0.0005854017217643559, + 0.03919605538249016, + -0.01935352198779583, + 0.008839800953865051, + -0.053527817130088806, + -0.0011079139076173306, + -0.043333832174539566, + 0.037540942430496216, + -0.020858168601989746, + -0.002407435094937682, + 0.05529577657580376, + 0.035772982984781265, + -0.00856708362698555, + -0.0033925087191164494, + -0.03345958888530731, + -0.05875646695494652, + -0.01057954877614975, + 0.006921376101672649, + -0.029265383258461952, + -0.020444391295313835, + -0.03923366963863373, + 0.04796062409877777, + 0.04261912778019905, + -0.022287582978606224, + 0.022456856444478035, + 0.025710655376315117, + 0.046982601284980774, + 5.444059570436366e-05, + -0.03447522595524788, + 0.031954940408468246, + -0.03234991058707237, + -0.0028846904169768095, + -0.017670197412371635, + -0.022701362147927284, + -0.02958512119948864, + -0.056687574833631516, + 0.0031338976696133614, + 0.019099613651633263, + -0.018018146976828575, + 0.02843782864511013, + 0.0024638595059514046, + 0.023716997355222702, + -0.02757265605032444, + 0.014021429233253002, + 0.00539321918040514, + -0.030262213200330734, + 0.024506937712430954, + 0.022776594385504723, + 0.06473743915557861, + -0.01845073327422142, + 0.05066898837685585, + -0.029566314071416855, + 0.08930079638957977, + 0.06469982117414474, + -0.03370409086346626, + -0.015685945749282837, + 0.001128485193476081, + 0.06003541499376297, + 0.017162378877401352, + 0.016692178323864937, + -0.006460578180849552, + 0.015196934342384338, + -0.0204255823045969, + -0.01606210693717003, + -0.007866482250392437, + -0.020933400839567184, + 0.04186680167913437, + 0.0008052212651818991, + 0.003613503882661462, + -0.050443291664123535, + -0.0629318580031395, + -0.040249306708574295, + 0.04254389554262161, + -0.01927828975021839, + 0.00015722385433036834, + -0.020933400839567184, + -0.019955379888415337, + 0.0791444331407547, + 0.00013150967424735427, + -0.009018477983772755, + 0.02309633046388626, + -0.01534739974886179, + 0.0023157456889748573, + 0.00908900797367096, + -0.020895784720778465, + 0.003312574466690421, + 0.003977910615503788, + 0.021648108959197998, + -0.016974298283457756, + -0.003818041644990444, + 0.007833568379282951, + -0.00386271090246737, + 0.029660353437066078, + -0.019061995670199394, + 0.032895345240831375, + -0.0332903154194355, + 0.010410276241600513, + 0.02317156456410885, + 0.028362596407532692, + -0.0015187530079856515, + -0.03210540488362312, + 0.008520063944160938, + -0.015827005729079247, + 0.019503986462950706, + -0.03596106171607971, + 0.018648218363523483, + 0.04186680167913437, + 0.02674509957432747, + -0.017529137432575226, + 0.019898956641554832, + 0.011209620162844658, + -0.013917984440922737, + 0.03810518607497215, + 0.029453465715050697, + -0.018253248184919357, + -0.02362295798957348, + 0.05123322829604149, + 0.005792891141027212, + -0.00587752740830183, + 0.006752103567123413, + 0.05988495051860809, + 0.028550677001476288, + 0.06827335804700851, + 0.006662765052169561, + 0.03291415423154831, + -0.01775483414530754, + 0.009620336815714836, + 0.02552257478237152, + 0.018300268799066544, + 0.026519402861595154, + -0.0061267344281077385, + 0.030375061556696892, + 0.059847332537174225, + -0.01637244038283825, + 0.010852266103029251, + 0.005924547556787729, + -0.039346519857645035, + -0.05153416097164154, + 0.012027772143483162, + 0.022099502384662628, + 0.05634903162717819, + -0.0141154695302248, + 0.061163898557424545, + 6.285280687734485e-05, + 0.015385015867650509, + 0.009046689607203007, + -0.006879058200865984, + -0.020820552483201027, + 0.025409726426005363, + 0.004819572437554598, + -0.03417429327964783, + 0.00014590960927307606, + -0.020369159057736397, + -0.022701362147927284, + 0.04717068374156952, + -0.01927828975021839, + -0.008816290646791458, + -0.030092939734458923, + 0.0021123832557350397, + -0.020387966185808182, + 0.002407435094937682, + 0.027459807693958282, + -0.0013553578173741698, + 0.029491081833839417, + 0.017604369670152664, + -0.026274899020791054, + -0.020105846226215363, + 0.08862370997667313, + 0.04848724976181984, + -0.005957461893558502, + -0.004008473828434944, + -0.040249306708574295, + 0.035772982984781265, + 0.02774192951619625, + 0.04709545150399208, + -0.07301299273967743, + 0.01768900640308857, + 0.027008414268493652, + -0.03808637708425522, + -0.015225146897137165, + -0.0002843253896571696, + 0.014068449847400188, + -0.03607391193509102, + 0.03345958888530731, + 0.034042637795209885, + -0.000603034277446568, + -0.005609511863440275, + -0.0031056853476911783, + 0.040663085877895355, + 0.011360084637999535, + -0.041227325797080994, + -0.0090701999142766, + 0.06966515630483627, + 0.03972268104553223, + -0.013729903846979141, + 0.03276368975639343, + 0.012573206797242165, + -0.00823794212192297, + -0.004271786659955978, + -0.03505827486515045, + 0.025616614148020744, + 0.0048054661601781845, + 0.005007653497159481, + -0.03221825510263443, + -0.013617055490612984, + -0.007946416735649109, + 0.022550897672772408, + 0.04483848065137863, + 0.010429084300994873, + 0.019710876047611237, + 0.010617164894938469, + 0.02132837101817131, + 0.002901147585362196, + -0.0249395240098238, + -0.006187860853970051, + 0.01664515770971775, + -0.00974258966743946, + -0.0009074902045540512, + -0.0026072710752487183, + -0.01025040727108717, + -0.028381403535604477, + 0.06831097602844238, + -0.006296007428318262, + -0.013081024400889874, + 0.06131436675786972, + 0.009704973548650742, + -0.00046373691293410957, + 0.011867903172969818, + 0.010570145212113857, + 0.01900557242333889, + 0.0014823123347014189, + -0.03246275708079338, + -0.07538281381130219, + -0.07997198402881622, + -0.0047255321405828, + -0.023942695930600166, + 0.025466149672865868, + -0.06910091638565063, + 0.07312584668397903, + -0.00572236068546772, + -0.029528697952628136, + 0.004229468759149313, + -0.032970577478408813, + -0.15723560750484467, + -0.014416399411857128, + -0.04228058084845543, + 0.04401092603802681, + 0.009371129795908928, + -0.02050081454217434, + -0.040663085877895355, + -0.007824164815247059, + -0.044612783938646317, + 0.0012154727010056376, + -0.024525746703147888, + -0.05822983756661415, + -0.006756805349141359, + -0.036431264132261276, + -0.015535480342805386, + -0.011980751529335976, + -0.044199004769325256, + -0.03184209018945694, + -0.020312733948230743, + -0.01685204543173313, + -0.01751033030450344, + -0.02563542313873768, + 0.025409726426005363, + -0.028419019654393196, + -0.02806166559457779, + -0.009004372172057629, + 0.006766209378838539, + -0.02240043133497238, + -0.004060195758938789, + 0.015761177986860275, + -0.032255869358778, + -0.02074532024562359, + -0.0022440399043262005, + 0.04638074338436127, + 0.016729794442653656, + -0.0008011069730855525, + -0.020387966185808182, + 0.0064887902699410915, + -0.010588953271508217, + 0.058417920023202896, + 0.037503328174352646, + 0.012027772143483162, + 0.031014535576105118, + 0.03526516258716583, + 0.0031409505754709244, + -0.03735285997390747, + -0.0036370139569044113, + -0.02074532024562359, + 0.004466920625418425, + -0.0004102514067199081, + -0.01925007812678814, + -0.012892943806946278, + 0.02288944274187088, + -0.017143571749329567, + -0.01896795630455017, + -0.022381624206900597, + -0.00031591710285283625, + 0.006517002359032631, + -0.04476324841380119, + -0.016494693234562874, + -0.05962163582444191, + -0.09125684201717377, + 0.013353741727769375, + 0.023265603929758072, + 0.0050499713979661465, + -0.04480086266994476, + -0.04126494377851486, + -0.04547795653343201, + -0.023077523335814476, + 0.0010473753791302443, + 0.02687675692141056, + -0.03718359023332596, + 0.021027442067861557, + -0.04833678528666496, + 0.01959802769124508, + 0.002908200491219759, + -0.06432365626096725, + 0.010400872677564621, + -0.01730344071984291, + -0.11563212424516678, + -0.029397040605545044, + 0.0201810784637928, + 0.002988134976476431, + -0.004208309575915337, + -0.014848984777927399, + -0.020369159057736397, + 0.011049751192331314, + 0.009512189775705338, + -0.016344228759407997, + 0.22569705545902252, + -0.010052923113107681, + -0.01245095394551754, + -0.04615504667162895, + 0.02712126262485981, + -0.04525225982069969, + -0.02552257478237152, + -0.014736136421561241, + 0.005774082615971565, + -0.005111097823828459, + -0.052324097603559494, + -0.0032114810310304165, + 0.007645487319678068, + 0.0019971837755292654, + -0.0087034422904253, + -0.016936682164669037, + 0.020199885591864586, + 0.026557018980383873, + 0.1042720377445221, + -0.041152093559503555, + 0.03187970817089081, + 0.04028692469000816, + -0.007546745240688324, + -0.024431705474853516, + -0.04017407447099686, + -0.0701165497303009, + -0.032199446111917496, + 0.024318857118487358, + -0.016447672620415688, + 0.00908900797367096, + -0.02597396820783615, + 0.054919615387916565, + 0.03571655973792076, + -0.012855327688157558, + -0.041189711540937424, + 0.01010934729129076, + -0.03086407110095024, + 0.0003132722049485892, + 0.04171633720397949, + 0.006187860853970051, + -0.0034136679023504257, + -0.008820992894470692, + 0.0005269203102216125, + 0.01563892513513565, + 0.036920275539159775, + -0.04995428025722504, + 0.0064417701214551926, + -0.007932310923933983, + 0.029735585674643517, + 0.01382394414395094, + -0.02510879747569561, + 0.029735585674643517, + -0.008247346617281437, + 0.0201810784637928, + -0.011736246757209301, + 0.03870704397559166, + 0.00556719396263361, + 0.004528047051280737, + -0.0041377791203558445, + 0.025296878069639206, + 0.03923366963863373, + 0.015093490481376648, + -0.0726744532585144, + -0.0018878617556765676, + 0.013099832460284233, + -0.004417549353092909, + -0.07733885198831558, + -0.015206338837742805, + 0.020764129236340523, + -0.011689226143062115, + -0.004577418323606253, + 0.03118380904197693, + -0.028550677001476288, + 0.0448760949075222, + 0.03945936635136604, + -0.029002070426940918, + -0.028362596407532692, + 0.0489010289311409, + -0.0100905392318964, + 0.028136899694800377, + -0.054957229644060135, + -0.041603490710258484, + -0.023491300642490387, + -0.005985673982650042, + 0.026820331811904907, + -0.001978375716134906, + 0.002647238317877054, + -0.04476324841380119, + 0.0015834058867767453, + -0.07952059060335159, + -0.018751664087176323, + -0.00863761454820633, + 0.0014682062901556492, + 0.006117330398410559, + 0.015864621847867966, + 0.00992126576602459, + -0.02497714012861252, + -0.050480905920267105, + -0.019428754225373268, + -0.03703312575817108, + 0.014472823590040207, + -0.0387822762131691, + -0.01803695596754551, + 0.02674509957432747, + -0.03353482112288475, + 0.06857428699731827, + -0.0009069024818018079, + 0.0016280750278383493, + 0.009455765597522259, + 0.013306722044944763, + 0.013118640519678593, + 0.02083936147391796, + -0.042092498391866684, + -0.012215852737426758, + -0.02604920044541359, + 0.032255869358778, + -0.019579218700528145, + 0.049089107662439346, + 0.006916674319654703, + 0.02674509957432747, + -0.05830506980419159, + 0.05781606212258339, + -0.004297648090869188, + 0.0038062867242842913, + -0.027497423812747, + 0.004086057189851999, + -0.057966526597738266, + -0.00403198366984725, + -0.020989825949072838, + 0.07748931646347046, + -0.017040127888321877, + -0.020858168601989746, + -0.00704833073541522, + -0.0178676825016737, + 0.07470571994781494, + 0.004081354942172766, + 0.041114479303359985, + 0.042431045323610306, + 0.03703312575817108, + 0.002734225708991289, + 0.015667136758565903, + -0.08252988755702972, + -0.01010934729129076, + -0.018986763432621956, + 0.02362295798957348, + -0.04927719011902809, + 0.023190371692180634, + -0.058417920023202896, + -0.03742809221148491, + 0.04062546789646149, + -0.020124653354287148, + -0.0005342672229744494, + 0.005665936507284641, + -0.04720829799771309, + 0.0069919065572321415, + -0.012356913648545742, + 0.006211370695382357, + 0.006587532814592123, + -0.037540942430496216, + -0.026312515139579773, + -0.018093379214406013, + 0.0019254779908806086, + 0.012723671272397041, + 0.01660754159092903, + 0.030845263972878456, + 0.013504207134246826, + 0.015112298540771008, + 0.04807347059249878, + 0.00856708362698555, + -0.005421431269496679, + 0.04235581308603287, + 0.009027881547808647, + -0.03315865993499756, + 0.04307052120566368, + -0.015667136758565903, + 0.03169162571430206, + -0.023002291098237038, + 0.027459807693958282, + -0.03611152619123459, + 0.04882579669356346, + 0.025691848248243332, + 0.025484958663582802, + -0.020651280879974365, + 0.02809928171336651, + -0.03669457882642746, + -0.009004372172057629, + -0.014717328362166882, + -0.01976729929447174, + -0.004509238991886377, + 0.03193613141775131, + -0.0674457997083664, + 0.10464819520711899, + -0.020989825949072838, + 0.0011813830351457, + -0.0028940944466739893, + -0.0387822762131691, + 0.013814540579915047, + 0.04393569380044937, + 0.00455155735835433, + -0.0003444231115281582, + 0.006855547893792391, + 0.02337845228612423, + -0.00957331620156765, + -0.0011108526960015297, + 0.022005463019013405, + -0.009949478320777416, + 0.011491741053760052, + 0.022738978266716003, + -0.014237722381949425, + 0.02638774737715721, + 0.003738107392564416, + -0.0043822843581438065, + -0.016588732600212097, + 0.0005192795651964843, + -0.061652909964323044, + 0.027384575456380844, + -0.0018208579858765006, + 0.06266854703426361, + -0.02518402971327305, + -0.014886600896716118, + -0.004664405714720488, + 0.022381624206900597, + 0.05469391867518425, + 0.0164006520062685, + 0.022494472563266754, + -0.014848984777927399, + -0.024187199771404266, + -0.06417319178581238, + 0.032613225281238556, + -0.014218914322555065, + 0.014783157035708427, + -0.0006623973022215068, + -0.04765969514846802, + -0.05063137039542198, + 0.02465740218758583, + -0.028080474585294724, + 0.00045345124090090394, + 0.03257560729980469, + -0.0012142971390858293, + 0.012093599885702133, + 0.007499724626541138, + 0.01827205717563629, + -0.024375280365347862, + 0.023566532880067825, + -0.012883540242910385, + 0.0650007501244545, + -0.014576267451047897, + 0.02798643335700035, + 0.011585782282054424, + 0.012479165568947792, + 0.02095220983028412, + 0.05168462544679642, + 0.05484438315033913, + 0.00303515512496233, + 0.01594925858080387, + 0.02736576646566391, + -0.04457516595721245, + -0.012206449173390865, + -0.057627979665994644, + -0.025785887613892555, + -0.008632912300527096, + 0.029566314071416855, + -0.013212681747972965, + 0.009286493062973022, + -0.00538381515070796, + -0.02206188626587391, + 0.020989825949072838, + 0.0022593215107917786, + -0.028136899694800377, + -0.024506937712430954, + -0.0176231786608696, + -0.03680742532014847, + -0.04517702758312225, + 0.00302575109526515, + 0.016306612640619278, + 0.012639034539461136, + 0.012131216004490852, + -0.017143571749329567, + -0.005021759308874607, + 0.044650398194789886, + 0.0056706382893025875, + -0.021441219374537468, + -0.04224296286702156, + 0.011736246757209301, + 0.025748271495103836, + 0.034945424646139145, + -0.011501145549118519, + -0.04190441966056824, + 0.006611042656004429, + 0.0016562872333452106, + 0.042468659579753876, + -0.011905519291758537, + -0.043371450155973434, + 0.06868713349103928, + -0.01314685307443142, + 0.042957670986652374, + -0.030299829319119453, + -0.007321048062294722, + -0.014256530441343784, + 0.022701362147927284, + -0.00622547697275877, + 0.023641765117645264, + -0.057214200496673584, + -0.013927388936281204, + -0.005496663507074118, + 0.0016962543595582247, + 0.017181187868118286, + 0.010062326677143574, + 0.03654411435127258, + 0.03710835799574852, + -0.0032655540853738785, + -0.058906931430101395, + 0.005952759645879269, + 0.05510769784450531, + -0.037823062390089035, + 0.011943135410547256, + 0.007170583121478558, + 0.00854827556759119, + -0.014237722381949425, + 0.027064837515354156, + -0.056311413645744324, + -0.0438980758190155, + -0.007654891349375248, + -0.031127383932471275, + -0.019861340522766113, + -0.019033784046769142, + -0.0579289086163044, + -0.022174734622240067, + 0.01980491541326046, + -0.029923666268587112, + -0.0017750132828950882, + 0.017783045768737793, + -0.027177685871720314, + -0.024544553831219673, + 0.03214302286505699, + 0.04803585633635521, + -0.0013365497579798102, + -0.007490320596843958, + 0.04848724976181984, + 0.03206779062747955, + -0.012921156361699104, + -0.041227325797080994, + 0.047358762472867966, + -0.019692067056894302, + -0.013955600559711456, + 0.023848654702305794, + 0.018817491829395294, + -0.006065608002245426, + 0.00574116874486208, + 0.017463309690356255, + -0.0368262343108654, + -0.017924107611179352, + -0.028738757595419884, + -0.006625148933380842, + -0.013231489807367325, + -0.018996167927980423, + -0.011914923787117004, + 0.015403823927044868, + -0.014012024737894535, + -0.04228058084845543, + 0.0282309390604496, + -0.022776594385504723, + -0.01010934729129076, + 0.026688676327466965, + 0.011247236281633377, + 0.046004582196474075, + 0.021441219374537468, + 0.0031056853476911783, + 0.010955710895359516, + -0.006056203972548246, + -0.04028692469000816, + -0.0006118505843915045, + -0.03285772725939751, + 0.035979870706796646, + 0.03402382880449295, + 0.01080524642020464, + -0.027516232803463936, + -0.011002731509506702, + 0.00019645635620690882, + 0.0074621085077524185, + -0.0022170033771544695, + 0.0043023498728871346, + 0.008426022715866566, + 0.0032537991646677256, + 0.031823284924030304, + 0.009893054142594337, + -0.022494472563266754, + -0.01243214588612318, + 0.07493142038583755, + 0.02840021252632141, + -0.00837430078536272, + -0.0059151435270905495, + -0.03537801280617714, + 0.042506277561187744, + -0.14677831530570984, + -0.009846033528447151, + -0.015968065708875656, + -0.041114479303359985, + -0.0031621097587049007, + -0.01744450069963932, + 0.020858168601989746, + 0.010833458043634892, + 0.014181298203766346, + -0.02871994860470295, + 0.031371891498565674, + -0.023660574108362198, + 0.06898806244134903, + 0.006117330398410559, + 0.010993327014148235, + 0.04833678528666496, + -0.012911751866340637, + -0.01737867295742035, + 0.027234110981225967, + -0.01444461103528738, + 0.0002352480369154364, + 0.020237501710653305, + -0.024883098900318146, + 0.009201856330037117, + 0.0019419350428506732, + -0.04581649973988533, + -0.02119671367108822, + -0.005313284695148468, + -0.005581299774348736, + 0.0164006520062685, + -0.01672038994729519, + -0.04179156944155693, + 0.02108386531472206, + 0.05642426386475563, + -0.007184689398854971, + -0.01598687469959259, + 0.006484088022261858, + 0.013899176381528378, + 0.004060195758938789, + -0.020331542938947678, + 0.018685834482312202, + -0.00012284032709430903, + 0.025578998029232025, + 0.041152093559503555, + 0.03767259791493416, + 0.04754684492945671, + 0.010795841924846172, + -0.03048790991306305, + -0.033967405557632446, + 0.00023230926308315247, + 0.011623398400843143, + 0.011886711232364178, + -0.06861190497875214, + -0.03502066060900688, + 0.017952319234609604, + -0.009342917241156101, + -0.05409206077456474, + -0.0004067248955834657, + 0.0110967718064785, + 0.03804875910282135, + -0.03090168721973896, + 0.013287913985550404, + 0.0013741658767685294, + -0.08057384938001633, + -0.032726071774959564, + -0.017463309690356255, + -0.067558653652668, + 0.03255679830908775, + 0.04363476112484932, + -0.012921156361699104, + -0.005125203635543585, + 0.045553188771009445, + -0.004046089947223663, + -0.05465630069375038, + -0.0062207747250795364, + 0.0002606683410704136, + 0.03641245886683464, + -0.011294256895780563, + 0.0036699280608445406, + -0.004017877858132124, + -0.005919845309108496, + 0.04213011637330055, + 0.021027442067861557, + 0.027666697278618813, + 0.018300268799066544, + -0.0031856198329478502, + -0.0032114810310304165, + 0.038895126432180405, + 0.017736027017235756, + -0.00885860901325941, + -0.024337664246559143, + 0.002741278847679496, + 0.011698630638420582, + -0.017877086997032166, + 0.003778074635192752, + -0.009291195310652256, + -0.006154946517199278, + -0.037540942430496216, + -0.05104514956474304, + -0.012479165568947792, + 0.005186330061405897, + -0.012309893034398556, + -0.00014032596664037555, + 0.030149364843964577, + -0.013203277252614498, + 0.05544624105095863, + 0.020895784720778465, + 0.008590593934059143, + -0.017115360125899315, + 0.022249966859817505, + -0.0151217021048069, + -0.029679162427783012, + -0.008190922439098358, + -0.02330322004854679, + -0.05326450243592262, + -0.022456856444478035, + 0.009940073825418949, + 0.010504316538572311, + -0.031748052686452866, + -0.01592104509472847, + 0.010363256558775902, + 0.006375941447913647, + 0.006305411458015442, + -0.03189851716160774, + -0.015601308085024357, + -0.04860009625554085, + 0.018544774502515793, + 1.1755054401874077e-05, + -0.04220534861087799, + 0.012874135747551918, + 0.03575417399406433, + 0.010485508479177952, + -0.009065498597919941, + 0.05288834124803543, + 0.018375501036643982, + 0.02198665402829647, + -0.019917763769626617, + 0.06958992034196854, + -0.026782715693116188, + -0.03283892199397087, + 0.014341166242957115, + 0.03957221657037735, + -0.00126601941883564, + -0.007988735102117062, + -0.016758006066083908, + 0.03413667902350426, + -0.031165000051259995, + -0.030826454982161522, + 0.021460028365254402, + -0.020068230107426643, + -0.009498083963990211, + -0.01545084360986948, + -0.012535590678453445, + 0.0014881899114698172, + -0.010485508479177952, + 0.005031163338571787, + 0.038895126432180405, + 0.021873805671930313, + -0.015479056164622307, + 0.018714046105742455, + 0.015573096461594105, + -0.04762207716703415, + -0.009018477983772755, + -0.033102232962846756, + 0.016118530184030533, + -0.002148824045434594, + -0.0023968557361513376, + -0.017942914739251137, + -0.03748451918363571, + -0.028983263298869133, + 0.004965335130691528, + -0.03537801280617714, + -0.03739047795534134, + 0.044236622750759125, + -0.0017961723497137427, + 0.011378892697393894, + 0.028550677001476288, + 0.011557569727301598, + 0.033102232962846756, + -0.011820882558822632, + 0.03439999371767044, + 0.03727762773633003, + 0.0289644543081522, + 0.02070770412683487, + -0.008505957201123238, + 0.038819894194602966, + -0.011181407608091831, + 0.04931480437517166, + -0.013231489807367325, + -0.004274137783795595, + 0.005125203635543585, + 0.026782715693116188, + -0.04149064049124718, + -0.033798132091760635, + 0.05552147328853607, + -0.004965335130691528, + 0.01142591331154108, + 0.004727882798761129, + 0.011999559588730335, + 0.08674290031194687, + -0.0337228998541832, + 0.01444461103528738, + -0.004824274219572544, + -0.03212421387434006, + -0.024920715019106865, + -0.013184469193220139, + 0.0158552173525095, + 0.004833678249269724, + -0.033553626388311386, + -0.03385455906391144, + -0.01908080466091633, + -0.017604369670152664, + 0.009037286043167114, + 0.03110857680439949, + -0.0017091849585995078, + 0.017228208482265472, + -0.012544994242489338, + 0.014200106263160706, + -0.03139069676399231, + -0.009117220528423786, + 0.006027991883456707, + 0.03242514282464981, + 0.0031809178180992603, + -0.02892683818936348, + 0.024187199771404266, + -0.039384134113788605, + 0.00756085105240345, + -0.0035617814864963293, + -0.002140595344826579, + -0.04100162908434868, + 0.022908249869942665, + -0.030563142150640488, + -0.030111748725175858, + 0.04882579669356346, + 0.024356473237276077, + 0.014087257906794548, + 0.018055763095617294, + 0.010024710558354855, + -0.02917134389281273, + 0.006479386240243912, + 0.02469501830637455, + 0.013701691292226315, + 0.004584471229463816, + 0.03197374939918518 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "气缸套", + "组成编码": "030301", + "维修项目名称": "检测气缸套内径磨损量", + "维修项目编号": "MT009", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.12 MT010 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT010030301气缸套更换气缸套4A/32000hJY级
安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。
安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。
序号名称规格/型号数量及单位备注
1液压压装机HYDRA-PRESS-50T1台带压力与位移监控
2缸套拔出器OEM-MAN-BW-LINER-PULL1套螺纹顶压式
3冷却水腔密封测试仪LeakTest-CT3001台0.3 MPa保压
4深度规0- 300 mm1把测量缸套凸肩高度
2)备品备件
名称规格/型号消耗数量备注
1气缸套总成MAN5L35MC-LINER-ASSY1件含0形圈、定位销
2缸套水封0形圈Viton Φ380×5.02个耐高温氟橡胶
3缸套油封环NBR Φ352×3.01个下部密封
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1装配润滑脂Kluber Isoflex LDS18 Special A20g涂缸套外壁
2密封胶Loctite 518少量水腔法兰面(如适用)
3清洗剂Brulin 815GD300mL清洁缸体座孔
4)人力人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工监督压装对中
\\n\\n
修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。
3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm;
2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1b7daafc-9c60-4d7d-acbf-581d29ddb984.pdf#page=38\"}, {\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.11 MT009 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT009030301气缸套检测气缸套内径磨损量1A/8000hJY级
安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。
安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1内径千分尺(三点式) Mitutoyo 204-304 mm1套分辨率0.001mm
2缸套磨损测量记录仪Custom-Bore-Wear-Log1台自动生成磨损曲线
3防爆LED手电Streamlight 880401个24V安全电压
4清洁气枪Industrial Air BlowGun1把压力≤0.5 MPa
2)备品
名称规格/型号消耗数量备注
11本项目为检测类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%100mL清洁测量接触面
2无绒布Kimwipe EX-L5张防刮伤缸壁
3防锈纸VCI-2002张测量后临时覆盖
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工审核磨损趋势
\\n\\n\\n\\n
3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略)
验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1352eb4a-1f16-4fb9-b64d-4c5786cb8e8d.pdf#page=36\"}]", + "embedding": [ + -0.06900137662887573, + -0.010224850848317146, + -0.03783101215958595, + -0.02030002512037754, + -0.030927134677767754, + -0.007815977558493614, + 0.0162961483001709, + 0.04583876579999924, + -0.03167552128434181, + 0.005636297166347504, + 0.004901941400021315, + 0.01102936826646328, + 0.058785878121852875, + 0.018999701365828514, + 0.016894858330488205, + -0.03360262140631676, + -0.012385821901261806, + 0.00029497011564671993, + -5.766388130723499e-05, + -0.001807824824936688, + 0.001901373267173767, + -0.021385187283158302, + 0.01225485373288393, + 0.006726137362420559, + -0.0002084377483697608, + -0.0013354048132896423, + 0.012367111630737782, + -0.0017552037024870515, + -0.06046975031495094, + -0.0329664908349514, + 0.008105977438390255, + 0.007076944224536419, + -0.028008421882987022, + -0.030964553356170654, + -0.03588520362973213, + -0.05829942598938942, + 0.022077446803450584, + -0.03663359209895134, + -0.04235875979065895, + 0.04916909337043762, + -0.011787110939621925, + -0.03835488483309746, + 0.026792289689183235, + -0.0752878338098526, + -0.0007478033076040447, + -0.050516191869974136, + -0.016979053616523743, + -0.029392939060926437, + -0.023780029267072678, + 0.012114530429244041, + -0.002645083935931325, + -0.009387591853737831, + 0.013302597217261791, + -0.04587618634104729, + -0.024771643802523613, + 0.037157464772462845, + -0.06035749241709709, + -0.02641809731721878, + -0.04340650513768196, + -0.011693562380969524, + -0.03444455936551094, + 0.0353800430893898, + 0.021029703319072723, + -0.0012769370805472136, + 0.051152318716049194, + 0.055979423224925995, + 0.015285825356841087, + 0.03214326500892639, + -0.03921553120017052, + -0.07835622131824493, + -0.0015587519155815244, + 0.015033244155347347, + -0.04606328159570694, + -0.03145100548863411, + -0.06035749241709709, + 0.025389062240719795, + 0.05654071271419525, + -0.024266481399536133, + 0.017053890973329544, + 0.027222612872719765, + 0.05238715931773186, + -0.009962915442883968, + 0.01180582121014595, + 0.020038088783621788, + 0.0046236347407102585, + 0.00935485027730465, + -0.002963148755952716, + -0.006127426866441965, + -0.04812134802341461, + 0.0004045972600579262, + -0.03422003984451294, + 0.027372291311621666, + 0.041834890842437744, + 0.002570244949311018, + -0.01983228139579296, + 0.03929036855697632, + 0.017755504697561264, + 0.019850991666316986, + 3.544611172401346e-05, + -0.03876649960875511, + -0.011132271960377693, + 0.014640340581536293, + 0.050254255533218384, + -0.007404363714158535, + 0.028494874015450478, + -0.05440780892968178, + 0.11712272465229034, + 0.027578098699450493, + 0.009541947394609451, + -0.017718086019158363, + 0.046437475830316544, + 0.05425813049077988, + 0.04800909012556076, + -0.015921954065561295, + -0.010047108866274357, + -0.02303164079785347, + -0.021927768364548683, + -0.008260332979261875, + -0.0023878253996372223, + 0.0017376634059473872, + -0.015650663524866104, + -0.026118742302060127, + 0.026212289929389954, + -0.0562039390206337, + 0.015716148540377617, + -0.08980656415224075, + 0.020505830645561218, + -0.015837760642170906, + -0.0036226657684892416, + -0.03285423293709755, + -0.010945174843072891, + 0.06604523956775665, + -0.02724132314324379, + 0.04015101492404938, + -0.015201631002128124, + -0.019158732146024704, + -0.010019044391810894, + -0.004408473148941994, + 0.007984364405274391, + 0.020992282778024673, + -0.010374528355896473, + 0.01671711727976799, + -0.01659550331532955, + -0.0017797602340579033, + 0.007783235050737858, + 0.046512313187122345, + 0.0030216164886951447, + -0.012217434123158455, + -0.0024416157975792885, + -0.022545188665390015, + 0.0354548804461956, + 0.05800006911158562, + 0.0039009724278002977, + -0.0018160102190449834, + 0.005823394283652306, + -0.008620494045317173, + -0.032124556601047516, + 0.03502455726265907, + -0.03206842765212059, + 0.017484214156866074, + 0.020094217732548714, + 0.002316494705155492, + 0.004265811759978533, + 0.0008518760441802442, + 0.0016347600612789392, + -0.022657446563243866, + 0.044716183096170425, + -0.004642344545572996, + -0.0469987653195858, + 0.001901373267173767, + 0.014219372533261776, + 0.013536468148231506, + -0.00599178159609437, + 0.010468076914548874, + 0.035323914140462875, + 0.01549163181334734, + 0.007713073864579201, + 0.010524206794798374, + 0.05077812448143959, + -0.016745181754231453, + 0.014369050040841103, + 0.026754871010780334, + 0.003430891316384077, + -0.013489693403244019, + -0.02011292800307274, + 0.06196652725338936, + 0.026586484163999557, + -0.045539408922195435, + 0.013873242773115635, + -0.0025772613007575274, + -0.05422070994973183, + -0.014621630311012268, + 0.03592262417078018, + -0.016745181754231453, + 0.03504326939582825, + -0.020430993288755417, + 0.008265010081231594, + -0.00987872201949358, + 0.014771307818591595, + 0.052312321960926056, + -0.025127127766609192, + -0.011440981179475784, + 0.016782600432634354, + -0.01128194946795702, + -0.03616585209965706, + 0.0006285290000960231, + -0.021572284400463104, + -0.016118407249450684, + 0.01101065892726183, + -0.021104542538523674, + -0.0047546024434268475, + 0.0004250610072631389, + -0.01749357022345066, + -0.0519007071852684, + -0.0026263741310685873, + 0.009064849466085434, + -0.0007068758714012802, + 0.0040646824054419994, + 0.019551636651158333, + -0.007759848143905401, + -0.02482777275145054, + 0.07263105362653732, + 0.03186262026429176, + 0.01015001256018877, + 0.02220841497182846, + -0.03551100939512253, + 0.05294845253229141, + 0.03698907792568207, + -0.006104039493948221, + -0.0353800430893898, + -0.0004253533261362463, + 0.025707127526402473, + -0.04441682994365692, + -0.03317229822278023, + -0.0021364139392971992, + 0.02353680320084095, + -0.03343423455953598, + 0.034931011497974396, + 0.02015034668147564, + -0.021029703319072723, + -0.0004578029620461166, + 0.0035057300701737404, + 0.02856971137225628, + 0.011366142891347408, + -0.024958740919828415, + -0.017624538391828537, + 0.050179414451122284, + 0.054931677877902985, + -0.006646621040999889, + 0.005804684478789568, + -0.0015178244793787599, + 0.0012979854363948107, + -0.04490328207612038, + -0.008105977438390255, + 0.007993719540536404, + -0.010496141389012337, + 0.020823895931243896, + -0.011160336434841156, + 0.015210986137390137, + -0.009682269766926765, + 0.03315358981490135, + 0.06765427440404892, + 0.0073248473927378654, + 0.025145836174488068, + -0.017942601814866066, + 0.01594066433608532, + -0.025688419118523598, + 0.009163076058030128, + -0.021366477012634277, + 0.03126391023397446, + 0.014949050731956959, + -0.016417762264609337, + -0.017942601814866066, + 0.001124920672737062, + 0.00731549272313714, + 0.0652594342827797, + -0.01921486295759678, + -0.015070663765072823, + 0.04041295126080513, + 0.053135547786951065, + -0.015285825356841087, + -0.009775818325579166, + 0.020861316472291946, + -0.002579599851742387, + 0.0010009689722210169, + -0.043743278831243515, + -0.10716915875673294, + -0.03362132981419563, + -0.0035033912863582373, + -0.04632521793246269, + -0.004827102646231651, + -0.01171227265149355, + 0.03612843155860901, + -0.011506465263664722, + 0.000988690764643252, + -0.02252647839486599, + 0.0033864558208733797, + -0.15326985716819763, + 0.024098094552755356, + -0.046549733728170395, + 0.008835655637085438, + 0.0036624236963689327, + -0.015444857068359852, + -0.003276536241173744, + -0.0064922659657895565, + -0.013601952232420444, + -0.018139054998755455, + 0.03418262302875519, + -0.049356188625097275, + -0.027484549209475517, + 0.010103237815201283, + -0.017980022355914116, + -0.005930975079536438, + -0.026867128908634186, + 0.01986970193684101, + 0.03199358657002449, + -0.015809696167707443, + -0.005617587361484766, + -0.020468411967158318, + 0.016240019351243973, + -0.04621296003460884, + -0.037007786333560944, + 0.011235174722969532, + 0.01488356664776802, + -0.041909728199243546, + -0.0040529887191951275, + 0.022657446563243866, + -0.026867128908634186, + 0.005145167466253042, + 0.0030052457004785538, + 0.0376439169049263, + 0.01488356664776802, + 0.03128261864185333, + -0.02623100019991398, + 0.06215362250804901, + 0.014453243464231491, + 0.020543251186609268, + 0.008424042724072933, + 0.037194885313510895, + 0.008555009961128235, + -0.011487755924463272, + -0.012189369648694992, + -0.009364204481244087, + 0.020823895931243896, + -0.0024743578396737576, + 0.0055708130821585655, + -0.004915973637253046, + 0.00798904150724411, + 0.012114530429244041, + -0.025501322001218796, + -0.0566529706120491, + -0.007549364119768143, + -0.02248905971646309, + -0.02411680296063423, + 0.003915004897862673, + 0.007834686897695065, + 0.009265978820621967, + -0.04340650513768196, + -0.0847175195813179, + 0.03891617804765701, + -0.043743278831243515, + -0.005350974388420582, + -0.03324713557958603, + -0.034201331436634064, + -0.07199492305517197, + 0.0031970199197530746, + -0.03401423618197441, + 0.04688650742173195, + -0.022657446563243866, + 0.018952926620841026, + -0.034781333059072495, + -0.01936453953385353, + 0.02641809731721878, + -0.052274901419878006, + -0.0010395577410236, + -0.06002071872353554, + -0.10215496271848679, + 0.004221376031637192, + 0.012310982681810856, + -0.00626307213678956, + -0.01972002349793911, + 0.008882430382072926, + -0.047485217452049255, + 0.011244529858231544, + 0.004625973291695118, + 0.02911229431629181, + 0.22945576906204224, + 0.010533560998737812, + 0.01268517691642046, + -0.016698407009243965, + 0.056129101663827896, + -0.06264007836580276, + -0.06713040173053741, + -0.051301997154951096, + -0.013255822472274303, + -0.016436470672488213, + -0.05380909889936447, + 0.018260667100548744, + 0.0011085497681051493, + 0.007666299585253, + 0.02450970746576786, + 0.011253884993493557, + 0.013630016706883907, + -0.024378739297389984, + 0.09339882433414459, + -0.030777456238865852, + -0.006866459734737873, + 0.009841302409768105, + -0.01383582316339016, + -0.001874478068202734, + -2.464783756295219e-05, + -0.035903915762901306, + -0.014836791902780533, + 0.0018206876702606678, + 0.04026327654719353, + -0.0003999198379460722, + -0.016146471723914146, + 0.05564264953136444, + 0.016455180943012238, + -0.07319235056638718, + -0.05377167835831642, + 0.006075975019484758, + 0.030964553356170654, + 0.00849888101220131, + -0.005954361986368895, + 0.005575490649789572, + -0.021759381517767906, + -0.016043568029999733, + 0.028812937438488007, + -0.02871938981115818, + -0.004747586324810982, + -0.048345863819122314, + 0.001986736198887229, + 0.0015435502864420414, + 0.059721361845731735, + 0.005846781190484762, + -0.040936823934316635, + -3.2888143323361874e-05, + -0.029056163504719734, + 0.020749056711792946, + -0.014584211632609367, + 0.007278073579072952, + -0.0016546391416341066, + -0.012619692832231522, + 0.027727775275707245, + 0.011431626975536346, + 0.022507769986987114, + 0.0029584714211523533, + -0.07424008846282959, + -0.032947782427072525, + 0.038055531680583954, + -0.04759747534990311, + -0.06312652677297592, + -0.06189168989658356, + 0.007137750741094351, + -0.004920651204884052, + 0.036296818405389786, + 0.02458454668521881, + -0.010121948085725307, + 0.054033614695072174, + 0.025108417496085167, + -0.00023460210650227964, + -0.023630350828170776, + 0.061330396682024, + -0.02903745509684086, + 0.03678327053785324, + -0.03627810999751091, + -0.020430993288755417, + -0.028775518760085106, + 0.020880024880170822, + 0.016810664907097816, + -0.025108417496085167, + 0.013059371151030064, + -0.016623567789793015, + -0.007086298894137144, + -0.07431492954492569, + 0.010692593641579151, + 0.0011833885218948126, + 0.020094217732548714, + 0.005201296415179968, + -0.005131135229021311, + -0.008840333670377731, + -0.026043903082609177, + -0.04546457156538963, + -0.014032275415956974, + 0.01311550009995699, + -0.025969063863158226, + -0.05803748965263367, + 0.0021270590368658304, + -0.05916007235646248, + -0.006174201145768166, + 0.08628913760185242, + 0.030178746208548546, + -0.015014534816145897, + 0.007235976401716471, + 0.04048779234290123, + 0.029280681163072586, + 0.005594200454652309, + -0.05814974755048752, + -0.016820020973682404, + -0.002862584078684449, + 0.0032040360383689404, + 0.03693294897675514, + 0.008279042318463326, + 0.027989711612462997, + 0.02875680848956108, + -0.05238715931773186, + 0.017830343917012215, + 0.0009267148561775684, + -0.01617453619837761, + -0.00944839883595705, + -0.05014199763536453, + -0.00476395757868886, + -0.03691423684358597, + -0.050516191869974136, + 0.037120044231414795, + -0.05208780616521835, + -0.02997293882071972, + 0.014153888449072838, + 0.02112325094640255, + 0.04033811390399933, + -0.002518793335184455, + 0.06177942827343941, + 0.058748457580804825, + -0.0015365341678261757, + -0.03320971876382828, + 0.008035816252231598, + -0.008877752348780632, + -0.014060339890420437, + -0.02641809731721878, + 0.02731616236269474, + -0.06301426887512207, + 0.020019378513097763, + 0.00398516608402133, + -0.008550332859158516, + 0.06035749241709709, + -0.0006916742422617972, + 0.028120679780840874, + 0.021104542538523674, + -0.041760049760341644, + 0.007203234359622002, + 0.007886138744652271, + -0.0021387524902820587, + -0.004445892293006182, + -0.055156197398900986, + -0.029411649331450462, + -0.015519696287810802, + 0.053135547786951065, + 0.04348134249448776, + -0.003615649649873376, + 0.009869366884231567, + 0.05437038838863373, + 0.020505830645561218, + 0.07525041699409485, + -0.016857439652085304, + -0.013994855806231499, + 0.06915105134248734, + -0.015837760642170906, + -0.01936453953385353, + 0.04789683222770691, + 0.0028579067438840866, + 0.0423213429749012, + 0.024752933531999588, + -0.0033209717366844416, + -0.019083894789218903, + 0.05571748688817024, + 0.006557750049978495, + 0.025389062240719795, + -0.053247805684804916, + -0.01042130310088396, + -0.029711004346609116, + -0.02306905947625637, + -0.01348033919930458, + -0.015837760642170906, + -0.010860980488359928, + 0.04325682669878006, + -0.03985166177153587, + 0.10440012812614441, + -0.04422973096370697, + -0.0031759715639054775, + -0.009981624782085419, + 0.003522101091220975, + 0.00609000725671649, + 0.04610070213675499, + -0.013190338388085365, + -0.009934850968420506, + 0.03869165852665901, + -0.00022013131820131093, + 0.0038167787715792656, + -0.023948416113853455, + -0.0188967976719141, + -0.03502455726265907, + 0.01190872397273779, + 0.021422605961561203, + 0.008896462619304657, + -0.00123951758723706, + 0.00491129606962204, + 0.015304534696042538, + 0.0005525208543986082, + -0.008185493759810925, + -0.021254219114780426, + -0.003276536241173744, + -0.03128261864185333, + 0.07315492630004883, + -0.011450336314737797, + -0.024528417736291885, + 0.010159366764128208, + 0.007946944795548916, + 0.047447800636291504, + -0.016885504126548767, + -0.00398516608402133, + -0.03249875083565712, + -0.04074972867965698, + -0.03846714273095131, + 0.0329664908349514, + -0.025389062240719795, + 0.01563195511698723, + -0.0331910066306591, + -0.09160269051790237, + -0.008339849300682545, + 0.029018744826316833, + -0.01128194946795702, + -0.007535331882536411, + 0.03842972591519356, + 0.002010123338550329, + -0.0020077847875654697, + -0.00804984848946333, + 0.006169523578137159, + 0.02271357551217079, + 0.059721361845731735, + -0.012376466765999794, + 0.03350907191634178, + -0.03511810675263405, + 0.03917811065912247, + 0.035567138344049454, + 0.02147873491048813, + -0.00106411415617913, + 0.01356453262269497, + 0.035829074680805206, + -0.014649694785475731, + 0.006127426866441965, + 0.029205841943621635, + -0.017203569412231445, + -0.01628679409623146, + -0.04501553997397423, + -0.011843239888548851, + -0.002666132291778922, + 0.0608065240085125, + -0.018054859712719917, + 0.01986970193684101, + 0.008648558519780636, + 0.006277104374021292, + 0.04759747534990311, + -0.02198389731347561, + -0.015454212203621864, + -0.008774849586188793, + 0.0009255454642698169, + -0.024752933531999588, + -0.0064922659657895565, + 0.018971635028719902, + 0.05807491019368172, + 0.018531957641243935, + -0.013031305745244026, + -0.013863887637853622, + 0.013938726857304573, + 0.011440981179475784, + -0.04299489036202431, + -0.03850456327199936, + -0.052312321960926056, + -0.0035805688239634037, + 0.037307143211364746, + 0.035080686211586, + 0.013723565265536308, + -0.019270991906523705, + 0.004775650799274445, + -0.02450970746576786, + 0.04430456832051277, + -0.024098094552755356, + -0.03393939509987831, + 0.03249875083565712, + -0.02443486824631691, + 0.04441682994365692, + -0.0211606714874506, + 0.015547760762274265, + -0.019888410344719887, + 0.03796198219060898, + 0.004162908066064119, + -0.0002945316082332283, + -0.0652594342827797, + -0.015145502053201199, + -0.026156160980463028, + -0.006375330500304699, + -0.009700979106128216, + -0.03887875750660896, + 0.04250843822956085, + 0.01714744046330452, + -0.006871137302368879, + -0.03008519858121872, + -0.015098728239536285, + 0.04041295126080513, + -0.027465838938951492, + 0.03137616813182831, + 0.018803248181939125, + -0.03603488206863403, + -0.023836158215999603, + 0.03390197828412056, + -0.08816010504961014, + -0.001109719043597579, + 0.0017762521747499704, + -0.02731616236269474, + 0.012058401480317116, + -0.0004183372075203806, + -0.056840069591999054, + -0.01034646388143301, + 0.004628311842679977, + 0.0063659753650426865, + 0.014649694785475731, + 0.014443888328969479, + -0.0029678260907530785, + -0.025613579899072647, + 0.05523103475570679, + 0.05358457937836647, + 0.010037753731012344, + 0.0234245453029871, + 0.011394207365810871, + 0.01504259929060936, + -0.02458454668521881, + -0.006408072076737881, + 0.032910361886024475, + -0.014733889140188694, + 0.026006482541561127, + -0.02306905947625637, + 0.0045183924958109856, + -0.0014441550010815263, + 0.02458454668521881, + 0.0063051688484847546, + -0.03418262302875519, + -0.012965822592377663, + -0.02155357412993908, + -0.042807795107364655, + 0.002963148755952716, + -0.04531489312648773, + 0.0005808777059428394, + 0.02997293882071972, + -0.017325181514024734, + -0.00997227057814598, + -0.019701315090060234, + -0.0022124219685792923, + -0.03375229984521866, + 0.013536468148231506, + 0.009654205292463303, + 0.025145836174488068, + -0.0005671377875842154, + -0.01171227265149355, + 0.008971300907433033, + -0.02739100158214569, + -0.0210109930485487, + -0.01831679604947567, + -0.008564365096390247, + 0.029093584045767784, + 0.030141327530145645, + 0.03988908231258392, + -0.026212289929389954, + -0.007928235456347466, + -0.008938559330999851, + 0.0004069359856657684, + -0.007914203219115734, + -0.037737466394901276, + 0.003718552878126502, + -0.012049047276377678, + 0.05616651847958565, + 0.0013108483981341124, + 0.010486787185072899, + -0.003105810144916177, + 0.05938458815217018, + 0.0030964554753154516, + -0.0421716645359993, + -0.005598877556622028, + -0.03261100873351097, + 0.046699412167072296, + -0.12004143744707108, + 0.020823895931243896, + -0.04535231366753578, + -0.015557115897536278, + -0.02220841497182846, + 0.0074511379934847355, + 0.0005928635946474969, + 0.016399051994085312, + -0.002116534858942032, + -0.01656743884086609, + 0.026605194434523582, + -0.04022585600614548, + 0.043705858290195465, + -0.012638402171432972, + 0.005692426115274429, + 0.02832648530602455, + -0.0162961483001709, + -0.02166583202779293, + 0.0166329238563776, + 0.010645819827914238, + -0.013592597097158432, + -0.0031642781104892492, + -0.020543251186609268, + -0.02486519142985344, + -0.0007957469206303358, + -0.029841972514986992, + -0.02673616074025631, + 0.003812101436778903, + -0.01015001256018877, + 0.055904585868120193, + -0.0018721394008025527, + -0.05092780292034149, + 0.01943937875330448, + 0.0664568543434143, + 0.003931375686079264, + -0.012731950730085373, + -0.004099762998521328, + 0.02972971275448799, + 0.027447130531072617, + 0.027578098699450493, + 0.03378971666097641, + -0.005552103742957115, + 0.04213424399495125, + 0.011590659618377686, + -0.008344526402652264, + 0.0019855669233947992, + -0.005191941745579243, + -0.036147139966487885, + -0.03921553120017052, + 0.04172263294458389, + 0.028270356357097626, + -0.017867764458060265, + -0.0424710176885128, + -0.01664227806031704, + 0.05141425505280495, + 0.0007624202989973128, + -0.03176907077431679, + 0.02900003455579281, + 0.04172263294458389, + 0.06686846911907196, + -0.008919849991798401, + 0.025931645184755325, + -0.0023001236841082573, + -0.05253683775663376, + 0.003933714237064123, + -0.004380408674478531, + -0.025314224883913994, + 0.00026091260951943696, + 0.011384852230548859, + -0.008625172078609467, + -0.020954864099621773, + -0.006295814178884029, + -0.019009055569767952, + -0.018971635028719902, + 0.006150813773274422, + -0.018775183707475662, + 0.026436805725097656, + -0.029243260622024536, + -0.02677358128130436, + -0.0061087170615792274, + 0.021179379895329475, + 0.033808428794145584, + -0.01245130505412817, + 0.03693294897675514, + -0.017353245988488197, + 0.002439277246594429, + -0.008877752348780632, + 0.005814039148390293, + 0.0236116424202919, + -0.014640340581536293, + -0.011833885684609413, + 0.0011038723168894649, + -0.002881293883547187, + 0.005566135980188847, + -0.009700979106128216, + 0.025650998577475548, + -0.015126792713999748, + -0.006436137016862631, + -0.036334238946437836, + -0.052125222980976105, + -0.028906486928462982, + 0.0020627444609999657, + 0.014752598479390144, + 0.009392269887030125, + 0.008134041912853718, + 0.04928135126829147, + 0.03526778519153595, + 0.027971001341938972, + 0.017409376800060272, + 0.006281781941652298, + -0.032760683447122574, + -0.01691356860101223, + -0.010954529047012329, + -0.019037120044231415, + -0.01531388983130455, + -0.027989711612462997, + 0.008208881132304668, + -0.0044037955813109875, + -0.01855066791176796, + -0.0072640408761799335, + -0.02011292800307274, + 0.0304781012237072, + 0.0014850824372842908, + -0.03358391299843788, + -0.0328168123960495, + -0.04250843822956085, + 0.030253585427999496, + -0.0029608099721372128, + -0.015435502864420414, + 0.020992282778024673, + 0.017128730192780495, + 0.0010418964084237814, + -0.019776152446866035, + 0.06574588268995285, + 0.015912599861621857, + -0.008227590471506119, + -0.03884133696556091, + 0.06237814202904701, + -0.04045037180185318, + -0.012993887066841125, + 0.029841972514986992, + 0.024734223261475563, + -0.008597107604146004, + 0.01250743493437767, + -0.04984264075756073, + 0.013283886946737766, + -0.024678094312548637, + -0.025688419118523598, + 0.0018417361425235868, + -0.007731783669441938, + 0.007769202813506126, + -0.007250008638948202, + -0.005701781250536442, + -0.032554879784584045, + -0.011730981990695, + 0.009663560427725315, + 0.04961812496185303, + 0.025463901460170746, + -0.03113294020295143, + -0.01268517691642046, + 0.0076148477382957935, + -0.057962652295827866, + 0.020880024880170822, + -0.017792925238609314, + 0.024191642180085182, + 0.011796466074883938, + 0.00718920212239027, + 0.006721459794789553, + -0.029916809871792793, + 0.040824566036462784, + 0.032947782427072525, + 0.005486619658768177, + -0.02742842026054859, + 0.046474896371364594, + 0.029392939060926437, + -0.0014418162172660232, + 0.015557115897536278, + 0.02871938981115818, + 0.07805687189102173, + 0.0008319969638250768, + 0.04868264123797417, + 0.027147775515913963, + 0.029168423265218735, + 0.008480171672999859, + -0.030665198341012, + 0.07805687189102173, + 0.014275501482188702, + 0.008999365381896496, + -0.039814241230487823, + -0.026006482541561127, + -0.01383582316339016, + 0.01940195821225643, + 0.030328424647450447, + -0.003891617525368929, + 0.06589556485414505, + -0.010533560998737812, + -0.026043903082609177, + -0.011628078296780586, + -0.024285191670060158, + 0.052312321960926056, + 0.0257632564753294, + -0.008054525591433048, + -0.012086465954780579, + -0.019626475870609283, + -0.035679399967193604, + -0.004476295784115791, + -0.012460660189390182, + 0.006763556506484747, + -0.027540678158402443, + 0.008129364810883999, + -0.020449701696634293, + -0.0011623401660472155, + -0.0008138719713315368, + 0.019738733768463135, + -0.007820654660463333, + 0.0421716645359993, + 0.00752129964530468, + -0.0023562528658658266, + -0.01738131232559681, + 0.030814876779913902, + -0.03418262302875519, + 0.03667101263999939, + -0.040001340210437775, + -0.008756139315664768, + 0.04905683547258377, + 0.003480004146695137, + 0.008250977843999863, + 0.01702582649886608, + 0.005856136325746775, + -0.035136815160512924, + -0.04576392471790314, + -0.031114231795072556, + 0.00533694215118885, + 0.021890349686145782, + -0.010299690067768097, + 0.0010594368213787675, + 0.036577463150024414, + 0.009387591853737831, + -0.04894457384943962, + -0.015370018780231476, + 0.04056262969970703, + 0.0472232848405838, + 0.031151650473475456, + 0.04804651066660881 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换气缸套", + "编号": "MT010", + "内容": "表 4.12 MT010 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT010030301气缸套更换气缸套4A/32000hJY级
安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。
安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。
序号名称规格/型号数量及单位备注
1液压压装机HYDRA-PRESS-50T1台带压力与位移监控
2缸套拔出器OEM-MAN-BW-LINER-PULL1套螺纹顶压式
3冷却水腔密封测试仪LeakTest-CT3001台0.3 MPa保压
4深度规0- 300 mm1把测量缸套凸肩高度
2)备品备件
名称规格/型号消耗数量备注
1气缸套总成MAN5L35MC-LINER-ASSY1件含0形圈、定位销
2缸套水封0形圈Viton Φ380×5.02个耐高温氟橡胶
3缸套油封环NBR Φ352×3.01个下部密封
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1装配润滑脂Kluber Isoflex LDS18 Special A20g涂缸套外壁
2密封胶Loctite 518少量水腔法兰面(如适用)
3清洗剂Brulin 815GD300mL清洁缸体座孔
4)人力人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工监督压装对中
\n\n
修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。
3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm;
2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.12 MT010 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT010030301气缸套更换气缸套4A/32000hJY级
安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。
安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。
序号名称规格/型号数量及单位备注
1液压压装机HYDRA-PRESS-50T1台带压力与位移监控
2缸套拔出器OEM-MAN-BW-LINER-PULL1套螺纹顶压式
3冷却水腔密封测试仪LeakTest-CT3001台0.3 MPa保压
4深度规0- 300 mm1把测量缸套凸肩高度
2)备品备件
名称规格/型号消耗数量备注
1气缸套总成MAN5L35MC-LINER-ASSY1件含0形圈、定位销
2缸套水封0形圈Viton Φ380×5.02个耐高温氟橡胶
3缸套油封环NBR Φ352×3.01个下部密封
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1装配润滑脂Kluber Isoflex LDS18 Special A20g涂缸套外壁
2密封胶Loctite 518少量水腔法兰面(如适用)
3清洗剂Brulin 815GD300mL清洁缸体座孔
4)人力人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工监督压装对中
\\n\\n
修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。
3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm;
2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1b7daafc-9c60-4d7d-acbf-581d29ddb984.pdf#page=38\"}]", + "embedding": [ + -0.06527852267026901, + -0.00944745447486639, + -0.04074661806225777, + -0.022338151931762695, + -0.028041914105415344, + -0.03485209494829178, + 0.007368156220763922, + 0.024093154817819595, + -0.018427543342113495, + -0.019743796437978745, + 0.02333010919392109, + 0.0035028548445552588, + 0.03242942690849304, + 0.030540887266397476, + 0.011665054596960545, + -0.039334986358881, + -0.008698716759681702, + 0.00971928983926773, + -0.002715964335948229, + -0.012504404410719872, + 0.0014366712421178818, + -0.029854146763682365, + 0.022032933309674263, + 0.003116563195362687, + -0.005775298923254013, + -0.002663505030795932, + 0.01305761281400919, + -0.003607773454859853, + 0.011254917830228806, + -0.03948759287595749, + -0.012952693738043308, + 0.006958019454032183, + -0.05436697602272034, + -0.039563897997140884, + -0.021346192806959152, + -0.057724375277757645, + 0.003328785067424178, + -0.018084174022078514, + -0.04047955200076103, + 0.04261608049273491, + 0.00991005077958107, + -0.0638287365436554, + 0.020831136032938957, + -0.04730881005525589, + -0.0035886974073946476, + -0.03159007430076599, + 0.005932677071541548, + -0.019591188058257103, + -0.004897797014564276, + -0.0040322174318134785, + 0.0014092492638155818, + -0.009156543761491776, + 0.016329169273376465, + -0.05829666182398796, + -0.02333010919392109, + 0.03998357430100441, + -0.02329195849597454, + -0.02733609825372696, + -0.04585902392864227, + -0.022929511964321136, + -0.04677467793226242, + 0.01899028941988945, + 0.018971214070916176, + 0.005837296601384878, + 0.05463404208421707, + 0.07264190912246704, + 0.01850384846329689, + 0.018084174022078514, + -0.028423437848687172, + -0.07664790004491806, + -0.0098146703094244, + 0.01674884371459484, + -0.028041914105415344, + -0.01953396014869213, + -0.05696133151650429, + 0.030788877978920937, + 0.07111582159996033, + -0.023959621787071228, + 0.03338323161005974, + 0.028843112289905548, + 0.0497124008834362, + -0.008250427432358265, + 0.01515598688274622, + 0.027851153165102005, + 0.0074158464558422565, + 0.009647754020988941, + 0.004315975122153759, + -0.003512392984703183, + -0.04398956149816513, + 0.0035314690321683884, + -0.027317021042108536, + 0.024760819971561432, + 0.013305602595210075, + 0.021613258868455887, + -0.029320016503334045, + 0.02132711559534073, + 0.026439519599080086, + 0.0020375694148242474, + 0.009366380982100964, + -0.05261197313666344, + 0.008288579992949963, + 0.025523865595459938, + 0.05463404208421707, + -0.028080066666007042, + 0.025161419063806534, + -0.042692385613918304, + 0.09362565726041794, + 0.0379805788397789, + 0.000929961446672678, + -0.018236782401800156, + 0.033078014850616455, + 0.048911202698946, + 0.03847656026482582, + -0.006566958501935005, + -0.012733318842947483, + -0.03313524276018143, + -0.010482334531843662, + -0.040937379002571106, + 0.017120828852057457, + -0.00467603700235486, + -0.016090717166662216, + -0.010501410812139511, + 0.04135705530643463, + -0.04677467793226242, + 0.014717236161231995, + -0.05570230633020401, + 0.029568005353212357, + -0.012513943016529083, + -0.02558109350502491, + -0.034928400069475174, + 0.0032262508757412434, + 0.05169631913304329, + -0.019276432693004608, + 0.03578682616353035, + -0.023253805935382843, + -0.0014867461286485195, + -0.027755772694945335, + -0.00900393445044756, + -0.002286751288920641, + 0.00522209145128727, + -0.024226687848567963, + 0.010825704783201218, + -0.018656456843018532, + -0.000894193712156266, + -0.005689456593245268, + 0.04280684143304825, + 0.032887253910303116, + -0.013820658437907696, + 0.030388278886675835, + -0.011569674126803875, + 0.007010478526353836, + 0.04814815893769264, + -0.0014199796132743359, + -0.012122882530093193, + 0.026840118691325188, + -0.01303853653371334, + -0.025714626535773277, + 0.026687508448958397, + -0.02401685155928135, + -0.0037508446257561445, + 0.0062903547659516335, + 0.04257792606949806, + -0.03756090626120567, + -0.004370818845927715, + -0.0032262508757412434, + -0.013916038908064365, + 0.03906792029738426, + -0.015251368284225464, + -0.01704452373087406, + -0.00515055563300848, + 0.017759880051016808, + 0.031075019389390945, + 0.000602686544880271, + 0.032830022275447845, + 0.03716030716896057, + 0.022662445902824402, + 0.015690118074417114, + 0.011312146671116352, + 0.04192933812737465, + -0.004120444413274527, + -0.007244161330163479, + 0.040250640362501144, + -0.006862638518214226, + -0.03738921880722046, + -0.014860306866466999, + 0.04955979064106941, + 0.008407805114984512, + -0.051581863313913345, + 0.009824207983911037, + -0.006309431046247482, + -0.04658391699194908, + 0.003526699962094426, + 0.023807013407349586, + 0.021994780749082565, + 0.048453375697135925, + -0.02382608875632286, + 0.017759880051016808, + -5.737743049394339e-05, + 0.028976645320653915, + 0.04070846736431122, + -0.005203015170991421, + -0.006862638518214226, + 0.035958509892225266, + 0.028862187638878822, + -0.019743796437978745, + 0.015508895739912987, + -0.006295123603194952, + -0.04089922830462456, + 0.024035926908254623, + -0.02661120519042015, + -0.0003242942621000111, + -0.0067004915326833725, + -0.025180494412779808, + -0.04788109287619591, + -0.005446235649287701, + 0.010310649871826172, + 0.004306436982005835, + 0.002200908726081252, + -0.0010324956383556128, + -0.00737292505800724, + -0.009070700965821743, + 0.055435240268707275, + 0.00839349813759327, + -0.009871898218989372, + 0.004330282099545002, + -0.022204618901014328, + 0.052650123834609985, + 0.05501556769013405, + -0.009628677740693092, + -0.014698159880936146, + -0.007201239932328463, + 0.029224634170532227, + -0.04017433524131775, + -0.028938492760062218, + 0.014516936615109444, + 0.03202882781624794, + -0.03584405407309532, + 0.039334986358881, + 0.00788798090070486, + -0.011169075965881348, + -0.006676646415144205, + -0.01796017959713936, + 0.004711804911494255, + 0.02197570540010929, + -0.01845615729689598, + 0.0010634943610057235, + 0.02983507141470909, + 0.041853033006191254, + -0.021079126745462418, + 0.010463258251547813, + -0.009786056354641914, + -0.021060049533843994, + -0.030922411009669304, + -0.004547273274511099, + 0.0214224960654974, + -0.0051457867957651615, + 0.0185515396296978, + -0.01836077682673931, + -0.013105303049087524, + -0.02611522562801838, + 0.016081180423498154, + 0.09522805362939835, + 0.003920145332813263, + 0.026973651722073555, + -0.012857313267886639, + 0.04238716512918472, + -0.029300939291715622, + 0.028385285288095474, + -0.017559580504894257, + 0.030769800767302513, + -0.01835124008357525, + 0.008569952100515366, + -0.020926516503095627, + 0.025180494412779808, + 0.03651171922683716, + 0.06230264902114868, + 0.00011997098772553727, + -0.006094824522733688, + 0.06234079971909523, + 0.04292129725217819, + -0.017931563779711723, + -0.007234623190015554, + 0.0379805788397789, + 0.0022879436146467924, + -0.003254865063354373, + -0.03769443929195404, + -0.10720786452293396, + -0.03021659329533577, + 0.0022676752414554358, + -0.0785173624753952, + 0.0006140129989944398, + -0.04028879106044769, + 0.056503504514694214, + -0.007992899045348167, + 0.01447878498584032, + -0.009504683315753937, + 0.017101753503084183, + -0.16848039627075195, + 0.030178440734744072, + -0.0428449921309948, + 0.017292514443397522, + 0.003774689743295312, + -0.012809623032808304, + -0.027202565222978592, + 0.0017871952150017023, + -0.012246876955032349, + -0.029796918854117393, + 0.016529468819499016, + -0.056465353816747665, + 0.006514499429613352, + 0.00021490456128958613, + -0.013028998859226704, + -0.011197689920663834, + -0.032582033425569534, + 0.013830196112394333, + 0.021460648626089096, + -0.029072025790810585, + -0.030922411009669304, + -0.020964669063687325, + 0.055244479328393936, + -0.040098030120134354, + -0.03914422541856766, + -0.003271556692197919, + -0.008803634904325008, + -0.03443241864442825, + -0.01820816844701767, + 0.04105183854699135, + -0.01909520849585533, + 0.0015248983399942517, + -0.005059944000095129, + 0.046698372811079025, + 0.009638216346502304, + 0.018274934962391853, + -0.004511505365371704, + 0.046202391386032104, + -0.004897797014564276, + 0.03626372665166855, + 0.02758408710360527, + 0.03899161517620087, + 0.01405910961329937, + 0.005632228218019009, + 0.0016965835820883512, + -0.03569144383072853, + 0.003595850896090269, + -0.014144952408969402, + 0.0027183489874005318, + -0.001656046719290316, + 0.0015499357832595706, + 0.0020339926704764366, + -0.008326731622219086, + -0.04471445456147194, + 0.0066861845552921295, + -0.019991787150502205, + -0.02397869899868965, + 0.03557698801159859, + -0.01742604747414589, + 0.02167048677802086, + -0.029911376535892487, + -0.07134473323822021, + 0.0252949520945549, + -0.015690118074417114, + -0.034871168434619904, + -0.004103752784430981, + -0.04360803961753845, + -0.08988673985004425, + 0.012304105795919895, + -0.00341701228171587, + 0.029758766293525696, + 0.007806907407939434, + 0.03410812467336655, + -0.04154781624674797, + -0.032582033425569534, + 0.036931391805410385, + -0.0454011969268322, + 8.241485193138942e-05, + -0.06306569278240204, + -0.13162530958652496, + 0.01713036745786667, + 0.031170399859547615, + -0.023559022694826126, + -0.03681693598628044, + 0.011493369936943054, + -0.049483489245176315, + 0.01577596180140972, + 0.012552095577120781, + 0.01296223234385252, + 0.2496684193611145, + 0.03773258998990059, + 0.00657649664208293, + -0.019505346193909645, + 0.05738100782036781, + -0.06447732448577881, + -0.04383695125579834, + -0.0515437088906765, + 0.011273994110524654, + -0.017750341445207596, + -0.03998357430100441, + 0.023520871996879578, + -0.0006468000938184559, + -0.00810735672712326, + 0.019648415967822075, + -0.005551154725253582, + 0.004764263983815908, + 0.01626240275800228, + 0.10247698426246643, + -0.027660392224788666, + 0.007148780860006809, + 0.0017764648655429482, + -0.02861419878900051, + 0.023654405027627945, + -0.0331924706697464, + -0.027107184752821922, + -0.03040735423564911, + 0.00737292505800724, + -0.004726111888885498, + 0.01748327538371086, + -0.014946149662137032, + 0.05539708957076073, + 0.029014797881245613, + -0.048110004514455795, + -0.05513002350926399, + 0.03162822872400284, + 0.014412018470466137, + -0.0005743704386986792, + 0.004597347695380449, + 0.016968220472335815, + -1.4465445929090492e-05, + -0.02163233421742916, + 0.04807185381650925, + -0.021460648626089096, + 0.0038939155638217926, + -0.032486654818058014, + -0.010549101047217846, + 0.010654020123183727, + 0.03637818619608879, + 0.03685508668422699, + -0.03246757760643959, + -0.004273053724318743, + -0.023253805935382843, + 0.001691814512014389, + 0.007015247829258442, + 0.0012387563474476337, + -0.00336216832511127, + -0.023807013407349586, + 0.02376886084675789, + 0.0001873335859272629, + 0.010463258251547813, + -0.0042158253490924835, + -0.06836885958909988, + -0.015203677117824554, + 0.029072025790810585, + -0.05169631913304329, + -0.051581863313913345, + -0.00718693295493722, + -0.021804019808769226, + 0.001235179603099823, + 0.0003350245824549347, + 0.011722283437848091, + 0.0030879490077495575, + 0.0410899892449379, + 0.016567621380090714, + 0.0045353504829108715, + -0.02783207781612873, + 0.06527852267026901, + -6.808912530686939e-06, + 0.033860135823488235, + -0.033116165548563004, + -0.011436141096055508, + -0.03172360733151436, + -0.0029973373748362064, + 0.026344139128923416, + -0.03027382306754589, + 0.008279041387140751, + -0.02088836580514908, + -0.013925576582551003, + -0.055587850511074066, + 0.008808404207229614, + -0.0019409965025261045, + -0.008460264652967453, + 0.008431650698184967, + -0.014793540351092815, + -0.01713036745786667, + 0.004821492359042168, + -0.06211188808083534, + -0.014164028689265251, + 0.02470359206199646, + -0.024779895320534706, + -0.053375016897916794, + 0.016863301396369934, + -0.07271821796894073, + 0.02132711559534073, + 0.05528263375163078, + 0.013877886347472668, + 0.005331778898835182, + 0.002024454530328512, + 0.034833017736673355, + 0.05871633440256119, + 0.012714242562651634, + -0.05902155488729477, + -0.02216646634042263, + -0.013820658437907696, + 0.0027827308513224125, + 0.03200975060462952, + 0.014173566363751888, + -0.008011975325644016, + 0.035424377769231796, + -0.04658391699194908, + 0.03340230882167816, + 0.004614039324223995, + 0.025352180004119873, + -0.0024441294372081757, + -0.03321154788136482, + -0.023406414315104485, + -0.018818603828549385, + -0.044256627559661865, + 0.052650123834609985, + -0.058563727885484695, + -0.015899956226348877, + 0.02645859494805336, + 0.022815054282546043, + 0.060166120529174805, + 0.01174135971814394, + 0.01413541380316019, + 0.04784293845295906, + 0.031017791479825974, + -0.00910885352641344, + -0.0031570999417454004, + -0.022052008658647537, + -0.024818047881126404, + -0.041967492550611496, + 0.023272881284356117, + -0.07058168947696686, + 0.012237339280545712, + 0.0069914027117192745, + -0.03324969857931137, + 0.07531256973743439, + 0.007916594855487347, + 0.03241034969687462, + -0.005608383100479841, + -0.05516817420721054, + -0.010749400593340397, + 0.0024798971135169268, + 0.01486984547227621, + 0.0062760477885603905, + -0.0418911874294281, + -0.036645252257585526, + -0.00908023864030838, + 0.04341727867722511, + 0.03489024564623833, + 0.039563897997140884, + 0.04471445456147194, + 0.04212009906768799, + 0.011903506703674793, + 0.07897518575191498, + 0.026859194040298462, + -0.02367348037660122, + 0.07714387774467468, + -0.00032012135488912463, + -0.02397869899868965, + 0.021804019808769226, + 0.008059665560722351, + 0.0357486717402935, + 0.02104097418487072, + 0.020487766712903976, + -0.02264336869120598, + 0.06089101359248161, + 0.02128896303474903, + 0.039754658937454224, + -0.05993720889091492, + -0.016147946938872337, + -0.039525747299194336, + -0.023253805935382843, + -0.03651171922683716, + -0.006328506860882044, + 0.008383960463106632, + 0.044294778257608414, + -0.03729384019970894, + 0.10713156312704086, + -0.04273053631186485, + -0.005617921240627766, + 0.007163087837398052, + 0.03323062136769295, + 0.08286672085523605, + 0.02636321447789669, + -0.011159537360072136, + -0.011455217376351357, + 0.014345251955091953, + 0.014850769191980362, + -0.012847775593400002, + -0.013477287255227566, + -0.014488322660326958, + -0.028881264850497246, + -0.008360114879906178, + 0.015489819459617138, + 0.01100692804902792, + -0.022967662662267685, + -0.006819717586040497, + 0.0009424801683053374, + -0.015327672474086285, + -0.001620279042981565, + -0.009209003299474716, + -0.00737292505800724, + 0.00257527781650424, + 0.06474439054727554, + -0.01781710796058178, + -0.013124379329383373, + -0.002916263649240136, + -0.0025085115339607, + 0.04349358379840851, + -0.011436141096055508, + -0.0016155099729076028, + -0.010253421030938625, + -0.03418442979454994, + -0.04608793556690216, + 0.035214539617300034, + -0.01953396014869213, + 0.013505902141332626, + 0.017550041899085045, + -0.08599520474672318, + 0.007382463198155165, + 0.03315431997179985, + 0.008207505568861961, + -0.007649529259651899, + 0.03344045951962471, + 0.016529468819499016, + 0.009156543761491776, + -0.006414349656552076, + -0.0007672181818634272, + 0.041662272065877914, + 0.07004755735397339, + -0.013772967271506786, + 0.026248758658766747, + -0.0558549165725708, + 0.0122278006747365, + 0.012914542108774185, + 0.04017433524131775, + -0.053832847625017166, + 0.01577596180140972, + 0.03456595167517662, + 0.00023845165560487658, + -0.030827030539512634, + 0.017836183309555054, + -0.007277544587850571, + -0.012084729969501495, + -0.05932677164673805, + -0.007787831127643585, + 0.0010056698229163885, + 0.036836013197898865, + -0.00536993145942688, + -0.013629896566271782, + 0.024760819971561432, + -0.030426431447267532, + 0.04994131624698639, + -0.0009675176115706563, + -0.011502907611429691, + -0.02680196613073349, + -0.015508895739912987, + -0.025066038593649864, + -0.02031608112156391, + 0.000935326621402055, + 0.00601851986721158, + 0.0060900552198290825, + 0.01100692804902792, + -0.003219097387045622, + -0.0124471765011549, + 0.009485607035458088, + -0.035996660590171814, + -0.03416535258293152, + -0.04135705530643463, + -0.012437638826668262, + 0.013467749580740929, + 0.014230795204639435, + 0.03895346075296402, + 0.006404811516404152, + 0.006271278485655785, + -0.016186097636818886, + 0.027355173602700233, + -0.016176560893654823, + -0.03557698801159859, + 0.03313524276018143, + -0.013830196112394333, + 0.02558109350502491, + -0.007024785969406366, + 0.01796971634030342, + -0.013982805423438549, + 0.04692728444933891, + 0.01344867330044508, + 0.006767258048057556, + -0.04158596694469452, + -0.01762634702026844, + -0.032238662242889404, + 0.0012447176268324256, + -0.003436088329181075, + -0.012285029515624046, + 0.059288620948791504, + 0.019648415967822075, + -0.0034790097270160913, + -0.07351941615343094, + -0.021784942597150803, + 0.049521639943122864, + -0.007420615758746862, + 0.011140461079776287, + 0.01205611601471901, + -0.007167856674641371, + -0.020182548090815544, + 0.03199067339301109, + -0.06272232532501221, + -0.030769800767302513, + -0.01457416545599699, + -0.0270881075412035, + -0.0012280259979888797, + 0.013639435172080994, + -0.051772624254226685, + 0.01383973378688097, + -0.02626783400774002, + -0.017406970262527466, + 0.008155046962201595, + 0.02119358256459236, + 0.015537509694695473, + -0.02426484040915966, + 0.04311205819249153, + 0.0092757698148489, + 0.021403420716524124, + 0.003705538809299469, + 0.01445017009973526, + -0.013477287255227566, + -0.013076689094305038, + -0.015194139443337917, + 0.02401685155928135, + -0.02010624296963215, + 0.02993045188486576, + -0.040784772485494614, + -0.004616423975676298, + -0.006147283595055342, + 0.021174507215619087, + 0.033078014850616455, + -0.04849153012037277, + 0.005975598469376564, + -0.008011975325644016, + -0.025447560474276543, + -0.0010038814507424831, + -0.03118947707116604, + -0.000957383424974978, + 0.022299999371170998, + -0.02464636228978634, + -0.004358896054327488, + -0.0187899898737669, + -0.02201385609805584, + -0.030445506796240807, + 0.02245260775089264, + 0.007153549697250128, + 0.037866123020648956, + -0.008469803258776665, + 0.004509120713919401, + -0.013400983065366745, + -0.011388450860977173, + -0.019467193633317947, + 0.015728270635008812, + 0.0015785499708727002, + 0.029453547671437263, + 0.02210923843085766, + 0.02611522562801838, + -0.02577185444533825, + 0.006590803619474173, + -0.004005987662822008, + 0.0006181859062053263, + -0.007611376699060202, + -0.03565329313278198, + 0.006352351978421211, + -0.0252949520945549, + 0.009089777246117592, + 0.012370872311294079, + -0.013944652862846851, + -0.005117172375321388, + 0.06157775595784187, + 0.007039092946797609, + -0.04273053631186485, + -0.016910990700125694, + -0.008574721403419971, + 0.02890034019947052, + -0.15398253500461578, + 0.013334216549992561, + -0.03841933235526085, + -0.02304396778345108, + -0.02651582472026348, + -0.013362830504775047, + -0.01932412199676037, + 0.012370872311294079, + 0.001378250541165471, + -0.01673930697143078, + 0.009929127059876919, + -0.030235670506954193, + 0.04646945744752884, + 0.005846834741532803, + 0.010386954061686993, + 0.037312913686037064, + -0.014030495658516884, + -0.0015690119471400976, + 0.033669374883174896, + 0.02949170023202896, + -0.0049597942270338535, + -0.0019016519654542208, + -0.020773908123373985, + -0.01738789491355419, + 0.03666432574391365, + -0.04700358957052231, + -0.018236782401800156, + -0.001139202737249434, + -0.003972604405134916, + 0.019839176908135414, + -0.0392586812376976, + -0.03443241864442825, + 0.015318134799599648, + 0.05669426545500755, + -0.0015034376410767436, + -0.044256627559661865, + 0.01000543124973774, + 0.04261608049273491, + 0.01610979437828064, + -0.0026158145628869534, + 0.029663385823369026, + 0.0005213149124756455, + 0.033707525581121445, + 0.03569144383072853, + 0.003946375101804733, + 0.027717620134353638, + -0.019858254119753838, + -0.031799912452697754, + -0.04017433524131775, + 0.013191145844757557, + 0.022319074720144272, + -0.012246876955032349, + -0.038552865386009216, + -0.00722508504986763, + 0.03265833854675293, + 0.023711632937192917, + -0.041471511125564575, + 0.022929511964321136, + 0.03265833854675293, + 0.07088690996170044, + -0.010053121484816074, + 0.004955025389790535, + -0.015737809240818024, + -0.0646299347281456, + -0.019896406680345535, + 0.008584260009229183, + -0.027412401512265205, + -0.0009567872621119022, + 0.025466637685894966, + -0.010234344750642776, + -0.014030495658516884, + -0.03071257285773754, + -0.031799912452697754, + -0.005489157047122717, + 0.010997390374541283, + -0.03586312755942345, + 0.02567647397518158, + -0.05017022788524628, + -0.036740630865097046, + -0.01425940915942192, + 0.012876389548182487, + 0.03403181955218315, + -0.02382608875632286, + 0.0031904831994324923, + -0.02085021324455738, + 0.002594354096800089, + -0.022090161219239235, + -0.0031070250552147627, + 0.04402771219611168, + -0.007601838558912277, + -0.03162822872400284, + -0.012676090002059937, + 0.01625286415219307, + 0.02519957162439823, + 0.0015427821781486273, + 0.03305893763899803, + -0.01152198389172554, + -0.039334986358881, + -0.029415396973490715, + -0.04578271880745888, + -0.050208382308483124, + -0.02357809990644455, + 0.023539947345852852, + 0.00733477296307683, + -0.011493369936943054, + 0.06337091326713562, + 0.0030497966799885035, + 0.01437386590987444, + 0.019305046647787094, + -0.0016512777656316757, + -0.03164730221033096, + -0.019409963861107826, + -0.0041252137161791325, + -0.03269648924469948, + -0.001218487974256277, + -0.0090563939884305, + -0.019362274557352066, + -0.016825148835778236, + -0.010167578235268593, + -0.03496655076742172, + -0.01581411436200142, + 0.03777074068784714, + 0.008403036743402481, + -0.0335930697619915, + -0.02699272707104683, + -0.03460410609841347, + 0.039182376116514206, + -0.006876945961266756, + -0.008512724190950394, + 0.04131890460848808, + 0.010873395949602127, + 0.03403181955218315, + -0.006581265479326248, + 0.06585080921649933, + 0.012800084426999092, + -0.012857313267886639, + -0.0375036746263504, + 0.057724375277757645, + -0.04799554869532585, + -0.0318380668759346, + 0.038495633751153946, + 0.019171513617038727, + 0.0013186376309022307, + -0.01654854416847229, + -0.034394267946481705, + 0.0014009034493938088, + -0.01791248843073845, + -0.017807569354772568, + -0.0052507054060697556, + -0.010549101047217846, + 5.443404370453209e-05, + -0.013639435172080994, + 0.0008655795245431364, + -0.019467193633317947, + -0.029033873230218887, + 0.01161736436188221, + 0.058945249766111374, + -0.00969067495316267, + -0.0253331046551466, + 0.010043583810329437, + 0.012237339280545712, + -0.04570641368627548, + 0.01688237674534321, + -0.02670658566057682, + 0.03080795332789421, + 0.015346748754382133, + 0.005574999842792749, + -0.007554148323833942, + -0.04227270931005478, + 0.024722667410969734, + 0.014516936615109444, + 0.0075255343690514565, + -0.0309987161308527, + 0.03637818619608879, + 0.017588194459676743, + -0.0339936688542366, + 0.02651582472026348, + -6.169936386868358e-05, + 0.07195517420768738, + 0.006214050110429525, + 0.033898286521434784, + 0.017845721915364265, + 0.02836620807647705, + -0.014097262173891068, + -0.021021898835897446, + 0.048453375697135925, + -0.006729105953127146, + 0.021651409566402435, + -0.03803780674934387, + -0.017368817701935768, + 0.0027445785235613585, + 0.01830354891717434, + 0.01635778322815895, + 0.0009090969106182456, + 0.06813994795084, + -0.022681521251797676, + -0.010606329888105392, + -0.011483831331133842, + -0.011474293656647205, + 0.041471511125564575, + 0.04589717462658882, + -0.004583040717989206, + -0.0005245936335995793, + 0.023349186405539513, + -0.028671426698565483, + -0.043646190315485, + -0.01447878498584032, + 0.03174268454313278, + -0.020812060683965683, + 0.029796918854117393, + -0.031456541270017624, + -0.008646257221698761, + -0.011264456436038017, + 0.02041146159172058, + 0.01626240275800228, + 0.04398956149816513, + 0.009976817294955254, + 0.006280816625803709, + -0.012389947660267353, + 0.008431650698184967, + -0.0056656114757061005, + 0.03147561848163605, + -0.04047955200076103, + -0.00257527781650424, + 0.046736523509025574, + -0.012342257425189018, + -0.017073137685656548, + 0.003200021106749773, + -0.03529084473848343, + -0.03729384019970894, + -0.033516764640808105, + -0.025161419063806534, + -0.011064156889915466, + 0.01678699627518654, + -0.009747903794050217, + -0.022528912872076035, + 0.04051770642399788, + 0.013906500302255154, + -0.031208552420139313, + 0.007535072509199381, + 0.019991787150502205, + 0.0248562004417181, + -0.0016930067213252187, + 0.03929683193564415 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检查排气阀杆密封面磨损", + "编号": "MT011", + "内容": "表 4.13 MT011 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT011040102阀杆检查排气阀杆密封面磨损6M/4000hJY级
安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。
安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。
\n\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1排气阀专用吊具OEM-MAN-BW-VALVE-HOOK1套带隔热手柄
2红外测温仪Fluke 62 Max+1台测量阀杆温度
3密封面检测平板Optical Flat λ/101块用于着色法检查
4着色剂套装Dykem Steel Blue +Developer1套检查接触印痕
2)备品备件
名称规格/型号消耗数量备注
本项目为检查类,无备件消耗(但可能触发MT012)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温清洁剂CRC Brakleen HT100mL清除积碳
2无绒布Kimwipe EX-L5张防刮伤密封面
3防锈油CRC 3-3630mL检查后临时防护
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座);
3)记录检查结果于《排气阀状态档案》。
验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm;
2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。
页码:1/1版本号:1
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.13 MT011 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT011040102阀杆检查排气阀杆密封面磨损6M/4000hJY级
安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。
安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1排气阀专用吊具OEM-MAN-BW-VALVE-HOOK1套带隔热手柄
2红外测温仪Fluke 62 Max+1台测量阀杆温度
3密封面检测平板Optical Flat λ/101块用于着色法检查
4着色剂套装Dykem Steel Blue +Developer1套检查接触印痕
2)备品备件
名称规格/型号消耗数量备注
本项目为检查类,无备件消耗(但可能触发MT012)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温清洁剂CRC Brakleen HT100mL清除积碳
2无绒布Kimwipe EX-L5张防刮伤密封面
3防锈油CRC 3-3630mL检查后临时防护
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座);
3)记录检查结果于《排气阀状态档案》。
验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm;
2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。
页码:1/1版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_934fd518-5e85-488e-be09-aa2728a92334.pdf#page=39\"}]", + "embedding": [ + -0.029992084950208664, + 0.0031102902721613646, + -0.04147053882479668, + -0.017782343551516533, + -0.02169797755777836, + -0.011432168073952198, + 0.034509412944316864, + -0.0067019350826740265, + -0.04284054785966873, + 0.009381783194839954, + -0.013089138083159924, + 0.00914110615849495, + 0.01279292069375515, + 0.04187783598899841, + -0.008294107392430305, + 0.011830211617052555, + -0.014366579242050648, + -0.01519969291985035, + 0.027881531044840813, + -0.037582673132419586, + -0.02404920943081379, + 0.027974098920822144, + -0.0005730547709390521, + -0.015375572256743908, + 0.043062709271907806, + 0.05717009678483009, + -0.005688313860446215, + -0.005660543218255043, + 0.01419069990515709, + 0.003871663473546505, + 0.009196647442877293, + 0.012200484052300453, + -0.022808795794844627, + -0.03478711470961571, + -0.0027006762102246284, + -0.05420791730284691, + 0.04476596415042877, + -0.005873450078070164, + -0.0341576524078846, + 0.0529860183596611, + -0.0072110602632164955, + -0.04920923709869385, + 0.030621549114584923, + -0.032491426914930344, + 0.00763687351718545, + -0.023012446239590645, + 0.003843893064185977, + -0.036916185170412064, + 0.018819108605384827, + -5.047857848694548e-05, + 0.0024877693504095078, + -0.025419218465685844, + 0.01195054966956377, + -0.03269507735967636, + 0.030269790440797806, + 0.03765672817826271, + 0.019994724541902542, + -0.031954530626535416, + -0.0553927905857563, + -0.015930980443954468, + -0.008622724562883377, + 0.05339331924915314, + 0.0018201215425506234, + -0.00633629085496068, + 0.022808795794844627, + 0.0647236630320549, + -0.013838940300047398, + -0.008187654428184032, + -0.011941293254494667, + -0.024937864392995834, + -0.0032028586138039827, + 0.022234873846173286, + 0.010182498022913933, + 0.003647185629233718, + -0.037878893315792084, + 0.04058188199996948, + 0.027677880600094795, + 0.026289358735084534, + 0.01783788576722145, + 0.03288021311163902, + 0.03413913771510124, + 0.019735531881451607, + 0.005281013902276754, + 0.0020665843039751053, + -0.001993686892092228, + 0.013570493087172508, + -0.009497493505477905, + 0.003968860022723675, + -0.04250730201601982, + -0.04598786309361458, + 0.0017935081850737333, + 0.012996570207178593, + 0.017152881249785423, + 0.015116381458938122, + -0.006303892005234957, + -0.00020162503642495722, + 0.017375044524669647, + -0.04276649281382561, + 0.05650360882282257, + -0.020161345601081848, + 0.02106851525604725, + 0.040322691202163696, + 0.05957687273621559, + -0.03478711470961571, + 0.04435866326093674, + -0.021457301452755928, + 0.02495637722313404, + 0.029214512556791306, + -0.009224417619407177, + -0.023456772789359093, + -0.011441425420343876, + 0.02780747599899769, + 0.0008851830498315394, + 0.01358900684863329, + -0.01115446351468563, + -0.007604474667459726, + 0.012607784010469913, + -0.034213192760944366, + -0.013135422952473164, + -0.0031912873964756727, + 0.01517192181199789, + 0.014459147118031979, + 0.014866447076201439, + -0.04150756448507309, + -0.04206297546625137, + 0.009516007266938686, + 0.05746631696820259, + -0.003337082453072071, + 0.008511642925441265, + 0.024678673595190048, + -0.001998315332457423, + 0.016856662929058075, + -0.0355091467499733, + 0.01195054966956377, + -0.004635350778698921, + -0.02308649942278862, + -0.011098923161625862, + 0.017948966473340988, + 0.012931772507727146, + -0.016384564340114594, + 0.005679056979715824, + 0.025067459791898727, + -0.027048418298363686, + -0.006364061497151852, + 0.002668277360498905, + -0.003987373784184456, + 0.0033347681164741516, + -0.011969063431024551, + 0.026474494487047195, + -0.030473439022898674, + 0.004348389338701963, + -0.011339600197970867, + 0.019902154803276062, + 0.0047533754259347916, + 0.007386939600110054, + -0.013376099988818169, + -0.024308400228619576, + 0.002818700624629855, + -0.02140175923705101, + -0.019513368606567383, + 0.04265541210770607, + 0.09005030989646912, + -0.036916185170412064, + 0.00592899089679122, + 0.03189899027347565, + -0.008863401599228382, + 0.03260250762104988, + 0.0007127748685888946, + 0.003024664707481861, + 0.005378210451453924, + 0.06368689984083176, + -0.031010335311293602, + 0.005438379477709532, + 0.00796086248010397, + 0.023493800312280655, + 0.02029094099998474, + 0.02601165510714054, + -0.006475143134593964, + 0.059799034148454666, + -0.014662797562777996, + -0.0084653589874506, + 0.02991803176701069, + 0.013033597730100155, + -0.011330343782901764, + -0.005058850161731243, + 0.010025132447481155, + 0.04198892042040825, + -0.01560699287801981, + 0.011987577192485332, + 0.01658821478486061, + -0.016338281333446503, + -0.02802964113652706, + 0.0021336961071938276, + -0.002531739417463541, + 0.01923566497862339, + -0.022975418716669083, + 0.05631847307085991, + -0.00797937624156475, + 0.0026775342412292957, + -0.009562291204929352, + -0.007581332698464394, + -0.022197846323251724, + 0.04247027263045311, + 0.00945120956748724, + -0.020457563921809196, + 0.0004185816796962172, + -0.004952396731823683, + -0.03906376659870148, + 0.0415445938706398, + -0.03180642053484917, + -0.0006913684774190187, + -0.029603298753499985, + 0.0035407321993261576, + 0.005021823104470968, + -0.051912225782871246, + 0.03308386355638504, + -0.0015389457112178206, + 0.004596009384840727, + 0.002534053521230817, + 0.004346075467765331, + -0.04587678238749504, + 0.057355236262083054, + 0.032676562666893005, + -0.023641908541321754, + 0.02591908536851406, + -0.04439569264650345, + 0.06265013664960861, + 0.047876253724098206, + 0.030288303270936012, + -0.058503080159425735, + 0.009673372842371464, + 0.025215568020939827, + -0.026381926611065865, + -0.018263699486851692, + 0.056244418025016785, + 0.00391794741153717, + 0.0029205256141722202, + 0.06661204993724823, + 0.0032537709921598434, + -0.007150890771299601, + -0.0035823879297822714, + -0.034509412944316864, + 0.06794503331184387, + -0.02649300917983055, + 0.0077525838278234005, + 0.00033758452627807856, + 0.04339595511555672, + 0.012246767990291119, + -0.02366042323410511, + 0.025715436786413193, + -0.002790930215269327, + -0.02615976333618164, + 0.000942459621001035, + -0.019735531881451607, + 0.02019837312400341, + 0.02577097713947296, + 0.01447766087949276, + -0.029603298753499985, + -0.009187390096485615, + -0.0041146548464894295, + 0.02019837312400341, + 0.0668342113494873, + 0.020272428169846535, + 0.0303993858397007, + -0.0002996894472744316, + 0.03515738993883133, + -0.02688179537653923, + -0.03543509170413017, + 0.013070625253021717, + -0.0048089162446558475, + -0.02043905109167099, + 0.0008950184565037489, + 0.014838676899671555, + 0.00015172500570770353, + 0.0017969794571399689, + 0.02591908536851406, + 0.029640326276421547, + -0.016754837706685066, + 0.08234863728284836, + -0.036101583391427994, + 0.02254960499703884, + 0.014422120526432991, + 0.03689767047762871, + 0.019457828253507614, + -0.010330607183277607, + -0.016606729477643967, + -0.08782867342233658, + -0.057873617857694626, + 0.008340391330420971, + -0.013718602247536182, + 0.005947504658252001, + -0.09219789505004883, + 0.06053958088159561, + -0.0005583017482422292, + -0.043840281665325165, + 0.04284054785966873, + -0.010154727846384048, + -0.1444803923368454, + 0.012561500072479248, + -0.030566008761525154, + 0.027548285201191902, + 0.023975154384970665, + 0.006294635124504566, + -0.05050519108772278, + -0.02477124147117138, + -0.05613333359360695, + -0.059280652552843094, + -0.03252845257520676, + -0.0514678992331028, + -0.005878078285604715, + 0.009275330230593681, + 0.03288021311163902, + -0.016366051509976387, + -0.014422120526432991, + -0.006447372492402792, + 4.3463645852170885e-05, + -0.025845032185316086, + -0.04621002823114395, + 0.01084898877888918, + 0.06850044429302216, + -0.012117172591388226, + -0.012839204631745815, + -0.0171621385961771, + 0.03584239259362221, + -0.055911172181367874, + -0.003010779619216919, + 0.030417898669838905, + 0.0003563874342944473, + 0.014783135615289211, + -0.003982745110988617, + 0.0314546637237072, + 0.02612273581326008, + 0.019902154803276062, + 0.006632509175688028, + 0.018495120108127594, + -0.030603034421801567, + 0.046580299735069275, + 0.027788963168859482, + 0.012820690870285034, + -0.008363533765077591, + 0.014755365438759327, + -0.01663449965417385, + -0.07572075724601746, + 0.013922251760959625, + -0.019217150285840034, + 0.0010454417206346989, + 0.020087292417883873, + -0.00021637808822561055, + -0.017671262845396996, + 0.018291469663381577, + -0.003776781028136611, + -0.015644019469618797, + -0.036434829235076904, + 0.01416292879730463, + 0.044654883444309235, + -0.06165039911866188, + 0.022197846323251724, + -0.05646657943725586, + -0.07161073386669159, + 0.02414177730679512, + -0.007386939600110054, + -0.03286169841885567, + -0.040952157229185104, + -0.0442475825548172, + -0.05339331924915314, + -0.016801122575998306, + -0.004748746752738953, + -0.0007283957675099373, + 0.0020503848791122437, + 0.034657519310712814, + -0.05365251004695892, + -3.540009129210375e-05, + 0.0186617411673069, + -0.02408623695373535, + 0.010432432405650616, + -0.010080672800540924, + -0.14107388257980347, + 0.013903737999498844, + 0.03437981754541397, + 0.006808388512581587, + -0.015088611282408237, + -0.010960070416331291, + -0.0064612580463290215, + 0.020883377641439438, + 0.03850835561752319, + -0.010358377359807491, + 0.21846087276935577, + -0.011293316259980202, + -0.02630787156522274, + -0.04276649281382561, + 0.016134630888700485, + -0.03289872407913208, + -0.003170459531247616, + 0.013533465564250946, + 0.023845558986067772, + -0.024363940581679344, + -0.04139648377895355, + -0.0010222996352240443, + 0.032250747084617615, + -0.016773352399468422, + 0.014153672382235527, + 0.023586368188261986, + 0.004549725446850061, + 0.01341312751173973, + 0.10130660235881805, + -0.008761576376855373, + 0.026807740330696106, + 0.03554617613554001, + 0.019346745684742928, + 0.0006595481536351144, + -0.0445438027381897, + -0.05565198138356209, + -0.02765936776995659, + 0.05150492861866951, + -0.03269507735967636, + 0.03400954231619835, + -0.013181706890463829, + 0.045913808047771454, + 0.015495911240577698, + 0.014931244775652885, + -0.02784450352191925, + -0.016606729477643967, + -0.03487968444824219, + -0.00231998972594738, + 0.029973572120070457, + 0.03262102231383324, + -0.011024868115782738, + -0.004720976576209068, + -0.03754564747214317, + 0.007109235040843487, + 0.01644936203956604, + -0.05265277251601219, + -0.0221237912774086, + 0.03828619420528412, + 0.014024076983332634, + 0.024678673595190048, + -0.02986248955130577, + 0.02871464565396309, + -0.001140902633778751, + 0.027733422815799713, + -0.009409554302692413, + 0.022679200395941734, + -0.0018478919519111514, + -0.044840019196271896, + -0.00512364786118269, + 0.03730497136712074, + 0.03765672817826271, + 0.013376099988818169, + -0.05280088260769844, + 0.01847660541534424, + -0.006877814419567585, + 0.0012299994705244899, + -0.04428461194038391, + 0.041766755282878876, + 0.018819108605384827, + 0.015338544733822346, + -0.007673901040107012, + 0.008488500490784645, + 0.0043044197373092175, + 0.031232498586177826, + 0.02351231314241886, + -0.04676543548703194, + -0.01832849718630314, + 0.07753509283065796, + -0.005850308109074831, + 0.04472893849015236, + -0.05857713520526886, + -0.005345811601728201, + -0.027529772371053696, + 0.028751671314239502, + 0.007854408584535122, + -0.052726827561855316, + -0.005443008150905371, + -0.002790930215269327, + -0.017736060544848442, + -0.029029376804828644, + -0.03891565650701523, + 0.003249142551794648, + -0.02327163703739643, + -0.011321086436510086, + -0.04521029070019722, + 0.0009528735536150634, + -0.0028048153035342693, + -0.07357317954301834, + -0.015616249293088913, + -0.02971438132226467, + -0.032250747084617615, + -0.033343054354190826, + -0.009178133681416512, + 0.00993256364017725, + -0.01488496083766222, + 0.05006086453795433, + -0.0011148678604513407, + 0.025234080851078033, + 0.00503570819273591, + 0.035805366933345795, + -0.01139514148235321, + 0.035324010998010635, + -0.03154722973704338, + -0.02038351073861122, + -0.02217933163046837, + 0.018069306388497353, + -0.03771226853132248, + 0.02952924370765686, + -0.017736060544848442, + 0.028307344764471054, + -0.04887599125504494, + 0.0207722969353199, + -0.009877023287117481, + 0.0015817584935575724, + -0.029843976721167564, + 0.0005021822871640325, + -0.04472893849015236, + -0.01818038709461689, + -0.06324256956577301, + 0.0716477632522583, + -0.020457563921809196, + -0.02625233121216297, + -0.0174583550542593, + 0.0024461138527840376, + 0.05824388936161995, + 0.03506482020020485, + 0.04317379370331764, + 0.027381662279367447, + 0.007484136149287224, + 0.018920933827757835, + -0.035564687103033066, + -0.0362682081758976, + -0.0038207510951906443, + -0.025382190942764282, + -0.003573131049051881, + -0.08649569004774094, + -0.006276121363043785, + -0.07412858307361603, + -0.031102903187274933, + 0.011524736881256104, + -0.001591015374287963, + 0.04006350040435791, + -0.05069032683968544, + -0.05976200848817825, + 0.004526583477854729, + -0.032287776470184326, + -0.014699824154376984, + -0.002381316153332591, + 0.02019837312400341, + -0.025845032185316086, + -0.0006751690525561571, + -0.013746372424066067, + 0.014959015883505344, + 0.004795031156390905, + 0.020938917994499207, + 0.019365260377526283, + 0.02745571732521057, + 0.027048418298363686, + 0.04713571071624756, + 0.010663853026926517, + -0.005322669632732868, + -0.016708552837371826, + -0.03182493522763252, + 0.040470801293849945, + 0.013838940300047398, + 0.031102903187274933, + -0.03798997402191162, + -0.009960334748029709, + -0.052208445966243744, + 0.05006086453795433, + 0.02477124147117138, + 0.043877311050891876, + -0.02097594551742077, + -0.0016442419728264213, + -0.026530036702752113, + 0.004665435291826725, + -0.020846350118517876, + -0.006998153403401375, + -0.0067019350826740265, + 0.019828101620078087, + -0.04920923709869385, + 0.08716218173503876, + -0.019106069579720497, + 0.0020607986953109503, + 0.006294635124504566, + 0.0009401454008184373, + 0.02760382741689682, + 0.032435886561870575, + -0.020550131797790527, + -0.011904265731573105, + -0.030936280265450478, + 0.009849253110587597, + -0.005882706958800554, + 0.004403930623084307, + 0.00623909430578351, + -0.013950022868812084, + -0.02673368528485298, + 0.024549078196287155, + -0.0007555876509286463, + 0.0028441569302231073, + 0.01024729572236538, + 0.06094687804579735, + 0.001379265682771802, + -0.012635554186999798, + -0.020031750202178955, + 0.016319766640663147, + 0.039508093148469925, + 0.07379534095525742, + -0.002612736541777849, + -0.033731840550899506, + 0.028362885117530823, + 0.0013214105274528265, + 0.058836326003074646, + 0.0004272599471732974, + -0.0021741946693509817, + 0.027326121926307678, + 0.007965490221977234, + -0.04435866326093674, + 0.02351231314241886, + -0.0013433954445645213, + 0.008317249827086926, + 0.003283855738118291, + -0.026863280683755875, + -0.05291196331381798, + 0.03313940390944481, + -0.016319766640663147, + -0.01536631491035223, + 0.0463581383228302, + -0.010404661297798157, + 0.026141250506043434, + 0.013320558704435825, + 0.019976209849119186, + 0.03736051172018051, + 0.04469190910458565, + -0.009122592397034168, + 0.06150228902697563, + -0.027011390775442123, + 0.0020226144697517157, + 0.031473174691200256, + -0.015514424070715904, + 0.01673632487654686, + 0.02404920943081379, + 0.047580037266016006, + 0.004841315094381571, + 0.019217150285840034, + -0.0064010885544121265, + -0.04165567457675934, + -0.025604354217648506, + -0.05120870843529701, + -0.02169797755777836, + 0.002322303829714656, + 0.0656123161315918, + -0.000259480148088187, + -0.019587423652410507, + 0.008358905091881752, + -0.02682625502347946, + 0.0243824552744627, + 0.027066931128501892, + -0.010080672800540924, + -0.03252845257520676, + -0.0023408173583447933, + -0.0029552385676652193, + -0.05246763676404953, + 0.0022216360084712505, + -0.009367898106575012, + -0.0122652817517519, + -0.01158953458070755, + 0.01706956885755062, + 0.007516534999012947, + 0.03669402003288269, + 0.03102884814143181, + -0.018458092585206032, + -0.026770712807774544, + 0.025845032185316086, + 0.013727858662605286, + -0.014533202163875103, + -0.010691623203456402, + -0.04554353654384613, + -0.008743063546717167, + 0.01711585372686386, + 0.056725770235061646, + -0.00976594164967537, + -0.06505690515041351, + 0.06509393453598022, + -0.04313676431775093, + 0.029103431850671768, + -0.01914309710264206, + 0.013042854145169258, + -0.015736587345600128, + 0.03025127574801445, + -0.0029205256141722202, + 0.05202331021428108, + -0.021364731714129448, + -0.025882059708237648, + 0.037767812609672546, + -0.023197581991553307, + 0.003922576084733009, + -0.005077363923192024, + 0.04302568361163139, + -0.0060261874459683895, + 0.034416843205690384, + -0.06283526867628098, + -0.007664644159376621, + 0.024789754301309586, + -0.04809841886162758, + 0.013857454061508179, + 0.021420273929834366, + 0.010636081919074059, + -0.014042590744793415, + -0.011117436923086643, + -0.03199155628681183, + -0.010765677317976952, + -0.01798599399626255, + -0.006609366741031408, + -0.010895272716879845, + 0.007197174709290266, + -0.00978445541113615, + 0.014847933314740658, + -0.009178133681416512, + -0.05483737960457802, + -0.031917504966259, + -0.007252715528011322, + -0.036083072423934937, + 0.0019265749724581838, + 0.03987836465239525, + 0.04076702147722244, + 0.013542722910642624, + -0.04135945439338684, + 0.04621002823114395, + 0.002763159805908799, + 0.014746109023690224, + -0.01664375513792038, + 0.021124055609107018, + -0.008178397081792355, + 0.013459411449730396, + -0.00044895560131408274, + 0.0021811374463140965, + -0.03184344992041588, + 0.0169307179749012, + 0.01780085824429989, + -0.07020369917154312, + -0.02841842733323574, + -0.03178790956735611, + -0.01541259977966547, + -0.01797673851251602, + 0.018004508689045906, + 0.027974098920822144, + -0.0116635886952281, + -0.01779160089790821, + -0.01416292879730463, + 0.0003060534945689142, + -0.05209736153483391, + -0.04683949053287506, + 0.015440369956195354, + 0.006623252294957638, + 0.01808781921863556, + 0.04206297546625137, + -0.01019175536930561, + 0.0026243075262755156, + -0.029899517074227333, + -0.027677880600094795, + 0.018152616918087006, + 0.007632245309650898, + 0.02601165510714054, + -0.032010070979595184, + 0.020513106137514114, + -0.060428496450185776, + 0.0026937336660921574, + 0.004186395090073347, + -0.005549461580812931, + -0.00482280133292079, + -0.005563346669077873, + -0.003679584478959441, + -0.01509786769747734, + 0.03428724780678749, + 0.0012485131155699492, + -0.023364204913377762, + 0.009580804966390133, + 0.030473439022898674, + 0.05502251535654068, + -0.02895532175898552, + 0.02510448545217514, + -0.021994195878505707, + 0.012524472549557686, + -0.1501825898885727, + 0.0014591057552024722, + -0.02895532175898552, + -0.006151154637336731, + -0.03304683417081833, + -0.016329023987054825, + -0.0044340151362121105, + -0.026918822899460793, + -0.01115446351468563, + -0.025456245988607407, + -0.014977528713643551, + -0.011311830021440983, + 0.05950281769037247, + -0.0018768195295706391, + 0.02549327351152897, + 0.049653563648462296, + 0.020031750202178955, + 0.0012230569263920188, + 0.004515012260526419, + 0.0026775342412292957, + -0.0023535455111414194, + 0.011135950684547424, + -0.0686115249991417, + -0.006817645393311977, + -0.012487445026636124, + -0.012117172591388226, + 0.012654067948460579, + -0.010811961255967617, + 0.01674558036029339, + 0.002233206992968917, + -0.05183817073702812, + -0.05535576120018959, + 0.040952157229185104, + 0.04261838272213936, + 0.015403342433273792, + -0.03269507735967636, + 0.00028493639547377825, + 0.003968860022723675, + 0.029418163001537323, + -0.020698241889476776, + 0.007558190729469061, + -0.006364061497151852, + -0.0014834048924967647, + 0.04165567457675934, + 0.02227190136909485, + 0.05102357268333435, + -0.013931509107351303, + -0.0044270725920796394, + -0.036286719143390656, + 0.028214776888489723, + 0.002178823109716177, + 0.04654327407479286, + -0.04943139851093292, + -0.003182030748575926, + -0.032732103019952774, + 0.018550660461187363, + -0.03745307773351669, + -0.032195206731557846, + 0.023530827835202217, + 0.058984436094760895, + -0.08501460403203964, + 0.007831267081201077, + -0.0016430849209427834, + -0.057688482105731964, + -0.008706036023795605, + -0.004804287571460009, + -0.06364987045526505, + 0.018504375591874123, + 0.04972761869430542, + 0.004172510001808405, + -0.020513106137514114, + 4.274045568308793e-05, + -0.015301517210900784, + -0.01416292879730463, + 0.020698241889476776, + -0.027788963168859482, + 0.037101320922374725, + -0.03726794198155403, + 0.022049736231565475, + -0.008692150935530663, + -0.019106069579720497, + 0.01235784962773323, + 0.04443271830677986, + 0.02962181344628334, + 0.024993404746055603, + 0.03898971155285835, + -0.007692414335906506, + 0.010737907141447067, + 0.0349167101085186, + -0.0008336920291185379, + -0.006627880502492189, + -0.0006751690525561571, + 0.0030223506037145853, + -0.02790004573762417, + 0.028270317241549492, + -0.00882637407630682, + -0.03876754641532898, + -0.02525259554386139, + -0.038397274911403656, + -0.03512036055326462, + -0.005234729498624802, + -0.0021626236848533154, + -0.018300727009773254, + 0.03880457580089569, + -0.005415237508714199, + 0.07490615546703339, + 0.05032005533576012, + 0.009627088904380798, + -0.007308256812393665, + 0.0128669748082757, + -0.043877311050891876, + -0.012413390912115574, + -0.02871464565396309, + -0.02086486481130123, + -0.0605025514960289, + -0.021605409681797028, + -0.026363413780927658, + -0.01918012462556362, + -0.05842902511358261, + -0.005068107042461634, + 0.012617040425539017, + 0.08220052719116211, + -0.014866447076201439, + -0.033343054354190826, + 0.0016153145115822554, + -0.06516798585653305, + 0.038212139159440994, + -0.01178392767906189, + -0.013811170123517513, + 0.03721240162849426, + 0.018152616918087006, + 0.021438786759972572, + -0.037823352962732315, + 0.03275061771273613, + -0.0022517205215990543, + 0.009196647442877293, + -0.05468927323818207, + 0.07275857776403427, + 0.0014915046049281955, + -0.04583975672721863, + 0.0017773087602108717, + 0.03528698533773422, + 0.012302309274673462, + -0.04298865422606468, + -0.016190171241760254, + 0.01818038709461689, + 0.01079344842582941, + -0.010950814001262188, + 0.007373054511845112, + -0.01755092479288578, + -0.010423175059258938, + -0.00523010129109025, + -0.055281709879636765, + -0.006526055745780468, + 0.011820954270660877, + 0.015125637874007225, + 0.026992876082658768, + -0.05209736153483391, + -0.013255761004984379, + 0.00029824304510839283, + 0.0035314755514264107, + -0.10034389048814774, + -0.007090721279382706, + 0.0067574759013950825, + 0.003556931624189019, + 0.00764613039791584, + -0.009969591163098812, + -0.009728914126753807, + -0.048987071961164474, + 0.008002517744898796, + -0.03439832851290703, + -0.0031496318988502026, + -0.030306817963719368, + -0.007687786128371954, + -0.025808004662394524, + -0.0027492744848132133, + 0.036471858620643616, + -0.03275061771273613, + 0.051578979939222336, + -0.024826781824231148, + 0.03636077418923378, + 0.030528981238603592, + -0.033787380903959274, + 0.02062418684363365, + -0.02010580524802208, + 0.043877311050891876, + -0.02062418684363365, + 0.018254442140460014, + -0.035231444984674454, + 0.0076183597557246685, + 0.004575181752443314, + -0.013292788527905941, + -0.05550387129187584, + -0.013570493087172508, + 0.052874933928251266, + -0.05069032683968544, + 0.021087028086185455, + -0.005748482886701822, + 0.027881531044840813, + 0.07627616822719574, + -0.03482414409518242, + 0.00803491659462452, + -0.0049986811354756355, + -0.011034125462174416, + -0.018013764172792435, + 0.010626825504004955, + 0.03308386355638504, + -0.0018930189544335008, + -0.01058054156601429, + -0.03256548196077347, + -0.01765274815261364, + 0.028492480516433716, + -0.022049736231565475, + -0.0017287104856222868, + -0.0012126429937779903, + -0.0018814479699358344, + 0.010089930146932602, + -0.00542449438944459, + -0.05257871747016907, + 0.006979639641940594, + -0.013181706890463829, + 0.017911940813064575, + 0.020920405164361, + -0.011228518560528755, + 0.04491407424211502, + -0.04313676431775093, + 0.014755365438759327, + -0.046247053891420364, + 0.015977265313267708, + -0.022734740749001503, + 0.008909685537219048, + -0.019069042056798935, + -0.04276649281382561, + 0.0373234823346138, + 0.002818700624629855, + 0.03500927984714508, + -0.019605936482548714, + -0.0009870080975815654, + -0.010691623203456402, + 0.035749826580286026, + 0.034120626747608185, + -0.009802968241274357, + -0.014709081500768661, + 0.045469481498003006 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "阀杆", + "组成编码": "040102", + "维修项目名称": "检查排气阀杆密封面磨损", + "维修项目编号": "MT011", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.13 MT011 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT011040102阀杆检查排气阀杆密封面磨损6M/4000hJY级
安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。
安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1排气阀专用吊具OEM-MAN-BW-VALVE-HOOK1套带隔热手柄
2红外测温仪Fluke 62 Max+1台测量阀杆温度
3密封面检测平板Optical Flat λ/101块用于着色法检查
4着色剂套装Dykem Steel Blue +Developer1套检查接触印痕
2)备品备件
名称规格/型号消耗数量备注
本项目为检查类,无备件消耗(但可能触发MT012)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温清洁剂CRC Brakleen HT100mL清除积碳
2无绒布Kimwipe EX-L5张防刮伤密封面
3防锈油CRC 3-3630mL检查后临时防护
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座);
3)记录检查结果于《排气阀状态档案》。
验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm;
2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。
页码:1/1版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_934fd518-5e85-488e-be09-aa2728a92334.pdf#page=39\"}]", + "embedding": [ + -0.025353116914629936, + 0.004282746464014053, + -0.043913230299949646, + -0.0028327375184744596, + -0.0028373776003718376, + 0.0038001835346221924, + -0.010931908152997494, + 0.03556118160486221, + -0.026689445599913597, + -0.005818596109747887, + 0.006783721968531609, + 0.02056460827589035, + 0.0037027429789304733, + 0.01641642116010189, + 0.009275417774915695, + 0.0020682928152382374, + 0.012407436966896057, + -0.01971084251999855, + 0.030846910551190376, + -0.025538718327879906, + -0.011729992926120758, + 0.00044341274769976735, + -0.01666698232293129, + 0.04651164636015892, + 0.032925643026828766, + 0.029770424589514732, + 0.017678510397672653, + -0.0045402683317661285, + -0.031459394842386246, + 0.01978508196771145, + 0.015358495526015759, + -0.0032224999740719795, + -0.01978508196771145, + -0.00842629186809063, + 0.002396574942395091, + -0.02459215186536312, + 0.025483038276433945, + -0.017557868734002113, + -0.04914718493819237, + 0.0026842565275728703, + -0.0015636896714568138, + -0.0329442024230957, + 0.025278877466917038, + -0.07565102726221085, + -0.010356544516980648, + -0.01617513969540596, + 0.007943728938698769, + -0.04521244019269943, + 0.012203275226056576, + 0.012342476285994053, + -0.016824744641780853, + -0.014235608279705048, + 0.0523766428232193, + 0.001525409403257072, + 0.010839107446372509, + 0.014411929063498974, + -0.02648528479039669, + 0.002860577777028084, + -0.06811562180519104, + -0.013279762119054794, + -0.0028443376068025827, + 0.02618832141160965, + -0.03498581796884537, + -0.01848587393760681, + 0.006491400301456451, + 0.08463412523269653, + 0.005716515239328146, + 0.008635093457996845, + -0.02984466403722763, + -0.007335885427892208, + -0.005721155554056168, + -0.0016692503122612834, + -0.0027144167106598616, + 0.004714269191026688, + -0.03882776200771332, + 0.0035148218739777803, + -8.446302672382444e-05, + -0.005697955377399921, + 0.016277220100164413, + 0.024759193882346153, + 0.051671359688043594, + 0.004563468042761087, + 0.049778226763010025, + -0.009173336438834667, + -0.0017144905868917704, + -0.008352051489055157, + 0.03934744372963905, + -0.0006362639251165092, + -0.049703989177942276, + -0.0027190567925572395, + 0.0032387401442974806, + 0.017604269087314606, + 0.03953304514288902, + 0.0028188175056129694, + -0.04524955898523331, + 0.009326457977294922, + 0.040015608072280884, + -0.030976831912994385, + 0.03739863261580467, + -0.017056746408343315, + 0.017715629190206528, + 0.10750018805265427, + 0.00014115837984718382, + -0.020304765552282333, + 0.00534067302942276, + -0.02178957499563694, + -0.020434686914086342, + -0.013224082067608833, + -0.01941388100385666, + -0.01226823590695858, + -0.004783869720995426, + 0.04387611150741577, + 0.021269891411066055, + 0.01751146838068962, + -0.03233171999454498, + -0.025427358224987984, + -0.03630358353257179, + -0.026503844186663628, + 0.008658293634653091, + 0.0022794140968471766, + -0.0160452201962471, + 0.0035797820892184973, + 0.048182059079408646, + -0.04821917787194252, + -0.0006548240780830383, + -0.030178746208548546, + 0.030865471810102463, + -0.001995212398469448, + -0.019246838986873627, + 0.015488415956497192, + 0.0026192963123321533, + 0.02869393862783909, + -0.00590675650164485, + 0.0010851867264136672, + -0.020341886207461357, + -0.046474527567625046, + -0.03398356959223747, + 0.009567739441990852, + 0.01250951737165451, + -0.0009297457872889936, + -0.025334557518363, + 0.03186771646142006, + -0.05430689826607704, + -0.005029791034758091, + -0.0115629518404603, + -0.027747372165322304, + -0.00657492084428668, + -0.0017504508141428232, + -0.03214611858129501, + -0.06291878968477249, + 0.01788267120718956, + 0.01727946661412716, + 0.008463412523269653, + -0.008027249947190285, + 0.09332025796175003, + 0.008746454492211342, + -0.04157465696334839, + 0.02216077782213688, + 0.004558828193694353, + 0.0024151350371539593, + 0.08782646059989929, + 0.06225062534213066, + -0.0075075663626194, + -0.010143103078007698, + 0.02758033014833927, + 0.020657407119870186, + 0.03626646474003792, + 0.0061062779277563095, + -0.0007754648104310036, + 0.017381547018885612, + -0.004008984658867121, + -0.008458772674202919, + 0.01624010130763054, + 0.015822498127818108, + 0.005818596109747887, + 0.0006443840102292597, + -0.006087717600166798, + 0.0010770666413009167, + 0.06147110089659691, + -0.029065139591693878, + -0.00021663133520632982, + 0.018040431663393974, + -0.014885212294757366, + 0.019692281261086464, + 0.0034197012428194284, + 0.01891275681555271, + -0.0007313845562748611, + -0.04524955898523331, + -0.00044457276817411184, + -0.002686576684936881, + -0.014727450907230377, + -0.016277220100164413, + 0.0040159448981285095, + -0.026837926357984543, + 0.026689445599913597, + -0.0005840636440552771, + -0.054232656955718994, + -0.04138905555009842, + 0.013140561059117317, + -0.00790660921484232, + -0.034633174538612366, + -0.020527487620711327, + 0.023961108177900314, + 0.026949286460876465, + -0.04005272686481476, + -0.00028231675969436765, + -0.04131481423974037, + -0.0308840312063694, + 0.0008189650834538043, + -0.0339464507997036, + -0.015850339084863663, + 0.002672656672075391, + 0.015850339084863663, + -0.011767112649977207, + -0.043059468269348145, + -0.000717464426998049, + -0.012500237673521042, + -0.045435160398483276, + 0.0048859501257538795, + -0.014569690451025963, + -0.02080588974058628, + 0.014291288331151009, + 0.03270292282104492, + -0.002575215883553028, + 0.03699031099677086, + -0.04651164636015892, + 0.03890199959278107, + 0.01971084251999855, + -0.025538718327879906, + -0.04046105220913887, + -0.015061533078551292, + 0.05627426877617836, + -0.03455893322825432, + -0.035988062620162964, + 0.014922332018613815, + 0.03222035989165306, + 0.0050019510090351105, + 0.056979551911354065, + 0.017010346055030823, + 0.0022364938631653786, + 0.014727450907230377, + -0.04339354857802391, + 0.09131576865911484, + -0.024369431659579277, + 0.045620761811733246, + 0.0296033825725317, + -0.019116917625069618, + 0.00749364634975791, + -0.018448755145072937, + 0.024647831916809082, + -0.002130933105945587, + -0.03357524797320366, + -0.02856401726603508, + 0.03448469191789627, + 0.0111360689625144, + 0.045509401708841324, + 0.019488120451569557, + 0.0009019055869430304, + 0.011646471917629242, + 0.012555917724967003, + 0.0227732602506876, + 0.0549379400908947, + 0.019506681710481644, + 0.027988653630018234, + 0.02672656625509262, + 0.013483923859894276, + -0.049592629075050354, + -0.00976262055337429, + 0.02349710464477539, + -0.00912229623645544, + 0.010727746412158012, + -0.040312569588422775, + -0.02539023756980896, + 0.021993735805153847, + 0.030438588932156563, + 0.0002987018378917128, + 0.019933562725782394, + -0.04643740877509117, + 0.04346778988838196, + -0.014996573328971863, + 0.04918430373072624, + 0.004482267890125513, + 0.04424731433391571, + 0.02373838797211647, + -0.0018432514043524861, + -0.013307602144777775, + -0.07000875473022461, + 0.006820842158049345, + -0.003048498881980777, + -0.015497695654630661, + -0.016332902014255524, + -0.05412129685282707, + 0.03275860473513603, + -0.008802134543657303, + -0.03229460120201111, + 0.011794952675700188, + 0.009614139795303345, + -0.14595673978328705, + 0.0530819296836853, + -0.008004049770534039, + 0.058315880596637726, + 0.00736836576834321, + 0.00930789764970541, + -0.03153363615274429, + 0.0013166081625968218, + -0.06755881756544113, + -0.036340706050395966, + -0.008352051489055157, + -0.049518387764692307, + -0.03223891928792, + -0.009423898532986641, + 0.004298986401408911, + -0.017734190449118614, + -0.016332902014255524, + 0.0013166081625968218, + 0.015516255982220173, + 0.00045559281716123223, + 0.0017736509907990694, + 0.04643740877509117, + 0.05939236655831337, + -0.03016018681228161, + -0.043801870197057724, + 0.0047885095700621605, + -0.004867390263825655, + -0.03815959766507149, + 0.009372858330607414, + -0.010987588204443455, + 0.018894197419285774, + 0.060023412108421326, + -0.014133527874946594, + 0.017103146761655807, + 0.0035217818804085255, + 0.02594703994691372, + -0.018727155402302742, + 0.0786948874592781, + 0.009641979821026325, + 0.0626218244433403, + 0.029529143124818802, + 0.04502683877944946, + -0.02557583898305893, + 0.000919305719435215, + 0.0038860240019857883, + -0.05824163928627968, + 0.006027397233992815, + -0.001981292385607958, + -0.03322260454297066, + -0.006918282713741064, + -0.0058928364887833595, + 0.028285615146160126, + 0.04146329686045647, + -0.004275786690413952, + -0.0031111391726881266, + -0.05207968130707741, + 0.014783131889998913, + 0.05059487372636795, + -0.006621321197599173, + 0.020397566258907318, + -0.03901336342096329, + -0.04621468484401703, + 0.04755101352930069, + -0.05226528272032738, + -0.07539118826389313, + -0.017483627423644066, + 0.008101490326225758, + -0.004514747764915228, + 0.004577388521283865, + -0.03307412564754486, + 0.031218113377690315, + -0.019061237573623657, + 0.02509327605366707, + -0.02587280049920082, + -0.027357609942555428, + 0.00770708778873086, + 0.013233361765742302, + -0.006208358332514763, + -0.0017806109972298145, + -0.10794562846422195, + 0.022847501561045647, + 0.004403387196362019, + 0.008505173027515411, + -0.004417307209223509, + -0.021863816305994987, + -0.04413595423102379, + 0.006681641563773155, + 0.02173389494419098, + -0.01562761701643467, + 0.24543896317481995, + -0.00933573767542839, + 0.025223195552825928, + 0.03331540524959564, + 0.041648898273706436, + -0.03027154691517353, + -0.01909835822880268, + -0.027172008529305458, + -0.01611945964396, + -0.03637782484292984, + 0.017316587269306183, + 0.014718171209096909, + 0.042948104441165924, + -0.03261012211441994, + 0.0411292165517807, + 0.020898688584566116, + -0.022253578528761864, + -0.02973330393433571, + 0.1061638593673706, + 0.008379891514778137, + -0.013688084669411182, + 0.012407436966896057, + -0.0021077331621199846, + 0.010217343457043171, + -0.06896938383579254, + -0.04569500312209129, + -0.010616385377943516, + 0.012648718431591988, + 0.0018966117640957236, + 0.0010283463634550571, + -0.002454575151205063, + 0.0008723253849893808, + 0.006797641981393099, + 0.009623419493436813, + 0.02216077782213688, + -0.01745578832924366, + -0.022309258580207825, + -0.040980733931064606, + -0.00821285042911768, + -0.003742183092981577, + -0.04621468484401703, + -0.030846910551190376, + 0.011711432598531246, + 0.002373374765738845, + 0.0035333819687366486, + -0.020174844190478325, + -0.016889704391360283, + 0.03504149615764618, + -0.009048055857419968, + -0.031292352825403214, + -0.017381547018885612, + -0.0062037184834480286, + -0.05115167796611786, + 0.02552015893161297, + 0.0029301780741661787, + -0.05341600999236107, + -0.022569099441170692, + -0.05571746453642845, + 0.010783426463603973, + 0.05341600999236107, + 0.04691997170448303, + 0.010811267420649529, + -0.008129330351948738, + -0.01229607593268156, + -0.001960412133485079, + -0.05285920575261116, + -0.04034968838095665, + 0.03593238443136215, + 0.0162957813590765, + 0.042205702513456345, + 0.011238149367272854, + -0.017604269087314606, + -0.008185010403394699, + 0.029937464743852615, + 0.00805972982198, + 0.010848387144505978, + -0.010282304137945175, + 0.06410663574934006, + -0.007192044518887997, + 0.002895378042012453, + -0.03504149615764618, + -0.01727018691599369, + -0.0068579623475670815, + 0.01684330403804779, + -0.0038141035474836826, + -0.03229460120201111, + -0.0032294599805027246, + 0.04328218847513199, + 0.008904214948415756, + -0.03236883878707886, + 0.00016863604832906276, + -0.016834024339914322, + -0.02002636343240738, + -0.060394614934921265, + -0.04736541211605072, + 0.004264186602085829, + -0.003076339140534401, + -0.04673437029123306, + -0.034466132521629333, + 0.01089478749781847, + -0.03630358353257179, + -0.0034777014516294003, + 0.011098948307335377, + 0.01430984865874052, + -0.01585961878299713, + -0.008918135426938534, + -0.009419258683919907, + 0.026763685047626495, + 0.006018117070198059, + 0.008593332953751087, + -0.01721450686454773, + 0.019376760348677635, + -0.058872684836387634, + -0.014764571562409401, + 0.04365339130163193, + 0.006639881059527397, + 0.028842419385910034, + -0.0010376264108344913, + -0.0066955615766346455, + 0.030123066157102585, + -0.02063884772360325, + -0.017409387975931168, + 0.022383498027920723, + -0.022847501561045647, + -0.024016788229346275, + -0.021381253376603127, + -0.05590306594967842, + -0.03602518141269684, + -0.0532304085791111, + 0.04008984938263893, + -0.01720522716641426, + -0.02837841585278511, + -0.03570966050028801, + -0.005725795403122902, + 0.020286206156015396, + 0.01046790461987257, + 0.10564417392015457, + 0.008185010403394699, + -0.02063884772360325, + -0.005145791918039322, + 0.00946101825684309, + 0.022253578528761864, + -0.018959157168865204, + -0.010774146765470505, + -0.017808429896831512, + -0.07802672684192657, + 0.01989644393324852, + -0.013957206159830093, + 0.018420914188027382, + -0.005725795403122902, + -0.0013931685825809836, + 0.0385679192841053, + -0.015052253380417824, + -0.05104031786322594, + 0.005535554140806198, + -0.026522403582930565, + -0.033779408782720566, + 0.002010292373597622, + -0.010152382776141167, + -0.03938456252217293, + -0.03205331787467003, + 0.030252987518906593, + 0.007475086487829685, + 0.004266506526619196, + 0.04524955898523331, + 0.06388391554355621, + 0.028675377368927002, + 0.054715219885110855, + 0.03363092988729477, + -0.010245183482766151, + -0.00863973330706358, + -0.049295663833618164, + -0.04331930726766586, + 0.05902116745710373, + 0.027691692113876343, + 0.019989244639873505, + -0.038976240903139114, + -0.01984076201915741, + -0.054344017058610916, + 0.0522281639277935, + 0.030345788225531578, + 0.06258470565080643, + -0.002788657322525978, + -0.028898099437355995, + -0.023163024336099625, + 0.06054309383034706, + 0.02570575848221779, + -0.012305356562137604, + 0.017984751611948013, + 0.01746506802737713, + -0.05189407989382744, + 0.07661615312099457, + -0.07513134181499481, + -0.0033013804350048304, + -0.010829826816916466, + 0.016073059290647507, + 0.006519240327179432, + 0.011794952675700188, + -0.026689445599913597, + -0.04833053797483444, + -0.02112141065299511, + 0.03147795423865318, + 0.020898688584566116, + -0.002306094393134117, + -0.009651259519159794, + -0.003180739702656865, + 0.008630453608930111, + -0.00425722636282444, + 0.0007580646779388189, + 0.013762325048446655, + -0.015581216663122177, + 0.024091029539704323, + -0.0024429750628769398, + -0.018114672973752022, + 0.030420027673244476, + -0.005155072081834078, + 0.010588545352220535, + 0.051856961101293564, + 0.029807545244693756, + -0.05226528272032738, + 0.05430689826607704, + -0.0011774073354899883, + -0.0018861716380342841, + 0.018346672877669334, + -0.012704398483037949, + 0.026411043480038643, + 0.01848587393760681, + 0.010876227170228958, + 0.046363167464733124, + 0.0029464182443916798, + 0.005442753899842501, + -0.005758275743573904, + 0.009140856564044952, + -0.05816740170121193, + 0.04242842271924019, + -0.034094929695129395, + -0.011210309341549873, + 0.043913230299949646, + -0.02613264136016369, + 0.03190483897924423, + 0.03788119554519653, + 0.019154038280248642, + 0.035431258380413055, + 0.06663081049919128, + 0.007841648533940315, + 0.06043173372745514, + -0.002173853572458029, + 0.01836523413658142, + 0.020434686914086342, + -0.0036308225244283676, + -0.02539023756980896, + 0.008171090856194496, + 0.03630358353257179, + 0.003765383269637823, + 0.010282304137945175, + -0.007303405087441206, + -0.05890980362892151, + -0.01428200863301754, + -0.010783426463603973, + -0.030679870396852493, + -0.004890590440481901, + 0.054975058883428574, + -0.009771900251507759, + 0.0016831704415380955, + 2.4976405256893486e-05, + -0.009512059390544891, + 0.015107933431863785, + -0.00022112636361271143, + -0.011748552322387695, + -0.005498433951288462, + -0.003589062253013253, + 0.011943434365093708, + -0.037324391305446625, + -0.04914718493819237, + 0.025742879137396812, + -0.005196832120418549, + -0.03715734928846359, + 0.008050450123846531, + 0.026522403582930565, + 0.055754587054252625, + 0.0015567296650260687, + -0.05456673726439476, + -0.016620583832263947, + 0.03552405908703804, + 0.006389319431036711, + 0.015729697421193123, + 0.009818300604820251, + -0.012565197423100471, + -0.0043361070565879345, + 0.006760521791875362, + 0.10052157938480377, + -0.02904658019542694, + -0.08003121614456177, + -0.025186076760292053, + -0.04235418140888214, + 0.049592629075050354, + -0.007052843924611807, + 0.03849367797374725, + -0.028341295197606087, + 0.033482447266578674, + -0.014634650200605392, + -0.009303257800638676, + -0.04962974786758423, + -0.021028609946370125, + 0.022717580199241638, + -0.0446927584707737, + 0.002953378250822425, + -0.019729401916265488, + -0.00714100431650877, + 0.018764276057481766, + 0.04209434241056442, + -0.012101194821298122, + -0.023998228833079338, + 0.007224524859338999, + 0.008203570730984211, + 0.008129330351948738, + 0.0060088373720645905, + -0.03669334575533867, + -0.0024452952202409506, + 0.0003100119065493345, + -0.021381253376603127, + 0.0167226642370224, + 0.013539603911340237, + 0.00013659083924721926, + -0.007247725035995245, + 0.00728020491078496, + -0.02197517640888691, + 0.017669228836894035, + -0.04899870231747627, + -0.01708458550274372, + -0.02440655045211315, + -0.001423328765667975, + -0.04057241231203079, + 0.029640503227710724, + 0.033426765352487564, + 0.06028325483202934, + -0.037992555648088455, + -0.004403387196362019, + 0.0006182838114909828, + 0.054047055542469025, + -0.0072662848979234695, + -0.004459067713469267, + 0.02526031620800495, + -0.012741519138216972, + 0.037695594131946564, + -0.03032722696661949, + 0.008069010451436043, + -0.031700678169727325, + 0.012184715829789639, + 0.011878473684191704, + -0.03788119554519653, + 0.0003285720304120332, + -0.033612366765737534, + -0.03184915706515312, + 0.00912229623645544, + -0.02826705574989319, + 0.041351936757564545, + -0.021641094237565994, + -0.033593807369470596, + -0.012815759517252445, + -0.01769706979393959, + -0.030661309137940407, + -0.015729697421193123, + 0.021752454340457916, + -0.037621352821588516, + -0.004960190504789352, + 0.025427358224987984, + 0.02587280049920082, + -0.010087422095239162, + -0.029751865193247795, + -0.015980258584022522, + -0.003171459538862109, + 0.035858143121004105, + 0.002756176982074976, + -0.012611597776412964, + 0.05159711837768555, + -0.04090649262070656, + -0.03181203827261925, + 0.0296033825725317, + 0.0018536915304139256, + -0.0068579623475670815, + -0.02501903474330902, + 0.006305798888206482, + -0.02093580923974514, + 0.05597730726003647, + -0.017418667674064636, + -0.019877882674336433, + -0.011961993761360645, + 0.05256224423646927, + 0.035375580191612244, + -0.0014569690683856606, + 0.036043744534254074, + -0.03667478635907173, + 0.01897771842777729, + -0.12888143956661224, + 0.036656226962804794, + -0.02392398752272129, + -0.004419627599418163, + -0.03576534241437912, + -0.004551868420094252, + -0.02874961867928505, + -0.025501597672700882, + -0.021251332014799118, + -0.01689898408949375, + -0.02789585292339325, + 0.013140561059117317, + 0.06804138422012329, + -0.010310144163668156, + 0.00032944203121587634, + 0.025798559188842773, + 0.024016788229346275, + 0.003171459538862109, + -0.011163908988237381, + 0.030252987518906593, + -0.020898688584566116, + -0.013836565427482128, + 0.007243084721267223, + -0.010987588204443455, + 0.019636601209640503, + 0.010737026110291481, + 0.023237263783812523, + 0.009502778761088848, + -0.013799445703625679, + 0.038605038076639175, + 0.0072106048464775085, + -0.08314931392669678, + 0.05226528272032738, + 0.027561770752072334, + -0.010198783129453659, + -0.005345313344150782, + -0.006969323381781578, + -0.0007319645374082029, + 0.061730943620204926, + -0.004352346993982792, + 0.053675852715969086, + -0.0029185779858380556, + 0.007289485074579716, + 0.01318696141242981, + -0.016258660703897476, + 0.01022662315517664, + -0.005057631526142359, + -0.005916036665439606, + 0.0022167738061398268, + -0.005025151185691357, + -0.0028188175056129694, + 0.040795132517814636, + -0.008723254315555096, + 0.03222035989165306, + -0.04740253463387489, + 0.004011305049061775, + -0.06726185977458954, + -0.02154829353094101, + 0.011859913356602192, + 0.03363092988729477, + -0.06035749241709709, + 0.0028536177705973387, + -0.01269511878490448, + -0.052339524030685425, + -0.01732586696743965, + 0.004756029695272446, + -0.023163024336099625, + 0.001722610672004521, + 0.0021541332826018333, + -0.022661900147795677, + -0.022197896614670753, + 0.006718761753290892, + 0.006305798888206482, + -0.014625370502471924, + 0.011859913356602192, + -0.011906313709914684, + 0.014114967547357082, + -0.010458624921739101, + -0.01568329706788063, + -0.025334557518363, + -0.0012528077932074666, + 0.010059582069516182, + 0.02245773933827877, + 0.04435867443680763, + -0.012630158104002476, + 0.034874457865953445, + 0.007605006918311119, + -0.013929366134107113, + -0.006973963230848312, + -0.0034034610725939274, + -0.005261792801320553, + -0.01202695444226265, + 0.0061201979406178, + -0.029102260246872902, + 0.0308840312063694, + 0.013029200956225395, + -0.05200544372200966, + -0.03901336342096329, + -0.02056460827589035, + -0.055383384227752686, + 0.005461313761770725, + 0.04146329686045647, + -0.0055680344812572, + 0.042391303926706314, + -0.0027631372213363647, + 0.02978898398578167, + 0.05980069190263748, + 0.0330926850438118, + 0.030104506760835648, + 0.034633174538612366, + -0.057276513427495956, + 0.00046951291733421385, + -0.01580393873155117, + 0.017047464847564697, + -0.037324391305446625, + 0.014059287495911121, + -0.004224746022373438, + -0.010588545352220535, + -0.050372153520584106, + -0.024258069694042206, + 0.0010469064582139254, + 0.0641808807849884, + -0.020063484087586403, + -0.02154829353094101, + 0.026095522567629814, + -0.053490251302719116, + 0.019933562725782394, + 0.01855083554983139, + 0.015107933431863785, + 0.02886097878217697, + -0.0053777932189404964, + -0.008709333837032318, + -0.02930642105638981, + 0.012156874872744083, + 0.009247577749192715, + -0.04064665362238884, + -0.07060267776250839, + 0.0530819296836853, + 0.014430489391088486, + -0.03595094382762909, + -0.021139970049262047, + 0.014337688684463501, + -0.012073354795575142, + -0.04302234575152397, + 0.026689445599913597, + -0.018031151965260506, + 0.021585414186120033, + -0.0013989686267450452, + -0.03082835115492344, + -0.005595874506980181, + 0.02349710464477539, + -0.017604269087314606, + -0.026318242773413658, + -0.050075192004442215, + 0.012927119620144367, + 0.0029464182443916798, + -0.03474453464150429, + -0.0626218244433403, + -0.046660128980875015, + -0.0035078616347163916, + 0.04510108008980751, + -0.075428307056427, + -0.0044776275753974915, + 0.012889999896287918, + 0.0075957272201776505, + 0.030308667570352554, + 0.0167226642370224, + 0.018569394946098328, + -0.04101785272359848, + 0.02971474453806877, + 0.013289042748510838, + -0.01001318171620369, + 0.0017156506655737758, + -0.01297351997345686, + -0.0035449820570647717, + -0.04699420928955078, + 0.0300302654504776, + -0.025668639689683914, + 0.060914296656847, + -0.0023942547850310802, + 0.05115167796611786, + 0.028916658833622932, + 0.009873981587588787, + -0.0008891455363482237, + 0.009488859213888645, + 0.06295590847730637, + -0.015117214061319828, + 0.017613548785448074, + -0.0232001431286335, + 0.013465363532304764, + -0.009164056740701199, + -0.009911101311445236, + -0.028786737471818924, + -0.005851076450198889, + 0.050446391105651855, + 0.017557868734002113, + 0.005094751715660095, + -0.013753045350313187, + -0.02069452777504921, + 0.05790755897760391, + -0.030605629086494446, + 0.029937464743852615, + -0.032201800495386124, + -0.03493013605475426, + 0.002487055491656065, + 0.017177386209368706, + 0.019692281261086464, + 0.014059287495911121, + -0.037454310804605484, + -0.008505173027515411, + -0.003180739702656865, + 0.019636601209640503, + -0.03773271292448044, + -0.0007099243812263012, + 0.012713679112493992, + 0.0046052285470068455, + 0.011507270857691765, + 8.373802120331675e-05, + -0.06982315331697464, + 0.008523732423782349, + -0.025965601205825806, + 0.012101194821298122, + -0.050372153520584106, + -0.003869784064590931, + 0.08107057958841324, + -0.00918261706829071, + -0.008106130175292492, + -0.028471216559410095, + 0.0118135130032897, + -0.053378891199827194, + -0.036470625549554825, + 0.002600736217573285, + 0.006226918660104275, + 0.02887953817844391, + -0.04072089120745659, + -0.011609352193772793, + -0.011433030478656292, + -0.013873686082661152, + 0.022903181612491608, + 0.020527487620711327, + 0.07539118826389313, + 0.013762325048446655, + -0.024851994588971138, + 0.04417307302355766 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换排气阀座", + "编号": "MT012", + "内容": "表 4.14 MT012 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT012040103阀座更换排气阀座2A/16000hJY级
安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。
安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。
序号名称规格/型号数量及单位备注
1便携式阀座镗床SUNNEN SV-201台带角度调节
2液压阀座压装机HYDRA-SEAT-PRESS1台用于过盈配合座
3渗透探伤套装Magnaflux ZL-27A1套PT检测裂纹
4角度规0-90°Protractor1把检查密封锥角
2)备品备件
名称规格/型号消耗数量备注
1排气阀座MAN5L35MC-EXH-SEAT1件Stellite合金堆焊
2定位销(如适用)Φ8×20 mm1个不锈钢
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温镍基焊条ENiCrFe-31根用于焊接固定(如需要)
2清洗剂Brulin 815GD150mL清洁阀座孔
3研磨膏(细)Clover Leaf Green20g配合研磨
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工批准焊接/压装方案
修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座
1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。
2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座);
3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。
页码:1/1 版本号:1
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.14 MT012 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT012040103阀座更换排气阀座2A/16000hJY级
安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。
安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。
序号名称规格/型号数量及单位备注
1便携式阀座镗床SUNNEN SV-201台带角度调节
2液压阀座压装机HYDRA-SEAT-PRESS1台用于过盈配合座
3渗透探伤套装Magnaflux ZL-27A1套PT检测裂纹
4角度规0-90°Protractor1把检查密封锥角
2)备品备件
名称规格/型号消耗数量备注
1排气阀座MAN5L35MC-EXH-SEAT1件Stellite合金堆焊
2定位销(如适用)Φ8×20 mm1个不锈钢
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温镍基焊条ENiCrFe-31根用于焊接固定(如需要)
2清洗剂Brulin 815GD150mL清洁阀座孔
3研磨膏(细)Clover Leaf Green20g配合研磨
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工批准焊接/压装方案
修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座
1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。
2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座);
3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。
页码:1/1 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_a654d966-cd48-4143-b1db-32286e025f22.pdf#page=41\"}]", + "embedding": [ + -0.03379763662815094, + -0.0068395440466701984, + -0.04427604749798775, + -0.011669138446450233, + -0.010192635469138622, + -0.030920835211873055, + -0.010106902569532394, + -0.013145641423761845, + 0.012602669186890125, + -0.01336473599076271, + 0.025376804172992706, + -0.0009251959854736924, + 0.0014776940224692225, + 0.02421465329825878, + -0.0116500873118639, + -0.05448773130774498, + -0.007282495032995939, + -0.007473011501133442, + 0.02549111470580101, + -0.014888867735862732, + -0.03654107451438904, + -0.014441153965890408, + 0.0024374211207032204, + 0.024938616901636124, + 0.028501275926828384, + 0.022290436550974846, + 0.012755082920193672, + 0.006720471195876598, + 0.0088637825101614, + -0.006601398345082998, + -0.007306309416890144, + -0.00047212382196448743, + -0.04972481727600098, + -0.026367491111159325, + 0.0033411839976906776, + -0.029644375666975975, + 0.0035769480746239424, + -0.008925700560212135, + -0.05155377835035324, + 0.026405593380331993, + 0.015460417605936527, + -0.05620238184928894, + 0.022347591817378998, + -0.032826002687215805, + -0.0030268316622823477, + -0.031359024345874786, + -0.00021790330356452614, + -0.011688190512359142, + 0.005015348084270954, + -0.010459358803927898, + 0.011469095945358276, + 0.012774134986102581, + 0.026519903913140297, + -0.0419517420232296, + 0.005343989003449678, + 0.027167659252882004, + -0.008611347526311874, + -0.04888654500246048, + -0.05700255185365677, + -0.017879977822303772, + -0.05345894396305084, + 0.024805255234241486, + -0.04179932922124863, + 0.01210732664912939, + 0.039665546268224716, + 0.0906858742237091, + 0.02202371321618557, + 0.009616322815418243, + -0.010592720471322536, + -0.04404742643237114, + -0.0023040594533085823, + 0.005129658151417971, + -0.002762489952147007, + 0.0064394595101475716, + -0.04713379219174385, + 0.027301020920276642, + 0.0578027218580246, + 0.009221000596880913, + 0.023947929963469505, + 0.009016195312142372, + 0.041037265211343765, + -0.002933954820036888, + 0.022576211020350456, + 0.00470337737351656, + 0.001347904559224844, + 0.0032983177807182074, + 0.002448137616738677, + 0.013879130594432354, + -0.06226080656051636, + 0.0028648925945162773, + -0.041418299078941345, + 0.028539378196001053, + 0.004600974731147289, + 0.013459994457662106, + -0.028691792860627174, + 0.0026076952926814556, + 0.04313294589519501, + -0.018442001193761826, + 0.057878926396369934, + -0.06938612461090088, + 0.020613890141248703, + 0.03676969185471535, + 0.03657917678356171, + -0.02663421258330345, + 0.01581287384033203, + -0.016841663047671318, + 0.028844205662608147, + 0.014936497434973717, + -0.0004730168730020523, + -0.013059909455478191, + -0.003017305862158537, + 0.027377227321267128, + 0.025148184970021248, + 0.0048629348166286945, + -0.007620661985129118, + -0.037950895726680756, + 0.014698351733386517, + -0.05757410079240799, + 0.03796994686126709, + -0.013031331822276115, + -0.014288741163909435, + 0.01317421905696392, + 0.030025407671928406, + -0.04465707764029503, + -0.0030720792710781097, + -0.010478409938514233, + 0.04621931537985802, + 0.004477139096707106, + -0.031740058213472366, + -0.013164693489670753, + -0.006329912226647139, + 0.0014014873886480927, + -0.010811814107000828, + 0.011354786343872547, + -0.0541067011654377, + -0.02511008083820343, + -0.02634843811392784, + 0.012154955416917801, + 0.0018551548710092902, + -0.013679088093340397, + -0.013536200858652592, + 0.04168502241373062, + -0.030254026874899864, + 0.002133785281330347, + -0.010259316302835941, + 0.0466003492474556, + 0.02695809118449688, + 0.0034126276150345802, + 0.034064359962940216, + -0.023719310760498047, + -0.001070464844815433, + 0.017517996951937675, + 0.024424221366643906, + 0.013355210423469543, + 0.047248102724552155, + 0.016127225011587143, + -0.04690517485141754, + 0.0032983177807182074, + 0.0010359337320551276, + -0.023185864090919495, + 0.015870029106736183, + 0.09449620544910431, + -0.0475529320538044, + -0.00965918879956007, + 0.006310860626399517, + -0.012593143619596958, + 0.028691792860627174, + -0.0043556843884289265, + 0.0049058012664318085, + -0.0032387813553214073, + 0.05547842010855675, + 0.006687130779027939, + 0.021433111280202866, + 0.020899664610624313, + 0.012917022220790386, + 0.014612618833780289, + -0.02956816740334034, + -0.0014431627932935953, + 0.04134209081530571, + -0.006549006327986717, + -0.01276460848748684, + 0.020728200674057007, + -0.011240476742386818, + -0.031721003353595734, + 0.00017637664859648794, + 0.0016086740652099252, + 0.0062394170090556145, + -0.030558854341506958, + -0.0025648290757089853, + 0.007601610384881496, + -0.03993226960301399, + -0.014555464498698711, + 0.0058393320068717, + 0.013450467959046364, + 0.06241321936249733, + -0.007630187552422285, + -0.011240476742386818, + -0.018222907558083534, + 0.004834357183426619, + 0.014269689098000526, + -0.03943692520260811, + -0.004579541739076376, + 0.022195177152752876, + 0.03484547510743141, + -0.01670830138027668, + 0.023281121626496315, + -0.001639633090235293, + -0.05772651359438896, + -0.015746193006634712, + -0.035817112773656845, + 0.009459146298468113, + 0.006534717511385679, + -0.003017305862158537, + -0.00843511987477541, + -0.054182905703783035, + 0.022061815485358238, + 0.026653265580534935, + -0.01893734559416771, + 0.0016598753863945603, + -0.010707030072808266, + -0.022061815485358238, + 0.02364310435950756, + 0.005725022405385971, + -0.014374473132193089, + 0.01779424585402012, + -0.034007202833890915, + 0.04461897537112236, + 0.032921258360147476, + -0.030273079872131348, + -0.013945811428129673, + -0.02791067399084568, + 0.013250425457954407, + -0.024709995836019516, + -0.022290436550974846, + 0.02956816740334034, + 0.02691998891532421, + -0.01912786066532135, + 0.07475869357585907, + 0.0009138840832747519, + -0.01884208619594574, + -0.014850764535367489, + -0.016251061111688614, + -0.002707716543227434, + -0.006248942576348782, + -0.017956184223294258, + 0.008516089990735054, + 0.013288529589772224, + -0.0024278953205794096, + -0.016774982213974, + 0.03583616390824318, + -0.011802500113844872, + -0.04580017924308777, + -0.04313294589519501, + 0.0014229204971343279, + 0.033016517758369446, + 0.03290220722556114, + 0.01406964659690857, + -0.005353515036404133, + 0.00039115428808145225, + 0.0033483284059911966, + 0.003631721716374159, + 0.08169349282979965, + 0.002290961565449834, + 0.02501482330262661, + -0.011859655380249023, + 0.03844624012708664, + -0.03867485746741295, + 0.01880398392677307, + 0.02392887882888317, + 0.0005590469809249043, + -0.03166384994983673, + 0.015793822705745697, + -0.0015920038567855954, + 0.008277944289147854, + 0.03202583268284798, + 0.024557583034038544, + 0.030863679945468903, + -0.020728200674057007, + 0.04282812029123306, + 0.005486876703798771, + 0.011640560813248158, + 0.022842934355139732, + 0.049381889402866364, + 0.016698775812983513, + -0.026805678382515907, + -0.010935650207102299, + -0.06694751232862473, + -0.015698563307523727, + -0.001983753638342023, + -0.06565200537443161, + -0.020613890141248703, + -0.09396275877952576, + 0.07308214902877808, + 0.014936497434973717, + -0.02387172356247902, + 0.03882727399468422, + 0.021718885749578476, + -0.16734974086284637, + 0.040465716272592545, + -0.02905377373099327, + 0.005982219707220793, + 0.01115474384278059, + 0.0018551548710092902, + -0.04439035430550575, + -0.010954701341688633, + -0.005224916152656078, + -0.05723116919398308, + -0.024614738300442696, + -0.06557579338550568, + -0.00760637316852808, + 0.0037388871423900127, + 9.763972775544971e-05, + -0.020709149539470673, + -0.013736243359744549, + 0.017679935321211815, + -0.013326632790267467, + -0.02781541645526886, + -0.05761220306158066, + -0.02648179978132248, + 0.100821353495121, + -0.005834569223225117, + -0.03013971820473671, + 0.025033874437212944, + 0.009325784631073475, + -0.03284505382180214, + -0.004072291310876608, + 0.011088063009083271, + 0.019756566733121872, + 0.03335944935679436, + -0.006139395758509636, + 0.02880610153079033, + 0.01462214533239603, + 0.017708513885736465, + 0.017556099221110344, + 0.015841450542211533, + -0.04461897537112236, + 0.050524987280368805, + 0.01734653115272522, + 0.019623205065727234, + 0.010011645033955574, + 0.025167236104607582, + -0.006606161128729582, + -0.05597376078367233, + -0.01163103524595499, + -0.004031806252896786, + -0.019108809530735016, + 0.00025868575903587043, + -0.007982643321156502, + 0.019432688131928444, + 0.018442001193761826, + -0.017899028956890106, + 0.006772863212972879, + -0.02486240863800049, + -0.013336158357560635, + 0.05563083291053772, + -0.02581499144434929, + 0.03212108835577965, + -0.025605423375964165, + -0.03463590890169144, + 0.024500427767634392, + 0.0028934699948877096, + -0.06824302673339844, + -0.013069435022771358, + 0.002154027810320258, + -0.06130822375416756, + -0.014707877300679684, + 0.014584042131900787, + 0.013583829626441002, + 0.023223966360092163, + 0.03793184459209442, + -0.031111352145671844, + -0.0020540065597742796, + 0.05947926640510559, + -0.008806627243757248, + -0.0012514556292444468, + -0.0401608869433403, + -0.14654533565044403, + 0.04408552870154381, + 0.03593141958117485, + -0.0036055257078260183, + -0.049572404474020004, + 0.00996401533484459, + -0.043971218168735504, + 0.03219729661941528, + 0.03758891299366951, + -0.005682155955582857, + 0.23791706562042236, + 0.05383997783064842, + 0.0055583203211426735, + -0.02027096040546894, + 0.011135691776871681, + -0.01654636301100254, + -4.595467544277199e-06, + -0.032673586159944534, + 0.01609864830970764, + -0.028748946264386177, + 0.0031768635381013155, + 0.033054620027542114, + 0.025834044441580772, + -0.011011856608092785, + 0.019642256200313568, + 0.007673054002225399, + -0.028063086792826653, + 0.01610817387700081, + 0.08893312513828278, + 0.016508258879184723, + -0.023986034095287323, + -0.015393736772239208, + 0.0017944277497008443, + 0.010278367437422276, + -0.046828966587781906, + -0.029320497065782547, + -0.023528793826699257, + 0.03518840670585632, + -0.041989848017692566, + 0.03191152215003967, + -0.01874682866036892, + 0.03612193837761879, + 0.0294348057359457, + -0.006044137291610241, + -0.02899661846458912, + 0.000801360234618187, + -0.02625318057835102, + -0.009687766432762146, + 0.0016896435990929604, + 0.0411134697496891, + -0.00889712292701006, + -0.020251909270882607, + 0.021528370678424835, + -0.009159083478152752, + -0.01497460063546896, + -0.02301439829170704, + -0.022004662081599236, + 0.04458087310194969, + -0.01158340647816658, + 0.03993226960301399, + -0.03905589133501053, + -0.020137598738074303, + -0.015765244141221046, + 0.013069435022771358, + 0.02316681295633316, + -0.010459358803927898, + -0.019546998664736748, + -0.03204488381743431, + 0.018480105325579643, + 0.03974175080657005, + 0.02406224049627781, + 0.00291966600343585, + -0.01782282255589962, + -0.010649874806404114, + 0.004748624749481678, + -0.03320703282952309, + -0.017927607521414757, + 0.05502117797732353, + -0.03113040328025818, + 0.016336793079972267, + -0.012774134986102581, + 0.008177923038601875, + 0.03650297224521637, + -0.00089126022066921, + 0.023243019357323647, + -0.009973540902137756, + -0.024271808564662933, + 0.07940729707479477, + 0.03240686655044556, + 0.026615161448717117, + -0.04378070309758186, + -0.0009555595461279154, + -0.015527098439633846, + -0.0068109664134681225, + 0.019137388095259666, + -0.04191363975405693, + 0.026272231712937355, + -0.009187660180032253, + -0.005863146856427193, + -0.002895851619541645, + -0.011049959808588028, + 0.015774769708514214, + -0.02720576338469982, + -0.002195703098550439, + -0.04077054187655449, + -0.04869602993130684, + 0.03993226960301399, + -0.08657071739435196, + -0.01549852080643177, + 0.03936071693897247, + -0.0308065265417099, + -0.03616004064679146, + 0.004269951954483986, + -0.028272654861211777, + 0.03204488381743431, + 0.03568375110626221, + -0.022404745221138, + 0.021623628214001656, + -0.0029744396451860666, + 0.03227350488305092, + 0.03000635653734207, + 0.03564564511179924, + -0.044123630970716476, + -0.03619814291596413, + 0.015736667439341545, + -0.012031120248138905, + 0.023319225758314133, + 0.0038365270011126995, + -0.010078324936330318, + 0.060584262013435364, + -0.006963379681110382, + 0.007239628583192825, + 0.020290011540055275, + 6.526680226670578e-05, + -0.007030060514807701, + 0.004939141683280468, + -0.04560966044664383, + -0.03791279345750809, + -0.07049112021923065, + 0.0579170286655426, + -0.028158346191048622, + -0.020671045407652855, + -0.014326844364404678, + 0.01293607335537672, + 0.05467825010418892, + 0.03627435117959976, + -0.00021537300199270248, + -0.004412839654833078, + 0.02141406014561653, + 0.0219284538179636, + -0.03160669654607773, + -0.014679299667477608, + -0.02059483900666237, + -0.03417867049574852, + 0.0004364019550848752, + -0.05025826394557953, + -0.008739946410059929, + -0.03219729661941528, + -0.039284512400627136, + 0.06858595460653305, + 0.018603941425681114, + 0.05444962903857231, + -0.05444962903857231, + -0.027967829257249832, + -0.02421465329825878, + -0.023223966360092163, + -0.006091766525059938, + 0.012078749015927315, + 0.020899664610624313, + -0.02131880261003971, + 0.018022865056991577, + 0.027129556983709335, + 0.025376804172992706, + 0.04541914537549019, + 0.05364945903420448, + 0.06469941884279251, + 0.0005045711877755821, + 0.024328963831067085, + 0.04324725642800331, + -0.010649874806404114, + 0.029834890738129616, + 0.007935014553368092, + -0.029263341799378395, + -0.00673952279612422, + 0.024805255234241486, + 0.009359125047922134, + -0.033778585493564606, + 0.01715601421892643, + -0.0531541183590889, + 0.029777735471725464, + 0.03143522888422012, + 0.04941999167203903, + -0.022442849352955818, + -0.022576211020350456, + -0.03347375616431236, + 0.024957668036222458, + -0.01922312006354332, + 0.005563083104789257, + 0.01056414283812046, + 0.022233281284570694, + -0.0363505557179451, + 0.09030484408140182, + -0.03955123573541641, + -0.015898605808615685, + -0.001894448883831501, + 0.059784092009067535, + 0.09792550653219223, + 0.013917233794927597, + -0.010830866172909737, + -0.015031755901873112, + -0.020385270938277245, + 0.027777312323451042, + -0.008539903908967972, + -0.007992168888449669, + -0.018632518127560616, + -0.011326208710670471, + -0.05292549729347229, + 0.007825466804206371, + 0.0001684880699031055, + -0.03901778906583786, + -0.006477562710642815, + 0.031301867216825485, + -0.0029982542619109154, + 0.023147759959101677, + 0.022671468555927277, + 0.004579541739076376, + 0.060203228145837784, + 0.05639289692044258, + -0.007430145516991615, + -0.028653688728809357, + 0.004031806252896786, + 0.005510691087692976, + 0.022557159885764122, + -0.0346168577671051, + -0.023509742692112923, + 0.024900512769818306, + 0.0028125005774199963, + -0.030444543808698654, + 0.039132099598646164, + 0.004610500298440456, + 0.01056414283812046, + 0.016193905845284462, + -0.05947926640510559, + -0.01601291634142399, + 0.019756566733121872, + 0.02482430636882782, + -0.016174854710698128, + 0.03905589133501053, + 0.002941099228337407, + 0.015927182510495186, + 0.02953006513416767, + 0.014317318797111511, + 0.03593141958117485, + 0.06915750354528427, + 0.01648920774459839, + 0.046257417649030685, + -0.06024133414030075, + -0.004419983830302954, + 0.0053963810205459595, + 0.03103514574468136, + -0.04305674135684967, + 0.011164269410073757, + 0.017879977822303772, + -0.005563083104789257, + -0.006568057928234339, + -0.030368337407708168, + -0.011783448047935963, + -0.011297631077468395, + -0.03829382732510567, + -0.01551757287234068, + 0.01578429527580738, + 0.041418299078941345, + -0.003722216933965683, + -0.042790018022060394, + 0.032349709421396255, + -0.028406016528606415, + 0.06473752111196518, + 0.014698351733386517, + 0.007163422182202339, + -0.01827053725719452, + -0.011783448047935963, + -0.011964439414441586, + -0.043971218168735504, + -0.014517361298203468, + 0.009859231300652027, + -0.028748946264386177, + -0.0022885799407958984, + 0.002111161593347788, + -0.02349068969488144, + 0.017136963084340096, + 0.0007656383677385747, + -0.04534293711185455, + -0.017079807817935944, + 0.01903260312974453, + -0.04214226081967354, + -0.0636325255036354, + 0.04545724764466286, + 0.020194754004478455, + -0.00028785859467461705, + 0.02189035154879093, + 0.026900935918092728, + -0.014393525198101997, + -0.06584251672029495, + -0.010049748234450817, + -0.027701105922460556, + 0.004762913566082716, + 0.0027934489771723747, + 0.007973117753863335, + -0.003953218460083008, + 0.05102033168077469, + -0.0004611095937434584, + 0.03816046565771103, + 0.0016741642029955983, + -0.016413001343607903, + 0.007153896149247885, + 0.012307369150221348, + 0.017337005585432053, + -0.009263867512345314, + 0.02354784496128559, + -0.01938505843281746, + 0.030635060742497444, + -0.03511219844222069, + -0.05311601236462593, + 0.042790018022060394, + 0.026367491111159325, + 0.009435332380235195, + 0.022747674956917763, + -0.013707665726542473, + -0.005986982490867376, + 0.02520533837378025, + -0.03065411187708378, + -0.021242594346404076, + 0.00404133228585124, + -0.02354784496128559, + -0.02972058206796646, + 0.02905377373099327, + -0.030177820473909378, + 0.030215924605727196, + -0.038141414523124695, + -0.04282812029123306, + -0.017432264983654022, + 0.01443162839859724, + -0.011993017047643661, + -0.00325068854726851, + 0.030158769339323044, + -0.008258892223238945, + 0.04134209081530571, + -0.024081291630864143, + 0.01521274633705616, + -0.024995770305395126, + 0.001834912458434701, + -0.029168084263801575, + 0.006782389245927334, + -0.014469731599092484, + 0.03688400238752365, + -0.01145957037806511, + -0.02667231671512127, + -0.016698775812983513, + 0.032540224492549896, + 0.016651146113872528, + -0.048962753266096115, + 0.01683213748037815, + 0.015841450542211533, + -0.009168609045445919, + -0.02876799926161766, + -0.008987617678940296, + 0.004858172032982111, + -0.02055673487484455, + -0.026367491111159325, + 0.014755506999790668, + -0.04442846029996872, + -0.04888654500246048, + -0.03779848292469978, + 0.04553345590829849, + -0.012602669186890125, + 0.022347591817378998, + -0.00060280627803877, + 0.013555251993238926, + 0.007592084351927042, + -0.002576736267656088, + -0.019051654264330864, + 0.03290220722556114, + 0.0070252977311611176, + 0.02122354321181774, + -0.025853095576167107, + 0.02994920127093792, + -0.026939040049910545, + -0.0044080764055252075, + 0.023376381024718285, + -0.013488571159541607, + -0.02354784496128559, + -0.024290859699249268, + 0.009425805881619453, + -0.024386117234826088, + 0.010973753407597542, + 0.009697292000055313, + -0.028425069525837898, + -0.0032673587556928396, + 0.050334472209215164, + 0.036522023379802704, + -0.03617909178137779, + -0.005248731002211571, + -0.021795092150568962, + 0.009859231300652027, + -0.16201527416706085, + 0.003969888668507338, + -0.036045730113983154, + -0.013888656161725521, + -0.049953438341617584, + -0.019175490364432335, + -0.03789374232292175, + -0.02743438258767128, + 0.012145429849624634, + -0.009592507965862751, + 0.016975024715065956, + -0.018442001193761826, + 0.056850139051675797, + 0.0023076317738741636, + 0.012021593749523163, + 0.029701529070734978, + 0.0029220476280897856, + 0.00281726336106658, + 0.02396698109805584, + 0.0411134697496891, + -0.020518632605671883, + 0.010992804542183876, + -0.023376381024718285, + -0.013936285860836506, + 0.03395004943013191, + -0.022004662081599236, + 0.029777735471725464, + 0.004710521548986435, + -0.006653790362179279, + -0.0219284538179636, + -0.031054196879267693, + -0.05719306692481041, + 0.04229467362165451, + 0.060203228145837784, + 0.010068799369037151, + -0.0336642749607563, + 0.0003420367429498583, + 0.03219729661941528, + 0.032483071088790894, + -0.026939040049910545, + 0.004434272646903992, + -0.0012300224043428898, + 0.03269264101982117, + 0.024652840569615364, + 0.011545302346348763, + 0.042370881885290146, + 0.012288317084312439, + -0.006201313808560371, + -0.0034102462232112885, + 0.012897970154881477, + 0.020137598738074303, + 0.04907706379890442, + -0.027262918651103973, + 0.01468882616609335, + 0.017356056720018387, + 0.025281546637415886, + -0.030063511803746223, + -0.0036626807413995266, + 0.04218036308884621, + 0.06915750354528427, + -0.06538528203964233, + -0.02619602531194687, + -0.0008299376931972802, + -0.05604996904730797, + -0.02411939576268196, + 0.015298479236662388, + -0.03535987064242363, + 0.005677393171936274, + 0.025453010573983192, + 0.0009448429918847978, + -0.024748099967837334, + -0.05330653116106987, + -0.038712963461875916, + -0.010364100337028503, + 0.018280062824487686, + -0.060355640947818756, + 0.00507726613432169, + -0.05742168799042702, + -0.007568269968032837, + -0.013898181729018688, + -0.01639394834637642, + -0.0034031018149107695, + -0.004108013119548559, + -0.0063060978427529335, + -0.029110928997397423, + 0.019661307334899902, + -0.023986034095287323, + -0.029892046004533768, + -0.012783660553395748, + -0.0011710814433172345, + -0.03284505382180214, + -0.03345470502972603, + 0.0037079283501952887, + 0.010573668405413628, + 0.024957668036222458, + 0.03227350488305092, + -0.02558637224137783, + -0.038046155124902725, + -0.018499156460165977, + -0.043171048164367676, + -0.04252329468727112, + -0.012335946783423424, + 0.009887808933854103, + 0.007954065687954426, + -0.005701207555830479, + 0.06988146901130676, + 0.04153260588645935, + -0.0027386753354221582, + 0.0168035589158535, + -0.010783236473798752, + -0.06546148657798767, + 0.005925064440816641, + -0.010878494940698147, + -0.025605423375964165, + -0.029796788468956947, + 0.006163210142403841, + -0.0485055148601532, + -0.031740058213472366, + -0.025224391371011734, + -0.028501275926828384, + -0.0029815840534865856, + 0.09007622301578522, + 0.001137145678512752, + -0.03726503625512123, + -0.01229784358292818, + -0.03917020186781883, + 0.024709995836019516, + -0.006772863212972879, + 0.006444222293794155, + 0.06934802234172821, + 0.01747036725282669, + 0.02065199427306652, + -0.008501800708472729, + 0.04263760522007942, + 0.017479892820119858, + -0.0119168097153306, + -0.05871719866991043, + 0.07502541691064835, + -0.02253810688853264, + -0.062108393758535385, + 0.015288952738046646, + 0.027320072054862976, + 0.0018956396961584687, + -0.052658773958683014, + 0.0030863680876791477, + 0.014279215596616268, + -0.008006458170711994, + 0.002143311081454158, + -0.03579805791378021, + -0.014831713400781155, + 0.010383151471614838, + -0.019242171198129654, + -0.015003178268671036, + -0.00721581419929862, + -0.010783236473798752, + 0.019527945667505264, + 0.03977985680103302, + -0.03501694276928902, + -0.025738785043358803, + 0.0031721005216240883, + 0.0018480104627087712, + -0.03154953941702843, + 0.007777838036417961, + -0.0038508158177137375, + 0.010973753407597542, + 0.02511008083820343, + 0.005605949554592371, + -0.02040432207286358, + -0.04130398854613304, + 0.004412839654833078, + -0.04602879658341408, + 0.01414585392922163, + -0.016765456646680832, + 0.0040746727026999, + 0.0028577481862157583, + -0.05364945903420448, + 0.03564564511179924, + -0.05182050168514252, + 0.0681668221950531, + -0.015984337776899338, + 0.0289585143327713, + 0.03676969185471535, + -0.004389024805277586, + -0.00646803667768836, + 0.004353302996605635, + 0.01288844458758831, + -0.015993863344192505, + 0.03214014321565628, + -0.060660470277071, + 0.004641459323465824, + 0.004155642352998257, + -0.028310758993029594, + -0.00015792035264894366, + -0.009792550466954708, + 0.0372459851205349, + -0.009301970712840557, + 0.02472904697060585, + 0.02568162977695465, + 0.002213564235717058, + 0.04419983923435211, + 0.02396698109805584, + -0.0035745666828006506, + 0.009830653667449951, + 0.016727352514863014, + -0.016813084483146667, + -0.029015669599175453, + 0.017860926687717438, + 0.03499789163470268, + -0.011850128881633282, + 0.021661732345819473, + -0.02520533837378025, + -0.004310437012463808, + -0.028406016528606415, + 0.013250425457954407, + 0.04267570748925209, + -0.00329355476424098, + -0.0037245985586196184, + 0.01699407584965229, + -0.006549006327986717, + -0.007082452531903982, + 0.003014924470335245, + 0.02046147733926773, + -0.00911621656268835, + -0.026558006182312965, + 0.055364109575748444, + -0.016717826947569847, + -0.0392083041369915, + -0.008539903908967972, + -0.022671468555927277, + -0.033721428364515305, + -0.015079384669661522, + -0.00836843904107809, + -0.022099919617176056, + 0.024519478902220726, + 0.0017110767075791955, + -0.04229467362165451, + 0.040313299745321274, + 0.012602669186890125, + -0.007063400931656361, + 0.02676757425069809, + 0.05521169677376747, + 0.009716344065964222, + -0.08192211389541626, + 0.027701105922460556 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "阀座", + "组成编码": "040103", + "维修项目名称": "更换排气阀座", + "维修项目编号": "MT012", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.14 MT012 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT012040103阀座更换排气阀座2A/16000hJY级
安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。
安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。
序号名称规格/型号数量及单位备注
1便携式阀座镗床SUNNEN SV-201台带角度调节
2液压阀座压装机HYDRA-SEAT-PRESS1台用于过盈配合座
3渗透探伤套装Magnaflux ZL-27A1套PT检测裂纹
4角度规0-90°Protractor1把检查密封锥角
2)备品备件
名称规格/型号消耗数量备注
1排气阀座MAN5L35MC-EXH-SEAT1件Stellite合金堆焊
2定位销(如适用)Φ8×20 mm1个不锈钢
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温镍基焊条ENiCrFe-31根用于焊接固定(如需要)
2清洗剂Brulin 815GD150mL清洁阀座孔
3研磨膏(细)Clover Leaf Green20g配合研磨
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工批准焊接/压装方案
修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座
1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。
2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座);
3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。
页码:1/1 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_a654d966-cd48-4143-b1db-32286e025f22.pdf#page=41\"}]", + "embedding": [ + -0.029294876381754875, + -0.00521867023780942, + -0.03517976030707359, + 0.0049272021278738976, + 0.005473126657307148, + -0.014342090114951134, + -0.010862976312637329, + -0.006273508071899414, + -0.0074578868225216866, + 0.012852363288402557, + 0.01317621674388647, + 0.00729596009477973, + 0.004746769089251757, + 0.023706087842583656, + 0.0010704519227147102, + -0.04833747074007988, + 0.013851683586835861, + -0.031163973733782768, + 0.0197273138910532, + -0.00806858204305172, + -0.04134223237633705, + -0.009752620942890644, + -0.02357654646039009, + 0.029850052669644356, + 0.019653290510177612, + 0.01387018896639347, + -0.02281780354678631, + 0.0037335699889808893, + -0.05029909685254097, + 0.014638184569776058, + 0.015693021938204765, + -0.019838349893689156, + -0.0249829962849617, + 0.013111446052789688, + -0.003449041396379471, + -0.031034432351589203, + 0.0035068723373115063, + -0.05255682021379471, + -0.05222371593117714, + 0.013916454277932644, + -0.018450405448675156, + -0.05107634887099266, + 0.008892095647752285, + -0.0705815926194191, + -0.026611516252160072, + -0.05281590297818184, + -0.014989797957241535, + -0.027388766407966614, + -0.0005048647290095687, + 0.012269427068531513, + -0.022984355688095093, + 0.00149319670163095, + 0.04926276579499245, + 0.012047355994582176, + 0.017867468297481537, + 0.008827324956655502, + -0.04641285538673401, + -0.014573413878679276, + -0.04160131514072418, + -0.005861751269549131, + -0.05137244239449501, + 0.006713023409247398, + -0.0743568018078804, + 0.019671795889735222, + 0.02333596907556057, + 0.07853913307189941, + 0.025686221197247505, + 0.012297186069190502, + -0.041231196373701096, + -0.004378964193165302, + 0.004397470038384199, + 0.0016181116225197911, + -0.014573413878679276, + 0.006592735182493925, + -0.04030590131878853, + 0.026815082877874374, + 0.01800626330077648, + -0.0011051505571231246, + 0.013768406584858894, + -0.0076105608604848385, + 0.035124242305755615, + 0.0004458770854398608, + 0.027906931936740875, + 0.005190911237150431, + -0.013092940673232079, + -0.007471766322851181, + 0.008924481458961964, + 0.017645398154854774, + -0.06447463482618332, + -0.006403049454092979, + -0.022910332307219505, + -0.00027382982079871, + 0.043785013258457184, + 0.0042378562502563, + -0.018145058304071426, + 0.013139205053448677, + 0.057331349700689316, + -0.022577226161956787, + 0.031848691403865814, + -0.04452525079250336, + 0.027425777167081833, + 0.058811821043491364, + -0.0011936320224776864, + -0.02333596907556057, + 0.001365968375466764, + -0.020689621567726135, + 0.017636144533753395, + -0.0016366175841540098, + 8.195738701033406e-06, + -0.00764294620603323, + -0.016183430328965187, + 0.047634243965148926, + 0.01832086406648159, + 0.01642400585114956, + -0.007888149470090866, + -0.024797936901450157, + -0.004506192170083523, + -0.024816442281007767, + 0.023428497835993767, + -0.015369168482720852, + -0.03841829672455788, + -0.015665262937545776, + 0.0327184721827507, + -0.04726412519812584, + -0.024224253371357918, + -0.021448364481329918, + 0.01830235682427883, + -0.005672065541148186, + -0.0009148865356110036, + 0.009382503107190132, + 0.005570282693952322, + 0.024797936901450157, + 0.003678052220493555, + -0.012833857908844948, + -0.03745598718523979, + -0.058737799525260925, + -0.02083766832947731, + 0.03027568943798542, + 0.00818424392491579, + -0.02503851428627968, + 0.00016626414435449988, + 0.06695442646741867, + -0.020893186330795288, + 0.017034702003002167, + 0.008244388736784458, + 0.005986665841192007, + -0.016238946467638016, + 0.010196763090789318, + -0.01387018896639347, + -0.0428227037191391, + 0.03556838259100914, + 0.019301677122712135, + 0.013046675361692905, + 0.023224933072924614, + 0.06169874593615532, + 0.02246619015932083, + -0.05462948605418205, + 0.030183160677552223, + -0.0028776710387319326, + -0.0011855356860905886, + 0.04056498408317566, + 0.061291616410017014, + -0.007208056747913361, + 0.003430535551160574, + 0.016174176707863808, + -0.02946142852306366, + 0.024390805512666702, + 0.0076799578964710236, + -0.019819842651486397, + -0.018524428829550743, + 0.021059740334749222, + -0.019301677122712135, + 0.0038677379488945007, + -0.0015834129881113768, + -0.003134440630674362, + 0.004330385942012072, + -0.024039193987846375, + 0.006042183842509985, + 0.0795014426112175, + -0.03797415271401405, + 0.005695197731256485, + 0.01067791786044836, + -0.0075828018598258495, + 0.031589608639478683, + 0.021300317719578743, + -0.019653290510177612, + -0.002912369556725025, + -0.02278079092502594, + -0.01444387249648571, + 0.0028522254433482885, + -0.04367397725582123, + -0.04670894891023636, + -0.006921214982867241, + -0.03686380013823509, + 0.041268207132816315, + 0.00969710387289524, + -0.03728943318128586, + -0.01862621121108532, + -0.006930468138307333, + -0.007846510969102383, + -0.07942742109298706, + -0.015036062337458134, + 0.001835556235164404, + 0.009391755796968937, + -0.01696067862212658, + 0.01335202343761921, + -0.029535453766584396, + -0.04548755660653114, + -0.03269996494054794, + -0.030090630054473877, + 0.0030210919212549925, + 0.014295825734734535, + 0.009835897944867611, + -0.019042594358325005, + -0.049817945808172226, + 0.020504562184214592, + 0.02142985910177231, + -0.025630703195929527, + 0.010187510401010513, + -0.029331887140870094, + -0.016266705468297005, + 0.028758203610777855, + 0.03284801170229912, + 0.011927067302167416, + 0.04226752743124962, + -0.04637584090232849, + -0.010974012315273285, + 0.004376650787889957, + -0.04774527996778488, + -0.01418478973209858, + -0.03919554501771927, + 0.008225882425904274, + -0.026278410106897354, + -0.04219350591301918, + 0.019338689744472504, + 0.03669724613428116, + -0.032366860657930374, + 0.07846511155366898, + 0.020745139569044113, + -0.042082469910383224, + -0.01113131269812584, + -0.029035793617367744, + 0.031515587121248245, + -0.006074569188058376, + -0.013740647584199905, + 0.04160131514072418, + 0.01040958147495985, + -0.005519391503185034, + -0.006555723026394844, + 0.029905570670962334, + 0.019893867895007133, + -0.0194312185049057, + -0.06521487236022949, + 0.018145058304071426, + 0.03312560170888901, + 0.04759723320603371, + 0.033199626952409744, + 0.0028707312885671854, + 0.010992518626153469, + 0.008901349268853664, + 0.016544295474886894, + 0.05385223403573036, + 0.018441151827573776, + 0.010881482623517513, + 0.01208436768501997, + -0.008790313266217709, + -0.04774527996778488, + 0.019338689744472504, + 0.025112537667155266, + -0.01347231213003397, + 0.002808273769915104, + -0.015618998557329178, + 0.002189482096582651, + -0.011464418843388557, + 0.005820112768560648, + 0.027314743027091026, + 0.021762965247035027, + -0.029072804376482964, + 0.022706767544150352, + 0.022891826927661896, + 0.03342169523239136, + 0.012389715760946274, + 0.04863356426358223, + 0.0246869008988142, + -0.029091311618685722, + -0.009826645255088806, + -0.0400468185544014, + -0.020430538803339005, + -0.008720915764570236, + -0.03057178482413292, + -0.029498441144824028, + -0.06199484318494797, + 0.05644306540489197, + 0.020189961418509483, + -0.04700504243373871, + 0.007716970052570105, + 0.014962038956582546, + -0.14449425041675568, + 0.044007085263729095, + -0.026185881346464157, + 0.026333928108215332, + -0.005736836232244968, + 0.01917213574051857, + -0.03838128224015236, + -0.006338278762996197, + 0.0015695336041972041, + -0.06118058040738106, + -0.00700911832973361, + -0.06980434060096741, + -0.031515587121248245, + 0.0017395567847415805, + 0.025168055668473244, + -0.026611516252160072, + -0.025057019665837288, + 0.008577494882047176, + 0.005366717465221882, + 0.011991837993264198, + -0.015905840322375298, + -0.015581986866891384, + 0.06606614589691162, + -0.01803402230143547, + -0.05548075586557388, + 0.011880802921950817, + -0.008855083957314491, + -0.01948673650622368, + 0.012713569216430187, + -0.02246619015932083, + 0.03255191817879677, + 0.04522847384214401, + -0.007027624174952507, + 0.02224412001669407, + 0.0024265891406685114, + 0.019227653741836548, + -0.0052649350836873055, + 0.0322188101708889, + -0.0063475314527750015, + 0.04186039790511131, + 0.004212410654872656, + 0.011186830699443817, + 0.007323719095438719, + 0.030331207439303398, + -0.005454620812088251, + -0.05037312209606171, + -0.010705675929784775, + 0.019523749127984047, + -0.044081106781959534, + -0.022336648777127266, + -0.00013091495202388614, + 0.041786372661590576, + 0.02555667981505394, + -0.018820524215698242, + -0.01554497517645359, + -0.04637584090232849, + -0.005380596965551376, + 0.016831137239933014, + 0.024890465661883354, + 0.02302136830985546, + -0.03447653353214264, + -0.05825664475560188, + 0.052926938980817795, + -0.05555478110909462, + -0.06473372131586075, + -0.02194802463054657, + -0.01403674203902483, + -0.014212548732757568, + -0.016211189329624176, + -0.018672475591301918, + 0.03029419481754303, + -0.0180432740598917, + 0.025427138432860374, + -0.031182479113340378, + -0.004071303177624941, + 0.039565663784742355, + 0.0183393694460392, + -0.010085728019475937, + -0.031515587121248245, + -0.0955645889043808, + 0.02690761163830757, + 0.007943667471408844, + 0.015091580338776112, + -0.07154389470815659, + -0.006763914600014687, + -0.02920234575867653, + 0.0235950518399477, + 0.03908450901508331, + -0.01919064112007618, + 0.23421095311641693, + 0.02107824571430683, + 0.031163973733782768, + -0.02218860201537609, + -0.007055383175611496, + 0.000831031589768827, + -0.025390125811100006, + -0.04637584090232849, + -0.009946933947503567, + -0.02916533499956131, + 0.03801116719841957, + 0.007647572550922632, + 0.03771506994962692, + -0.017599131911993027, + 0.01642400585114956, + 0.03368077799677849, + -0.030146148055791855, + -0.03593850135803223, + 0.09504642337560654, + 0.009183564223349094, + -0.04889264702796936, + 0.0011739694746211171, + 0.012398968450725079, + -0.013648117892444134, + -0.031793177127838135, + -0.044895369559526443, + -0.002542251255363226, + 0.02835107408463955, + -0.009017011150717735, + 0.025482656434178352, + -0.03699333965778351, + 0.026463469490408897, + 0.015128592029213905, + -0.005995918996632099, + -0.016026129946112633, + -0.011556948535144329, + -0.03699333965778351, + 0.007962172850966454, + 0.019098112359642982, + 0.006208736915141344, + -0.044858358800411224, + -0.035734936594963074, + 0.01124234776943922, + -0.005792353767901659, + 0.008716289885342121, + -0.020504562184214592, + 0.002040277933701873, + 0.05326004698872566, + -0.029850052669644356, + -0.007346851285547018, + -0.031534094363451004, + -0.026518987491726875, + -0.03053477220237255, + 0.019597772508859634, + 0.001306980848312378, + -0.040713030844926834, + -0.022688262164592743, + -0.03242237865924835, + 0.0032917410135269165, + 0.05814560875296593, + 0.01748809777200222, + 0.01857994683086872, + -0.007624440360814333, + -0.013555588200688362, + -0.0019454351859167218, + -0.038751401007175446, + -0.029035793617367744, + 0.0360865481197834, + -0.011603213846683502, + 0.02161491848528385, + 0.0038145333528518677, + 0.018737247213721275, + 0.03834427148103714, + 0.026778070256114006, + 0.006245749071240425, + 0.029868559911847115, + -0.0205230675637722, + 0.0729503482580185, + 0.008350797928869724, + -0.007545790169388056, + -0.041268207132816315, + -0.017080966383218765, + -0.005588788539171219, + 0.018117299303412437, + 0.011640225537121296, + -0.020504562184214592, + 0.006338278762996197, + -0.013805418275296688, + 0.02579725719988346, + -0.023206427693367004, + -0.007083142176270485, + 0.008545110002160072, + -0.01610015332698822, + -0.03978773579001427, + -0.04056498408317566, + -0.060958508402109146, + 0.00018101105524692684, + -0.07306138426065445, + -0.02888774499297142, + 0.03610505536198616, + -0.04644986614584923, + -0.02779589593410492, + -0.0012375835794955492, + -0.009586067870259285, + 0.02524207904934883, + 0.0225032027810812, + -0.02585277333855629, + 0.013268746435642242, + 0.00548237981274724, + 0.008855083957314491, + 0.013925706967711449, + 0.012186150066554546, + -0.03629011660814285, + -0.018783511593937874, + 0.06699144095182419, + -0.01557273417711258, + 0.03784461319446564, + -0.0026741058100014925, + -0.007684584241360426, + 0.07765085250139236, + -0.006264254916459322, + 0.0040019056759774685, + 0.034606076776981354, + -0.03240387141704559, + -0.02135583572089672, + -0.013222482055425644, + -0.06440061330795288, + -0.058996882289648056, + -0.0721730962395668, + 0.04037992283701897, + -0.02337297983467579, + -0.04019486531615257, + -0.06595510989427567, + -0.012093620374798775, + 0.048707589507102966, + 0.02522357366979122, + 0.04667193815112114, + -0.011584707535803318, + -0.003231596667319536, + 0.037937141954898834, + -0.01110355369746685, + 0.023113897070288658, + -0.009817391633987427, + 0.0006095388089306653, + -0.012787592597305775, + -0.022595731541514397, + -0.017997009679675102, + -0.03245938941836357, + -0.005449994467198849, + 0.050965312868356705, + 0.00035537153598852456, + 0.02663002349436283, + -0.03693782165646553, + -0.023539533838629723, + -0.005301946774125099, + -0.029887065291404724, + -0.025408631190657616, + -0.01612791232764721, + -0.002110831905156374, + -0.024242758750915527, + 0.015174856409430504, + 0.03083086758852005, + 0.02279929630458355, + 0.0123434504494071, + 0.049299780279397964, + 0.07787292450666428, + -0.008707036264240742, + -0.005991292651742697, + -0.008674651384353638, + 0.018126551061868668, + -0.0013648117892444134, + -0.017950745299458504, + -0.035975515842437744, + 0.02585277333855629, + 0.05603593587875366, + -0.0018436525715515018, + -0.03369928523898125, + 0.006463193334639072, + -0.05496259033679962, + 0.03912151977419853, + 0.035105735063552856, + 0.06506682187318802, + -0.001434209058061242, + -0.02864716947078705, + -0.03529079630970955, + 0.060144249349832535, + 0.025649208575487137, + 0.002100422279909253, + -0.005126140546053648, + 0.027370259165763855, + -0.024316782131791115, + 0.08231434226036072, + -0.07468990236520767, + -0.016229694709181786, + -0.010566881857812405, + 0.023706087842583656, + 0.04393306002020836, + 0.033440202474594116, + 0.006208736915141344, + -0.029239358380436897, + -0.020689621567726135, + 0.030738336965441704, + 0.01969030126929283, + 0.01670159585773945, + -0.017580626532435417, + -0.021540895104408264, + -0.038159213960170746, + 0.01557273417711258, + 0.0054592471569776535, + -0.005473126657307148, + -0.011344131082296371, + 0.033144108951091766, + -0.018709488213062286, + 0.02030099742114544, + 0.017997009679675102, + -0.0019650976173579693, + 0.0743568018078804, + 0.07661452144384384, + 0.04200844466686249, + -0.03889945149421692, + 0.03808518871665001, + 0.018200574442744255, + -0.0030511640943586826, + -0.023243438452482224, + -0.016886655241250992, + 0.021300317719578743, + 0.015600493177771568, + -0.007027624174952507, + 0.0246869008988142, + -0.009845150634646416, + 0.012010344304144382, + -0.0023236500564962626, + -0.04974392056465149, + -0.06625120341777802, + 0.02720370702445507, + -0.010057969018816948, + -0.016794124618172646, + 0.04467329755425453, + -0.03110845573246479, + 0.024057699367403984, + 0.07265425473451614, + 0.02947993576526642, + 0.02996108867228031, + 0.047930341213941574, + 0.021300317719578743, + 0.05470350757241249, + -0.05499960109591484, + 0.03838128224015236, + 0.023132404312491417, + 0.016858896240592003, + -0.0032477895729243755, + 0.024298276752233505, + 0.0317191518843174, + -0.021004222333431244, + 0.030645808205008507, + -0.0328110009431839, + -0.0200234092772007, + -0.02224412001669407, + -0.000640767568256706, + -0.019523749127984047, + 0.017108725383877754, + 0.06195782870054245, + -0.02833256870508194, + -0.015702275559306145, + -0.006925841793417931, + -0.00547775300219655, + 0.03582746535539627, + -0.0062226164154708385, + -0.00521867023780942, + 0.014601172879338264, + 0.004228603560477495, + 0.0010056812316179276, + -0.032089270651340485, + 0.011186830699443817, + 0.07646647095680237, + -0.008535857312381268, + -0.022669754922389984, + -0.021226294338703156, + -0.027370259165763855, + 0.03867737948894501, + -0.002470540814101696, + -0.07002641260623932, + -0.017062461003661156, + 0.030627302825450897, + -0.03133052587509155, + -0.03640114888548851, + 0.026518987491726875, + 0.0018077973509207368, + -0.020985716953873634, + 0.04308179020881653, + 0.04992897808551788, + -0.018690982833504677, + -0.07757683098316193, + -0.04563560709357262, + -0.03725242242217064, + 0.019764326512813568, + -0.005945027805864811, + -0.012972651980817318, + -0.03107144497334957, + 0.05759043246507645, + 0.006689891219139099, + 0.03747449442744255, + -0.018478164449334145, + 0.00416614580899477, + 0.02080065757036209, + 0.00232249335385859, + 0.015905840322375298, + -0.0222071073949337, + -0.012843110598623753, + 0.0006777794333174825, + 0.02803647331893444, + 0.011853043921291828, + -0.05303797498345375, + 0.024612877517938614, + 0.031256504356861115, + -0.005292694084346294, + 0.047079067677259445, + -0.04189740866422653, + 0.0013197036460042, + 0.020726634189486504, + -0.007971426472067833, + -0.0010762350866571069, + 0.01191781461238861, + -0.0013335830299183726, + -0.024575864896178246, + 0.022151589393615723, + -0.05662812292575836, + 0.014693702571094036, + -0.010918494313955307, + 0.003573956433683634, + -0.017691662535071373, + 0.018987076357007027, + -0.04304477572441101, + 0.016988437622785568, + 0.031552597880363464, + 0.06728753447532654, + 0.016581306234002113, + -0.003606341779232025, + 0.022299636155366898, + 0.039047498255968094, + -0.014888014644384384, + -0.018117299303412437, + 0.019579267129302025, + -0.009363996796309948, + 0.033144108951091766, + -0.0003128657699562609, + -0.028758203610777855, + -0.025649208575487137, + -0.006861071102321148, + 0.010974012315273285, + -0.04352593049407005, + 0.004725949838757515, + 0.01915363036096096, + -0.03978773579001427, + -0.022984355688095093, + -0.020412033423781395, + 0.031478576362133026, + -0.0197273138910532, + -0.011223842389881611, + 0.019875360652804375, + -0.02056008018553257, + -0.03701184689998627, + -0.012861615978181362, + 0.052926938980817795, + -0.04663492739200592, + -0.0017939178505912423, + -0.0020784465596079826, + 0.025057019665837288, + 0.03277399018406868, + -0.016581306234002113, + -0.026463469490408897, + 0.013648117892444134, + 0.013102193363010883, + -0.002216084161773324, + -0.017589880153536797, + 0.04974392056465149, + -0.03327364847064018, + 0.0018667849944904447, + 0.047634243965148926, + -0.025612197816371918, + -0.038159213960170746, + -0.03690081089735031, + 0.00576922157779336, + -0.01277833990752697, + 0.05007702857255936, + 0.0006633216980844736, + -0.02609335072338581, + -0.03353273123502731, + 0.07683659344911575, + 0.054074306041002274, + 0.0008680434548296034, + 0.02309539169073105, + -0.03530929982662201, + 0.017710167914628983, + -0.12643246352672577, + 0.006102328188717365, + -0.02496448904275894, + -0.0039579542353749275, + -0.03229283541440964, + 0.00902626384049654, + -0.025371620431542397, + -0.026889106258749962, + 0.0007940197247080505, + 0.005695197731256485, + 0.03860335424542427, + 0.01611865870654583, + 0.06676936894655228, + -0.027148189023137093, + -0.002755069173872471, + -0.0009582597995176911, + -0.002819840097799897, + -0.009780379943549633, + -0.013934959657490253, + 0.05281590297818184, + -0.024316782131791115, + 0.01969030126929283, + -0.02916533499956131, + -0.0063752904534339905, + 0.01403674203902483, + -0.0018621585331857204, + 0.030053619295358658, + 0.00312981428578496, + -0.016294464468955994, + 0.007198804058134556, + 0.02222561277449131, + -0.08757002651691437, + 0.05533270910382271, + 0.02142985910177231, + -0.003872364293783903, + 0.007846510969102383, + -0.005547150503844023, + 0.013777659274637699, + 0.04767125844955444, + 0.00709239486604929, + 0.03186719864606857, + -0.015387674793601036, + 0.031293515115976334, + 0.01528589241206646, + -0.0053620911203324795, + 0.02030099742114544, + 0.027333248406648636, + -0.00038544367998838425, + 0.01096475962549448, + 0.012213909067213535, + 0.012926386669278145, + 0.05481454357504845, + -0.048485517501831055, + 0.017626890912652016, + 0.012075114995241165, + -0.0030951155349612236, + -0.05995919182896614, + 0.01067791786044836, + 0.016609065234661102, + 0.05270486697554588, + -0.051520489156246185, + -0.0036364139523357153, + 0.012861615978181362, + -0.04855954274535179, + -0.030923396348953247, + 0.001552184228785336, + -0.05714628845453262, + 0.004066676367074251, + -0.00211892812512815, + -0.029942583292722702, + -0.012935640290379524, + -0.008295279927551746, + -0.005255681928247213, + -0.032070763409137726, + 0.017016196623444557, + -0.03614206612110138, + -0.003083549439907074, + -0.0355868898332119, + -0.0008316098828800023, + -0.003992652986198664, + -0.019893867895007133, + -0.00790202897042036, + 0.004221663810312748, + 0.027370259165763855, + -0.02531610243022442, + 0.03423595800995827, + -0.008054702542722225, + -0.030978914350271225, + -0.042082469910383224, + -0.01220465637743473, + -0.02748129516839981, + -0.02559369057416916, + -0.00521867023780942, + -0.021189281716942787, + 0.044266168028116226, + 0.005570282693952322, + -0.03590149059891701, + -0.02912832237780094, + -0.021596411243081093, + -0.0371784009039402, + 0.00694897398352623, + 0.018219081684947014, + -0.0014122332213446498, + 0.006555723026394844, + 0.024390805512666702, + 0.02725922502577305, + 0.0739496648311615, + 0.031811680644750595, + 0.014536402188241482, + 0.01775643229484558, + -0.03634563088417053, + 0.0025260585825890303, + 0.0015949791995808482, + 0.002766635501757264, + -0.07728073745965958, + 0.011834537610411644, + -0.017293784767389297, + -0.006046810187399387, + -0.017691662535071373, + -0.03493918105959892, + -0.006435434799641371, + 0.06051436811685562, + -0.01613716408610344, + -0.02914682775735855, + 0.00928534660488367, + -0.02413172274827957, + 0.0020796030294150114, + 0.015581986866891384, + 0.0027249972335994244, + 0.035660915076732635, + 0.01915363036096096, + -0.023817121982574463, + -0.029091311618685722, + 0.027943942695856094, + 0.02503851428627968, + -0.022392166778445244, + -0.08024168014526367, + 0.07243218272924423, + 0.0009507418144494295, + -0.041194185614585876, + -0.0025075525045394897, + 0.042600635439157486, + 0.004011158831417561, + -0.021485377103090286, + 0.020338010042905807, + 0.01779344491660595, + -0.004496939480304718, + -0.0006893456447869539, + -0.03247789293527603, + 0.0022449998650699854, + 0.02807348407804966, + -0.009363996796309948, + -0.014962038956582546, + -0.026889106258749962, + 0.020449044182896614, + 0.006416928954422474, + 0.009974692016839981, + 0.008688530884683132, + -0.039010483771562576, + -0.0025283717550337315, + 0.03240387141704559, + -0.0263709407299757, + 0.004941081628203392, + -0.0008084775181487203, + 0.006611241027712822, + 0.028240038082003593, + 0.007282080594450235, + 0.006639000028371811, + -0.029794536530971527, + 0.01375915389508009, + -0.044007085263729095, + -0.014619679190218449, + 0.009188191033899784, + 0.014194042421877384, + -0.003749762661755085, + -0.04156430438160896, + 0.01605388894677162, + -0.036752764135599136, + 0.0987476035952568, + -0.012250920757651329, + 0.04648687690496445, + 0.05048415809869766, + 0.023687580600380898, + 0.006042183842509985, + 0.016738606616854668, + 0.04285971820354462, + 0.006097701378166676, + 0.024779431521892548, + -0.0864596739411354, + 0.0036317873746156693, + -0.0002645768690854311, + -0.04108314961194992, + -0.01721050776541233, + -0.012528509832918644, + 0.02698163501918316, + 0.039861757308244705, + 0.01528589241206646, + 0.04918874427676201, + -0.008831951767206192, + 0.03975072130560875, + -0.02975752390921116, + -0.0019153630128130317, + -0.01860770583152771, + -0.021004222333431244, + 0.015082326717674732, + 0.03257042542099953, + 0.010622399859130383, + 0.012963399291038513, + -0.022577226161956787, + -0.012241668067872524, + -0.00562117388471961, + -0.0013081374345347285, + -0.017099473625421524, + 0.014823243953287601, + 0.012102873995900154, + -0.007055383175611496, + -0.021874001249670982, + 0.027610836550593376, + -0.004649613052606583, + 0.0130374226719141, + -0.0016632197657600045, + 0.024372300133109093, + -0.016303718090057373, + -0.03412492200732231, + 0.06143966317176819, + -0.008276773616671562, + -0.00576922157779336, + 0.023558039218187332, + 0.027037153020501137, + -0.04056498408317566, + -0.008633012883365154, + -0.010705675929784775, + -0.007203430403023958, + 0.034050896763801575, + 0.019838349893689156, + -0.024224253371357918, + -0.006842564791440964, + -0.009669344872236252, + -0.004186965059489012, + 0.004193904809653759, + 0.0832766517996788, + 0.011890055611729622, + -0.08246239274740219, + 0.040972113609313965 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换喷油嘴偶件", + "编号": "MT013", + "内容": "表 4.15 MT013 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT013050201喷油嘴偶件更换喷油嘴偶件6M/4000hJY级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火
安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2高压燃油压力表0-20 MPa1个校验有效期内
3喷油雾化测试台Bosch EPS 8151台可测开启压力与雾化角
4扭矩扳手40 -200 N·m1把用于喷油器压紧螺母
名称规格/型号消耗数量备注
1喷油嘴偶件(针阀+阀体)MAN5L35MC-INJ-NOZZLE-KIT1套原厂高精度配对
2喷油器铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
\n\n
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200 mL用于冲洗油道
2 3无绒布 高温润滑脂Kimwipe EX-L5张 少量擦拭偶件表面
4)人力人员Molycote G-1052涂压紧螺纹
序号专业人数技能等级备注
修理步骤及工艺1机械专业2工程师+技师工程师操作测试 台
更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件
(1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5°
无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa;
2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.15 MT013 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT013050201喷油嘴偶件更换喷油嘴偶件6M/4000hJY级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火
安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2高压燃油压力表0-20 MPa1个校验有效期内
3喷油雾化测试台Bosch EPS 8151台可测开启压力与雾化角
4扭矩扳手40 -200 N·m1把用于喷油器压紧螺母
名称规格/型号消耗数量备注
1喷油嘴偶件(针阀+阀体)MAN5L35MC-INJ-NOZZLE-KIT1套原厂高精度配对
2喷油器铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
\\n\\n
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200 mL用于冲洗油道
2 3无绒布 高温润滑脂Kimwipe EX-L5张 少量擦拭偶件表面
4)人力人员Molycote G-1052涂压紧螺纹
序号专业人数技能等级备注
修理步骤及工艺1机械专业2工程师+技师工程师操作测试 台
更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件
(1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5°
无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa;
2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_b333c56d-9e77-429b-88f9-9329465ba601.pdf#page=42\"}]", + "embedding": [ + -0.05226431414484978, + 0.013066078536212444, + -0.038827039301395416, + -0.004396345466375351, + -0.009465483017265797, + -0.06922794133424759, + -0.0027932454831898212, + 0.0011971051571890712, + -0.002656367141753435, + -0.03498516604304314, + 0.002493969164788723, + -0.01379918958991766, + 0.00835189688950777, + 0.04034893959760666, + 0.009456203319132328, + -0.02707870490849018, + -0.01767818070948124, + 0.020768383517861366, + 0.010903865098953247, + -0.014012626372277737, + -0.043578341603279114, + 0.0026331674307584763, + 0.018216414377093315, + -0.00541017297655344, + -0.019747596234083176, + 0.007210470736026764, + -0.004598183091729879, + 0.002084494335576892, + 0.03663698583841324, + -0.003999630454927683, + -0.008393656462430954, + -0.014652938582003117, + -0.06707501411437988, + -0.01799369789659977, + -0.026837429031729698, + -0.04896067455410957, + -0.024164821952581406, + 0.017975138500332832, + -0.04116557165980339, + 0.034149978309869766, + -0.017325546592473984, + -0.03556051850318909, + 0.016546035185456276, + -0.03008538857102394, + -0.03162584826350212, + -0.01021715346723795, + 0.0029301238246262074, + -0.017269866541028023, + 0.033518943935632706, + -0.00531273428350687, + 0.009228846058249474, + 0.007641985546797514, + 0.02344099059700966, + -0.0487750768661499, + -0.010811066254973412, + 0.016295477747917175, + -0.011024503968656063, + 0.003955550957471132, + -0.04413513466715813, + -0.002445249818265438, + -0.04513736069202423, + 0.024127701297402382, + -0.00710839219391346, + -0.0017828979762271047, + 0.01334447506815195, + 0.08626580983400345, + 0.004862660076469183, + -0.007210470736026764, + -0.02650335244834423, + -0.01998887211084366, + -0.012026730924844742, + 0.03459541127085686, + -0.010365631431341171, + 0.02113957889378071, + -0.03233112022280693, + 0.008825170807540417, + 0.11276916414499283, + -0.008509654551744461, + 0.007080552633851767, + -0.003869712119922042, + 0.045805513858795166, + -0.008611733093857765, + 0.032999273389577866, + 0.04157388582825661, + -0.012620643712580204, + 0.0535263791680336, + -0.00080850999802351, + -0.007409988436847925, + -0.018708249554038048, + -0.03808464854955673, + -0.015098373405635357, + -0.0033082792069762945, + 0.03489236906170845, + 0.022123245522379875, + -0.022884197533130646, + 0.010449150577187538, + 0.00015964302292559296, + 0.001057906891219318, + 0.04695621877908707, + -0.04443209245800972, + 0.02925019897520542, + 0.021213818341493607, + 0.017696741968393326, + -0.03919823467731476, + 0.016314039006829262, + -0.038381606340408325, + 0.04573127627372742, + 0.017325546592473984, + 0.015599487349390984, + -0.02323683351278305, + 2.396095442236401e-05, + 0.0395694300532341, + 0.010523390024900436, + 0.009920197539031506, + -0.010096515528857708, + -0.05493691936135292, + 0.018726808950304985, + -0.04435785114765167, + 0.04944323003292084, + 0.004085469525307417, + -0.006314961705356836, + -0.019506318494677544, + 0.027004465460777283, + -0.003758353414013982, + 0.04439496994018555, + 0.01601708121597767, + 0.02926875837147236, + -0.01978471502661705, + -0.007679105270653963, + 0.04105421155691147, + 0.027487020939588547, + 0.037917610257864, + -0.0178081002086401, + 0.042093560099601746, + -0.04944323003292084, + 0.014884935691952705, + -0.028210850432515144, + 0.0011663655750453472, + 0.016091320663690567, + -0.045545678585767746, + 0.004157388582825661, + 0.06466224044561386, + -0.033203430473804474, + 0.006519119255244732, + 0.004029789939522743, + -0.006811435800045729, + 0.04736453294754028, + -0.006876395083963871, + 0.0382702462375164, + 0.0035193965304642916, + -0.009228846058249474, + -0.00998515635728836, + 0.03177432715892792, + -0.03771345317363739, + 0.059057191014289856, + -0.007252230308949947, + -0.03557908162474632, + 0.03684114292263985, + 0.026224955916404724, + 0.0034405174665153027, + -0.016425397247076035, + 0.05575355142354965, + -0.036525629460811615, + -0.009883077815175056, + -0.012527844868600368, + 0.006240722723305225, + 0.040497418493032455, + -0.007400708273053169, + 0.01213809009641409, + -0.0861915722489357, + 0.05066817253828049, + 0.06314034014940262, + 0.02739422209560871, + 0.022884197533130646, + 0.014662218280136585, + 0.008296217769384384, + 0.015089093707501888, + 0.012555684894323349, + -0.005670010112226009, + -0.0020346147939562798, + -0.05909430980682373, + 0.028470687568187714, + -0.014226064085960388, + -0.09123983234167099, + 0.024350419640541077, + 0.030939137563109398, + -0.010282113216817379, + -0.025055689737200737, + 0.01171121560037136, + 0.02342243120074272, + -0.04413513466715813, + -0.015191172249615192, + 0.01456941943615675, + 0.017706021666526794, + 0.029231637716293335, + -0.023719387128949165, + 0.029565714299678802, + 0.01543244905769825, + 0.007066632620990276, + -0.007730144541710615, + 0.018773207440972328, + 0.0073543088510632515, + 0.026781748980283737, + -0.0024893293157219887, + -0.03212696313858032, + 0.022587241604924202, + 0.05460284650325775, + -0.02689310722053051, + 0.028210850432515144, + -0.0382702462375164, + 0.017186347395181656, + 0.020007433369755745, + -0.003788513131439686, + -0.004816260654479265, + -0.05096513032913208, + -0.004848740063607693, + 0.029231637716293335, + -0.008273017592728138, + -0.031607288867235184, + 0.00246612960472703, + -0.011469937860965729, + 0.023979224264621735, + -0.009697480127215385, + 0.020582785829901695, + 0.0395694300532341, + 0.003607555292546749, + 0.0024545297492295504, + 0.034465495496988297, + -0.03645138815045357, + 0.011182261630892754, + -0.010866745375096798, + 0.045619916170835495, + 0.007048072759062052, + -0.029157400131225586, + 0.03221976011991501, + 0.027876775711774826, + -0.015116932801902294, + 0.02425762079656124, + -0.006843915209174156, + 0.04691909998655319, + -0.019227921962738037, + -0.03387157991528511, + -0.01946919970214367, + 0.031867124140262604, + 0.00328971934504807, + 0.031533051282167435, + 0.0221603661775589, + 0.032553836703300476, + -0.03786193206906319, + 0.012509285472333431, + -0.020360067486763, + -0.012342247180640697, + -0.038641441613435745, + -0.012203048914670944, + 0.011980331502854824, + 0.007423907984048128, + 0.024239059537649155, + -0.006134004332125187, + -0.01315887738019228, + -0.03743505850434303, + -0.0162583589553833, + 0.10170754045248032, + 0.009651080705225468, + 0.01676875352859497, + 0.0024266899563372135, + 0.034354135394096375, + -0.020527105778455734, + 0.02292131632566452, + -0.017882339656352997, + 0.02581663988530636, + -0.026224955916404724, + -0.02433185838162899, + -0.01851337030529976, + 0.00016645794676151127, + 0.04840388149023056, + 0.021417975425720215, + 0.022587241604924202, + -0.0006461120210587978, + 0.06510767340660095, + -0.05200447514653206, + 0.053934693336486816, + -0.015098373405635357, + 0.03635859116911888, + -0.010736826807260513, + 0.0027166863437741995, + 0.002391890389844775, + -0.08685972541570663, + -0.02856348641216755, + -0.010486270301043987, + -0.08418712019920349, + 0.00614792387932539, + -0.03195992484688759, + 0.08025244623422623, + -0.013066078536212444, + -0.04910915344953537, + 0.012629923410713673, + -0.010532669723033905, + -0.1469191461801529, + 0.02414626069366932, + -0.04291018843650818, + 0.007901822216808796, + 0.0025844480842351913, + 0.02611359767615795, + -0.06039349362254143, + -3.0359000447788276e-05, + -0.00982739869505167, + -0.04673350229859352, + -0.02234596386551857, + -0.07138087600469589, + -0.017511144280433655, + -0.0020520146936178207, + -0.0031435610726475716, + -0.011284340173006058, + -0.05749816820025444, + 0.02925019897520542, + 0.00488121947273612, + -0.02822941169142723, + -0.054639965295791626, + -0.001766658155247569, + 0.08218266069889069, + -0.01749258302152157, + -0.05890871211886406, + -0.01787305809557438, + -0.002214412670582533, + -0.03912399709224701, + -0.03737937659025192, + 0.01377134956419468, + -0.016481075435876846, + -0.012880480848252773, + -0.0036516347900032997, + 0.05204159766435623, + -0.030957696959376335, + -0.0028234052006155252, + -0.017576102167367935, + 0.001070666708983481, + -0.045174483209848404, + 0.006695437245070934, + 0.04524872079491615, + 0.010096515528857708, + 0.020378628745675087, + 0.03808464854955673, + -0.01088530570268631, + -0.08574613928794861, + -0.0013154237531125546, + -0.011599856428802013, + 0.004572663456201553, + 0.0032989992760121822, + -0.026800308376550674, + 0.005878807511180639, + 0.028006693348288536, + -0.054899800568819046, + -0.005405533127486706, + 0.0003520556492730975, + -0.02566816285252571, + 0.036395709961652756, + -0.02566816285252571, + 0.04335562512278557, + -0.03752785548567772, + -0.043838176876306534, + 0.007669825106859207, + -0.014615818858146667, + -0.04309578612446785, + 0.012815521098673344, + -0.020824061706662178, + -0.05864887312054634, + 0.03292503207921982, + -0.01588716357946396, + 0.013929108157753944, + -0.0026958065573126078, + 0.04257611185312271, + -0.010328512638807297, + -0.02587231993675232, + 0.05501116067171097, + 0.03398294001817703, + -0.008491095155477524, + -0.053934693336486816, + -0.14357838034629822, + -0.005373053718358278, + 0.03871568292379379, + 0.0018223375082015991, + -0.035115085542201996, + -0.007233670447021723, + -0.06525615602731705, + 0.02106533944606781, + 0.057535286992788315, + -0.011989612132310867, + 0.22583529353141785, + 0.045619916170835495, + -0.011868973262608051, + 0.018002977594733238, + 0.04521160200238228, + -0.04142540693283081, + -0.009539722464978695, + -0.04053453728556633, + 0.02817373163998127, + -0.022197484970092773, + 0.02459169551730156, + -0.0006872914964333177, + 0.014281743206083775, + -0.02273571863770485, + 0.014532300643622875, + -0.005127136595547199, + -0.012991839088499546, + -0.004377786070108414, + 0.08351896703243256, + 0.001985895447432995, + -0.010272832587361336, + -0.0056468104012310505, + -0.02195620909333229, + -0.0015068213688209653, + -0.06726060807704926, + -0.02568672224879265, + -0.0320156030356884, + 0.016889391466975212, + -0.03509652614593506, + 0.050222739577293396, + -0.021046780049800873, + 0.023348191753029823, + 0.024888651445508003, + 0.006607278250157833, + -0.02240164391696453, + -0.006078324746340513, + -0.03765777498483658, + 0.003027562517672777, + 0.03672978654503822, + 0.018466971814632416, + -0.023737946525216103, + -0.03273943439126015, + 0.028285089880228043, + -0.00541017297655344, + -0.030567942187190056, + -0.0029626034665852785, + -0.009298444725573063, + 0.017381224781274796, + -0.002526448806747794, + 0.03164440765976906, + 0.007215110585093498, + -0.01915368251502514, + -0.007966781035065651, + -0.0036469949409365654, + -0.0032247600611299276, + -0.04550855606794357, + 0.001446502166800201, + -0.04814404621720314, + 0.014291022904217243, + 0.005113216582685709, + 0.012926880270242691, + -0.011219381354749203, + -0.046770621091127396, + 0.01978471502661705, + 0.0262620747089386, + -0.039532311260700226, + -0.03344470635056496, + 0.0431700274348259, + -0.008073500357568264, + 0.02138085477054119, + 0.0008665092755109072, + 0.01894952543079853, + 0.004340666346251965, + 0.024424657225608826, + 0.02234596386551857, + -0.0010045475792139769, + -0.020731262862682343, + 0.0735338106751442, + 0.03693394362926483, + -0.012370087206363678, + -0.06224947050213814, + -0.02023014985024929, + -0.026874547824263573, + -0.01690795086324215, + 0.0408686138689518, + -0.009201006032526493, + 0.008843730203807354, + -0.00624536257237196, + -0.004918339196592569, + -0.0006907714414410293, + -0.01601708121597767, + -0.006570158991962671, + -0.021659251302480698, + 0.03272087499499321, + -0.02581663988530636, + -0.03021530620753765, + 0.00390451168641448, + -0.024944331496953964, + -0.00614792387932539, + 0.02765405736863613, + 0.0331663116812706, + -0.03556051850318909, + 0.02997402846813202, + -0.05244991183280945, + 0.0709354430437088, + 0.015107653103768826, + 0.012249448336660862, + 0.0015648206463083625, + -0.00011208361684111878, + -0.014012626372277737, + 0.04097997397184372, + 0.040237583220005035, + -0.008375096134841442, + -0.035690438002347946, + -0.010282113216817379, + 0.010003716684877872, + 0.032553836703300476, + 0.02861916646361351, + -0.021232377737760544, + 0.05556795373558998, + -0.01926504261791706, + -0.006713997106999159, + 0.004452025052160025, + -0.025000011548399925, + -0.0033825181890279055, + -0.02561248280107975, + -0.0016100601060315967, + -0.0021958528086543083, + -0.025371206924319267, + 0.03424277529120445, + -0.03669266775250435, + -0.00210537388920784, + 0.011804014444351196, + 0.015089093707501888, + 0.05850039795041084, + -0.010894585400819778, + 0.00017631781520321965, + 0.020360067486763, + 0.07260581851005554, + 0.03335190936923027, + 0.0004558743676170707, + -0.029881229624152184, + -0.01379918958991766, + -0.007790463510900736, + -0.013715670444071293, + -0.02752413973212242, + -0.002364050829783082, + -0.013270235620439053, + -0.05371197685599327, + 0.07965853810310364, + 0.02266147918999195, + 0.029992589727044106, + 0.0015868603950366378, + -0.06915370374917984, + -0.012991839088499546, + -0.04621382802724838, + 0.010913144797086716, + 0.014309583231806755, + 0.007270790170878172, + -0.030586501583456993, + -0.004187548067420721, + 0.01581292413175106, + 0.013827028684318066, + 0.020601345226168633, + 0.05363773554563522, + 0.09005200862884521, + -0.02446177788078785, + 0.015246851369738579, + 0.020712703466415405, + -0.00829157792031765, + -0.009530441835522652, + -0.032628078013658524, + -0.04714181646704674, + 0.009521162137389183, + -0.004572663456201553, + 0.03715666010975838, + 0.009595401585102081, + 0.042798832058906555, + -0.035115085542201996, + 0.035430602729320526, + 0.012472165748476982, + 0.03975502774119377, + -0.02446177788078785, + -0.0011704255593940616, + -0.005563291255384684, + 0.010031555779278278, + -0.06714925169944763, + -0.007567746564745903, + 0.03292503207921982, + 0.015228291973471642, + -0.028155172243714333, + 0.07869342714548111, + -0.026985906064510345, + -0.012184489518404007, + 0.0326651968061924, + 0.011349299922585487, + 0.10809210687875748, + 0.023403869941830635, + -0.008384376764297485, + -0.017204906791448593, + -0.004586583469063044, + 0.017269866541028023, + 0.01146065816283226, + 0.04060877859592438, + -0.00397179089486599, + -0.016917230561375618, + -0.06551598757505417, + 0.001568300649523735, + -0.013483673334121704, + -0.04246475547552109, + 0.0007812503608874977, + -0.021213818341493607, + -0.008750931359827518, + -0.011729774996638298, + 0.013817748986184597, + -0.005470492411404848, + 0.06384561210870743, + 0.028544927015900612, + -0.03815888985991478, + 0.003503156593069434, + -0.02221604622900486, + 0.008931889198720455, + 0.03695250302553177, + -0.01249072514474392, + 0.025000011548399925, + 0.0013131037121638656, + -0.03405717760324478, + -0.021046780049800873, + 0.007920381613075733, + -0.011293620802462101, + 0.009433003142476082, + 0.030957696959376335, + -0.02932443656027317, + -0.025129929184913635, + 0.035820357501506805, + 0.034613970667123795, + 0.028507808223366737, + 0.019098004326224327, + -0.02772829681634903, + -0.01232368778437376, + -0.018782487139105797, + -0.02613215707242489, + 0.022123245522379875, + 0.058685995638370514, + -0.02362658828496933, + 0.04948034882545471, + -0.06926506012678146, + 0.02663327008485794, + 0.022902756929397583, + 0.05571643263101578, + -0.04079437628388405, + 0.031848564743995667, + 0.025909438729286194, + -0.017826659604907036, + -0.026484793052077293, + -0.04012622311711311, + -4.690692003350705e-05, + -0.010876025073230267, + -0.059317026287317276, + -0.015376769937574863, + 0.005609690677374601, + 0.03309207037091255, + -0.007122311741113663, + -0.010504829697310925, + 0.008978288620710373, + -0.04131405055522919, + 0.040757257491350174, + -0.01984039507806301, + -0.0037049942184239626, + -0.018197854980826378, + -0.05148480460047722, + -0.024109141901135445, + -0.0022816918790340424, + -0.03112473525106907, + 0.026354873552918434, + -0.023032674565911293, + -0.009122127667069435, + 0.01902376487851143, + 0.03574611619114876, + 0.01568300649523735, + -0.012750562280416489, + -0.045360080897808075, + -0.01659243553876877, + -0.0006014525424689054, + 0.00893652904778719, + -0.042984429746866226, + 0.031718648970127106, + 0.0034799568820744753, + -0.0008259097812697291, + 0.0027746856212615967, + -0.013632151298224926, + -0.011757615022361279, + -0.048441000282764435, + 0.01959911733865738, + -0.006231443025171757, + 0.02023014985024929, + -0.02310691401362419, + 0.014615818858146667, + -0.005804568063467741, + 0.017826659604907036, + 0.0133815947920084, + 0.029918350279331207, + -0.02407202310860157, + -0.030976256355643272, + -0.044209372252225876, + 0.006486639846116304, + 0.0033593184780329466, + -0.001913976389914751, + 0.014745737425982952, + 0.0031737207900732756, + 0.009033968672156334, + 0.0018165375804528594, + 0.0048209005035459995, + 0.0035750758834183216, + 0.014263183809816837, + 0.021436534821987152, + 0.021807730197906494, + -0.012917600572109222, + 0.017770979553461075, + 0.02728286199271679, + 0.022197484970092773, + -0.016740912571549416, + -0.02529696747660637, + 0.009511882439255714, + -0.05230143293738365, + 0.0005585330654866993, + -0.006263922434300184, + 0.03444693237543106, + -0.014337422326207161, + -0.018142174929380417, + 0.008593173697590828, + 0.02989979088306427, + -0.012305127456784248, + -0.03015962615609169, + 0.036265790462493896, + 0.011618416756391525, + 0.011033783666789532, + -0.029621394351124763, + 0.00921492651104927, + -0.03296215087175369, + -0.021919088438153267, + -0.00928452517837286, + 0.043058667331933975, + 0.010987384244799614, + 0.047624371945858, + -0.0420193187892437, + -0.04610247164964676, + 0.0009819278493523598, + -0.0023257711436599493, + 0.03930959478020668, + -0.04628806933760643, + -0.015924282371997833, + 0.017845219001173973, + -0.025408325716853142, + -0.0017016989877447486, + 0.0012748242588713765, + -0.03199704363942146, + -0.015766525641083717, + -0.024758733808994293, + 0.004751301370561123, + -0.045619916170835495, + -0.008463255129754543, + -0.01561804674565792, + 0.033259108662605286, + -0.013214556500315666, + 0.023793626576662064, + -0.00043963457574136555, + 0.0325167179107666, + 0.016917230561375618, + -0.00127598422113806, + -0.027264302596449852, + 0.019543439149856567, + -0.0020682543981820345, + 0.015330370515584946, + -0.018216414377093315, + 0.014448781497776508, + -0.0204343069344759, + 0.015144772827625275, + 0.03335190936923027, + 0.008273017592728138, + 0.002285171765834093, + -0.021362295374274254, + -0.02260580100119114, + -0.013195997104048729, + 0.014550860039889812, + 0.002893004333600402, + -0.019098004326224327, + 0.004039070103317499, + 0.0722346231341362, + 0.05508539825677872, + -0.04105421155691147, + 0.00940980389714241, + -0.008282297290861607, + 0.026484793052077293, + -0.14558283984661102, + 0.015293250791728497, + -0.014300303533673286, + -0.061952512711286545, + -0.011534897610545158, + -0.028210850432515144, + 0.001395462779328227, + 0.01520973164588213, + 0.0033662784844636917, + -0.007836863398551941, + 0.00915924645960331, + -0.00957684125751257, + 0.05423165112733841, + 0.006087604910135269, + -0.0477728508412838, + 0.04276170954108238, + -0.008727732114493847, + -0.004008910618722439, + 0.022067567333579063, + 0.021789170801639557, + 0.025111369788646698, + -0.02707870490849018, + -0.001418662490323186, + -0.007247590459883213, + 0.04175948351621628, + -0.0038024329114705324, + -0.01646251603960991, + 0.02420194074511528, + -0.01959911733865738, + 0.023867864161729813, + -0.019691916182637215, + -0.03715666010975838, + 0.01543244905769825, + 0.035115085542201996, + 0.008379735983908176, + -0.028544927015900612, + 0.029120279476046562, + 0.021417975425720215, + 0.026484793052077293, + -0.016406837850809097, + 0.005062177311629057, + 0.012834081426262856, + 0.0049554589204490185, + 0.013678550720214844, + 0.03340758755803108, + 0.028470687568187714, + -0.03389013931155205, + -0.0025357287377119064, + -0.016406837850809097, + 0.022772839292883873, + 0.01690795086324215, + -0.012388646602630615, + 0.007335749454796314, + 0.0047605810686945915, + 0.02182628959417343, + 0.003053082153201103, + -0.06959913671016693, + -0.01997031271457672, + 0.017631782218813896, + 0.08218266069889069, + -0.02720862440764904, + 0.014458061195909977, + -0.027635497972369194, + -0.04996290057897568, + -0.018522651866078377, + 0.03433557599782944, + -0.03259095549583435, + -0.01527469139546156, + 0.013075358234345913, + -0.02516704797744751, + 0.008732371963560581, + -0.038567204028367996, + -0.03886415809392929, + -0.0307906586676836, + 0.04053453728556633, + -0.042167797684669495, + 0.04461769014596939, + -0.058611754328012466, + -0.07795103639364243, + -0.013492953032255173, + -0.03129177168011665, + -0.009530441835522652, + -0.031792886555194855, + -0.02247588150203228, + 0.009892357513308525, + 0.01481997687369585, + -0.029621394351124763, + -0.008402936160564423, + 0.03181144595146179, + 0.01697291061282158, + -0.005076097324490547, + -0.015488128177821636, + 0.01334447506815195, + -0.001998655265197158, + 0.038827039301395416, + 0.021659251302480698, + 0.017232747748494148, + -0.052783988416194916, + 0.009873798117041588, + -0.024368979036808014, + -0.07249446213245392, + -0.042613234370946884, + 0.020360067486763, + 0.022494442760944366, + -0.02887900359928608, + 0.04064589738845825, + 0.010569789446890354, + 0.0012968640075996518, + 0.025111369788646698, + -0.011330739594995975, + -0.02874908410012722, + -0.004830180201679468, + -0.02848924696445465, + -0.013103198260068893, + -0.056755777448415756, + 0.024925772100687027, + -0.017047150060534477, + -0.028470687568187714, + -0.01690795086324215, + -0.043838176876306534, + 0.0066490378230810165, + 0.042984429746866226, + 0.02119525708258152, + -0.025779521092772484, + -0.02171493135392666, + -0.007948221638798714, + 0.03175576776266098, + -0.004779140930622816, + 0.007827582769095898, + 0.05115072801709175, + -0.01152561791241169, + 0.03544916212558746, + -0.011432819068431854, + 0.05434300750494003, + -0.011089462786912918, + -0.013446553610265255, + -0.04524872079491615, + 0.06492207944393158, + -0.041462525725364685, + -0.03982926905155182, + 0.029213078320026398, + 0.009414443746209145, + -0.030363785102963448, + -0.027004465460777283, + -0.026299195364117622, + 0.020527105778455734, + -0.0014940615510568023, + 0.00249628908932209, + -0.031978484243154526, + 0.011896813288331032, + -0.008013180457055569, + -0.010903865098953247, + 0.013641430996358395, + 0.015701565891504288, + -0.04550855606794357, + 0.009910917840898037, + 0.013919827528297901, + -0.043949536979198456, + -0.009330924600362778, + 0.05768376588821411, + -0.009929477237164974, + -0.04354122281074524, + 0.003960190806537867, + -0.03067930042743683, + 0.02561248280107975, + 0.013140317983925343, + 0.012657763436436653, + 0.00561897037550807, + -0.04435785114765167, + 0.01463437918573618, + -0.024480337277054787, + -0.011692655272781849, + -0.015089093707501888, + 0.02976987138390541, + 0.014615818858146667, + -0.06711213290691376, + 0.014123985543847084, + -0.017427625134587288, + 0.04149964824318886, + -0.021919088438153267, + 0.013817748986184597, + 0.004148108884692192, + 0.0042153880931437016, + -0.0326651968061924, + 0.03567187860608101, + 0.03227544203400612, + 0.023737946525216103, + 0.0418708436191082, + -0.013363034464418888, + -0.011915372684597969, + -0.022494442760944366, + -0.006681517232209444, + -0.0038349125534296036, + -0.021213818341493607, + 0.012119529768824577, + -0.031198974698781967, + 0.00836117658764124, + 0.018736088648438454, + 0.00550761166960001, + 0.07190055400133133, + 0.05389757454395294, + 0.010328512638807297, + -0.008941169828176498, + 0.014467340894043446, + -0.025000011548399925, + -0.027839655056595802, + 0.028897562995553017, + 0.018151454627513885, + -0.016035642474889755, + 0.0266889501363039, + -0.007938941940665245, + -0.016796592622995377, + -0.028025252744555473, + 0.03335190936923027, + 0.022550120949745178, + 0.02349666878581047, + 0.010152194648981094, + -0.004793060943484306, + -0.015330370515584946, + -0.026336314156651497, + -0.010003716684877872, + 0.013938387855887413, + -0.014383821748197079, + -0.01804937608540058, + 0.046585023403167725, + -0.020267268642783165, + -0.009836678393185139, + 0.009845958091318607, + -0.016861552372574806, + -0.04821828380227089, + -0.007052712608128786, + 0.038641441613435745, + -0.02323683351278305, + 0.0039091515354812145, + 0.016564594581723213, + -0.035115085542201996, + -0.014458061195909977, + 0.014448781497776508, + 0.00960468128323555, + 0.03541204333305359, + -0.004533223807811737, + 0.008375096134841442, + -0.06031925231218338, + 0.030939137563109398 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "喷油嘴偶件", + "组成编码": "050201", + "维修项目名称": "更换喷油嘴偶件", + "维修项目编号": "MT013", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.15 MT013 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT013050201喷油嘴偶件更换喷油嘴偶件6M/4000hJY级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火
安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2高压燃油压力表0-20 MPa1个校验有效期内
3喷油雾化测试台Bosch EPS 8151台可测开启压力与雾化角
4扭矩扳手40 -200 N·m1把用于喷油器压紧螺母
名称规格/型号消耗数量备注
1喷油嘴偶件(针阀+阀体)MAN5L35MC-INJ-NOZZLE-KIT1套原厂高精度配对
2喷油器铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
\\n\\n
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200 mL用于冲洗油道
2 3无绒布 高温润滑脂Kimwipe EX-L5张 少量擦拭偶件表面
4)人力人员Molycote G-1052涂压紧螺纹
序号专业人数技能等级备注
修理步骤及工艺1机械专业2工程师+技师工程师操作测试 台
更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件
(1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5°
无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa;
2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_b333c56d-9e77-429b-88f9-9329465ba601.pdf#page=42\"}]", + "embedding": [ + -0.040375687181949615, + 0.023197995498776436, + -0.032715123146772385, + -0.001693210331723094, + -0.011788259260356426, + -0.034914154559373856, + 0.013716919347643852, + 0.022314777597784996, + -0.011058252304792404, + -0.020818714052438736, + -0.01193245779722929, + -0.02087278850376606, + 0.0193767249584198, + 0.0252708550542593, + 0.0213053859770298, + -0.008169768378138542, + -0.026298271492123604, + 0.01867375522851944, + 0.007701121736317873, + -0.009445027448236942, + -0.06409640610218048, + 0.021900206804275513, + 0.003958710003644228, + 0.0017236273270100355, + -0.018205109983682632, + 0.00673679169267416, + -0.0132032111287117, + -0.006583580281585455, + 0.0007024062797427177, + -0.006123946513980627, + 0.015870889648795128, + -0.007011671084910631, + -0.04279102012515068, + -0.03358031436800957, + -0.029614847153425217, + -0.04863107576966286, + -0.024784183129668236, + 0.022404901683330536, + -0.04163742810487747, + 0.04585524648427963, + -0.040303587913513184, + -0.014095441438257694, + 0.022080454975366592, + -0.03098473697900772, + -0.044773753732442856, + -0.027596062049269676, + -0.010175034403800964, + -0.024802207946777344, + 0.03759986162185669, + -0.0008359029307030141, + 0.01263542752712965, + 0.0213053859770298, + 0.02869557961821556, + -0.037131212651729584, + -0.021719956770539284, + 0.008863725699484348, + -0.0371672622859478, + 0.022152554243803024, + -0.06157292425632477, + 0.01682620868086815, + -0.026658769696950912, + 0.05995068699121475, + -0.019052278250455856, + -0.008701501414179802, + 0.002284651156514883, + 0.06687223166227341, + -0.00015828081814106554, + -0.00981453713029623, + -0.03194005414843559, + -0.007286550011485815, + -0.011238500475883484, + 0.03363439068198204, + -0.019268576055765152, + 0.022044405341148376, + -0.0252708550542593, + -0.020205868408083916, + 0.11982927471399307, + -0.0007288803462870419, + 0.0017281335312873125, + -0.022314777597784996, + 0.028515329584479332, + -0.02624419704079628, + 0.027271615341305733, + 0.048558976501226425, + -0.012121719308197498, + 0.06276256591081619, + -0.008156249299645424, + -0.0008978634141385555, + -0.024946408346295357, + -0.029308423399925232, + -0.033760566264390945, + -0.01205863244831562, + 0.05432693287730217, + -0.00656104926019907, + -0.01753818988800049, + 0.008895268663764, + -0.015528418123722076, + 0.02588370069861412, + 0.051298756152391434, + -0.007561429403722286, + 0.029218299314379692, + 0.015519405715167522, + 0.0017799549968913198, + -0.02728964015841484, + 0.014591124840080738, + -0.05504792556166649, + 0.051190607249736786, + -0.005479557905346155, + 0.024459736421704292, + -0.011022202670574188, + 0.007800258696079254, + 0.04167347773909569, + 0.008341004140675068, + 0.020097719505429268, + -0.012031595222651958, + -0.07065745443105698, + 0.017835600301623344, + -0.0004390743561089039, + 0.0260639488697052, + 0.004028556402772665, + -0.010634668171405792, + -0.025234805420041084, + 0.020133769139647484, + 0.006434875540435314, + 0.052272096276283264, + 0.003068732563406229, + 0.015600517392158508, + -0.010364294983446598, + -0.006416850723326206, + 0.060275133699178696, + 0.023882940411567688, + 0.06038328632712364, + -0.022567126899957657, + 0.040628038346767426, + -0.03886159881949425, + 0.00011835856275865808, + -0.02563135325908661, + 0.02112513780593872, + 0.03239067643880844, + -0.05266864225268364, + 0.016790157184004784, + 0.07119820266962051, + -0.032372649759054184, + 0.00019221824186388403, + 0.017231767997145653, + -0.02370269224047661, + 0.02474813349545002, + -0.0020615935791283846, + 0.014852485619485378, + -0.02182810753583908, + 0.015546442940831184, + -0.015690641477704048, + 0.03327389433979988, + -0.04426905885338783, + 0.05926574394106865, + 0.0013394724810495973, + -0.04809032753109932, + 0.04217817634344101, + 0.03431933373212814, + 0.0256133284419775, + -0.037203311920166016, + 0.014455938711762428, + -0.0033886737655848265, + -0.033418092876672745, + -0.012968887574970722, + 0.0014363561058416963, + 0.036590468138456345, + 0.007065745536237955, + -0.008264399133622646, + -0.10000193119049072, + 0.05396643280982971, + 0.0686747208237648, + 0.02361256815493107, + 0.014672236517071724, + 0.008561808615922928, + -0.00757044181227684, + 0.006642161402851343, + 0.019430799409747124, + -0.002922280691564083, + -0.0165468230843544, + -0.05162320286035538, + 0.032084252685308456, + -0.007840815000236034, + -0.08990800380706787, + 0.032012153416872025, + 0.05028936266899109, + -0.0011479583336040378, + -0.017943749204277992, + 0.02615407295525074, + 0.038609251379966736, + -0.03925814852118492, + -0.04059198871254921, + 0.012256905436515808, + -0.018205109983682632, + 0.024279488250613213, + -0.01946684904396534, + 0.05219999700784683, + 0.017565228044986725, + 0.0003010715008713305, + 0.004983874037861824, + 0.007007164880633354, + 0.009264778345823288, + 0.007376674562692642, + -0.04762168228626251, + -0.04589129611849785, + 0.019935496151447296, + 0.04639599099755287, + -0.00616450235247612, + 0.01496964693069458, + -0.03476995602250099, + 0.008836688473820686, + 0.029813120141625404, + 0.0026428953278809786, + -0.004736032336950302, + -0.04571104794740677, + 0.008219337090849876, + 0.03435538336634636, + -0.01140072476118803, + -0.01518594566732645, + 0.0027668161783367395, + -0.003248981200158596, + 0.041709527373313904, + 0.00739469937980175, + 0.06993646174669266, + 0.052091848105192184, + -0.0019635832868516445, + -0.012572340667247772, + 0.014654211699962616, + -0.05785980448126793, + 0.007755196653306484, + -0.007692109327763319, + 0.05425483360886574, + 0.022080454975366592, + -0.03846505284309387, + 0.015654591843485832, + 0.01665497198700905, + -0.010760841891169548, + 0.018962154164910316, + -0.0017731956904754043, + 0.06416850537061691, + -0.011824308894574642, + 0.0008280170732177794, + -0.002611351665109396, + 0.024982457980513573, + 0.004404825624078512, + 0.026658769696950912, + 0.03788825869560242, + 0.031237084418535233, + -0.03161560744047165, + 0.004740538541227579, + -0.021683907136321068, + 0.000437384529504925, + -0.03997914120554924, + -0.0020660997834056616, + -0.007629022467881441, + 0.015131871215999126, + 0.029921269044280052, + 0.011436774395406246, + 0.028118783608078957, + -0.022404901683330536, + -0.016582872718572617, + 0.07224364578723907, + 0.004028556402772665, + 0.01135566271841526, + 0.00990466121584177, + -0.003107035532593727, + -0.014726311899721622, + 0.0026226171758025885, + -0.02103501372039318, + 0.021179212257266045, + 0.0003954203857574612, + -0.04621574282646179, + -0.0025257335510104895, + -0.024081215262413025, + 0.02703729085624218, + 0.003526113461703062, + 0.006349257193505764, + -0.006588086951524019, + 0.05007306486368179, + -0.06099613010883331, + 0.08255386352539062, + -0.017898686230182648, + 0.028335081413388252, + -0.00981453713029623, + 0.0004007715324405581, + 0.014239639975130558, + -0.07127030193805695, + -0.014140503481030464, + -0.021431559696793556, + -0.06377195566892624, + 0.019340675324201584, + -0.005921166855841875, + 0.07541602104902267, + -0.015474343672394753, + -0.07527182251214981, + 0.015167920850217342, + -0.03188597783446312, + -0.1219201609492302, + -0.002390547189861536, + -0.044954001903533936, + -0.010102934204041958, + 0.001527606975287199, + 0.04041173681616783, + -0.06092403084039688, + 0.0027014759834855795, + 0.004413838032633066, + -0.038537152111530304, + -0.018980178982019424, + -0.07105400413274765, + -0.033508215099573135, + -0.0023792816791683435, + 0.003645528107881546, + -0.0010747323976829648, + -0.06795372813940048, + 0.03882554918527603, + 0.011499861255288124, + -0.01368988212198019, + -0.03242672607302666, + 0.01012095995247364, + 0.06424060463905334, + -0.005849067587405443, + -0.06582679599523544, + -0.015510393306612968, + 0.013356422074139118, + -0.03574329987168312, + -0.028839778155088425, + -0.006096909288316965, + -0.013671857304871082, + -0.019412774592638016, + 0.0017134883673861623, + 0.040375687181949615, + -0.03997914120554924, + -0.012202830985188484, + -0.04480980336666107, + -0.005668818950653076, + -0.035959597676992416, + -0.005312827881425619, + 0.034139085561037064, + 0.004398066084831953, + 0.02790248580276966, + 0.04181767627596855, + -0.023738741874694824, + -0.06788162887096405, + 0.008413104340434074, + -0.0033886737655848265, + 0.00462337676435709, + -0.015149896033108234, + -0.022657250985503197, + -0.004632389172911644, + 0.025324929505586624, + -0.052524443715810776, + -0.017213743180036545, + -0.0018937370041385293, + -0.029308423399925232, + 0.0009243374224752188, + -0.004947824403643608, + 0.04207002744078636, + -0.05962624028325081, + -0.057355109602212906, + 0.016943369060754776, + -0.03388673812150955, + -0.01832227036356926, + -0.004880231339484453, + -0.0036252501886337996, + -0.03532872721552849, + 0.042142126709222794, + -0.043800413608551025, + 0.026388397440314293, + -0.039402347058057785, + 0.030894611030817032, + 0.001974848797544837, + 0.0009750323370099068, + 0.05443508177995682, + 0.03997914120554924, + -0.011635047383606434, + -0.04426905885338783, + -0.11708949506282806, + -0.043800413608551025, + 0.030317816883325577, + 0.017276829108595848, + -0.015086809173226357, + -0.019160427153110504, + -0.06568259745836258, + 0.011373687535524368, + 0.03563515096902847, + -0.016952382400631905, + 0.19942706823349, + 0.02510863170027733, + 0.001666173106059432, + 0.02790248580276966, + 0.0371672622859478, + -0.02792051061987877, + -0.02570345252752304, + -0.021269336342811584, + 0.001366509823128581, + -0.021287361159920692, + 0.04041173681616783, + -0.008931318297982216, + 0.02482023276388645, + -0.01149084884673357, + 0.01743004098534584, + 0.014032354578375816, + -0.01980932243168354, + -0.03657244145870209, + 0.06921546906232834, + 0.001351864542812109, + -0.021954281255602837, + -0.0009677097550593317, + -0.007917420007288456, + -0.02554122731089592, + -0.04315151646733284, + -0.029650896787643433, + -0.010995165444910526, + 0.010634668171405792, + -0.013158148154616356, + 0.05101035535335541, + -0.007908407598733902, + 0.028407180681824684, + 0.011283563449978828, + -0.002820890862494707, + -0.02554122731089592, + -0.03419316187500954, + -0.046972788870334625, + 0.007390193175524473, + 0.036049723625183105, + 0.006592593155801296, + -0.05064985901117325, + -0.02253107726573944, + 0.006709754467010498, + -0.003134072758257389, + -0.05072195827960968, + -0.006141971331089735, + 0.017015468329191208, + 0.00999478530138731, + 0.0007874611183069646, + 0.0005035695503465831, + 0.011860358528792858, + -0.02482023276388645, + -0.012743576429784298, + 0.007327105849981308, + -0.015375206246972084, + -0.04823452979326248, + 0.010823928751051426, + -0.04480980336666107, + -0.0005734158912673593, + 0.011508873663842678, + 0.01901622861623764, + -0.00376494275406003, + -0.033778589218854904, + 0.021359460428357124, + 0.02272935025393963, + -0.026370372623205185, + -0.04225027561187744, + 0.016168300062417984, + 0.037203311920166016, + 0.03212030231952667, + 0.036410219967365265, + 0.027433838695287704, + -0.012157768942415714, + 0.039041850715875626, + 0.0236846674233675, + 0.0013068023836240172, + -0.008124706335365772, + 0.07202734798192978, + 0.025288879871368408, + -0.04084433615207672, + -0.05356988683342934, + -0.030786462128162384, + -0.01492458488792181, + 0.004066859371960163, + 0.03612182289361954, + 0.00576795544475317, + 0.00479911919683218, + -0.0005128636257722974, + 0.004600845742970705, + 0.012914813123643398, + -0.023270094767212868, + -0.014735324308276176, + 0.006763828918337822, + 0.028028659522533417, + -0.017826586961746216, + -0.016528798267245293, + -0.0189261045306921, + 0.0015839346451684833, + -0.008183286525309086, + 0.021701931953430176, + 0.026478521525859833, + -0.027109390124678612, + 0.030245717614889145, + -0.03639219328761101, + 0.059482041746377945, + 0.03161560744047165, + 0.03190400451421738, + -0.0018610669067129493, + -0.0017292600823566318, + -0.035346753895282745, + 0.005961722694337368, + 0.028605453670024872, + -0.010643680579960346, + -0.039402347058057785, + -0.0024446218740195036, + 0.01175220962613821, + 0.02590172551572323, + 0.02193625643849373, + -0.014401864260435104, + 0.04138508066534996, + -0.02078266441822052, + -0.02649654634296894, + -0.007552416995167732, + -0.05645386502146721, + -0.011851346120238304, + -0.02483825944364071, + 0.014915572479367256, + 0.00528128445148468, + -0.018349308520555496, + 0.017565228044986725, + -0.024766158312559128, + -0.0138250682502985, + -0.007885877043008804, + 0.0026519077364355326, + 0.04675649106502533, + -0.02025994472205639, + 0.03767196089029312, + 0.01946684904396534, + 0.0593738928437233, + 0.026352347806096077, + 0.017628313973546028, + -0.017123617231845856, + 0.005348877515643835, + 0.020818714052438736, + -0.01980932243168354, + -0.023720717057585716, + -0.014501000754535198, + -0.028118783608078957, + -0.03426526114344597, + 0.07289253920316696, + 0.029813120141625404, + 0.029903244227170944, + 0.020656490698456764, + -0.07328908145427704, + 0.003906888421624899, + -0.04571104794740677, + -0.005384927149862051, + 0.022837499156594276, + 0.005411964375525713, + -0.010688742622733116, + -0.005524619948118925, + 0.016663983464241028, + 0.016853244975209236, + -0.01091405376791954, + -0.004274145234376192, + 0.11600800603628159, + -0.030840536579489708, + -0.0003007898631040007, + -0.02184613235294819, + 0.002561783418059349, + -0.023540468886494637, + -0.04289916902780533, + -0.05537237226963043, + 0.029614847153425217, + -0.009517126716673374, + 0.027235565707087517, + 0.011553935706615448, + 0.029957318678498268, + -0.028046684339642525, + 0.029650896787643433, + 0.010634668171405792, + 0.027235565707087517, + 0.007097288966178894, + -0.004920787177979946, + 0.009967748075723648, + -0.00545702688395977, + -0.061933424323797226, + -0.012383079156279564, + 0.02501850761473179, + 0.013221235945820808, + -0.0348961316049099, + 0.06885497272014618, + -0.035797372460365295, + -0.02492838352918625, + 0.031922027468681335, + -0.017565228044986725, + 0.05940994247794151, + 0.0205122921615839, + -0.02193625643849373, + -0.019863396883010864, + -0.00581301748752594, + -0.00047174442443065345, + 0.01928660087287426, + 0.04145717993378639, + 0.004001519177109003, + -0.027956560254096985, + -0.07786739617586136, + -0.004240348469465971, + -0.02730766497552395, + -0.03422921150922775, + 0.013798031024634838, + -0.02746988832950592, + 0.002316194586455822, + -0.019340675324201584, + 0.0024716590996831656, + -0.0026879573706537485, + 0.058616846799850464, + 0.028317056596279144, + -0.04390856251120567, + -0.011499861255288124, + -0.009481077082455158, + 0.01294185034930706, + 0.05901339650154114, + -0.0022869042586535215, + 0.03522057831287384, + -0.03294944763183594, + -0.03886159881949425, + -0.008075137622654438, + 0.006214071065187454, + -0.02272935025393963, + 0.009061998687684536, + -0.004722513724118471, + -0.02730766497552395, + -0.03889764845371246, + 0.034463535994291306, + 0.0201698187738657, + 0.04686463996767998, + 0.013987292535603046, + -0.06369985640048981, + -0.03839295357465744, + -0.026893092319369316, + -0.016700033098459244, + 0.0002799486101139337, + 0.06553839147090912, + -0.007903901860117912, + 0.060022786259651184, + -0.035545025020837784, + 0.061500824987888336, + 0.04369226470589638, + 0.044881902635097504, + 0.005173135083168745, + 0.018367333337664604, + 0.02570345252752304, + -0.025144681334495544, + 0.010923066176474094, + -0.05219999700784683, + 0.008061619475483894, + -0.02429751306772232, + -0.06647568941116333, + -0.017844611778855324, + 0.0012887775665149093, + 0.04542265087366104, + -0.013392471708357334, + 0.0015264804242178798, + -0.011256525292992592, + -0.027505937963724136, + 0.027181491255760193, + -0.05335358902812004, + -0.0025955799501389265, + -0.005952710285782814, + -0.052776794880628586, + -0.02712741680443287, + 0.021503658965229988, + -0.03408501297235489, + 0.09416187554597855, + -0.015294094569981098, + -0.03778010979294777, + 0.009796512313187122, + 0.0657186433672905, + 0.02810075879096985, + -0.015402243472635746, + -0.049892816692590714, + -0.024243438616394997, + 0.0008753323345445096, + 0.014978659339249134, + -0.024189364165067673, + 0.013013949617743492, + -0.00880063883960247, + -0.005979747511446476, + -0.01149084884673357, + -0.01663694716989994, + -0.011635047383606434, + -0.04264682158827782, + 0.02033204399049282, + -0.009823549538850784, + 0.023125896230340004, + -0.03925814852118492, + 0.008476191200315952, + -0.00976947508752346, + 0.009850586764514446, + 0.002040188992395997, + 0.03276919573545456, + -0.029903244227170944, + -0.03019164316356182, + -0.054903727024793625, + 0.0015264804242178798, + -0.0006962102488614619, + -0.010066884569823742, + -0.030768437311053276, + 0.006020303815603256, + -0.002624870277941227, + 0.05641781538724899, + 0.018178071826696396, + -0.03734751045703888, + 0.0027307665441185236, + 0.03864530101418495, + 0.01910635270178318, + -0.022314777597784996, + 0.030660288408398628, + 0.019178451970219612, + 0.01944882422685623, + -0.0006303068366833031, + -0.0320662260055542, + 0.026622720062732697, + -0.046468090265989304, + -0.013978280127048492, + -0.009390952996909618, + 0.005907648243010044, + 0.023450344800949097, + -0.002892990130931139, + 0.010544544085860252, + 0.02510863170027733, + -0.034139085561037064, + -0.031849928200244904, + 0.022567126899957657, + 0.03363439068198204, + -0.004114174749702215, + -0.012013569474220276, + 0.0165468230843544, + -0.0114457868039608, + -0.012797651812434196, + -0.0002934672811534256, + 0.05670621246099472, + 0.015438293106853962, + 0.04549475014209747, + -0.03231857717037201, + -0.06114032864570618, + 0.005177641287446022, + 7.287394691957161e-05, + 0.01973722316324711, + -0.03188597783446312, + -0.021377485245466232, + 0.008336498402059078, + -0.03260697424411774, + 0.0090665053576231, + -0.014501000754535198, + -0.04455745592713356, + -0.029795095324516296, + -0.006223083473742008, + -0.008259892463684082, + -0.04791007936000824, + 0.009697374887764454, + -0.017484115436673164, + 0.011427761986851692, + -0.01043639425188303, + -2.3305581635213457e-05, + 0.01584385335445404, + 0.023792816326022148, + 0.024063190445303917, + -0.019665123894810677, + -0.03233660012483597, + 0.001781081547960639, + -0.005092023406177759, + 0.013113086111843586, + -0.026965191587805748, + 0.024153314530849457, + -0.022224653512239456, + -0.001882471377030015, + 0.03107486106455326, + 0.017736462876200676, + -0.0021438319236040115, + -0.019124377518892288, + -0.014491988345980644, + 0.010202071629464626, + 0.05306519195437431, + -0.006714260671287775, + 0.002105529187247157, + 0.009183666668832302, + 0.08003038167953491, + 0.07693010568618774, + -0.03770801052451134, + 0.026568645611405373, + -0.0160331130027771, + 0.049352068454027176, + -0.12523673474788666, + 0.015897927805781364, + -0.017556214705109596, + -0.060527484863996506, + 0.0022136783227324486, + -0.007845320738852024, + 0.025072582066059113, + 0.015429280698299408, + -0.004118680953979492, + -0.006011290941387415, + 0.015789778903126717, + -0.0005959469708614051, + 0.05256049335002899, + -0.015501380898058414, + -0.06651173532009125, + 0.023378245532512665, + -0.022152554243803024, + -0.0209629125893116, + 0.0014318499015644193, + -0.0008826549164950848, + 0.026208147406578064, + -0.03098473697900772, + 0.011995544657111168, + -0.0028591935988515615, + -0.005695856176316738, + 0.00545702688395977, + -0.03354426473379135, + 0.04225027561187744, + -0.028767678886651993, + 0.059049446135759354, + 0.007620010059326887, + -0.046720441430807114, + 0.019953520968556404, + 0.050325412303209305, + 0.01804288662970066, + -0.008917800150811672, + 0.03462575748562813, + 0.019088327884674072, + 0.039222098886966705, + 0.0005128636257722974, + 0.00012596280430443585, + 0.013284322805702686, + -0.004100655671209097, + -0.0008060492691583931, + 0.0380685068666935, + 0.0010155882919207215, + -0.024964433163404465, + 0.001384534640237689, + -0.008129212073981762, + 0.045206353068351746, + 0.01839437149465084, + -0.021449584513902664, + 0.028641505166888237, + -0.006169008556753397, + 0.02579357661306858, + -0.013482595793902874, + -0.07166684418916702, + -0.04120483249425888, + 0.012319992296397686, + 0.07033301144838333, + -0.026298271492123604, + 0.03383266553282738, + -0.015068783424794674, + -0.031020786613225937, + -0.011175413616001606, + 0.03363439068198204, + -0.02819088287651539, + -0.020890813320875168, + 0.006290676537901163, + -0.034842055290937424, + 0.00867446418851614, + -0.011562948115170002, + -0.024621959775686264, + -0.04073618724942207, + 0.06139267608523369, + -0.03260697424411774, + 0.06110427901148796, + -0.02993929386138916, + -0.08255386352539062, + -0.01426667720079422, + -0.04585524648427963, + -0.027415813878178596, + -0.01078787911683321, + -0.0268570426851511, + 0.023666642606258392, + 0.019665123894810677, + -0.019250551238656044, + -0.00013201803085394204, + -0.015104833990335464, + 0.016700033098459244, + 0.012464191764593124, + -0.017682388424873352, + 0.009327865205705166, + -0.004835168831050396, + 0.03480600565671921, + 0.003918154165148735, + 0.028659529983997345, + -0.02411726489663124, + 0.01885400526225567, + -0.024621959775686264, + -0.044773753732442856, + -0.036842815577983856, + 0.02440566197037697, + 0.022873548790812492, + -0.024531835690140724, + 0.021864157170057297, + 0.023197995498776436, + 0.009679350070655346, + 0.026316296309232712, + 0.00871952623128891, + -0.021521683782339096, + -0.001283144811168313, + -0.05346173793077469, + 0.001024037366732955, + -0.09567596018314362, + 0.01280666422098875, + 0.024027138948440552, + -0.027055315673351288, + -0.012617402710020542, + -0.03408501297235489, + 0.007561429403722286, + 0.03513045608997345, + 0.00739469937980175, + -0.03203017637133598, + -0.015104833990335464, + -0.004483683966100216, + 0.029632871970534325, + -0.0025505179073661566, + 0.005997772328555584, + 0.048991572111845016, + -0.011671097949147224, + 0.008286929689347744, + -0.019250551238656044, + 0.03345414251089096, + -0.00708827655762434, + -0.005123566836118698, + -0.0498567670583725, + 0.05854474753141403, + -0.023089846596121788, + -0.022747375071048737, + 0.01452803798019886, + 0.021864157170057297, + -0.046792540699243546, + -0.004485937301069498, + -0.03046201542019844, + 0.03583342209458351, + -0.003983494359999895, + 0.00801655650138855, + -0.0252708550542593, + 0.018547581508755684, + -0.0011851346353068948, + -0.025415053591132164, + 0.006588086951524019, + 0.018006836995482445, + -0.041529279202222824, + 0.01586187817156315, + -0.00510554201900959, + -0.027001241222023964, + 0.0008618136635050178, + 0.051731351763010025, + -0.011148376390337944, + -0.052091848105192184, + 0.01680818386375904, + -0.01595200225710869, + 0.007953469641506672, + 0.009652312844991684, + 0.004256120417267084, + 0.028208907693624496, + -0.033237844705581665, + 0.03453563526272774, + -0.012995924800634384, + -0.01629447378218174, + -0.01645669899880886, + 0.02887582778930664, + 0.01770942658185959, + -0.03190400451421738, + -0.005749930627644062, + 0.008787119761109352, + 0.040195439010858536, + -0.02896595187485218, + 0.008908787742257118, + 0.0011761222267523408, + 0.0004877978062722832, + -0.024892333894968033, + 0.030840536579489708, + 0.05046961084008217, + 0.04246657341718674, + 0.034733906388282776, + -0.008638414554297924, + -0.02025994472205639, + -0.03372451663017273, + -0.005411964375525713, + 0.005574188195168972, + -0.03796035796403885, + 0.01595200225710869, + -0.00479911919683218, + 0.003451760858297348, + 0.03294944763183594, + -0.003571175504475832, + 0.08003038167953491, + 0.013392471708357334, + 0.004184020683169365, + -0.029614847153425217, + -0.023937014862895012, + -0.040303587913513184, + 0.0018802182748913765, + 0.04992886632680893, + 0.00440257228910923, + -0.03258894756436348, + 0.017790537327528, + 0.002491937018930912, + -0.01867375522851944, + -0.028208907693624496, + 0.022837499156594276, + 0.009958735667169094, + 0.011716159991919994, + 0.00032810878474265337, + -0.013635807670652866, + -0.015339156612753868, + 0.0002617829304654151, + -0.0366084910929203, + 0.020151793956756592, + -0.0032917901407927275, + -0.015402243472635746, + 0.03741960972547531, + -0.00920169148594141, + 0.013933217152953148, + 0.020097719505429268, + 0.01955697499215603, + -0.051190607249736786, + -0.012833701446652412, + 0.033237844705581665, + -0.0020706059876829386, + 0.022422926500439644, + 0.019088327884674072, + -0.0217560064047575, + -0.03199412673711777, + 0.015699654817581177, + 0.00743976142257452, + 0.017457077279686928, + 0.025126656517386436, + 0.017907699570059776, + -0.05382223427295685, + 0.020097719505429268 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换高压油泵柱塞偶件", + "编号": "MT014", + "内容": "表 4.16 MT014 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT014050301柱塞偶件更换高压油泵柱塞偶件1A/8000hJY级
安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。
安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖
序号名称规格/型号数量及单位备注
1柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDE1个防止划伤
2供油定时检测仪AVL 5451台测量喷油始点
3精密塞尺0.02-1.00mm1套检查齿条间隙
4扭矩扳手30-150 N·m1把用于泵体检修盖
2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用)
名称规格/型号消耗数量备注
1柱塞+套筒偶件MAN5L35MC-PLUNGER-KIT1套配对编号一致
2出油阀组件MAN 5L35MC-DV-ASSY1套含弹簧、阀座
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高压泵专用润滑油Shell Tellus S4 VX32100mL用于偶件润滑
2密封胶Loctite 577少量泵体结合面(如适用)
3清洗柴油ISO 4020 Grade A300mL冲洗油道
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工确认供油定时
修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m;
(2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA;
验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA;
3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1
\n\n\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.16 MT014 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT014050301柱塞偶件更换高压油泵柱塞偶件1A/8000hJY级
安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。
安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖
序号名称规格/型号数量及单位备注
1柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDE1个防止划伤
2供油定时检测仪AVL 5451台测量喷油始点
3精密塞尺0.02-1.00mm1套检查齿条间隙
4扭矩扳手30-150 N·m1把用于泵体检修盖
2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用)
名称规格/型号消耗数量备注
1柱塞+套筒偶件MAN5L35MC-PLUNGER-KIT1套配对编号一致
2出油阀组件MAN 5L35MC-DV-ASSY1套含弹簧、阀座
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高压泵专用润滑油Shell Tellus S4 VX32100mL用于偶件润滑
2密封胶Loctite 577少量泵体结合面(如适用)
3清洗柴油ISO 4020 Grade A300mL冲洗油道
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工确认供油定时
修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m;
(2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA;
验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA;
3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_e4164aa5-a4e0-42da-8ce9-84075ff9b2f6.pdf#page=43\"}]", + "embedding": [ + -0.011570705100893974, + -0.013517878949642181, + -0.012740882113575935, + -0.02293545939028263, + 0.020894670858979225, + -0.053247712552547455, + 0.007830820977687836, + 0.031079888343811035, + -0.016017375513911247, + -0.028795704245567322, + 0.017178190872073174, + -0.030930105596780777, + -0.0003086340439040214, + 0.004189231898635626, + 0.01715010590851307, + -0.059164125472307205, + 0.010494142770767212, + 0.016756927594542503, + 0.014379128813743591, + -0.01954662799835205, + -0.05193711444735527, + 0.01747775636613369, + 0.008617179468274117, + 0.0017283506458625197, + -0.008317614905536175, + 0.0280655138194561, + -0.006234700325876474, + 0.012347702868282795, + 0.045646246522665024, + -0.01870410144329071, + -0.031210947781801224, + 0.010353721678256989, + -0.03312067687511444, + -0.00703042047098279, + -0.01617651991546154, + -0.031810078769922256, + -0.01492209080606699, + -0.022504834458231926, + -0.05025206133723259, + 0.015568028204143047, + -0.004933464340865612, + -0.03591037541627884, + 0.02141891047358513, + -0.0425008088350296, + 0.005523233208805323, + -0.020726166665554047, + -0.0107188168913126, + -0.021793367341160774, + 0.013733191415667534, + -0.01070009358227253, + -0.0026305567007511854, + -0.04104043170809746, + 0.0408906489610672, + -0.02220526896417141, + -0.005097288638353348, + 0.021549969911575317, + -0.024058828130364418, + -0.04834233224391937, + -0.038868583738803864, + -0.024339670315384865, + -0.04257570207118988, + 0.01630757935345173, + 0.025294534862041473, + 0.027859563007950783, + 0.0493159182369709, + 0.07271944731473923, + 0.02046404592692852, + 0.02042660117149353, + -0.028589751571416855, + -0.01962151937186718, + -0.008823131211102009, + 0.0131808677688241, + 0.037988610565662384, + 0.021531248465180397, + -0.02892676368355751, + 0.0530979298055172, + 0.0719330906867981, + -0.054034069180488586, + -0.009497152641415596, + 0.003948175348341465, + 0.0368652418255806, + -0.003913070075213909, + -0.008317614905536175, + 0.03660311922430992, + -0.0390932559967041, + 0.04594580829143524, + 0.005181541666388512, + -0.03244665265083313, + -0.03920559212565422, + 0.004097958095371723, + -0.018591763451695442, + 0.019172171130776405, + -0.01971513405442238, + 0.012544292025268078, + -0.07683847099542618, + 0.04452287405729294, + 0.009801398031413555, + -0.003688396420329809, + 0.058340318500995636, + -0.05766629800200462, + 0.04193912446498871, + 0.017047131434082985, + 0.0020957861561328173, + -0.048267439007759094, + 0.04433564841747284, + -0.04680706188082695, + 0.024920077994465828, + 0.00550451036542654, + -0.01751520112156868, + 0.010344360023736954, + -0.010344360023736954, + 0.051525212824344635, + 0.025781327858567238, + -0.006239381153136492, + -0.03072415478527546, + -0.08065792918205261, + 0.0075452979654073715, + -0.05796586349606514, + 0.02729787677526474, + -0.014491465874016285, + 0.008523565717041492, + -0.039542604237794876, + 0.06582944840192795, + -0.04347439855337143, + 0.0442982017993927, + -0.004020726308226585, + 0.03132328391075134, + 0.01106518879532814, + -0.01960279606282711, + 0.02641790546476841, + -0.0015469733625650406, + 0.04175189882516861, + 0.004603474400937557, + 0.0204453244805336, + -0.03398192673921585, + 0.00835506059229374, + -0.018844522535800934, + 0.02480774186551571, + 0.009969904087483883, + -0.020595107227563858, + 0.009689060971140862, + 0.04426075518131256, + -0.0410778746008873, + 0.026773639023303986, + 0.010803069919347763, + -0.04366162419319153, + 0.027803393080830574, + -0.008486120030283928, + 0.02647407352924347, + -0.055906351655721664, + 0.02649279683828354, + 0.014266791753470898, + 0.05938879773020744, + -0.022561002522706985, + 0.04182678833603859, + -0.009960542432963848, + -0.028571030125021935, + 0.033532578498125076, + 0.012282172217965126, + 0.010129047557711601, + 0.0020583404693752527, + 0.029413556680083275, + -0.038718800991773605, + -0.02799062244594097, + 0.0019553648307919502, + -0.026904698461294174, + 0.06736472249031067, + -0.007161480374634266, + 0.007484449073672295, + -0.029357388615608215, + 0.039654940366744995, + 0.006885318551212549, + -0.0005458873347379267, + 0.003283515339717269, + -0.009941819123923779, + 0.001642927760258317, + -0.0016078224871307611, + 0.013770637102425098, + 0.010063517838716507, + 0.0026048128493130207, + -0.007582743652164936, + 0.05905178561806679, + -0.012375786900520325, + -0.057516515254974365, + 0.02229888364672661, + 0.020089590921998024, + 0.018423259258270264, + -0.047368746250867844, + -0.020932117477059364, + -0.018170500174164772, + -0.02061382867395878, + 0.005621527787297964, + 0.02733532339334488, + 0.015530582517385483, + 0.046582385897636414, + -0.016476085409522057, + 0.02205548621714115, + 0.006964890751987696, + 0.025088584050536156, + -0.007549978792667389, + -0.01195452269166708, + 0.024114998057484627, + 0.03523635491728783, + 0.022860568016767502, + -0.05081374570727348, + 0.023197578266263008, + 0.050776299089193344, + -0.02299162745475769, + -0.019228341057896614, + -0.040478747338056564, + 0.007470406591892242, + 0.014023395255208015, + 0.04489733278751373, + -0.05088863521814346, + -0.04441053792834282, + 0.01539016142487526, + 0.038756243884563446, + -0.024433284997940063, + -0.027915731072425842, + 0.005228348542004824, + -0.021456357091665268, + 0.00489133782684803, + -0.00919758714735508, + 0.006627879571169615, + 0.012984278611838818, + 0.01740286499261856, + -0.0049896324053406715, + 0.025856219232082367, + -0.023422252386808395, + -0.01914408802986145, + -0.024433284997940063, + 0.016054822131991386, + -0.009155460633337498, + -0.009698422625660896, + 0.051113311201334, + 0.025556655600667, + 0.004313270561397076, + 0.02396521531045437, + -0.0009361411794088781, + 0.025163475424051285, + 0.017833489924669266, + -0.00874823983758688, + -0.008022730238735676, + -0.021643584594130516, + -0.014313599094748497, + -0.010587756521999836, + 0.04021662473678589, + 0.060062818229198456, + -0.03358874469995499, + 0.014856561087071896, + 0.005607485771179199, + -0.020201927050948143, + -0.024302225559949875, + 0.02971312217414379, + 0.022841844707727432, + 0.011327308602631092, + 0.015530582517385483, + -0.00767167704179883, + 0.025893665850162506, + 0.004044129978865385, + 0.02033298648893833, + 0.09031890332698822, + 0.010400529019534588, + 0.024302225559949875, + -0.015511860139667988, + 0.04459776729345322, + -0.04104043170809746, + 0.05616847053170204, + -0.001957705244421959, + 0.0320909209549427, + 0.0013562345411628485, + -0.006604476366192102, + -0.01964024268090725, + 0.047443635761737823, + 0.05141287297010422, + 0.03386958688497543, + 0.004339014645665884, + -0.031079888343811035, + 0.04418586567044258, + -0.003983280621469021, + 0.03164157271385193, + -0.011168164201080799, + 0.03130456060171127, + -0.021119344979524612, + 0.004706449806690216, + 0.007919754832983017, + -0.06575455516576767, + -0.008715474978089333, + -0.012020053341984749, + -0.07167097181081772, + 0.007844863459467888, + -0.011757933534681797, + 0.06650347262620926, + -0.02205548621714115, + -0.012946832925081253, + 0.025987280532717705, + 0.013705107383430004, + -0.1524786800146103, + -0.0034543611109256744, + -0.04523434117436409, + 0.027859563007950783, + 0.0013328309869393706, + 0.004928783513605595, + -0.056730158627033234, + 0.002318119630217552, + -0.02804679051041603, + -0.03559208661317825, + -0.021999318152666092, + -0.07208286970853806, + -0.03431893512606621, + -0.0324653759598732, + -0.06238444894552231, + -0.010990297421813011, + -0.016260772943496704, + 0.012619183398783207, + 0.0081163439899683, + -0.032147087156772614, + -0.03557336702942848, + 0.040628526359796524, + 0.09945563971996307, + -0.04680706188082695, + -0.0444854311645031, + 0.018657295033335686, + 0.017636900767683983, + -0.009969904087483883, + -0.028608474880456924, + -0.006239381153136492, + -0.01571781001985073, + -0.039580050855875015, + -0.0036088242195546627, + 0.05002738535404205, + -0.007362750358879566, + 0.022673340514302254, + 0.00486793415620923, + 0.012900025583803654, + -0.02203676477074623, + 0.010728178545832634, + 0.03645334020256996, + 0.06362015753984451, + 0.01571781001985073, + 0.012900025583803654, + 0.004147105384618044, + -0.04871678724884987, + 0.007980603724718094, + -0.0410778746008873, + 0.0069508482702076435, + -0.005986623000353575, + 0.014697416685521603, + 0.01155198272317648, + 0.00143814692273736, + -0.02038915455341339, + -0.007620189338922501, + -0.01692543365061283, + -0.013742553070187569, + 0.08919553458690643, + -0.016223326325416565, + 0.027017034590244293, + -0.033775974065065384, + -0.016897348687052727, + 0.026249399408698082, + 0.031884968280792236, + -0.05511999502778053, + -0.010428613051772118, + -0.006866595707833767, + -0.06751450151205063, + 0.013751913793385029, + 0.0019553648307919502, + -0.0009876289404928684, + 0.007259774953126907, + 0.03474956005811691, + -0.010934129357337952, + -0.014940813183784485, + 0.03317684307694435, + 0.037146084010601044, + -0.04347439855337143, + -0.013461710885167122, + -0.13712596893310547, + -0.027035757899284363, + 0.06069939583539963, + -0.02563154697418213, + 0.0010373614495620131, + -0.03735203295946121, + -0.02804679051041603, + 0.009548639878630638, + 0.02392776869237423, + 0.04493477940559387, + 0.18917541205883026, + 0.031285837292671204, + 0.019902361556887627, + 0.0032788345124572515, + 0.040403854101896286, + -0.03832561895251274, + 0.016279496252536774, + -0.023366084322333336, + 0.02454562298953533, + -0.02140018716454506, + 0.017580730840563774, + 0.03905580937862396, + 0.03645334020256996, + -0.019378121942281723, + 0.012993640266358852, + 0.00810698326677084, + -0.012179196812212467, + 0.013265120796859264, + 0.07886053621768951, + -0.00614576693624258, + 0.002151954686269164, + 0.022748231887817383, + -0.02980673499405384, + -0.018441982567310333, + -0.06856298446655273, + -0.033644914627075195, + 0.013087254017591476, + 0.021774644032120705, + -0.028477415442466736, + 0.020763611420989037, + -0.005818117409944534, + 0.016448000445961952, + 0.04163955897092819, + -0.005644931457936764, + -0.07073482871055603, + 0.004839850123971701, + -0.02482646517455578, + -0.009553320705890656, + 0.03660311922430992, + 0.02046404592692852, + 0.020070867612957954, + -0.013489794917404652, + 0.013311928138136864, + 0.03250282257795334, + -0.009029082022607327, + -0.015802063047885895, + -0.017777321860194206, + 0.0032250063959509134, + -0.0077231647446751595, + 0.026099616661667824, + 0.046432603150606155, + -1.659273766563274e-05, + -0.04534668102860451, + -0.008247404359281063, + 0.04268803820014, + -0.012993640266358852, + -0.03592909872531891, + -0.003019055351614952, + 0.0081163439899683, + 0.00222333543933928, + 0.03336407244205475, + 0.003580740187317133, + -0.06714005023241043, + -0.0010677860118448734, + 0.03415043279528618, + -0.039580050855875015, + -0.027541274204850197, + 0.057628851383924484, + -0.007685719057917595, + 0.007929115556180477, + 0.03737075626850128, + 0.022729508578777313, + -0.011214971542358398, + 0.03516146168112755, + 0.036172494292259216, + -0.007465726230293512, + 0.020089590921998024, + 0.102226622402668, + 0.0288705937564373, + -0.026249399408698082, + -0.034431274980306625, + 0.006922764237970114, + -0.052423905581235886, + -0.008523565717041492, + 0.019827470183372498, + -0.04036640748381615, + -0.00013815396232530475, + -0.0163263026624918, + -0.020838502794504166, + 0.022673340514302254, + -0.03637844696640968, + -0.008659305982291698, + -0.01492209080606699, + 0.024077551439404488, + -0.025163475424051285, + 0.00012740296369884163, + 0.020258095115423203, + -0.04317483305931091, + 0.012450678274035454, + 0.06609156727790833, + 0.00936141237616539, + -0.02377798594534397, + 0.02033298648893833, + -0.04414841905236244, + -0.008472077548503876, + 0.023572035133838654, + -0.0021905703470110893, + 0.007713803555816412, + 0.004287526477128267, + -0.004900699015706778, + 0.0513005368411541, + 0.045646246522665024, + -0.012815773487091064, + -0.03300833702087402, + -0.0254630409181118, + 0.014416574500501156, + -0.018217308446764946, + 0.02053893730044365, + -0.01862921006977558, + 0.02626812271773815, + -0.006740216631442308, + -0.018488788977265358, + -0.005860243923962116, + -0.009848205372691154, + -0.01194516196846962, + -0.028514860197901726, + -0.038868583738803864, + 0.000540621520485729, + -0.015202932991087437, + 0.06680303812026978, + -0.03924303874373436, + 0.009487790986895561, + 0.021868258714675903, + 0.01954662799835205, + 0.037202250212430954, + 0.024994969367980957, + 0.0063095916993916035, + 0.009660976938903332, + 0.03064926341176033, + -0.009183545596897602, + 0.05395917966961861, + -0.040328964591026306, + 0.0040277475491166115, + -0.009155460633337498, + -0.013499156571924686, + -0.04579602926969528, + -0.007503171917051077, + 0.007404876872897148, + -0.015764618292450905, + 0.08267999440431595, + -0.0015890996437519789, + 0.025781327858567238, + -0.02126912772655487, + -0.049765266478061676, + -0.05025206133723259, + -0.013967226259410381, + 0.008050814270973206, + -0.0053594084456563, + -0.025893665850162506, + -0.004886656999588013, + 0.004500498995184898, + 0.010990297421813011, + 0.037932440638542175, + 0.02478901855647564, + 0.04800532013177872, + 0.08372846990823746, + -0.015268462710082531, + -0.007231690920889378, + 0.05365961417555809, + 0.004535604268312454, + 0.004676025360822678, + 0.016110990196466446, + -0.03394448012113571, + 0.020145758986473083, + 0.007208287250250578, + 0.04695684090256691, + 0.02991907298564911, + 0.021456357091665268, + -0.019097279757261276, + 0.025331981480121613, + 0.023235024884343147, + 0.0495031476020813, + -0.03682779520750046, + -0.008916744962334633, + -0.04145233333110809, + 0.007830820977687836, + -0.034543611109256744, + 0.01144900731742382, + -0.028346356004476547, + 0.031660296022892, + -0.028589751571416855, + 0.08013368397951126, + -0.038831137120723724, + 0.0038428595289587975, + 0.021774644032120705, + 0.02037043310701847, + 0.07365559041500092, + 0.02467668242752552, + -0.004519221838563681, + -0.003119690576568246, + -0.01325575914233923, + 0.02821529656648636, + 0.004062852822244167, + 0.025818774476647377, + 0.005209625698626041, + -0.05377195030450821, + -0.029619507491588593, + -0.038718800991773605, + -0.009745229966938496, + -0.026586409658193588, + -0.02638045884668827, + -0.020988285541534424, + 0.00555599806830287, + -0.0010110324947163463, + 0.039767276495695114, + -0.020314263179898262, + 0.04995249584317207, + 0.0288705937564373, + -0.026006001979112625, + 0.002623535692691803, + 0.00300033250823617, + -0.010831153951585293, + 0.028402524068951607, + -0.01615779660642147, + -0.01604546047747135, + 0.0004581240937113762, + -0.015708450227975845, + -0.006716812960803509, + 0.03596654534339905, + 0.016373109072446823, + 0.013705107383430004, + 0.07481640577316284, + -0.04104043170809746, + -0.026586409658193588, + 0.037052467465400696, + -0.008434631861746311, + 0.0076623158529400826, + 0.0334576852619648, + 0.0016265453305095434, + -0.0049896324053406715, + -0.0020911053288728, + -0.010803069919347763, + 0.04493477940559387, + 0.05721694976091385, + -0.009792037308216095, + 0.04800532013177872, + -0.07006080448627472, + 0.012797050178050995, + 0.0004370609240140766, + 0.03813839331269264, + -0.036883965134620667, + 0.04875423386693001, + 0.012581737712025642, + -0.024901356548070908, + -0.02211165428161621, + -0.03141690045595169, + -0.009698422625660896, + 0.004020726308226585, + -0.07938477396965027, + 0.0010016710730269551, + 0.008209958672523499, + 0.011832824908196926, + 0.0002572925586719066, + 0.0039107296615839005, + 0.017140746116638184, + -0.04178934171795845, + 0.018582403659820557, + 0.013873612508177757, + 0.002154294867068529, + -0.05538211390376091, + -0.0390932559967041, + -0.052349016070365906, + -0.023422252386808395, + -0.051562655717134476, + 0.014351044781506062, + -0.02048276923596859, + 0.017618177458643913, + 0.004535604268312454, + -0.030405865982174873, + 0.029488448053598404, + -0.016738204285502434, + -0.05706716701388359, + -0.02739149145781994, + -0.04957803711295128, + 0.0052423905581235886, + -0.03999195247888565, + 0.08477694541215897, + -0.01364893838763237, + -0.017196914181113243, + -0.0030471396166831255, + 0.04339950531721115, + -0.006894679740071297, + -0.03637844696640968, + 0.0157365333288908, + -0.006478097289800644, + 0.009309924207627773, + 0.00265630055218935, + 0.00850016251206398, + -0.0043062493205070496, + 0.00010977718193316832, + 0.020201927050948143, + 0.006932125426828861, + -0.05036439746618271, + -0.05373450368642807, + -0.060924068093299866, + -0.016532253473997116, + -0.017814766615629196, + -0.011514537036418915, + 0.008855896070599556, + -0.0013105976395308971, + -0.022860568016767502, + -0.04605814814567566, + -0.0073814732022583485, + 0.00850952323526144, + 0.048941463232040405, + 0.021961873397231102, + 0.000933215778786689, + -0.008926106616854668, + -0.0018640911439433694, + 0.037988610565662384, + -0.029432279989123344, + -0.011888992972671986, + -0.039467714726924896, + -0.012132390402257442, + -0.00700701680034399, + 0.00298863067291677, + 0.008256765082478523, + 0.045646246522665024, + -0.027822116389870644, + -0.02563154697418213, + -0.00788698997348547, + 0.005130053963512182, + 0.003868603613227606, + -0.020669998601078987, + 0.024938801303505898, + -0.004933464340865612, + 0.022317606955766678, + -0.016550976783037186, + -0.03332662582397461, + -0.014491465874016285, + -0.004561347886919975, + -0.01908791996538639, + 0.0022537598852068186, + -0.015961207449436188, + 0.032858557999134064, + -0.021774644032120705, + -0.0077980561181902885, + -0.017468394711613655, + 0.014351044781506062, + 0.013012362644076347, + -0.04867934063076973, + -0.03980472311377525, + -0.0026750233955681324, + -0.07230754941701889, + -0.04875423386693001, + 0.004811765626072884, + -0.0012801730772480369, + -0.003889666637405753, + 0.0238528773188591, + 0.0045051793567836285, + -0.022355051711201668, + -0.019340677186846733, + -0.03894347324967384, + 0.005593443755060434, + 0.009000997990369797, + 0.022467389702796936, + -0.010569034144282341, + 0.02724170871078968, + 0.03770776838064194, + -0.02046404592692852, + 0.0020337668247520924, + -0.019359400495886803, + -0.003480104962363839, + 0.031210947781801224, + 0.009492471814155579, + 0.03658439964056015, + -0.00048620832967571914, + 0.007596785668283701, + -0.007564020808786154, + -0.002733532339334488, + -0.03076159954071045, + -0.05279836431145668, + -0.024021383374929428, + -0.019790025427937508, + 0.01194516196846962, + -0.0035666979383677244, + -0.039617497473955154, + 0.016017375513911247, + 0.033738527446985245, + 0.034506164491176605, + -0.018142417073249817, + -0.015034427866339684, + -0.021456357091665268, + 0.030948828905820847, + -0.13585281372070312, + -0.003969238605350256, + -0.03641589358448982, + -0.0326526053249836, + -0.01619524322450161, + 0.0006886488990858197, + 0.004189231898635626, + -0.021961873397231102, + 0.008518884889781475, + -0.02982545830309391, + -0.025088584050536156, + -0.0007805077475495636, + 0.027709780260920525, + 0.0057151420041918755, + -0.007269136607646942, + 0.0381009466946125, + -0.006684048101305962, + -0.04939081147313118, + 0.020070867612957954, + 0.024058828130364418, + -0.007652954198420048, + -0.04680706188082695, + 0.01617651991546154, + -0.010129047557711601, + 0.049877602607011795, + -0.05789097025990486, + -0.004877295810729265, + 0.010587756521999836, + 0.00616917060688138, + 0.004119021352380514, + -0.02815912663936615, + -0.026211952790617943, + 0.053434938192367554, + 0.04186423495411873, + 0.041265103965997696, + -0.04059108346700668, + 0.007367431186139584, + 0.0029605466406792402, + 0.030911382287740707, + -0.01150517538189888, + 0.020950840786099434, + -0.008369102142751217, + -0.006361079402267933, + 0.03654695302248001, + 0.015465052798390388, + 0.023534590378403664, + -0.012347702868282795, + -0.011645596474409103, + 0.0008945999434217811, + 0.010877960361540318, + 0.006988293956965208, + 0.009305243380367756, + -0.007109992206096649, + 0.02115679159760475, + 0.007301901467144489, + 0.003550315508618951, + -0.05347238481044769, + 0.007470406591892242, + 0.016204604879021645, + 0.05193711444735527, + -0.009717145934700966, + 0.011121357791125774, + -0.001720159430988133, + -0.08605010062456131, + -0.0032694730907678604, + -0.03334534913301468, + -0.03340151906013489, + -0.012609821744263172, + 0.015212294645607471, + -0.008130386471748352, + -0.00877632386982441, + -0.057441625744104385, + -0.053996626287698746, + -0.0010127878049388528, + 0.016878625378012657, + -0.051487766206264496, + 0.04317483305931091, + -0.03493678942322731, + -0.03518018499016762, + -0.01654161512851715, + -0.008284850046038628, + 0.0012228344567120075, + -0.04972781985998154, + 0.013293204829096794, + -0.0029933115001767874, + -0.016167158260941505, + -0.0030682028736919165, + -0.048155102878808975, + 0.027073202654719353, + 0.026567688211798668, + -0.012722158804535866, + -0.022617170587182045, + 0.03233431652188301, + 0.008284850046038628, + 0.028702089563012123, + 0.017655622214078903, + -0.010166493244469166, + -0.03776393458247185, + 0.010952851735055447, + -0.07642656564712524, + -0.040403854101896286, + 0.0005485202418640256, + 0.01789901964366436, + 0.01815177872776985, + -0.013115338049829006, + -0.0044443304650485516, + 0.010035433806478977, + -0.0014358065091073513, + 0.008827811107039452, + 0.011430284008383751, + -0.04527178779244423, + 0.007400196045637131, + -0.027971899136900902, + -0.03753926232457161, + -0.048267439007759094, + 0.022486111149191856, + 0.001295385416597128, + -0.03233431652188301, + -0.056580375880002975, + -0.042276136577129364, + -0.005144095979630947, + 0.04077830910682678, + -0.012328979559242725, + -0.03665928915143013, + -0.02136274240911007, + -0.015090595930814743, + 0.03484317660331726, + 0.023703094571828842, + 0.02029554173350334, + 0.03845668211579323, + 0.003746905131265521, + 0.05425874516367912, + -0.008589095436036587, + 0.008092940784990788, + 0.015989292412996292, + -0.0008565692114643753, + -0.05695483088493347, + 0.054895319044589996, + -0.031828802078962326, + -0.04160211607813835, + 0.01108391210436821, + 0.04321227967739105, + 0.008570373058319092, + -0.04759341850876808, + -0.007194245234131813, + -0.00028742459835484624, + -0.020632551982998848, + -0.02726043201982975, + 0.0050598434172570705, + 0.005953858140856028, + 0.004612835589796305, + -0.007769972085952759, + 0.01947173662483692, + 0.005808756221085787, + -0.023478420451283455, + 0.01868537813425064, + 0.00978267565369606, + -0.013442987576127052, + -0.057628851383924484, + 0.028365079313516617, + 0.003360746894031763, + -0.034412551671266556, + -0.01588631607592106, + -0.013892335817217827, + 0.026960866525769234, + 0.017009684816002846, + -0.0019635562784969807, + 0.02651151828467846, + -0.01671012118458748, + 0.018441982567310333, + -0.06051216647028923, + -0.015614835545420647, + -0.028627198189496994, + 0.006070875562727451, + 0.018498150631785393, + -0.070135697722435, + 0.003913070075213909, + -0.025800051167607307, + 0.09196650981903076, + 0.027822116389870644, + 0.014304237440228462, + -0.0005593443638645113, + 0.008855896070599556, + 0.0001878133334685117, + 0.0003019055293407291, + 0.009515875019133091, + 0.016429278999567032, + 0.004650281276553869, + -0.022467389702796936, + -0.016878625378012657, + 0.01445402018725872, + -0.010185216553509235, + 0.023253748193383217, + -0.0127315204590559, + 0.035273801535367966, + -0.04167700558900833, + -0.0028154447209089994, + -0.016129713505506516, + -0.012450678274035454, + 0.09174183756113052, + 0.05886455997824669, + 0.0030143747571855783, + 0.007138076703995466, + 0.005546636413782835, + -0.013611492700874805, + -0.010634563863277435, + 0.0324653759598732, + 0.01195452269166708, + -0.024171166121959686, + 0.03972983360290527, + -0.0669153705239296, + 0.0056262086145579815, + -0.026904698461294174, + 0.017215637490153313, + 0.018563680350780487, + -0.009057166054844856, + 0.00572918402031064, + 0.01822667010128498, + -0.014659970998764038, + 0.013873612508177757, + -0.00038996132207103074, + 0.019995976239442825, + 0.021493801847100258, + -0.026698747649788857, + 0.055681679397821426, + -0.0019202596740797162, + -0.010447335429489613, + -0.020070867612957954, + -0.009132057428359985, + -0.04673216864466667, + -0.02304779551923275, + -0.002231526654213667, + 0.0056262086145579815, + 0.025968557223677635, + -0.031154779717326164, + -0.03334534913301468, + -0.019434291869401932, + -0.017468394711613655, + 0.01571781001985073, + 0.017224997282028198, + 0.0382881760597229, + 0.03679034858942032, + -0.038831137120723724, + 0.07863586395978928 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "柱塞偶件", + "组成编码": "050301", + "维修项目名称": "更换高压油泵柱塞偶件", + "维修项目编号": "MT014", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.16 MT014 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT014050301柱塞偶件更换高压油泵柱塞偶件1A/8000hJY级
安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。
安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖
序号名称规格/型号数量及单位备注
1柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDE1个防止划伤
2供油定时检测仪AVL 5451台测量喷油始点
3精密塞尺0.02-1.00mm1套检查齿条间隙
4扭矩扳手30-150 N·m1把用于泵体检修盖
2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用)
名称规格/型号消耗数量备注
1柱塞+套筒偶件MAN5L35MC-PLUNGER-KIT1套配对编号一致
2出油阀组件MAN 5L35MC-DV-ASSY1套含弹簧、阀座
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高压泵专用润滑油Shell Tellus S4 VX32100mL用于偶件润滑
2密封胶Loctite 577少量泵体结合面(如适用)
3清洗柴油ISO 4020 Grade A300mL冲洗油道
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工确认供油定时
修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m;
(2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA;
验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA;
3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_e4164aa5-a4e0-42da-8ce9-84075ff9b2f6.pdf#page=43\"}]", + "embedding": [ + 0.0468132309615612, + 0.020183704793453217, + 0.007359579671174288, + 0.016582686454057693, + 0.03928710147738457, + -0.023658685386180878, + 0.04836166650056839, + 0.03194102644920349, + -0.006990475580096245, + -0.025243133306503296, + 0.019949637353420258, + -0.009236610494554043, + 0.022290298715233803, + -0.012765607796609402, + 0.04789353534579277, + -0.03777467459440231, + -0.029150238260626793, + -0.003972372505813837, + 0.006580859888345003, + -0.03629825636744499, + -0.053763192147016525, + -0.004843368660658598, + 0.005027920939028263, + 0.03165294602513313, + -0.0061667426489293575, + 0.010352925397455692, + 0.0174559336155653, + 0.007544131949543953, + 0.0032881791703402996, + 0.004548535216599703, + 0.01768999919295311, + 0.01398095116019249, + 0.008039271458983421, + -0.03950316458940506, + 0.009614717215299606, + -0.036190226674079895, + -0.03120281733572483, + -0.03249918296933174, + -0.05750825256109238, + 0.0012558549642562866, + -0.05419531464576721, + -0.018887337297201157, + 0.0360281802713871, + -0.04944197088479996, + 0.025045078247785568, + -0.05541966110467911, + -0.00562208890914917, + -0.03509191796183586, + -0.0185452401638031, + -0.01043394859880209, + 0.004242449067533016, + 0.006414312869310379, + 0.036748386919498444, + 0.00556357204914093, + -0.027331724762916565, + 0.010947093367576599, + -0.03203105181455612, + -0.010046839714050293, + -0.05509556829929352, + 0.014404070563614368, + 0.012099419720470905, + 0.0761975347995758, + -0.01370187196880579, + 0.04774949327111244, + 0.02684558741748333, + 0.008340856991708279, + 0.009857785888016224, + 0.0015304324915632606, + -0.01833818294107914, + 0.008570422418415546, + -0.012738600373268127, + -0.004280709661543369, + 0.04396842420101166, + -0.0044405050575733185, + -0.017419923096895218, + 0.02007567323744297, + 0.04288811981678009, + -0.017699001356959343, + -0.007535129319876432, + -0.009101572446525097, + 0.016240589320659637, + 0.00672490056604147, + -0.011982386000454426, + 0.05851653590798378, + -0.027853870764374733, + 0.044724639505147934, + -0.00038710940862074494, + 0.013692869804799557, + -0.06496235728263855, + -0.00019847796647809446, + -0.04512074962258339, + -0.016465652734041214, + 0.004924391862004995, + -0.0054735466837882996, + -0.06503438204526901, + 0.02101193740963936, + -0.021894186735153198, + 0.01399895641952753, + 0.08253532648086548, + 0.005185465328395367, + 0.0024464414454996586, + 0.032517191022634506, + -0.011280187405645847, + -0.005653597880154848, + 0.022560374811291695, + -0.020723856985569, + 0.05502355098724365, + -0.04710131138563156, + -0.0022540120407938957, + 0.01706882379949093, + 0.019949637353420258, + 0.03644229844212532, + -0.007350577507168055, + -0.002716517774388194, + -0.02095792256295681, + -0.08728867024183273, + 0.013944940641522408, + 0.0017701252363622189, + -0.00992080383002758, + -0.00047629085020162165, + -0.04126766324043274, + -0.057472240179777145, + 0.04998212680220604, + -0.0688154473900795, + 0.041663773357868195, + -0.02081388235092163, + 0.011982386000454426, + 0.004476515110582113, + -0.017969077453017235, + -0.008489399217069149, + -0.03953917324542999, + -0.00351324281655252, + 0.02086789719760418, + 0.020831886678934097, + -0.0311127919703722, + -0.014989236369729042, + -0.017644986510276794, + 0.02531515434384346, + 0.033039335161447525, + -0.0046138036996126175, + 0.006904951296746731, + 0.0004346540954429656, + 0.005284493323415518, + 0.008340856991708279, + 0.02146206609904766, + -0.013719877228140831, + 0.017744014039635658, + 0.01249553170055151, + 0.01161328237503767, + -0.07871824502944946, + 0.06373801082372665, + -0.013053689152002335, + 0.03662234917283058, + 0.006832931190729141, + 0.001881531672552228, + 0.005698610562831163, + -0.05711213871836662, + 0.04000730440020561, + 0.03986326605081558, + 0.030716679990291595, + -0.044724639505147934, + 0.009884793311357498, + -0.011829342693090439, + -0.07198434323072433, + 0.008547916077077389, + 0.019859611988067627, + 0.06791519373655319, + 0.021498074755072594, + 0.0014043968403711915, + -0.018356187269091606, + 0.025747276842594147, + 0.03514593094587326, + 0.029150238260626793, + -0.005676104221493006, + 0.008462391793727875, + -0.00010704587475629523, + -0.02796190232038498, + 0.0005862906691618264, + 0.015538390725851059, + -0.022740427404642105, + 0.013764889910817146, + 0.03565007448196411, + -0.023442624136805534, + -0.03734255209565163, + 0.012117424048483372, + 0.017852045595645905, + 0.02628742903470993, + -0.020651835948228836, + 0.019859611988067627, + 0.03158092498779297, + -0.01845521479845047, + -0.005216974299401045, + 0.05934477224946022, + -0.04018735885620117, + 0.047173332422971725, + -0.012531541287899017, + 0.010668015107512474, + 0.04976606369018555, + 0.0063017806969583035, + 0.02063383162021637, + -0.05268288776278496, + 0.023802727460861206, + -0.009614717215299606, + -0.0046318089589476585, + -0.046849239617586136, + -0.004969404544681311, + 0.00659436360001564, + 0.009749755263328552, + 0.02081388235092163, + -0.024793006479740143, + 0.00990279857069254, + 0.02243434078991413, + 0.04051144793629646, + -0.03469580411911011, + -0.004057896789163351, + 0.026233414188027382, + -0.0038936003111302853, + -0.02101193740963936, + 0.002824548166245222, + 0.004798355977982283, + -0.0020840889774262905, + 0.04090756177902222, + 0.00999282393604517, + 0.05948881059885025, + -0.00585165387019515, + -0.00020494854834396392, + -0.05444738641381264, + -0.0025454694405198097, + -0.03329140692949295, + -0.016618696972727776, + -0.03408363088965416, + 0.03046461008489132, + 0.01789705827832222, + -0.013737882487475872, + 0.040727511048316956, + -0.00844888761639595, + -0.03509191796183586, + 0.050234194844961166, + 0.018122121691703796, + 0.007575640920549631, + -0.0016159566584974527, + 0.0261974036693573, + 0.03138286992907524, + -0.03964720293879509, + 0.01833818294107914, + -0.01915741339325905, + 0.024775002151727676, + 0.04821762815117836, + -0.015754451975226402, + -0.0035942657850682735, + -0.0029033205937594175, + -0.0037585622631013393, + 0.008750473149120808, + 0.016114553436636925, + -0.006324287038296461, + 0.037990737706422806, + 0.011622284539043903, + 0.02257838100194931, + 0.05822845548391342, + 0.03023054264485836, + 0.03734255209565163, + 0.08505603671073914, + 0.009047556668519974, + 0.011514253914356232, + 0.022236283868551254, + 0.015196294523775578, + 0.005946180317550898, + 0.03682040423154831, + -0.00667538633570075, + -0.009794767946004868, + 0.001204090309329331, + -0.016123557463288307, + -0.04065549001097679, + 0.012540544383227825, + 0.013935938477516174, + 0.01822114922106266, + -0.002475699642673135, + -0.037810686975717545, + 0.013233739882707596, + 0.0032791767735034227, + 0.025027072057127953, + 0.025837302207946777, + 0.015196294523775578, + 0.027853870764374733, + -0.003922858741134405, + 0.014224019832909107, + -0.03712649270892143, + 0.022380324080586433, + -0.017176853492856026, + -0.06193750351667404, + 0.04674120992422104, + -0.0021257258486002684, + 0.06888746470212936, + 0.00548254931345582, + -0.06172144412994385, + 0.03824280574917793, + -0.00962371937930584, + -0.12113823741674423, + -0.07734985649585724, + -0.06607867032289505, + 0.006148737855255604, + -0.009938809089362621, + 0.030212538316845894, + -0.06254967302083969, + -0.006679887883365154, + -0.021209994331002235, + -0.0031801487784832716, + 0.00028104818193241954, + -0.07148019969463348, + -0.02855606935918331, + -0.008565920405089855, + -0.035596057772636414, + -0.0007230167975649238, + -0.023946767672896385, + 0.01265757717192173, + 0.01586248353123665, + -0.0055410657078027725, + -0.014079978689551353, + 0.009344641119241714, + 0.04533681273460388, + -0.03208506852388382, + -0.020237719640135765, + -0.021768150851130486, + 0.04850570857524872, + 0.05660799890756607, + -0.005361014977097511, + -0.031544916331768036, + -0.014872202649712563, + -0.0022933981381356716, + 0.0005924799479544163, + 0.01495322585105896, + -0.011226172558963299, + 0.0031959032639861107, + -0.061361342668533325, + 0.05873259902000427, + -0.01666370965540409, + 0.016564682126045227, + 0.030356578528881073, + 0.04562489315867424, + 0.0005747561808675528, + 0.03055463545024395, + -0.016618696972727776, + -0.018851326778531075, + 0.03138286992907524, + -0.010046839714050293, + -0.005234979558736086, + -0.04936995357275009, + 0.003333191853016615, + -0.007517124526202679, + 0.007139017339795828, + -0.07119211554527283, + -0.01289164274930954, + -0.009506686590611935, + 0.006661882624030113, + 0.0008771853754296899, + -0.026647530496120453, + 0.015907496213912964, + -0.03640628978610039, + -0.028303999453783035, + 0.017762020230293274, + 0.03687442094087601, + -0.04270806908607483, + -0.04573292285203934, + -0.010749037377536297, + -0.05920073017477989, + 0.02257838100194931, + -0.05091838911175728, + -0.012180441990494728, + -0.036136213690042496, + 0.021768150851130486, + 0.009353643283247948, + -0.01627659983932972, + 0.024126818403601646, + 0.04688524827361107, + -0.017320895567536354, + -0.017608975991606712, + -0.10536577552556992, + -0.07007580250501633, + 0.05293495953083038, + -0.0022371322847902775, + 0.016591688618063927, + -0.04209589585661888, + 0.027655815705657005, + 0.03253519535064697, + 0.003405212424695492, + 0.006436819210648537, + 0.17342500388622284, + -0.03132885321974754, + 0.008930523879826069, + 0.0013177474029362202, + 0.042167916893959045, + -0.033453453332185745, + -0.004195185378193855, + 0.004982908256351948, + 0.005905669182538986, + -0.014935220591723919, + 0.00556357204914093, + -0.033075347542762756, + 0.027277708053588867, + -0.028069932013750076, + 0.00839037075638771, + 0.057148151099681854, + -0.031364865601062775, + -0.016528671607375145, + 0.04051144793629646, + -0.033399440348148346, + -0.018212147057056427, + 2.667355329322163e-05, + -0.022740427404642105, + -0.02304651215672493, + -0.014980233274400234, + -0.01957153156399727, + 0.026215407997369766, + 0.02290247194468975, + -0.006346793845295906, + 0.05833648517727852, + 0.021264009177684784, + 0.02967238612473011, + 0.01750994846224785, + -0.015295322053134441, + -0.06528645008802414, + 0.004282960202544928, + -0.021480070427060127, + -0.008971035480499268, + 0.017726009711623192, + 0.0020131939090788364, + 0.027097657322883606, + -0.018527235835790634, + 0.021408049389719963, + 0.04159175232052803, + -0.017671994864940643, + -0.05642794817686081, + 0.007053493522107601, + 0.004057896789163351, + 0.024702981114387512, + 0.007220040541142225, + 0.057832345366477966, + -0.02425285428762436, + -0.006310783326625824, + -0.002795289969071746, + 0.020111683756113052, + -0.02054380625486374, + -0.032337140291929245, + -0.026449475437402725, + -0.017798028886318207, + 0.004474264569580555, + 0.04627307504415512, + 0.009317632764577866, + -0.03946715220808983, + -0.03426368162035942, + 0.034371715039014816, + -0.034749820828437805, + -0.04414847493171692, + 0.009911800734698772, + 0.07230843603610992, + 0.030032487586140633, + 0.08030269294977188, + 0.009704742580652237, + -0.04447256773710251, + 0.004120914731174707, + 0.026305433362722397, + 0.004748842213302851, + 0.03853088989853859, + 0.07554934918880463, + 0.0029033205937594175, + -0.045048732310533524, + 0.004386489745229483, + -0.020021658390760422, + -0.04710131138563156, + 0.04029538854956627, + 0.046525146812200546, + -0.015133276581764221, + 0.00373830646276474, + 0.03348946571350098, + -0.027061646804213524, + -0.009205101057887077, + -0.036136213690042496, + -0.03935912251472473, + -0.018068106845021248, + 0.04097957909107208, + -0.014899211004376411, + 0.01460212655365467, + -0.004982908256351948, + -0.002673755632713437, + -0.013152716681361198, + 0.04576893523335457, + -0.07068797945976257, + -0.029798422008752823, + 0.019769586622714996, + -0.036100201308727264, + -0.026503490284085274, + 0.0064908345229923725, + 0.0007747814524918795, + 0.02110196277499199, + 0.0026647530030459166, + -0.04497671127319336, + -0.00015515321865677834, + 0.021624110639095306, + -0.045228783041238785, + -0.022506359964609146, + -0.007355078589171171, + 0.01951751485466957, + 0.001439281739294529, + 0.02693561278283596, + 0.016051536425948143, + -0.00755763566121459, + 0.0005958558758720756, + -0.01539435051381588, + -0.014016961678862572, + 0.0071795289404690266, + -0.0011236300924792886, + -0.033921584486961365, + -0.0479295440018177, + 0.04422049596905708, + -0.029240263625979424, + 0.02810594253242016, + -0.002423935104161501, + -0.012324483133852482, + -0.03190501779317856, + -0.012972665950655937, + 0.03087872639298439, + 0.021264009177684784, + -0.010460956022143364, + 0.022452345117926598, + -0.008664948865771294, + -0.011820340529084206, + 0.06208154559135437, + -0.011469241231679916, + 0.02879013679921627, + 0.06287376582622528, + -0.02540517970919609, + -0.015736447647213936, + -0.020435774698853493, + -0.013197729364037514, + -0.010424946434795856, + 0.027367733418941498, + 0.026557505130767822, + 0.07130014896392822, + -0.04270806908607483, + -0.05131450295448303, + -0.0513865202665329, + 0.0017543707508593798, + -0.021678125485777855, + 0.0075711398385465145, + -0.024775002151727676, + 0.02337060496211052, + -0.0013076195027679205, + 0.018383195623755455, + 0.01087507326155901, + -0.0360281802713871, + 0.0015135527355596423, + 0.11393620073795319, + -0.03008650243282318, + -0.021858178079128265, + 0.013845913112163544, + -0.005320503376424313, + 0.03143688291311264, + -0.025657251477241516, + -0.058264464139938354, + 0.03557805344462395, + -0.011271185241639614, + 0.013314763084053993, + 0.03917907178401947, + 0.048613738268613815, + 0.02596333809196949, + 0.012090416625142097, + 0.04205988720059395, + 0.00570311164483428, + 0.0018702785018831491, + 0.0034794833045452833, + -0.02057981677353382, + 0.011271185241639614, + -0.04234796762466431, + -0.0122884726151824, + -0.012972665950655937, + 0.021714136004447937, + -0.04897383973002434, + 0.08023067563772202, + -0.02554921992123127, + -0.026701545342803, + 0.022290298715233803, + -0.03138286992907524, + 0.0051719616167247295, + 0.011991389095783234, + -0.02749376930296421, + -0.05873259902000427, + 0.03691042959690094, + -0.006990475580096245, + -0.0053069996647536755, + 0.04335625097155571, + -0.009776762686669827, + -0.06128932163119316, + -0.0665828138589859, + -0.03784669563174248, + -0.022884467616677284, + -0.022596385329961777, + -0.007728684227913618, + -0.03532598167657852, + 0.04141170158982277, + 0.0007258301484398544, + -0.012252463027834892, + -0.006090220995247364, + 0.04922591149806976, + 0.04566090553998947, + -0.04191584512591362, + -0.04011533781886101, + -0.015151281841099262, + 0.008070780895650387, + 0.041519735008478165, + -0.0040736510418355465, + 0.0022348815109580755, + -0.01043394859880209, + 0.0030856220982968807, + 0.017744014039635658, + 0.0223443154245615, + 0.00725605059415102, + 0.009209603071212769, + 0.0043122186325490475, + -0.06179346144199371, + -0.0403313972055912, + 0.011442233808338642, + -0.04544484242796898, + 0.040223367512226105, + 0.02484702132642269, + -0.057292189449071884, + -0.03228312358260155, + -0.02920425310730934, + 0.047641463577747345, + 0.029420314356684685, + 0.06499836593866348, + -0.008502903394401073, + 0.05210672691464424, + -0.026791570708155632, + 0.03381355479359627, + 0.021804161369800568, + 0.054879508912563324, + 0.015061256475746632, + 0.019121402874588966, + 0.017888056114315987, + 0.0026760061737149954, + 0.041375692933797836, + -0.016033530235290527, + -0.004672320559620857, + -0.0001488233101554215, + -0.08728867024183273, + -0.027763845399022102, + 0.0039633698761463165, + 0.026485484093427658, + -0.0035515036433935165, + 0.0031373866368085146, + -0.003375953994691372, + -0.00015599721518810838, + -0.0030518623534590006, + -0.022974492982029915, + 0.004323471803218126, + -0.02248835563659668, + 0.01993163302540779, + -0.029708394780755043, + 0.008322851732373238, + -0.02286646142601967, + 0.0719483345746994, + -0.009866788052022457, + -0.03606419265270233, + 0.008444386534392834, + -0.01733889989554882, + 0.06420614570379257, + -0.01892334781587124, + -0.03687442094087601, + -0.011433230713009834, + -0.03487585484981537, + 0.0035672581288963556, + -0.024378890171647072, + 0.06193750351667404, + -0.04112362116575241, + -0.037162501364946365, + -0.017816035076975822, + 0.0068149259313941, + -0.022614391520619392, + -0.032895296812057495, + 0.009254615753889084, + -0.007202035281807184, + 0.006499836686998606, + -0.020021658390760422, + 0.008718963712453842, + -0.01353982649743557, + -0.01924743875861168, + -0.007449605502188206, + 0.04936995357275009, + -0.018059102818369865, + -0.037450581789016724, + -0.06575458496809006, + 0.004280709661543369, + -0.02439689449965954, + -0.02745775878429413, + -0.01532233040779829, + 0.02560323476791382, + -0.020921912044286728, + 0.01426003035157919, + -0.026773566380143166, + -0.0459129735827446, + 0.0251351036131382, + 0.004946898203343153, + -0.006481831893324852, + -0.03393959254026413, + 0.03566807880997658, + 0.031220823526382446, + -0.043140191584825516, + 0.002495955443009734, + -0.031076781451702118, + -0.02749376930296421, + 0.01751895062625408, + -0.01836518943309784, + 0.051350511610507965, + 0.03723452240228653, + 0.0098037701100111, + -0.034569770097732544, + -0.009218605235219002, + 3.472661092018825e-06, + -0.03777467459440231, + -0.03570409119129181, + 0.015133276581764221, + 0.060857199132442474, + -0.024594951421022415, + 0.00907906610518694, + -0.006315284874290228, + -0.01520529668778181, + -0.008849500678479671, + -0.0007905358797870576, + 0.07922238856554031, + -0.032247114926576614, + 0.03138286992907524, + 0.0010414818534627557, + -0.01532233040779829, + -0.022920478135347366, + 0.0025679757818579674, + -0.009974818676710129, + 0.008511905558407307, + 0.02897018752992153, + -0.012477526441216469, + -0.054087284952402115, + -0.02920425310730934, + -0.003832833142951131, + 0.02722369320690632, + 0.005451040342450142, + -0.0075486330315470695, + 0.01024489477276802, + -0.02095792256295681, + -0.001009410247206688, + 0.006346793845295906, + -0.007409093901515007, + -0.002752527827396989, + -0.02628742903470993, + 0.033129364252090454, + 0.007206536363810301, + 0.018905343487858772, + -0.050882380455732346, + -0.020345749333500862, + -0.01924743875861168, + -0.008705460466444492, + 0.000816980900708586, + -0.03320138156414032, + 0.005878661293536425, + -0.012396503239870071, + -0.0015900743892416358, + 0.00946167390793562, + 0.01980559714138508, + -0.04900985211133957, + -0.051170460879802704, + -0.01798708364367485, + 0.0029393306467682123, + 0.05920073017477989, + -0.015448365360498428, + 0.011271185241639614, + 0.012090416625142097, + 0.08239128440618515, + 0.055563703179359436, + 0.00816980842500925, + -0.002534216269850731, + -0.018005087971687317, + 0.03617222234606743, + -0.11638489365577698, + -0.024144822731614113, + -0.0306086502969265, + 0.007967251352965832, + -0.043464284390211105, + 0.00828684214502573, + 0.04494069889187813, + -0.01819414086639881, + 0.012234457768499851, + -0.03046461008489132, + -0.007044490892440081, + -0.0010943717788904905, + 0.02128201350569725, + -0.019967643544077873, + -0.04454458877444267, + 0.01975158229470253, + -0.01530432514846325, + -0.03885497897863388, + -0.003684291150420904, + -0.00131549674551934, + -0.008165307343006134, + -0.032895296812057495, + 0.002437438815832138, + -0.0047668470069766045, + 0.02054380625486374, + -0.039575185626745224, + -0.007436101324856281, + 0.022740427404642105, + -0.0027187683153897524, + 0.046345096081495285, + -0.003918357193470001, + -0.0545194074511528, + 0.034515753388404846, + 0.060389064252376556, + 0.0337955504655838, + -0.012648574076592922, + -0.004341477062553167, + -0.02299249731004238, + 0.05639193579554558, + -0.03293130546808243, + 0.013800900429487228, + -0.007742187939584255, + 0.02337060496211052, + 0.017726009711623192, + -0.010704024694859982, + 0.024504926055669785, + 0.024000782519578934, + 0.0019085393287241459, + -0.0018016340909525752, + 0.022506359964609146, + 0.0316169336438179, + 0.009317632764577866, + -0.05588779225945473, + -0.019067388027906418, + 0.002432937500998378, + -0.019877618178725243, + -0.03566807880997658, + -0.023172548040747643, + -0.013053689152002335, + 0.006099223624914885, + -0.017590971663594246, + 0.0015563147608190775, + 0.020507795736193657, + -0.09175392985343933, + -0.008628938347101212, + 0.0011602028971537948, + 0.0017071074107661843, + -0.01346780639141798, + 0.00629277853295207, + -0.031832996755838394, + 0.00015529389202129096, + 0.014539108611643314, + 0.003612270811572671, + -0.025207122787833214, + 0.031076781451702118, + -0.011271185241639614, + 0.05419531464576721, + 0.01904938369989395, + -0.012486528605222702, + -0.0004653189971577376, + 0.01654667593538761, + 0.013746884651482105, + -0.014764172025024891, + 0.00782771222293377, + 0.015286319889128208, + -0.013989953324198723, + -0.0012254712637513876, + -0.0306086502969265, + -0.05041424557566643, + 0.017852045595645905, + -0.004553036764264107, + -0.03487585484981537, + 0.024955052882432938, + 0.016942787915468216, + -0.014836193062365055, + 0.003916106652468443, + -0.004865875001996756, + -0.0007905358797870576, + 0.020885901525616646, + -0.058264464139938354, + 0.014593124389648438, + -0.036136213690042496, + 0.015349337831139565, + -0.011667297221720219, + 0.00689594866707921, + -0.008151804096996784, + 0.017293887212872505, + 0.00927262008190155, + -0.004368484485894442, + 0.022974492982029915, + -0.02490103617310524, + 0.011190162040293217, + -0.03784669563174248, + -0.041375692933797836, + -0.06831130385398865, + 0.021408049389719963, + 0.030626654624938965, + -0.008349860087037086, + -0.03188700973987579, + -0.02814195305109024, + 0.007881727069616318, + 0.04720934107899666, + -0.06967969238758087, + -0.059092700481414795, + -0.02030973881483078, + 0.0062522669322788715, + 0.03784669563174248, + 0.03397560119628906, + 0.04821762815117836, + 0.034803833812475204, + 0.020723856985569, + -0.005725617986172438, + 0.002256262581795454, + 0.008318350650370121, + 0.03570409119129181, + 0.0018522734753787518, + -0.03458777442574501, + 0.044112466275691986, + -0.048145607113838196, + -0.03440772369503975, + -0.018392197787761688, + 0.03662234917283058, + -0.03885497897863388, + -0.007481114007532597, + 0.0006836307002231479, + -0.008232826367020607, + -0.039755236357450485, + -0.021570095792412758, + 0.015475373715162277, + 0.025927327573299408, + 0.019715571776032448, + -0.04573292285203934, + -0.01149624865502119, + 0.009974818676710129, + -0.017167851328849792, + 0.013431795872747898, + 0.02146206609904766, + -0.005991193000227213, + -0.04339226335287094, + 0.026719551533460617, + 0.030518624931573868, + -0.06492634862661362, + -0.018527235835790634, + 0.03770265355706215, + 0.034839846193790436, + 0.017879052087664604, + -0.013485810719430447, + 0.017816035076975822, + -0.03334542363882065, + 0.02275843173265457, + -0.003587513929232955, + 0.007728684227913618, + -0.01140622328966856, + -0.0029595864471048117, + 0.023262573406100273, + -0.041843824088573456, + -0.019175419583916664, + 0.003531247843056917, + 0.11033517867326736, + 0.013827907852828503, + -0.0037765672896057367, + 0.013251745142042637, + 0.03246317431330681, + 0.012594559229910374, + -0.011586274020373821, + 0.00940765906125307, + 0.02239833027124405, + 0.012540544383227825, + -0.027475764974951744, + -0.010442950762808323, + -0.02142605558037758, + 0.0038710939697921276, + -0.002367669017985463, + 0.004125415813177824, + 0.011307195760309696, + -0.0022742676082998514, + -0.007904233410954475, + 0.023244569078087807, + -0.027295714244246483, + 0.06823928654193878, + -0.02819596789777279, + -0.01919342391192913, + -0.03365150839090347, + -0.015439363196492195, + -0.020273730158805847, + 0.054411377757787704, + 0.0058471523225307465, + 0.023100528866052628, + -0.04872176796197891, + 0.012972665950655937, + -0.0370904803276062, + -0.0016992301680147648, + -0.04382438585162163, + 0.01798708364367485, + 0.04515676200389862, + -0.013800900429487228, + -0.01523230504244566, + 0.04429251700639725, + 0.0013222487177699804, + 0.051530562341213226, + -0.006175745278596878, + 0.03152690827846527, + 0.0031486398074775934, + -0.07482914626598358, + 0.006436819210648537, + 0.006882444955408573, + -0.0018488975474610925, + 0.011397221125662327, + -0.023082522675395012, + -0.013971948064863682, + -0.04241998866200447, + -0.034245677292346954, + 0.018581250682473183, + 0.05606784671545029, + -0.04854171723127365, + -0.032715246081352234, + -0.008705460466444492, + -0.032013047486543655, + 0.04738939180970192, + 0.0020975926890969276, + 0.060245025902986526, + -0.013710875064134598, + -0.036226239055395126, + 0.05768830329179764 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换涡轮增压器轴承组件", + "编号": "MT015", + "内容": "表 4.17 MT015 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT015060103轴承组件更换涡轮增压器轴承组件2A/16000hZJ级
安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。
安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。
序号名称规格/型号数量及单位备注
1涡轮增压器专用拆装台Custom-Turbo-Bench1台带V型支撑
2感应加热器EFD Minac 101台温控±5℃
3动平衡检测仪Schenck BALANCER V1台G2.5级精度
4扭矩扳手10-80 N·m1把用于壳体螺栓
2)备品备件
名称规格/型号消耗数量备注
1径向轴承(主轴)MAN TCA77-BRG-RAD1套铜铅合金
2止推轴承组件MANTCA77-BRG-THRUST1套含瓦片+垫片组
3轴封环Carbon Seal Φ60X32个石墨基
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温润滑脂Kluber Isoflex LDS18 Special A15g仅涂轴承外圈
2清洗剂Brulin 815GD200mL清洁轴承座
3密封胶Loctite 518少量壳体结合面
4)人力人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导装配
2电子专业1中级监测振动传感器
\n\n
(如适用)
修理步骤及工艺
更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换;
拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃;
2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.17 MT015 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT015060103轴承组件更换涡轮增压器轴承组件2A/16000hZJ级
安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。
安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。
序号名称规格/型号数量及单位备注
1涡轮增压器专用拆装台Custom-Turbo-Bench1台带V型支撑
2感应加热器EFD Minac 101台温控±5℃
3动平衡检测仪Schenck BALANCER V1台G2.5级精度
4扭矩扳手10-80 N·m1把用于壳体螺栓
2)备品备件
名称规格/型号消耗数量备注
1径向轴承(主轴)MAN TCA77-BRG-RAD1套铜铅合金
2止推轴承组件MANTCA77-BRG-THRUST1套含瓦片+垫片组
3轴封环Carbon Seal Φ60X32个石墨基
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温润滑脂Kluber Isoflex LDS18 Special A15g仅涂轴承外圈
2清洗剂Brulin 815GD200mL清洁轴承座
3密封胶Loctite 518少量壳体结合面
4)人力人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导装配
2电子专业1中级监测振动传感器
\\n\\n
(如适用)
修理步骤及工艺
更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换;
拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃;
2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_409e2d92-62f0-4056-b862-0aa45116ad9d.pdf#page=45\"}]", + "embedding": [ + -0.03865700215101242, + 0.0110783027485013, + -0.04401354491710663, + 0.006157213822007179, + -0.009402042254805565, + -0.03504227101802826, + 0.011022115126252174, + 0.010020104236900806, + 0.0026361304335296154, + -0.03989312797784805, + 0.043039627373218536, + -0.0011752552818506956, + -0.0015369623433798552, + 0.026557959616184235, + 0.007383974269032478, + -0.04637341946363449, + 0.014693032018840313, + 0.010076291859149933, + -0.0035046953707933426, + -0.02672652155160904, + -0.018663614988327026, + -0.016940532252192497, + -0.0023739219177514315, + 0.005703031551092863, + -0.028412146493792534, + 0.004996005445718765, + -0.016771970316767693, + 0.019234854727983475, + 0.056449711322784424, + -0.01998402178287506, + -0.03828241676092148, + -0.01190238632261753, + -0.030603459104895592, + -0.030715834349393845, + -0.025452937930822372, + -0.05708650127053261, + 0.011143854819238186, + -0.026689063757658005, + -0.05026908591389656, + 0.009565922431647778, + -0.015283000655472279, + -0.0642785057425499, + 0.027400771155953407, + -0.03996804356575012, + 0.0067659118212759495, + -0.010347864590585232, + 0.0007105377735570073, + -0.021875668317079544, + 0.03476133570075035, + -0.022287709638476372, + -0.005239484366029501, + -0.013934500515460968, + 0.03854462504386902, + -0.04015533626079559, + -0.02374858409166336, + 0.03429310396313667, + -0.03300079330801964, + -0.04730987548828125, + -0.05626241862773895, + -0.017043542116880417, + -0.03429310396313667, + 0.034274376928806305, + -0.014655573293566704, + 0.029048938304185867, + 0.06956012547016144, + 0.06794942170381546, + 0.005951193161308765, + -0.0010301042348146439, + -0.024497751146554947, + -0.04438812658190727, + 0.005319083575159311, + -0.0208455640822649, + -0.011537167243659496, + 0.01781143806874752, + -0.04760954529047012, + 0.04030516743659973, + 0.021482355892658234, + -0.026445584371685982, + 0.007913073524832726, + 0.02019004337489605, + 0.01673451066017151, + -0.003694328246638179, + 0.013026135973632336, + 0.026145918294787407, + -0.009889000095427036, + 0.040604833513498306, + -0.00838130246847868, + -0.024834876880049706, + -0.06858620792627335, + 0.015854239463806152, + 0.00331506272777915, + 0.015854239463806152, + 0.00283746886998415, + 0.010731812566518784, + -0.06270525604486465, + 0.0034438257571309805, + -0.03802020847797394, + 0.0020391379948705435, + 0.016153907403349876, + -0.0326823964715004, + 0.02738204225897789, + 0.0518423356115818, + 0.024834876880049706, + -0.05262896046042442, + 0.05150521174073219, + -0.0009194850572384894, + 0.02565895952284336, + 0.03865700215101242, + -0.02889910526573658, + -0.004492659121751785, + -0.017165282741189003, + 0.03582889586687088, + 0.005576609633862972, + 0.002322416752576828, + -0.02916131354868412, + -0.04131654277443886, + -0.03303825110197067, + -0.05364033579826355, + 0.07117083668708801, + -0.01814856380224228, + 0.008259562775492668, + 0.0066629014909267426, + 0.025677688419818878, + -0.020695729181170464, + 0.02770043909549713, + -0.00037604657700285316, + 0.025378022342920303, + 0.022006772458553314, + -0.02758806385099888, + -0.009472276084125042, + -0.008531135506927967, + 0.04716004431247711, + -0.011340511031448841, + 0.0176241472363472, + -0.061469126492738724, + -0.013644198887050152, + 0.006583302281796932, + -0.011846198700368404, + 0.0012127135414630175, + -0.01527363620698452, + -0.018626157194375992, + -0.0005940657574683428, + -0.022774668410420418, + -0.0025939897168427706, + -0.010216760449111462, + -0.014599385671317577, + 0.015460927970707417, + -0.017174646258354187, + 0.025771334767341614, + -0.023505104705691338, + 9.847444744082168e-05, + 0.007796016056090593, + 0.0025050260592252016, + -0.03936871141195297, + 0.025883710011839867, + -0.012127135880291462, + -0.05521358549594879, + 0.022343896329402924, + 9.757823136169463e-06, + 0.027812814339995384, + 0.027138562873005867, + 0.08742775022983551, + -0.027550606057047844, + 0.011237500235438347, + 0.02249372936785221, + -0.018654251471161842, + 0.049857042729854584, + 0.00655052624642849, + 0.0038769375532865524, + -0.035004813224077225, + 0.02751314640045166, + 0.019628167152404785, + -0.004267909098416567, + 0.0081705991178751, + 0.0416911281645298, + 0.015554573386907578, + 0.028974022716283798, + 0.020751917734742165, + 0.0017500065732747316, + -0.0071920002810657024, + -0.005094333551824093, + 0.041466377675533295, + 0.0019080339698120952, + -0.03311316668987274, + -0.015151896513998508, + 0.020808104425668716, + -0.0015334505587816238, + -0.011406063102185726, + 0.011377968825399876, + 0.006489656399935484, + -0.03463023155927658, + 0.009720438160002232, + 0.007360562682151794, + -0.009425453841686249, + 0.04333929345011711, + 0.005216073244810104, + 0.02725093811750412, + 0.005337812937796116, + 0.0341058149933815, + 0.004864901304244995, + 0.0003491233801469207, + -0.006363234482705593, + 0.026932543143630028, + 0.03412454202771187, + -0.03993058577179909, + 0.031315166503190994, + -0.024778688326478004, + -0.03062218800187111, + 0.023205438628792763, + -0.018223479390144348, + 0.008287657052278519, + -0.010806730017066002, + 0.0379265658557415, + -0.01909438706934452, + -0.019871646538376808, + -0.006129120010882616, + -0.006475609727203846, + 0.009739167056977749, + -0.03528575226664543, + -0.03732722997665405, + -0.047534625977277756, + 0.043901167809963226, + -0.0365031473338604, + -0.021351251751184464, + 0.019871646538376808, + -0.012735833413898945, + 0.02685762569308281, + 0.05798550322651863, + -0.026614146307110786, + -0.0017851237207651138, + 0.0010143014369532466, + 0.01810174062848091, + -0.0221566054970026, + -0.005099015776067972, + 0.054464418441057205, + 0.015292365103960037, + -0.016650229692459106, + 0.0340496264398098, + 0.022999417036771774, + -0.0022346237674355507, + -0.0037926563527435064, + 0.027007458731532097, + -0.010469604283571243, + -0.015151896513998508, + -0.029180042445659637, + 0.0031441589817404747, + 0.005506375338882208, + 0.01721210405230522, + -0.0340496264398098, + 0.017324479296803474, + -0.020339876413345337, + -0.01959070935845375, + -0.019871646538376808, + 0.008039494976401329, + 0.04955737665295601, + 0.02110777236521244, + 0.01178064662963152, + -0.02605227194726467, + -0.0009739167289808393, + -0.0023247578646987677, + -0.011996031738817692, + 0.13200317323207855, + 0.0221566054970026, + 0.021950583904981613, + -0.01754922978579998, + 0.05045637860894203, + -0.03257002308964729, + 0.048059042543172836, + -0.016828157007694244, + 0.025640230625867844, + -0.031839583069086075, + 0.018953917548060417, + -0.00810972973704338, + 0.010909739881753922, + 0.028618168085813522, + 0.05727379396557808, + 0.016200730577111244, + 0.005122427362948656, + 0.09034950286149979, + 0.017895719036459923, + 0.03438675031065941, + 0.04435066878795624, + 0.04255266860127449, + -0.02552785538136959, + 0.02032114751636982, + -0.012164594605565071, + -0.09739167243242264, + -0.013353896327316761, + -0.017268292605876923, + -0.04974466934800148, + -0.017193375155329704, + -0.041728585958480835, + 0.0831575021147728, + -0.007365244906395674, + -0.005763901397585869, + 0.007383974269032478, + -0.0056749377399683, + -0.15372900664806366, + 0.01418734434992075, + -0.04835870862007141, + 0.02050843834877014, + -0.0020789375994354486, + -0.002692317822948098, + -0.029404792934656143, + -0.012351886369287968, + 0.0045980107970535755, + -0.027026189491152763, + -0.012389344163239002, + -0.08802708983421326, + 0.005801359657198191, + -0.016013437882065773, + -0.024441564455628395, + -0.021388709545135498, + -0.036053646355867386, + 0.014908417128026485, + 0.009804719127714634, + -0.03075329214334488, + -0.05982096120715141, + -0.027063647285103798, + 0.05154266953468323, + -0.01673451066017151, + -0.02539675123989582, + -0.011827468872070312, + 0.02824358455836773, + -0.02856197953224182, + -0.020751917734742165, + 0.016575314104557037, + -0.01336326077580452, + -0.0009475788101553917, + -0.0033782736863940954, + 0.029835563153028488, + 0.009238162077963352, + -0.00894317775964737, + -0.014103063382208347, + -0.01673451066017151, + -0.01658467762172222, + 0.026220833882689476, + 0.02665160596370697, + 0.03049108386039734, + 0.028674354776740074, + 0.014664937742054462, + -0.005080286879092455, + -0.08016083389520645, + -0.026876354590058327, + -0.01336326077580452, + 0.004708044696599245, + -0.028880376368761063, + -0.0018459935672581196, + -0.00999201089143753, + 0.007810062728822231, + -0.03191450238227844, + -0.02981683425605297, + 0.014674303121864796, + -0.021163959056138992, + 0.04914533719420433, + -0.0052582137286663055, + 0.010544521734118462, + -0.002173753920942545, + 0.0016247553285211325, + 0.007065578363835812, + -0.026820167899131775, + -0.036578062921762466, + 0.009523781947791576, + -0.009294349700212479, + -0.07229458540678024, + 0.031371355056762695, + 0.003663893323391676, + 0.00432175537571311, + 0.040604833513498306, + 0.03386233374476433, + -0.05180487781763077, + -0.05667446181178093, + 0.02191312611103058, + -0.021201416850090027, + -0.029648272320628166, + -0.029404792934656143, + -0.12151484191417694, + 0.0353606678545475, + 0.042927250266075134, + -0.01025421917438507, + -0.034461669623851776, + -0.025246918201446533, + 0.0034883073531091213, + 0.0245539378374815, + 0.006887651514261961, + 0.024385375902056694, + 0.23089317977428436, + 0.021819479763507843, + -0.00493045337498188, + -0.01524554193019867, + 0.03376868739724159, + -0.04513729363679886, + -0.02176329307258129, + -0.051168084144592285, + 0.035135917365550995, + -0.019946563988924026, + -0.04832125082612038, + -0.008961906656622887, + 0.01841077208518982, + -0.010226125828921795, + 0.01217395905405283, + -0.02698872983455658, + -0.021856937557458878, + 0.034798793494701385, + 0.1173195019364357, + -0.00580604188144207, + 0.006129120010882616, + 0.026689063757658005, + -0.052216917276382446, + 0.0050240992568433285, + -0.06435342133045197, + -0.026838896796107292, + -0.02889910526573658, + 0.017933178693056107, + -0.012913760729134083, + 0.017717791721224785, + -0.006573937833309174, + 0.02758806385099888, + 0.02217533439397812, + 0.008517089299857616, + -0.03607237711548805, + 0.02343018911778927, + 0.009617427363991737, + 0.004530117381364107, + 0.03682154417037964, + 0.03219543769955635, + -0.005150521174073219, + -0.03854462504386902, + 0.017661605030298233, + 0.00294282054528594, + 0.011967938393354416, + -0.050568751990795135, + -0.005108380224555731, + -0.020620813593268394, + 0.01603216677904129, + 0.034218188375234604, + -0.0007316081319004297, + -0.018298396840691566, + -0.022681022062897682, + -0.011790011078119278, + 0.02283085510134697, + -0.007781968917697668, + -0.005895005539059639, + -0.013054229319095612, + 0.009261573664844036, + -0.0030926538165658712, + 0.0038745964411646128, + -0.025172000750899315, + -0.0402677096426487, + 0.0353606678545475, + 0.016809428110718727, + -0.06514004617929459, + -0.007360562682151794, + 0.04052991792559624, + -0.009542510844767094, + -0.0055157397873699665, + 0.00899468269199133, + 0.007903709076344967, + 0.0033080391585826874, + 0.0049210889264941216, + 0.01985291764140129, + 0.003607705933973193, + -0.007351198233664036, + 0.07495412975549698, + 0.00559065630659461, + -0.00018129248928744346, + -0.04835870862007141, + -0.02341146022081375, + -0.02170710451900959, + -0.01256727147847414, + 0.02691381424665451, + -0.05667446181178093, + -0.002286128932610154, + -0.006695677526295185, + -0.027794083580374718, + 0.0033548620995134115, + -0.02730712667107582, + -0.0009417259716428816, + 0.026108458638191223, + 0.049182794988155365, + -0.015329823829233646, + -0.0026361304335296154, + 0.02474123053252697, + -0.034143272787332535, + -0.007917755283415318, + 0.02599608525633812, + 0.008966589346528053, + -0.031034231185913086, + -0.0033384740818291903, + -0.048920586705207825, + 0.033487752079963684, + 0.02005893923342228, + 0.014543198980391026, + -0.0023891394957900047, + -0.008872942999005318, + 0.014646208845078945, + 0.017249563708901405, + 0.053940001875162125, + 0.004089981783181429, + -0.016256917268037796, + -0.01843886449933052, + 0.01379403192549944, + 0.02704491838812828, + 0.050905875861644745, + -0.023336542770266533, + 0.036784086376428604, + -0.019159939140081406, + 0.013737844303250313, + -0.008189328014850616, + 0.013016771525144577, + -0.006592666730284691, + 0.013559916988015175, + -0.04307708516716957, + -0.008245515637099743, + -0.05577545985579491, + 0.0658142939209938, + -0.027812814339995384, + 0.01256727147847414, + 0.01553584448993206, + 0.012248875573277473, + 0.05708650127053261, + -0.021538542583584785, + -0.022287709638476372, + 0.024891063570976257, + 0.04401354491710663, + -0.022999417036771774, + -0.022737208753824234, + -0.030903127044439316, + 0.010319771245121956, + -0.03389979153871536, + -0.004686973989009857, + -0.05034400150179863, + -0.008596687577664852, + -0.02249372936785221, + -0.03270112723112106, + 0.05244166776537895, + -0.027812814339995384, + 0.05232929438352585, + -0.0009785989532247186, + -0.046748001128435135, + -0.032101791352033615, + 0.018036188557744026, + 0.014599385671317577, + 0.014262260869145393, + -0.011630812659859657, + -0.04187841713428497, + -0.013428812846541405, + 0.010095021687448025, + 0.04124162718653679, + 0.013719115406274796, + 0.07394275069236755, + 0.06337950378656387, + 0.023523833602666855, + 0.06630125641822815, + 0.07124575227499008, + -0.04191587492823601, + 0.04378879442811012, + 0.01444955263286829, + -0.043638959527015686, + 0.03217671066522598, + 0.05247912555932999, + 0.04052991792559624, + -0.01592915691435337, + 0.012511083856225014, + -0.005384635645896196, + 0.0831575021147728, + 0.02771916799247265, + 0.0467105433344841, + -0.008947859518229961, + -0.0403800867497921, + -0.005511057563126087, + 0.00017690284585114568, + -0.026689063757658005, + -0.0011091178748756647, + 0.012857573106884956, + 0.03663425147533417, + -0.038956668227910995, + 0.0881769210100174, + -0.036053646355867386, + -0.005127109587192535, + 0.023973334580659866, + 0.02850579284131527, + 0.08135950565338135, + -0.014889688231050968, + -0.004375601653009653, + -0.04835870862007141, + -0.02500343881547451, + 0.012988677248358727, + -0.02131379209458828, + -0.0078990263864398, + -0.01121877133846283, + -0.04697275161743164, + -0.011546531692147255, + -0.009804719127714634, + -0.001011960324831307, + -0.05528850108385086, + 0.004410719033330679, + -0.03736468777060509, + 0.02178202196955681, + 0.011518438346683979, + -0.00689233373850584, + -0.007589994929730892, + 0.06090725213289261, + 0.03966837748885155, + -0.04019279405474663, + -0.0035632241051644087, + 0.006035474129021168, + -0.008526453748345375, + 0.011368604376912117, + -0.015292365103960037, + -0.015620125457644463, + -0.0035351302940398455, + -0.0025354609824717045, + -0.025059625506401062, + 0.04558679461479187, + -0.0020976667292416096, + 0.007917755283415318, + 0.04468779265880585, + -0.05094333365559578, + -0.012117771431803703, + 0.018719803541898727, + 0.016462938860058784, + 0.0053471773862838745, + 0.03985567018389702, + 0.0069438386708498, + -0.0074120680801570415, + 0.003387638134881854, + 0.003017737064510584, + 0.023917146027088165, + 0.030584730207920074, + -0.006175943184643984, + 0.03925633430480957, + -0.05521358549594879, + -0.012099042534828186, + -0.011396698653697968, + 0.04760954529047012, + -0.045024920254945755, + 0.03732722997665405, + 0.005379953421652317, + 0.011593354865908623, + -0.07615279406309128, + -0.03324427083134651, + -0.03723358362913132, + 0.017661605030298233, + -0.054651711136102676, + 0.0101231150329113, + -0.015151896513998508, + 0.031127875670790672, + -0.002633789088577032, + -0.0339934378862381, + 0.022662293165922165, + 0.002232282655313611, + 0.045287128537893295, + -0.026145918294787407, + -0.017951907590031624, + -0.02961081452667713, + -0.02785027213394642, + -0.009214750491082668, + -0.04626104235649109, + -0.0518423356115818, + 0.005164567846804857, + -0.015517115592956543, + 0.01684688590466976, + -0.015357917174696922, + 0.015751229599118233, + 0.015095708891749382, + -0.03873191773891449, + -0.0467105433344841, + 0.010619438253343105, + -0.02136998064815998, + -0.0012138842139393091, + -0.011921115219593048, + 0.053340669721364975, + -0.007458890788257122, + 0.0027742579113692045, + -0.010881646536290646, + -0.005431458353996277, + -0.01401878148317337, + -0.054539334028959274, + 0.05247912555932999, + -0.016565948724746704, + 0.010600708425045013, + 0.007201364729553461, + 0.017689699307084084, + -0.01178064662963152, + 0.030715834349393845, + 0.0010675624944269657, + 0.011602719314396381, + -0.024329189211130142, + -0.02631448023021221, + -0.04202825203537941, + -0.013297708705067635, + 0.0025846250355243683, + 0.008896354585886002, + 0.09259700030088425, + -0.009327125735580921, + 0.006405375432223082, + -0.05540087819099426, + -0.017717791721224785, + 0.003010713728144765, + 0.015086344443261623, + 0.01652849093079567, + 0.007655547000467777, + -0.0189351886510849, + -0.00793648511171341, + 0.05734870955348015, + -0.0366155207157135, + -0.041990794241428375, + -0.031764667481184006, + -0.010900375433266163, + -0.052029628306627274, + 0.008765250444412231, + 0.009776625782251358, + 0.05285371094942093, + -0.044238291680812836, + -0.03807639703154564, + 0.017670970410108566, + 0.007149859797209501, + 0.002542484551668167, + -0.021613460034132004, + 0.03511719033122063, + -0.012033490464091301, + 0.011555896140635014, + -0.014093698933720589, + -0.007693005725741386, + 0.04783429205417633, + 0.008620099164545536, + -0.01804555207490921, + -0.004162557423114777, + -0.03191450238227844, + 0.014037511311471462, + -0.01972181349992752, + -0.003268239786848426, + -0.01660340651869774, + 0.02421681396663189, + 0.03708375245332718, + -0.018972646445035934, + -0.014899052679538727, + 0.004633127711713314, + -0.047534625977277756, + -0.012239511124789715, + -0.04161620885133743, + -0.035660333931446075, + 0.005080286879092455, + 0.011967938393354416, + -0.007561901584267616, + -0.025490397587418556, + -0.03253256529569626, + -0.017802074551582336, + 0.02341146022081375, + 0.004171921871602535, + 0.013297708705067635, + 0.005136474035680294, + 0.018944552168250084, + -0.012052219361066818, + -0.015170625410974026, + -0.020770646631717682, + 0.026707792654633522, + 0.01919739693403244, + 0.04165366664528847, + -0.023205438628792763, + 0.026351938024163246, + -0.02341146022081375, + 0.011658906936645508, + -0.004907041788101196, + 0.004497341345995665, + -0.005909052211791277, + -0.0415787510573864, + -0.024591397494077682, + -0.053078461438417435, + 0.008507723920047283, + 0.00405954709276557, + -0.009486323222517967, + 0.004691656678915024, + 0.045024920254945755, + 0.0440884605050087, + -0.03127770870923996, + -0.020152583718299866, + 0.007121765986084938, + 0.00882611982524395, + -0.15155641734600067, + 0.012932490557432175, + -0.03515464812517166, + -0.021295063197612762, + -0.0339934378862381, + -0.03350647911429405, + -0.0005993333761580288, + -0.01721210405230522, + 0.014693032018840313, + -0.025246918201446533, + -0.00014698006270918995, + -0.03423691913485527, + 0.04566171020269394, + 0.02019004337489605, + 0.013297708705067635, + 0.026707792654633522, + -0.019609438255429268, + -0.013016771525144577, + 0.041279084980487823, + 0.016781333833932877, + -0.003034125082194805, + -0.019909104332327843, + 0.02764425054192543, + -0.015357917174696922, + 0.058097876608371735, + -0.001586126396432519, + 0.024647584185004234, + 0.0029755965806543827, + -0.005440823268145323, + -0.020564625039696693, + -0.004087640903890133, + 0.004682291764765978, + 0.04798412695527077, + 0.03807639703154564, + 0.014561927877366543, + -0.04131654277443886, + 0.006400693207979202, + -0.005454869940876961, + 0.01501142792403698, + -0.013447542674839497, + -0.0010043516522273421, + 0.011143854819238186, + 0.021276334300637245, + 0.028674354776740074, + 0.03551050275564194, + 0.09282175451517105, + -0.008517089299857616, + -0.010994020849466324, + -0.021463625133037567, + 0.025172000750899315, + 0.0031933230347931385, + -0.033749960362911224, + 0.03515464812517166, + 0.0012770950561389327, + -0.007107718847692013, + -0.008657557889819145, + -0.03305698186159134, + -0.008414078503847122, + -0.01362546905875206, + 0.0833822563290596, + -0.01164017803966999, + -0.010179302655160427, + -0.040941961109638214, + -0.06161896139383316, + -0.04064229503273964, + 0.013906407169997692, + -0.02685762569308281, + -0.008549865335226059, + 0.046410877257585526, + -0.02052716724574566, + -0.012717104516923428, + -0.025172000750899315, + -9.159733599517494e-05, + -0.0015732500469312072, + 0.010535156354308128, + -0.021688375622034073, + 0.02785027213394642, + -0.026632875204086304, + -0.04723495990037918, + -0.015357917174696922, + 0.01177128218114376, + -0.0015533503610640764, + -0.044837627559900284, + 0.018326491117477417, + 0.02045225165784359, + 0.002523755421862006, + -0.03528575226664543, + -0.006990661844611168, + 0.04333929345011711, + 0.004471588879823685, + -0.02058335579931736, + -0.008807390928268433, + 0.04566171020269394, + -0.005239484366029501, + 0.036053646355867386, + 0.030603459104895592, + -0.013372625224292278, + -0.06607650220394135, + 0.000981525401584804, + -0.05375270918011665, + -0.05165504291653633, + -0.026426855474710464, + 0.04603629186749458, + 0.011274958960711956, + -0.035585418343544006, + 0.022681022062897682, + 0.022287709638476372, + -0.01296058390289545, + 0.008648193441331387, + -0.035529229789972305, + -0.02382350154221058, + 0.007224776316434145, + 8.340332715306431e-05, + -0.024722501635551453, + -0.004066570661962032, + 0.015985343605279922, + -0.016903074458241463, + -0.04187841713428497, + -0.028149938210844994, + -0.01848568767309189, + 0.015610761009156704, + 0.06300491839647293, + -0.01078800018876791, + -0.03260748088359833, + -0.020695729181170464, + -0.022943230345845222, + 0.042402833700180054, + 0.009720438160002232, + 0.022137876600027084, + 0.05918416753411293, + -0.0005914319772273302, + 0.04326437786221504, + -0.009739167056977749, + 0.01191175077110529, + 0.0025705781299620867, + -0.016491031274199486, + -0.014487011358141899, + 0.06345441937446594, + -0.038432251662015915, + -0.029142584651708603, + 0.01444955263286829, + 0.011190677992999554, + 0.008915083482861519, + -0.042065709829330444, + -0.0016493373550474644, + 0.0018694050377234817, + -0.019815459847450256, + -0.012520448304712772, + -0.003752856981009245, + 0.013241521082818508, + -0.016444208100438118, + 0.0030036901589483023, + 0.01286693848669529, + 0.04064229503273964, + -0.025452937930822372, + 0.015357917174696922, + 0.03418073058128357, + -0.03356266766786575, + -0.02936733514070511, + 0.02479741722345352, + 0.019909104332327843, + -0.023711126297712326, + 0.005295671988278627, + -0.04472525045275688, + 0.045886460691690445, + 0.007678958587348461, + 0.0051786149851977825, + 0.00506623974069953, + -0.029835563153028488, + 0.009486323222517967, + -0.02019004337489605, + 0.015442198142409325, + -0.01835458353161812, + 0.019815459847450256, + 0.015442198142409325, + -0.04963229224085808, + 0.024647584185004234, + -0.027943918481469154, + 0.04435066878795624, + 0.019085021689534187, + 0.01658467762172222, + 0.019684355705976486, + 0.007313739974051714, + -0.019759271293878555, + 0.019159939140081406, + 0.03054727241396904, + 0.031558647751808167, + 0.025883710011839867, + -0.01392513606697321, + -0.015966614708304405, + 0.02026495896279812, + 0.004759549628943205, + -0.005688984412699938, + 0.0019314454402774572, + 0.055850379168987274, + -0.014177979901432991, + 0.009748531505465508, + -0.04015533626079559, + -0.017464948818087578, + 0.04521220922470093, + 0.07619025558233261, + 0.010666260495781898, + -0.006086979527026415, + 0.0354168564081192, + -0.020545896142721176, + -0.01708099991083145, + -0.019740542396903038, + 0.021744564175605774, + -0.025452937930822372, + 0.033150628209114075, + -0.012080312706530094, + -0.009785990230739117, + -0.03802020847797394, + 0.02361747995018959, + 0.04131654277443886, + 0.012258240021765232, + 0.004633127711713314, + 0.003989312797784805, + -0.04446304216980934, + 0.013868948444724083, + -0.006658218801021576, + 0.009041505865752697, + -0.028711814433336258, + 0.008208057843148708, + 0.0645032525062561, + -0.030116502195596695, + -0.03318808600306511, + -0.025509126484394073, + -0.01391577161848545, + -0.03989312797784805, + -0.02288704179227352, + -0.04082958400249481, + -0.004331119824200869, + 0.03933124989271164, + 0.008058223873376846, + -0.027869001030921936, + 0.0011746699456125498, + 0.0023610456846654415, + -0.013166604563593864, + 0.005309719126671553, + 0.06641362607479095, + 0.034349292516708374, + -0.022418813779950142, + 0.05124300345778465 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "轴承组件", + "组成编码": "060103", + "维修项目名称": "更换涡轮增压器轴承组件", + "维修项目编号": "MT015", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.17 MT015 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT015060103轴承组件更换涡轮增压器轴承组件2A/16000hZJ级
安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。
安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。
序号名称规格/型号数量及单位备注
1涡轮增压器专用拆装台Custom-Turbo-Bench1台带V型支撑
2感应加热器EFD Minac 101台温控±5℃
3动平衡检测仪Schenck BALANCER V1台G2.5级精度
4扭矩扳手10-80 N·m1把用于壳体螺栓
2)备品备件
名称规格/型号消耗数量备注
1径向轴承(主轴)MAN TCA77-BRG-RAD1套铜铅合金
2止推轴承组件MANTCA77-BRG-THRUST1套含瓦片+垫片组
3轴封环Carbon Seal Φ60X32个石墨基
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温润滑脂Kluber Isoflex LDS18 Special A15g仅涂轴承外圈
2清洗剂Brulin 815GD200mL清洁轴承座
3密封胶Loctite 518少量壳体结合面
4)人力人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导装配
2电子专业1中级监测振动传感器
\\n\\n
(如适用)
修理步骤及工艺
更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换;
拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃;
2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_409e2d92-62f0-4056-b862-0aa45116ad9d.pdf#page=45\"}]", + "embedding": [ + -0.02383488044142723, + 0.020644813776016235, + -0.028873737901449203, + 0.035797636955976486, + 0.0003214423777535558, + 0.011174299754202366, + 0.028801236301660538, + 0.015941275283694267, + -0.024215513840317726, + -0.032136306166648865, + 0.017681313678622246, + 0.004066883120685816, + 0.005532773677259684, + 0.014590934850275517, + 0.0007657975074835122, + -0.04179713875055313, + -0.002727870363742113, + -0.027224328368902206, + 0.02097107097506523, + -0.03007001429796219, + -0.018560394644737244, + -0.021532956510782242, + -0.013666540384292603, + 0.01796225644648075, + -0.025864923372864723, + -0.003387181321159005, + -0.017237240448594093, + 0.007952512241899967, + -0.0001818202727008611, + 0.02658993937075138, + -0.01944853737950325, + -0.01745474524796009, + 0.034021347761154175, + -0.0362507700920105, + -0.05212860554456711, + -0.058109983801841736, + 0.03568888455629349, + -0.026807444170117378, + -0.07590911537408829, + 0.017799127846956253, + -0.05705871060490608, + -0.021605458110570908, + 0.018560394644737244, + -0.053614888340234756, + -0.00290232733823359, + -0.030033763498067856, + -0.039585839956998825, + -0.020300431177020073, + 0.017028799280524254, + -0.017590686678886414, + 0.023599250242114067, + -0.023798629641532898, + 0.05216485634446144, + -0.051693595945835114, + -0.05017106607556343, + 0.014391555450856686, + -0.07924418151378632, + -0.057203713804483414, + -0.08620432764291763, + 0.0022736028768122196, + 0.0007091556908562779, + 0.07007274031639099, + -0.010485535487532616, + 0.007009992841631174, + 0.07380656898021698, + 0.04049210995435715, + -0.031465668231248856, + -0.016303783282637596, + -0.025393664836883545, + -0.04614723101258278, + 0.029054991900920868, + -0.02388925664126873, + -0.024614272639155388, + 0.02046355977654457, + -0.03940458595752716, + 0.05089608207345009, + -0.007703288458287716, + 0.00276185548864305, + -0.01179056242108345, + 0.003140222979709506, + -0.017391307279467583, + -0.019919797778129578, + 0.009234883822500706, + -0.000342683051712811, + -0.015850648283958435, + 0.04803226888179779, + -0.004103133920580149, + -0.037338294088840485, + -0.08156423270702362, + -0.01628565788269043, + -0.027496209368109703, + -0.032843198627233505, + 0.061988815665245056, + -0.007422345224767923, + -0.045349713414907455, + 0.010766478255391121, + -0.05916125699877739, + 0.03161067143082619, + 0.047452256083488464, + -0.0018102728063240647, + 0.010802729055285454, + 0.04589347541332245, + 0.007653443608433008, + -0.031520042568445206, + 0.08975690603256226, + -0.012334324419498444, + 0.03200943022966385, + 0.000909667753148824, + -0.01337653398513794, + 0.008151891641318798, + -0.007694225758314133, + 0.03278882056474686, + 0.014962505549192429, + 0.009461451321840286, + -0.006719986442476511, + -0.03235381096601486, + -0.026009926572442055, + -0.014899066649377346, + 0.030795028433203697, + -0.017935069277882576, + 0.03144754096865654, + -0.011228675954043865, + 0.02240297570824623, + -0.03521762415766716, + 0.0499173104763031, + -0.0003293722402304411, + 0.013666540384292603, + 0.0009498834260739386, + -0.02332737110555172, + 0.010231779888272285, + -0.006257789209485054, + 0.03414822369813919, + -0.009379887022078037, + 0.012343387119472027, + -0.051947351545095444, + -0.025393664836883545, + 0.01750912144780159, + -0.01166368555277586, + 0.016974423080682755, + -0.0153159499168396, + -0.018959153443574905, + -0.02265673130750656, + -0.04516845941543579, + -0.008423772640526295, + 0.007499378174543381, + -0.008197205141186714, + -0.004658224061131477, + -0.007109682075679302, + -0.031882550567388535, + -0.03550763055682182, + 0.020898569375276566, + -0.009842083789408207, + 0.047452256083488464, + -0.02403425984084606, + 0.008283301256597042, + -0.008953940123319626, + -0.05328863114118576, + 0.062242571264505386, + 0.00821986235678196, + 0.031773798167705536, + 0.03730204328894615, + 0.05339738354086876, + -0.0026032584719359875, + -0.014699687249958515, + 0.01714661344885826, + -0.017880693078041077, + 0.03980334475636482, + 0.011219613254070282, + -0.015687521547079086, + -0.04215964674949646, + -0.014146862551569939, + 0.006062941160053015, + 0.0028615451883524656, + -0.004916510544717312, + 0.07489409297704697, + -0.009370824322104454, + 0.028656233102083206, + 0.013304032385349274, + 0.01212588232010603, + -0.03210005536675453, + 0.011944628320634365, + 0.030613774433732033, + 0.005682308226823807, + 0.0010569364530965686, + 0.002077622339129448, + 0.029326872900128365, + 0.008179079741239548, + 0.004680880811065435, + 0.022747358307242393, + 0.014019985683262348, + -0.030958157032728195, + -0.024414893239736557, + 0.014536558650434017, + -0.0998346209526062, + 0.013131841085851192, + 0.026825569570064545, + 0.012823710218071938, + 0.017935069277882576, + 0.03297007456421852, + 0.0050026061944663525, + -0.03307882696390152, + -0.03251694142818451, + -0.008849719539284706, + -0.007295467425137758, + -0.0417608879506588, + 0.02240297570824623, + -0.027931218966841698, + -0.019067905843257904, + 0.00938894972205162, + 0.007494846824556589, + 0.017572561278939247, + -0.0004364252963569015, + 0.015025944449007511, + -0.06046628579497337, + -0.019122280180454254, + 0.002335909055545926, + -0.018052883446216583, + 0.007970637641847134, + -0.0019530102144926786, + -0.042848408222198486, + -0.03523574769496918, + 0.049953561276197433, + -0.01868727244436741, + 0.05611618980765343, + 0.029326872900128365, + -0.029218120500445366, + 0.0236355010420084, + 0.004139384720474482, + -0.025357414036989212, + 0.00020362736540846527, + 0.014473119750618935, + 0.02874686010181904, + 0.003960396628826857, + -0.031157536432147026, + 0.049591053277254105, + 0.0003438158892095089, + 0.0003633573360275477, + 0.03802705928683281, + 0.049736056476831436, + -0.023925507441163063, + -0.018342889845371246, + 0.04650973901152611, + 0.028166847303509712, + -0.03389446809887886, + -0.011971816420555115, + 0.015642207115888596, + 0.0160319022834301, + -0.006869520992040634, + -0.053832393139600754, + -0.002326846355572343, + -0.024777401238679886, + 0.005496522877365351, + -0.01562408171594143, + -0.004907447844743729, + 0.0499173104763031, + 0.025339288637042046, + 0.030196892097592354, + -0.024052385240793228, + 0.019267283380031586, + 0.014708749949932098, + -0.009742394089698792, + 0.09976211935281754, + 0.02180483750998974, + 0.029109368100762367, + 0.022837985306978226, + 0.029780007898807526, + -0.014101549051702023, + 0.04215964674949646, + -0.026662440970540047, + 0.017599748447537422, + -0.01577814668416977, + -0.010585225187242031, + 0.006425449158996344, + -0.04277590662240982, + 0.00037978345062583685, + 0.0717402771115303, + -0.010947732254862785, + -0.0064934189431369305, + 0.09374449402093887, + 0.01995604857802391, + 0.0496998056769371, + 0.04600222781300545, + 0.03599701449275017, + -0.04081836715340614, + 0.043464671820402145, + 0.0007975169573910534, + -0.1140449196100235, + -0.012560891918838024, + -0.014328116551041603, + -0.018098196014761925, + -0.006479824893176556, + -0.008940346539020538, + 0.0668826699256897, + -0.005877156276255846, + -0.033513836562633514, + 0.036885157227516174, + -0.030795028433203697, + -0.12615267932415009, + 0.005532773677259684, + -0.07627162337303162, + -0.00819267425686121, + -0.006883115042001009, + 0.0008592565427534282, + -0.03166504576802254, + -0.007349843624979258, + 0.005279018543660641, + 0.0077667273581027985, + 0.005056982394307852, + -0.1004871353507042, + -0.0470535010099411, + -0.02571992203593254, + -0.026734942570328712, + -0.020789816975593567, + -0.060611285269260406, + 0.027749964967370033, + 0.005646057426929474, + -0.03485511615872383, + -0.027242453768849373, + -0.031973179429769516, + 0.021007321774959564, + -0.00880440603941679, + 0.002304189605638385, + -0.030450645834207535, + 0.039694592356681824, + 0.0071414015255868435, + -0.015189072117209435, + -0.011745249852538109, + 0.006153568159788847, + 0.024632398039102554, + 0.01266058161854744, + 0.0306862760335207, + -0.0038335188291966915, + -0.01787162944674492, + -0.027369331568479538, + -0.021551081910729408, + 0.010168340988457203, + 0.018460704013705254, + 0.000684799684677273, + 0.005990439560264349, + 0.03828081116080284, + -0.01426467765122652, + -0.019974173977971077, + -0.08359427750110626, + -0.03170129656791687, + 0.0027958406135439873, + -0.012805584818124771, + -0.05191110074520111, + 0.006466230843216181, + -0.02624555677175522, + 0.008029545657336712, + -0.04803226888179779, + -0.04041960835456848, + -0.0034891366958618164, + -0.01329496968537569, + 0.04179713875055313, + 0.04690849781036377, + -0.005346988327801228, + -0.004569862503558397, + -0.045095957815647125, + 0.04437094181776047, + -0.061590056866407394, + -0.006502481643110514, + -0.010693976655602455, + 0.02883748710155487, + -0.06068378686904907, + 0.02807622030377388, + -0.046727243810892105, + 0.018814150243997574, + -0.006932959891855717, + 0.037700802087783813, + -0.06032128259539604, + -0.03650452569127083, + 0.029236245900392532, + -0.009706143289804459, + -0.0059270006604492664, + -0.03347758576273918, + -0.0666651651263237, + 0.0012778396485373378, + 0.028420602902770042, + 0.0056732455268502235, + -0.014808439649641514, + -0.053361132740974426, + 0.01112898625433445, + 0.009434263221919537, + -0.006837801542133093, + -0.011672748252749443, + 0.2079344093799591, + -0.017382243648171425, + -0.003389446996152401, + 0.013131841085851192, + 0.06264133006334305, + -0.04016585275530815, + -0.04005710035562515, + -0.05800123140215874, + 0.0035027307458221912, + -0.02838435210287571, + -0.06728143244981766, + -0.048322275280952454, + 0.04038335755467415, + -0.008052201941609383, + 0.015605956315994263, + 0.012243697419762611, + 0.008029545657336712, + -0.0025466165971010923, + 0.1083173006772995, + 0.01135555375367403, + -0.01669348031282425, + 0.01857852004468441, + -0.03674015402793884, + -0.023454248905181885, + -0.032281309366226196, + -0.03467386215925217, + -0.0014681562315672636, + -0.0139384213835001, + 0.011500556953251362, + 0.013004963286221027, + -0.015071257948875427, + 0.03755579888820648, + 0.007463127374649048, + 0.031520042568445206, + -0.03242631256580353, + -0.0022214925847947598, + 0.007621724158525467, + 0.03744704648852348, + 0.03516324609518051, + 0.045204710215330124, + -0.013258718885481358, + -0.03190067782998085, + -0.01365747768431902, + 0.017373181879520416, + 0.008953940123319626, + -0.06169880926609039, + 0.03751954808831215, + -0.015325012616813183, + 0.0054285526275634766, + 0.023961758241057396, + 0.0015146024525165558, + -0.030341893434524536, + -0.03623264282941818, + -0.0023902850225567818, + -0.006062941160053015, + -0.016983484849333763, + -0.001229127636179328, + -0.03461948409676552, + 0.03094003163278103, + 0.011799625121057034, + 0.017019735649228096, + -0.022185470908880234, + -0.009688017889857292, + 0.00938894972205162, + 0.012343387119472027, + -0.02751433476805687, + -0.011799625121057034, + -0.044225938618183136, + 0.0235811248421669, + 0.023508625105023384, + 0.06764393299818039, + 0.01462718565016985, + -0.016856607049703598, + 0.009307385422289371, + 0.020644813776016235, + 0.01812538504600525, + 0.03442010655999184, + 0.05064232647418976, + -0.012252760119736195, + -0.03322383016347885, + -0.04212339594960213, + -0.05017106607556343, + -0.006398261059075594, + 0.03474636375904083, + 0.024886153638362885, + -0.03164692223072052, + -4.651709969039075e-05, + 0.03762830048799515, + -0.02878311090171337, + 0.0025670076720416546, + -0.014935317449271679, + -0.025538668036460876, + 0.02852935530245304, + -0.008822531439363956, + -0.020300431177020073, + 0.010748352855443954, + 0.030088139697909355, + -0.030740652233362198, + -0.019321659579873085, + 0.020536061376333237, + -0.009678955189883709, + -0.03215443342924118, + -0.014618122950196266, + -0.02959875389933586, + -0.00020419378415681422, + 0.03166504576802254, + 0.027133701369166374, + 0.0005499921389855444, + -0.012805584818124771, + 0.0034642142709344625, + 0.005206516943871975, + 0.05687745660543442, + 0.010539911687374115, + -0.016095342114567757, + 0.0007159527158364654, + 0.007667037658393383, + 0.018551331013441086, + 0.05956001579761505, + 0.008740967139601707, + 0.00505245104432106, + -0.02644493617117405, + 0.00019753837841562927, + 0.0005250697722658515, + 0.006117317359894514, + -0.019774794578552246, + -0.02475927583873272, + -8.899847307475284e-05, + -0.009941773489117622, + -0.031520042568445206, + 0.039477087557315826, + 0.00860049482434988, + -0.04099962115287781, + -0.019575415179133415, + -0.009642704389989376, + 0.03719329088926315, + -0.027623087167739868, + -0.02281985990703106, + 0.03973084315657616, + -0.01266058161854744, + -0.05941501259803772, + -0.029671255499124527, + -0.02807622030377388, + 0.03164692223072052, + -0.00916238222271204, + -0.004293450620025396, + -0.049337297677993774, + 0.004628770053386688, + -0.014201238751411438, + -0.04426218941807747, + 0.029490001499652863, + -0.01791694387793541, + 0.05742121860384941, + 0.027586836367845535, + -0.02990688569843769, + -0.00029963525594212115, + 0.016222219914197922, + 0.0016244875732809305, + 0.03324195742607117, + 0.0036658591125160456, + -0.00941613782197237, + -0.006466230843216181, + 0.0153159499168396, + 0.05462991073727608, + -0.02352675050497055, + 0.043972183018922806, + 0.07612662017345428, + -0.002573804697021842, + 0.05767497420310974, + 0.007639849558472633, + -0.024795526638627052, + 0.01643066108226776, + -0.011183362454175949, + -0.05238236114382744, + 0.049591053277254105, + 0.022783609107136726, + 0.03639577329158783, + -0.013530599884688854, + 0.023037364706397057, + -0.011119923554360867, + 0.0915694460272789, + 0.030414395034313202, + 0.04063711315393448, + 0.011908377520740032, + -0.07358906418085098, + -0.002913655713200569, + -0.0062985713593661785, + -0.023562999442219734, + -0.013983734883368015, + 0.027387456968426704, + 0.03659515082836151, + -0.023109866306185722, + 0.078229159116745, + -0.028511229902505875, + -0.03016064129769802, + 0.023726128041744232, + -0.01765412464737892, + 0.011455243453383446, + -0.04052836075425148, + -0.009194101206958294, + -0.08540681004524231, + -0.015062195248901844, + -0.024777401238679886, + 0.01462718565016985, + -0.006425449158996344, + -0.004123525228351355, + -0.05589868873357773, + -0.02321861870586872, + -0.021206701174378395, + -0.01505313254892826, + -0.011754312552511692, + 0.004202823620289564, + -0.025864923372864723, + 0.020246054977178574, + 0.008981128223240376, + -0.03929583355784416, + 0.008025013841688633, + 0.018243199214339256, + 0.05749372020363808, + -0.059342510998249054, + -0.02481365203857422, + 0.018098196014761925, + -0.006996398791670799, + 0.024976780638098717, + 0.002741464413702488, + 0.0033826499711722136, + -0.013439972884953022, + 0.007340780925005674, + -0.004370483569800854, + 0.05180234834551811, + 0.009805832989513874, + 0.006058409810066223, + -0.003187802154570818, + -0.020028550177812576, + -0.04027460515499115, + 0.009144256822764874, + -0.005777466576546431, + -0.0013197546359151602, + 0.054738663136959076, + -0.055971190333366394, + -0.02403425984084606, + -0.0014942113775759935, + -0.0024152074474841356, + 0.033767592161893845, + 0.013902170583605766, + -0.004585722461342812, + 0.0390058271586895, + -0.04244965314865112, + 0.011428055353462696, + 0.0033962440211325884, + 0.04128962755203247, + 0.010295218788087368, + 0.017418494448065758, + 0.029417499899864197, + -0.006833270192146301, + -0.05593493953347206, + -0.03835331276059151, + -0.03788205608725548, + -0.0034392918460071087, + -0.06017627939581871, + -0.018306639045476913, + -0.014155925251543522, + 0.04850352928042412, + -0.006325759459286928, + -0.004311576019972563, + 0.004150713328272104, + 0.026426810771226883, + 0.04864853248000145, + -0.04531346261501312, + -0.01872352324426174, + -0.014708749949932098, + -0.010748352855443954, + -0.010340532287955284, + -0.007558285724371672, + -0.06470762193202972, + 0.06673766672611237, + -0.006158099509775639, + -0.0237442534416914, + -0.021659834310412407, + 0.0330607034265995, + 0.03181004896759987, + -0.04730725288391113, + -0.04875728487968445, + 0.011854001320898533, + -0.009733331389725208, + 0.01765412464737892, + 0.026118678972125053, + 0.008668465539813042, + -0.0048394775949418545, + 0.002915921388193965, + -0.031048784032464027, + 0.010857105255126953, + -0.00680155074223876, + -0.04364592581987381, + 0.04067336395382881, + -0.002539819572120905, + 0.03148379176855087, + -0.029109368100762367, + 0.01061241328716278, + -0.0277137141674757, + 0.016158780083060265, + -0.007698757108300924, + 0.05125859007239342, + -0.017191927880048752, + -0.022692982107400894, + 0.010721164755523205, + -0.02271110750734806, + -0.004834946244955063, + -0.0016584726981818676, + 0.030704401433467865, + 0.009506764821708202, + 0.019104154780507088, + -0.0207716915756464, + 0.012198383919894695, + -0.009814895689487457, + -0.008990190923213959, + 0.013983734883368015, + -0.007952512241899967, + -0.03344133496284485, + 0.005283549893647432, + 0.04549471661448479, + -0.036722030490636826, + -0.013847794383764267, + -0.024179263040423393, + -0.00016157081699930131, + -0.03235381096601486, + -0.01135555375367403, + 0.025393664836883545, + 0.03364071622490883, + -0.023617375642061234, + -0.016920046880841255, + -0.00458119111135602, + 0.008115640841424465, + -0.01745474524796009, + -0.017264429479837418, + 0.029073117300868034, + 0.04012960195541382, + 0.018868526443839073, + 0.0012438545236364007, + 0.00424813712015748, + 0.06836894899606705, + -0.00990552268922329, + -0.006366541609168053, + 0.04277590662240982, + -0.011092735454440117, + 0.03374946489930153, + -0.02281985990703106, + -0.014228426851332188, + -0.006475293543189764, + 0.02858373150229454, + 0.025085533037781715, + 0.018007569015026093, + -0.02338174730539322, + -0.013340283185243607, + -0.0642363652586937, + -0.010295218788087368, + -0.04023835435509682, + -0.04556721821427345, + -0.009978024289011955, + 0.020590437576174736, + -0.020336681976914406, + -0.007830166257917881, + -0.019684167578816414, + 0.005333394277840853, + 0.03654077649116516, + -0.0074676587246358395, + 0.0013435441069304943, + 0.02399800904095173, + -0.0051929228939116, + -0.0207173153758049, + -0.01160930935293436, + -0.024831777438521385, + 0.006615765392780304, + 0.027079325169324875, + 0.03159254416823387, + -0.035707008093595505, + 0.02608242817223072, + -0.0002044769935309887, + -0.001735505647957325, + 0.0003814827068708837, + 0.022638605907559395, + -0.006448105908930302, + -0.028094345703721046, + -0.04690849781036377, + -0.04951855167746544, + 0.0445159450173378, + -0.007236559875309467, + 0.007508440874516964, + -0.017672250047326088, + 0.02858373150229454, + 0.0752566009759903, + -0.004075945820659399, + 0.008396584540605545, + -0.014445931650698185, + -0.006579514592885971, + -0.12898023426532745, + -0.004474704619497061, + -0.02970750629901886, + -0.01013209018856287, + -0.015442827716469765, + -0.04640098661184311, + 0.03280694782733917, + -0.023961758241057396, + 0.012307136319577694, + -0.014427806250751019, + -0.000466162251541391, + -0.03510887175798416, + 0.057094961404800415, + -0.009769582189619541, + 0.008405647240579128, + 0.02532116323709488, + -0.016457850113511086, + -0.03374946489930153, + 0.004957292694598436, + 0.0138840451836586, + -0.01266058161854744, + -0.006919365841895342, + 0.03271631896495819, + 0.0044973609037697315, + 0.05386864393949509, + 0.029308747500181198, + 0.045349713414907455, + 0.009452388621866703, + -0.012751208618283272, + 0.011763375252485275, + 0.04317466542124748, + -0.030849404633045197, + 0.016258470714092255, + 0.05963251739740372, + 0.011029296554625034, + -0.004363686311990023, + -0.006081066560000181, + -0.03385821729898453, + 0.02205859310925007, + 0.021714210510253906, + 0.04687224701046944, + 0.015642207115888596, + 0.03302445262670517, + 0.006982804741710424, + 0.04904729127883911, + 0.0721752792596817, + 0.003119831904768944, + -0.02378050424158573, + -0.05462991073727608, + 0.03552575409412384, + 0.00530620664358139, + -0.020101051777601242, + 0.05390489473938942, + 0.01827945001423359, + 0.010322406888008118, + -0.033151328563690186, + -0.04230464994907379, + -0.016910983249545097, + -0.02900061570107937, + 0.06840520352125168, + -0.02976188249886036, + 0.03875207155942917, + -0.021532956510782242, + -0.030088139697909355, + -0.021913589909672737, + 0.028166847303509712, + -0.030251268297433853, + -0.019720418378710747, + 0.031520042568445206, + -0.032444439828395844, + -0.0020968804601579905, + 0.017590686678886414, + 0.03010626509785652, + -0.017490996047854424, + 0.015651270747184753, + 0.006806082092225552, + 0.03875207155942917, + -0.0051929228939116, + -0.013258718885481358, + -0.010884293355047703, + 0.005206516943871975, + 0.006230601109564304, + -0.024106761440634727, + 0.042703405022621155, + 0.05104108527302742, + 0.008482679724693298, + -0.026825569570064545, + -0.004386343061923981, + -0.003434760496020317, + -0.02512178383767605, + -0.0023653628304600716, + -0.0391145795583725, + 0.043827179819345474, + -0.022856110706925392, + 0.022076718509197235, + -0.0022475477308034897, + -0.023907382041215897, + -0.06343884766101837, + -0.016965359449386597, + -0.028909988701343536, + -0.027224328368902206, + 0.00010209689207840711, + 0.03032376803457737, + 0.03643202409148216, + -0.04962730407714844, + 0.012008067220449448, + 0.023291120305657387, + 0.01268776971846819, + 0.010811791755259037, + -0.01084804255515337, + 0.0018091399688273668, + 0.03802705928683281, + -0.0017740220064297318, + -0.0012801053235307336, + -0.01596846431493759, + 0.010530848987400532, + 0.013920295983552933, + -0.041325878351926804, + -0.030341893434524536, + -0.001723044435493648, + 0.018460704013705254, + 0.05064232647418976, + -0.01924915798008442, + -0.03527199849486351, + -0.018197886645793915, + -0.0035163245629519224, + 0.009230352006852627, + 0.04194214195013046, + 0.004816820845007896, + 0.04654598981142044, + 0.017953192815184593, + 0.02180483750998974, + -0.018669147044420242, + -0.029997512698173523, + 0.023200493305921555, + -0.008686590939760208, + -0.015732834115624428, + 0.06778893619775772, + -0.05687745660543442, + -0.024723025038838387, + 0.003448354545980692, + 0.02512178383767605, + 0.006149036809802055, + -0.01523438561707735, + -0.011754312552511692, + 0.030124390497803688, + -0.0076851630583405495, + -0.022692982107400894, + -0.01160930935293436, + 0.019267283380031586, + 0.006529669743031263, + -0.02459614723920822, + -0.01602284051477909, + 0.023762378841638565, + -0.026771193370223045, + -0.01434624195098877, + 0.0011838142527267337, + -0.022421101108193398, + -0.042340900748968124, + 0.005224642343819141, + 0.0235811248421669, + -0.04099962115287781, + 0.0001441534550394863, + -0.02122482657432556, + 0.026789318770170212, + 0.01082085445523262, + -0.0010461745550855994, + 0.028964364901185036, + -0.020481685176491737, + 0.01894102804362774, + 0.02495865523815155, + 0.020916694775223732, + -0.009452388621866703, + 0.04049210995435715, + 0.01627659611403942, + -0.023853005841374397, + 0.00785735435783863, + -0.023236744105815887, + 0.04016585275530815, + 0.015451890416443348, + 0.036631401628255844, + 0.03710266202688217, + 0.037592049688100815, + -0.010141152888536453, + 0.020481685176491737, + 0.059233758598566055, + 0.05825498700141907, + 0.008564244024455547, + -0.03456510975956917, + -0.026662440970540047, + -0.004418062511831522, + 0.015397514216601849, + 0.0015406577149406075, + -0.013394659385085106, + 0.036214519292116165, + 0.0016256204107776284, + -0.00860049482434988, + -0.009003784507513046, + -0.016403473913669586, + 0.05832748860120773, + -4.177334631094709e-05, + 0.011518682353198528, + -0.022584229707717896, + 0.011428055353462696, + -0.016756918281316757, + 0.04393593221902847, + -0.015950338914990425, + 0.003792736679315567, + -0.013113715685904026, + 0.020554186776280403, + 0.005337925627827644, + 0.020282305777072906, + -0.008514399640262127, + 0.051947351545095444, + 0.029689380899071693, + 0.0023449717555195093, + 0.016412535682320595, + -0.04353717342019081, + -0.015732834115624428, + 0.04328341782093048, + -0.034891366958618164, + 0.00029510393505916, + -0.017690375447273254, + 0.015633145347237587, + 0.03701203688979149, + -0.02352675050497055, + 0.005659651476889849, + -0.03766455128788948, + 0.013530599884688854, + -0.054847415536642075, + -0.0007465392700396478, + -0.023562999442219734, + 0.013050276786088943, + 0.024976780638098717, + 0.01107461005449295, + 0.012986837886273861, + -0.04400843381881714, + 0.000372136797523126, + -0.015170946717262268, + -0.023490499705076218, + 0.07264654338359833, + 0.04415343701839447, + -0.05114983767271042, + 0.035797636955976486 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "清洗空冷器管束芯体", + "编号": "MT016", + "内容": "表 4.18 MT016 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT016060201管束芯体清洗空冷器管束芯体3MZJ级
安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。
安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。
\n\n
序号名称规格/型号数量及单位备注
1高压清洗机Kärcher HD 7/15-41台压力0-5MPa可调
2管束专用清洗喷头Rotating Nozzle 3mm2个自旋式
3风压干燥机Industrial AirDryer1台0.6 MPa
4泄漏测试装置Air/Water LeakTester1套0.4 MPa 保压
\n\n
名称规格/型号消耗数量备注
本项目为清洗 类,无备件消耗 (但可能触发堵 管修复
\n\n
序号名称牌号/品级/规格消耗数量备注
1中性清洗剂Alconox Detojet2kgpH=9.5,环保型
2软化水Deionized Water200L配制清洗液
3防锈剂CRC 3-36100mL清洗后喷涂
\n\n
序号专业人数技能等级备注
1机械专业2中级+初级中级操作高压设备
\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\n\n
1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥
(1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准
1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.18 MT016 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT016060201管束芯体清洗空冷器管束芯体3MZJ级
安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。
安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。
\\n\\n
序号名称规格/型号数量及单位备注
1高压清洗机Kärcher HD 7/15-41台压力0-5MPa可调
2管束专用清洗喷头Rotating Nozzle 3mm2个自旋式
3风压干燥机Industrial AirDryer1台0.6 MPa
4泄漏测试装置Air/Water LeakTester1套0.4 MPa 保压
\\n\\n
名称规格/型号消耗数量备注
本项目为清洗 类,无备件消耗 (但可能触发堵 管修复
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1中性清洗剂Alconox Detojet2kgpH=9.5,环保型
2软化水Deionized Water200L配制清洗液
3防锈剂CRC 3-36100mL清洗后喷涂
\\n\\n
序号专业人数技能等级备注
1机械专业2中级+初级中级操作高压设备
\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\\n\\n
1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥
(1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准
1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_35c6181a-f8c1-4baa-9e11-c605d980ad41.pdf#page=47\"}]", + "embedding": [ + -0.039971351623535156, + 0.008998975157737732, + -0.04886190593242645, + 0.012351003475487232, + 0.03503818064928055, + -0.026798153296113014, + 0.003528212895616889, + 0.020021816715598106, + -0.045826107263565063, + 0.017266105860471725, + 0.012332933023571968, + 0.018901461735367775, + 0.020708486437797546, + -0.004246504511684179, + 0.024394813925027847, + -0.0417422354221344, + 0.005271990317851305, + 0.008556255139410496, + 0.023762354627251625, + -0.05294577777385712, + -0.009785030968487263, + -0.02502727136015892, + -0.009929592721164227, + -0.02181077003479004, + -0.018594268709421158, + 0.001777659053914249, + 0.019570061936974525, + 0.006536906585097313, + -0.015215135179460049, + -0.026256047189235687, + -0.006229712627828121, + -0.006970591843128204, + -0.06465528905391693, + -0.03424308821558952, + -0.029273776337504387, + -0.05211455002427101, + 0.02734026126563549, + -0.028659388422966003, + -0.03368291258811951, + 0.01763654686510563, + -0.019046025350689888, + -0.01946163922548294, + 0.005574666429311037, + -0.04933173209428787, + 0.005326200742274523, + 0.0101012596860528, + -0.04586225003004074, + -0.025768151506781578, + -0.03736924007534981, + -0.00330911111086607, + 0.03296010196208954, + -0.008172262459993362, + 0.017094438895583153, + 0.0018634926527738571, + 0.012866005301475525, + 0.02847868576645851, + 0.02365393377840519, + -0.03635730594396591, + -0.0016330971848219633, + 0.021142171695828438, + -0.030412200838327408, + 0.0023288012016564608, + 0.03339378908276558, + 0.004698260221630335, + 0.04499487578868866, + 0.0797981470823288, + -0.034152738749980927, + 0.004086131229996681, + -0.012251617386937141, + -0.020220588892698288, + 0.009306169115006924, + 0.023726213723421097, + 0.01103187631815672, + 0.007548839319497347, + -0.04015205428004265, + 0.023111825808882713, + -0.0009571575792506337, + -0.020292870700359344, + 0.03852573409676552, + 0.013868902809917927, + 0.04615137353539467, + 0.008045771159231663, + 0.004592097830027342, + 0.0031148563139140606, + 0.009748890064656734, + 0.017103474587202072, + -0.003257159376516938, + 0.01973269321024418, + -0.03263483941555023, + -0.0690644234418869, + -0.006613704841583967, + -0.04177837446331978, + 0.0022576495539397, + -0.018440671265125275, + -0.03341186046600342, + 0.00013383265468291938, + -0.0076256380416452885, + -0.019046025350689888, + 0.03597783297300339, + 0.0020329011604189873, + 0.006392344366759062, + 0.006654363125562668, + 0.028352193534374237, + -0.030430270358920097, + 0.07361812144517899, + -0.05930650234222412, + -0.002139063784852624, + 0.009766960516571999, + -0.011727580800652504, + -0.0031148563139140606, + 0.021051820367574692, + 0.04618751257658005, + 0.004393325187265873, + 0.01344425231218338, + -0.03010500594973564, + -0.015630749985575676, + -0.04217592254281044, + -0.03227343410253525, + 0.036754850298166275, + -0.01100477110594511, + -0.0011322129284963012, + -0.040260475128889084, + -0.006198089569807053, + -0.04289872944355011, + 0.05637912452220917, + -0.008172262459993362, + -0.001191505929455161, + 0.022858843207359314, + -0.005271990317851305, + 0.014528466388583183, + -0.005267472472041845, + 0.008886036463081837, + 0.012007669545710087, + 0.050885774195194244, + -0.004991901572793722, + -0.021431295201182365, + -0.009342310018837452, + 0.00020766649686265737, + -0.007286821026355028, + -0.030737465247511864, + -0.008407175540924072, + 0.056198421865701675, + -0.01392311416566372, + 0.019407428801059723, + -0.026707801967859268, + -0.0056785703636705875, + -0.010372312739491463, + -0.004869927652180195, + -0.02710534818470478, + 0.04983770102262497, + -0.012540740892291069, + 0.03942924737930298, + 0.004761506337672472, + 0.057174213230609894, + 0.03391782566905022, + 0.03986293077468872, + -0.04723558574914932, + 0.021503575146198273, + -0.052042268216609955, + 0.0016500380588695407, + 0.01622706837952137, + 0.051789283752441406, + -0.01857619918882847, + 0.02806307002902031, + 0.022154103964567184, + 0.012594951316714287, + -0.016597507521510124, + -0.02827991358935833, + -0.019786903634667397, + 0.05243981257081032, + 0.021196382120251656, + -0.032598696649074554, + -0.08015955239534378, + 0.007377172354608774, + 0.005290060304105282, + 0.0026314775459468365, + 0.03568870946764946, + 0.011998633854091167, + 0.00048648452502675354, + -0.0014817590126767755, + 0.01505250297486782, + 0.034893617033958435, + -0.03758608177304268, + -0.05612614005804062, + -0.020491642877459526, + 0.0440913662314415, + 0.023075686767697334, + -0.01807926781475544, + -0.016642684116959572, + -0.0011926352744922042, + -0.06010159105062485, + -0.03136992081999779, + 0.0034084974322468042, + 0.04286259040236473, + 0.03633923456072807, + 0.0043707373552024364, + -0.03272518888115883, + 0.010914419777691364, + 0.025533238425850868, + -0.0006951392279006541, + 0.07296759635210037, + 0.006049009971320629, + 0.06675143539905548, + 0.03935696557164192, + -0.0038173364009708166, + -0.0015913097886368632, + 0.013019601814448833, + -0.042103640735149384, + -0.02734026126563549, + -0.018214793875813484, + -0.002938671503216028, + -0.0018104113405570388, + -0.0011480244575068355, + -0.027051137760281563, + -0.03614046424627304, + -0.0009221465443260968, + 0.029346056282520294, + -0.016606543213129044, + -0.023744285106658936, + -0.009242923930287361, + 0.00020907823636662215, + 0.024991130456328392, + 0.0459345281124115, + 0.01134810596704483, + -0.00018889039347413927, + 0.014185132458806038, + 0.031424134969711304, + 0.03496589884161949, + 0.020238660275936127, + 0.044163648039102554, + -0.04203135892748833, + 0.008980905637145042, + 0.0051590511575341225, + 0.007914762012660503, + 0.03431537002325058, + -0.011528807692229748, + -0.03830889239907265, + 0.03780292347073555, + 0.03039412945508957, + -0.04803067818284035, + -0.017988916486501694, + -0.02247936837375164, + 0.010941524989902973, + -0.021684277802705765, + 0.004824751988053322, + -0.011998633854091167, + 0.022587789222598076, + -0.016525227576494217, + -0.007467523217201233, + -0.010128364898264408, + -0.000425497506512329, + 0.0024823981802910566, + -0.010471699759364128, + 0.05894509702920914, + 0.011465562507510185, + -0.012603987008333206, + 0.009884417057037354, + -0.03399010747671127, + 0.005832167342305183, + -0.012251617386937141, + 0.02294919453561306, + 0.01873883046209812, + -0.0005209309165365994, + 0.015829524025321007, + 0.01368820108473301, + 0.01692277193069458, + -0.04756085202097893, + -0.022208314388990402, + -0.0038060424849390984, + 0.019100235775113106, + -0.048789627850055695, + -0.012730478309094906, + -0.010869244113564491, + 0.034658703953027725, + 0.01786242425441742, + 0.035146601498126984, + 0.008633052930235863, + 0.02016637846827507, + 0.07423251122236252, + -0.013950219377875328, + 0.0013688200851902366, + 0.001225387561134994, + -0.005019006785005331, + -0.017528124153614044, + 0.009902487508952618, + 0.0030290225986391306, + -0.05793316289782524, + -0.06841389834880829, + -0.0021966625936329365, + -0.007634672801941633, + -0.009098362177610397, + -0.02387077547609806, + 0.06295669078826904, + 0.011122227646410465, + -0.017275141552090645, + 0.05540332943201065, + -0.022876912727952003, + -0.12396179139614105, + 0.06660687178373337, + -0.007566909771412611, + 0.017799178138375282, + -0.002656324068084359, + 0.027882367372512817, + -0.013950219377875328, + 0.037658363580703735, + -0.0370439738035202, + -0.06104124337434769, + -0.04495873674750328, + -0.07770200073719025, + -0.02410568855702877, + -0.007517216261476278, + -0.02871359884738922, + -0.019877254962921143, + -0.04557312652468681, + -0.008321342058479786, + 0.02159392647445202, + -0.06147493049502373, + -0.02408761903643608, + -0.013390041887760162, + 0.07799112051725388, + -0.08276166021823883, + -0.024936920031905174, + -0.06313738971948624, + 0.010471699759364128, + -0.01620899885892868, + 0.013588814064860344, + 0.01577531173825264, + -0.0044249482452869415, + -0.027773946523666382, + 0.0036185639910399914, + 0.037224676460027695, + -0.00441139517351985, + -0.0069886622950434685, + -0.015531363897025585, + 0.036772921681404114, + 0.012631092220544815, + 0.002296048915013671, + 0.08941150456666946, + -0.024250252172350883, + 0.0036998800933361053, + 0.013543638400733471, + 0.005814097356051207, + 0.013037672266364098, + 0.029309915378689766, + -0.009766960516571999, + -0.03740537911653519, + 0.0023096015211194754, + 0.016995053738355637, + 0.030701324343681335, + 0.008511079475283623, + -0.024159900844097137, + -0.015115749090909958, + 0.027286050841212273, + -0.0018465517787262797, + 0.05359630659222603, + -0.021178312599658966, + -0.0008843119721859694, + -0.06396862119436264, + -0.051102615892887115, + -0.03892327845096588, + -0.01621803268790245, + -0.0533071830868721, + -0.05186156556010246, + -0.04871734604239464, + -0.05276507884263992, + -0.012820829637348652, + -0.02638253942131996, + 0.02437674254179001, + 0.04058574140071869, + 0.003550800494849682, + -0.04087486490607262, + 0.00023745413636788726, + -0.012224512174725533, + -0.03310466557741165, + -0.021846910938620567, + -0.023780426010489464, + -0.13791200518608093, + 0.011167403310537338, + 0.01831418089568615, + 9.952744585461915e-05, + -0.07994270324707031, + -0.02338287979364395, + 0.0019922431092709303, + -0.0030538691207766533, + -0.004707295447587967, + -0.027195699512958527, + 0.22305893898010254, + 0.018630409613251686, + -0.025804290547966957, + 0.011546878144145012, + 0.05374087020754814, + -0.00475247111171484, + -0.035146601498126984, + 0.004991901572793722, + 0.04004363343119621, + -0.03245413675904274, + -0.013019601814448833, + 0.016769174486398697, + 0.0385618731379509, + 0.00532168336212635, + 0.01331776101142168, + -0.015233205631375313, + 0.03615853562951088, + -0.006329098716378212, + 0.10263891518115997, + 0.0034310852643102407, + -0.0017144132871180773, + 0.002450775122269988, + -0.024900779128074646, + 0.009568187408149242, + -0.055728595703840256, + -0.07065460830926895, + 0.012134160846471786, + 0.06447459012269974, + -0.012287757359445095, + 0.00595865910872817, + 0.00846590381115675, + 0.08305078744888306, + 0.02273235097527504, + -0.04774155095219612, + -0.01623610407114029, + 0.015865663066506386, + -0.02434060163795948, + 0.013624954968690872, + 0.041633814573287964, + -0.0319301001727581, + -0.05312648043036461, + -0.03178553655743599, + 0.011022841557860374, + 0.03129764273762703, + -0.004544663242995739, + -0.008886036463081837, + 0.016407771036028862, + 0.028135351836681366, + 0.00579150952398777, + 0.021232523024082184, + -0.0070699783973395824, + 0.007968972437083721, + -0.0141218863427639, + 0.011311965063214302, + -0.00237623555585742, + 0.004086131229996681, + -0.0042984564788639545, + -0.03375519439578056, + 0.02065427601337433, + 0.0011644006008282304, + 0.05034366622567177, + -0.01786242425441742, + -0.04980155825614929, + -0.0014603006420657039, + 0.02314796671271324, + -0.0031781019642949104, + -0.07249777019023895, + 0.03736924007534981, + -0.0008792297448962927, + 0.0254790261387825, + 0.01181793212890625, + -0.020708486437797546, + -0.009202265180647373, + 0.00481571676209569, + 0.004851857200264931, + 0.007630155421793461, + -0.008086428977549076, + 0.054319117218256, + 0.004079354926943779, + 0.010625296272337437, + -0.029942374676465988, + -0.05218682810664177, + 0.002581784501671791, + -0.025207974016666412, + 0.03055676259100437, + -0.006473660469055176, + 0.03639344871044159, + -0.046910323202610016, + -0.0771237462759018, + -0.01215223129838705, + 0.005326200742274523, + 0.039754509925842285, + -0.030231498181819916, + -0.020003747195005417, + 0.030321849510073662, + 0.03274326026439667, + -0.02338287979364395, + -0.029978515580296516, + -0.0032029487192630768, + 0.006518836133182049, + -0.03225536271929741, + -0.038814857602119446, + 0.0012908922508358955, + -0.025623589754104614, + -0.02043743245303631, + -0.014067675918340683, + -0.006292958278208971, + 0.040188197046518326, + 0.008538184687495232, + 0.04264574870467186, + -0.020057957619428635, + 0.0035440241917967796, + -0.030321849510073662, + -0.05037980526685715, + -0.004007074050605297, + -0.016055401414632797, + -0.054355256259441376, + 0.04264574870467186, + 0.007182917091995478, + 0.045103300362825394, + -0.037911348044872284, + 0.02761131525039673, + 0.0019606200512498617, + 0.022822702303528786, + -0.03445993363857269, + -0.0533071830868721, + -0.028460614383220673, + -0.015513294376432896, + 0.008854413405060768, + 0.06104124337434769, + -0.04477803409099579, + -0.026960786432027817, + 0.010065118782222271, + 0.030755534768104553, + 0.014944082126021385, + 0.021630067378282547, + 0.0398990735411644, + 0.01809733733534813, + 0.0324360653758049, + -0.018133478239178658, + -0.04051345959305763, + -0.013435217551887035, + -0.016642684116959572, + 0.02435867302119732, + 0.013606884516775608, + -0.01264012698084116, + 0.005488832946866751, + -0.04015205428004265, + -0.02249743789434433, + 0.07112443447113037, + -0.048789627850055695, + 0.014374869875609875, + 0.02734026126563549, + -0.05337946489453316, + 0.016814351081848145, + -0.11564948409795761, + -0.027177628129720688, + -0.023762354627251625, + -0.050452087074518204, + -0.02640060894191265, + -0.010119330137968063, + 0.018865322694182396, + 0.0075081815011799335, + 0.029075002297759056, + 0.0685584619641304, + 0.03946538642048836, + -0.0319301001727581, + 0.04846436157822609, + 0.05446368083357811, + -0.03205659240484238, + 0.013814692385494709, + -0.026996927335858345, + -0.07065460830926895, + 0.05374087020754814, + 0.04127240926027298, + -0.048355940729379654, + -0.048102956265211105, + 0.01574820652604103, + 0.011790825985372066, + 0.01951584964990616, + -0.0014501360710710287, + 0.021377084776759148, + -0.005457209888845682, + -0.006979627069085836, + -0.027773946523666382, + -0.008773097768425941, + -0.002737640170380473, + 0.0139140784740448, + -0.011763720773160458, + 0.018883392214775085, + -0.0012163524515926838, + 0.05724649503827095, + -0.023997267708182335, + 0.005199709441512823, + -0.01877497136592865, + 0.024756217375397682, + 0.02667166292667389, + 0.009125467389822006, + -0.007765681948512793, + -0.008172262459993362, + -0.0006194701418280602, + -0.014772414229810238, + 0.018503917381167412, + -0.026509029790759087, + -0.018034091219305992, + -0.012730478309094906, + -0.029093073680996895, + 0.024412883445620537, + 0.006758266594260931, + -0.042067501693964005, + -0.0308458860963583, + 0.01926286704838276, + 0.004196811467409134, + -0.02806307002902031, + -0.023220248520374298, + -0.04803067818284035, + 0.032942034304142, + -0.021919190883636475, + -0.005262955091893673, + -0.034008175134658813, + 0.04622365161776543, + -0.0026359951589256525, + 0.009477837011218071, + -0.013272585347294807, + 0.024232180789113045, + 0.002660841681063175, + -0.03740537911653519, + -0.00973985530436039, + 0.015305486507713795, + 0.026057275012135506, + 0.014031535014510155, + 0.03942924737930298, + 0.003722467692568898, + -0.037188537418842316, + 0.05189770460128784, + -0.017961811274290085, + 0.021883049979805946, + 0.03364677354693413, + 0.002764745382592082, + 0.03409852832555771, + -0.032110802829265594, + 0.0241418294608593, + 0.04709102585911751, + 0.04546470195055008, + 0.00515001593157649, + 0.037007834762334824, + -0.007178399711847305, + 0.045826107263565063, + 0.013561708852648735, + 0.03218308463692665, + 0.008578842505812645, + 0.03668257221579552, + 0.052728936076164246, + -0.013995395042002201, + -0.02343709021806717, + 0.014365834183990955, + 0.001778788398951292, + -0.023473231121897697, + -0.03617660328745842, + -0.0004071449220646173, + -0.02132287435233593, + 0.015151889063417912, + -0.0037473144475370646, + -0.005809579510241747, + -0.0167239997535944, + -0.02851482667028904, + 0.019588131457567215, + 0.05052436888217926, + 0.010507839731872082, + -0.029761672019958496, + -0.012215476483106613, + -0.011275825090706348, + -0.01449232641607523, + -0.011781791225075722, + 0.01642584055662155, + -0.01204380951821804, + -0.0008933470817282796, + 0.0022045683581382036, + 0.009197748266160488, + 0.04705488309264183, + 0.006609187461435795, + -0.03708011656999588, + 0.018034091219305992, + 0.030900096520781517, + 0.039284683763980865, + 0.022389017045497894, + 0.028406403958797455, + -0.019533921033143997, + -0.009550117887556553, + -0.02110603079199791, + 0.027954649180173874, + 0.001744906767271459, + -0.045970670878887177, + 0.024214111268520355, + -0.024159900844097137, + 0.015332591719925404, + -0.040694162249565125, + 0.04517557844519615, + -0.01321837492287159, + -0.007241645362228155, + -0.005163569003343582, + 0.030520621687173843, + -0.024864638224244118, + -0.025551307946443558, + -0.02549709752202034, + 0.003763125743716955, + 0.004869927652180195, + -0.04817523807287216, + 0.01113126240670681, + 0.007133224047720432, + -0.0031577730551362038, + -0.030177287757396698, + -0.04271802678704262, + 0.048789627850055695, + 0.03993521258234978, + 0.012016704306006432, + 0.008610465563833714, + 0.0009752278565429151, + -0.025370605289936066, + 0.03480326756834984, + -0.029364127665758133, + -0.03599590063095093, + -0.029743602499365807, + 0.006139361299574375, + -0.028370264917612076, + 0.0035440241917967796, + -0.019407428801059723, + 0.02181077003479004, + -0.022352876141667366, + -0.014058640226721764, + -0.025406746193766594, + 0.004318785388022661, + -0.003410756355151534, + 0.021467436105012894, + 0.030647113919258118, + 0.0046485671773552895, + -0.0014004430267959833, + -0.020708486437797546, + 0.02594885230064392, + -0.0027850745245814323, + -0.04618751257658005, + 0.01542294304817915, + 0.018612338230013847, + 0.003555318107828498, + 0.020256729796528816, + -0.02898465283215046, + -0.04087486490607262, + -0.018449706956744194, + 0.000446391204604879, + -0.006039975211024284, + -0.022407088428735733, + -0.004806681536138058, + -0.030086936429142952, + -0.044597331434488297, + 0.002570490585640073, + 0.010805998928844929, + -0.033231157809495926, + 0.018648479133844376, + -0.038164328783750534, + 0.01414899155497551, + -0.005407516844570637, + 0.03133378177881241, + -0.06949811428785324, + 0.03339378908276558, + 0.0006025292677804828, + -0.04036889970302582, + 0.025099551305174828, + 0.021901121363043785, + -0.02437674254179001, + -0.005186156369745731, + -0.013570744544267654, + 0.0014580418355762959, + -0.031912028789520264, + 0.011628194712102413, + -0.031424134969711304, + 0.018648479133844376, + -0.04076644405722618, + -0.02340095117688179, + 0.033773262053728104, + -0.025081481784582138, + -0.014465220272541046, + 0.0008594653918407857, + -0.02965325117111206, + -0.03216501325368881, + 0.042320482432842255, + -0.01274854876101017, + -0.041380830109119415, + -0.035146601498126984, + 0.02616569586098194, + 0.012341968715190887, + 0.011962493881583214, + -0.007377172354608774, + -0.03679099306464195, + 0.023039545863866806, + -0.10965016484260559, + 0.04354925826191902, + 0.0015642044600099325, + 0.004635014571249485, + -0.0005000372184440494, + -0.01321837492287159, + -0.010625296272337437, + 0.02343709021806717, + 0.005073217675089836, + -0.01101380679756403, + -0.013959254138171673, + -0.015513294376432896, + 0.05655982717871666, + -0.032146941870450974, + -0.04586225003004074, + 0.006238747388124466, + 0.013950219377875328, + 0.022190244868397713, + 0.033068522810935974, + 0.07481075823307037, + -0.018169617280364037, + -0.001227646367624402, + -0.030683252960443497, + 0.0004890256677754223, + 0.014311623759567738, + -0.012360038235783577, + 0.0043797725811600685, + 0.04101942479610443, + 0.010751787573099136, + -0.0018793040653690696, + -0.0058863782323896885, + -0.038128189742565155, + 0.033972036093473434, + 0.02181077003479004, + -0.021666208282113075, + 0.004955761134624481, + 0.0030245049856603146, + 0.008014148101210594, + 0.03590555116534233, + 0.045103300362825394, + 0.012784688733518124, + -0.0011152721708640456, + -0.004887997638434172, + 0.015937944874167442, + -0.050199102610349655, + 0.05030752718448639, + 0.008913141675293446, + 0.024467093870043755, + -0.05258437618613243, + -0.007151294499635696, + 0.03178553655743599, + 0.04936787486076355, + -0.009875381365418434, + 0.017329351976513863, + 0.0031939134933054447, + 0.005393964238464832, + -0.08782132714986801, + 0.020039888098835945, + -0.011908282525837421, + 0.033520281314849854, + -0.023708144202828407, + 0.017708826810121536, + -0.03993521258234978, + -0.04665733873844147, + 0.002023865934461355, + 0.005290060304105282, + -0.043260134756565094, + -0.00475247111171484, + 0.037224676460027695, + -0.0019199621165171266, + -0.009053186513483524, + 0.04756085202097893, + -0.013254514895379543, + -0.011718545109033585, + -0.005863790400326252, + 0.030538691207766533, + 0.02202761359512806, + -0.0627037063241005, + -0.03543572500348091, + 0.00833037681877613, + 0.03841731324791908, + -0.01831418089568615, + 0.0501268245279789, + 0.023997267708182335, + -0.028388334438204765, + 0.0370439738035202, + -0.014682063832879066, + -0.003885099897161126, + 0.015811452642083168, + 0.04192293807864189, + -0.053668588399887085, + -0.020816907286643982, + -0.013272585347294807, + -0.002575007965788245, + 0.013661094941198826, + 0.019786903634667397, + -0.03729695826768875, + -0.014889870770275593, + 0.00949590653181076, + -0.0033362165559083223, + -0.0380559079349041, + -0.02432253211736679, + 0.006758266594260931, + 0.012016704306006432, + -0.02829798310995102, + 0.0425734668970108, + 0.07647322118282318, + -0.03314080461859703, + 0.024250252172350883, + -0.0016443911008536816, + 0.015404872596263885, + 0.016073470935225487, + 0.022154103964567184, + -0.03552607446908951, + 0.0042984564788639545, + -0.0019335148390382528, + 0.01897374354302883, + -0.053921572864055634, + -0.04376609995961189, + -0.01808830164372921, + 0.009929592721164227, + 0.011194508522748947, + -0.05421069636940956, + -0.030755534768104553, + -0.05695737153291702, + -0.03644765913486481, + 0.013155128806829453, + 0.04289872944355011, + 0.02222638577222824, + 0.056668248027563095, + -0.0026427714619785547, + -0.002254261402413249, + -0.028171490877866745, + 0.043946802616119385, + 0.035327304154634476, + -0.005398481618613005, + -0.03156869485974312, + 0.07430479675531387, + -0.026978855952620506, + -0.03895942121744156, + -0.01854005828499794, + 0.042971011251211166, + 0.019841114059090614, + -0.03726081922650337, + -0.061511069536209106, + 0.03635730594396591, + -0.015097678638994694, + 0.027882367372512817, + -0.050415948033332825, + 0.03910398110747337, + -0.0033023348078131676, + 0.012911180965602398, + -0.01857619918882847, + -0.014329694211483002, + -0.027466751635074615, + -0.006591117009520531, + 0.057644039392471313, + -0.00048591982340440154, + -0.03870643675327301, + 0.014266448095440865, + 0.0375499427318573, + -0.03505624830722809, + -0.02896658144891262, + 0.055511754006147385, + 0.014682063832879066, + 0.006762784440070391, + -3.6528690543491393e-06, + -0.003510142443701625, + -0.039971351623535156, + 0.05789702385663986, + -0.004653084557503462, + 0.007575944531708956, + -0.01714864932000637, + 0.030303778126835823, + 0.019154446199536324, + -0.012522670440375805, + 0.0021130878012627363, + -0.02477428875863552, + 0.058764394372701645, + 0.007313926238566637, + 0.03296010196208954, + 0.020997609943151474, + 0.02063620463013649, + 0.08832729607820511, + 0.043260134756565094, + 0.04145311191678047, + 0.042790308594703674, + 0.03708011656999588, + -0.00441365409642458, + 0.018666550517082214, + 0.005299095530062914, + 0.019371287897229195, + -0.026834294199943542, + 0.0029906234703958035, + 0.02341902069747448, + 0.014221272431313992, + 0.00847042165696621, + 0.042067501693964005, + 0.006008352153003216, + 0.06143878772854805, + 0.016498122364282608, + -0.006938969250768423, + -0.02851482667028904, + 0.027647454291582108, + -0.006469143088907003, + -0.009929592721164227, + 0.004549181088805199, + 0.0627037063241005, + -0.018612338230013847, + 0.01577531173825264, + -0.03885100036859512, + -0.0027150523383170366, + -0.022768491879105568, + 0.001028873841278255, + 0.016507156193256378, + 0.0061438786797225475, + 0.03223729506134987, + 0.012613021768629551, + -0.043007150292396545, + -0.0017234483966603875, + -0.018494881689548492, + 0.0202025193721056, + -0.014709169045090675, + -0.011673369444906712, + 0.029382197186350822, + -0.05569245666265488, + 0.025388676673173904, + -0.012079950422048569, + -0.03409852832555771, + -0.04083872586488724, + 0.022172175347805023, + -0.01829610951244831, + -0.027249909937381744, + 0.037188537418842316, + -0.015477153472602367, + -0.052475955337285995, + 0.017546195536851883, + -0.025189902633428574, + 0.005665017757564783, + 0.019877254962921143, + 1.7690828144623083e-06, + -0.002814438659697771, + -0.022822702303528786, + 0.01542294304817915 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "管束芯体", + "组成编码": "060201", + "维修项目名称": "清洗空冷器管束芯体", + "维修项目编号": "MT016", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.18 MT016 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT016060201管束芯体清洗空冷器管束芯体3MZJ级
安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。
安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。
\\n\\n
序号名称规格/型号数量及单位备注
1高压清洗机Kärcher HD 7/15-41台压力0-5MPa可调
2管束专用清洗喷头Rotating Nozzle 3mm2个自旋式
3风压干燥机Industrial AirDryer1台0.6 MPa
4泄漏测试装置Air/Water LeakTester1套0.4 MPa 保压
\\n\\n
名称规格/型号消耗数量备注
本项目为清洗 类,无备件消耗 (但可能触发堵 管修复
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1中性清洗剂Alconox Detojet2kgpH=9.5,环保型
2软化水Deionized Water200L配制清洗液
3防锈剂CRC 3-36100mL清洗后喷涂
\\n\\n
序号专业人数技能等级备注
1机械专业2中级+初级中级操作高压设备
\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\\n\\n
1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥
(1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准
1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_35c6181a-f8c1-4baa-9e11-c605d980ad41.pdf#page=47\"}]", + "embedding": [ + -0.0267733633518219, + 0.03695059195160866, + 0.010726090520620346, + 0.005707247648388147, + 0.023182496428489685, + -0.010140015743672848, + -0.022363852709531784, + 0.051314063370227814, + -0.03028981015086174, + -0.00234778574667871, + 0.018549717962741852, + -0.005028145387768745, + 0.0059816790744662285, + 0.01493094116449356, + 0.013461103662848473, + -0.04443001374602318, + -0.0002588785719126463, + 0.007721296511590481, + 0.0034071383997797966, + -0.042681094259023666, + -0.01147031132131815, + -0.02094983123242855, + -0.014503014273941517, + -0.009191134013235569, + -0.02872694469988346, + 0.04368579387664795, + -0.013777397572994232, + 0.0019373012473806739, + -0.039778631180524826, + -0.0011645901249721646, + -0.022884806618094444, + -0.01338668167591095, + 0.019256727769970894, + -0.041229862719774246, + -0.02262432873249054, + -0.06150989606976509, + 0.02958279848098755, + -0.021340547129511833, + -0.04848602041602135, + -0.0040094926953315735, + -0.008791115134954453, + -0.0002994328096974641, + -0.006460771895945072, + -0.06869163364171982, + 0.03414115682244301, + -0.04327647387981415, + -0.00754454405978322, + -0.03248526155948639, + -0.012995965778827667, + 0.003132706740871072, + 0.011088898405432701, + 0.0020942853298038244, + -0.007195690181106329, + 0.030066542327404022, + -0.017758982256054878, + 0.003365275915712118, + -0.047146424651145935, + -0.02686639130115509, + -0.03010375425219536, + 0.00011962777352891862, + -0.01546119898557663, + 0.0332108773291111, + -0.032634105533361435, + 0.02344297245144844, + 0.016130998730659485, + 0.07992937415838242, + 0.023368550464510918, + 0.02065214328467846, + -0.031778253614902496, + -0.04636499285697937, + 0.0291734766215086, + -0.004214153625071049, + 0.0027164078783243895, + 0.020875409245491028, + -0.03836461156606674, + 0.051909439265728, + -0.025377947837114334, + -0.044764913618564606, + 0.061361052095890045, + 0.023982534185051918, + 0.05075589567422867, + -0.026308225467801094, + 0.029545588418841362, + -0.01385182049125433, + 0.0137960035353899, + 0.0027326878625899553, + -0.0011581945000216365, + 0.01607518084347248, + -0.024001138284802437, + -0.022791778668761253, + -0.03330390527844429, + -0.08714832365512848, + -0.004565333016216755, + -0.0022501067724078894, + -0.047779012471437454, + -0.005865394603461027, + -0.009721391834318638, + 0.003455977886915207, + 0.036466848105192184, + 0.003539702855050564, + 0.01244710199534893, + 0.038141343742609024, + -0.009302766993641853, + -0.01920091174542904, + 0.055035170167684555, + -0.027536191046237946, + -0.0026257059071213007, + -0.01628914475440979, + -0.03453187271952629, + 0.03216896951198578, + 0.039666999131441116, + 0.04576961323618889, + -0.0019314870005473495, + -0.02260572463274002, + -0.04707200080156326, + -0.05216991901397705, + -0.04677431285381317, + -0.04264388233423233, + 0.0325968973338604, + -0.011377284303307533, + 0.0065770563669502735, + -0.055853813886642456, + 0.02241966873407364, + -0.03347135707736015, + 0.03631800413131714, + -0.02509886585175991, + 0.025173287838697433, + 0.020168399438261986, + -0.016307750716805458, + 0.024149984121322632, + -0.013405287638306618, + 0.015600739978253841, + -1.9950075511587784e-05, + 0.027052447199821472, + -0.01938696578145027, + -0.014279747381806374, + -0.04070890694856644, + 0.017349660396575928, + -0.013256442733108997, + 0.0015244910027831793, + 0.01156333927065134, + 0.034029521048069, + -0.04316483810544014, + 0.005884000100195408, + -0.016568228602409363, + 0.01105168741196394, + -0.029210688546299934, + 0.006060752552002668, + -0.02924790047109127, + 0.02428022213280201, + 0.02262432873249054, + 0.037490151822566986, + 0.03129450976848602, + 0.011972661130130291, + 0.008707390166819096, + 0.015535620972514153, + -0.011861028149724007, + 0.0313689298927784, + -0.043313682079315186, + 0.027517585083842278, + -0.008125967346131802, + 0.0009203925146721303, + 0.006623570341616869, + 0.004421140067279339, + 0.007763158995658159, + -0.014707674272358418, + 0.038327399641275406, + 0.01908927783370018, + -0.040113531053066254, + 0.013349470682442188, + -0.0011663343757390976, + 0.036578480154275894, + -0.07181736081838608, + 0.0031117754988372326, + 0.017768284305930138, + 0.006916607264429331, + 0.03135032579302788, + 0.019982343539595604, + 0.010307465679943562, + -0.031499169766902924, + -0.004742085468024015, + 0.040411219000816345, + -0.015712372958660126, + -0.00787944346666336, + 0.017768284305930138, + -0.0003069913072977215, + -0.030773553997278214, + -0.012121505104005337, + -0.009242299012839794, + 0.020391665399074554, + -0.036355212330818176, + -0.016521714627742767, + 0.02748037315905094, + -0.04885813221335411, + 0.01711709052324295, + 0.0003148405230604112, + -0.04089496284723282, + -0.035127248615026474, + 0.049862831830978394, + 0.014605344273149967, + 0.041341498494148254, + 0.01827063411474228, + 0.009051592089235783, + 0.034383028745651245, + -0.02353600040078163, + 0.011507523246109486, + -0.029694432392716408, + 0.02770364098250866, + -0.004286250099539757, + -0.03430860489606857, + -0.013405287638306618, + -0.023201100528240204, + 0.007060800213366747, + -0.05786320939660072, + 0.00474441098049283, + -0.006870093289762735, + 0.032727133482694626, + -0.0019547438714653254, + 0.015637950971722603, + -0.04763016849756241, + -0.007805021479725838, + 0.04245783016085625, + 0.03570402041077614, + 0.046848736703395844, + 0.0336202010512352, + -0.030792158097028732, + -0.006623570341616869, + 0.003142009489238262, + -0.033155061304569244, + -0.0031001472380012274, + -0.06132384017109871, + 0.049416299909353256, + -0.02262432873249054, + -0.0004049610870424658, + 0.04305320605635643, + 0.008642270229756832, + -0.04376021772623062, + 0.031071241945028305, + 0.05417931452393532, + -0.06236575171351433, + 0.026587307453155518, + -0.0031745692249387503, + 0.010865631513297558, + 0.016931036487221718, + -0.027926906943321228, + -0.048709288239479065, + 0.035741232335567474, + -0.013926242478191853, + -0.019145093858242035, + -0.027629218995571136, + -0.012865726836025715, + 0.026587307453155518, + -0.02801993489265442, + 0.01420532539486885, + 0.011693578213453293, + 0.015014666132628918, + 0.03680174797773361, + -0.014409986324608326, + 0.0227359626442194, + 0.026903603225946426, + 0.03851345553994179, + 0.026587307453155518, + 0.012698276899755001, + -0.002058237325400114, + 0.033155061304569244, + 0.019759077578783035, + 0.004525796044617891, + -0.0015512363752350211, + 0.0237592663615942, + -0.013358773663640022, + -0.028764156624674797, + -0.019107883796095848, + -0.026475675404071808, + 0.03296900540590286, + -0.009591152891516685, + 0.04852323234081268, + -0.009256253018975258, + 0.014568133279681206, + 0.011544734239578247, + -0.0026047746650874615, + 0.0026745456270873547, + 0.0023861597292125225, + 0.01888461783528328, + -0.022587118670344353, + 0.04160197451710701, + -0.022326640784740448, + -0.05537007004022598, + -0.08804138749837875, + -0.027424557134509087, + 0.012716882862150669, + -0.04022516310214996, + -0.006497982889413834, + 0.057416677474975586, + 0.006028193049132824, + -0.013330865651369095, + 0.0466998890042305, + -0.0277966670691967, + -0.14862100780010223, + 0.011005173437297344, + -0.0319829136133194, + 0.01784270629286766, + -0.0065724048763513565, + 0.034178365021944046, + -0.006870093289762735, + 0.028168778866529465, + -0.045174237340688705, + 0.0001896892354125157, + -0.03611334040760994, + -0.0829806849360466, + -0.03348996117711067, + -0.004174616653472185, + -0.05008609965443611, + -0.014614647254347801, + -0.07948283851146698, + -0.0005616545677185059, + 0.03955536708235741, + -0.025750059634447098, + 0.018438084051012993, + -0.017703166231513023, + 0.0728592723608017, + -0.08513892441987991, + -0.014921638183295727, + -0.005837486125528812, + 0.025750059634447098, + 0.018382268026471138, + 0.03185267373919487, + -0.023201100528240204, + -0.015275143086910248, + -0.043946269899606705, + -0.005842137616127729, + 0.032615501433610916, + 0.023573212325572968, + 0.010121410712599754, + -0.04316483810544014, + 0.04722084477543831, + 0.00808875635266304, + -0.01566585898399353, + 0.061472684144973755, + 0.02013118751347065, + 0.0002199232258135453, + 0.02281038463115692, + 0.019852105528116226, + 0.004221130628138781, + 0.021619630977511406, + -0.0081492243334651, + -0.02874555066227913, + -0.028708338737487793, + 0.010781907476484776, + 0.005060705356299877, + -0.00385134550742805, + -0.06050519645214081, + -0.01577749289572239, + -0.015023969113826752, + 0.006786368787288666, + 0.030457260087132454, + 0.04364858195185661, + -0.022475484758615494, + -0.03639242425560951, + -0.06433793902397156, + 0.013563434593379498, + -0.04100659862160683, + -0.055742181837558746, + -0.03624358028173447, + 0.01011210773140192, + -0.017079880461096764, + -0.020987043157219887, + -0.03350856527686119, + 0.0313689298927784, + -0.00799572840332985, + 0.014130903407931328, + -0.014382078312337399, + -0.0026745456270873547, + 0.002511747181415558, + -0.010474915616214275, + 0.004428117070347071, + -0.0555933341383934, + -0.0857343003153801, + 0.01827063411474228, + 0.0354621484875679, + -0.009637666866183281, + -0.041229862719774246, + -0.06675665825605392, + 0.027833878993988037, + 0.008460866287350655, + -0.005572357680648565, + -0.03907162323594093, + 0.2122519314289093, + -0.01244710199534893, + 0.008051544427871704, + 0.00736779160797596, + 0.03914604336023331, + -0.0070189377292990685, + -0.024708149954676628, + -0.02303365059196949, + -0.0027536191046237946, + -0.04770458862185478, + -0.0021012625657022, + 0.0040769376792013645, + 0.046439412981271744, + -0.01332156267017126, + -0.017563624307513237, + 0.07196620851755142, + 0.002089634072035551, + -0.005749110132455826, + 0.06232853978872299, + -0.009065546095371246, + -0.019796287640929222, + -0.04554634913802147, + -0.018745075911283493, + -0.021135887131094933, + -0.07018007338047028, + -0.05931444093585014, + 0.03492258861660957, + 0.044764913618564606, + 0.006404954940080643, + 0.020614931359887123, + 0.02913626655936241, + 0.045918457210063934, + 0.03049447014927864, + -0.07226389646530151, + -0.012428496964275837, + 0.0073910485953092575, + -0.038011107593774796, + 0.007986425422132015, + 0.011823817156255245, + -0.00321410596370697, + -0.04744411259889603, + -0.03185267373919487, + -0.0030164222698658705, + 0.03051307611167431, + -0.014298353344202042, + -0.03536912053823471, + 0.040187954902648926, + 0.015628648921847343, + -0.02509886585175991, + -0.0031047984957695007, + -0.010595851577818394, + 0.00672124931588769, + -0.029378138482570648, + -0.017033366486430168, + 0.02801993489265442, + -0.01427044440060854, + -0.02615938149392605, + -0.014605344273149967, + 0.02208476886153221, + 0.003058284753933549, + 0.060728464275598526, + 0.0065677533857524395, + -0.03706222400069237, + -0.01000977773219347, + 0.021321941167116165, + -0.026196591556072235, + -0.0568213015794754, + 0.010363282635807991, + 0.008902748115360737, + 0.033769045025110245, + 0.0922834500670433, + -0.024001138284802437, + -0.038104135543107986, + -0.006600313354283571, + 0.02104285918176174, + 0.027778062969446182, + 0.01931254379451275, + 0.04472770541906357, + -0.017386872321367264, + 0.0029885140247642994, + -0.03339693322777748, + -0.05563054606318474, + -0.010567943565547466, + 0.0022070815321058035, + 0.03940652310848236, + 0.008530637249350548, + 0.04603009298443794, + 0.008553894236683846, + -0.048002276569604874, + -0.016549622640013695, + 0.001459371531382203, + 0.022121980786323547, + -0.012056386098265648, + 0.009572546929121017, + 0.016363566741347313, + -0.005070007871836424, + -0.004416488576680422, + -0.028615310788154602, + -0.010912145487964153, + 0.010344676673412323, + -0.048002276569604874, + -0.026512885466217995, + -0.0036536618135869503, + -0.026903603225946426, + -0.04022516310214996, + -0.013498314656317234, + -0.0105772465467453, + 0.028503678739070892, + -0.009274858981370926, + 0.04696036875247955, + -0.0037094783037900925, + 0.023070862516760826, + -0.015917034819722176, + -0.037080828100442886, + -0.010186529718339443, + 0.016931036487221718, + -0.10166063904762268, + 0.04074611887335777, + 0.03804831579327583, + 0.0059909820556640625, + -0.005079310853034258, + -0.028243200853466988, + -0.025898903608322144, + 0.028875788673758507, + -0.019889315590262413, + -0.04848602041602135, + -0.015107694081962109, + -0.027461769059300423, + -0.012875029817223549, + 0.07021728903055191, + -0.0159914568066597, + -0.01981489360332489, + -0.006856139283627272, + -0.04085775464773178, + 0.0089167021214962, + 0.03414115682244301, + 0.06861720979213715, + 0.02346157841384411, + -0.00970278587192297, + -0.049230244010686874, + -0.01073539350181818, + 0.008888794109225273, + 0.008395747281610966, + 0.002651288639754057, + 0.010344676673412323, + 0.023591816425323486, + 0.005688642151653767, + 0.02790830098092556, + -0.0023152262438088655, + 0.028764156624674797, + -0.033769045025110245, + 0.007800369989126921, + 0.04178803041577339, + -0.02366624027490616, + 0.020559115335345268, + -0.1054561659693718, + -0.025601215660572052, + -0.037415727972984314, + -0.028299016878008842, + -0.0019942806102335453, + -0.01209359709173441, + 0.03330390527844429, + 0.029006028547883034, + 0.0012686648406088352, + 0.04242061823606491, + 0.06165874004364014, + -0.012707579880952835, + 0.01285642385482788, + 0.03155498579144478, + -0.020149793475866318, + -0.027945512905716896, + -0.0195172056555748, + -0.049118608236312866, + 0.030736342072486877, + 0.041639186441898346, + -0.006707294844090939, + -0.03040144219994545, + 0.014065783470869064, + -0.012223836034536362, + 0.0338248610496521, + 0.036355212330818176, + 0.0002513200743123889, + 0.029731644317507744, + -0.03265271335840225, + -0.0056188711896538734, + 0.0038746024947613478, + 0.01641008071601391, + -0.0009924889309331775, + 0.016270538792014122, + -0.005149081349372864, + -0.01877298392355442, + 0.06497052311897278, + -0.04908140003681183, + -0.006493331398814917, + -0.019963737577199936, + -0.001291921827942133, + -0.04130428656935692, + 0.03410394489765167, + -0.013107598759233952, + -0.03395510092377663, + 0.0328015573322773, + -0.008214343339204788, + 0.025173287838697433, + -0.015451896004378796, + 0.005456072743982077, + -0.016940338537096977, + 0.005093264859169722, + -0.0001611995103303343, + -0.0039327447302639484, + -0.009553941898047924, + -0.0018093881662935019, + -0.00907484907656908, + -0.0011407517595216632, + -0.01064236555248499, + -0.010967962443828583, + -0.037080828100442886, + 0.028075750917196274, + -0.003197826212272048, + -0.04491375759243965, + -0.02208476886153221, + 0.09414400160312653, + 0.0006610779091715813, + -0.013675067573785782, + 0.026531491428613663, + -0.008335279300808907, + -0.027201291173696518, + -0.022959228605031967, + -0.018103184178471565, + 0.03430860489606857, + 0.03464350476861, + 0.00296758278273046, + 0.01609378680586815, + 0.02303365059196949, + -0.04056006297469139, + 0.06288670748472214, + -0.052765294909477234, + 0.02532213181257248, + 0.03652266412973404, + -0.055853813886642456, + 0.011191228404641151, + -0.023182496428489685, + 0.035424936562776566, + 0.042904362082481384, + 0.06485889106988907, + -0.023182496428489685, + 0.0568213015794754, + -0.01213080808520317, + 0.04826275631785393, + 0.010726090520620346, + 0.024038350209593773, + 0.049006976187229156, + 0.013377378694713116, + 0.05019773170351982, + 0.0027536191046237946, + -0.014140206389129162, + 0.017554322257637978, + -0.03951815515756607, + -0.028894394636154175, + -0.010102804750204086, + 0.006153780501335859, + -0.021656841039657593, + 0.010530732572078705, + 0.01816830411553383, + -0.01400996744632721, + -0.033973705023527145, + 0.005204898305237293, + -0.0006256111082620919, + 0.030885186046361923, + 0.006870093289762735, + -0.024950021877884865, + -0.00356528558768332, + -0.024354644119739532, + -0.005321182776242495, + -0.028038538992404938, + 0.06467283517122269, + -0.01260524895042181, + -0.01001907978206873, + -0.011098201386630535, + -0.013861122541129589, + 0.037285491824150085, + -0.03311784937977791, + -0.019796287640929222, + -0.0017082205740734935, + 0.01878228597342968, + 0.029415348544716835, + 0.04037401080131531, + 0.05209549516439438, + -0.02241966873407364, + -0.021507997065782547, + -0.017033366486430168, + 0.051500119268894196, + 0.0018117139115929604, + -0.029229294508695602, + -0.015693768858909607, + -0.012074992060661316, + 0.027573401108384132, + -0.04513702541589737, + 0.043090417981147766, + -0.05283971503376961, + 0.011535431258380413, + -0.019759077578783035, + 0.04096938669681549, + -0.02240106277167797, + -0.025657031685113907, + -0.013647159561514854, + -0.02333134040236473, + -0.012335469014942646, + -0.004039726685732603, + -0.024224406108260155, + -0.019573021680116653, + 0.028447860851883888, + -0.03373183310031891, + -0.023945322260260582, + -0.013972756452858448, + 0.056374769657850266, + -0.014400683343410492, + 0.024019744247198105, + -0.030233992263674736, + 0.0020338173490017653, + 0.02011258155107498, + -0.03925767540931702, + -0.010233043693006039, + 0.007763158995658159, + -0.001978000858798623, + -0.0017442688113078475, + 0.00024085445329546928, + 0.00681892829015851, + 0.02842925675213337, + -0.04893255606293678, + -0.014847216196358204, + -0.023889506235718727, + 0.011823817156255245, + -0.028150172904133797, + -0.007637571543455124, + 0.05339788272976875, + 0.054104894399642944, + -0.044541649520397186, + -0.02104285918176174, + 0.005851440597325563, + 0.0028978120535612106, + -0.03581565245985985, + 0.014596041291952133, + 0.03482956066727638, + -0.01709848642349243, + 0.04294157400727272, + -0.008144572377204895, + -0.045397501438856125, + -0.011944753117859364, + 0.008432958275079727, + 0.025173287838697433, + -0.005270017310976982, + -0.024112772196531296, + -0.00808875635266304, + -0.05216991901397705, + -0.021228915080428123, + 0.043202050030231476, + -0.0034396981354802847, + 0.01011210773140192, + -0.009358583949506283, + 0.008963216096162796, + 0.0011372632579877973, + 0.03682035207748413, + -0.009972566738724709, + 0.028987422585487366, + -0.007237552665174007, + -0.014316958375275135, + 0.02623380348086357, + 0.0005657245055772364, + -0.006237505469471216, + -0.01177730318158865, + -0.02221500687301159, + -0.045397501438856125, + 0.014623950235545635, + 0.03395510092377663, + 0.012512221932411194, + 0.03624358028173447, + 0.002284992253407836, + 0.007628269027918577, + 0.05343509465456009, + 0.02604774758219719, + -0.008879491128027439, + 2.1203768483246677e-05, + -0.0291734766215086, + -0.0291734766215086, + 0.09005078673362732, + -0.04822554439306259, + -0.0038583227433264256, + 0.001726826187223196, + 0.020912621170282364, + 0.04141591861844063, + 0.016754282638430595, + -0.008260857313871384, + -0.0175264123827219, + 0.0251918938010931, + -0.09719531238079071, + 0.022977834567427635, + 0.006902653258293867, + -0.007093359716236591, + -0.007177084684371948, + -0.01146100927144289, + 0.010549337603151798, + 0.023777872323989868, + -0.001671009580604732, + -0.023517394438385963, + 0.003309459425508976, + -0.0010651667835190892, + 0.0037932032719254494, + -0.04037401080131531, + -0.02926650457084179, + -0.03425278887152672, + 0.02915487252175808, + 0.021824290975928307, + -0.004532773047685623, + 0.0813433974981308, + -0.03495979681611061, + -0.04513702541589737, + 0.05105358734726906, + 0.009460913948714733, + 0.041564762592315674, + -0.01576819084584713, + 0.005418861750513315, + 0.04390906170010567, + 0.01640077866613865, + 0.046513836830854416, + 0.00875855516642332, + -0.057639945298433304, + 0.05064426362514496, + 0.005656082183122635, + -0.016670558601617813, + 0.0003500166058074683, + 0.00593981659039855, + -0.02262432873249054, + 0.07717575877904892, + 0.03650405630469322, + 0.04863486438989639, + 0.007242204155772924, + 0.024112772196531296, + -0.0284106507897377, + -0.048076700419187546, + 0.04234619438648224, + 0.02323831245303154, + -0.0031234039925038815, + -0.052765294909477234, + 0.014847216196358204, + 0.019331149756908417, + 0.05153733119368553, + 0.009088803082704544, + -0.014102994464337826, + 0.0031234039925038815, + -0.012949451804161072, + -0.05819810926914215, + 0.006591010373085737, + -0.014279747381806374, + 0.020149793475866318, + -0.013972756452858448, + 0.012214533053338528, + 0.0023256917484104633, + -0.0672404021024704, + -0.02271735668182373, + 0.006865442264825106, + -0.05071868747472763, + -0.013414589688181877, + -0.017582230269908905, + -0.021824290975928307, + -0.011042384430766106, + 0.0608028843998909, + 0.009721391834318638, + -0.03713664785027504, + 0.015107694081962109, + 0.06258901953697205, + 0.0016128672286868095, + -0.016149602830410004, + -0.012205230072140694, + -0.032634105533361435, + -0.002909440314397216, + 0.012707579880952835, + 0.02024282142519951, + 0.02768503502011299, + -0.010986567474901676, + -0.005693293642252684, + 0.014754188247025013, + 0.013191323727369308, + -0.051723383367061615, + 0.0348481647670269, + -0.03922046720981598, + -0.008586454205214977, + 0.0308107640594244, + -0.009019033052027225, + -0.04647662490606308, + 0.005237457808107138, + -0.017610138282179832, + 0.004058332182466984, + 0.029936304315924644, + -0.05715620145201683, + -0.0065817078575491905, + -0.020484693348407745, + 0.026475675404071808, + -0.006609615869820118, + -0.041676394641399384, + -0.0015686791157349944, + 0.05488632619380951, + 0.0012779675889760256, + 0.028373438864946365, + -0.02106146514415741, + 0.0010826095240190625, + 0.007265461143106222, + -0.009684180840849876, + -0.008419004268944263, + -0.01322853472083807, + 0.02666173130273819, + 0.03328530117869377, + -0.06050519645214081, + -0.05853300914168358, + 0.004509516526013613, + -0.017191514372825623, + 0.04595566913485527, + -0.014307655394077301, + -0.03910883143544197, + -0.016875218600034714, + -0.04603009298443794, + 0.029433954507112503, + 0.06582637876272202, + 0.004414163064211607, + 0.017889220267534256, + 0.04056006297469139, + -0.02364763431251049, + -0.03609473630785942, + 0.02117309719324112, + 0.05339788272976875, + 0.0054095592349767685, + 0.0009058569557964802, + 0.05842137709259987, + -0.062105271965265274, + -0.05116521939635277, + -0.05060705170035362, + 0.009465565904974937, + 0.0013279699487611651, + -0.012521524913609028, + -0.020149793475866318, + 0.035945892333984375, + -0.018745075911283493, + 0.00705614872276783, + -0.05164896324276924, + 0.02729431912302971, + 0.04993725195527077, + -0.01763804629445076, + 0.026475675404071808, + -0.04402069374918938, + -0.02593611367046833, + 0.0014523945283144712, + 0.03559238836169243, + -0.024763965979218483, + -0.034290000796318054, + 0.027257107198238373, + 0.012837818823754787, + -0.046104513108730316, + -0.029415348544716835, + 0.046848736703395844, + -0.002144287806004286, + 0.018391570076346397, + 0.011033081449568272, + 0.00412810267880559, + -0.009019033052027225, + 0.040001899003982544, + -0.012195928022265434, + 0.017089182510972023, + 0.013647159561514854, + 0.047258056700229645, + 0.02582448162138462, + -0.035927288234233856, + -0.0027605961076915264, + -0.009981868788599968, + 0.02364763431251049, + 0.02031724341213703, + 0.022363852709531784, + 0.028299016878008842, + 0.03028981015086174, + 0.05994703248143196, + 0.024112772196531296, + 0.0547746941447258, + 0.038662299513816833, + 0.03536912053823471, + -0.015842612832784653, + -0.01555422693490982, + 0.0016407755902037024, + -0.011981964111328125, + -0.031089847907423973, + -0.006097964011132717, + 0.022345246747136116, + 0.03659708425402641, + 0.018959039822220802, + 0.020391665399074554, + -0.035536568611860275, + 0.06623569875955582, + 0.005330485291779041, + -0.015275143086910248, + -0.006335184443742037, + -0.03616916015744209, + -0.016242630779743195, + 0.020187005400657654, + -0.03187128156423569, + 0.020838197320699692, + -0.025489581748843193, + 0.03455047681927681, + 0.00642821192741394, + 0.010540034621953964, + -0.028819972649216652, + -0.008493426255881786, + -0.004279272630810738, + -0.00027341413078829646, + 0.014279747381806374, + 0.04119265079498291, + -0.026791969314217567, + 0.008870188146829605, + -0.0348481647670269, + 0.02675475738942623, + -0.04402069374918938, + 0.0205405093729496, + 0.022568512707948685, + -0.009963263757526875, + -0.017396174371242523, + 0.004739759955555201, + -0.03155498579144478, + -0.008628316223621368, + -0.0026164031587541103, + 0.010558640584349632, + -0.009898143820464611, + 0.035127248615026474, + 0.017293844372034073, + -0.012242441065609455, + -0.005363045260310173, + -0.036262184381484985, + 0.031908489763736725, + -0.02561981976032257, + 0.02591750957071781, + 0.0021163795609027147, + -0.04130428656935692, + 0.03555517643690109 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "修复连杆大端轴承异常磨损", + "编号": "T017", + "内容": "表 4.19 MT017 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
T017030200连杆大端轴承修复连杆大端轴承异常磨损故障触发ZJ级
安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。
安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。
序号名称规格/型号数量及单位备注
1防爆型扫气箱清洗机器人SCB-CLEANBOT-X11台自动高压水射流
2内窥镜(防爆)GE Mentor VisualiQ-Ex1台检查缸套下部
3红外热像仪FLIR T8601台检测局部热点
4可燃气体检测仪MSA Altair 5X1台多气体复合
2)备品备件
名称规格/型号消耗数量备注
1全套活塞环组MAN5L35MC-RING-SET1套含1-4号环
2活塞头(如需更换)MAN5L35MC-PISTON-HEAD1件铸钢整体式
3扫气口密封条Viton Strip 5×10mm若干更换烧损件
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1生物降解清洗剂Envirox SC-905L清除碳化油泥
2耐高温防火毯Fiberglass Mat1200°C2m局部隔热防护
3防锈剂CRC 3-36200mL修复后防护
4)人力人员人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工主导故障分析
2安全监督1高级安全员全程监护受限空间作业
修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头;
2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。
验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。
页码:1/1版本号:1
\n\n\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.19 MT017 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
T017030200连杆大端轴承修复连杆大端轴承异常磨损故障触发ZJ级
安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。
安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。
序号名称规格/型号数量及单位备注
1防爆型扫气箱清洗机器人SCB-CLEANBOT-X11台自动高压水射流
2内窥镜(防爆)GE Mentor VisualiQ-Ex1台检查缸套下部
3红外热像仪FLIR T8601台检测局部热点
4可燃气体检测仪MSA Altair 5X1台多气体复合
2)备品备件
名称规格/型号消耗数量备注
1全套活塞环组MAN5L35MC-RING-SET1套含1-4号环
2活塞头(如需更换)MAN5L35MC-PISTON-HEAD1件铸钢整体式
3扫气口密封条Viton Strip 5×10mm若干更换烧损件
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1生物降解清洗剂Envirox SC-905L清除碳化油泥
2耐高温防火毯Fiberglass Mat1200°C2m局部隔热防护
3防锈剂CRC 3-36200mL修复后防护
4)人力人员人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工主导故障分析
2安全监督1高级安全员全程监护受限空间作业
修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头;
2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。
验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_6daa944c-849a-4f46-8a4a-342424b06d3b.pdf#page=48\"}]", + "embedding": [ + 0.022759748622775078, + -0.007732718251645565, + -0.04607916623353958, + 5.082903953734785e-05, + -0.021024784073233604, + 0.014056943356990814, + 0.05369062349200249, + 0.001228933222591877, + -0.06678680330514908, + -0.0202972199767828, + 0.000565787311643362, + 0.04178839176893234, + 0.00543808750808239, + 0.03160247206687927, + -0.010185920633375645, + -0.02932649664580822, + 0.010381803847849369, + -0.022181427106261253, + 0.02826313115656376, + -0.02878548577427864, + -0.025371523573994637, + 0.04190032556653023, + -0.013525260612368584, + -0.024457402527332306, + -0.006202964577823877, + 0.022330671548843384, + 0.013674505054950714, + 0.024140259250998497, + 0.05036993697285652, + -0.003565538674592972, + -0.021174028515815735, + -0.019886797294020653, + 0.014178204350173473, + -0.027311699464917183, + 0.005419432185590267, + -0.057832151651382446, + 0.013926355168223381, + -0.001911026076413691, + -0.05630239471793175, + 0.05421297624707222, + -0.03117339499294758, + 0.009868776425719261, + -0.0004713436937890947, + 0.007191707845777273, + 0.013040216639637947, + -0.0420868806540966, + -0.014224843122065067, + -0.020334530621767044, + 0.023468660190701485, + -0.0002493720094207674, + -0.00463356776162982, + -0.031509194523096085, + 0.025315556675195694, + -0.02725573256611824, + 0.005993089638650417, + 0.018487632274627686, + 0.04160183668136597, + -0.002418223302811384, + -0.022685127332806587, + -0.0032600541599094868, + -0.021715039387345314, + 0.02572597935795784, + 0.0210434403270483, + -0.017517544329166412, + 0.03611711040139198, + 0.08872570842504501, + -0.02158445119857788, + 0.01118399202823639, + -0.007000488694757223, + -0.02427084743976593, + -0.026285644620656967, + 0.017480233684182167, + -0.016491491347551346, + -0.015866531059145927, + -0.03481122478842735, + 0.029979439452290535, + 0.014196859672665596, + -0.022218739613890648, + 0.02770346589386463, + 0.029736917465925217, + 0.0428704135119915, + 0.012807022780179977, + -0.016342246904969215, + 0.0179839339107275, + -0.06327956169843674, + 0.032106172293424606, + -0.04510907828807831, + 0.01905662566423416, + -0.06462276726961136, + -0.008166459389030933, + 0.05324288830161095, + -0.00643149483948946, + 0.0336918905377388, + 0.0176108218729496, + -0.002025291323661804, + -0.01013928186148405, + -0.02442009188234806, + -0.015950480476021767, + 0.02197621762752533, + 0.04954909533262253, + -0.009738188236951828, + 0.025595389306545258, + 0.014579297974705696, + -0.05921265855431557, + 0.06350342929363251, + -0.007243010215461254, + 0.018011916428804398, + 0.04932522773742676, + -0.030035406351089478, + 0.002777342451736331, + 0.008068517781794071, + 0.028393719345331192, + -0.029960785061120987, + -0.01125861331820488, + -0.009430371224880219, + -0.022032182663679123, + -0.012499206699430943, + -0.06089165806770325, + 0.061749812215566635, + -0.01577325165271759, + 0.025073034688830376, + 0.035501476377248764, + 0.01691124029457569, + -0.04033325985074043, + -0.014625937677919865, + 0.009952726773917675, + 0.05775752663612366, + 0.03466197848320007, + 0.0019728224724531174, + 0.055257685482501984, + 0.03417693451046944, + 0.02718111127614975, + -0.02020394057035446, + -0.01076424214988947, + -0.009822137653827667, + -0.048728249967098236, + -0.035184334963560104, + -0.027293043211102486, + -0.001163638778962195, + -0.016724685207009315, + -0.009999365545809269, + 0.0003631998843047768, + -0.018207799643278122, + -0.008698142133653164, + 0.004558945540338755, + -0.07436095178127289, + 0.026005811989307404, + 0.019233854487538338, + 0.0367700532078743, + -0.039400484412908554, + -0.006342880893498659, + 0.020409151911735535, + 0.0027353675104677677, + -0.010353820398449898, + 0.006417503114789724, + -0.048579007387161255, + -0.023020926862955093, + 0.04395243525505066, + -0.014859131537377834, + 0.006790613755583763, + 0.06451082974672318, + 0.09327766299247742, + -0.03639694303274155, + -0.00033230165718123317, + 0.026304300874471664, + 0.013189461082220078, + 0.032889705151319504, + 0.045519497245550156, + 0.01860889419913292, + -0.025595389306545258, + 0.030949527397751808, + -0.016351573169231415, + 0.004155519884079695, + 0.01677132397890091, + 0.03315088152885437, + 0.0019495030865073204, + 0.061525944620370865, + 0.01412223745137453, + 0.034270212054252625, + -0.01746157743036747, + -0.015306863933801651, + 0.03667677566409111, + 0.022181427106261253, + -0.005050985142588615, + 0.014299465343356133, + 0.03553878888487816, + 0.0513027124106884, + -0.007163724396377802, + 0.009999365545809269, + 0.04492252320051193, + -0.01668737269937992, + -0.0026444217655807734, + 0.03557610139250755, + -0.0168459452688694, + 0.03277777135372162, + -0.012266012839972973, + -0.002751691034063697, + -0.007173052057623863, + 0.03742299601435661, + -0.04182570427656174, + -0.0042231460101902485, + -0.016640733927488327, + 0.03869157284498215, + 0.013917027041316032, + -0.03621038794517517, + 0.0019413413247093558, + -0.014234171248972416, + -0.040706370025873184, + 0.036415599286556244, + -0.010465753264725208, + -0.01040978729724884, + -0.020763607695698738, + 0.030296584591269493, + -0.008283056318759918, + -0.030054062604904175, + 0.023916391655802727, + 0.012657778337597847, + -0.025240935385227203, + -0.020166629925370216, + 0.00262343417853117, + -0.04410167783498764, + 0.05910072475671768, + -0.008208434097468853, + 0.029046664014458656, + 0.03766551986336708, + -0.014346104115247726, + 0.04051981493830681, + -0.002098747296258807, + 0.023991014808416367, + -0.04619109630584717, + -0.010018020868301392, + 0.013180133886635303, + 0.019271165132522583, + -0.012433912605047226, + 0.08186047524213791, + 0.014504676684737206, + 0.012116768397390842, + 0.004253461491316557, + 0.012303323484957218, + 0.027610188350081444, + 0.020856885239481926, + -0.009360413067042828, + 0.07536835223436356, + -0.020409151911735535, + 0.014056943356990814, + 0.016976533457636833, + -0.013758455403149128, + 0.009285790845751762, + -0.028822796419262886, + 0.02367386966943741, + 0.0012580824550241232, + -0.013217444531619549, + 0.021099407225847244, + -0.021920250728726387, + 0.03706854209303856, + 0.009122555144131184, + 0.02456933632493019, + -0.01776006631553173, + -0.022461261600255966, + -0.03316953778266907, + 0.0017326325178146362, + 0.06846580654382706, + -0.016491491347551346, + 0.022013528272509575, + -0.020931506529450417, + 0.027442287653684616, + -0.016342246904969215, + -0.008115156553685665, + -0.018133176490664482, + 0.005927795544266701, + -0.05865299329161644, + 0.015204259194433689, + -0.00937906838953495, + 0.010838864371180534, + 0.02802060917019844, + 0.0035725345369428396, + 0.006641369313001633, + -0.02052108570933342, + 0.08312904834747314, + -0.03055776096880436, + 0.026397578418254852, + 0.03177037090063095, + 0.024755891412496567, + -0.026211023330688477, + -0.013618538156151772, + 0.029979439452290535, + -0.08171123266220093, + -0.054399531334638596, + 0.007121749222278595, + 0.003206419525668025, + 0.007742045912891626, + -0.059996191412210464, + 0.0826813206076622, + 0.015325520187616348, + -0.036247700452804565, + 0.04066906124353409, + -0.041228726506233215, + -0.1508859395980835, + 0.039400484412908554, + -0.004726845305413008, + 0.022927649319171906, + 0.005997753702104092, + 0.012200717814266682, + -0.0413406603038311, + 0.0042231460101902485, + -0.003919993527233601, + -0.019084610044956207, + -0.04525832086801529, + -0.05947383493185043, + -0.05078035965561867, + -0.016640733927488327, + 0.0004693032242357731, + -0.0072243548929691315, + -0.03154650330543518, + -0.003964300733059645, + 0.00198914622887969, + -0.055332306772470474, + -0.01630493439733982, + -0.021920250728726387, + -0.008427636697888374, + -0.022032182663679123, + -0.020950162783265114, + -0.03415827825665474, + 0.025091690942645073, + -0.018804777413606644, + -0.034885846078395844, + -0.01943906396627426, + -0.031658437103033066, + 0.02466261386871338, + -0.014476693235337734, + 0.031434573233127594, + -0.003190096002072096, + 0.001012645661830902, + -0.007770029362291098, + -0.013945010490715504, + -0.002705052262172103, + 0.006771957967430353, + 0.02557673491537571, + 0.03413962572813034, + -0.0112959248945117, + 0.03943779692053795, + -0.026696067303419113, + -0.09745649993419647, + 0.008045198395848274, + -0.0344381108880043, + -0.006981832906603813, + 0.04148990288376808, + 0.00353289139457047, + -0.00681393314152956, + 0.025446146726608276, + -0.020726297050714493, + -0.016435524448752403, + 0.020409151911735535, + 0.0505564920604229, + 0.018263766542077065, + -0.041004858911037445, + 0.009141210466623306, + -0.045370254665613174, + -0.032199449837207794, + -0.017191072925925255, + -0.01647283509373665, + -0.022703783586621284, + -0.0020999133121222258, + -0.042161501944065094, + -0.017582839354872704, + 0.014336776919662952, + -0.047832783311605453, + 0.02380445972084999, + -0.005983761977404356, + 0.012676434591412544, + -0.02863624133169651, + -0.009710204787552357, + 0.0021302285604178905, + 0.02358059212565422, + -0.013068200089037418, + -0.002959233708679676, + -0.12066398561000824, + -0.0026770688127726316, + 0.0735401064157486, + 0.015362830832600594, + -0.03783341869711876, + -0.03703123331069946, + 0.029848851263523102, + 0.020185286179184914, + 0.014859131537377834, + 0.012247356586158276, + 0.23013465106487274, + 0.011501135304570198, + -0.004705857951194048, + -0.029158595949411392, + 0.04294503480195999, + -0.0321434810757637, + 0.05092960223555565, + -0.02229336090385914, + 0.04801933839917183, + -0.03585593402385712, + -0.04678807407617569, + 0.0019599967636168003, + 0.019233854487538338, + -0.010857519693672657, + -0.03055776096880436, + 0.00784931518137455, + 0.002091751666739583, + 0.013954337686300278, + 0.10932141542434692, + -0.03910199552774429, + 0.029569018632173538, + 0.018543599173426628, + -0.022797061130404472, + -0.03899006173014641, + -0.07245808839797974, + -0.09394925832748413, + -0.030427172780036926, + 0.038243841379880905, + 0.024793202057480812, + 0.03869157284498215, + -0.006869899574667215, + -0.0012137755984440446, + 0.03561341017484665, + 0.02251722663640976, + -0.039773594588041306, + 0.006496788933873177, + -0.03298298269510269, + -0.016594095155596733, + 0.05059380456805229, + 0.03100549429655075, + 0.023916391655802727, + -0.007028471678495407, + -0.007574146147817373, + 0.05007144808769226, + -0.007140405010432005, + -0.04492252320051193, + -0.0072243548929691315, + 0.024867825210094452, + 0.03462466597557068, + -0.010960125364363194, + -0.01191155705600977, + 0.009197177365422249, + -0.05245935544371605, + 0.021472517400979996, + -0.03316953778266907, + -0.02419622614979744, + 0.011230630800127983, + -0.03691929951310158, + -0.01087617501616478, + 0.0038430397398769855, + 0.06477200984954834, + 0.03320684656500816, + -0.05383986607193947, + -0.0006809269543737173, + -0.013320050202310085, + 0.02249857224524021, + -0.0291026309132576, + 0.007229018956422806, + 0.008576881140470505, + -0.021565794944763184, + -0.002646753564476967, + 0.006072375923395157, + -0.02251722663640976, + -0.005153590813279152, + 0.040706370025873184, + 0.004967035260051489, + 0.007933265529572964, + 0.07857710123062134, + -0.049884893000125885, + -0.005302835255861282, + -0.03958703950047493, + -0.01823578216135502, + -0.04003477096557617, + -0.017116451635956764, + 0.02296495996415615, + -0.00811049249023199, + 0.016127707436680794, + 0.016743339598178864, + -0.01938309706747532, + -0.00984079297631979, + -0.04600454121828079, + 0.001726802671328187, + -0.030912216752767563, + 0.04081830382347107, + -0.03309491276741028, + 0.038467708975076675, + 0.010922813788056374, + -0.01730300672352314, + 7.396627188427374e-05, + -0.03607979789376259, + 0.01868351548910141, + -0.04984758049249649, + -0.0015285876579582691, + -0.0013548580463975668, + 0.01914057694375515, + 0.016724685207009315, + -0.03331878036260605, + -0.003966632764786482, + 0.0002900352410506457, + -0.02634161151945591, + 0.00744822109118104, + 0.01557736936956644, + -0.0011846262495964766, + -0.04563143104314804, + -0.001604375778697431, + 0.027890020981431007, + -0.05313095450401306, + 0.05928727984428406, + 0.0018737149657681584, + -0.01852494291961193, + -0.0536159984767437, + 0.05387717857956886, + -0.0037917369045317173, + 0.018926037475466728, + -0.009850121103227139, + -0.032050203531980515, + 0.007163724396377802, + 0.0202972199767828, + -0.0032507264986634254, + 0.041004858911037445, + -0.010213904082775116, + -0.022032182663679123, + 0.0009391894564032555, + 0.003982956055551767, + 0.07745777070522308, + 0.003229738911613822, + 0.023412693291902542, + 0.02572597935795784, + 0.006650697439908981, + -0.01609039679169655, + -0.03048313967883587, + -0.1018592044711113, + 0.007289648987352848, + 0.008684149943292141, + 0.013711816631257534, + -0.07510717213153839, + -0.022927649319171906, + -0.01022323127835989, + -0.018795449286699295, + 0.02150982804596424, + 0.00911322794854641, + 0.03613576665520668, + -0.029363807290792465, + -0.052795156836509705, + -0.03322550281882286, + -0.005172246135771275, + -0.014000977389514446, + 0.019028643146157265, + 0.015092325396835804, + -0.03391575813293457, + -0.011510463431477547, + -0.012023490853607655, + -0.027050521224737167, + 0.006333553232252598, + 0.03417693451046944, + 0.02886010892689228, + -0.016500817611813545, + 0.05122809112071991, + 0.058914169669151306, + -0.02343134768307209, + 0.015950480476021767, + -0.024998413398861885, + -0.046825386583805084, + 0.059138037264347076, + 0.0001735839032335207, + 0.028151197358965874, + -0.034326180815696716, + 0.012368617579340935, + -0.02067033015191555, + 0.01631426252424717, + -0.01990545354783535, + 0.039698973298072815, + -0.058988794684410095, + -0.03635963052511215, + -0.0028612923342734575, + 0.033412057906389236, + -0.052944399416446686, + -0.014495348557829857, + 0.01945772022008896, + 0.009290454909205437, + -0.03647156432271004, + 0.0949939712882042, + 0.015185602940618992, + 0.018338387832045555, + -0.008922007866203785, + -0.002158211776986718, + 0.035091057419776917, + -0.024774547666311264, + 0.0021407222375273705, + -0.05290709063410759, + -0.04380318894982338, + -0.013301394879817963, + -0.021006129682064056, + 0.03505374491214752, + -0.006021073088049889, + -0.023244792595505714, + -0.051041536033153534, + 0.009472346864640713, + -0.0061096870340406895, + -0.02902800776064396, + 0.002784338081255555, + 0.004055246245115995, + -0.028972040861845016, + -0.015875857323408127, + -0.02175235003232956, + 0.0015052682720124722, + 0.010092643089592457, + 0.008413645438849926, + -0.03652753308415413, + -0.02350597083568573, + 0.01930847577750683, + 0.014103582128882408, + 0.034419458359479904, + 0.01386106014251709, + -0.010549703612923622, + 0.04040788114070892, + 0.0022783069871366024, + -0.009784827008843422, + 0.039997462183237076, + -0.013646521605551243, + 0.012461895123124123, + 0.026901276782155037, + 0.028841452673077583, + -0.052944399416446686, + -0.007033135741949081, + -0.013870388269424438, + -0.009094571694731712, + 0.051340024918317795, + 0.02527824603021145, + 0.02580060064792633, + 0.01404761616140604, + -0.02962498553097248, + 0.008688814006745815, + -0.010848191566765308, + -0.037777453660964966, + 0.02626699022948742, + -0.0520862452685833, + -0.016640733927488327, + 0.0054753986187279224, + 0.0018573914421722293, + 0.03156515955924988, + 0.0321434810757637, + 0.04839245229959488, + -0.005041657481342554, + -0.024867825210094452, + -0.04548218846321106, + -0.02389773726463318, + 0.0004229558981023729, + -0.034195590764284134, + -0.0019203538540750742, + 0.0005022418918088078, + 0.05268322303891182, + -0.02427084743976593, + 0.02619236707687378, + -0.01064298115670681, + -0.02395370416343212, + 0.02387908101081848, + -0.008101165294647217, + -0.02150982804596424, + -0.05574272945523262, + -0.035632066428661346, + -0.00480379955843091, + -0.045817986130714417, + -0.01807721145451069, + -0.034195590764284134, + -0.008129147812724113, + 0.0007508851704187691, + 0.012900300323963165, + 0.02710648812353611, + 0.00026409237761981785, + -0.006459477823227644, + -0.03973628208041191, + -0.02456933632493019, + 0.01776006631553173, + 0.01853427104651928, + 0.034344833344221115, + 0.015288208611309528, + 0.0145513154566288, + -0.007858643308281898, + -0.02619236707687378, + 0.018786121159791946, + -0.01691124029457569, + -0.02466261386871338, + 0.05473533272743225, + -0.03714316338300705, + 0.04186301305890083, + -0.03070700541138649, + 0.058764927089214325, + 0.021192684769630432, + -0.0012137755984440446, + 0.003502576146274805, + 0.03421424701809883, + -0.026602789759635925, + -0.025819256901741028, + -0.013842404820024967, + -0.013198789209127426, + -0.003726442577317357, + 0.006221619900316, + 0.03382248058915138, + 0.03315088152885437, + 0.013180133886635303, + -0.07693541795015335, + -0.023226138204336166, + 0.018935365602374077, + -0.021994872018694878, + 0.008894025348126888, + 0.005923131480813026, + -0.016789978370070457, + -0.0011683027260005474, + 0.02794598788022995, + -0.022013528272509575, + -0.0018888725899159908, + -0.007284985389560461, + -0.049772959202528, + 0.008912680670619011, + 0.0019926440436393023, + 0.014971064403653145, + 0.011799624189734459, + -0.01677132397890091, + -0.028132542967796326, + -0.031975582242012024, + -0.005312162917107344, + -0.0038570312317460775, + -0.008744780905544758, + 0.053168267011642456, + 0.022032182663679123, + -0.02764749899506569, + -0.017442923039197922, + 0.013124166987836361, + 0.033971723169088364, + -0.0164635069668293, + 0.045221008360385895, + 0.0202972199767828, + 0.005386785138398409, + -0.01454198732972145, + -0.009421044029295444, + -0.006739310920238495, + -0.0007747875642962754, + 0.04331814497709274, + 0.007508851587772369, + -0.0007666258024983108, + -0.02794598788022995, + -0.03399037942290306, + -0.019495030865073204, + 0.022927649319171906, + -0.026621444150805473, + -0.033729203045368195, + -0.003950309008359909, + 0.0025814592372626066, + 0.005605987273156643, + 0.002506837248802185, + -0.021379239857196808, + 0.00198914622887969, + 0.042609237134456635, + 0.02604312263429165, + 0.021696383133530617, + 0.022032182663679123, + -0.03389710187911987, + 0.024326814338564873, + -0.008432300761342049, + -0.0035072399768978357, + 0.009775498881936073, + 0.018926037475466728, + 0.048056650906801224, + -0.031192049384117126, + 0.010568358935415745, + -0.04182570427656174, + -0.007877298630774021, + -0.0015927160857245326, + 0.042124193161726, + -0.03951241821050644, + -0.03895275294780731, + -0.02787136472761631, + -0.031341295689344406, + -0.007131077349185944, + -0.005815862212330103, + -0.02824447490274906, + -0.04156452417373657, + 0.017275022342801094, + 0.07003286480903625, + -0.07137606292963028, + 0.024252191185951233, + -0.0405571274459362, + 0.009971382096409798, + -0.15969134867191315, + 0.012116768397390842, + -0.014308793470263481, + -0.006384856067597866, + -0.014411398209631443, + -0.03255390375852585, + -0.008824067190289497, + -0.026696067303419113, + 0.007434229366481304, + -0.024699924513697624, + 0.005932459142059088, + -0.01294693909585476, + 0.045668743550777435, + -0.0202972199767828, + -0.017498889937996864, + 0.054548777639865875, + -0.0028682879637926817, + -0.021957561373710632, + 0.01747090555727482, + -0.020185286179184914, + 0.0029802212957292795, + -0.013002905994653702, + -0.028972040861845016, + -0.018245110288262367, + -0.010857519693672657, + 0.027610188350081444, + 0.03100549429655075, + 0.006366200279444456, + -0.001911026076413691, + -0.041303347796201706, + -0.026155056431889534, + -0.02887876331806183, + 0.04294503480195999, + -0.00121610751375556, + -0.03529626876115799, + 0.01676199585199356, + 0.0176108218729496, + 0.0036168412771075964, + 0.04025863856077194, + -0.02089419588446617, + 0.005484726279973984, + 0.008222426287829876, + -0.0016603423282504082, + 0.053951799869537354, + 0.01622098498046398, + 0.05451146513223648, + -0.00895465537905693, + -0.02052108570933342, + -0.03430752456188202, + 0.0021045771427452564, + 0.01945772022008896, + 0.027293043211102486, + -0.003968964330852032, + 0.003759089857339859, + -0.005997753702104092, + 0.027834054082632065, + -0.04585529863834381, + -0.006221619900316, + -0.005787878762930632, + 0.02703186683356762, + -0.03221810236573219, + -0.024028325453400612, + -0.034456767141819, + -0.037105854600667953, + -0.023020926862955093, + 0.012545845471322536, + -0.010419114492833614, + -0.01072693057358265, + 0.0428704135119915, + -0.02326344884932041, + 0.007989231497049332, + 0.01117466390132904, + 0.022181427106261253, + -0.030128683894872665, + 0.0009823304135352373, + -0.002625766210258007, + 0.04305696859955788, + -0.03184499219059944, + -0.024140259250998497, + -0.02695724368095398, + 0.024308158084750175, + 0.004514638800173998, + 0.031583815813064575, + -0.0026187703479081392, + 0.06365267932415009, + 0.021099407225847244, + -0.022853026166558266, + -0.029886161908507347, + 0.03382248058915138, + -0.002172203501686454, + -0.01683661714196205, + -0.019121920689940453, + 0.000716489041224122, + -0.05078035965561867, + 0.034027691930532455, + -0.0020404488313943148, + -0.05048187077045441, + -0.04040788114070892, + -0.03766551986336708, + -0.035035088658332825, + -0.021547140553593636, + -0.04003477096557617, + 0.002231667982414365, + 0.039773594588041306, + -0.01271374523639679, + 0.013795766048133373, + 0.0012767380103468895, + 0.014150220900774002, + -0.027162455022335052, + -0.011659707874059677, + -0.04570605233311653, + -0.008357678540050983, + -0.01615569181740284, + -0.004325751680880785, + -0.02020394057035446, + 0.004454008303582668, + 0.013805094175040722, + 0.003686799667775631, + 0.0019879802130162716, + -0.0344381108880043, + 0.006193636916577816, + 0.032348692417144775, + -0.02809523232281208, + -0.039549726992845535, + 0.00911789108067751, + 0.0050230021588504314, + 0.06070510298013687, + 0.03576265648007393, + 0.03167709335684776, + 0.03199423849582672, + 0.026229677721858025, + 0.005088296253234148, + -0.022778404876589775, + 0.03163978084921837, + -0.0019121920922771096, + -0.00047367560910061, + -0.054399531334638596, + 0.05036993697285652, + -0.016743339598178864, + -0.04249730333685875, + 0.048579007387161255, + 0.02427084743976593, + 0.023785803467035294, + -0.0413779690861702, + -0.023524625226855278, + -0.004474995657801628, + -0.010381803847849369, + -0.02604312263429165, + -0.006599394604563713, + 0.01654745638370514, + 0.000828422256745398, + 0.013786437921226025, + -0.02350597083568573, + 0.013497277162969112, + 0.01156643033027649, + -0.004209154285490513, + 0.013618538156151772, + -0.042459990829229355, + -0.015959808602929115, + 0.018021244555711746, + 0.042758479714393616, + -0.051713135093450546, + -0.0072056991048157215, + -0.009598270989954472, + 0.009248480200767517, + -0.01554938592016697, + 0.016939222812652588, + 0.023300759494304657, + -0.01335736084729433, + -0.00321574741974473, + -0.005955778528004885, + -0.015502747148275375, + -0.03221810236573219, + 0.001311717089265585, + 0.003239066805690527, + -0.03484853357076645, + 0.027740776538848877, + -0.0757787749171257, + -0.0109134865924716, + -0.04495983198285103, + 0.005545356776565313, + 0.0826813206076622, + -0.0012825678568333387, + -0.002277140971273184, + 0.012760384008288383, + -0.0030291920993477106, + -0.0007858643075451255, + 0.05383986607193947, + -0.00353289139457047, + 0.0018235782627016306, + 0.01746157743036747, + 0.023002270609140396, + -0.03557610139250755, + -0.025054380297660828, + 0.04141528159379959, + -0.034792568534612656, + 0.016640733927488327, + -0.003080494701862335, + -0.010297853499650955, + 0.057085927575826645, + 0.006972505245357752, + -0.004083229694515467, + 0.020633019506931305, + 0.002418223302811384, + 0.0010942635126411915, + -0.004255793057382107, + -0.010922813788056374, + 0.020763607695698738, + -0.0566381961107254, + 0.025912534445524216, + -0.0012149414978921413, + 0.018627548590302467, + 0.01209811307489872, + 0.05137733742594719, + -0.007839987054467201, + 0.01623964123427868, + 0.010204575955867767, + -0.021957561373710632, + -0.02044646255671978, + 0.015735941007733345, + -0.010503064841032028, + -0.019345786422491074, + -0.00746687687933445, + -0.004911068826913834, + 0.060593169182538986, + -0.04943716153502464, + 0.022013528272509575, + -0.00811982061713934, + -0.005983761977404356, + -0.042683858424425125, + 0.04010939598083496, + -0.014402071014046669, + 0.012051473371684551, + 0.06451082974672318, + 0.013161477632820606, + 0.017704099416732788, + 0.01776006631553173, + 0.0063055697828531265, + -0.01496173720806837, + 0.04839245229959488, + 0.0241216029971838, + 0.013758455403149128, + -0.03606114536523819, + 0.055854663252830505 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "修复活塞头部烧蚀熔损", + "编号": "MT018", + "内容": "表 4.20 MT018 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT018030201活塞头修复活塞头部烧蚀熔损故障触发ZJ级
安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。
安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。
序号名称规格/型号数量及单位备注
1等离子堆焊机PLASMAD 50001台自动送粉
2热处理炉Box Furnace 800° C1台控温±10℃
3超声波探伤仪Olympus Epoch 6501台检测内部缺陷
4三维扫描仪FARO Arm Quantum1台修复前后形貌比对
2)备品备件
名称规格/型号消耗数量备注
1本项目为修复类,通常不消耗新活塞(除非报废)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1镍基合金焊粉INCONEL 625300g耐高温抗烧蚀
2渗透探伤剂Magnaflux ZL-27A1套PT检测裂纹
3保温棉Ceramic FiberBlanket2 kg焊后包裹缓冷
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+高级技师总工批准修复方案
2焊接专业1高级焊工(ASMEIX认证)执行堆焊
\n\n
修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理
3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证
2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm);
3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.20 MT018 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT018030201活塞头修复活塞头部烧蚀熔损故障触发ZJ级
安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。
安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。
序号名称规格/型号数量及单位备注
1等离子堆焊机PLASMAD 50001台自动送粉
2热处理炉Box Furnace 800° C1台控温±10℃
3超声波探伤仪Olympus Epoch 6501台检测内部缺陷
4三维扫描仪FARO Arm Quantum1台修复前后形貌比对
2)备品备件
名称规格/型号消耗数量备注
1本项目为修复类,通常不消耗新活塞(除非报废)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1镍基合金焊粉INCONEL 625300g耐高温抗烧蚀
2渗透探伤剂Magnaflux ZL-27A1套PT检测裂纹
3保温棉Ceramic FiberBlanket2 kg焊后包裹缓冷
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+高级技师总工批准修复方案
2焊接专业1高级焊工(ASMEIX认证)执行堆焊
\\n\\n
修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理
3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证
2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm);
3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_ce42d490-31ba-4c97-afad-26cf5192f901.pdf#page=50\"}]", + "embedding": [ + 0.015326030552387238, + 0.04388437047600746, + -0.025571299716830254, + 0.010394156910479069, + -0.02506880834698677, + -0.020099712535738945, + 0.03524893894791603, + 0.02339383214712143, + -0.02125358395278454, + -0.005932206753641367, + 0.019131947308778763, + 0.02838153764605522, + 0.006243938114494085, + 0.025515466928482056, + 0.04790431261062622, + -0.03675641864538193, + 0.01937388814985752, + -0.016135601326823235, + -0.003764043329283595, + -0.03923166170716286, + 0.010850122198462486, + 0.010496515780687332, + -0.02745099551975727, + 0.019671661779284477, + -0.010235964320600033, + 0.004375874996185303, + 0.013660360127687454, + 0.001637754263356328, + 0.05103093385696411, + -0.044703248888254166, + 0.012915926054120064, + 0.0033546045888215303, + -0.05702362582087517, + -0.018285155296325684, + -0.02203523926436901, + -0.05739584565162659, + -0.01974610611796379, + 0.036160871386528015, + -0.036123648285865784, + 0.005248257890343666, + 0.020899977535009384, + -0.008370227180421352, + 0.043251603841781616, + 0.027004335075616837, + 0.008421407081186771, + -0.04529879614710808, + 0.0025752754881978035, + -0.020006658509373665, + 0.004282820504158735, + -0.016284488141536713, + -0.019913602620363235, + -0.026204068213701248, + 0.020416095852851868, + -0.014376876875758171, + 0.03104288876056671, + 0.04034831002354622, + -0.0028846808709204197, + 0.029721518978476524, + -0.05709807202219963, + 0.009807915426790714, + -0.027469607070088387, + 0.03260619938373566, + -0.03582587465643883, + 0.041204407811164856, + 0.017568636685609818, + 0.10154076665639877, + 0.012757733464241028, + 0.010096383281052113, + -0.01405118778347969, + -0.008863414637744427, + -0.05501365661621094, + 0.019504165276885033, + 0.004987706430256367, + -0.016023937612771988, + -0.030521783977746964, + 0.039901651442050934, + 0.07533669471740723, + -0.050212059170007706, + 0.06610571593046188, + 0.01064540259540081, + 0.03262481093406677, + 0.003131274599581957, + -0.01723364181816578, + 0.049839843064546585, + -0.026166846975684166, + 0.04313993826508522, + -0.004555004183202982, + 0.011855107732117176, + -0.02385910227894783, + -0.06085745990276337, + 0.02339383214712143, + 0.002831174759194255, + -0.018648065626621246, + 0.026836836710572243, + -0.0012411107309162617, + 0.0035360604524612427, + -0.029498187825083733, + -0.018666677176952362, + 0.029535410925745964, + -0.027655715122818947, + 0.01643337495625019, + 0.03601198270916939, + 0.05728418007493019, + -0.03392757102847099, + 0.03859889134764671, + -0.02218412607908249, + 0.032848142087459564, + 0.01335328072309494, + 0.013139256276190281, + -0.023449663072824478, + 0.003747758688405156, + 0.0010933871380984783, + -0.04098108038306236, + -0.045410461723804474, + 0.01694517396390438, + -0.020751090720295906, + 0.0064160884357988834, + -0.04693654924631119, + 0.020341653376817703, + -0.029628464952111244, + -0.04496379941701889, + -0.0313778854906559, + -0.018080435693264008, + -0.025794630870223045, + -0.00015208550030365586, + 0.00034400983713567257, + 0.0589219331741333, + 0.009403129108250141, + 0.01409771479666233, + 0.008793624117970467, + 0.009845136664807796, + -0.0017377876210957766, + -0.005071455147117376, + -0.024491870775818825, + -0.007732805795967579, + 0.015614498406648636, + 0.0337042398750782, + 0.016647400334477425, + -0.02002526819705963, + 0.00919375754892826, + 0.0018901638686656952, + 0.07276840507984161, + 0.037054192274808884, + 0.0053692287765443325, + 0.007844471372663975, + -0.07779332995414734, + 0.0005725742666982114, + 0.00653705932199955, + 0.06841346621513367, + -0.009156535379588604, + -0.0046387529000639915, + -0.02268661931157112, + 0.01579130068421364, + 0.002887007314711809, + 0.03772418200969696, + -0.04544768109917641, + -0.028679311275482178, + 0.01713128201663494, + -0.01041276752948761, + -0.021216362714767456, + -0.0033941527362912893, + 0.058065835386514664, + -0.0447404682636261, + 0.01517714373767376, + 0.02166302315890789, + 0.014981729909777641, + 0.048537082970142365, + 0.014544375240802765, + -0.003228981513530016, + 0.00950548890978098, + 0.01137122604995966, + -0.04972817748785019, + 0.02447326108813286, + 0.01620073989033699, + 0.011129285208880901, + 0.023040225729346275, + 0.03744501993060112, + 0.016377542167901993, + 0.009310075081884861, + -0.037928901612758636, + 0.0014667671639472246, + 0.0022460962645709515, + 0.013027590699493885, + 0.007783985696732998, + 0.019690273329615593, + 0.011454974301159382, + -0.0038826873060315847, + -0.0074210744351148605, + 0.020974421873688698, + 0.029163192957639694, + -0.009100702591240406, + -0.025887684896588326, + 0.01228315755724907, + -0.0017668670043349266, + 0.07410838454961777, + -0.037891678512096405, + 0.04809042066335678, + 0.01508408971130848, + -0.0025915601290762424, + 0.028307095170021057, + 0.020993031561374664, + 0.001973912585526705, + 0.01256231963634491, + -0.029107360169291496, + -0.024212708696722984, + 0.0058624157682061195, + 0.041762735694646835, + 0.01592157781124115, + 0.033871736377477646, + -0.013865078799426556, + -0.002628781832754612, + -0.03791029006242752, + 0.0003829762863460928, + -0.046899326145648956, + -0.00966833345592022, + 0.0019378542201593518, + 0.05151481553912163, + 0.018694592639803886, + 0.010682624764740467, + -0.005704223643988371, + -0.05080760642886162, + 0.024994364008307457, + 0.008630778640508652, + -0.029851794242858887, + 0.045968785881996155, + 0.007690931670367718, + -0.008942510932683945, + -0.023691605776548386, + 0.04529879614710808, + 0.005583253223448992, + -0.013939522206783295, + -0.007435032166540623, + 0.005848458036780357, + 0.010254574939608574, + 0.06476573646068573, + 0.028772365301847458, + 0.00968694407492876, + 0.013148561120033264, + 0.005657696630805731, + 0.003931540995836258, + -0.004724828060716391, + -0.040459975600242615, + 0.020155545324087143, + 0.015595887787640095, + -0.02184913121163845, + 0.03586309775710106, + 0.02679961547255516, + 0.04626655951142311, + -0.0033522783778607845, + 0.024342983961105347, + -0.0031219690572470427, + 0.009919580072164536, + -0.008761054836213589, + -0.02021137624979019, + 0.008784318342804909, + 0.00013034860603511333, + 0.005364575888961554, + -0.012190103530883789, + -0.031080109998583794, + -0.03926888108253479, + 0.0056949183344841, + 0.11084619164466858, + 0.015651719644665718, + 0.013157866895198822, + -0.024957142770290375, + 0.027339329943060875, + -0.020229987800121307, + 0.06491462886333466, + -0.0026450662408024073, + -0.002496179426088929, + -0.03949221223592758, + 0.022351624444127083, + -0.04455436021089554, + 0.016610179096460342, + 0.0332389697432518, + 0.026315733790397644, + 0.0005597792915068567, + -0.026278512552380562, + 0.061415787786245346, + 0.01137122604995966, + 0.018406124785542488, + 0.006262549199163914, + -0.014302433468401432, + -0.012311073951423168, + 0.009417086839675903, + -0.012553014792501926, + -0.08456767350435257, + -0.05065871775150299, + 0.01834098808467388, + -0.027004335075616837, + 0.052743133157491684, + -0.02026720903813839, + 0.06707348674535751, + 0.0038012650329619646, + -0.06897179037332535, + 0.05505087599158287, + -0.015567971393465996, + -0.14970563352108002, + -0.05211036279797554, + -0.031861767172813416, + 0.08903428167104721, + -0.012878703884780407, + -0.009752082638442516, + -0.015940187498927116, + -0.002354271709918976, + -0.05910804122686386, + -0.04127885401248932, + -0.023003004491329193, + -0.0542692206799984, + -0.030745115131139755, + 0.004338653292506933, + 0.037426408380270004, + 0.017708217725157738, + -0.021234974265098572, + -0.03433700650930405, + 0.03573282063007355, + -0.03389034792780876, + -0.019411111250519753, + -0.008747097104787827, + 0.038971107453107834, + -0.04332604631781578, + -0.08307880908250809, + -0.009752082638442516, + -0.01513061672449112, + -0.01686142571270466, + -0.05564642325043678, + 0.025329358875751495, + -0.05106815695762634, + -0.028679311275482178, + -0.010515127331018448, + 0.06234632804989815, + -0.009063481353223324, + -0.013651054352521896, + -0.03960387781262398, + -0.027618493884801865, + 0.016070464625954628, + -0.013818551786243916, + 0.06897179037332535, + 0.07005121558904648, + 0.017801271751523018, + 0.05050983279943466, + -0.006806916557252407, + -0.04693654924631119, + 0.01652642898261547, + -0.011929551139473915, + -0.014088409021496773, + 0.017801271751523018, + 0.03398340195417404, + -0.020229987800121307, + -0.012338989414274693, + -0.06766902655363083, + -0.01244134921580553, + -0.011752747930586338, + 0.011017619632184505, + 0.01867598295211792, + -0.03526755049824715, + 0.015391168184578419, + -0.0033127302303910255, + -0.07377338409423828, + -0.014786316081881523, + 0.004568962380290031, + -0.03212231770157814, + 0.01863875985145569, + -0.06443074345588684, + -0.01657295785844326, + 0.017438361421227455, + -0.024733811616897583, + 0.018424736335873604, + -0.03528616204857826, + 0.0023961463011801243, + 0.0046271211467683315, + -0.005276174284517765, + -0.034672003239393234, + -0.030838169157505035, + -0.006104357074946165, + -0.009328685700893402, + -0.13913467526435852, + -0.031824544072151184, + 0.029591241851449013, + -0.00484347203746438, + -0.025943517684936523, + -0.010738457553088665, + -0.00573214003816247, + 0.02750682830810547, + 0.054604217410087585, + 0.04820208624005318, + 0.22601009905338287, + -0.004206050653010607, + 0.04656433314085007, + 0.0017505825962871313, + 0.01129678264260292, + -0.03573282063007355, + -0.00188551121391356, + 0.016275184229016304, + 0.009110008366405964, + -0.013129950501024723, + -0.03122899681329727, + 0.004094385541975498, + 0.008872720412909985, + -0.007639751769602299, + -0.021402470767498016, + -0.013176477514207363, + -0.008416754193603992, + 0.03132205083966255, + 0.05687474086880684, + -0.044517140835523605, + 0.008649390190839767, + -0.025087418034672737, + -0.0012922905152663589, + 0.025236304849386215, + 0.00870987493544817, + -0.06439352035522461, + -0.01120372861623764, + 0.07485281676054001, + -0.03178732097148895, + 0.026464620605111122, + -0.009421739727258682, + 0.017205726355314255, + 0.018945839256048203, + 0.010803595185279846, + -0.07261951267719269, + -0.026650728657841682, + -0.05594419687986374, + -0.010347629897296429, + 0.01746627688407898, + -0.0135673051699996, + 0.017494194209575653, + -0.024268541485071182, + 0.02311466820538044, + 0.033555351197719574, + 0.04094385728240013, + -0.015484222210943699, + 0.0033243619836866856, + -0.005857763346284628, + 0.0541575588285923, + 0.007230313029140234, + -0.003147559007629752, + 0.010803595185279846, + -0.01703822799026966, + -0.002900965278968215, + -0.026576286181807518, + 0.024491870775818825, + -0.002854438265785575, + -0.019504165276885033, + -0.044144924730062485, + -0.004673648159950972, + 0.052557025104761124, + -0.0008467934094369411, + -0.08955538272857666, + 0.011101368814706802, + 0.002524095820263028, + 0.014786316081881523, + -0.034858111292123795, + 0.010356934741139412, + -0.014590902253985405, + 0.01727086305618286, + -0.0050900657661259174, + 0.023375220596790314, + 0.012059827335178852, + 0.009705555625259876, + 0.03297841548919678, + 0.018424736335873604, + -0.021234974265098572, + 0.08568432927131653, + -0.02843737043440342, + 0.017912937328219414, + -0.02629712224006653, + -0.06640349328517914, + -0.04842541739344597, + -0.02918180450797081, + 0.03236425668001175, + 0.013725497759878635, + 0.019597219303250313, + -0.045968785881996155, + -0.0246965903788805, + -0.02624129131436348, + 0.006248591002076864, + 0.004571288824081421, + -0.03245731443166733, + -0.0021925901528447866, + -0.005564642604440451, + -0.030968444421887398, + -0.011492196470499039, + -0.004208377096801996, + -0.02970290742814541, + -0.039343323558568954, + -0.017447667196393013, + -0.04332604631781578, + -0.012571625411510468, + -0.031117331236600876, + -4.88171172037255e-05, + -0.009091397747397423, + -0.03677503019571304, + -0.0008572619990445673, + 0.0017087081214413047, + -0.023989377543330193, + 0.06245799362659454, + 0.014572291634976864, + -0.010738457553088665, + -0.04019942507147789, + 0.03491394594311714, + -0.01031971350312233, + -0.013418418355286121, + 0.03171287849545479, + -0.003603524761274457, + 0.007453643251210451, + -0.031173164024949074, + 0.048760414123535156, + -0.032327037304639816, + 0.04995150491595268, + -0.019131947308778763, + -0.049467623233795166, + -0.023375220596790314, + -0.00013565560220740736, + -0.020974421873688698, + 0.0333506315946579, + -0.02624129131436348, + 0.005271521862596273, + 0.00043968120007775724, + -0.006681293249130249, + 0.0704234316945076, + 0.003210370661690831, + -0.0166194848716259, + -0.012878703884780407, + 0.04313993826508522, + 0.030186789110302925, + 0.017903631553053856, + 0.0028265221044421196, + -0.03094983473420143, + -0.03389034792780876, + -0.01675906591117382, + -0.05895915627479553, + 0.013855773955583572, + -0.001273679663427174, + -0.028828198090195656, + 0.05214758589863777, + 0.009789303876459599, + 0.04820208624005318, + 0.0071651749312877655, + -0.037333354353904724, + -0.03178732097148895, + -0.010440683923661709, + -0.017754744738340378, + -0.004005984403192997, + -0.0427677221596241, + -0.018099045380949974, + -0.008798277005553246, + 0.015707552433013916, + -0.0018843479920178652, + 0.013288143090903759, + 0.005276174284517765, + -0.00844932347536087, + -0.04976539686322212, + 0.045410461723804474, + 0.04533601552248001, + 0.029851794242858887, + -0.010961787775158882, + 0.003643072908744216, + -0.01750349998474121, + 0.06305354088544846, + 0.006257896311581135, + 0.002440346870571375, + 0.039380546659231186, + 0.012729818001389503, + 0.039380546659231186, + 0.04678766429424286, + -0.0021774687338620424, + -0.0009875379037111998, + -0.02754404954612255, + 0.014730483293533325, + 0.024584924802184105, + 0.061601895838975906, + -0.0058903321623802185, + -0.01143636368215084, + 0.021681632846593857, + 0.012878703884780407, + -0.06309076398611069, + 0.07221007347106934, + 0.03338785469532013, + -0.009096050634980202, + 0.0209185890853405, + -0.01536325179040432, + 0.014479236677289009, + 0.02834431640803814, + -0.011306088417768478, + -0.0030009986367076635, + -0.0355653241276741, + 0.006141578778624535, + 0.022239958867430687, + 0.003996678628027439, + -0.015949493274092674, + -0.022909948602318764, + -0.0130741186439991, + 0.0005571621586568654, + -0.016638094559311867, + 0.020955810323357582, + -0.019690273329615593, + -0.011157201603055, + -0.05207314342260361, + 0.028120985254645348, + -0.04384715110063553, + 0.03016817942261696, + 0.0034104371443390846, + 0.057135291397571564, + -0.05858693644404411, + 0.0018040887080132961, + 0.019485553726553917, + 0.009049522690474987, + 0.06666404753923416, + -0.036346979439258575, + 0.03072650358080864, + 0.006974413990974426, + -0.012692595832049847, + -0.06245799362659454, + -0.048872075974941254, + -0.008816887624561787, + 0.013036896474659443, + -0.01071984600275755, + -0.026539064943790436, + -0.025943517684936523, + 0.06900901347398758, + 0.010440683923661709, + 0.01937388814985752, + 0.031545381993055344, + 0.05345034599304199, + 0.02036026306450367, + 0.00748155964538455, + -0.027339329943060875, + 0.03632836788892746, + 0.07667668163776398, + -0.031731490045785904, + 0.012264546006917953, + 0.0015423736767843366, + -0.0047294809482991695, + 0.013371891342103481, + 0.0033197093289345503, + 0.016461292281746864, + -0.00036901814746670425, + 0.028176818042993546, + -0.01041276752948761, + -0.0021891004871577024, + 0.0007025593658909202, + -0.009286811575293541, + 0.003349951934069395, + -0.04920707270503044, + -0.0026566979940980673, + -0.002756731351837516, + 0.05419477820396423, + 0.0022053851280361414, + 0.004464276134967804, + 0.0007816554862074554, + -0.014572291634976864, + 0.00338019453920424, + 0.014041882008314133, + -0.021067475900053978, + -0.030707893893122673, + -0.014702566899359226, + -0.038822222501039505, + -0.02787904441356659, + -0.008481892757117748, + -0.012190103530883789, + 0.001251579262316227, + -0.03379729390144348, + 0.018964450806379318, + 0.04786709323525429, + -0.02960985340178013, + -0.000847956573124975, + -0.045075464993715286, + -0.006355603225529194, + 0.014460626058280468, + 0.01234829518944025, + -0.014013965614140034, + 0.04086941480636597, + 0.0011782990768551826, + -0.0008688938105478883, + 0.0023891672026365995, + 0.028958473354578018, + -0.03376007080078125, + -0.04005053639411926, + 0.01918778009712696, + -0.05620475113391876, + -0.014897980727255344, + -0.030894001945853233, + 0.003775675082579255, + 0.010999009013175964, + -0.007453643251210451, + 0.005085413344204426, + 0.013855773955583572, + -0.024919921532273293, + -0.032327037304639816, + -0.013362586498260498, + -0.0035267549101263285, + -0.020788313820958138, + -0.00966833345592022, + 0.014209379442036152, + 0.02998206950724125, + -0.011222339235246181, + -0.07742111384868622, + 0.01225524116307497, + 0.01036624051630497, + -0.06439352035522461, + -0.0190575048327446, + 0.043958812952041626, + -0.0113898366689682, + -0.007774680387228727, + -0.0028683964628726244, + -0.0355653241276741, + -0.0045875729992985725, + -0.03180593252182007, + -0.016377542167901993, + -0.018917923793196678, + 0.01624726690351963, + 0.028977084904909134, + 0.003754737786948681, + -0.01232968457043171, + -0.006918581202626228, + 0.012087743729352951, + -0.021160529926419258, + 0.0001589191670063883, + -0.00560186430811882, + 0.03952943533658981, + 0.010729151777923107, + 0.004424728453159332, + -0.02605518139898777, + 0.02918180450797081, + -0.03701696917414665, + -0.04548490419983864, + 0.037333354353904724, + 0.036346979439258575, + 0.017066143453121185, + -0.024026600643992424, + 0.015754079446196556, + -0.021644411608576775, + 0.017438361421227455, + 0.0209185890853405, + 0.019783327355980873, + 0.008370227180421352, + 0.01573546975851059, + 0.008998343721032143, + -0.007714195176959038, + 0.014302433468401432, + 0.020695259794592857, + -0.011687610298395157, + 0.006039218977093697, + 0.0008642410975880921, + 0.009212368167936802, + 0.010524432174861431, + 0.012599541805684566, + -0.0154563058167696, + 0.04440547525882721, + -0.00854703038930893, + -0.005006317049264908, + -0.010784984566271305, + 0.014795620925724506, + 0.027674324810504913, + -0.004375874996185303, + -0.06018747016787529, + -0.022426066920161247, + -0.0004690514469984919, + 0.01703822799026966, + -0.019113337621092796, + -0.022723840549588203, + -0.06197411194443703, + 0.01137122604995966, + 0.025236304849386215, + -0.004969095345586538, + -0.019783327355980873, + -0.013948827981948853, + -0.012450654990971088, + -0.008621473796665668, + 0.0023321714252233505, + 0.01568894274532795, + -0.037891678512096405, + -0.017019616439938545, + 0.039343323558568954, + 0.020527761429548264, + -0.037147246301174164, + -0.007942178286612034, + -0.024212708696722984, + 0.021551357582211494, + -0.14635567367076874, + -0.003401131834834814, + -0.005843805149197578, + -0.026818227022886276, + -0.021086087450385094, + 0.006071787793189287, + -0.02073248103260994, + 0.030056513845920563, + 0.0018785321153700352, + 0.013688276521861553, + 0.028325704857707024, + 0.03478366881608963, + 0.0019052851712331176, + -0.00936125498265028, + -0.05371089652180672, + 0.01983916014432907, + 0.022388845682144165, + -0.013129950501024723, + 0.011352615430951118, + 0.007686278782784939, + 0.032382868230342865, + -0.027302108705043793, + -0.023803269490599632, + -0.013781330548226833, + -0.014386182650923729, + -0.028586257249116898, + 0.021700244396924973, + -0.01409771479666233, + -0.015940187498927116, + 0.023542718961834908, + -0.03262481093406677, + -0.030242621898651123, + 0.01961583085358143, + 0.039157215505838394, + 0.02717183344066143, + -0.008300436660647392, + -0.016210045665502548, + 0.02385910227894783, + 0.055497538298368454, + -0.0010765210026875138, + 0.06335131078958511, + -0.018871396780014038, + -0.029758740216493607, + 0.028586257249116898, + -0.0005237208097241819, + 0.02209107205271721, + -0.026501841843128204, + -0.01983916014432907, + 0.00873313844203949, + -0.029665686190128326, + 0.02927485853433609, + 0.05505087599158287, + 0.018508484587073326, + 0.010226658545434475, + 0.015940187498927116, + 0.029107360169291496, + -0.034895334392786026, + -0.02156996913254261, + -0.012413432821631432, + 0.03496977686882019, + 0.009282158687710762, + -0.03664475306868553, + -0.029442355036735535, + -0.05006317049264908, + -0.0037221689708530903, + -0.019913602620363235, + -0.034765057265758514, + -0.012646068818867207, + 0.015977410599589348, + -0.03161982446908951, + 0.017121976241469383, + -0.047829870134592056, + -0.0513659305870533, + -0.04823930934071541, + 0.04291660711169243, + 0.01624726690351963, + 0.00929146446287632, + -0.0027427731547504663, + -0.03941776975989342, + 0.009584585204720497, + -0.00574144534766674, + 0.005127287469804287, + -0.012627458199858665, + 0.01568894274532795, + 0.055162541568279266, + 0.006858095992356539, + -0.04399603605270386, + -0.00754204485565424, + 0.03908277302980423, + 0.03273647651076317, + -0.04756931960582733, + -0.023003004491329193, + -0.006281159818172455, + -0.0380033440887928, + -0.04879763349890709, + 0.003591893007978797, + 0.020658036693930626, + -0.011380530893802643, + 0.027488216757774353, + -0.013799941167235374, + 0.011855107732117176, + -0.036030594259500504, + -0.00880292896181345, + 0.011520112864673138, + -0.006090398877859116, + 0.013046202249825, + -0.012311073951423168, + -0.00015790137695148587, + 0.011938856914639473, + 0.027302108705043793, + -0.041948843747377396, + 0.005592558532953262, + 0.004447991959750652, + -0.002624128945171833, + -0.028493203222751617, + 0.034057844430208206, + 0.0010422072373330593, + -0.020993031561374664, + -0.011119979433715343, + -0.05527420714497566, + -0.029851794242858887, + -0.015484222210943699, + -0.04786709323525429, + -0.027302108705043793, + -0.020769702270627022, + 0.005806583445519209, + 0.026111014187335968, + 0.021979406476020813, + 0.020602203905582428, + 0.039008330553770065, + 0.02726488746702671, + -0.057135291397571564, + -0.03528616204857826, + 0.06294187903404236, + 0.03236425668001175, + 0.01027318648993969, + -0.020043879747390747, + 0.058661382645368576, + -0.0064160884357988834, + -0.03320174664258957, + 0.030465953052043915, + 0.03188037499785423, + -0.01592157781124115, + 0.0003777419915422797, + -0.01825723797082901, + -0.014907286502420902, + -0.05263146758079529, + -0.047420430928468704, + -0.008081759326159954, + 0.003563976613804698, + -0.01321369968354702, + -0.002040213905274868, + 0.00022434791026171297, + 0.021681632846593857, + -0.03402062505483627, + 0.004036226775497198, + 0.06234632804989815, + -0.026874059811234474, + -0.032140929251909256, + 0.03859889134764671, + 0.026818227022886276, + -0.05512532219290733, + -0.03150815889239311, + 0.018796952441334724, + -0.008118980564177036, + -0.008481892757117748, + -0.017345307394862175, + -0.004889999516308308, + -0.029907627031207085, + 0.0047294809482991695, + -0.029330691322684288, + 0.01886209100484848, + -0.008937858045101166, + -0.02624129131436348, + 0.006388172507286072, + -0.04127885401248932, + 9.872471127891913e-05, + -0.001487704343162477, + 0.03871055692434311, + -0.015326030552387238, + 0.02717183344066143, + 0.061378564685583115, + 0.038822222501039505, + 0.013437029905617237, + 0.010757068172097206, + -0.0017342980718240142, + 0.0020448665600270033, + -0.010310407727956772, + -0.031061498448252678, + 0.004445665515959263, + 0.0052622160874307156, + -0.005876373965293169, + -0.0485743023455143, + -0.015744773671030998, + 0.03189898654818535, + 0.0021542052272707224, + 0.025980738922953606, + 0.022239958867430687, + -0.018601538613438606, + 0.04235828295350075, + 0.02815820835530758, + 0.00864008441567421, + -0.03604920580983162, + -0.0013015959411859512, + -0.06178800389170647, + -0.015586582012474537, + -0.008128286339342594, + 0.052780356258153915, + -0.04715988039970398, + 0.041762735694646835, + 0.002057661535218358, + -0.01955999806523323, + -0.014367572031915188, + 0.0013655707007274032, + 0.011268866248428822, + -0.005932206753641367, + -0.021737465634942055, + 0.01527019776403904, + -0.0051133292727172375, + 0.0015691268490627408, + -0.014907286502420902, + -0.027804601937532425, + -0.007756069302558899, + -0.0066440715454518795, + 0.05575808882713318, + -0.04514990746974945, + 0.046117670834064484, + -0.03688669204711914, + -0.027060167863965034, + -0.033499520272016525, + -0.007788638584315777, + -0.014832843095064163, + 0.014442015439271927, + 0.021309416741132736, + 0.008719180710613728, + -0.05114259943366051, + -0.006853443570435047, + -0.013418418355286121, + -0.009696249850094318, + 0.036905303597450256, + 0.017801271751523018, + 0.007234965916723013, + 0.045410461723804474, + 0.10704957693815231 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "排除喷油器雾化不良故障", + "编号": "MT019", + "内容": "表 4.21 MT019 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0190502喷油器组件排除喷油器雾化不良故障1UZJ级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2喷油雾化测试台Bosch EPS815或等效1台可调压、可视窗
3扭矩扳手40-200 N·m1把用于压紧螺母回装
名称规格/型号消耗数量备注
1喷油嘴偶件MAN5L35MC-INJ-NOZZLE-KIT1套原厂配对
2铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200mL冲洗油道
2无绒布Kimwipe EX-L5张
3高温润滑脂Molycote G-1052少量
4)人力人员
序号专业人数技能等级
1机械专业2高级+中级
修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m;
2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。
验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。
页码:1/1版本号:1
\n\n\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.21 MT019 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0190502喷油器组件排除喷油器雾化不良故障1UZJ级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2喷油雾化测试台Bosch EPS815或等效1台可调压、可视窗
3扭矩扳手40-200 N·m1把用于压紧螺母回装
名称规格/型号消耗数量备注
1喷油嘴偶件MAN5L35MC-INJ-NOZZLE-KIT1套原厂配对
2铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200mL冲洗油道
2无绒布Kimwipe EX-L5张
3高温润滑脂Molycote G-1052少量
4)人力人员
序号专业人数技能等级
1机械专业2高级+中级
修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m;
2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。
验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3f9bb979-7000-46a7-bdb1-01ff0824fd89.pdf#page=51\"}]", + "embedding": [ + -0.06098920479416847, + -0.015716589987277985, + -0.022912360727787018, + -0.037175074219703674, + -0.02429262176156044, + -0.037303898483514786, + -0.01004831213504076, + 0.006211182102560997, + -0.007112953346222639, + 0.013360942713916302, + -0.002472970634698868, + -0.019213255494832993, + 0.029997708275914192, + 0.019802168011665344, + 0.010066716000437737, + 0.002294686622917652, + 0.026077762246131897, + 0.008898093365132809, + 0.006243388168513775, + -0.012449969537556171, + 0.0066022565588355064, + 0.020685536786913872, + -0.007697264663875103, + 0.027899708598852158, + 0.00200253096409142, + 0.029482409358024597, + -0.0328870564699173, + -0.001311249565333128, + 0.03191167116165161, + -0.002479871967807412, + -0.002693812595680356, + -0.03805844113230705, + -0.07059583067893982, + -0.01636071316897869, + -0.06319762766361237, + -0.05134576931595802, + -0.011290548369288445, + 0.011272144503891468, + -0.016093863174319267, + 0.048769280314445496, + 0.01601104624569416, + -0.006077756639569998, + 0.03699103742837906, + -0.04748103395104408, + -0.004014263860881329, + -0.018688756972551346, + -0.015688985586166382, + -0.036291707307100296, + 0.015228898264467716, + -0.00964343547821045, + -0.022047394886612892, + -0.033549584448337555, + 0.029114339500665665, + -0.006726480089128017, + 0.011934670619666576, + 0.017786985263228416, + 0.02758684940636158, + 0.02881988324224949, + -0.006680471356958151, + -0.023188412189483643, + -0.04634001851081848, + 0.00981826800853014, + 0.007499427068978548, + 0.01692201942205429, + -0.017437318339943886, + 0.08016565442085266, + -0.013222916051745415, + -0.021311255171895027, + -0.0005124225281178951, + -0.03419370576739311, + -0.014455950818955898, + 0.017759378999471664, + 0.049579035490751266, + 0.017216475680470467, + -0.055468153208494186, + 0.004244307521730661, + 0.08149071037769318, + -0.019470905885100365, + -0.00684150168672204, + -0.0022636307403445244, + 0.012413161806762218, + -0.02848862111568451, + -0.0005702209891751409, + 0.038426510989665985, + -0.010112724266946316, + 0.04726019129157066, + 0.017538538202643394, + -0.027660463005304337, + -0.0023579488042742014, + -0.016885213553905487, + -0.007982518523931503, + -0.018237870186567307, + -0.018559930846095085, + 0.02894870936870575, + -0.022912360727787018, + -0.027218779549002647, + -0.013112494722008705, + -0.022047394886612892, + 0.03756154701113701, + -0.01850472204387188, + 0.039457108825445175, + 0.02464228868484497, + 0.0329422689974308, + -0.02723718248307705, + 0.011281346902251244, + -0.034911442548036575, + 0.05826548859477043, + 0.007250979542732239, + 0.0006855304236523807, + -0.008074536919593811, + -0.006671269424259663, + 0.01939729042351246, + 0.006611458025872707, + 0.006487234495580196, + -0.011658618226647377, + -0.009671039879322052, + 0.0004385209467727691, + -0.030973093584179878, + 0.036622967571020126, + 0.00302277528680861, + 0.0249919556081295, + -0.04335865005850792, + -0.00672187888994813, + -0.029022322967648506, + 0.008313781581819057, + 0.03336554765701294, + 0.04475731775164604, + -0.03561077639460564, + 0.024936744943261147, + 0.04269612580537796, + 0.013011275790631771, + 0.018799176439642906, + -0.029776865616440773, + 0.021145623177289963, + -0.02180814929306507, + 0.007269383408129215, + -0.013692205771803856, + -0.004216702189296484, + 0.020814361050724983, + -0.023666903376579285, + -0.006376813631504774, + 0.022065799683332443, + 0.02464228868484497, + -0.01521049439907074, + -0.00207039387896657, + -0.011943873018026352, + 0.02351967617869377, + -0.005401427857577801, + 0.02418220229446888, + -0.008180356584489346, + -0.01919485256075859, + -0.016415923833847046, + 0.07192088663578033, + 0.0005104096489958465, + 0.03268462046980858, + 0.005576261319220066, + -0.027531638741493225, + 0.03664137423038483, + 0.009735452942550182, + 0.01249597780406475, + -0.019783765077590942, + 0.06610538065433502, + -0.005447436589747667, + 0.013572582975029945, + -0.0014688294613733888, + -0.014281117357313633, + 0.0351874940097332, + 0.013775020837783813, + -0.02747642807662487, + -0.03463539108633995, + 0.05587303265929222, + -0.0011927769519388676, + -0.006036348640918732, + -0.002624799497425556, + 0.0023717512376606464, + 0.028322989121079445, + 0.08605477213859558, + 0.026850709691643715, + 0.0035564766731113195, + 0.007904304191470146, + -0.013848635368049145, + 0.03816886246204376, + -0.007168164011090994, + -0.04295377433300018, + 0.013075687922537327, + -0.03327353298664093, + 0.06235106289386749, + -0.013406950980424881, + -0.0024476656690239906, + 0.01544973999261856, + -0.023464465513825417, + -0.010784451849758625, + 0.0036830008029937744, + 0.02305958792567253, + 0.03454337269067764, + -0.028875093907117844, + 0.05480562895536423, + 0.03702784702181816, + -0.018247071653604507, + -0.03257419914007187, + 0.0029744659550487995, + -0.012477573938667774, + 0.05020475387573242, + -0.021992184221744537, + -0.02429262176156044, + 0.010710838250815868, + 0.05395906791090965, + -0.0522291399538517, + 0.011456180363893509, + -0.020372677594423294, + 0.010931679978966713, + -0.005732690915465355, + -0.03846332058310509, + -0.014428345486521721, + -0.03031056746840477, + -0.0005129976198077202, + 0.012551188468933105, + -0.027660463005304337, + -0.025047166272997856, + 0.022783534601330757, + -0.021955378353595734, + 0.04530942067503929, + 0.021660922095179558, + -0.0040533714927732944, + 0.08230046182870865, + -0.01277203019708395, + 0.03169083222746849, + 0.03156200423836708, + -0.026850709691643715, + -0.03835289925336838, + -0.022673115134239197, + 0.008585233241319656, + -0.035942040383815765, + 0.005774098914116621, + 0.01544973999261856, + 0.018992414698004723, + 0.04939499869942665, + 0.02622498944401741, + -0.01658155582845211, + 0.058081451803445816, + -0.029040725901722908, + -0.034561775624752045, + 0.017391309142112732, + 0.03021855093538761, + -0.008184957318007946, + 0.017566142603754997, + 0.06901313364505768, + 0.004681390710175037, + -0.011953074485063553, + 0.0035058672074228525, + 0.008451808243989944, + -0.03283184766769409, + -0.0244214478880167, + -0.029887286946177483, + 0.010462391190230846, + -0.01950771175324917, + 0.021605711430311203, + -0.007582242600619793, + -0.02451346442103386, + -0.047407422214746475, + -0.02420060522854328, + 0.04869566485285759, + 0.026169780641794205, + -0.0028893498238176107, + -0.017980221658945084, + 0.0159098282456398, + -0.014170696958899498, + 0.04689212143421173, + -0.019047625362873077, + 0.0033632400445640087, + -0.03794801980257034, + -0.04821717366576195, + -0.0035403736401349306, + 0.047297000885009766, + 0.019838975742459297, + 0.0058523137122392654, + 0.014207503758370876, + -0.006675870157778263, + 0.06570050120353699, + -0.016268696635961533, + 0.025268008932471275, + -0.002677709562703967, + 0.014501959085464478, + 0.0060915593057870865, + -0.00010747357737272978, + 0.011364162899553776, + -0.0715160071849823, + -0.005065564066171646, + -0.0064550284296274185, + -0.02589372731745243, + 0.022985974326729774, + -0.05083047226071358, + 0.09275364875793457, + 0.0013768119970336556, + -0.033678408712148666, + 0.03086267225444317, + -0.014630784280598164, + -0.13935132324695587, + 0.05576261132955551, + -0.019434098154306412, + 0.017280887812376022, + 0.0029146545566618443, + 0.011732232756912708, + -0.03680700436234474, + 0.015808608382940292, + -0.010738443583250046, + -0.07817807793617249, + -0.015468143858015537, + -0.07030137628316879, + -0.020023010671138763, + -0.010977689176797867, + -0.03897861763834953, + 0.041702333837747574, + -0.004619278945028782, + 0.010692434385418892, + 0.042180825024843216, + -0.039125844836235046, + -0.050020717084407806, + 0.03476421535015106, + 0.049100544303655624, + -0.03373361751437187, + -0.03665977716445923, + -0.022765131667256355, + 0.027053147554397583, + -0.02363009564578533, + -0.02942720055580139, + 0.007435014937072992, + -0.022636307403445244, + -0.03601565212011337, + -0.009799865074455738, + 0.05870717018842697, + -0.018228668719530106, + -0.01300207432359457, + 0.038647353649139404, + -0.04291696473956108, + -0.021072009578347206, + -0.002057741628959775, + 0.018127448856830597, + 0.052965279668569565, + 0.03780079260468483, + -0.003579481039196253, + -0.026482639834284782, + -0.08244768530130386, + -0.003098689718171954, + -0.008493215776979923, + 0.051235347986221313, + 0.01567058265209198, + 0.003620889037847519, + 0.01883598417043686, + 0.019949395209550858, + -0.05156661197543144, + -0.025912130251526833, + 0.018477115780115128, + -0.019378887489438057, + 0.004495055414736271, + -0.0521923303604126, + 0.028893498703837395, + -0.07795723527669907, + -0.06518520414829254, + 0.010940882377326488, + 0.006280194967985153, + -0.03202209249138832, + 0.005401427857577801, + -0.03982517868280411, + -0.05020475387573242, + 0.023593289777636528, + 0.013112494722008705, + 0.013462161645293236, + -0.015339318662881851, + 0.00477110780775547, + 0.02033586986362934, + 0.03165402263402939, + 0.012321144342422485, + -0.014124687761068344, + -0.007945711724460125, + -0.031377971172332764, + -0.12617440521717072, + 0.02620658650994301, + 0.04939499869942665, + 0.02418220229446888, + -0.07192088663578033, + -0.007030137814581394, + -0.0726570263504982, + -0.018118247389793396, + 0.042180825024843216, + 0.008948702365159988, + 0.2145112156867981, + 0.019691746681928635, + 0.0062157828360795975, + -0.031617216765880585, + 0.0002403957478236407, + -0.03953072056174278, + -0.014557169750332832, + 0.0017184269381687045, + 0.019783765077590942, + -0.01746492274105549, + -0.024844728410243988, + 0.023225219920277596, + 0.025360025465488434, + -0.008571431040763855, + 0.03268462046980858, + 0.010609619319438934, + -0.020483097061514854, + 0.0032666216138750315, + 0.1157212182879448, + -0.007678861264139414, + -0.011538995429873466, + 0.006146769504994154, + 0.007117554545402527, + 0.010195540264248848, + -0.027053147554397583, + -0.06422822177410126, + -0.045419842004776, + 0.01032436452805996, + 0.006247988902032375, + -0.007619049865752459, + -0.04461009055376053, + 0.04667128250002861, + 0.031157128512859344, + -0.016066256910562515, + -0.03658616170287132, + -0.014409941621124744, + -0.042622510343790054, + -0.005548655986785889, + 0.0884840339422226, + 0.01919485256075859, + -0.03443295136094093, + -0.025820113718509674, + -0.041150230914354324, + 0.02147688716650009, + 0.017234880477190018, + -0.026519445702433586, + -0.0035702793393284082, + 0.03930988162755966, + 0.04155510663986206, + -0.008847483433783054, + -0.015054064802825451, + 0.0016471134731546044, + -0.01272602193057537, + -0.015541757456958294, + -0.047186579555273056, + -0.04575110599398613, + -0.005875317845493555, + -0.051382578909397125, + -0.025286411866545677, + 0.03345756605267525, + 0.001020819297991693, + -0.017428116872906685, + -0.047297000885009766, + -0.008028527721762657, + 0.03677019849419594, + 0.02578330598771572, + -0.06540604680776596, + -0.012864047661423683, + 0.0164619330316782, + -0.005870717111974955, + -0.012569591403007507, + 0.030513005331158638, + -0.013158503919839859, + 0.012284337542951107, + 0.015247301198542118, + -0.025746500119566917, + -0.01027835626155138, + 0.08016565442085266, + -0.009123535826802254, + 0.013342538848519325, + -0.07063264399766922, + -0.013406950980424881, + -0.052265945822000504, + -0.027954919263720512, + 0.024715902283787727, + 0.017308494076132774, + 0.00085461261915043, + -0.018210265785455704, + -0.022452272474765778, + -0.0029054528567939997, + -0.0020128830801695585, + 0.013756617903709412, + 0.010471592657268047, + 0.021200833842158318, + -0.05197148770093918, + 0.009072926826775074, + -0.04858524352312088, + -0.01747412420809269, + 0.02644583210349083, + 0.03463539108633995, + 0.0521923303604126, + -0.04593513906002045, + 0.009095930494368076, + 0.023538079112768173, + 0.028672656044363976, + 2.580803629825823e-05, + 0.020924782380461693, + 0.00977225974202156, + 0.00400046119466424, + -0.014566372148692608, + 0.01804463379085064, + 0.029666444286704063, + -0.004451347049325705, + -0.018329888582229614, + 0.006547045893967152, + 0.027071550488471985, + 0.002783529693260789, + 0.02848862111568451, + -0.02646423503756523, + 0.026869112625718117, + -0.036034055054187775, + 0.025838516652584076, + -0.010655627585947514, + -0.009440996684134007, + -0.035021863877773285, + -0.017161265015602112, + 0.018081441521644592, + 0.011088109575212002, + -0.05462159216403961, + 0.0363653190433979, + -0.025580868124961853, + -0.00555785745382309, + 0.00800092238932848, + 0.002020934596657753, + 0.06076836213469505, + 0.0007919257041066885, + 0.07055902481079102, + 0.03791121393442154, + 0.08016565442085266, + -0.0050931693986058235, + 0.017971020191907883, + -0.018449511379003525, + -0.011198530904948711, + -0.04004602134227753, + 0.012385556474328041, + -0.04155510663986206, + 0.0329422689974308, + -0.021863359957933426, + -0.03993560001254082, + 0.06367611885070801, + 0.0058523137122392654, + 0.05072005093097687, + 0.035923637449741364, + -0.040929388254880905, + -0.004223603755235672, + -0.07582242786884308, + -0.018219467252492905, + -0.05281805247068405, + 0.0036346917040646076, + -0.01784219592809677, + -0.016627563163638115, + 0.019213255494832993, + 0.049689456820487976, + 0.019802168011665344, + 0.02543363906443119, + 0.03872096911072731, + 0.013452960178256035, + -0.002180814975872636, + 0.012578793801367283, + -0.012118706479668617, + 0.007370602339506149, + -0.02328043058514595, + -0.0351874940097332, + 0.025249604135751724, + 0.025378428399562836, + 0.0070899492129683495, + -0.023225219920277596, + -0.006772488821297884, + 0.004386934917420149, + 0.061578117311000824, + 0.025378428399562836, + 0.035261109471321106, + -0.037653565406799316, + -0.003841730998829007, + 0.008299979381263256, + 0.013075687922537327, + -0.008760066702961922, + -0.005939730443060398, + -0.008562229573726654, + 0.0004572120087686926, + -0.034782618284225464, + 0.07582242786884308, + 0.002309639472514391, + 0.015624573454260826, + 0.003179204883053899, + 0.027329200878739357, + 0.04291696473956108, + 0.05855994299054146, + 0.03791121393442154, + 0.037984829396009445, + 0.030016111209988594, + -0.07022776454687119, + 0.01897400990128517, + 0.01770416833460331, + -0.0035035666078329086, + 0.0022130210418254137, + -0.03325512632727623, + 0.01549574825912714, + 0.002985968254506588, + -0.02701634168624878, + 0.007867497391998768, + 0.016894415020942688, + -0.04339545592665672, + 0.005806304980069399, + 0.0003720958193298429, + 0.007674260530620813, + 0.006321602966636419, + 0.03772718086838722, + 0.04906373471021652, + -0.03364160284399986, + 0.0397147573530674, + 0.021164027974009514, + 0.04177594929933548, + -0.016057055443525314, + 0.023814132437109947, + -0.037763986736536026, + -0.04803314059972763, + -0.02385093830525875, + 0.029316779226064682, + -0.0034667595755308867, + 0.0071313572116196156, + -0.008539224974811077, + -0.018808379769325256, + -0.0064642298966646194, + 0.04118703678250313, + -0.001781689003109932, + 0.0019381188321858644, + 0.0204278863966465, + -0.0009943642653524876, + -4.00060489482712e-05, + -0.013811828568577766, + 0.005323213059455156, + 0.05598345398902893, + 0.05701404809951782, + -0.025525657460093498, + 0.01612146757543087, + -0.04987348988652229, + -0.0255440603941679, + 0.02747642807662487, + 0.0510881207883358, + -0.018762370571494102, + 0.040156442672014236, + 0.042732931673526764, + -0.011538995429873466, + -0.0249735526740551, + -0.027954919263720512, + -0.04254889488220215, + -0.027660463005304337, + -0.008456408977508545, + 0.017317695543169975, + -0.015983441844582558, + 0.05664597824215889, + -0.01027835626155138, + 0.017658160999417305, + -0.020722342655062675, + -0.024899939075112343, + 0.020133432000875473, + -0.011124917306005955, + 0.016388317570090294, + -0.047407422214746475, + -0.0453830361366272, + -0.04214401915669441, + 0.004936739336699247, + 0.0016655168728902936, + -0.004331724252551794, + -0.012063495814800262, + -0.04159191623330116, + 0.034340932965278625, + 0.05605706572532654, + 0.017796186730265617, + 0.009362781420350075, + -0.041371073573827744, + -0.03654935583472252, + 0.0034805622417479753, + 0.05344377085566521, + -0.024347832426428795, + 0.00925696175545454, + -0.013112494722008705, + 0.0026294002309441566, + 0.008079137653112411, + -0.005070164799690247, + -0.022709921002388, + -0.030255356803536415, + 0.015753397718071938, + -0.02712676115334034, + -0.0035219702403992414, + -0.05027836561203003, + 0.012302741408348083, + -0.0024292622692883015, + 0.011437776498496532, + 0.0007505178218707442, + 0.02031746692955494, + -0.04265931621193886, + -0.04383714124560356, + -0.030108129605650902, + 0.005856914445757866, + 0.015836212784051895, + -0.027421217411756516, + 0.021053606644272804, + 0.030163340270519257, + -0.003515068907290697, + -0.029500814154744148, + 0.027181971818208694, + 0.043653108179569244, + 0.009284567087888718, + 0.024826323613524437, + 0.04096619412302971, + 0.006606857292354107, + 0.025028763338923454, + -0.00025189793086610734, + 0.0075776418671011925, + -0.010637223720550537, + -0.02451346442103386, + 0.008686453104019165, + -0.025488849729299545, + -0.007697264663875103, + 0.008327584713697433, + -0.002726018661633134, + -0.022525886073708534, + -0.02532321959733963, + 0.005369221791625023, + -5.955977030680515e-05, + -0.04645043984055519, + -0.02088797464966774, + 0.027568446472287178, + -0.025912130251526833, + -0.006335405632853508, + -0.061688538640737534, + 0.02145848236978054, + -0.05278124287724495, + 0.022415464743971825, + -0.014630784280598164, + 0.04302738606929779, + -0.01678399369120598, + 0.0008241318282671273, + -0.011769039556384087, + -0.020409483462572098, + -0.004495055414736271, + -0.002383253537118435, + 0.01783299259841442, + -0.05458478629589081, + -0.03099149651825428, + -0.025065569207072258, + -0.02964804135262966, + 0.036034055054187775, + 0.0431378073990345, + -0.03805844113230705, + 0.0010242698481306434, + -0.025488849729299545, + 0.00047389016253873706, + -0.02315160632133484, + 0.007177365943789482, + -0.06150450184941292, + 0.035942040383815765, + -0.008944101631641388, + 0.026777096092700958, + 0.03780079260468483, + 0.04663447290658951, + 0.0783253014087677, + -0.03450656682252884, + -0.02861744537949562, + -0.011299749836325645, + -0.021421676501631737, + 0.01544973999261856, + -0.026501042768359184, + 0.03619968891143799, + -0.03358639031648636, + -0.005106971599161625, + 0.017547739669680595, + 0.008203361183404922, + -0.027844497933983803, + 0.006229585502296686, + -0.020832763984799385, + 0.0020105824805796146, + 0.04019324854016304, + -0.017216475680470467, + -0.044683702290058136, + -0.012275136075913906, + 0.05528412014245987, + 0.05646194517612457, + -0.03846332058310509, + -0.018679553642868996, + -0.03244537487626076, + 0.013572582975029945, + -0.12786753475666046, + 0.016434326767921448, + -0.005226594395935535, + -0.05970096215605736, + -0.012422364205121994, + -0.01187025848776102, + 0.019581325352191925, + 0.012505179271101952, + -0.02521279826760292, + -0.03794801980257034, + 0.020519904792308807, + 0.023022780194878578, + -0.004826318472623825, + -0.020740747451782227, + -0.03191167116165161, + 0.04096619412302971, + 0.0006331955082714558, + 0.0071405586786568165, + 0.05469520762562752, + -0.028580637648701668, + 0.03938349336385727, + -0.010416381992399693, + -0.008217163383960724, + -0.015182889066636562, + -0.003975156228989363, + -0.009597426280379295, + -0.0028893498238176107, + -0.014317924156785011, + -0.017050843685865402, + 0.006478032562881708, + -0.00772026926279068, + -0.001494134310632944, + 0.02813895419239998, + 0.023188412189483643, + 0.03222453221678734, + 0.028985515236854553, + 0.010112724266946316, + 0.036034055054187775, + 0.006432023830711842, + 0.020832763984799385, + 0.026648269966244698, + 0.015468143858015537, + 0.004129285924136639, + 0.014962047338485718, + -0.011428575031459332, + 0.00024068329366855323, + -0.0063814143650233746, + -0.012735223397612572, + -0.05175064876675606, + 0.0015804007416591048, + 0.011207732371985912, + -0.0008114794036373496, + -0.014897635206580162, + 0.0017598348204046488, + -0.0002691512054298073, + -0.0013975158799439669, + -0.08325744420289993, + 0.004126985091716051, + -0.007738672662526369, + 0.08811596781015396, + -0.025175990536808968, + -0.0060179452411830425, + -0.06275594234466553, + -0.06750404834747314, + 0.023814132437109947, + -0.024458253756165504, + -0.06271913647651672, + 0.018918799236416817, + 0.014787213876843452, + -0.018311483785510063, + 0.004899932537227869, + -0.026629867032170296, + -0.04711296409368515, + -0.042291246354579926, + 0.02167932502925396, + -0.02453186735510826, + 0.014455950818955898, + -0.07048541307449341, + -0.030365778133273125, + -0.015192090533673763, + -0.02248908020555973, + -0.01579020544886589, + 0.0062893969006836414, + -0.005493445321917534, + 0.024899939075112343, + 0.0066298614256083965, + -0.03942030295729637, + 0.017538538202643394, + 0.06076836213469505, + 0.006270993500947952, + -0.04324822872877121, + -0.00476650707423687, + 0.010821259580552578, + -0.014032670296728611, + -0.020869571715593338, + -0.006537843961268663, + 0.013434556312859058, + -0.03949391469359398, + -0.0047803097404539585, + -0.012643205933272839, + -0.028451813384890556, + -0.011778241023421288, + 0.006478032562881708, + -0.03426732122898102, + -0.0031193934846669436, + 0.04111342504620552, + 0.02224983461201191, + -0.00017167016630992293, + 0.029040725901722908, + -0.014732003211975098, + -0.0749758705496788, + -0.01561537105590105, + -0.01344375777989626, + 0.0053922259248793125, + -0.038205668330192566, + 0.03964114189147949, + -0.010177136398851871, + 0.011437776498496532, + -0.047959525138139725, + -0.004182195756584406, + 0.008161952719092369, + -0.018918799236416817, + -0.01963653601706028, + -0.018817581236362457, + 0.006008743308484554, + -0.040708545595407486, + 0.015284107998013496, + -0.02145848236978054, + -0.016710380092263222, + 0.014115486294031143, + 0.019213255494832993, + 0.02020704559981823, + -0.03769037127494812, + 0.07129516452550888, + -0.011732232756912708, + -0.006915115751326084, + -0.040156442672014236, + 0.07884060591459274, + 0.023758921772241592, + -0.03362319990992546, + 0.04188637062907219, + 0.034212108701467514, + 0.017998624593019485, + -0.013802626170217991, + -0.02600414864718914, + 0.010388776659965515, + 0.014354731887578964, + -0.019783765077590942, + -0.026832306757569313, + -0.02293076366186142, + -0.0030112729873508215, + 0.023593289777636528, + 0.0019404191989451647, + 0.000800552312284708, + -0.015854617580771446, + 0.01482402067631483, + 0.023777324706315994, + -0.015633774921298027, + -0.009505408816039562, + 0.02473430708050728, + -0.011198530904948711, + -0.07788362354040146, + -0.005948931910097599, + -0.017547739669680595, + 0.006855304352939129, + 0.023243622854351997, + -0.012468372471630573, + 0.00812514591962099, + -0.026997936889529228, + 0.017004836350679398, + -0.010407180525362492, + -0.0021348062437027693, + -0.023133201524615288, + 0.032758232206106186, + 0.025249604135751724, + -0.06967566162347794, + 0.04781229794025421, + -0.04350587725639343, + 0.0015608470421284437, + -0.042732931673526764, + 0.008221764117479324, + 0.01817345805466175, + -0.0019335179822519422, + 0.02248908020555973, + 0.04265931621193886, + 0.009215553291141987, + 0.03239016234874725, + 0.04291696473956108, + -0.011953074485063553, + 0.0035081675741821527, + -0.020685536786913872, + 0.013268925249576569, + 0.00516218226402998, + -0.01493444200605154, + 0.05543134734034538, + -0.034212108701467514, + 0.028783077374100685, + 0.037395916879177094, + 0.011815047822892666, + 0.05256040021777153, + 0.03075225092470646, + 0.02418220229446888, + 1.564477315696422e-05, + -0.02066713199019432, + -0.020151834934949875, + -0.03301588073372841, + -0.0063814143650233746, + 0.02202899195253849, + -0.036402128636837006, + 0.014005064964294434, + -0.008599036373198032, + -0.016452731564641, + -0.0041039809584617615, + 0.05086727812886238, + -0.017308494076132774, + 0.008727860637009144, + 0.001910513499751687, + -0.02828618325293064, + -0.038095250725746155, + -0.027678867802023888, + -0.003567978972569108, + 0.004288015887141228, + 0.013333337381482124, + 0.002778928726911545, + 0.06117324158549309, + -0.038647353649139404, + -0.022617904469370842, + 0.02247067540884018, + 0.003731310134753585, + -0.021624114364385605, + 0.016609160229563713, + 0.019691746681928635, + -0.023869341239333153, + 0.012532784603536129, + 0.02817576192319393, + -0.03964114189147949, + -0.018670352175831795, + 0.012072697281837463, + -0.003804923966526985, + 0.05090408772230148, + -0.012302741408348083, + 0.020243851467967033, + -0.009891882538795471, + 0.011161724105477333 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "喷油器组件", + "组成编码": "0502", + "维修项目名称": "排除喷油器雾化不良故障", + "维修项目编号": "MT019", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.21 MT019 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0190502喷油器组件排除喷油器雾化不良故障1UZJ级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2喷油雾化测试台Bosch EPS815或等效1台可调压、可视窗
3扭矩扳手40-200 N·m1把用于压紧螺母回装
名称规格/型号消耗数量备注
1喷油嘴偶件MAN5L35MC-INJ-NOZZLE-KIT1套原厂配对
2铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200mL冲洗油道
2无绒布Kimwipe EX-L5张
3高温润滑脂Molycote G-1052少量
4)人力人员
序号专业人数技能等级
1机械专业2高级+中级
修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m;
2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。
验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3f9bb979-7000-46a7-bdb1-01ff0824fd89.pdf#page=51\"}]", + "embedding": [ + -0.03757571429014206, + 0.0023957216180860996, + -0.045673925429582596, + 0.01997559517621994, + 0.006429082248359919, + -0.025608351454138756, + 0.023466823622584343, + 0.014603778719902039, + -0.010878601111471653, + 0.002009931718930602, + -0.006118650548160076, + -0.02373676560819149, + 0.021703213453292847, + 0.023358847945928574, + 0.00329327373765409, + -0.00992481131106615, + 0.007283893413841724, + 0.01708723045885563, + 0.029477499425411224, + -0.01630440354347229, + -0.005893700290471315, + 0.026994045823812485, + -0.018122002482414246, + 0.001426185481250286, + 0.004067102912813425, + 0.0023394839372485876, + -0.03223089128732681, + 0.011616437695920467, + -0.007436859887093306, + 0.015530575066804886, + -0.025662340223789215, + -0.025842299684882164, + -0.05517582967877388, + -0.014306844212114811, + -0.043010514229536057, + -0.07058043032884598, + 0.024546585977077484, + 0.025338411331176758, + -0.05668749660253525, + 0.03610003739595413, + -0.0021325296256691217, + -0.025446387007832527, + 0.0029783430509269238, + -0.048013411462306976, + -0.011742410250008106, + -0.007954245433211327, + -0.030719224363565445, + -0.05549975857138634, + 0.02130730077624321, + -0.003527221968397498, + 0.010104771703481674, + -0.01887783594429493, + 0.025518372654914856, + -0.013712975196540356, + -0.02512245997786522, + 0.03376055508852005, + -0.05665150657296181, + 0.03275277465581894, + -0.07673507928848267, + -0.0059476881287992, + -0.03644196316599846, + 0.04279456287622452, + 0.01674530655145645, + -0.008323164656758308, + 0.02523043565452099, + 0.05359217897057533, + -0.021847181022167206, + -0.009861825034022331, + -0.01568354107439518, + -0.004800441209226847, + 0.005164860747754574, + -0.026562141254544258, + -0.013290069065988064, + 0.02622021734714508, + -0.041894759982824326, + 0.005133367609232664, + 0.08458134531974792, + -0.019633669406175613, + -0.011733411811292171, + -0.0052728368900716305, + -0.0094479164108634, + -0.020533470436930656, + 0.0198496226221323, + 0.011193531565368176, + -0.00684299087151885, + 0.06528960168361664, + -0.002449709689244628, + -0.026544146239757538, + -0.0261482335627079, + -0.032050929963588715, + -0.022926943376660347, + 0.012903153896331787, + 0.042038727551698685, + 0.017123224213719368, + -0.02891962230205536, + -0.0006174888112582266, + -0.0050073955208063126, + 0.005682246759533882, + 0.05161261558532715, + -0.024114681407809258, + 0.02371876873075962, + 0.02990940399467945, + 0.01445981115102768, + -0.007787782233208418, + 0.0447741262614727, + -0.033256664872169495, + 0.027245990931987762, + 0.003365257754921913, + 0.014450812712311745, + -0.01878785714507103, + -0.017843063920736313, + 0.03413847088813782, + 0.016097448766231537, + 0.015260634012520313, + -0.009285951964557171, + -0.05157662555575371, + -0.006154642440378666, + -0.030755216255784035, + 0.028235772624611855, + -0.01373097114264965, + 0.012552231550216675, + -0.06129448115825653, + -0.012282291427254677, + -0.0012192310532554984, + 0.0479414276778698, + 0.02110934443771839, + 0.01571953296661377, + 0.008282673545181751, + 0.011571448296308517, + 0.035434186458587646, + -0.008188193663954735, + 0.011490466073155403, + -0.004058104939758778, + 0.046897657215595245, + -0.061978328973054886, + 0.01884184405207634, + -0.0002085008891299367, + -0.010806616395711899, + 0.030953172594308853, + -0.025302419438958168, + 0.0057632289826869965, + 0.014486804604530334, + -0.029135573655366898, + 0.005169359967112541, + 0.010149761103093624, + 0.0034192458260804415, + 0.013128104619681835, + -6.0139078414067626e-05, + 0.004885922186076641, + -0.02496049553155899, + 0.010545673780143261, + -0.019759641960263252, + 0.07673507928848267, + -0.014540793374180794, + 0.06460575014352798, + 0.0011731162667274475, + -0.025482378900051117, + 0.07623118907213211, + 0.03129509836435318, + 0.04416225850582123, + -0.0008244431810453534, + 0.03800761699676514, + 0.007963243871927261, + -0.011733411811292171, + 0.0021966404747217894, + -0.0022360067814588547, + 0.05650753527879715, + -0.006568551063537598, + -0.015728531405329704, + -0.04988499730825424, + 0.02618422545492649, + 0.028127796947956085, + -0.0082241864874959, + -0.009906815364956856, + 0.010815614834427834, + 0.0006146769155748188, + 0.049273133277893066, + 4.7801957407500595e-05, + -0.029423510655760765, + 0.004103095270693302, + -0.04484611004590988, + 0.025320416316390038, + -0.012309284880757332, + -0.03554216027259827, + 0.009276953525841236, + 0.015026685781776905, + 0.023556804284453392, + -0.019237756729125977, + 0.01009577326476574, + 0.013649989850819111, + -0.038115594536066055, + -0.033130694180727005, + -0.013667985796928406, + -0.007724796421825886, + 0.0274619422852993, + 0.01571953296661377, + 0.0474015437066555, + 0.00841764360666275, + 0.001560030970722437, + 0.01814899779856205, + 0.003221289487555623, + -0.011643432080745697, + 0.03259081020951271, + -0.029297538101673126, + -0.056903447955846786, + 0.021091347560286522, + 0.02148726023733616, + -0.013497022911906242, + 0.010077777318656445, + -0.02233307436108589, + 0.03649595007300377, + -0.01449580304324627, + -0.03167301416397095, + -0.028307756409049034, + -0.038187578320503235, + 0.020425494760274887, + 0.007724796421825886, + -0.020281527191400528, + -0.020983371883630753, + -0.02505047433078289, + -0.027317974716424942, + 0.034516386687755585, + 0.012786179780960083, + 0.04153484106063843, + 0.06795301288366318, + -0.005425803363323212, + 0.035434186458587646, + 0.016826288774609566, + -0.045601941645145416, + -0.020605456084012985, + 0.022099126130342484, + 0.022782975807785988, + -0.025932280346751213, + -0.030503273010253906, + -0.003203293541446328, + -0.0021224068477749825, + 0.02487051486968994, + 0.027803868055343628, + -0.004989399574697018, + 0.0428665466606617, + -0.031852975487709045, + 0.012651209719479084, + 0.0030278321355581284, + 0.016034463420510292, + 0.022315077483654022, + 0.02152325212955475, + 0.03883543610572815, + 0.035704124718904495, + -0.04167880862951279, + 0.03374255821108818, + -0.04160682484507561, + 0.008210688829421997, + -0.04383832961320877, + -0.007657310925424099, + 0.007679806090891361, + 0.002856869949027896, + 0.01756412535905838, + 0.0018164743669331074, + 0.011607440188527107, + -0.012759186327457428, + -0.03926733881235123, + 0.09919412434101105, + 0.020389502868056297, + 0.015800515189766884, + 0.0016398882726207376, + 0.007036447990685701, + 0.001429559662938118, + 0.045601941645145416, + -0.03242884948849678, + 0.04045507684350014, + -0.005218849051743746, + -0.030359303578734398, + -0.0004872987628914416, + -0.030863193795084953, + 0.03663991764187813, + 0.05902698263525963, + 0.009501904249191284, + -0.02247704192996025, + 0.08191793411970139, + -0.031978946179151535, + 0.09408324956893921, + -0.029189562425017357, + 0.01873386837542057, + -0.015377608127892017, + 0.00845363549888134, + 0.006406587082892656, + -0.08407745510339737, + -0.010194751434028149, + -0.0325368233025074, + -0.03717980161309242, + -0.0021089098881930113, + -0.015953481197357178, + 0.08019031584262848, + -0.03419245779514313, + -0.049381107091903687, + 0.03728777542710304, + -0.02636418491601944, + -0.11898975819349289, + -0.0025576858315616846, + -0.07500745356082916, + 0.010833610780537128, + -0.00466097192838788, + 0.0023079910315573215, + -0.04135487973690033, + 0.013407043181359768, + -0.0074548558332026005, + -0.049525078386068344, + -0.01795104146003723, + -0.08148603141307831, + -0.06010674312710762, + -0.025896288454532623, + -0.007373873610049486, + 0.005160361994057894, + -0.0262382123619318, + 0.04279456287622452, + -0.015134662389755249, + -0.014054900035262108, + -0.02893761731684208, + 0.02747993916273117, + 0.04358638823032379, + 0.0055787693709135056, + -0.04786944389343262, + -0.013955921865999699, + 0.019705653190612793, + -0.03248283639550209, + -0.024132678285241127, + -0.025716328993439674, + -0.020785415545105934, + 0.007288392633199692, + 0.019093789160251617, + 0.035614144057035446, + -0.03224888816475868, + -0.02616622857749462, + 0.002187642501667142, + -0.04678967967629433, + -0.001996434759348631, + -0.016493361443281174, + 0.010428699664771557, + 0.00910149235278368, + 0.05654352903366089, + 0.0023507315199822187, + -0.013946924358606339, + -0.08486928045749664, + 0.012948144227266312, + -0.013712975196540356, + 0.013775961473584175, + -0.014351834543049335, + -0.015710534527897835, + -0.006195133551955223, + 0.007720297202467918, + -0.04912916570901871, + -0.04167880862951279, + 0.011877380311489105, + -0.046753689646720886, + -0.0039006397128105164, + 0.019759641960263252, + 0.0031538044568151236, + -0.044342219829559326, + -0.06446178257465363, + 0.02483452297747135, + -0.024798531085252762, + -0.022836962714791298, + 0.00871007889509201, + 0.002852370962500572, + -0.041966743767261505, + 0.03343662619590759, + -0.0526563860476017, + 0.017789077013731003, + -0.01887783594429493, + 0.01616043597459793, + -0.022099126130342484, + 0.011715415865182877, + 0.04103095084428787, + -0.020425494760274887, + -0.001443056738935411, + -0.045493967831134796, + -0.09710658341646194, + 0.0018400941044092178, + 0.0033787547145038843, + 0.01858990080654621, + -0.022261090576648712, + -0.028055811300873756, + -0.09581086784601212, + -0.006096155382692814, + 0.02749793604016304, + -0.0082241864874959, + 0.20385903120040894, + -0.034534383565187454, + 0.012840167619287968, + 0.035740118473768234, + 0.013937925919890404, + -0.06266217678785324, + -0.01687127910554409, + -0.04894920438528061, + 0.010149761103093624, + -0.0036351983435451984, + -0.019345732405781746, + -0.012390267103910446, + 0.043010514229536057, + -0.01440582238137722, + 0.03215890750288963, + 0.00848962739109993, + 0.000772142200730741, + -0.0019908109679818153, + 0.09019611030817032, + 0.02380874939262867, + -0.01894981972873211, + 0.007657310925424099, + -0.01875186339020729, + -0.014873719774186611, + -0.023592796176671982, + -0.06402987986803055, + -0.012408263050019741, + 0.0062041315250098705, + 0.006325604859739542, + 0.014783739112317562, + -0.021883172914385796, + 0.025644343346357346, + 0.007792281452566385, + -0.009096994064748287, + -0.03548817336559296, + -0.07954245805740356, + -0.024456605315208435, + 0.04614182189106941, + 0.0554637685418129, + 0.02364678494632244, + -0.06410185992717743, + -0.0362979955971241, + -0.002287745475769043, + -0.002232632599771023, + -0.0031987945549190044, + -0.03241085261106491, + 0.016313401982188225, + -0.010185753926634789, + 0.019381726160645485, + -0.006024171132594347, + 0.0040716021321713924, + -0.015512578189373016, + -0.02611224167048931, + -0.01307411678135395, + -0.029135573655366898, + -0.01804102025926113, + 0.0174021627753973, + -0.03662192448973656, + -0.00279613328166306, + 0.015188650228083134, + 0.0396992452442646, + -0.027245990931987762, + -0.020965376868844032, + 0.015917489305138588, + 0.022890951484441757, + -0.015350614674389362, + -0.06158241629600525, + -0.04160682484507561, + -0.003014335175976157, + 0.015170654281973839, + 0.0498490072786808, + 0.043298449367284775, + -0.0068834819830954075, + 0.03518224135041237, + 0.024402618408203125, + 0.006892479956150055, + 0.020569464191794395, + 0.086093008518219, + 0.012372271157801151, + -0.00171974569093436, + -0.0580911859869957, + -0.03786364942789078, + -0.014000912196934223, + 0.010320723988115788, + 0.027767876163125038, + -0.014171874150633812, + -0.016664324328303337, + -0.007598823867738247, + -0.004867926239967346, + -0.005349320359528065, + -0.013955921865999699, + -0.020767420530319214, + 0.037143807858228683, + 0.013254077173769474, + -0.03667591139674187, + -0.02015555463731289, + 0.0018895831890404224, + -0.0023237376008182764, + 0.00376117043197155, + 0.027263985946774483, + 0.052044522017240524, + -0.035632140934467316, + -0.002431713743135333, + -0.029315534979104996, + 0.0498490072786808, + 0.004872425459325314, + 0.02517644688487053, + -0.006222127471119165, + -0.002928853966295719, + -0.012318283319473267, + 0.010824612341821194, + 0.06133047491312027, + 0.021721208468079567, + -0.04275856912136078, + 0.010662647895514965, + 0.016601338982582092, + 0.007423362694680691, + 0.03656793385744095, + -0.01183238998055458, + 0.029693450778722763, + -0.0430465042591095, + -0.026742102578282356, + 0.03005337156355381, + -0.054419998079538345, + -0.02897360920906067, + -0.0262382123619318, + -0.01699725165963173, + -0.01514365989714861, + -0.004917415324598551, + 0.04930912330746651, + -0.01678129844367504, + -0.021991150453686714, + 0.004125589970499277, + -0.026994045823812485, + 0.05110872909426689, + -0.037035830318927765, + 0.02888363040983677, + 0.024816526100039482, + 0.06932070851325989, + -0.0171052273362875, + 0.007090436294674873, + -0.0077607883140444756, + 0.01503568422049284, + -0.01304712239652872, + -0.0021505258046090603, + -0.010617658495903015, + 0.03482231870293617, + -0.02253103069961071, + -0.044306229799985886, + 0.05362817272543907, + -0.027803868055343628, + 0.05143265798687935, + 0.04034710302948952, + -0.06651332974433899, + 0.0017039991216734052, + 0.011328501626849174, + 0.012237301096320152, + 0.011661428026854992, + -0.010752628557384014, + 0.002085290150716901, + -0.006330104079097509, + 0.031816981732845306, + 0.0755833312869072, + -0.030377300456166267, + 0.03636997938156128, + 0.094803087413311, + -0.02269299514591694, + 0.003180798375979066, + 0.006546056363731623, + 0.005970183294266462, + -0.032968729734420776, + -0.04614182189106941, + -0.040635038167238235, + 0.04103095084428787, + -0.005772226955741644, + 0.03847551345825195, + -0.01884184405207634, + 0.007765287533402443, + -0.02634618990123272, + 0.0599987655878067, + 0.016880277544260025, + 0.06259019672870636, + -0.03120511770248413, + -0.018409939482808113, + 0.00791375432163477, + -0.036999840289354324, + -0.0364779531955719, + -0.009146482683718204, + 0.010149761103093624, + 0.0213432926684618, + -0.036999840289354324, + 0.045817892998456955, + -0.031025156378746033, + -0.027821863070130348, + 0.029405513778328896, + -0.008858546614646912, + 0.028073808178305626, + 0.009110490791499615, + -0.011265515349805355, + -0.015152658335864544, + 0.001151746022514999, + 0.008791061118245125, + 0.02987341210246086, + 0.0022787475027143955, + -0.016988253220915794, + -0.045925870537757874, + -0.02524843066930771, + -0.011562449857592583, + -0.020731426775455475, + -0.02488850988447666, + -0.0011461222311481833, + -0.026922062039375305, + -0.006600044202059507, + 0.006991458125412464, + 0.011553451418876648, + 0.008777564391493797, + 0.03901539370417595, + 0.03230287507176399, + -0.03133108839392662, + -0.0250144824385643, + 0.02125331200659275, + 0.029585475102066994, + 0.03851150721311569, + -0.01701524667441845, + 0.03851150721311569, + -0.0500289648771286, + -0.042074721306562424, + -0.013443035073578358, + 0.029711447656154633, + -0.02263900637626648, + 0.00627161655575037, + 0.0005351007566787302, + -0.026058252900838852, + -0.03476833179593086, + 0.05218848958611488, + -0.0012597221648320556, + 0.0031268103048205376, + 0.033220674842596054, + -0.03410247713327408, + -0.02895561419427395, + -0.0030570756644010544, + -0.0276419036090374, + 0.03179898485541344, + 0.06647733598947525, + -0.01650235988199711, + 0.06474971771240234, + -0.045493967831134796, + 0.059602852910757065, + 0.020947379991412163, + 0.040814999490976334, + 0.0008295045699924231, + 0.024258648976683617, + 0.013497022911906242, + -0.03165501728653908, + -0.012417261488735676, + -0.059674836695194244, + -0.022818967700004578, + 0.00037257408257573843, + -0.043370433151721954, + -0.0017433655448257923, + -0.017204206436872482, + 0.05481591075658798, + 0.000496015592943877, + -0.002436212729662657, + -0.003644196316599846, + 6.115838459663792e-06, + 0.023430831730365753, + -0.03919535502791405, + -0.021091347560286522, + -0.0015262883389368653, + -0.044594164937734604, + -0.045853886753320694, + -0.016367390751838684, + -0.03014335222542286, + 0.09019611030817032, + -0.0138209518045187, + -0.00504338787868619, + -0.013775961473584175, + 0.07407166063785553, + 0.009249960072338581, + -0.02263900637626648, + -0.05006495863199234, + -0.021883172914385796, + -0.004431522451341152, + 0.02497849054634571, + -0.042002737522125244, + 0.023070910945534706, + -0.017996031790971756, + 0.00873707327991724, + -0.0005038888775743544, + 0.022189106792211533, + -0.008579608052968979, + -0.04610583186149597, + 0.02634618990123272, + 0.007148923352360725, + -0.007468353025615215, + -0.05863106995820999, + 0.022009145468473434, + 0.006037668325006962, + 0.012525237165391445, + -0.0005989304045215249, + 0.022045137360692024, + -0.026508154347538948, + -0.04524202272295952, + -0.00855261366814375, + -0.020929383113980293, + 0.006784503813832998, + -0.021703213453292847, + -0.011112549342215061, + 0.012957142665982246, + 0.008471631444990635, + 0.05272836983203888, + 0.005110872909426689, + -0.00157577742356807, + -0.022135118022561073, + 0.03672989830374718, + 0.021775197237730026, + -0.03843952342867851, + 0.0376117043197155, + 0.022998927161097527, + -0.002548687858507037, + -0.013191090896725655, + -0.029387518763542175, + 0.020371507853269577, + -0.07130027562379837, + -0.01836494915187359, + 0.015440594404935837, + 0.03005337156355381, + -0.009330942295491695, + -0.016988253220915794, + 0.017897052690386772, + 0.010410703718662262, + -0.053232260048389435, + -0.029261546209454536, + 0.029549483209848404, + 0.008359156548976898, + 0.011238520964980125, + -0.05535579100251198, + 0.03509226068854332, + 0.01122052501887083, + -0.02235107123851776, + -0.021757202222943306, + 0.031115137040615082, + 0.01384794618934393, + 0.03545217961072922, + -0.045781902968883514, + -0.04678967967629433, + 0.0012034846004098654, + 0.0026881571393460035, + 0.04095896705985069, + -0.023250872269272804, + -0.04606983810663223, + -0.008719077333807945, + -0.05218848958611488, + 0.0105366762727499, + -0.0251944437623024, + -0.045637935400009155, + -0.027227994054555893, + -0.03775567188858986, + -0.026796089485287666, + -0.04027511551976204, + -0.015377608127892017, + -0.01013176515698433, + 0.03735975921154022, + 0.0017894803313538432, + 0.027839859947562218, + 0.03399450331926346, + 0.006060163490474224, + 0.030683232471346855, + -0.05521182343363762, + -0.01858990080654621, + -0.013011130504310131, + -0.008377152495086193, + 0.025896288454532623, + -0.019795633852481842, + 0.019399721175432205, + -0.017411159351468086, + 0.023268867284059525, + 0.03494829311966896, + 0.008044226095080376, + 0.0015532823745161295, + -0.04520602896809578, + -0.026958053931593895, + -0.004831934347748756, + 0.06809698045253754, + 0.008350158110260963, + 0.017699096351861954, + -0.0007260273559950292, + 0.06766507774591446, + 0.07421562820672989, + -0.022279085591435432, + 0.02649015747010708, + -0.040491070598363876, + 0.006096155382692814, + -0.10919991880655289, + -0.0001334939879598096, + -0.03399450331926346, + -0.05726337060332298, + -0.0018682129448279738, + -0.02145126834511757, + 0.01436983048915863, + 0.017501140013337135, + -0.002784885698929429, + -0.013613997027277946, + 0.01243525743484497, + -0.005101874936372042, + 0.05769527330994606, + -0.004148085135966539, + -0.04599785432219505, + 0.027048034593462944, + -0.022099126130342484, + -0.013739969581365585, + 0.01811300590634346, + 0.0162684116512537, + 0.031043153256177902, + -0.01882384903728962, + -0.0015341616235673428, + -0.009119488298892975, + 0.014045902527868748, + -0.01008677575737238, + 0.007706800010055304, + 0.013604999519884586, + -0.03242884948849678, + 0.04880523681640625, + 0.034300435334444046, + -0.016826288774609566, + 0.0174921415746212, + 0.0475815050303936, + 0.0340304933488369, + -0.004033360630273819, + 0.008246680721640587, + 0.0186258926987648, + 0.029243549332022667, + 0.02762390673160553, + 0.05100075155496597, + 0.008971021510660648, + 0.0168352872133255, + -0.010302728042006493, + 0.02618422545492649, + 0.007670808117836714, + -0.01498169545084238, + -0.011166537180542946, + -0.02904559299349785, + 0.04283055290579796, + 0.0029086084105074406, + -0.04239865019917488, + 0.048229362815618515, + 0.02026353031396866, + 0.01734817400574684, + -0.04373035579919815, + -0.06107852980494499, + 0.008687583729624748, + -0.029477499425411224, + 0.06356198340654373, + -0.03665791451931, + 0.040491070598363876, + -0.023034919053316116, + -0.01450480055063963, + 0.010185753926634789, + 0.020407499745488167, + -0.06147444248199463, + -0.04473813250660896, + 0.025500375777482986, + -0.014441815204918385, + 0.010482688434422016, + -0.02386273629963398, + -0.03728777542710304, + -0.05481591075658798, + 0.02899160608649254, + -0.019561685621738434, + 0.029657458886504173, + -0.028325753286480904, + -0.05481591075658798, + -0.0014216864947229624, + -0.03381454199552536, + 0.003779166378080845, + 0.009182474575936794, + 0.018481923267245293, + 0.02015555463731289, + 0.0012136073783040047, + -0.031816981732845306, + -0.014675763435661793, + 0.011103550903499126, + 0.012219305150210857, + 0.018499920144677162, + -0.019687658175826073, + 0.02393472194671631, + -0.025788312777876854, + 0.014261854812502861, + -0.00781477615237236, + 0.03858349099755287, + -0.025824304670095444, + 0.005862207151949406, + -0.011229523457586765, + -0.057083409279584885, + 0.004364037420600653, + 0.00813420582562685, + 0.017078233882784843, + -0.020839404314756393, + 0.0032730281818658113, + 0.026940058916807175, + 0.0017748585669323802, + 0.018445931375026703, + -0.02269299514591694, + -0.027174007147550583, + 0.024168670177459717, + -0.03626200184226036, + 0.01494570355862379, + -0.019165772944688797, + 0.028181783854961395, + 0.0018254723399877548, + -0.017861060798168182, + -0.05136067047715187, + -0.025464383885264397, + 0.0046564731746912, + 0.041750792413949966, + -0.008588605560362339, + -0.019651666283607483, + -0.04376634582877159, + -0.015197647735476494, + 0.012966140173375607, + 0.025860296562314034, + 0.000977409421466291, + 0.040743015706539154, + -0.005029890686273575, + 0.012993134558200836, + -0.029747439548373222, + 0.017123224213719368, + -0.005970183294266462, + -0.0039411308243870735, + -0.019633669406175613, + 0.08825253695249557, + -0.010761626064777374, + -0.044378213584423065, + -0.017447151243686676, + 0.02864968031644821, + -0.015485584735870361, + -0.0029648460913449526, + -0.030845196917653084, + 0.0213432926684618, + -0.028559701517224312, + -0.045781902968883514, + -0.01185938436537981, + 0.016583342105150223, + -0.024042697623372078, + -0.007099434267729521, + 0.006042167544364929, + 0.03919535502791405, + -0.04373035579919815, + 0.010473689995706081, + 0.01763611100614071, + -0.0273719634860754, + -0.03394051268696785, + 0.04149884730577469, + -0.00533582316711545, + -0.04157083109021187, + -0.00010572667815722525, + -0.03649595007300377, + 0.022189106792211533, + 0.006100654602050781, + -0.0019469455583021045, + 0.01986761763691902, + -0.010815614834427834, + 0.022818967700004578, + 0.0019300743006169796, + -0.003336014226078987, + -0.011229523457586765, + 0.030917180702090263, + 0.018104007467627525, + -0.033274661749601364, + 0.029423510655760765, + -8.040219086069555e-07, + 0.04632178321480751, + -0.016475366428494453, + 0.034246448427438736, + 0.00781027739867568, + 0.043442416936159134, + -0.019525693729519844, + 0.05855908617377281, + 0.061870355159044266, + 0.06269817054271698, + 0.02866767719388008, + 0.001166367786936462, + -0.027281982824206352, + -0.008323164656758308, + 0.019435713067650795, + 0.0252844225615263, + -0.02382674440741539, + 0.03223089128732681, + 0.014000912196934223, + 0.010518680326640606, + 0.025482378900051117, + -0.004420274868607521, + 0.06003475934267044, + 0.054599959403276443, + 0.019561685621738434, + 0.00015662171063013375, + -0.011868382804095745, + -0.024096684530377388, + -0.0075133428908884525, + 0.020983371883630753, + 0.006307608913630247, + -0.03620801493525505, + 0.025932280346751213, + -0.007373873610049486, + -0.005101874936372042, + 0.008462633937597275, + 0.01995759829878807, + 0.015341616235673428, + 0.021595237776637077, + 0.042110711336135864, + -0.03879944235086441, + 0.006690024398267269, + 0.010851606726646423, + -0.02620222046971321, + 0.01436083298176527, + 0.008633595891296864, + -0.015611556358635426, + 0.04736555367708206, + -0.034318432211875916, + 0.027120018377900124, + 0.003806160530075431, + 0.002960347104817629, + -0.06046666204929352, + -0.019651666283607483, + -0.003423744812607765, + 0.007216408383101225, + 0.021937161684036255, + 0.01564754918217659, + -0.02245904691517353, + -0.046753689646720886, + 0.026976050809025764, + -0.038187578320503235, + 0.01125651691108942, + 0.045925870537757874, + 0.04729356989264488, + -0.017231199890375137, + 0.020839404314756393 + ] + } + }, + { + "type": "维修项目", + "properties": { + "名称": "排除主机功率异常波动故障", + "编号": "MT020", + "内容": "表 4.22 MT020 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT02001机座与机架组件排除主机功率异常波动故障1UZJ级
安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。
安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。
序号名称规格/型号数量及单位备注
1主机监控系统(PMS)Integrated BridgeSystem1套读取实时功率曲线
2调速器性能测试仪 Woodward Test Bench1台检测响应滞后
3燃油黏度计MarconiViscotester1台测 HFO黏度
4多通道数据记录仪DataTaker DT801套同步录负荷/转速
2)备品
名称规格/型号消耗数量备注
1调速器伺服阀滤芯OEM-GOV-FILTER1个如堵塞
2燃油温度传感器PT100,0-200°C1个如漂移
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1标准测试燃油ISO 8217 RMG380300L用于稳定测试
2密封胶Loctite 577少量传感器安装
4)人力人员人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导系统分析
2自动化专业1中级负责调速器信号检测
修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。
分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。
针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟;
验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下);
3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1
\n\n\n5器材保障\n5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n
序号名称规格/型号生产单位通用/专用体积山重量8)参考价(元)存放位置备注
1液压升降平台HLP-3000OEM 或市场品专用120045085,000主机车间东侧工具架A区用于接近主机上部
2扭矩扳手TB-200N·mOEM 或市场品通用32.51,200工具柜 B-02精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FITOEM专用53.82,500主机备件柜M-07厂家配套
4工业吸油泵VAC-0IL50OEM 或市场品专用25186,800油料间防爆柜防爆型
5激光对SKF TKSA 71SKF专用84.298,000精密仪器室轴承
中仪C-01同轴度检测
6塞尺组0.02 - 1.00 mm市品通用0.80.6180量具盒D-05精度土0.005m
7液压拉伸器HYTORCAVANTI-10 /RS-20HYTORC专用302242,000螺栓工具架E区用于地脚螺栓/连杆螺栓
8内径千分尺200-300mm /40-50mmMitutoyo 等通用21.43,600量具柜F-03校验有效期内
9精密千分表 Mitutoyo543-791DMitutoyo专用1.20.94,200精密仪器室C-02分辨率0.001mm
10磁力表座Starrett 16BStarrett通用1.51.81,500量具柜F-04带万向关节
11V型支撑架Custom-Crank-V300OEM专用8012018,000曲轴检修平台旁承重≥500kg
12盘车手轮OEM-MAN-BW-PCWOEM专用15125,500主机附件箱G-01原厂配套
13内窥镜GE MentorVisual iQ /iQ-ExGE专用63.575,000探伤设备柜H-02防爆型用于故障排查
14轴承安装导向套OEM-MAN-BW-BG-04OEM专用45.23,800轴承装配区I-03防止瓦片移位
15活塞吊装专用吊具 OEM-MAN-BW-PST-05OEM专用202812,000吊具架J-01带缓冲橡胶夹头
16感应加热器EFD InductionMinac 16 /EFD专用453568,000热装工具区K-02温控精度
序号名称规格/型号生产单位通用/专用体积U重量(kg)参考价(元)存放位置备注
Minac 10±5℃
17铜棒与塑料锤Φ20×300 mm市品通用22.1150普通工具箱L-05用于轻敲装配
18活塞环压缩器OEM-MAN-BW-RCC-06OEM专用86.54,200活塞维修台M-03适配350活塞
19环槽清洁刮刀Custom-Piston-Groove-ScraperOEM专用0.50.4320活塞工具盒N-01铜质加
20环口定位夹具Custom-Ring-AlignerOEM专用32.31,800活塞维修台M-04控制环开□相位
21缸套拔出器OEM-MAN-BW-LINER-PULLOEM专用25329,500缸体检修区0-02螺纹顶压式
22液压压装机HYDRA-PRESS-50TOEM或市品专用600800180,000压装工位P区带压力与位移监控
23冷却水腔密封测试仪LeakTest-CT300OEM专用181528,000密封测试台Q-010.3MPa保压
24深度规0-150mm/0-300mm市品通用10.7600量具柜F-05
25放大镜(带LED)5×/10×withscale/light市品通用0.60.3220检验工具盒R-01检查裂纹/印痕
26防爆LED手电Streamlight88040Streamlight专用0.40.51,100防爆工具柜S-0124V安全电压
27清洁气枪Industrial AirBlow Gun市品通用1.20.9180气动工具架T-02压力≤0.5MPa
28排气阀专用吊具OEM-MAN-BW-VALVE-HOOKOEM专用12166,200阀件吊装区U-01带隔热手柄
29红外测温仪Fluke 62 Max+Fluke通用0.80.352,400电子仪表柜V-03测量高温
序号名称规格/型号生产单位通用/专用体积山重量(kg)参考价(元)存放位置备注
部件
30密封面检测平板Optical Flat/10市品专用10815,000精密测量台W-01着色法检查
31便携式阀座镗床SUNNEN SV-20SUNNEN专用9075130,000阀维修区X-01带角度调节
32液压阀座压装机 HYDRA-SEAT-PRESSOEM专用12018078,000阀维修区X-02过盈配合
33角度规0-90°Protractor市品通用1.51.2300量具柜F-06检查锥角
34喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCHOEM专用43.62,800喷油器工具箱Y-01防滑齿设计
35高压燃油压力表0-20 MPa市品通用0.90.8950仪表校验柜Z-02校验有效期内
36喷油雾化测试台Bosch EPS 815Bosch专用200220220,000喷油器测试室AA-01测开启压力与雾化角
37柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDEOEM专用21.71,600喷油泵维修台AB-02防划伤
38供油定时检测仪AVL 545AVL专用151285,000燃油系统测试区AC-01测喷油始点
39涡轮增压器专用拆装台Custom-Turbo-BenchOEM专用30040095,000增压器维修区AD-01带V型支撑
40动平衡检测仪SchenckBALANCER VSchenck专用500600680,000平衡实验室AE-01G2.5级精度
41高压清洗机Kärcher HD7/15-4Karcher通用806532,000清洗站 AF-01压力0-5MPa可调
42管束专RotatingOEM专用0.30.2800清洗配件柜自旋
序号名称规格/型号生产单位通用/专用体积U重量8)参考价(元)存放位置备注
用清洗喷头Nozzle 3mm5AG-01
43风压干燥机Industrial AirDryer市品通用1209025,000空压站 AH-010.6MPa
44泄漏测试装置Air/Water LeakTesterOEM专用252036,000密封测试台Q-020.4MPa保压
45防爆型扫气箱清洗机器人SCB-CLEANBOT-X1OEM专用150130420,000机器人存放区AI-01自动高压水射流
46红外热像仪FLIR T860FLIR专用52.1120,000电气检测室AJ-01检测热点
47可燃气体检测仪MSA Altair 5XMSA专用10.78,500安全设备柜AK-01多气体复合
48等离子堆焊机PLASMAD 5000OEM专用400350580,000焊接修复区AL-01自动送粉
49热处理炉Box Furnace800°COEM专用10001200320,000热处理间AM-01控温土10℃
50超声波探伤仪Olympus Epoch650Olympus专用63.295,000探伤设备柜H-03检测内部缺陷
51三维扫描仪FARO ArmQuantumFARO专用3025750,000测绘室AN-01修复形貌比对
52主机监控系统(PMS)IntegratedBridge System船厂集成专用1,200,000集控室A0-01读取功率曲线
53调速器性能测试仪Woodward TestBenchWoodward专用180200480,000调速器测试间AP-01检测响应滞后
54燃油黏度计MarconiViscotesterMarconi专用12942,000燃油化验室AQ-01测HFO黏度
55多通道数据记录仪DataTaker DT80DataTaker通用32.418,000数据采集柜AR-01同步录负荷/转速
\n\n\n\n\n\n\n\n\n5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n
序号名称牌号/品级/规格生产单位备注
1柴油机专用润滑油 Shell Mysella S5 N80Shell符合MAN 97101标准
2无纺布抹布Industrial Grade市场品不掉屑
3清洗剂CRC Brakleen /Brulin 815GD/ CRC Carbon Clean ProCRC /Brulin多用途清洁
4主机油滤芯MAN B&W 5L35MC-FIL-01MAN原厂件
5机油放油螺塞密封圈Viton Φ22×2.5市场品耐高温氟橡胶
6清洁酒精AR Grade / ≥99.5%市场品
7防锈纸VCI-200市场品
8无绒擦拭布Kimwipe EX-LKimberly-Clark防刮伤
9轴承装配润滑脂 Kluber Isoflex LDS 18Special AKluber仅涂瓦背
10螺纹锁固胶Loctite 2701Henke1用于螺栓(如适用)
11高温装配润滑脂Molycote G-1052Dow Corning活塞销/螺纹
12积碳清洗剂CRC Carbon Clean ProCRC环保型
13防锈油CRC 3-36CRC临时防护
14二硫化钼润滑膏 Molycote BR2 PlusDow Corning涂活塞环外圆
15缸套润滑机油Shell Mysella S5 N80Shell同主滑油
16耐油标记笔Markal Oil-ResistantMarkal标记环开口
17耐高温标记笔Markal 900° FMarkal高温环境
18装配润滑脂 Kluber Isoflex LDS 18Special AKluber缸套外壁
19密封胶Loctite 518 / 577Henke1水腔/泵体法兰
20高温镍基焊条ENiCrFe-3市场品阀座焊接
21研磨膏(细)Clover Leaf GreenClover阀座研配
22清洁柴油ISO 4020 Grade A市场品冲洗油道
23高压泵专用润滑油 Shell Tellus S4 VX 32Shell偶件润滑
24中性清洗剂Alconox DetojetAlconoxpH=9.5,环保
25软化水Deionized Water市场品配清洗液
26生物降解清洗剂Envirox SC-90Envirox清除碳化油泥
27耐高温防火毯Fiberglass Mat 1200°C市场品局部隔热
28镍基合金焊粉INCONEL 625Special Metals堆焊修复
29渗透探伤剂Magnaflux ZL-27AMagnafluxPT检测裂纹
30保温棉Ceramic Fiber Blanket市场品焊后缓冷
31标准测试燃油ISO 8217 RMG380市场品稳定测试用
\n\n\n6 维修安全防护及注意事项汇总表\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\n6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n
序号维修项目安全防护要求备注
1MT001保养机座与机架组件1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡防止误启与油污扩散
2MT002检查主轴承座1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区防止转动伤人
3MT003检测曲轴跳动1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固防止测量中曲轴转动
4MT004更换连杆大端轴承1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区防止异物落入/坠落
5MT005更换连杆小端轴承1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫防止活塞坠落损坏
6MT006 拆检活塞头1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁防爆防误启
2.缸内作业使用≤24V防爆照明
7MT007/008更换活塞环1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩防止工具/异物落入
8MT009 检测缸套磨损1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳高空/旋转风险
9MT010 更换气缸套1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布防水防砸
10MT011 检查排气阀杆1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识防高温/误动作
11MT012 更换排气阀座1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线防金属屑/电击
12MT013/019 更换/排除喷油器1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火防燃防爆
13MT014 更换柱塞偶件隔离燃油系统,LOTO 挂牌上锁防燃油泄漏
14MT015 更换增压器轴承1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫防气体倒流/坠落
15MT016 清洗空冷器1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服防高压水伤人
16MT017 修复连杆异常磨损1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体防复燃/室息
17MT018修复活塞烧蚀1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证防火灾
18MT020 排除功率波动1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范防飞车/电火花
\n\n\n6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n
序号维修项目注意事项备注
1MT0011.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜防烫伤
2MT0021.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间防夹伤
3MT0031.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油防滑脱
4MT0041.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整防损伤
5MT0051.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套防烫/变形
6MT0061.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩防吸入积碳
7MT007/0081.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180°防划伤/装反
8MT0091.冷却水未排空不得测量2.手不得置于千分尺与缸壁间防夹伤
9MT0101.禁用火焰加热缸体2.压装时人员不得站压机正下方防裂纹/砸伤
10MT0111.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜防碎屑/热辐射
11MT0121.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测防热应力/裂纹
12MT013/0191.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装防卡死/污染
13MT0141.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确防相位错误
14MT0151.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形防误判/失效
15MT0161.禁用酸性清洗剂2.清洗压力≤5 MPa防腐蚀/翅片倒伏
16MT0171.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温防自燃
17MT0181.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷防二次裂纹
18MT0201.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认防飞车
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.22 MT020 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT02001机座与机架组件排除主机功率异常波动故障1UZJ级
安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。
安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。
序号名称规格/型号数量及单位备注
1主机监控系统(PMS)Integrated BridgeSystem1套读取实时功率曲线
2调速器性能测试仪 Woodward Test Bench1台检测响应滞后
3燃油黏度计MarconiViscotester1台测 HFO黏度
4多通道数据记录仪DataTaker DT801套同步录负荷/转速
2)备品
名称规格/型号消耗数量备注
1调速器伺服阀滤芯OEM-GOV-FILTER1个如堵塞
2燃油温度传感器PT100,0-200°C1个如漂移
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1标准测试燃油ISO 8217 RMG380300L用于稳定测试
2密封胶Loctite 577少量传感器安装
4)人力人员人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导系统分析
2自动化专业1中级负责调速器信号检测
修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。
分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。
针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟;
验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下);
3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1
\\n\\n\\n5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n
序号名称规格/型号生产单位通用/专用体积山重量8)参考价(元)存放位置备注
1液压升降平台HLP-3000OEM 或市场品专用120045085,000主机车间东侧工具架A区用于接近主机上部
2扭矩扳手TB-200N·mOEM 或市场品通用32.51,200工具柜 B-02精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FITOEM专用53.82,500主机备件柜M-07厂家配套
4工业吸油泵VAC-0IL50OEM 或市场品专用25186,800油料间防爆柜防爆型
5激光对SKF TKSA 71SKF专用84.298,000精密仪器室轴承
中仪C-01同轴度检测
6塞尺组0.02 - 1.00 mm市品通用0.80.6180量具盒D-05精度土0.005m
7液压拉伸器HYTORCAVANTI-10 /RS-20HYTORC专用302242,000螺栓工具架E区用于地脚螺栓/连杆螺栓
8内径千分尺200-300mm /40-50mmMitutoyo 等通用21.43,600量具柜F-03校验有效期内
9精密千分表 Mitutoyo543-791DMitutoyo专用1.20.94,200精密仪器室C-02分辨率0.001mm
10磁力表座Starrett 16BStarrett通用1.51.81,500量具柜F-04带万向关节
11V型支撑架Custom-Crank-V300OEM专用8012018,000曲轴检修平台旁承重≥500kg
12盘车手轮OEM-MAN-BW-PCWOEM专用15125,500主机附件箱G-01原厂配套
13内窥镜GE MentorVisual iQ /iQ-ExGE专用63.575,000探伤设备柜H-02防爆型用于故障排查
14轴承安装导向套OEM-MAN-BW-BG-04OEM专用45.23,800轴承装配区I-03防止瓦片移位
15活塞吊装专用吊具 OEM-MAN-BW-PST-05OEM专用202812,000吊具架J-01带缓冲橡胶夹头
16感应加热器EFD InductionMinac 16 /EFD专用453568,000热装工具区K-02温控精度
序号名称规格/型号生产单位通用/专用体积U重量(kg)参考价(元)存放位置备注
Minac 10±5℃
17铜棒与塑料锤Φ20×300 mm市品通用22.1150普通工具箱L-05用于轻敲装配
18活塞环压缩器OEM-MAN-BW-RCC-06OEM专用86.54,200活塞维修台M-03适配350活塞
19环槽清洁刮刀Custom-Piston-Groove-ScraperOEM专用0.50.4320活塞工具盒N-01铜质加
20环口定位夹具Custom-Ring-AlignerOEM专用32.31,800活塞维修台M-04控制环开□相位
21缸套拔出器OEM-MAN-BW-LINER-PULLOEM专用25329,500缸体检修区0-02螺纹顶压式
22液压压装机HYDRA-PRESS-50TOEM或市品专用600800180,000压装工位P区带压力与位移监控
23冷却水腔密封测试仪LeakTest-CT300OEM专用181528,000密封测试台Q-010.3MPa保压
24深度规0-150mm/0-300mm市品通用10.7600量具柜F-05
25放大镜(带LED)5×/10×withscale/light市品通用0.60.3220检验工具盒R-01检查裂纹/印痕
26防爆LED手电Streamlight88040Streamlight专用0.40.51,100防爆工具柜S-0124V安全电压
27清洁气枪Industrial AirBlow Gun市品通用1.20.9180气动工具架T-02压力≤0.5MPa
28排气阀专用吊具OEM-MAN-BW-VALVE-HOOKOEM专用12166,200阀件吊装区U-01带隔热手柄
29红外测温仪Fluke 62 Max+Fluke通用0.80.352,400电子仪表柜V-03测量高温
序号名称规格/型号生产单位通用/专用体积山重量(kg)参考价(元)存放位置备注
部件
30密封面检测平板Optical Flat/10市品专用10815,000精密测量台W-01着色法检查
31便携式阀座镗床SUNNEN SV-20SUNNEN专用9075130,000阀维修区X-01带角度调节
32液压阀座压装机 HYDRA-SEAT-PRESSOEM专用12018078,000阀维修区X-02过盈配合
33角度规0-90°Protractor市品通用1.51.2300量具柜F-06检查锥角
34喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCHOEM专用43.62,800喷油器工具箱Y-01防滑齿设计
35高压燃油压力表0-20 MPa市品通用0.90.8950仪表校验柜Z-02校验有效期内
36喷油雾化测试台Bosch EPS 815Bosch专用200220220,000喷油器测试室AA-01测开启压力与雾化角
37柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDEOEM专用21.71,600喷油泵维修台AB-02防划伤
38供油定时检测仪AVL 545AVL专用151285,000燃油系统测试区AC-01测喷油始点
39涡轮增压器专用拆装台Custom-Turbo-BenchOEM专用30040095,000增压器维修区AD-01带V型支撑
40动平衡检测仪SchenckBALANCER VSchenck专用500600680,000平衡实验室AE-01G2.5级精度
41高压清洗机Kärcher HD7/15-4Karcher通用806532,000清洗站 AF-01压力0-5MPa可调
42管束专RotatingOEM专用0.30.2800清洗配件柜自旋
序号名称规格/型号生产单位通用/专用体积U重量8)参考价(元)存放位置备注
用清洗喷头Nozzle 3mm5AG-01
43风压干燥机Industrial AirDryer市品通用1209025,000空压站 AH-010.6MPa
44泄漏测试装置Air/Water LeakTesterOEM专用252036,000密封测试台Q-020.4MPa保压
45防爆型扫气箱清洗机器人SCB-CLEANBOT-X1OEM专用150130420,000机器人存放区AI-01自动高压水射流
46红外热像仪FLIR T860FLIR专用52.1120,000电气检测室AJ-01检测热点
47可燃气体检测仪MSA Altair 5XMSA专用10.78,500安全设备柜AK-01多气体复合
48等离子堆焊机PLASMAD 5000OEM专用400350580,000焊接修复区AL-01自动送粉
49热处理炉Box Furnace800°COEM专用10001200320,000热处理间AM-01控温土10℃
50超声波探伤仪Olympus Epoch650Olympus专用63.295,000探伤设备柜H-03检测内部缺陷
51三维扫描仪FARO ArmQuantumFARO专用3025750,000测绘室AN-01修复形貌比对
52主机监控系统(PMS)IntegratedBridge System船厂集成专用1,200,000集控室A0-01读取功率曲线
53调速器性能测试仪Woodward TestBenchWoodward专用180200480,000调速器测试间AP-01检测响应滞后
54燃油黏度计MarconiViscotesterMarconi专用12942,000燃油化验室AQ-01测HFO黏度
55多通道数据记录仪DataTaker DT80DataTaker通用32.418,000数据采集柜AR-01同步录负荷/转速
\\n\\n\\n\\n\\n\\n\\n\\n\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n
序号名称牌号/品级/规格生产单位备注
1柴油机专用润滑油 Shell Mysella S5 N80Shell符合MAN 97101标准
2无纺布抹布Industrial Grade市场品不掉屑
3清洗剂CRC Brakleen /Brulin 815GD/ CRC Carbon Clean ProCRC /Brulin多用途清洁
4主机油滤芯MAN B&W 5L35MC-FIL-01MAN原厂件
5机油放油螺塞密封圈Viton Φ22×2.5市场品耐高温氟橡胶
6清洁酒精AR Grade / ≥99.5%市场品
7防锈纸VCI-200市场品
8无绒擦拭布Kimwipe EX-LKimberly-Clark防刮伤
9轴承装配润滑脂 Kluber Isoflex LDS 18Special AKluber仅涂瓦背
10螺纹锁固胶Loctite 2701Henke1用于螺栓(如适用)
11高温装配润滑脂Molycote G-1052Dow Corning活塞销/螺纹
12积碳清洗剂CRC Carbon Clean ProCRC环保型
13防锈油CRC 3-36CRC临时防护
14二硫化钼润滑膏 Molycote BR2 PlusDow Corning涂活塞环外圆
15缸套润滑机油Shell Mysella S5 N80Shell同主滑油
16耐油标记笔Markal Oil-ResistantMarkal标记环开口
17耐高温标记笔Markal 900° FMarkal高温环境
18装配润滑脂 Kluber Isoflex LDS 18Special AKluber缸套外壁
19密封胶Loctite 518 / 577Henke1水腔/泵体法兰
20高温镍基焊条ENiCrFe-3市场品阀座焊接
21研磨膏(细)Clover Leaf GreenClover阀座研配
22清洁柴油ISO 4020 Grade A市场品冲洗油道
23高压泵专用润滑油 Shell Tellus S4 VX 32Shell偶件润滑
24中性清洗剂Alconox DetojetAlconoxpH=9.5,环保
25软化水Deionized Water市场品配清洗液
26生物降解清洗剂Envirox SC-90Envirox清除碳化油泥
27耐高温防火毯Fiberglass Mat 1200°C市场品局部隔热
28镍基合金焊粉INCONEL 625Special Metals堆焊修复
29渗透探伤剂Magnaflux ZL-27AMagnafluxPT检测裂纹
30保温棉Ceramic Fiber Blanket市场品焊后缓冷
31标准测试燃油ISO 8217 RMG380市场品稳定测试用
\\n\\n\\n6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n
序号维修项目安全防护要求备注
1MT001保养机座与机架组件1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡防止误启与油污扩散
2MT002检查主轴承座1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区防止转动伤人
3MT003检测曲轴跳动1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固防止测量中曲轴转动
4MT004更换连杆大端轴承1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区防止异物落入/坠落
5MT005更换连杆小端轴承1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫防止活塞坠落损坏
6MT006 拆检活塞头1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁防爆防误启
2.缸内作业使用≤24V防爆照明
7MT007/008更换活塞环1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩防止工具/异物落入
8MT009 检测缸套磨损1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳高空/旋转风险
9MT010 更换气缸套1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布防水防砸
10MT011 检查排气阀杆1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识防高温/误动作
11MT012 更换排气阀座1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线防金属屑/电击
12MT013/019 更换/排除喷油器1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火防燃防爆
13MT014 更换柱塞偶件隔离燃油系统,LOTO 挂牌上锁防燃油泄漏
14MT015 更换增压器轴承1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫防气体倒流/坠落
15MT016 清洗空冷器1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服防高压水伤人
16MT017 修复连杆异常磨损1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体防复燃/室息
17MT018修复活塞烧蚀1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证防火灾
18MT020 排除功率波动1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范防飞车/电火花
\\n\\n\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n
序号维修项目注意事项备注
1MT0011.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜防烫伤
2MT0021.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间防夹伤
3MT0031.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油防滑脱
4MT0041.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整防损伤
5MT0051.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套防烫/变形
6MT0061.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩防吸入积碳
7MT007/0081.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180°防划伤/装反
8MT0091.冷却水未排空不得测量2.手不得置于千分尺与缸壁间防夹伤
9MT0101.禁用火焰加热缸体2.压装时人员不得站压机正下方防裂纹/砸伤
10MT0111.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜防碎屑/热辐射
11MT0121.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测防热应力/裂纹
12MT013/0191.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装防卡死/污染
13MT0141.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确防相位错误
14MT0151.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形防误判/失效
15MT0161.禁用酸性清洗剂2.清洗压力≤5 MPa防腐蚀/翅片倒伏
16MT0171.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温防自燃
17MT0181.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷防二次裂纹
18MT0201.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认防飞车
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_bfa2402a-7784-4dcf-a836-3569e52ccafc.pdf#page=60\"}]", + "embedding": [ + -0.01933187246322632, + -0.011332150548696518, + -0.059529293328523636, + 0.01234513334929943, + -0.01660533994436264, + -0.019862031564116478, + 0.0634676143527031, + -0.011265880428254604, + 0.021717587485909462, + -0.0034933697897940874, + 0.020164979621767998, + -0.002949009882286191, + -0.010375970974564552, + 0.0027383663691580296, + -0.003919390495866537, + -0.036448437720537186, + 0.023251263424754143, + 0.015327277593314648, + 0.015242073684930801, + -0.010603182017803192, + 0.018470363691449165, + 0.020657269284129143, + 0.0514632984995842, + 0.04385172948241234, + -0.01363266259431839, + 0.022190945222973824, + -0.02878006547689438, + -0.026091400533914566, + 0.09520142525434494, + 0.026470085605978966, + -0.0008171313675120473, + -0.05839323624968529, + 0.020770875737071037, + -0.021641850471496582, + -0.020808743312954903, + -0.026394348591566086, + -0.03368403762578964, + -0.010394904762506485, + -0.04014061763882637, + 0.002603459870442748, + -0.0026247608475387096, + -0.020884480327367783, + 0.025996729731559753, + -0.0064849816262722015, + -0.0009390205959789455, + -0.02484174072742462, + -0.00023357175814453512, + -0.031033240258693695, + -0.012250461615622044, + -0.021225297823548317, + 0.0010650517651811242, + -0.03372190520167351, + 0.067898228764534, + -0.015800634399056435, + 0.048168741166591644, + -0.009225714951753616, + 0.01765619032084942, + 0.03216929733753204, + -0.016425464302301407, + -0.0010206745937466621, + -0.01568702794611454, + 0.009968884289264679, + -0.004361978732049465, + -0.01420069020241499, + 0.021641850471496582, + 0.07808485627174377, + 0.006726393476128578, + 0.024008633568882942, + -0.0034791689831763506, + -0.02268323488533497, + -0.027284258976578712, + -0.007019874174147844, + -0.011796039529144764, + -0.01268594991415739, + -0.02857178822159767, + 0.0603245310485363, + 0.06899641454219818, + -0.02787122130393982, + 0.05756013095378876, + -0.0032756258733570576, + -0.00864348653703928, + -0.04396533593535423, + -0.03008652850985527, + 0.04593449831008911, + -0.0023987332824617624, + 0.03290773183107376, + -0.02147144265472889, + -0.008586683310568333, + -0.029348092153668404, + -0.059529293328523636, + -0.004570255521684885, + -0.0010609098244458437, + -0.05392475426197052, + -0.0001446695241611451, + -0.040557168424129486, + 0.03428993374109268, + -0.02656475640833378, + 0.03292666748166084, + 0.046048104763031006, + -0.0074032931588590145, + -0.01263861358165741, + 0.043889597058296204, + 0.012203126214444637, + -0.01980522833764553, + 0.04385172948241234, + 0.016813617199659348, + 0.03207462280988693, + 0.013159305788576603, + 0.012061119079589844, + 0.007379624992609024, + -0.0014425533590838313, + -0.011786572635173798, + 0.007753576617687941, + -0.003138352418318391, + -0.023800356313586235, + -0.002287494484335184, + -0.029291288927197456, + -0.0362212248146534, + 0.026924507692456245, + -0.03815251961350441, + 0.01329184602946043, + 0.00876182597130537, + 0.050062164664268494, + -0.04067077487707138, + -0.015705963596701622, + -0.001160906394943595, + 0.031809546053409576, + 0.02872326225042343, + -0.015175803564488888, + 0.024879608303308487, + -0.00197152909822762, + 0.007398559246212244, + -0.021301034837961197, + -0.039269641041755676, + -0.055553097277879715, + -0.005618739407509565, + 0.0033797642681747675, + 0.022361353039741516, + -0.04582089185714722, + -0.01925613544881344, + -0.006816331297159195, + 0.008274268358945847, + -0.014020814560353756, + 0.007488497067242861, + -0.002442518714815378, + -0.02451985701918602, + 0.043283700942993164, + 0.011521493084728718, + 0.0454043373465538, + -0.0376223623752594, + 0.00803285650908947, + 0.017116565257310867, + 0.01344332005828619, + 0.020751941949129105, + -0.01933187246322632, + 0.010849326848983765, + -0.03737621381878853, + 0.042147647589445114, + 0.00905530620366335, + 0.024860674515366554, + 0.0234595388174057, + 0.02878006547689438, + 0.003081549657508731, + 0.0025040549226105213, + -0.024879608303308487, + -0.03739514946937561, + -0.027833351865410805, + 0.029215551912784576, + -0.020297519862651825, + 0.034914761781692505, + 0.032699454575777054, + -0.031411927193403244, + -0.004021162167191505, + -0.008103860542178154, + 0.006863666698336601, + 0.008861230686306953, + 0.04979708418250084, + 0.014096551574766636, + 0.030256936326622963, + 0.0060400268994271755, + -0.01638759672641754, + -0.017315374687314034, + -0.025920992717146873, + 0.022645367309451103, + -0.021073823794722557, + -0.03767916187644005, + 0.055704571306705475, + -0.015952108427882195, + 0.008198531344532967, + 0.046048104763031006, + -0.02071407251060009, + 0.008122794330120087, + 0.015166336670517921, + 0.0064660473726689816, + 0.07073836773633957, + -0.003491002833470702, + -0.01279955543577671, + -0.0063855769112706184, + 0.00044288401841185987, + -0.0249174777418375, + -0.007180815562605858, + 0.018905851989984512, + -0.0169745571911335, + 0.018394626677036285, + -0.038341861218214035, + 0.020354321226477623, + -0.008596151135861874, + -0.08103860169649124, + 0.02582632191479206, + 0.012013783678412437, + 0.022664301097393036, + -0.005902753211557865, + 0.013869340531527996, + -0.005997424479573965, + -0.027057047933340073, + -0.015317810699343681, + 0.00829793605953455, + -0.03588040918111801, + -0.024576660245656967, + -0.03099537268280983, + -0.043586649000644684, + 0.02840138040482998, + 0.014191222377121449, + -0.01567756198346615, + 0.02398969791829586, + -0.030181199312210083, + 0.026943441480398178, + 0.031336188316345215, + 0.03824719041585922, + -0.03701646625995636, + -0.035975079983472824, + -0.02207733877003193, + 0.012240994721651077, + -0.03631589561700821, + 0.046502526849508286, + 0.004783265758305788, + -0.008662420324981213, + 0.011076537892222404, + 0.027549337595701218, + 0.021376771852374077, + 0.0023147123865783215, + 0.013566392473876476, + 0.019445477053523064, + -0.031014306470751762, + -0.019672688096761703, + 0.04294288530945778, + 0.032945599406957626, + -0.00420813774690032, + 0.005580870900303125, + 0.008028123527765274, + -0.009225714951753616, + -0.04582089185714722, + 0.002754933899268508, + -0.0005082663265056908, + 0.048698898404836655, + 0.03192314878106117, + 0.015639692544937134, + -0.0008094393415376544, + 0.004974974785000086, + -0.003249591216444969, + 0.013471720740199089, + 0.0354638546705246, + 0.04646465554833412, + 0.016965091228485107, + -0.008577216416597366, + 0.005031777545809746, + -0.01248713955283165, + 0.004667293280363083, + -0.021225297823548317, + 0.0264322180300951, + -0.07085197418928146, + -0.004364345222711563, + 0.02444412000477314, + 0.07403293251991272, + 0.0018176883459091187, + 0.040935855358839035, + 0.00426494050770998, + -0.04525286331772804, + 0.056007519364356995, + 0.005926421377807856, + 0.008629285730421543, + 0.017618322744965553, + -0.004885037429630756, + 0.001186349312774837, + -0.019634820520877838, + -0.017769796773791313, + -0.044041071087121964, + -0.041466012597084045, + 0.014740316197276115, + -0.03406272083520889, + -0.018489297479391098, + -0.05100887641310692, + 0.08679461479187012, + -0.01119961030781269, + -0.004667293280363083, + 0.04813086986541748, + -0.007587901782244444, + -0.16192573308944702, + 0.024311581626534462, + 0.0074979644268751144, + 0.04347304627299309, + 0.011483624577522278, + -0.02741679921746254, + -0.032869864255189896, + 0.024311581626534462, + -0.01788340136408806, + -0.014020814560353756, + -0.02932915836572647, + -0.06490661948919296, + 0.0020306985825300217, + -0.04506352171301842, + -0.043586649000644684, + -0.010432773269712925, + 0.005386794917285442, + -0.02734106220304966, + 0.03737621381878853, + -0.02542870119214058, + -0.023743553087115288, + -0.0017017159843817353, + 0.03608868643641472, + -0.02656475640833378, + -0.00943872518837452, + 4.593035555444658e-05, + 0.06437645852565765, + -0.0234595388174057, + -0.03875841572880745, + -0.021755456924438477, + -0.020373256877064705, + 0.02071407251060009, + -0.004470850341022015, + 0.042829278856515884, + 0.02131996862590313, + 0.006513383239507675, + 0.01796860620379448, + 0.01423855870962143, + 0.007725175004452467, + 0.0032708921935409307, + 0.04536646977066994, + 0.05994584411382675, + -0.005050711799412966, + 0.020278584212064743, + 0.00023519892420154065, + -0.04180683195590973, + 0.04142814502120018, + -0.06555038690567017, + 0.026394348591566086, + -0.025920992717146873, + 0.0188111811876297, + 0.01253447588533163, + -0.00799498800188303, + 0.010650517418980598, + -0.02641328237950802, + 0.011133341118693352, + 0.006603320594877005, + 0.04506352171301842, + -0.07035968452692032, + 0.00011042515689041466, + -0.022134141996502876, + -0.054341305047273636, + -0.0074411616660654545, + 0.026791967451572418, + -0.04972134903073311, + 0.01728697307407856, + 0.0033016602974385023, + -0.021357838064432144, + 0.007502697873860598, + 0.01622665487229824, + -0.019521214067935944, + -0.012619679793715477, + 0.01348118856549263, + 0.004894504323601723, + 0.021149560809135437, + 0.011635098606348038, + 0.01912359520792961, + 0.03603188320994377, + 0.0018981589237228036, + -0.13375155627727509, + -0.015488218516111374, + 0.04729776456952095, + 0.012704883702099323, + -0.03798210993409157, + -0.019710557535290718, + -0.027890155091881752, + 0.00886596366763115, + -0.025864189490675926, + 0.04873676598072052, + 0.2481144517660141, + 0.008250600658357143, + -0.03046521358191967, + -0.043889597058296204, + 0.027359995990991592, + -0.03991340473294258, + 0.013433852232992649, + 0.015961574390530586, + 0.010499043390154839, + -0.020430058240890503, + -0.03885308653116226, + 0.04044356569647789, + 0.014749783091247082, + 0.010868261568248272, + 0.0004127075371798128, + 0.013197174295783043, + -0.023402737453579903, + -0.006906268652528524, + 0.1272381842136383, + -0.00046477673458866775, + 0.027814418077468872, + 0.0017324842046946287, + -0.012307264842092991, + 0.006958337966352701, + -0.03731941431760788, + -0.014229090884327888, + -0.03790637478232384, + 0.07959959656000137, + -0.02285364270210266, + 0.038966692984104156, + -0.033778708428144455, + 0.02353527583181858, + 0.0580524206161499, + -0.023175526410341263, + -0.005912220571190119, + 0.029991857707500458, + -0.014361631125211716, + -0.028193103149533272, + 0.021603982895612717, + 0.014437368139624596, + -0.03976193070411682, + -0.02209627255797386, + -0.03472542017698288, + 0.037963178008794785, + 0.03563426434993744, + -0.03563426434993744, + -0.011067070998251438, + 0.03220716491341591, + 0.009074240922927856, + -0.007573701441287994, + -0.015355679206550121, + -0.01378413662314415, + -0.004960774444043636, + -0.01727750524878502, + -0.03122258372604847, + -0.0245955940335989, + -0.008932233788073063, + -0.01910466141998768, + -0.020278584212064743, + 0.035691067576408386, + 0.018366225063800812, + 0.011114406399428844, + -0.07952386140823364, + 0.02575058490037918, + 0.0013289478374645114, + 0.020751941949129105, + -0.08671887964010239, + -0.014371098019182682, + 0.012278863228857517, + 0.006593853700906038, + -0.014115485362708569, + -0.021282101050019264, + -0.0290830135345459, + -0.01795913837850094, + 0.03326748311519623, + 0.006470780819654465, + -0.00012721451639663428, + 0.04286715015769005, + -0.05911273881793022, + 0.007270753383636475, + -0.055931784212589264, + -0.0040471963584423065, + -0.07058689743280411, + -0.05267509073019028, + 0.015895305201411247, + 0.031336188316345215, + 0.006915736012160778, + -0.015611291863024235, + -0.03266158699989319, + -0.01332024671137333, + -0.034839026629924774, + 0.029537435621023178, + -0.046351052820682526, + 0.028193103149533272, + -0.0063477084040641785, + 0.044646967202425, + 0.008392607793211937, + -0.05081953480839729, + 0.0012330932077020407, + 0.01895318739116192, + 0.00947659369558096, + -0.05786307901144028, + 0.008331071585416794, + 0.02185012772679329, + -0.010735721327364445, + -0.007318088784813881, + 0.004856635816395283, + 0.022020535543560982, + -0.010016219690442085, + 0.03500943258404732, + -0.008136995136737823, + 0.030503081157803535, + -0.01636866107583046, + -0.040178485214710236, + 0.0076163033954799175, + 0.026242874562740326, + -0.02635648101568222, + 0.030408410355448723, + -0.024387318640947342, + 0.01874491013586521, + -0.02298618294298649, + 0.004319376312196255, + 0.005074379965662956, + 0.027852285653352737, + -0.033949114382267, + -0.01722070388495922, + -0.018139014020562172, + 0.016576938331127167, + 0.0076731061562895775, + 0.025769518688321114, + -0.010877728462219238, + -0.01797807402908802, + -0.035842541605234146, + 0.012278863228857517, + 0.05915060639381409, + 0.011332150548696518, + -0.017845533788204193, + 0.024481989443302155, + 0.06373269855976105, + 0.022020535543560982, + 0.00029318506130948663, + -0.06608054041862488, + -0.029821448028087616, + -0.0245955940335989, + -0.005315791349858046, + -0.046275313943624496, + -0.011530959978699684, + -0.048320215195417404, + -0.013007831759750843, + 0.0424884632229805, + 0.010432773269712925, + 0.040481433272361755, + 0.013386516831815243, + -0.03678925335407257, + -0.03360829874873161, + -0.002906407928094268, + -0.010953465476632118, + -0.008283735252916813, + 0.011019735597074032, + -0.009239915758371353, + -0.01636866107583046, + 0.015043264254927635, + 0.042753543704748154, + 0.036145489662885666, + 0.026773033663630486, + 0.03648630529642105, + 0.0007609202875755727, + 0.01416282169520855, + 0.02018391340970993, + -0.03695966303348541, + 0.041920434683561325, + -0.03375977277755737, + -0.056764889508485794, + -0.0015810101758688688, + -0.023251263424754143, + -0.002603459870442748, + -0.07346490025520325, + 0.023516342043876648, + 0.007933451794087887, + 0.02741679921746254, + 0.061422716826200485, + 0.05619686469435692, + -0.06236942857503891, + -0.035691067576408386, + 0.009074240922927856, + 0.03137405589222908, + 0.027984825894236565, + -0.004537120461463928, + 0.00814646203070879, + -0.029120881110429764, + -0.030446279793977737, + 0.10784950852394104, + -0.02086554653942585, + 0.013954544439911842, + -0.011786572635173798, + 0.019388675689697266, + 0.05960502848029137, + 0.03139299154281616, + 0.02238028682768345, + -0.046881210058927536, + 0.011256413534283638, + -0.030597751960158348, + 0.004804566502571106, + 0.017173366621136665, + 0.010574780404567719, + -0.00868608895689249, + -0.02588312327861786, + -0.009623333811759949, + -0.0007467195973731577, + -0.013765201903879642, + -0.010120358318090439, + 0.009997285902500153, + -0.026072466745972633, + 0.038493335247039795, + 0.005126448813825846, + -0.010650517418980598, + 0.03381657600402832, + 0.06301319599151611, + -0.00852988101541996, + -0.02414117194712162, + 0.016558004543185234, + 0.002745466772466898, + 0.03661884367465973, + -0.0505923256278038, + -0.011587763205170631, + -0.023819290101528168, + -0.0006520483293570578, + -0.025466570630669594, + 0.08103860169649124, + -0.011663500219583511, + 0.0083784069865942, + 0.017911802977323532, + 0.004520552698522806, + -0.03497156500816345, + 0.015346212312579155, + -0.040860116481781006, + -0.004392746835947037, + 0.04059503972530365, + 0.027170652523636818, + 0.018176883459091187, + 0.03434673324227333, + 0.005382061470299959, + 0.0176751259714365, + 0.015185271389782429, + -0.02970784343779087, + 0.03321067988872528, + -0.060589611530303955, + -0.007124012801796198, + -0.0010573597392067313, + 0.04309435933828354, + -0.0264322180300951, + 0.04608597233891487, + 0.0064471131190657616, + -0.032415442168712616, + -0.03908029943704605, + 0.021376771852374077, + -0.010271832346916199, + -0.016027845442295074, + -0.05051658675074577, + -0.008619818836450577, + -0.01918039843440056, + 0.030275870114564896, + -0.00838314089924097, + 0.026829836890101433, + -0.05733291804790497, + -0.022588564082980156, + 0.003940691240131855, + 0.035141974687576294, + -0.010546378791332245, + -0.07323768734931946, + -0.007261286024004221, + -0.006324040703475475, + -0.060059450566768646, + -0.017268039286136627, + -0.013462253846228123, + -0.011975915171205997, + -0.01165403239428997, + 0.02703811414539814, + -0.028193103149533272, + 0.01630239188671112, + 0.0049276393838226795, + -0.002674463205039501, + 0.004179736133664846, + 0.004804566502571106, + 0.03784957155585289, + -0.0034886361099779606, + 0.03892882540822029, + 0.01142682135105133, + 0.0004795691347680986, + 0.019918834790587425, + 0.007900317199528217, + -0.029764646664261818, + -0.04051930084824562, + 0.03748982027173042, + -0.024614529684185982, + 0.006650656461715698, + -0.025031082332134247, + 0.05744652450084686, + 0.021149560809135437, + 0.03976193070411682, + 0.01267648208886385, + -0.02262643165886402, + -0.015743831172585487, + -0.028458181768655777, + -0.032699454575777054, + -0.014844454824924469, + 0.0007354773697443306, + 0.03207462280988693, + 0.009448192082345486, + 0.05097100883722305, + 0.015459817834198475, + -0.05971863493323326, + -0.006603320594877005, + 0.03601294755935669, + 0.029594236984848976, + 0.014636177569627762, + 0.009874212555587292, + -0.018460895866155624, + 0.016397062689065933, + 0.030332673341035843, + -0.02398969791829586, + -0.01465511228889227, + -0.020202847197651863, + -0.031942084431648254, + 0.009561797603964806, + -0.02580738626420498, + -0.040329959243535995, + -0.018782779574394226, + -0.02618607133626938, + -0.004499251954257488, + -0.05684062838554382, + 0.007436427753418684, + 0.010688385926187038, + -0.020619401708245277, + 0.0161603856831789, + -0.002702864585444331, + 0.014115485362708569, + -0.02071407251060009, + 0.02628074400126934, + -0.0440032035112381, + 0.01295102946460247, + -0.015658626332879066, + 0.028363510966300964, + -0.004395113326609135, + -0.023554211482405663, + 0.017703525722026825, + -0.003604608355090022, + -0.0009946399368345737, + 0.01918039843440056, + -0.005595071706920862, + -0.014645644463598728, + -0.014266959391534328, + -0.027208521962165833, + -0.04059503972530365, + -0.0031407191418111324, + 0.02955636940896511, + -0.00012677074118983, + 0.0014401866355910897, + 0.012856357730925083, + -0.003576206974685192, + 0.012856357730925083, + -0.01910466141998768, + 0.05869618430733681, + 0.027397863566875458, + -0.0223234836012125, + 0.00963280163705349, + 0.062331560999155045, + 0.0529780387878418, + 0.019445477053523064, + 9.689012222224846e-05, + -0.03402485325932503, + -0.0018709409050643444, + -0.005135916173458099, + 0.01302676647901535, + 0.0009922732133418322, + -0.0038483869284391403, + -0.02840138040482998, + -0.01450363826006651, + 0.027057047933340073, + -0.006645923014730215, + -0.029575303196907043, + -0.012581811286509037, + -0.029291288927197456, + -0.014834986999630928, + 0.004146601539105177, + -0.002646061824634671, + -0.0454043373465538, + -0.06566398590803146, + 0.027625074610114098, + 0.003805784974247217, + 0.007800912018865347, + -0.0032069890294224024, + -0.04654039442539215, + 0.01980522833764553, + -0.18101145327091217, + -0.01154042687267065, + 0.013083568774163723, + -0.011417354457080364, + -0.022721104323863983, + -0.009419790469110012, + 0.0030318473000079393, + -0.001386934076435864, + -0.0007277853437699378, + -0.033002402633428574, + -0.008936967700719833, + 0.006925202906131744, + 0.06683791428804398, + -0.015592357143759727, + 0.0009496711427345872, + 0.03122258372604847, + 0.018101146444678307, + 0.017040828242897987, + 0.03152552992105484, + -0.00014370802091434598, + -0.020070308819413185, + -0.011067070998251438, + 0.012307264842092991, + 0.009490794502198696, + 0.029348092153668404, + -0.015412481501698494, + -0.01335811521857977, + 0.027227455750107765, + -0.006608054507523775, + -0.0357857383787632, + -0.01935080625116825, + 0.005760746542364359, + 0.0256748478859663, + 0.05256148800253868, + -0.015317810699343681, + 0.00894170068204403, + -0.0012958128936588764, + -0.00047601896221749485, + -0.010641050525009632, + -0.0078103793784976006, + 0.029669973999261856, + 0.038266126066446304, + -0.007019874174147844, + -0.036126554012298584, + 0.007280220277607441, + 0.027928022667765617, + 0.03919390216469765, + -0.003119418164715171, + -0.044646967202425, + -0.020543664693832397, + 0.021906930953264236, + 0.06289958953857422, + 0.004328843671828508, + -0.0034318333491683006, + 0.002878006547689438, + -0.0007366607896983624, + -0.05634833872318268, + 0.020146045833826065, + -0.003334795357659459, + 0.004319376312196255, + -0.031108977273106575, + -0.01450363826006651, + -0.002939542755484581, + -0.0776304379105568, + 0.02575058490037918, + -0.01282795611768961, + -0.09292931109666824, + 0.01988096535205841, + 0.004724096041172743, + -0.019937768578529358, + -0.004754864145070314, + -0.00238808267749846, + 0.043283700942993164, + -0.04888824000954628, + -0.027625074610114098, + -0.01431429572403431, + 0.04797939583659172, + -0.021263165399432182, + -0.04669186845421791, + -0.0060021583922207355, + -0.021944798529148102, + -0.023289131000638008, + -0.017722461372613907, + 0.0067169261164963245, + 0.020543664693832397, + -0.009770074859261513, + -0.003670878242701292, + -0.017466848716139793, + 0.02116849459707737, + 0.009168911725282669, + -0.0691857635974884, + -0.027397863566875458, + 0.032263968139886856, + -0.04744923859834671, + -0.008918032981455326, + -0.031014306470751762, + -0.02048686146736145, + -0.01382200513035059, + -0.004449549596756697, + -0.0162171870470047, + -0.013121437281370163, + 0.0018673907034099102, + 0.02787122130393982, + -0.014361631125211716, + -0.04566941782832146, + 0.021509312093257904, + 0.014825520105659962, + -0.007876649498939514, + 0.004537120461463928, + -0.013831472024321556, + -0.06801183521747589, + -0.014806586317718029, + -0.03188528120517731, + 0.020827678963541985, + -0.0095144622027874, + 0.02650795504450798, + 0.01896265521645546, + -0.0076163033954799175, + -0.022645367309451103, + -0.030124396085739136, + -0.020524730905890465, + -0.00883756298571825, + -0.09906401485204697, + -0.03828505799174309, + 0.02238028682768345, + 0.00042010375182144344, + 0.06895855069160461, + 0.02078980952501297, + -0.004456650000065565, + -0.000536963576450944, + 0.05407622829079628, + -0.03374083712697029, + -0.005623473320156336, + 0.05415196344256401, + 0.005462531931698322, + 0.015081132762134075, + -0.007687306497246027, + 0.062407296150922775, + 0.017192302271723747, + 0.0022011068649590015, + 0.0038673211820423603, + 0.024860674515366554, + 0.020884480327367783, + -0.027965892106294632, + -0.007862448692321777, + -0.029348092153668404, + 0.0227021686732769, + -0.030806029215455055, + 0.005093314219266176, + -0.0242169089615345, + 0.01957801729440689, + -0.0040661306120455265, + -0.025712715461850166, + 0.037433017045259476, + 0.010139292106032372, + 0.016131984069943428, + -0.00875235814601183, + -0.006527583580464125, + -0.0009171278798021376, + 0.0062151686288416386, + 0.0513496957719326, + -0.09603453427553177, + -0.017760328948497772, + -0.0053536598570644855, + 0.02056259848177433, + 0.007611569948494434, + -0.0007325189071707428, + 0.005329992156475782, + -0.03447927534580231, + -0.008212732151150703, + -0.03500943258404732, + 0.018366225063800812, + -0.0264890193939209, + 0.009855278767645359, + 0.016955623403191566, + -0.025087885558605194, + 0.03328641504049301, + -0.08353792130947113, + 0.021603982895612717, + -0.010508510284125805, + 0.023667816072702408, + 0.01461724378168583, + -0.01790233701467514, + 0.0230808537453413, + 0.0021064355969429016, + 0.01135108433663845, + -0.01123747881501913, + 0.05119822174310684, + 0.014740316197276115, + -0.023213393986225128, + 0.0067926631309092045, + -0.02872326225042343, + 0.005959555972367525, + -0.010489576496183872, + 0.03368403762578964, + 0.00857248343527317, + 0.041390277445316315, + 0.026148203760385513, + -0.009145244024693966, + 0.04385172948241234, + -0.008136995136737823, + 0.0007822213228791952, + 0.005367860663682222, + -0.014976994134485722, + -0.02048686146736145, + -0.054871466010808945, + -0.01313090417534113, + 0.010659984312951565, + -0.04082224890589714, + 0.0087570920586586, + 0.0037915841676294804, + -0.0053347256034612656, + 0.0008958268444985151, + 0.005358393769711256, + -0.0505923256278038, + -0.0003020605072379112, + 0.033551495522260666, + 0.014598309062421322, + 0.018707042559981346, + 0.004059030674397945, + 0.01972949132323265, + 0.014948592521250248, + 0.001830705557949841, + -0.05169051140546799, + 0.05964289605617523, + 0.002638961421325803, + 0.021149560809135437, + 0.00860561802983284, + 0.011568828485906124, + 0.018460895866155624, + -0.015904773026704788, + -0.04449549317359924, + 0.004144234582781792, + 0.01714496687054634, + 0.0024472521618008614, + -0.028287773951888084, + -0.03061668761074543, + 0.011332150548696518, + -0.007606836035847664, + 0.02489854209125042, + 0.04396533593535423, + 0.02033538743853569, + 0.018773311749100685, + 0.026602625846862793 + ] + } + }, + { + "type": "安全警告", + "properties": { + "名称": "发动机的安全警告", + "概述": "本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。", + "警告": "1.1 警告\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。", + "注意": "1.2 注意\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "内容": "1 安全警告\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\n1.1 警告\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\n1.2 注意\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"1 安全警告\\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\\n1.1 警告\\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\\n1.2 注意\\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\\n6) 所有密封件(O形圈、金属密封环)拆装必换。\\n7) 紧固件必须按规定力矩和顺序紧固。\\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_4fcabb82-02ab-49a9-8a9a-16af0fb6477e.pdf#page=3\"}]", + "embedding": [ + -0.009610568173229694, + 0.008554934523999691, + -0.043868519365787506, + -0.006878339219838381, + -0.04532061517238617, + -0.02229728363454342, + 0.007924419827759266, + 0.02982524409890175, + -0.02260298654437065, + -0.003209891729056835, + -0.012677161023020744, + -0.01039393525570631, + 0.04696377366781235, + -0.03670358285307884, + 0.015524029731750488, + -0.06981514394283295, + 0.021647661924362183, + 0.024628276005387306, + -0.04363924264907837, + -0.00047437852481380105, + 0.0064006769098341465, + 0.0012431165669113398, + -0.011100875213742256, + 0.03177410736680031, + -0.003295870963484049, + 0.016412481665611267, + -0.04681092128157616, + -0.03849959373474121, + 0.026462499052286148, + 0.02885081246495247, + -0.010479914024472237, + -0.04616129770874977, + -0.055026713758707047, + -0.01594437286257744, + -0.00505366874858737, + -0.04035292565822601, + 0.010785617865622044, + 0.018170280382037163, + -0.04042934998869896, + 0.004468532279133797, + -0.03429616242647171, + -0.05044115334749222, + 0.04765160754323006, + -0.05789268761873245, + 0.0013087950646877289, + -0.015161005780100822, + -0.020042715594172478, + -0.02969149872660637, + 0.014530492015182972, + -0.05762519687414169, + 0.023042436689138412, + -0.02399776130914688, + 0.036627158522605896, + -0.021704981103539467, + 0.016173651441931725, + 0.0031669021118432283, + -0.002448020037263632, + 0.030092734843492508, + -0.07566173374652863, + -0.001040110015310347, + -0.033379051834344864, + -0.03580557554960251, + -0.044288862496614456, + -0.017348701134324074, + -0.01707165688276291, + 0.08506213128566742, + 0.0238640159368515, + -0.021934259682893753, + -0.013985957019031048, + -0.06545886397361755, + 0.01775949075818062, + -0.024570956826210022, + 0.02480023354291916, + -0.011311046779155731, + -0.05827482044696808, + 0.016727739945054054, + 0.024093294516205788, + -0.03454454988241196, + 0.0036445644218474627, + 0.023539206013083458, + 0.029615072533488274, + 0.01164541020989418, + -0.02134195901453495, + 0.025277897715568542, + 0.048033736646175385, + 0.03880529850721359, + -0.04367745295166969, + 0.003398568369448185, + -0.02676820382475853, + -0.033551011234521866, + 0.011368365958333015, + -0.018924986943602562, + 0.030856994912028313, + 0.01114864181727171, + -0.018590623512864113, + -0.029213836416602135, + -0.034238845109939575, + -0.014129254966974258, + 0.0115116648375988, + -0.0014891127357259393, + 0.001584645127877593, + 0.028201190754771233, + 0.016794612631201744, + -0.05005902424454689, + 0.06324250996112823, + -0.005259063560515642, + 0.061446499079465866, + 0.0176448505371809, + -0.027226759120821953, + -0.00040661016828380525, + -0.004029082600027323, + 0.016059011220932007, + 0.016173651441931725, + -0.01170273032039404, + -0.005397585686296225, + -0.021666768938302994, + -0.012543415650725365, + -0.035633619874715805, + 0.0334363728761673, + -0.04020007327198982, + 0.032270874828100204, + 0.03055129013955593, + 0.0184855367988348, + -0.049447618424892426, + 0.02674909681081772, + -0.019431307911872864, + -0.009925825521349907, + 0.0051109883934259415, + 0.017597084864974022, + -0.007914867252111435, + 0.0062526012770831585, + -0.011492558754980564, + -0.03586289659142494, + 0.015218325890600681, + -0.025870198383927345, + -0.024570956826210022, + 0.004084013868123293, + -0.006114079151302576, + 0.01171228289604187, + -0.05342176929116249, + -0.0064150067046284676, + 0.017874129116535187, + -0.007346448488533497, + 0.0021960530430078506, + 0.011740943416953087, + -0.03332173079252243, + 0.005779715720564127, + -0.030226480215787888, + 0.017014335840940475, + -0.017874129116535187, + -0.0230233296751976, + 0.022813158109784126, + 0.042301785200834274, + 0.009051703847944736, + 0.007398991379886866, + 0.015600455924868584, + -0.05621131882071495, + -0.006228718440979719, + -0.014683343470096588, + 0.05246644467115402, + 0.057930901646614075, + -0.02204889804124832, + -0.020978935062885284, + 0.008168027736246586, + 0.0016789835644885898, + 0.0030307683628052473, + 0.0217623021453619, + 0.022354602813720703, + -0.0131070576608181, + 0.006314697675406933, + 0.007456311024725437, + -0.011387472972273827, + -0.042607489973306656, + -0.04975331947207451, + 0.010413041338324547, + 0.0021339571103453636, + 0.03513684868812561, + 0.033608328551054, + -0.0025889305397868156, + -0.01671818643808365, + -0.02860242687165737, + 0.02065412513911724, + 0.021685875952243805, + 0.006453219801187515, + -0.024933980777859688, + 0.020826082676649094, + 0.05491207540035248, + -0.023080648854374886, + 0.009161565452814102, + -0.01108176913112402, + -0.022526560351252556, + -0.0386524461209774, + 0.022774945944547653, + 0.00218888814561069, + 0.03246194124221802, + -0.029175622388720512, + 0.01170273032039404, + -0.00910902302712202, + 0.0024253311567008495, + 0.0008538216352462769, + -0.005703289527446032, + -0.02690194919705391, + 0.01651756837964058, + -0.01030795555561781, + -0.02120821364223957, + 0.021227318793535233, + -0.010021357797086239, + -0.028908131644129753, + -0.01032706256955862, + -0.05995618924498558, + -0.0024217485915869474, + -0.018896326422691345, + -0.02021467499434948, + 0.011664517223834991, + -0.03532791510224342, + -0.0024814563803374767, + -0.000927859335206449, + -0.040085431188344955, + -0.004248807672411203, + -0.028277616947889328, + -0.047078412026166916, + 0.03962687775492668, + -0.05067043378949165, + -0.008736446499824524, + 0.014769323170185089, + 0.005622087046504021, + 0.026710884645581245, + 0.02997809462249279, + 0.02246924117207527, + -0.021513916552066803, + -0.0012598347384482622, + 0.00930964108556509, + -0.008115485310554504, + 0.0006364852306433022, + 0.06312786787748337, + 0.031067166477441788, + -0.02216353826224804, + 0.023329034447669983, + 0.024227039888501167, + 0.04459456726908684, + 0.024150613695383072, + -0.05686093866825104, + -0.02285137213766575, + -0.015504922717809677, + -0.023730270564556122, + 0.017921894788742065, + 0.04111718386411667, + 0.02944311313331127, + -0.022908691316843033, + 0.030150054022669792, + 0.027093013748526573, + -0.025201471522450447, + -0.02885081246495247, + 0.014969941228628159, + 0.04042934998869896, + 0.025010405108332634, + 0.012715374119579792, + -0.015953926369547844, + 0.009185449220240116, + -0.02174319513142109, + 0.021838726475834846, + 0.02843046933412552, + 0.024857554584741592, + 0.020673230290412903, + -0.005655523389577866, + 0.020310208201408386, + -0.005880024749785662, + 0.02606126293540001, + 0.00529727665707469, + -0.021953366696834564, + -0.012447883374989033, + -0.014530492015182972, + 0.0367991141974926, + 0.004939029924571514, + -0.004222535993903875, + 0.0011081768898293376, + -0.027513356879353523, + 0.002450408414006233, + 0.04375388100743294, + -0.018581070005893707, + 0.02245013602077961, + 0.004375387914478779, + 0.02090250886976719, + -0.04062041640281677, + 0.003436781233176589, + -0.02608036994934082, + -0.1183074340224266, + -0.029328474774956703, + -0.026443393900990486, + -0.05067043378949165, + -0.05594382807612419, + -0.027303185313940048, + 0.06618490815162659, + -0.02707390859723091, + -0.0008627778152003884, + 0.047078412026166916, + 0.008349539712071419, + -0.16783148050308228, + 0.020692337304353714, + -0.00048721570055931807, + 0.03544255346059799, + 0.015409390442073345, + 0.005913461092859507, + -0.006505762692540884, + -0.023118862882256508, + 0.0044470373541116714, + 0.008072495460510254, + -0.02313796989619732, + -0.05483565106987953, + 0.03823210299015045, + -0.01295420527458191, + 0.023367246612906456, + -0.00850239209830761, + -0.010479914024472237, + 0.001837806310504675, + 0.029939882457256317, + -0.044556353241205215, + -0.020004503428936005, + -0.006109302863478661, + 0.05101434886455536, + -0.03330262750387192, + -0.04207250848412514, + -0.06664346158504486, + 0.08643779903650284, + -0.011435238644480705, + -0.041881442070007324, + -0.008722116239368916, + -0.044670991599559784, + 0.005808375310152769, + -0.017807256430387497, + 0.060720451176166534, + 0.019421754404902458, + 0.018523748964071274, + -0.0147024504840374, + -0.0485687181353569, + 0.018561962991952896, + -0.009405173361301422, + 0.045970235019922256, + 0.050555795431137085, + -0.02411239966750145, + 0.0013111834414303303, + -0.009032596834003925, + -0.045091334730386734, + 0.007919643074274063, + -0.018991859629750252, + -0.02690194919705391, + -0.007800227962434292, + 0.015504922717809677, + -0.008894074708223343, + -0.022239964455366135, + -0.00044542024261318147, + -0.01513234619051218, + 0.018361344933509827, + -0.03053218312561512, + 0.04035292565822601, + -0.012849119491875172, + -0.015466710552573204, + -0.04199608415365219, + -0.06813377141952515, + 0.004881710279732943, + -0.04199608415365219, + -0.03454454988241196, + 0.014291660860180855, + 0.06561171263456345, + 0.004234477411955595, + 0.017902787774801254, + -0.016660865396261215, + -0.00498679606243968, + 0.004910369869321585, + 0.0641978308558464, + -0.026405179873108864, + 0.021800514310598373, + -0.009519812650978565, + -0.0011899765813723207, + -0.022125324234366417, + -0.01414836198091507, + -0.12189945578575134, + 0.0030474865343421698, + 0.01817983202636242, + -0.01451138500124216, + -0.01248609647154808, + -0.010862044058740139, + -0.001818699762225151, + 0.010642318986356258, + 0.01863838918507099, + 0.019603267312049866, + 0.21949544548988342, + 0.0003251089947298169, + -0.012810907326638699, + 0.004523463547229767, + 0.061828628182411194, + -0.010413041338324547, + -0.04165216535329819, + -0.017119422554969788, + 0.008745999075472355, + -0.038843508809804916, + -0.022392814978957176, + -0.028908131644129753, + 0.0423399992287159, + -0.0002682373160496354, + 0.011731389909982681, + -0.0022306835744529963, + -0.00162166403606534, + 0.037295885384082794, + 0.10011804848909378, + -0.026538925245404243, + 0.026997482404112816, + 0.027532463893294334, + 0.03653162345290184, + 0.013021077960729599, + -0.0650385171175003, + -0.024914873763918877, + -0.044288862496614456, + 0.037869080901145935, + -0.0016252464847639203, + -0.009858952835202217, + -0.0027465589810162783, + 0.03219445049762726, + 0.010164656676352024, + -0.011750495992600918, + -0.04826301336288452, + 0.04562631621956825, + -0.033245306462049484, + -0.06007083132863045, + -0.010126443579792976, + 0.005020232405513525, + 0.0006735040806233883, + -0.016020799055695534, + -0.008874968625605106, + 0.01724361442029476, + 0.006558305583894253, + -0.04039113596081734, + -0.014263000339269638, + -0.00728435255587101, + -0.016307396814227104, + 0.0019070673733949661, + -0.018475983291864395, + 0.023615632206201553, + -0.06947122514247894, + 0.008927511051297188, + -0.016221417114138603, + 0.006949988659471273, + 0.010298402048647404, + -0.047078412026166916, + 0.025602707639336586, + 0.03683732822537422, + 0.027417825534939766, + 0.005645970348268747, + -0.028755279257893562, + 0.091405488550663, + 0.0014520938275381923, + -0.018762581050395966, + -0.032270874828100204, + -0.000551103032194078, + -0.0002200232702307403, + 0.0562877431511879, + 0.04111718386411667, + 0.011282387189567089, + -0.025488069280982018, + 0.026538925245404243, + 0.007776344660669565, + 0.010632766410708427, + 0.01450183242559433, + 0.0811644047498703, + -0.03399046137928963, + 0.017195848748087883, + -0.010986235924065113, + -0.009500706568360329, + -0.03196517005562782, + -5.034114292357117e-05, + 0.008564488030970097, + -0.03204159811139107, + 0.005278170108795166, + 0.03622591868042946, + -0.01603035256266594, + 0.02523968368768692, + -0.009462493471801281, + -0.0010622019181028008, + 0.019498180598020554, + 0.012495649978518486, + -0.016679972410202026, + 0.023214394226670265, + 0.020921615883708, + 0.012466990388929844, + -0.004346728324890137, + 0.00783844105899334, + 0.015352071262896061, + -0.04963868111371994, + 0.004050577525049448, + 0.01724361442029476, + -0.027532463893294334, + 0.05036472901701927, + -0.011826922185719013, + 0.017415573820471764, + -0.014817088842391968, + -0.003169290255755186, + -0.01977522484958172, + 0.012495649978518486, + 0.007427650969475508, + -0.008459402248263359, + 0.006391123402863741, + 0.02426525205373764, + -0.014196127653121948, + 0.0367991141974926, + 0.03167857229709625, + 0.010900257155299187, + -0.052084311842918396, + -0.0011881852988153696, + -0.035920217633247375, + 0.02942400611937046, + 0.0004827376105822623, + 0.008048612624406815, + -0.03643609210848808, + -0.008664797060191631, + 0.008072495460510254, + 0.036034855991601944, + -0.008774659596383572, + -0.0033914034720510244, + -0.02885081246495247, + 0.009161565452814102, + 0.01744423247873783, + 0.01518966630101204, + -0.002765665529295802, + 0.028678853064775467, + 0.050135452300310135, + 0.007981739938259125, + -0.022794052958488464, + 0.049867961555719376, + 0.0031024175696074963, + -0.007542290259152651, + 0.0015524029731750488, + -0.023367246612906456, + -0.007265246007591486, + -0.034353483468294144, + -0.0011684817727655172, + 0.05888622626662254, + 0.0032552694901823997, + 0.02288958430290222, + 0.06278394907712936, + -0.06507673114538193, + 0.01992807723581791, + -0.03485025092959404, + -0.03819388896226883, + 0.009515035897493362, + -0.02661535143852234, + -0.01409104187041521, + 0.012877780012786388, + -0.011406579054892063, + 0.05128183960914612, + 0.026538925245404243, + 0.041843231767416, + 0.06473281234502792, + 0.01640292815864086, + 0.035767365247011185, + 0.011043556034564972, + 0.006577412132173777, + 0.042989619076251984, + 0.00624304823577404, + -0.017176741734147072, + 0.035920217633247375, + 0.03804103657603264, + -0.019163817167282104, + -0.034812040627002716, + -0.006271707825362682, + -0.022125324234366417, + 0.07203149795532227, + 0.06190505251288414, + 0.0532689169049263, + -0.04558810591697693, + 0.03609217330813408, + -0.023462779819965363, + 0.02229728363454342, + 0.04062041640281677, + -0.0032839293126016855, + 0.04058220237493515, + 0.0002936131495516747, + -0.006266931537538767, + 0.07887162268161774, + -0.027150332927703857, + -0.007045520935207605, + 0.019498180598020554, + -0.03181231766939163, + 0.024035975337028503, + 0.03391403332352638, + 0.009710877202451229, + -0.020252887159585953, + 0.0374678410589695, + -0.011521218344569206, + 0.013871317729353905, + -0.0022581492085009813, + -0.018781688064336777, + -0.04409779608249664, + 0.0013159600785002112, + -0.0022521784994751215, + 0.013632486574351788, + -0.0019225913565605879, + -0.01658444106578827, + -0.020558591932058334, + -0.029767923057079315, + 0.03274853900074959, + -0.028411362320184708, + -0.016813717782497406, + 0.019230689853429794, + 0.062248971313238144, + 0.012744034640491009, + -0.013087951578199863, + 9.396515815751627e-05, + 0.01024108286947012, + 0.07012084871530533, + -0.04207250848412514, + -0.03223266080021858, + -0.003802193095907569, + -0.015227879397571087, + -0.06836304813623428, + 0.04444171488285065, + 0.015925265848636627, + 0.009424280375242233, + 0.007805004250258207, + -0.0019010965479537845, + 0.011349259875714779, + 0.06633776426315308, + 0.015371177345514297, + -0.010862044058740139, + 0.037716228514909744, + 0.026538925245404243, + -0.015753308311104774, + -0.004996349103748798, + 0.006180952303111553, + 0.010833384469151497, + 0.03068503551185131, + -0.0031931735575199127, + 0.027264973148703575, + -0.0076760356314480305, + -0.026978375390172005, + -0.013775785453617573, + 0.028946343809366226, + -0.008005622774362564, + 0.041078969836235046, + 0.014463619329035282, + -0.0401618592441082, + -0.006582188419997692, + 0.0014520938275381923, + 0.006572635378688574, + 0.03473561257123947, + -0.017835915088653564, + 0.0004206415032967925, + 0.004344339948147535, + 0.015638668090105057, + -0.024991299957036972, + -0.012772694230079651, + -0.025297002866864204, + -0.028487788513302803, + 0.008287443779408932, + 0.007050297688692808, + -0.017721276730298996, + -0.05506492778658867, + -0.014473171904683113, + -0.016393374651670456, + -0.030092734843492508, + -0.047880884259939194, + -0.0035944099072366953, + 0.028334936127066612, + -0.023386353626847267, + 0.021093573421239853, + 0.02997809462249279, + -0.017616191878914833, + -0.01325991004705429, + 0.020692337304353714, + -0.058198392391204834, + 0.041193608194589615, + 0.04658164083957672, + 0.016431588679552078, + 0.06064402312040329, + -0.032137129455804825, + 0.0073703317902982235, + -0.01317393034696579, + 0.016078118234872818, + -0.032156236469745636, + -0.06798092275857925, + 0.036894649267196655, + -0.05105256289243698, + 0.017988767474889755, + -0.01506547350436449, + 0.026137689128518105, + 0.0013744736788794398, + 0.013212143443524837, + 0.02329082041978836, + -0.025602707639336586, + -0.016689525917172432, + 0.013613379560410976, + 0.009409950114786625, + 0.017826363444328308, + -0.01598258502781391, + 0.005287723150104284, + 0.019469521939754486, + 0.012658054940402508, + 0.0448620580136776, + -0.04459456726908684, + 0.024914873763918877, + 0.01902051828801632, + 0.013508293777704239, + -0.009868506342172623, + 0.04325710982084274, + 0.022832265123724937, + 0.014167468063533306, + 0.013087951578199863, + 0.0009780138498172164, + -0.020940721035003662, + -0.018934540450572968, + 0.02411239966750145, + -0.0468873456120491, + 0.02718854695558548, + -0.08215793967247009, + 0.0009738343069329858, + 0.0072222561575472355, + -0.048033736646175385, + -0.027971914038062096, + -0.004714528564363718, + -0.011139088310301304, + 0.04054398834705353, + 0.03567183017730713, + 0.024055080488324165, + -0.02455184981226921, + -0.031067166477441788, + 0.021552130579948425, + -0.033531904220581055, + 0.023768482729792595, + -0.008574040606617928, + 0.019469521939754486, + 0.016479354351758957, + 0.014750216156244278, + -0.03376118093729019, + -0.009653558023273945, + 0.01609722524881363, + 0.05036472901701927, + -0.004549734760075808, + 0.018428217619657516, + 0.005311606451869011, + -0.001033542095683515, + -0.06832483410835266, + -0.002190082333981991, + 0.0684012621641159, + -0.03011184185743332, + -0.03347458317875862, + 0.006314697675406933, + 0.008062941953539848, + 0.01860017515718937, + 0.007876654155552387, + -0.0359584279358387, + -0.0052351802587509155, + 0.009935379028320312, + 0.030933421105146408, + -0.010441700927913189, + 0.056937362998723984, + -0.005918237846344709, + -0.005574320908635855, + -0.019268903881311417, + 0.021150892600417137, + -0.011846029199659824, + 0.04799552261829376, + 0.0028158200439065695, + 0.02357741817831993, + -0.020998042076826096, + -0.02019556798040867, + 0.02619500830769539, + -6.814153312006965e-05, + -0.004824390634894371, + -0.05594382807612419, + -0.03863333910703659, + -0.0033030358608812094, + 0.06538243591785431, + -0.031067166477441788, + -0.045129548758268356, + -0.008110708557069302, + 0.01589660719037056, + 0.012027540244162083, + -0.011836475692689419, + -0.013823551125824451, + -0.044823843985795975, + 0.009405173361301422, + -0.15682613849639893, + -0.0245327427983284, + -0.004415989387780428, + -0.04849229380488396, + -0.02787638083100319, + -0.014329873956739902, + -0.0008544187294319272, + -0.01693790964782238, + -0.011416132561862469, + -0.007805004250258207, + 0.006453219801187515, + 0.006071089766919613, + 0.06415961682796478, + -0.005321159493178129, + 0.0051730843260884285, + 0.018647942692041397, + 0.020978935062885284, + 0.010604106821119785, + 0.01835179142653942, + 0.02690194919705391, + -0.02271762676537037, + 0.011683623306453228, + -0.006529645528644323, + 0.035079531371593475, + -0.016593992710113525, + -0.03137287124991417, + -0.006572635378688574, + -0.014817088842391968, + -0.017816809937357903, + 0.016699079424142838, + 0.002089773304760456, + -0.020673230290412903, + 0.028545107692480087, + 0.061446499079465866, + 0.024762021377682686, + -0.036894649267196655, + 0.0017171965446323156, + -0.00416282843798399, + -0.00964400451630354, + -0.01685193181037903, + 0.041843231767416, + 0.019985396414995193, + -0.027360504493117332, + 0.0031907851807773113, + -0.004788565915077925, + 0.09430967271327972, + -0.03288228437304497, + -0.012113519944250584, + -0.042722128331661224, + 0.01793144829571247, + -0.023634737357497215, + 0.00982073973864317, + 0.023902229964733124, + -0.03399046137928963, + -0.0038380178157240152, + 0.015409390442073345, + -0.028048338368535042, + -0.0064006769098341465, + -0.008507167920470238, + 0.0680573433637619, + -0.06522958725690842, + -0.0035872450098395348, + -0.04379209503531456, + -0.04062041640281677, + -0.007203149609267712, + -0.001044886652380228, + -0.07321610301733017, + 0.03278674930334091, + 0.018714815378189087, + 0.009252321906387806, + -0.02606126293540001, + -0.02019556798040867, + 0.019030071794986725, + 0.0008227735524997115, + -0.0026223668828606606, + -0.03836584836244583, + 0.047613393515348434, + -0.032977815717458725, + -0.022966010496020317, + -0.022832265123724937, + -0.05816017836332321, + 0.009954485110938549, + -0.015686435624957085, + -0.0053354897536337376, + -0.0020694725681096315, + 0.015323411673307419, + -0.034773826599121094, + 0.013947743922472, + 0.022488348186016083, + -0.020558591932058334, + -0.03664626181125641, + -0.02246924117207527, + -0.0013195425271987915, + 0.020864296704530716, + -0.04639057815074921, + -0.0033149775117635727, + -0.0014341814676299691, + -0.07535602897405624, + -0.03538523614406586, + -0.06958586722612381, + 0.0020873849280178547, + -0.018561962991952896, + 0.018982306122779846, + -0.015113240107893944, + -0.01017421018332243, + 0.001184005755931139, + 0.03811746463179588, + -0.012505202554166317, + 0.014559151604771614, + -0.03802192956209183, + -0.01088115107268095, + -0.004666761960834265, + -0.025182364508509636, + 0.010470360517501831, + -0.04237821325659752, + -0.014138808473944664, + -0.03473561257123947, + -0.04814837500452995, + -0.04405958577990532, + 0.0040051997639238834, + -0.016154544427990913, + 0.015218325890600681, + 0.010413041338324547, + -0.033780287951231, + -0.021972471848130226, + -0.015227879397571087, + -0.001776904333382845, + 0.02246924117207527, + 0.007141053676605225, + -0.02636696770787239, + 0.03593932464718819, + -0.018103407695889473, + -0.024914873763918877, + 0.011100875213742256, + 0.015208772383630276, + 0.02567913383245468, + 0.012877780012786388, + 0.04367745295166969, + -0.043295323848724365, + -0.050823286175727844, + 0.04562631621956825, + 0.04558810591697693, + 0.011893794871866703, + -0.0473841167986393, + 0.03164036199450493, + -0.008139368146657944, + 0.02258388139307499, + -0.022698519751429558, + 0.01742512546479702, + -0.008058165200054646, + 0.032557472586631775, + 0.02592751756310463, + -0.027647102251648903, + 0.05258108302950859, + -0.020692337304353714, + 0.034085992723703384, + -0.032156236469745636, + 0.054873861372470856, + -0.015801073983311653, + 0.026175903156399727, + -0.0006054371478967369, + -0.03641698509454727, + 0.013049738481640816, + -0.03599664196372032, + 0.014272553846240044, + 0.028506895527243614, + 0.013431868515908718, + 0.005703289527446032, + -0.036627158522605896, + 0.00019927480025216937, + -0.021819621324539185, + -0.0054310220293700695, + -0.019517287611961365, + 0.022946903482079506, + -0.009233214892446995, + -0.0319269597530365, + 0.019431307911872864, + -0.04042934998869896, + 0.09239902347326279, + -0.009271427989006042, + 0.015036813914775848, + 0.04111718386411667, + 0.019555501639842987, + 0.010756958276033401, + -0.038556914776563644, + 0.042607489973306656, + 0.05911550670862198, + 0.02481934055685997, + -0.05231359228491783, + -0.008984831161797047, + -0.026825523003935814, + 0.02816297858953476, + -0.03867155313491821, + -0.02564091980457306, + 0.036073070019483566, + -0.008273113518953323, + 0.023653844371438026, + 0.02971060387790203, + 0.020042715594172478, + 0.02944311313331127, + -0.008851084858179092, + -0.014989047311246395, + 0.04574095457792282, + -0.024991299957036972, + -0.051931463181972504, + 0.04646700248122215, + 0.03760158643126488, + 0.025602707639336586, + -0.05594382807612419, + 0.0562877431511879, + -0.020119141787290573, + -0.011674070730805397, + 0.042989619076251984, + 0.021533023566007614, + -0.03280585631728172, + 0.009037373587489128, + -0.016269182786345482, + 7.243303116410971e-05, + 0.007996069267392159, + -0.02787638083100319, + 0.009811187162995338, + 0.008989606983959675, + 0.03217534348368645, + 0.0011690788669511676, + 0.04696377366781235, + -0.01603035256266594, + -0.032442834228277206, + -0.025736453011631966, + 0.013288569636642933, + -0.05422424152493477, + -0.0025984838139265776, + 0.020424846559762955, + -0.0004149692540522665, + 0.05345998331904411, + 0.008129814639687538, + 0.010193316265940666, + -0.019603267312049866, + 0.0224310290068388, + -0.032442834228277206, + -0.01811295934021473, + 0.043715666979551315, + 0.05005902424454689, + 0.017300933599472046, + 0.024150613695383072 + ] + } + }, + { + "type": "功能", + "properties": { + "名称": "发动机的功能", + "内容": "2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑;\n2) 曲柄连杆机构:实现往复—旋转运动转换;\n3) 燃烧室部件:完成燃烧做功;\n4) 排气阀驱动系统:控制废气排放;\n5) 燃油喷射系统:完成燃油定时、定量喷射;\n6) 扫气与增压系统:提高换气效率与功率密度。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"2.1 主要功能\\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\\n发动机主要由以下子系统组成:\\n1) 机座与机架组件:承载与结构支撑;\\n2) 曲柄连杆机构:实现往复—旋转运动转换;\\n3) 燃烧室部件:完成燃烧做功;\\n4) 排气阀驱动系统:控制废气排放;\\n5) 燃油喷射系统:完成燃油定时、定量喷射;\\n6) 扫气与增压系统:提高换气效率与功率密度。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_d9af3a31-8ac8-4a27-a14a-a5650442afca.pdf#page=4\"}]", + "embedding": [ + -0.0022965932730585337, + -0.01660187914967537, + -0.01820913329720497, + 0.009749393910169601, + -0.014494162984192371, + -0.03147139027714729, + 0.034608904272317886, + 0.0028247255831956863, + -0.0038809902034699917, + -0.014215058647096157, + -0.04084543511271477, + -0.005851561203598976, + 0.0029354048892855644, + 0.0012186742387712002, + -0.01373384427279234, + -0.045003123581409454, + 0.01852673478424549, + 0.02379121445119381, + -0.04261630401015282, + -0.008555983193218708, + -0.003180823754519224, + -0.03010474145412445, + 0.004768829792737961, + 0.01723708212375641, + 0.011722370982170105, + 0.03212583810091019, + -0.02153913490474224, + -0.01905607059597969, + 0.021654624491930008, + 0.005822688341140747, + 0.0009034791146405041, + -0.05254855751991272, + -0.06817838549613953, + 0.01707346923649311, + -0.015870435163378716, + -0.0379004068672657, + 0.02067294903099537, + -0.02265555039048195, + -0.031047921627759933, + 0.025889307260513306, + -0.011895607225596905, + -0.03422393277287483, + 0.011837861500680447, + -0.048198383301496506, + -0.03447416424751282, + -0.02706347033381462, + -0.009970751591026783, + -0.03320375829935074, + -0.04546508938074112, + -0.040036994963884354, + -0.034531909972429276, + -0.025523584336042404, + 0.03145214170217514, + -0.0032770666293799877, + 0.023694971576333046, + 0.012347948737442493, + -0.057399194687604904, + 0.019672024995088577, + -0.08469364792108536, + -0.004751987289637327, + 0.015985926613211632, + 0.004477695096284151, + -0.024176185950636864, + -0.019710522145032883, + 0.0187673419713974, + 0.03774641826748848, + -0.016342023387551308, + -0.006510823965072632, + -0.013589480891823769, + -0.07603179663419724, + 0.03233757242560387, + -0.004727926570922136, + -0.009821576066315174, + -0.01892133057117462, + -0.02719821035861969, + 0.04022948071360588, + 0.007660925388336182, + -0.01905607059597969, + -0.02769867144525051, + -0.00603442220017314, + 0.013377746567130089, + -0.0011494996724650264, + 0.027563931420445442, + 0.0034503035712987185, + -0.0028271316550672054, + 0.0118571100756526, + -0.041461389511823654, + 0.03433942422270775, + -0.03251080960035324, + -0.03940179571509361, + -0.019604654982686043, + -0.0024926878977566957, + 0.007617616094648838, + -0.02286728471517563, + -0.04808289185166359, + -0.023425493389368057, + -0.04226982966065407, + 0.012405694462358952, + 0.005317413713783026, + -0.00750693678855896, + 0.021269654855132103, + 0.019566157832741737, + 0.02202034741640091, + -0.037861909717321396, + 0.02719821035861969, + -0.011847485788166523, + 0.0052307951264083385, + 0.004229870159178972, + -0.014215058647096157, + -0.005832312628626823, + 0.023560231551527977, + 0.039767514914274216, + 0.00033173683914355934, + 0.010904306545853615, + -0.02294427901506424, + -0.01897907629609108, + 0.012396070174872875, + -0.024176185950636864, + 0.00956653244793415, + 0.015235232189297676, + -0.03212583810091019, + 0.009215245954692364, + -0.022116590291261673, + -0.011221908032894135, + -0.03739994391798973, + -0.022270578891038895, + 0.036937978118658066, + 0.02642826735973358, + -0.03818913549184799, + -0.00812770240008831, + -0.014782890677452087, + 0.0038906142581254244, + -0.03179861605167389, + 0.01826687902212143, + -0.0038689598441123962, + -0.032530058175325394, + 0.04808289185166359, + 0.035667575895786285, + -0.014253555797040462, + -0.02024948038160801, + 0.01601479761302471, + 0.01766055077314377, + -0.006761055439710617, + -0.006414581090211868, + 0.011193035170435905, + -0.016823237761855125, + 0.007766792085021734, + 0.0009630293352529407, + -0.026235781610012054, + -0.022751793265342712, + 0.005317413713783026, + 0.02706347033381462, + 0.0481598861515522, + 0.03507087007164955, + -0.04469514638185501, + 0.0347243957221508, + -0.059670522809028625, + 0.03705346956849098, + -0.011491388082504272, + 0.04277029260993004, + 0.08584856241941452, + 0.018834711983799934, + -0.015187110751867294, + 0.015177486464381218, + 0.02875734306871891, + -0.049045320600271225, + 0.04080693796277046, + 0.030508961528539658, + -0.04469514638185501, + 0.001958540640771389, + 0.007733107544481754, + 0.015235232189297676, + -0.0333000011742115, + -0.012155462987720966, + 0.03999849781394005, + 0.010731070302426815, + 0.05378046631813049, + 0.024734394624829292, + -0.03227982670068741, + -0.026601504534482956, + -0.007425130344927311, + 0.0046798051334917545, + 0.01900794915854931, + -0.002757355570793152, + 0.000638811441604048, + 0.011279653757810593, + 0.04261630401015282, + -0.028930580243468285, + -0.0010863404022529721, + -0.02613953873515129, + -0.03480139002203941, + -0.045080117881298065, + 0.016486387699842453, + 0.016909856349229813, + 0.015052370727062225, + -0.04662000387907028, + 0.015100492164492607, + 0.010682948864996433, + 0.02542734146118164, + 0.0066648125648498535, + 0.03637976944446564, + -0.01744881644845009, + -0.0006592630525119603, + -0.017265954986214638, + -0.009451040998101234, + -0.008950578048825264, + -0.03626427799463272, + -0.029354047030210495, + -0.03872809559106827, + -0.04022948071360588, + 0.03620653226971626, + -0.04242381826043129, + 0.010317225940525532, + -0.02775641717016697, + -0.018141763284802437, + 0.010548208840191364, + -0.027852660045027733, + -0.02429167740046978, + 0.03992150351405144, + -0.03911306709051132, + -0.02712121605873108, + 0.09016023576259613, + 0.025446590036153793, + -0.02450341172516346, + 0.011568382382392883, + -0.048621851950883865, + 0.07838012278079987, + 0.016111040487885475, + 0.002969089662656188, + -0.02280953899025917, + 0.013868584297597408, + 0.013069769367575645, + -0.005817876197397709, + -0.004456040915101767, + 0.002046362031251192, + -0.0023074205964803696, + -0.02577381581068039, + -0.005394408013671637, + 0.04723595455288887, + 0.014388295821845531, + 0.015658700838685036, + -0.04076844081282616, + -0.020307226106524467, + -0.010682948864996433, + -0.015177486464381218, + 0.01892133057117462, + 0.04022948071360588, + 0.00755987036973238, + -0.033453989773988724, + 0.01434017438441515, + 0.011347023770213127, + -0.014917630702257156, + -0.03512861579656601, + 0.0093836709856987, + 0.02344474196434021, + 0.014397920109331608, + 0.021558383479714394, + 0.0022653143387287855, + 0.01267517451196909, + -0.03426242992281914, + 0.0005139965796843171, + 0.040537457913160324, + 0.03624502941966057, + 0.015100492164492607, + -0.02067294903099537, + 0.03306901827454567, + 0.02024948038160801, + 0.008358685299754143, + 0.0016481576021760702, + 0.0474284403026104, + -0.010962052270770073, + -0.039421044290065765, + 0.02323300763964653, + 0.0052259829826653, + 0.020133988931775093, + -0.00541846826672554, + -0.012809913605451584, + 0.019469914957880974, + 0.01858448050916195, + -0.02817988581955433, + 0.014773266389966011, + 0.017593180760741234, + 0.028699597343802452, + 0.018805839121341705, + 0.0175258107483387, + -0.015312226489186287, + -0.06883283704519272, + -0.03984450921416283, + -0.004910788033157587, + -0.048198383301496506, + -0.039055321365594864, + -0.036803238093853, + 0.06917931139469147, + -0.03018173575401306, + -0.017833787947893143, + 0.060863934457302094, + 0.019036822021007538, + -0.17446890473365784, + 0.02577381581068039, + -0.033473238348960876, + 0.00385933555662632, + 0.0008661850006319582, + 0.0006953540723770857, + 0.016005173325538635, + -0.027024973183870316, + -0.0045979986898601055, + 0.0054810261353850365, + -0.058323126286268234, + -0.06917931139469147, + -0.030759193003177643, + -0.04311676695942879, + -0.004039790481328964, + -0.032260578125715256, + -0.006486763246357441, + 0.023617977276444435, + -0.012906156480312347, + 0.006939104292541742, + -0.010913930833339691, + -0.02307901903986931, + 0.039209309965372086, + -0.025793064385652542, + -0.026312775909900665, + -0.02606254443526268, + -0.0018165825167670846, + 0.03343474119901657, + -0.042962778359651566, + -0.018536359071731567, + 0.023175261914730072, + 0.000466476718429476, + -0.008426055312156677, + 0.04935329779982567, + 0.004049414768815041, + 0.0005867801955901086, + 0.00011834854376502335, + -0.02238607034087181, + -0.0031447329092770815, + -0.006044046487659216, + 0.035532835870981216, + 0.03129815310239792, + -0.01459040492773056, + 0.04665850102901459, + -0.046004049479961395, + -0.037650175392627716, + 0.0052548558451235294, + -0.03470514714717865, + -0.0403449721634388, + -0.022828787565231323, + 0.04527260363101959, + -0.030258730053901672, + -0.03152913600206375, + -0.010538584552705288, + -0.06960278004407883, + -0.010500087402760983, + 0.008368309587240219, + 0.005894870031625032, + 0.03023948147892952, + 0.015880059450864792, + -0.045657575130462646, + 4.199343311483972e-05, + 0.03430092707276344, + -0.02746768854558468, + -0.031914107501506805, + 0.024907631799578667, + 0.04758242890238762, + 0.03455115854740143, + -0.009773454628884792, + -0.008161387406289577, + 0.014282428659498692, + -0.00396520271897316, + 0.00015955248090904206, + 0.009263367392122746, + -0.012963902205228806, + 0.003515267511829734, + -0.030797690153121948, + -0.014503787271678448, + -0.02421468310058117, + -0.09878358989953995, + 0.011539509519934654, + 0.00026150967460125685, + 0.004222651943564415, + -0.03938254714012146, + 0.005601329728960991, + -0.040267977863550186, + 0.006241344381123781, + -0.032607052475214005, + 0.03539809584617615, + 0.2619343400001526, + -0.00352489179931581, + 0.01086580939590931, + 0.02217433601617813, + 0.039613526314496994, + -0.035301852971315384, + -0.04611954092979431, + -0.023848960176110268, + 0.01243456732481718, + -0.023002024739980698, + -0.017054220661520958, + -0.0013281503925099969, + 0.04165387526154518, + 0.015687573701143265, + 0.022559307515621185, + -0.021904855966567993, + -0.002083656145259738, + 0.010654076002538204, + 0.07891908288002014, + -0.037784915417432785, + 0.023117516189813614, + 0.009215245954692364, + 0.008300939574837685, + 0.0011218298459425569, + -0.029007574543356895, + -0.013878208585083485, + -0.01937367208302021, + -0.0011410784209147096, + 0.001083934330381453, + -0.005375159438699484, + -0.008527110330760479, + 0.002057189354673028, + 0.03168312460184097, + -0.012309451587498188, + -0.034955378621816635, + -0.02038422040641308, + -0.022501561790704727, + 0.00598148861899972, + 0.03780416399240494, + 0.008012210950255394, + -0.020980926230549812, + -0.014571157284080982, + -0.01633239910006523, + 0.024734394624829292, + -0.015523960813879967, + -0.05020023509860039, + -0.006688873283565044, + 0.007266330067068338, + 0.00044361906475387514, + 0.0048963516019284725, + 0.002099295612424612, + 0.062018848955631256, + -0.03847786411643028, + 0.010317225940525532, + 0.01086580939590931, + -0.0364760123193264, + 0.030431967228651047, + 0.042462315410375595, + 0.027255956083536148, + 0.002335090423002839, + 0.0616338774561882, + -0.0209039319306612, + 0.009123815223574638, + 0.025331100448966026, + -0.008782153949141502, + -0.07256705313920975, + -0.03855485841631889, + -0.048467863351106644, + 0.03512861579656601, + 0.01908494345843792, + 0.03599479794502258, + 0.001733573037199676, + -0.0036596315912902355, + 0.020557457581162453, + 0.009715708903968334, + 0.05370347201824188, + 0.010856185108423233, + 0.054088443517684937, + -0.04088393226265907, + -0.016659624874591827, + -0.054357923567295074, + -0.022193584591150284, + -0.05397295206785202, + -0.040537457913160324, + 0.012376821599900723, + -0.006231720093637705, + -0.022078093141317368, + -0.0058419369161129, + 0.016669249162077904, + 0.0005687346565537155, + -0.025465838611125946, + -0.005991112906485796, + 0.034531909972429276, + -0.0056446390226483345, + 0.0070257228799164295, + -0.0061402893625199795, + 0.02238607034087181, + -0.03534035012125969, + 0.0006989631801843643, + 0.017756793648004532, + -0.014465290121734142, + -0.05716821178793907, + -0.023483239114284515, + -0.01601479761302471, + -0.021231157705187798, + 0.04157688096165657, + 0.02329075336456299, + 0.03674549236893654, + -0.017583556473255157, + 0.06906381994485855, + 0.015244856476783752, + 0.0054280925542116165, + -0.007968902587890625, + 0.010471214540302753, + 0.011106416583061218, + -0.006053670775145292, + -0.00286803487688303, + 0.05501237139105797, + 0.034377921372652054, + 0.052240580320358276, + -0.062211330980062485, + 0.05816913768649101, + -0.007810101378709078, + -0.004737550858408213, + -0.022963527590036392, + -0.01295427791774273, + -0.009210433810949326, + -0.03776566684246063, + -0.017015723511576653, + 0.0066359397023916245, + 0.037072718143463135, + -0.009787891060113907, + -0.0029883382376283407, + -0.019277429208159447, + 0.008791778236627579, + -0.00402535405009985, + 0.011914855800569057, + 0.03278028964996338, + 0.021770115941762924, + 0.0027453252114355564, + -0.05431942641735077, + -0.03534035012125969, + 0.0034815825056284666, + -0.01391670573502779, + -0.006640751846134663, + 0.0019753831438720226, + 0.02862260304391384, + -0.001654172781854868, + -0.025196360424160957, + 0.01652488484978676, + 0.021481389179825783, + 0.047697920352220535, + 0.05932404845952988, + -0.06024798005819321, + 0.009768642485141754, + -0.05112416297197342, + -0.039267055690288544, + -0.04638902097940445, + -0.005822688341140747, + -0.022001098841428757, + -0.004472882952541113, + 0.006679248996078968, + 0.03830462694168091, + 0.0446181520819664, + 0.015312226489186287, + 0.0438867062330246, + 0.025042371824383736, + 0.04839086905121803, + 0.013271879404783249, + 0.007675361819565296, + 0.0672929510474205, + -0.033184509724378586, + 0.009258555248379707, + 0.003941142000257969, + 0.03428167849779129, + 0.022636301815509796, + -0.0201724860817194, + 0.01633239910006523, + -0.04138439521193504, + 0.06744693964719772, + 0.023964451625943184, + 0.05978601425886154, + 0.010490463115274906, + -0.014282428659498692, + -0.019306302070617676, + 0.037573181092739105, + 0.04665850102901459, + -0.0122228330001235, + 0.03795815259218216, + -0.016746243461966515, + -0.031625378876924515, + 0.0977056697010994, + -0.018440116196870804, + 0.015312226489186287, + 0.043232258409261703, + -0.043309248983860016, + 0.01813213899731636, + 0.014686647802591324, + 0.031067168340086937, + -0.010740694589912891, + 0.10525110363960266, + -0.01540846936404705, + 0.020595954731106758, + 0.0034262428525835276, + -0.005240419413894415, + -0.017506562173366547, + 0.0018935767002403736, + -0.0005127935437485576, + 0.006284653674811125, + 0.027294453233480453, + -0.021924104541540146, + -0.03426242992281914, + -0.037226706743240356, + 0.024753643199801445, + -0.013887832872569561, + -0.020980926230549812, + -0.014397920109331608, + 0.06463664770126343, + 0.03801589831709862, + -0.03212583810091019, + 0.010211358778178692, + -0.004658150486648083, + 0.004610029049217701, + -0.03493613004684448, + -0.0233677476644516, + -0.01431130152195692, + 0.002215990098193288, + -0.04007549211382866, + 0.05489687994122505, + -0.01332000084221363, + 0.009027572348713875, + -0.011106416583061218, + -0.0005338466726243496, + 0.019710522145032883, + 0.059516534209251404, + -0.03755393251776695, + 0.006453078240156174, + 0.028949828818440437, + 0.007016098592430353, + -0.01789153181016445, + -0.0076128039509058, + 0.023040521889925003, + 0.036572255194187164, + -0.0033805277198553085, + -0.012213208712637424, + 0.018786590546369553, + -0.034454915672540665, + 0.05928555130958557, + 0.04223133251070976, + 0.058323126286268234, + -0.0396520234644413, + 0.032818786799907684, + 0.03603329509496689, + -0.029623527079820633, + -0.03304976969957352, + 0.01731407642364502, + 0.0012403287691995502, + -0.013955202884972095, + -0.0022797507699579, + 0.005452153272926807, + 0.00927780382335186, + 0.0006965571083128452, + 0.0016228938475251198, + 0.004641307983547449, + -0.02138514630496502, + 0.00399166950955987, + 0.020076243206858635, + -0.006121040787547827, + -0.026312775909900665, + -0.05374196916818619, + -0.03328075259923935, + 6.104461590439314e-06, + -0.05582081153988838, + -0.06028647720813751, + 0.05324150621891022, + 0.014994625002145767, + 0.011645376682281494, + -0.03711121529340744, + 0.02357948012650013, + 0.014089942909777164, + -0.011395145207643509, + 0.018257254734635353, + 0.015177486464381218, + 0.0389590784907341, + 0.03788115829229355, + -0.003731813747435808, + 0.054088443517684937, + -0.039767514914274216, + 0.005837124772369862, + -0.000652044836897403, + 0.00471830228343606, + -0.007723483256995678, + -0.017727920785546303, + 0.05551283434033394, + -0.04973826929926872, + 0.0311634112149477, + -0.0024505818728357553, + 0.053356997668743134, + -0.0116838738322258, + -0.009677211754024029, + -0.0009564126376062632, + 0.0017552276840433478, + -0.025754567235708237, + -0.019142689183354378, + 0.012559683062136173, + 0.031201908364892006, + -0.016746243461966515, + -0.022270578891038895, + 0.040537457913160324, + 0.001680639572441578, + 0.04226982966065407, + -0.006804364733397961, + 0.02286728471517563, + 0.049122314900159836, + 0.01612066477537155, + 0.013406619429588318, + 0.009576156735420227, + -0.03358872979879379, + -0.002738106995820999, + 0.028372371569275856, + 0.018988700583577156, + 0.01264630164951086, + -0.008926518261432648, + 0.00611141650006175, + -0.016986850649118423, + 0.02173161879181862, + -0.026582255959510803, + 0.023463990539312363, + -0.007482876069843769, + -0.052933529019355774, + -0.01412844005972147, + 0.02265555039048195, + -0.012963902205228806, + 0.014282428659498692, + 0.01193410437554121, + -0.010317225940525532, + -0.00357782538048923, + -0.03562907874584198, + 0.060594454407691956, + -0.008541546761989594, + -0.010172861628234386, + -0.028718845918774605, + 0.05185560882091522, + 0.002163056517019868, + 0.0410764180123806, + -0.0018418461550027132, + 0.03270329535007477, + -0.03145214170217514, + 0.02153913490474224, + -0.0191330648958683, + -0.032318323850631714, + 0.038631852716207504, + -0.005163425114005804, + -0.0474284403026104, + -0.016957977786660194, + -0.009941878728568554, + -0.0251386146992445, + -0.055628325790166855, + 0.028776591643691063, + -0.008406806737184525, + 0.01879621483385563, + 0.02373346872627735, + 0.0018707190174609423, + 0.012694423086941242, + 0.018305376172065735, + 0.03095167875289917, + 0.0027693859301507473, + -0.0003106837102677673, + 0.04277029260993004, + -0.018353497609496117, + 0.004176936578005552, + -0.016111040487885475, + 0.013512486591935158, + -0.0036620376631617546, + 0.003132702549919486, + -0.004227464087307453, + -0.08184485882520676, + -0.01855560764670372, + -0.008599292486906052, + -0.007670549675822258, + 0.03641826659440994, + -0.09554982930421829, + -0.02188560739159584, + 0.0022111779544502497, + 0.02789115719497204, + -0.053010523319244385, + 4.54521577921696e-05, + 0.009720521047711372, + 0.02173161879181862, + 0.009128627367317677, + -0.06767792254686356, + -0.020923180505633354, + -0.013550983741879463, + -0.01818988472223282, + -0.1302742213010788, + -0.0375346839427948, + -0.013618353754281998, + -0.03992150351405144, + -0.037438441067934036, + -0.0006791130872443318, + -0.014272804372012615, + 0.027101967483758926, + 0.01813213899731636, + -0.03322300687432289, + 0.03156763315200806, + 0.023059770464897156, + 0.04200034961104393, + -0.019412169232964516, + -0.026967227458953857, + 0.012492313049733639, + -0.01176086813211441, + -0.015533584170043468, + 0.02640901878476143, + 0.025793064385652542, + -0.042385321110486984, + -0.006660000421106815, + 0.03824688121676445, + 0.015947429463267326, + 0.020287977531552315, + -0.017689423635601997, + -0.015071619302034378, + 0.03483988717198372, + -0.027044221758842468, + 0.027236707508563995, + 0.04750543460249901, + 0.004229870159178972, + 0.03584080934524536, + 0.0262165330350399, + 0.025388846173882484, + -0.016062919050455093, + 0.006241344381123781, + 0.015341099351644516, + 0.037207458168268204, + 0.024060694500803947, + 0.04484913498163223, + 0.01176086813211441, + 0.012424943037331104, + -0.040691446512937546, + -0.015004249289631844, + 0.07764867693185806, + -0.02217433601617813, + -0.006857297848910093, + -0.06294278055429459, + 0.007752356119453907, + -0.014763642102479935, + 0.030508961528539658, + 0.058592602610588074, + 0.005601329728960991, + -0.01808401755988598, + -0.003200072329491377, + -0.019489163532853127, + -0.030143238604068756, + -0.01934479922056198, + 0.07041122019290924, + -0.037650175392627716, + -0.011924480088055134, + -0.01789153181016445, + -0.030566707253456116, + -0.018286127597093582, + -0.015985926613211632, + -0.09762867540121078, + 0.05227907747030258, + 0.0375346839427948, + -0.020056994631886482, + -0.047774914652109146, + -0.017294827848672867, + -0.00833943672478199, + -0.007203772198408842, + 0.020153237506747246, + 0.01511974073946476, + 0.0410764180123806, + 0.014503787271678448, + -0.018757717683911324, + -0.020153237506747246, + 0.004172124434262514, + 0.055974800139665604, + -0.011501012369990349, + 0.03861260414123535, + -0.004460853058844805, + 0.01567794941365719, + -0.013156387954950333, + 0.01639014482498169, + 0.021154163405299187, + -0.034743644297122955, + -0.03597554937005043, + -0.016929104924201965, + -0.010211358778178692, + -0.005139364395290613, + -0.038843587040901184, + -0.02421468310058117, + 0.0019813983235508204, + -0.03980601206421852, + -0.013291127979755402, + -0.0765322595834732, + -0.021827861666679382, + 0.0012704046675935388, + 0.04115341231226921, + -0.02096167765557766, + -0.02508086897432804, + -0.001332962536253035, + 0.027871908619999886, + 0.02011474035680294, + 0.03591780364513397, + -0.02642826735973358, + -0.0035104553680866957, + -0.01019211020320654, + -0.01254043448716402, + 0.004809733014553785, + -0.03886283561587334, + 0.013483613729476929, + -0.03562907874584198, + -0.053010523319244385, + -0.056629251688718796, + 0.009633902460336685, + 0.006631127558648586, + 0.04130740091204643, + -0.02069219760596752, + -0.024233931675553322, + -0.03095167875289917, + 0.020634451881051064, + 0.005009436514228582, + 0.02746768854558468, + 0.01321413367986679, + -0.009349985979497433, + 0.03156763315200806, + -0.05220208317041397, + -0.013926330022513866, + 0.025735318660736084, + 0.021057920530438423, + 0.02117341198027134, + 0.005134552251547575, + 0.06078694015741348, + -0.028949828818440437, + -0.05578231438994408, + 0.0030123989563435316, + 0.031914107501506805, + -0.01235757302492857, + -0.036514509469270706, + 0.006279841531068087, + 0.003914675209671259, + 0.0030845811124891043, + 0.009157500229775906, + 0.022405318915843964, + -0.015129365026950836, + -0.0009215245954692364, + -0.008844711817800999, + -0.006756243295967579, + 0.04184636101126671, + -0.01578381657600403, + 0.036360520869493484, + -0.016380520537495613, + 0.04842936620116234, + -0.0071604629047214985, + 0.0012535621644929051, + 0.02069219760596752, + -0.04662000387907028, + 0.015504712238907814, + -0.058323126286268234, + -0.00823356956243515, + 0.007819726131856441, + -0.009734957478940487, + 0.0071893357671797276, + -0.043655723333358765, + 0.023752717301249504, + -0.001083934330381453, + 0.03510936722159386, + 0.004010917618870735, + -0.01037497166544199, + 0.011837861500680447, + -0.030297227203845978, + 0.032048843801021576, + 0.026332024484872818, + 0.046081043779850006, + -0.004749581217765808, + 0.009913005866110325, + 0.04142289236187935, + 0.0010400235187262297, + 0.023194510489702225, + -0.0027741980738937855, + 0.02592780441045761, + 0.011029422283172607, + 0.020133988931775093, + 0.06540659070014954, + 0.005991112906485796, + -0.01641901768743992, + 0.03201034665107727, + 0.0005506891757249832, + -0.006929480005055666, + 0.022193584591150284, + -0.02556208148598671, + 0.03832387551665306, + 0.04981526359915733, + -0.0005663285846821964, + 0.04149988666176796, + -0.03272254392504692, + 0.022039595991373062, + -0.026870984584093094, + -0.048044394701719284, + -0.00469183549284935, + 0.002337496494874358, + 0.03730370104312897, + -0.02400294877588749, + -0.06575306504964828, + 0.01614953763782978, + 0.00678030401468277, + -0.03102867305278778, + 0.026293527334928513, + 0.027140464633703232, + 0.000755505810957402, + -0.012270954437553883, + -0.009739769622683525, + 0.0007224223809316754, + -0.015716446563601494, + 0.027429191395640373, + -0.00218350812792778, + -0.017371822148561478, + 0.03139439597725868, + -0.015264105051755905, + 0.05085468292236328, + -0.04015248641371727, + -0.02635127305984497, + -0.03316526114940643, + -0.04638902097940445, + -0.01879621483385563, + -0.07302901893854141, + -0.046850986778736115, + -0.012424943037331104, + 0.05378046631813049, + 2.2481712221633643e-05, + -0.02662075310945511, + -0.01897907629609108, + 0.009850448928773403, + 0.007054595742374659, + -0.012126590125262737, + 0.0764552652835846, + 0.06078694015741348, + -0.012588555924594402, + -0.015061995014548302 + ] + } + }, + { + "type": "环境条件", + "properties": { + "名称": "发动机的环境条件", + "内容": "2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件\n长期纵倾:±5°;横倾:±15°;\n短期纵摇: $\\pm 1 0 ^ { \\circ } \\mathrm { ~ ~ { ~ ( ~ 5 \\sim 8 ~ \\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\pm 4 5 ^ { \\circ } \\mathrm { ~ ~ { ~ ( 8 \\sim 1 3 ~ s ) } ~ }$\n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$\n相对湿度:≤93%(40 ℃)。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"2.2 工作条件\\n2.2.1 正常运行条件\\n1)环境条件\\n长期纵倾:±5°;横倾:±15°;\\n短期纵摇: $\\\\pm 1 0 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( ~ 5 \\\\sim 8 ~ \\\\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\\\pm 4 5 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( 8 \\\\sim 1 3 ~ s ) } ~ }$\\n环境温度: $+ 5 \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } \\\\sim \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ + 5 5 ~ \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } ~ }$\\n相对湿度:≤93%(40 ℃)。\\n2)能源条件\\n表 2.1 冷水机组正常使用时的能源条件\\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\\n2.2.2 非正常运行条件\\n表 2.2 非正常输入条件及产生后果\\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\\n表 2.3 设备故障非正常输出条件及可能产生后果\\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_cb835a58-a43b-49ba-b0e9-b129bda925ad.pdf#page=4\"}]", + "embedding": [ + -0.018725352361798286, + 0.007956840097904205, + -0.044795479625463486, + -0.015961498022079468, + -0.027542907744646072, + -0.025974491611123085, + -0.03467728570103645, + 0.032248154282569885, + 0.020504163578152657, + 0.00838241633027792, + -0.031980376690626144, + -0.025859730318188667, + 0.03259244188666344, + -0.014029668644070625, + 0.015492885373532772, + -0.03678125888109207, + 0.023908773437142372, + 0.00749300979077816, + -0.020905831828713417, + -0.0023502325639128685, + -0.006192372180521488, + -0.00897535402327776, + 0.028499258682131767, + -0.018792295828461647, + 0.02614663541316986, + 0.01422093901783228, + -0.030985770747065544, + -0.04930945485830307, + 0.01998773403465748, + 0.00626888033002615, + -0.024922505021095276, + -0.008721920661628246, + -0.07015790790319443, + -0.027294255793094635, + -0.005881558172404766, + -0.04992152005434036, + -0.004600048065185547, + -0.008062038570642471, + -0.05340263620018959, + 0.015751099213957787, + -0.02679695375263691, + -0.05256104841828346, + 0.009788251481950283, + 0.00543207349255681, + -0.055544864386320114, + -0.029474737122654915, + -0.02337321639060974, + -0.049538977444171906, + -0.06652377545833588, + -0.05925550311803818, + -0.026758698746562004, + -0.013149825856089592, + -0.007282612379640341, + -0.04165864735841751, + 0.012489943765103817, + 0.008014220744371414, + -0.02184305526316166, + 0.007120032794773579, + -0.09265127778053284, + 0.015330305323004723, + -0.02184305526316166, + 0.036130938678979874, + -0.04429817572236061, + 0.01532074250280857, + 0.009300513193011284, + 0.029130449518561363, + 0.0009186946554109454, + -0.014287883415818214, + -0.011524029076099396, + -0.07842078059911728, + 0.019375670701265335, + -0.037909749895334244, + 0.013398476876318455, + -0.016870031133294106, + -0.05103088542819023, + -0.006780527997761965, + 0.01145708467811346, + -0.025515442714095116, + -0.005996320396661758, + 0.0024697764310985804, + 0.02100146748125553, + -0.027447272092103958, + 0.06778615713119507, + 0.007316084578633308, + 0.005116477608680725, + 0.009027953259646893, + -0.05860518664121628, + 0.029933784157037735, + -0.01809415966272354, + -0.04054928198456764, + -0.00847805105149746, + 0.015923243016004562, + -0.01151446532458067, + -0.021747421473264694, + -0.04651691019535065, + -0.006048919633030891, + -0.02388964593410492, + 0.03154045343399048, + 0.03873221203684807, + 0.028747908771038055, + -0.008014220744371414, + 0.02111622877418995, + 0.02138400636613369, + -0.02568758651614189, + 0.01482343953102827, + 0.006780527997761965, + 0.03993721678853035, + 0.0475115142762661, + -0.04131435975432396, + -0.015550266019999981, + 0.014660860411822796, + 0.03966943547129631, + -0.010548550635576248, + 0.01448871660977602, + -0.03069886565208435, + -0.035480618476867676, + 0.0030794499907642603, + -0.019815592095255852, + 0.018448010087013245, + -0.016650069504976273, + -0.009859978221356869, + -0.002481730654835701, + 0.013063753955066204, + -0.03129180148243904, + -0.039898961782455444, + -0.0488504059612751, + 0.026490921154618263, + 0.009200096130371094, + -0.012585578486323357, + -0.024999013170599937, + -0.01036684401333332, + -0.0022844832856208086, + -0.07673759758472443, + 0.027026478201150894, + 0.03150219842791557, + -0.04529277980327606, + -0.008095510303974152, + 0.024080917239189148, + -0.02421480603516102, + -0.01734820567071438, + -0.014660860411822796, + 0.004863044712692499, + 0.00533165642991662, + -0.009429620578885078, + 0.038655705749988556, + -0.027428144589066505, + 0.007191759068518877, + -0.03921039029955864, + -0.033759187906980515, + -0.04693770408630371, + -0.0029957692604511976, + 0.01774987392127514, + 0.08132808655500412, + 0.04797056317329407, + -0.014326137490570545, + 0.012451689690351486, + -0.05175771191716194, + 0.025591950863599777, + -0.013321968726813793, + 0.014134867116808891, + 0.05367041379213333, + 0.03400783985853195, + -0.03261156752705574, + 0.006364515516906977, + 0.039822451770305634, + -0.007177413906902075, + 0.02830798737704754, + 0.046708181500434875, + -0.0316934697329998, + -0.010041684843599796, + 0.050533585250377655, + 0.040893565863370895, + -0.04177340865135193, + -0.03320450335741043, + -0.003990374505519867, + 0.006264098919928074, + 0.04892691597342491, + 0.020752815529704094, + -0.0028977433685213327, + -0.009300513193011284, + -0.006383642554283142, + 0.044986747205257416, + 0.031119659543037415, + -0.015492885373532772, + -0.014440899714827538, + 0.008544995449483395, + 0.03458165004849434, + -0.030144181102514267, + -0.0022330794017761946, + -0.016583126038312912, + -0.017539476975798607, + -0.02040852978825569, + 0.015234670601785183, + -0.0064458055421710014, + 0.08278173953294754, + -0.01623883843421936, + 0.045178018510341644, + 0.026127507910132408, + 0.00993648637086153, + -0.012030894868075848, + 0.025400681421160698, + -0.024999013170599937, + 0.011371012777090073, + 0.0017321906052529812, + -0.025190284475684166, + 0.03450514376163483, + -0.05432073399424553, + -0.041429124772548676, + -0.031922996044158936, + -0.07069346308708191, + -0.010385971516370773, + -0.02553457021713257, + 0.013121134601533413, + -0.017214316874742508, + -0.015215544030070305, + 0.03228640928864479, + 0.029073068872094154, + -0.04066404327750206, + 0.00881277397274971, + -0.008234181441366673, + -0.025037268176674843, + 0.050457075238227844, + 0.026357032358646393, + -0.015454631298780441, + 0.02448258362710476, + -0.044451192021369934, + 0.046440400183200836, + 0.04165864735841751, + 0.008492396213114262, + -0.03557625412940979, + -0.029321720823645592, + 0.019366106018424034, + -0.05332612991333008, + -0.0035384984221309423, + -0.0025510662235319614, + 0.015330305323004723, + -0.03636046126484871, + 0.014087049290537834, + 0.03504069894552231, + -0.005470327567309141, + 0.011839624494314194, + 0.005537271965295076, + -0.021097101271152496, + 0.003968856297433376, + -0.018840113654732704, + 0.03450514376163483, + -0.003713032463565469, + -0.00930529460310936, + -0.014163557440042496, + -0.007507354952394962, + 0.03467728570103645, + -0.02706473134458065, + -0.05466502159833908, + 0.0050304061733186245, + 0.039516422897577286, + 0.004533103667199612, + 0.028097590431571007, + 0.011677045375108719, + 0.009190532378852367, + -0.018725352361798286, + -0.016410982236266136, + 0.0015289661241695285, + 0.027083858847618103, + 0.036800384521484375, + 0.004836745094507933, + -0.007861204445362091, + -0.005169076845049858, + 0.004411168862134218, + -0.0031583490781486034, + 0.033032361418008804, + -0.019643448293209076, + -0.030411960557103157, + 0.05206374451518059, + 0.004925207234919071, + 0.023679248988628387, + 0.04139086976647377, + 0.017185626551508904, + -0.0224359929561615, + 0.044718969613313675, + -0.02851838432252407, + 0.03517458960413933, + 0.007732097525149584, + 0.030660610646009445, + -0.010902401059865952, + -0.0010723085142672062, + -0.026299651712179184, + -0.06174201890826225, + 0.007961621508002281, + -0.03536585718393326, + -0.027102986350655556, + -0.07520744204521179, + 0.0056902882643043995, + 0.0706552043557167, + -0.00984085164964199, + -0.02151789702475071, + 0.017137808725237846, + -0.030928390100598335, + -0.1690828502178192, + 0.0024912941735237837, + -0.03549974784255028, + 0.0567689910531044, + 0.004349005874246359, + 0.0024841215927153826, + 0.0016162331448867917, + -0.024176551029086113, + 0.008449360728263855, + -0.009448747150599957, + -0.0019856237340718508, + -0.0600588396191597, + 0.02291416935622692, + -0.017329080030322075, + -0.007588644977658987, + -0.016468362882733345, + 0.0022785060573369265, + 0.004521149210631847, + 0.01623883843421936, + -0.009190532378852367, + -0.011074543930590153, + -0.006264098919928074, + 0.06170376390218735, + -0.012614268809556961, + -0.008391979150474072, + -0.021498769521713257, + -0.012394308112561703, + 0.022263849154114723, + -0.0574193112552166, + 0.013197642751038074, + -0.0006347779417410493, + -0.025649331510066986, + -0.008793647401034832, + 0.05696026235818863, + 0.0016975229373201728, + -0.012432562187314034, + 0.01591368019580841, + -0.03261156752705574, + -0.002457821974530816, + 0.026376159861683846, + 0.026184888556599617, + 0.02916870452463627, + -0.007172632031142712, + 0.02369837649166584, + -0.02964687906205654, + -0.0025678023230284452, + 0.007230013143271208, + -0.014813875779509544, + -0.04074054956436157, + 0.0047267647460103035, + 0.021747421473264694, + 0.006928762421011925, + -0.015445067547261715, + 0.030717993155121803, + -0.053440891206264496, + 0.02337321639060974, + -0.030985770747065544, + 0.013685381971299648, + -0.023086311295628548, + -0.004714810289442539, + -0.05294358730316162, + -0.0778852179646492, + 0.03213339298963547, + -0.04640214890241623, + -0.006091955583542585, + -0.007182195782661438, + 0.014287883415818214, + 0.007411719765514135, + 0.011801370419561863, + -0.0035839250776916742, + -0.018591461703181267, + 0.018514953553676605, + 0.02461647428572178, + 0.007043524645268917, + 0.021537022665143013, + 0.04410690441727638, + -0.007368684280663729, + -0.044451192021369934, + -0.03414173051714897, + -0.07616379112005234, + -0.008980135433375835, + -0.0011237123981118202, + 0.022589009255170822, + -0.053364381194114685, + -0.013092444278299809, + -0.05776359885931015, + -0.0028092809952795506, + -0.018591461703181267, + 0.030737118795514107, + 0.24375472962856293, + -0.001086055999621749, + 0.016927411779761314, + 0.0011500120162963867, + 0.07509267330169678, + -0.026318777352571487, + -0.022091707214713097, + -0.033778317272663116, + 0.021288372576236725, + -0.025171156972646713, + -0.0158467348664999, + 0.01248038001358509, + 0.043800871819257736, + 0.01422093901783228, + 0.003220511833205819, + -0.03473466634750366, + 0.004437468480318785, + -0.01940436102449894, + 0.07849728316068649, + 0.0005194180994294584, + 0.013494111597537994, + 0.004659819882363081, + 0.03069886565208435, + -0.0034858991857618093, + -0.05041882023215294, + -0.015253797173500061, + -0.0181419774889946, + 0.04276801273226738, + 0.05833740904927254, + -0.03425649181008339, + -0.00448767701163888, + 0.013771453872323036, + 0.014794749207794666, + -0.004600048065185547, + -0.07088473439216614, + 0.051183901727199554, + -0.006598821375519037, + 0.022493373602628708, + 0.054358989000320435, + 0.007129596080631018, + -0.06507011502981186, + -0.00572854233905673, + -0.0653761476278305, + 0.012461252510547638, + 0.015722408890724182, + -0.03796713426709175, + -0.0005098545807413757, + -0.032630693167448044, + -0.00885102804750204, + 0.015722408890724182, + 0.00562812527641654, + 0.026586556807160378, + -0.04009023308753967, + 0.0197964645922184, + -0.016544871032238007, + -0.05267580971121788, + 0.00999386701732874, + -0.006770964711904526, + 0.016391854733228683, + 0.011371012777090073, + 0.04376262053847313, + -0.009276604279875755, + 0.0043729147873818874, + 0.007397374603897333, + 0.04338007792830467, + -0.04418341442942619, + -0.03756546601653099, + -0.04601960629224777, + 0.04758802428841591, + 0.02191956341266632, + 0.048888660967350006, + 0.02130749821662903, + -0.03278370946645737, + 0.0204659104347229, + 0.014938201755285263, + 0.016745705157518387, + 0.008898845873773098, + 0.1062697172164917, + -0.027753304690122604, + -0.006397987715899944, + -0.020121624693274498, + -0.019949480891227722, + -0.05887296423316002, + -0.0475115142762661, + 0.018323684111237526, + -0.006134991534054279, + 0.006627512164413929, + -0.03458165004849434, + 0.004152954090386629, + -0.03913388028740883, + 0.027772432193160057, + 0.0038014950696378946, + 0.03379744291305542, + 0.03261156752705574, + -0.006173245143145323, + 0.011877878569066525, + -0.0181419774889946, + 0.021403133869171143, + -0.021823927760124207, + -0.019356543198227882, + -0.02825060673058033, + -0.016688324511051178, + 0.006641857326030731, + -0.008894063532352448, + -0.016678759828209877, + 0.039822451770305634, + 0.024138297885656357, + 0.002259379019960761, + 0.0011697367299348116, + 0.031138787046074867, + -0.0045378850772976875, + 0.010252081789076328, + -0.014890383929014206, + 0.008038129657506943, + -0.008348943665623665, + 0.021211864426732063, + 0.019853845238685608, + 0.030201563611626625, + 0.0006646639085374773, + 0.002912088530138135, + -0.04613437131047249, + 0.0011948409955948591, + 0.005958066321909428, + -0.029780767858028412, + 0.015731973573565483, + 0.005695069674402475, + 0.0037273778580129147, + 5.558789780479856e-05, + 0.02396615408360958, + 0.05669248476624489, + 0.0008421865641139448, + -0.0026036654599010944, + -0.011265814304351807, + 0.015923243016004562, + 0.013953160494565964, + -0.016879593953490257, + 0.013541929423809052, + 0.017711618915200233, + 0.04429817572236061, + 0.022818533703684807, + -0.03997546806931496, + -0.024176551029086113, + 0.027504652738571167, + -0.026318777352571487, + -0.008889282122254372, + -0.029991164803504944, + -0.006082391832023859, + -0.010443352162837982, + -0.01565546542406082, + 0.03940165787935257, + -0.024176551029086113, + 0.03936340659856796, + 0.047549769282341, + -0.04770278558135033, + 0.020121624693274498, + 0.008105074055492878, + -0.007445191964507103, + -0.034352127462625504, + -0.017281262204051018, + -0.003968856297433376, + 0.011265814304351807, + 0.004836745094507933, + 0.021996071562170982, + 0.04338007792830467, + 0.016133639961481094, + 0.05814613774418831, + -0.0014632169622927904, + 0.057993121445178986, + 0.006617948412895203, + -0.0435713492333889, + 0.04869738966226578, + 0.027504652738571167, + -0.01868709735572338, + 0.033242758363485336, + 0.030316324904561043, + 0.062201064079999924, + -0.002859489293769002, + -0.013551493175327778, + -0.07639331370592117, + 0.05275231972336769, + 0.05780185014009476, + 0.04938596114516258, + 0.009161842055618763, + 0.029398228973150253, + -0.05064834654331207, + -0.03286021947860718, + 0.020121624693274498, + -0.011036289855837822, + 0.044871985912323, + 0.009859978221356869, + -0.006321479566395283, + 0.0759342685341835, + -0.0033807007130235434, + 0.006498404778540134, + 0.014928638003766537, + 0.015024273656308651, + 0.04483373090624809, + 0.05780185014009476, + 0.010644186288118362, + 0.011409266851842403, + 0.019968608394265175, + -0.07099949568510056, + -0.03452426940202713, + -0.015148598700761795, + 0.03546149283647537, + -0.015033836476504803, + -0.005766796413809061, + -0.014727804809808731, + -0.006885726936161518, + -0.006632294040173292, + -0.04150563105940819, + -0.06725060194730759, + 0.0012731421738862991, + 0.01571284607052803, + -0.0021039720159024, + 0.0018086987547576427, + 0.029952911660075188, + 0.05340263620018959, + 0.012901173904538155, + -0.02184305526316166, + 0.01874447800219059, + 0.024463457986712456, + 0.06346344947814941, + -0.005747669376432896, + -0.0227802786976099, + -0.04376262053847313, + 0.006421896629035473, + -0.058911219239234924, + 0.061474237591028214, + -0.017243007197976112, + 0.010443352162837982, + 0.007526481989771128, + 0.019557377323508263, + 0.019308725371956825, + 0.059446774423122406, + 0.01862015202641487, + 0.0014548489125445485, + 0.02647179365158081, + 0.0058480859734117985, + 0.0017740309704095125, + -0.006230626255273819, + 0.03188474103808403, + 0.016678759828209877, + 0.020944084972143173, + -0.01742471382021904, + -3.8478181522805244e-05, + -0.02997203916311264, + 0.03878959268331528, + 0.008195927366614342, + 0.05359390750527382, + -0.02251250110566616, + 0.015225106850266457, + 0.012269983068108559, + -0.01796027086675167, + 0.01362800132483244, + 0.0032276844140142202, + -0.01682221330702305, + -0.01218391116708517, + -0.02245512045919895, + 0.014182684943079948, + -0.00019171848543919623, + -0.00352415326051414, + 0.005059096496552229, + 0.019490431994199753, + 0.008224617689847946, + -0.041352614760398865, + 0.016124077141284943, + 0.018830550834536552, + -0.007349557243287563, + -0.060173600912094116, + -0.03823491185903549, + -0.014976455830037594, + -0.042806267738342285, + -0.04720548167824745, + -0.01557895727455616, + -0.018706224858760834, + -0.022397739812731743, + 0.030335452407598495, + 0.014498280361294746, + 0.019299162551760674, + -0.06526138633489609, + 0.035155460238456726, + 0.010108629241585732, + 0.009290949441492558, + 0.03875134140253067, + -0.028212353587150574, + 0.028403623029589653, + -0.031463947147130966, + 0.020963212475180626, + -0.02073368802666664, + 0.011141488328576088, + -0.020829323679208755, + -0.014507844112813473, + 0.023794012144207954, + -0.03655173256993294, + 0.0293791014701128, + 0.010213827714323997, + 0.009396147914230824, + -0.02329670824110508, + 0.02230210416018963, + 0.0038014950696378946, + 0.04070229455828667, + -0.025266792625188828, + -0.021403133869171143, + -0.034543395042419434, + 0.017606420442461967, + -0.01557895727455616, + -0.006732710637152195, + -0.003146394621580839, + 0.013991414569318295, + 0.03023981675505638, + -0.031119659543037415, + 0.016592688858509064, + -0.02580234780907631, + 0.039038244634866714, + 0.02025551348924637, + 0.008870154619216919, + 0.023124566301703453, + -0.025649331510066986, + 0.03882784768939018, + 0.011485775001347065, + 0.024903379380702972, + -0.008071602322161198, + -0.009606544859707355, + -0.05256104841828346, + -0.007411719765514135, + -0.04647865518927574, + 0.010873710736632347, + -0.0007943690288811922, + -0.0038301856257021427, + -0.014871257357299328, + 0.0009264649706892669, + 0.00818636454641819, + 0.014804312959313393, + 0.03339577466249466, + -0.04261499643325806, + -0.0036341336090117693, + -0.03469641134142876, + 0.04984501004219055, + -0.010261645540595055, + 0.019155709072947502, + -0.04533103480935097, + 0.036475226283073425, + -0.010682440362870693, + 0.02779155783355236, + -0.015129472129046917, + 0.021173609420657158, + -0.012164783664047718, + 0.04429817572236061, + 0.004690901376307011, + -0.00788989569991827, + 0.02302893064916134, + -0.021498769521713257, + -0.043533094227313995, + -0.020102497190237045, + 0.00679965503513813, + -0.028040209785103798, + 0.012604705058038235, + 0.015062527731060982, + -0.015005146153271198, + -0.03064148500561714, + 0.03155958279967308, + 0.014679986983537674, + 0.00533165642991662, + 0.006675329525023699, + 0.02125011757016182, + -0.009357893839478493, + 0.010730257257819176, + 0.047090720385313034, + -0.014804312959313393, + 0.008822337724268436, + -0.018514953553676605, + 0.017855072394013405, + 0.038330547511577606, + -0.030450213700532913, + 0.01359931007027626, + -0.04383912682533264, + 0.004910862073302269, + -0.020312894135713577, + 0.01624840311706066, + 0.016191020607948303, + -0.07360076904296875, + -0.01336978655308485, + 0.017128245905041695, + 0.0475115142762661, + -0.008530650287866592, + -0.016745705157518387, + 0.020810196176171303, + 0.023067185655236244, + 0.0508396178483963, + -0.03842617943882942, + -0.029532117769122124, + -0.04246198385953903, + -0.019308725371956825, + -0.1386326402425766, + 0.009946050122380257, + -0.011189306154847145, + -0.043341826647520065, + -0.0234305988997221, + 0.010672876611351967, + -0.024386949837207794, + 0.04601960629224777, + -0.006828345824033022, + -0.024444330483675003, + 0.0194808691740036, + 0.01754903979599476, + 0.01669788733124733, + -0.013341095298528671, + -0.03412260115146637, + 0.01116061583161354, + -0.02997203916311264, + -0.0181419774889946, + 0.037393320351839066, + 0.032382041215896606, + -0.03854094445705414, + 0.002161353128030896, + 0.006048919633030891, + -0.006689674686640501, + -0.0038397491443902254, + -0.04506325721740723, + -0.07865030318498611, + 0.004466158803552389, + -0.01941392384469509, + 0.020695434883236885, + 0.04995977506041527, + -0.021823927760124207, + 0.031903866678476334, + 0.06759488582611084, + -0.013197642751038074, + -0.005589871201664209, + 0.015253797173500061, + -0.010089502669870853, + 0.03255418688058853, + 0.03544236719608307, + 0.034486014395952225, + 0.005656816065311432, + -0.00930529460310936, + -0.022608136758208275, + -0.004509194754064083, + 0.11606275290250778, + -0.01729082502424717, + -0.02660568244755268, + -0.04502500221133232, + 2.2769370843889192e-05, + -0.029857276007533073, + 0.0060967374593019485, + 0.03002941980957985, + 0.011342322453856468, + 0.016783958300948143, + 0.002675391733646393, + 0.01893574930727482, + -0.009644798934459686, + -0.018916621804237366, + 0.04533103480935097, + -0.05485628917813301, + 0.0010322612943127751, + -0.026127507910132408, + -0.017204754054546356, + -0.02844187803566456, + -0.002392072696238756, + -0.11315544694662094, + 0.032764583826065063, + 0.020312894135713577, + -0.008128982968628407, + -0.013704509474337101, + -0.024406075477600098, + -0.0011906569125130773, + 0.016544871032238007, + 0.02943648211658001, + -0.024635599926114082, + 0.024578219279646873, + 0.006058483384549618, + -0.03756546601653099, + 0.009195314720273018, + 0.02100146748125553, + 0.02700735069811344, + 0.018055906519293785, + -3.8702328311046585e-05, + 0.00539381941780448, + 0.02211083471775055, + -0.025515442714095116, + 0.0062975711189210415, + -0.0035815343726426363, + -0.01866796985268593, + -0.05367041379213333, + -0.001341282157227397, + -0.0006075816927477717, + 0.02779155783355236, + -0.04257674515247345, + -0.013159388676285744, + -0.011782243847846985, + -0.0449102409183979, + -0.01350367534905672, + -0.04429817572236061, + -0.00509735057130456, + -0.027676796540617943, + -0.002229493111371994, + -0.04582833871245384, + -0.034294746816158295, + 0.030660610646009445, + 0.03268807381391525, + 0.005962848197668791, + 0.04165864735841751, + -0.035882286727428436, + -0.03188474103808403, + -0.0002970665227621794, + -0.04112309217453003, + -0.013647127896547318, + -0.033491410315036774, + 0.016191020607948303, + -0.0028260170947760344, + -0.03856007009744644, + -0.033166252076625824, + 0.015674592927098274, + -0.004678946919739246, + 0.03287934511899948, + 0.005556399002671242, + -0.0349641889333725, + 0.009195314720273018, + 0.00028302011196501553, + -0.0013149825390428305, + 0.015569393523037434, + 0.011638791300356388, + 0.00509735057130456, + 0.02415742538869381, + 0.011954386718571186, + -0.024195678532123566, + -0.0006551003898493946, + 0.010969345457851887, + 0.054894544184207916, + 0.003215729957446456, + 0.06434328854084015, + -0.017807254567742348, + -0.08178713172674179, + 0.028135845437645912, + 0.013589747250080109, + -0.016803085803985596, + -0.03808189556002617, + -0.0017692492110654712, + 0.025917110964655876, + 0.015215544030070305, + -0.035997048020362854, + 0.027370763942599297, + -0.027026478201150894, + 0.04322706162929535, + -0.011045853607356548, + -0.0034548176918178797, + 0.05860518664121628, + 4.6360604756046087e-05, + 0.009644798934459686, + -0.0027638543397188187, + 0.01171529944986105, + 0.01009906642138958, + 0.033032361418008804, + 0.005116477608680725, + -0.04441293701529503, + 0.009463092312216759, + -0.023736629635095596, + -0.0264144130051136, + 0.0250755213201046, + -0.006182808894664049, + -0.001414204016327858, + -0.05087786912918091, + 0.026892589405179024, + 0.00977390632033348, + 0.0014990800991654396, + -0.014775621704757214, + 0.027829812839627266, + -0.00543207349255681, + -0.02482687123119831, + 0.02738989144563675, + 0.03182736039161682, + 0.03823491185903549, + -0.012222165241837502, + 0.011294504627585411, + 0.032439425587654114, + 0.018849676474928856, + 0.01618145778775215, + -0.012336927466094494, + 0.09793033450841904, + 0.04387738183140755, + 0.024520838633179665, + 0.046708181500434875, + 0.009400930255651474, + -0.028594892472028732, + 0.02970425970852375, + -0.045254528522491455, + -0.002126685343682766, + 0.040358010679483414, + -0.01528248842805624, + 0.03037370555102825, + 0.059102486819028854, + -0.016420545056462288, + 0.005269493907690048, + 0.014737368561327457, + -0.015397250652313232, + -0.009080552496016026, + -0.010548550635576248, + -0.014613042585551739, + -0.03486855700612068, + 0.04150563105940819, + 0.012346490286290646, + -0.052637554705142975, + 0.022206468507647514, + -0.027963701635599136, + -0.03228640928864479, + -0.0008045302238315344, + 0.002185261808335781, + -0.020618926733732224, + 0.018907058984041214, + 0.0002153283858206123, + -0.024539966136217117, + -0.035633634775877, + 0.01528248842805624, + -0.014029668644070625, + 0.006727928761392832, + 0.013522802852094173, + -0.011170178651809692, + 0.03458165004849434, + -0.019719956442713737, + -0.04969199374318123, + 0.00025657101650722325, + -0.027045605704188347, + -0.06040312722325325, + -0.03458165004849434, + -0.02698822319507599, + -0.00131139624863863, + 0.04177340865135193, + 0.05470327287912369, + 0.009549164213240147, + 0.02283766120672226, + 0.024769488722085953, + 0.005226457957178354, + 0.01184918824583292, + 0.03609268367290497, + 0.03133005648851395, + 0.015722408890724182, + -0.014211375266313553 + ] + } + }, + { + "type": "基本情况", + "properties": { + "名称": "发动机的基本情况", + "主要功能": "2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑;\n2) 曲柄连杆机构:实现往复—旋转运动转换;\n3) 燃烧室部件:完成燃烧做功;\n4) 排气阀驱动系统:控制废气排放;\n5) 燃油喷射系统:完成燃油定时、定量喷射;\n6) 扫气与增压系统:提高换气效率与功率密度。", + "工作条件": "2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件\n长期纵倾:±5°;横倾:±15°;\n短期纵摇: $\\pm 1 0 ^ { \\circ } \\mathrm { ~ ~ { ~ ( ~ 5 \\sim 8 ~ \\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\pm 4 5 ^ { \\circ } \\mathrm { ~ ~ { ~ ( 8 \\sim 1 3 ~ s ) } ~ }$\n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$\n相对湿度:≤93%(40 ℃)。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "内容": "2 概述\n2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑;\n2) 曲柄连杆机构:实现往复—旋转运动转换;\n3) 燃烧室部件:完成燃烧做功;\n4) 排气阀驱动系统:控制废气排放;\n5) 燃油喷射系统:完成燃油定时、定量喷射;\n6) 扫气与增压系统:提高换气效率与功率密度。\n2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件\n长期纵倾:±5°;横倾:±15°;\n短期纵摇: $\\pm 1 0 ^ { \\circ } \\mathrm { ~ ~ { ~ ( ~ 5 \\sim 8 ~ \\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\pm 4 5 ^ { \\circ } \\mathrm { ~ ~ { ~ ( 8 \\sim 1 3 ~ s ) } ~ }$\n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$\n相对湿度:≤93%(40 ℃)。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"2 概述\\n2.1 主要功能\\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\\n发动机主要由以下子系统组成:\\n1) 机座与机架组件:承载与结构支撑;\\n2) 曲柄连杆机构:实现往复—旋转运动转换;\\n3) 燃烧室部件:完成燃烧做功;\\n4) 排气阀驱动系统:控制废气排放;\\n5) 燃油喷射系统:完成燃油定时、定量喷射;\\n6) 扫气与增压系统:提高换气效率与功率密度。\\n2.2 工作条件\\n2.2.1 正常运行条件\\n1)环境条件\\n长期纵倾:±5°;横倾:±15°;\\n短期纵摇: $\\\\pm 1 0 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( ~ 5 \\\\sim 8 ~ \\\\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\\\pm 4 5 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( 8 \\\\sim 1 3 ~ s ) } ~ }$\\n环境温度: $+ 5 \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } \\\\sim \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ + 5 5 ~ \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } ~ }$\\n相对湿度:≤93%(40 ℃)。\\n2)能源条件\\n表 2.1 冷水机组正常使用时的能源条件\\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\\n2.2.2 非正常运行条件\\n表 2.2 非正常输入条件及产生后果\\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\\n表 2.3 设备故障非正常输出条件及可能产生后果\\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8f1569bb-15ae-48a7-b876-5f88ce2a265c.pdf#page=4\"}]", + "embedding": [ + 0.002042092615738511, + -0.013810043223202229, + -0.03143906593322754, + 0.009065251797437668, + -0.015324133448302746, + -0.03628029674291611, + 0.02210378460586071, + 0.03597169369459152, + -0.004339748527854681, + 0.005959921050816774, + -0.028179433196783066, + -0.026964303106069565, + 0.02187233231961727, + 0.028005842119455338, + -0.012691352516412735, + -0.016143864020705223, + 0.007271489594131708, + 0.027967266738414764, + -0.03992568328976631, + -0.010810795240104198, + 0.012286310084164143, + 0.01385826338082552, + 0.03344499319791794, + -0.002760562114417553, + 0.01904667355120182, + 0.0376497283577919, + -0.04671498015522957, + -0.03236487880349159, + 0.020580051466822624, + 0.030918296426534653, + -0.02154443971812725, + -0.04825800284743309, + -0.0410829521715641, + -0.016134219244122505, + -0.010675781406462193, + -0.061065081506967545, + 0.006615705322474241, + -0.038671981543302536, + -0.033290691673755646, + 0.02231595106422901, + -0.0055259461514651775, + -0.05886627361178398, + 0.0029630837962031364, + -0.024919798597693443, + -0.008071932010352612, + -0.034023627638816833, + -0.008144261315464973, + -0.0465221032500267, + -0.033406417816877365, + -0.050572533160448074, + -0.03165123239159584, + -0.0386526919901371, + 0.030841145664453506, + -0.0005801399820484221, + -0.009132759645581245, + 0.02370467036962509, + 7.199009996838868e-05, + 0.02638567052781582, + -0.07722823321819305, + 0.035740237683057785, + -0.029298122972249985, + 0.07896412909030914, + -0.060949355363845825, + -0.004547091666609049, + 0.02682928927242756, + 0.03222986310720444, + -0.002550807548686862, + -0.012141651473939419, + -0.015738820657134056, + -0.06646565347909927, + 0.024167576804757118, + -0.008361248299479485, + 0.016375316306948662, + -0.013713604770600796, + -0.03817049786448479, + 0.015844903886318207, + 0.03882628306746483, + -0.030069634318351746, + -0.025614159181714058, + -0.012228446081280708, + 0.018255874514579773, + -0.0017033512704074383, + 0.050456807017326355, + -0.005294492933899164, + 0.0003559196484275162, + 0.03348356857895851, + -0.022508827969431877, + 0.044284719973802567, + -0.011350853368639946, + -0.030976159498095512, + 0.005029286257922649, + -0.003189715091139078, + 0.008867552503943443, + 0.0028280692640691996, + -0.04686928167939186, + -0.037302546203136444, + -0.026867864653468132, + 0.009778900071978569, + 0.01297102589160204, + 0.0011096495436504483, + -0.003413935424759984, + 0.01594134233891964, + 0.02594205178320408, + -0.023280339315533638, + 0.040118563920259476, + 0.012990313582122326, + 0.0475250668823719, + 0.005439151078462601, + -0.01366538554430008, + 0.0074450792744755745, + 0.03489157557487488, + 0.023723958060145378, + -0.005106437020003796, + 0.01898881047964096, + -0.023858971893787384, + -0.0125274071469903, + -0.00205535301938653, + -0.019538510590791702, + 0.015362708829343319, + -0.0015912411035969853, + -0.03309781476855278, + 0.0015779806999489665, + -0.007710286416113377, + -0.0013332670787349343, + -0.027890115976333618, + -0.046560678631067276, + 0.024225439876317978, + 0.009962133131921291, + -0.01782190054655075, + 0.004812298808246851, + -0.048952359706163406, + 0.028565188869833946, + -0.0515369214117527, + 0.027292195707559586, + -0.010386464186012745, + -0.034853000193834305, + 0.012170583009719849, + 0.03545092046260834, + -0.015314489603042603, + -0.024013273417949677, + 0.019567443057894707, + 0.017860475927591324, + -0.00045868728193454444, + -0.01546879205852747, + -0.0030980980955064297, + -0.03520018234848976, + 0.02709931693971157, + -0.008520372211933136, + -0.0064565809443593025, + -0.012614201754331589, + 0.024032561108469963, + 0.04116010293364525, + 0.0649997889995575, + 0.031400490552186966, + -0.009460651315748692, + 0.014745500870049, + -0.02166016586124897, + 0.01861269772052765, + -0.044670477509498596, + 0.04397611692547798, + 0.04941526800394058, + 0.017011813819408417, + -0.028893079608678818, + -0.02488122321665287, + 0.04042716696858406, + -0.0475250668823719, + 0.030667554587125778, + 0.00805746577680111, + -0.02993462048470974, + -0.028700202703475952, + 0.03693608194589615, + 0.01765795424580574, + -0.04258739575743675, + 0.003551360685378313, + 0.008332316763699055, + 0.008853086270391941, + 0.08471188694238663, + 0.014340457506477833, + -0.0030884542502462864, + -0.008298562839627266, + -0.006933953613042831, + 0.039019159972667694, + 0.01777368038892746, + -0.019143112003803253, + -0.026250654831528664, + 0.02275956980884075, + 0.0450948067009449, + -0.03082185797393322, + -0.008515550754964352, + -0.04455475136637688, + -0.02003999426960945, + -0.011071179993450642, + 0.023839684203267097, + -0.003143906593322754, + 0.013106039725244045, + -0.028025129809975624, + 0.015324133448302746, + 0.001657542772591114, + -0.013761823996901512, + -0.025980627164244652, + 0.033078525215387344, + -0.019847115501761436, + 0.04042716696858406, + 0.024399029091000557, + -0.0059309895150363445, + 0.000976443407125771, + -0.07391073554754257, + -0.049338117241859436, + -0.030571116134524345, + -0.032075561583042145, + -0.033965762704610825, + -0.03531590849161148, + -0.00044693381641991436, + -0.014986597932875156, + 0.0004535639891400933, + 0.030860433354973793, + 0.006080469582229853, + -0.0535428524017334, + 0.04243309423327446, + -0.025035526603460312, + -0.0025435746647417545, + 0.05037965625524521, + 0.04343605786561966, + -0.026867864653468132, + 0.006249237805604935, + -0.07464367151260376, + 0.046020619571208954, + 0.00788387656211853, + 0.0017997900722548366, + -0.019644593819975853, + -0.04146870598196983, + 0.032461319118738174, + -0.03126547485589981, + -0.01316390372812748, + 0.03026251122355461, + 0.00702557060867548, + -0.02065720222890377, + 0.012112719938158989, + 0.04459332674741745, + 0.034968726336956024, + 0.009532980620861053, + -0.02615421637892723, + -0.03587525337934494, + -0.017262553796172142, + -0.02127441018819809, + 0.037842605262994766, + 0.03383075073361397, + -0.00465076370164752, + -0.023415353149175644, + -0.0007148529984988272, + 0.019471004605293274, + -0.012450255453586578, + -0.04571201652288437, + -0.021312985569238663, + 0.02609635330736637, + 0.016375316306948662, + 0.025247691199183464, + 0.011755895800888538, + -0.006977350916713476, + -0.046020619571208954, + -0.007078611757606268, + 0.006466225255280733, + 0.03149693086743355, + 0.04343605786561966, + -0.0015828026225790381, + 0.02287529595196247, + 0.01960601843893528, + 0.007633135188370943, + -0.016645345836877823, + 0.04675355553627014, + -0.010830082930624485, + -0.02509338967502117, + 0.06326388567686081, + 0.004568790551275015, + 0.0067507196217775345, + 0.049955327063798904, + -0.003442866960540414, + 0.005443973001092672, + 0.030223935842514038, + -0.03641531243920326, + 0.031689807772636414, + -0.002398916520178318, + 0.040620043873786926, + 0.007879054173827171, + 0.001483952859416604, + -0.039404913783073425, + -0.0609879307448864, + -0.019075604155659676, + -0.02110082097351551, + -0.05280991643667221, + -0.033194251358509064, + -0.03197912499308586, + 0.08455758541822433, + -0.023511791601777077, + -0.0410829521715641, + 0.028410885483026505, + 0.005135369021445513, + -0.1763673722743988, + 0.0023687793873250484, + -0.01598956249654293, + 0.001523733837530017, + 0.002697876887395978, + -0.01693466305732727, + 0.01272028498351574, + -0.015690600499510765, + 0.0015611039707437158, + 0.035740237683057785, + -0.020753640681505203, + -0.06569414585828781, + -0.01477443240582943, + -0.03224915266036987, + 0.021448001265525818, + -0.020117145031690598, + -0.010569698177278042, + 0.015343421138823032, + 0.01633674092590809, + -0.004016678314656019, + -0.029741741716861725, + -0.018950235098600388, + 0.05948348343372345, + -0.0037828139029443264, + -0.01782190054655075, + 0.010839726775884628, + 0.004209555685520172, + 0.02000141702592373, + -0.04848945513367653, + -0.007271489594131708, + -0.011929485946893692, + -0.006572307553142309, + -0.01477443240582943, + 0.06249237805604935, + 0.01732041873037815, + -0.006779651157557964, + 0.014340457506477833, + -0.01543986052274704, + -0.007247379515320063, + -0.007869410328567028, + 0.035855963826179504, + 0.047910820692777634, + -0.0017865297850221395, + 0.0042047337628901005, + -0.025344129651784897, + -0.016346385702490807, + 0.016867155209183693, + -0.02848803624510765, + -0.03280849754810333, + 0.0011385811958462, + 0.03305923938751221, + -0.02027144655585289, + -0.04355178400874138, + 0.029915332794189453, + -0.060833629220724106, + -0.0012205542298033834, + -0.010974741540849209, + 0.004911148454993963, + 0.028893079608678818, + -0.018034065142273903, + -0.06507693976163864, + -0.022585978731513023, + 0.01410900428891182, + -0.02544056996703148, + -0.025286266580224037, + 0.01815943606197834, + 0.03105331026017666, + -0.02198805846273899, + -0.028063705191016197, + -0.029896045103669167, + -0.003616456873714924, + -0.008462509140372276, + 0.026501396670937538, + 0.002712342655286193, + 0.004513338208198547, + 0.008351604454219341, + -0.04841230437159538, + -0.016915375366806984, + -0.020502900704741478, + -0.09250414371490479, + -0.01982782781124115, + 0.01915275678038597, + 0.012768504209816456, + -0.027195757254958153, + -0.014658705331385136, + -0.024688346311450005, + 0.017117897048592567, + -0.027350058779120445, + 0.030301086604595184, + 0.22265802323818207, + -0.027697239071130753, + -0.012652777135372162, + -0.0004888244438916445, + 0.045789167284965515, + -0.022335238754749298, + 0.0027388634625822306, + -0.016963593661785126, + 0.0031222079414874315, + -0.013453220017254353, + -0.009851228445768356, + 0.0070448582991957664, + 0.04015713930130005, + 0.019741032272577286, + 0.019461359828710556, + 0.0075704497285187244, + 0.004412077367305756, + -0.023010309785604477, + 0.08394037932157516, + -0.02553700841963291, + 0.04632922634482384, + -0.00351278530433774, + 0.05543305352330208, + -0.002251847181469202, + -0.05427578464150429, + -0.012787791900336742, + -0.011129043996334076, + 0.034177929162979126, + 0.005390931852161884, + -0.015565230511128902, + -0.016915375366806984, + 0.014639417640864849, + -0.003278920892626047, + -0.008366070687770844, + -0.07414218783378601, + 0.00237360130995512, + -0.00916651263833046, + 0.003491086419671774, + 0.03992568328976631, + 0.031631942838430405, + -0.02854590117931366, + -0.020406460389494896, + -0.05979209020733833, + -0.015324133448302746, + -0.0076138474978506565, + -0.04069719463586807, + 0.0022241210099309683, + -0.00579115329310298, + 0.026848576962947845, + 0.026289230212569237, + 0.01433081366121769, + 0.0471007339656353, + -0.030069634318351746, + -0.0036285119131207466, + -0.014948022551834583, + -0.046792130917310715, + 0.019355278462171555, + 0.01577739603817463, + -0.004450653214007616, + 0.03412006422877312, + 0.02594205178320408, + -0.002806370612233877, + 0.0027677949983626604, + 0.015594162046909332, + 0.013896838761866093, + -0.06511551141738892, + -0.02275956980884075, + -0.04764079302549362, + 0.04463190212845802, + 0.014022208750247955, + 0.04783366993069649, + -0.003886485705152154, + -0.03614528104662895, + 0.011485867202281952, + 0.012064500711858273, + 0.0372253954410553, + 0.01665499061346054, + 0.06526981294155121, + -0.029355986043810844, + 0.0030257690232247114, + -0.054352935403585434, + -0.035566650331020355, + -0.06114223226904869, + -0.020753640681505203, + 0.03547021001577377, + 0.024977663531899452, + -0.010887946002185345, + 0.004281884990632534, + 0.017195047810673714, + -0.04521053284406662, + -0.021177971735596657, + -0.010193586349487305, + 0.027639374136924744, + 0.014446539804339409, + 0.0023832451552152634, + 1.7027485228027217e-05, + -0.017638666555285454, + -0.01687679998576641, + -0.023858971893787384, + 0.023338202387094498, + -0.03759186342358589, + -0.009320815093815327, + -0.014436895959079266, + -0.012334529310464859, + -0.018024422228336334, + 0.03323282673954964, + 0.007367928512394428, + 0.037746164947748184, + -0.02738863416016102, + 0.027022166177630424, + -0.021197259426116943, + 0.000594304408878088, + 0.017117897048592567, + 0.024630483239889145, + 0.017204690724611282, + 0.010521478950977325, + 0.005685070529580116, + 0.04000283405184746, + 0.022508827969431877, + 0.026964303106069565, + -0.060293570160865784, + 0.00955226831138134, + -0.022528115659952164, + -0.031014734879136086, + -0.0019131057197228074, + -0.008525194600224495, + 0.0007636751397512853, + -0.034737274050712585, + -0.01693466305732727, + 0.009561912156641483, + 0.014379032887518406, + -0.00971621461212635, + -0.0410829521715641, + -0.00765242287889123, + 0.026192791759967804, + -0.009875338524580002, + 0.010309313423931599, + 0.015844903886318207, + 0.030031058937311172, + -0.019847115501761436, + -0.06160514056682587, + -0.013848619535565376, + 0.008346782997250557, + -0.03720610961318016, + -0.01927812583744526, + -0.007989958859980106, + 0.04648352786898613, + -0.026424245908856392, + -0.010560054332017899, + 0.016674278303980827, + -0.001262143487110734, + 0.027350058779120445, + 0.04544198885560036, + -0.07105614989995956, + -0.007859766483306885, + -0.012980669736862183, + -0.03913488611578941, + -0.04482477903366089, + -0.005935811437666416, + -0.009542624466121197, + -0.0012097049038857222, + -0.016510332003235817, + 0.04281885176897049, + 0.03309781476855278, + 0.02137085050344467, + 0.05265561491250992, + 0.0170021690428257, + 0.04042716696858406, + 0.009663172997534275, + -0.01804370991885662, + 0.045017655938863754, + -0.0282758716493845, + -0.0032957978546619415, + 0.01322176679968834, + 0.04582774266600609, + 0.036453887820243835, + -0.03454439714550972, + 0.0007853739080019295, + -0.04571201652288437, + 0.06426685303449631, + 0.04891378432512283, + 0.08070003241300583, + -0.012209158390760422, + 0.017031101509928703, + -0.018034065142273903, + -0.00777779333293438, + 0.025421282276511192, + -0.004445831291377544, + 0.06226092204451561, + 0.001705762231722474, + -0.02304888516664505, + 0.13516870141029358, + -0.016037780791521072, + -0.009253308176994324, + 0.030783280730247498, + -0.0330013744533062, + 0.008139438927173615, + 0.041352979838848114, + 0.027176467701792717, + -0.025421282276511192, + 0.07900270819664001, + -0.07182765752077103, + -0.012778148055076599, + 0.018853794783353806, + 0.02553700841963291, + -0.004961778875440359, + -0.02493908628821373, + -0.0004264405579306185, + 0.0056947143748402596, + -0.006369786337018013, + -0.018738068640232086, + -0.0322105772793293, + 0.011659457348287106, + 0.007850122638046741, + -0.003428401192650199, + -0.009118293412029743, + -0.0004119747318327427, + 0.06677426397800446, + 0.012035569176077843, + -0.04964672029018402, + 0.011929485946893692, + 0.025189828127622604, + 0.05026393011212349, + -0.06129653379321098, + -0.020869366824626923, + -0.03510374203324318, + -0.006716966163367033, + -0.05219270661473274, + 0.03111117333173752, + 0.006586773786693811, + 0.013318205252289772, + 0.010019997134804726, + 0.02071506530046463, + 0.01782190054655075, + 0.07923416048288345, + -0.047177884727716446, + -0.0008402235107496381, + 0.02326105162501335, + 0.027234332635998726, + -0.018853794783353806, + 0.008737360127270222, + 0.04270312562584877, + 0.028912367299199104, + 0.02644353359937668, + -0.027967266738414764, + 0.04999390244483948, + -0.013019245117902756, + 0.044284719973802567, + 0.029355986043810844, + 0.06530839204788208, + -0.009590843692421913, + 0.0011777594918385148, + 0.005622385069727898, + -0.01716611534357071, + -0.04343605786561966, + 0.012160939164459705, + -0.009586022235453129, + 0.008544482290744781, + -0.028082992881536484, + -0.02848803624510765, + 0.0023458751384168863, + 0.02571059763431549, + -0.006162442732602358, + 0.011543730273842812, + -0.0364345982670784, + -0.046792130917310715, + 0.017117897048592567, + 0.0015032406663522124, + -0.03737970069050789, + -0.055895958095788956, + -0.020850079134106636, + -0.005795975215733051, + -0.05581880733370781, + -0.055124446749687195, + 0.0027774388436228037, + 0.014600842259824276, + -0.013983633369207382, + -0.044670477509498596, + 0.0055982754565775394, + 0.0035706486087292433, + -0.05508587136864662, + -0.0052510956302285194, + 0.02003999426960945, + 0.010318957269191742, + 0.04305030405521393, + -0.025749173015356064, + 0.021640878170728683, + -0.02787082828581333, + 0.01183304749429226, + -0.01722397841513157, + 0.013472507707774639, + -0.026462821289896965, + -0.008274453692138195, + 0.03782331943511963, + -0.0406586192548275, + 0.044400446116924286, + -0.008949525654315948, + 0.022952446714043617, + -0.040465742349624634, + 9.508267976343632e-05, + 0.008399823680520058, + -0.0031463175546377897, + -0.015034817159175873, + -0.016413893550634384, + 0.005728467833250761, + 0.01582561619579792, + -0.01959637552499771, + -0.01338571310043335, + 0.018246231600642204, + 0.00556934392079711, + 0.03687821701169014, + -0.018689850345253944, + 0.02420615218579769, + 0.030397526919841766, + 0.0037056629080325365, + 0.01567131280899048, + 0.01341464463621378, + -0.004250542260706425, + 0.015652025118470192, + 0.04000283405184746, + 0.005096793174743652, + -0.016230659559369087, + -0.02326105162501335, + 0.016134219244122505, + -0.023183900862932205, + 0.022528115659952164, + -0.028179433196783066, + 0.0029148643370717764, + -0.004322871565818787, + -0.040465742349624634, + -0.007459545042365789, + -0.008968813344836235, + 0.003551360685378313, + 0.022412389516830444, + 0.019403496757149696, + -0.025980627164244652, + -0.01737828180193901, + -0.04393754154443741, + 0.054237209260463715, + -0.004515749402344227, + 0.023858971893787384, + -0.042896002531051636, + 0.0013947469415143132, + -0.005689892452210188, + 0.02804441750049591, + 0.018853794783353806, + 0.016423536464571953, + -0.0038165675941854715, + 0.024456892162561417, + 0.008115329779684544, + -0.015208407305181026, + 0.03427436947822571, + -0.013935414142906666, + -0.051961254328489304, + 0.011996992863714695, + -0.003399469656869769, + -0.007628313265740871, + -0.004619420971721411, + 0.05863482132554054, + -0.033078525215387344, + -0.010965097695589066, + 0.023685382679104805, + 0.024861935526132584, + 0.016037780791521072, + 0.01848732866346836, + 0.030011771246790886, + 5.8315366914030164e-05, + -0.009576378390192986, + 0.032017700374126434, + -0.0020589695777744055, + -0.015256626531481743, + -0.006678390316665173, + -0.0010240600677207112, + 0.010945810005068779, + -0.010290025733411312, + 0.04521053284406662, + -0.05570308119058609, + 0.008486619219183922, + -0.016963593661785126, + 0.0021095999982208014, + 0.03458297252655029, + -0.10785721242427826, + -0.05014820396900177, + 0.025556296110153198, + 0.05986924096941948, + -0.03386932611465454, + -0.006765185389667749, + 0.011929485946893692, + 0.02854590117931366, + 0.019094891846179962, + -0.056397441774606705, + -0.033637870103120804, + -0.0182172991335392, + -0.039115600287914276, + -0.1464327573776245, + -0.006244415882974863, + -0.00794173963367939, + -0.05219270661473274, + -0.04220164194703102, + -0.02848803624510765, + 0.0019034618744626641, + 0.019982129335403442, + 0.027735814452171326, + -0.04393754154443741, + 0.026192791759967804, + 0.03126547485589981, + 0.02804441750049591, + -0.008231055922806263, + -0.024977663531899452, + -0.005622385069727898, + -0.01894059032201767, + -0.016066713258624077, + 0.03483371436595917, + 0.03572095185518265, + -0.035296618938446045, + -0.015333777293562889, + 0.018477683886885643, + 0.0028304802253842354, + 0.0037779919803142548, + -0.01810157299041748, + -0.04486335441470146, + 0.02331891469657421, + -0.015729175880551338, + 0.028700202703475952, + 0.046406377106904984, + -0.00759455980733037, + 0.027292195707559586, + 0.0529642179608345, + 0.012691352516412735, + -0.014350101351737976, + -0.001993873156607151, + -0.009769255295395851, + 0.03815120831131935, + 0.027350058779120445, + 0.04328175634145737, + 0.014822651632130146, + -0.004084185231477022, + -0.03710966929793358, + -0.06862588971853256, + 0.07267631590366364, + -0.011090467683970928, + 0.0036285119131207466, + -0.07807689160108566, + 0.021891620010137558, + -0.002291628159582615, + 0.011775183491408825, + 0.051961254328489304, + -0.01391612645238638, + 0.0023470805026590824, + -0.024919798597693443, + -0.01848732866346836, + -0.03126547485589981, + -0.023916834965348244, + 0.04575059190392494, + -0.0406586192548275, + -0.00695806322619319, + -0.02609635330736637, + -0.057901885360479355, + -0.016626058146357536, + -0.0020758463069796562, + -0.0742964893579483, + 0.03265419602394104, + 0.019461359828710556, + -0.005632028914988041, + -0.025112677365541458, + 0.011466579511761665, + 0.0218337569385767, + -0.008583057671785355, + 0.02142871357500553, + 0.014292238280177116, + 0.05643601715564728, + 0.0015357887605205178, + -0.02509338967502117, + 0.006418005563318729, + -0.0027629730757325888, + 0.041507281363010406, + -0.025922764092683792, + 0.05126689374446869, + -0.02754293568432331, + 0.021525152027606964, + -0.02432187832891941, + 0.0038069237489253283, + 0.019615663215517998, + -0.01649104431271553, + -0.014620129950344563, + -0.011331564746797085, + 0.012488831765949726, + 0.01385826338082552, + -0.029529577121138573, + -0.0170021690428257, + -0.0005900852265767753, + -0.05682177096605301, + -0.004947313107550144, + -0.041237253695726395, + -0.023029597476124763, + -0.03705180808901787, + 0.032904937863349915, + -0.038074057549238205, + -0.007782615255564451, + 0.0364345982670784, + 0.010617917403578758, + 0.01755187101662159, + 0.035180892795324326, + -0.03716753423213959, + -0.012267022393643856, + 0.009089361876249313, + -0.03248060494661331, + 0.007531874347478151, + -0.01883450709283352, + 0.001719022518955171, + -0.0024411084596067667, + -0.04960814490914345, + -0.03249989449977875, + -0.008293741382658482, + -0.008399823680520058, + 0.029645303264260292, + 0.011071179993450642, + -0.0471007339656353, + -0.031400490552186966, + 0.013241054490208626, + -0.021737316623330116, + 0.012565982528030872, + 0.006027428433299065, + -0.011784827336668968, + 0.01427295058965683, + -0.019982129335403442, + 0.03026251122355461, + 0.020792216062545776, + 0.024418316781520844, + 0.0277743898332119, + 0.008910950273275375, + 0.04798797145485878, + -0.01882486417889595, + -0.07059323787689209, + 0.03159336745738983, + -0.004168569575995207, + -0.030127497389912605, + -0.03604884445667267, + 0.0006829076446592808, + 0.03234558925032616, + 0.009340102784335613, + -0.009692104533314705, + 0.006794116925448179, + -0.017754392698407173, + 0.02754293568432331, + -0.010540766641497612, + 0.008380535989999771, + 0.05458439141511917, + -0.00968728307634592, + 0.044400446116924286, + 0.011514798738062382, + 0.02470763400197029, + 0.002054147655144334, + 0.017706172540783882, + 0.038787707686424255, + -0.07560805976390839, + 0.01566166989505291, + -0.042008765041828156, + 0.022778857499361038, + 0.011321920901536942, + 0.020502900704741478, + 0.015121611766517162, + -0.043513208627700806, + -0.012604557909071445, + 0.02015572041273117, + 0.012537050992250443, + 0.0033729488495737314, + 0.012932450510561466, + -0.001856447895988822, + -0.002105983439832926, + 0.04899093508720398, + -0.009508870542049408, + 0.061180807650089264, + -0.000841428991407156, + 0.005506658460944891, + 0.0406586192548275, + 0.01604742556810379, + 0.04216306656599045, + 0.0250548142939806, + 0.06870304048061371, + 0.03371502459049225, + 0.01910453662276268, + 0.042124491184949875, + -0.002683411119505763, + -0.022412389516830444, + 0.02437974140048027, + -0.02360823191702366, + 0.010733644478023052, + 0.040851496160030365, + -0.013482151553034782, + 0.016847867518663406, + 0.050572533160448074, + -0.0045736124739050865, + 0.02376253344118595, + -0.016587482765316963, + -0.012807079590857029, + -0.037186820060014725, + -0.01976996473968029, + -0.02065720222890377, + -0.027195757254958153, + 0.032287728041410446, + -0.04077434539794922, + -0.05936775729060173, + 0.015748465433716774, + 0.010280381888151169, + -0.05203840509057045, + 0.01982782781124115, + 0.035952404141426086, + -0.02275956980884075, + 0.02376253344118595, + 0.0036333338357508183, + 0.010695069096982479, + -0.024456892162561417, + 0.04220164194703102, + -0.018120860680937767, + 0.006495156791061163, + 0.010434683412313461, + -0.019143112003803253, + 0.014147579669952393, + -0.028449460864067078, + -0.017735105007886887, + -0.03188268467783928, + -0.029355986043810844, + -0.0267714262008667, + -0.05149834603071213, + -0.02254740335047245, + 0.0020264214836061, + 0.06515409052371979, + 0.017619378864765167, + 0.016847867518663406, + -0.012074144557118416, + 0.010887946002185345, + 0.013318205252289772, + 0.004416899289935827, + 0.06758435070514679, + 0.06669711321592331, + 0.025401994585990906, + -0.019114181399345398 + ] + } + }, + { + "type": "组成", + "properties": { + "名称": "发动机的组成", + "内容": "3.1 组成\n船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\n图 3.1 船舶主发动机组成图\nimages/fdb1588e2f75e0e8a15a765fd0e2c1e3b5a3cc0a623d68df5ab0f4230839e240.jpg\n表 3.1 船舶主发动机组成部分\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.1 组成\\n船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\\n图 3.1 船舶主发动机组成图\\nimages/fdb1588e2f75e0e8a15a765fd0e2c1e3b5a3cc0a623d68df5ab0f4230839e240.jpg\\n表 3.1 船舶主发动机组成部分\\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_987bb73e-0a19-4804-bd8b-740633a1004c.pdf#page=5\"}]", + "embedding": [ + 0.021871911361813545, + -0.0005673749255947769, + -0.016115132719278336, + -0.008307861164212227, + 0.005978194065392017, + -0.04339726269245148, + 0.04293517768383026, + 0.01759764738380909, + 0.0053909639827907085, + -0.010570140555500984, + -0.039161503314971924, + -0.0023068031296133995, + 0.0023320734035223722, + 0.015325740911066532, + -0.025472305715084076, + -0.04151042178273201, + -0.024952461943030357, + 0.013140475377440453, + -0.01805010251700878, + -0.03078625537455082, + 0.0007015473092906177, + -0.015085073187947273, + 0.005973380990326405, + -0.009790375828742981, + 0.024548139423131943, + 0.03051670826971531, + -0.022333994507789612, + -0.0013236742233857512, + 0.008317487314343452, + 0.026011401787400246, + -0.030612975358963013, + -0.04174146428704262, + -0.040817297995090485, + -0.01223556324839592, + 0.007123773917555809, + -0.040586259216070175, + 0.02501022256910801, + -0.030767003074288368, + -0.05094461143016815, + 0.017588021233677864, + -0.010493126697838306, + -0.035676632076501846, + -0.004543812479823828, + -0.049481350928545, + -0.01875285431742668, + -0.03912299498915672, + -8.197755232686177e-05, + -0.047748539596796036, + -0.017048923298716545, + -0.04258861765265465, + -0.03544558957219124, + -0.019609631970524788, + 0.017799807712435722, + -0.026454230770468712, + 0.017953835427761078, + 0.02587662823498249, + -0.05745227634906769, + 0.029284486547112465, + -0.09334069490432739, + 0.017520632594823837, + -0.011089983396232128, + 0.06411396712064743, + -0.025433799251914024, + 0.008360807783901691, + 0.0329618938267231, + 0.055719465017318726, + -0.011099610477685928, + 0.0005228513036854565, + -0.01621139980852604, + -0.06550021469593048, + 0.008548528887331486, + -0.0016100691864266992, + 0.006151475012302399, + -0.0005087120807729661, + -0.029554035514593124, + 0.0009067168575711548, + 0.023181146010756493, + -0.02090923860669136, + -0.044436946511268616, + 0.02088998630642891, + 0.04235757514834404, + -0.005501671228557825, + 0.021236548200249672, + -0.018502559512853622, + -0.010310218669474125, + 0.03966209292411804, + -0.048249129205942154, + 0.04151042178273201, + -0.03419411554932594, + -0.04420590400695801, + -0.013823972083628178, + 0.005270630121231079, + 0.008505208417773247, + -0.02115953341126442, + -0.0439363569021225, + -0.00709008052945137, + -0.037833016365766525, + 0.017424365505576134, + 0.018685467541217804, + -0.03430963680148125, + 0.016076624393463135, + 0.026242442429065704, + 0.011109236627817154, + -0.0468628816306591, + 0.04975089803338051, + -0.002377800177782774, + 0.03719765320420265, + 0.0025534878950566053, + -0.011831240728497505, + 0.00027014987426809967, + 0.0412023700773716, + 0.06191907450556755, + 0.015749316662549973, + 0.01552790217101574, + -0.024317098781466484, + -0.016153639182448387, + -0.005126229487359524, + -0.06476858258247375, + 0.02420157752931118, + -0.017337726429104805, + 0.007643616758286953, + -0.006608744617551565, + -0.011638706550002098, + -0.017674660310149193, + 0.019927313551306725, + -0.027416903525590897, + 0.02508723735809326, + 0.038949716836214066, + -0.03523379936814308, + -0.0233544260263443, + -0.016278786584734917, + 0.0035859537310898304, + -0.04890374466776848, + 0.036466021090745926, + -0.03080550953745842, + -0.02088998630642891, + 0.022468768060207367, + 0.0078120846301317215, + -0.0015523089095950127, + -0.013101967982947826, + 0.026800792664289474, + 0.003999902866780758, + 0.005318763665854931, + -0.016288412734866142, + 0.0005357871996238828, + -0.04266563057899475, + 0.005631632171571255, + -0.018829867243766785, + -0.012004521675407887, + -0.017857568338513374, + 0.02938075363636017, + 0.029014939442276955, + 0.07670571655035019, + 0.029823584482073784, + -0.019869552925229073, + 0.02364322915673256, + -0.04655482620000839, + 0.03575364500284195, + -0.025741852819919586, + 0.07955522835254669, + 0.05672064423561096, + 0.03989313542842865, + -0.026608258485794067, + 0.0036244606599211693, + 0.02258428931236267, + -0.046593330800533295, + 0.050713568925857544, + 0.016779376193881035, + -0.050482526421546936, + -0.02637721784412861, + 0.016384679824113846, + 0.01046424638479948, + -0.03636975586414337, + -0.014372695237398148, + 0.02447112649679184, + 0.0075088427402079105, + 0.04844166338443756, + 0.0007376475259661674, + -0.0344829186797142, + -0.019157176837325096, + 0.0033934193197637796, + 0.02250727452337742, + 0.013400396332144737, + 0.005492044612765312, + -0.00687347911298275, + 0.006531730759888887, + 0.0005201437743380666, + -0.03336621820926666, + -0.007037133444100618, + -0.03134460374712944, + -0.04039372503757477, + -0.03053596056997776, + 0.014411202631890774, + -0.025202756747603416, + 0.03662005066871643, + -0.004553439095616341, + 0.017414739355444908, + 0.003833841998130083, + 0.010406485758721828, + 0.0343288891017437, + 0.015200593508780003, + -0.033712778240442276, + -0.0018940574955195189, + -6.798872345825657e-05, + -0.006772398483008146, + 0.0233736801892519, + -0.03690885007381439, + -0.048557184636592865, + -0.03923851624131203, + 0.013034581206738949, + 0.009386053308844566, + -0.05298547446727753, + -0.007860218174755573, + -0.05833793431520462, + -0.007893911562860012, + 0.008245287463068962, + -0.00940049346536398, + -0.026589004322886467, + 0.06003223732113838, + -0.052677419036626816, + -0.025164250284433365, + 0.04736347123980522, + 0.01265913899987936, + 0.00491684814915061, + 0.05059804767370224, + -0.08887389302253723, + 0.05829942598938942, + 0.0011552065843716264, + -0.016163265332579613, + -0.02691631391644478, + -0.007104520685970783, + 0.016028491780161858, + -0.02993910387158394, + -0.016298038884997368, + 0.025376038625836372, + 0.00784577801823616, + -0.0009289786103181541, + 0.005544991698116064, + 0.02501022256910801, + -0.014083893969655037, + -0.01112848985940218, + -0.0030492639634758234, + -0.01606699824333191, + -0.01718369871377945, + -0.0206589438021183, + 0.02506798319518566, + 0.049365829676389694, + 0.005087722558528185, + -0.03357800468802452, + 0.030112385749816895, + 0.011455798521637917, + -0.01941709779202938, + -0.026030655950307846, + 0.004510119091719389, + 0.04898076131939888, + 0.01087819505482912, + 0.03902672976255417, + -0.004252604208886623, + 0.0206589438021183, + -0.03598468378186226, + 0.004221317358314991, + 0.06565424054861069, + 0.037255413830280304, + 0.03269234672188759, + 0.003727948060259223, + 0.010011790320277214, + 0.021929671987891197, + 0.016846762970089912, + -0.004524559248238802, + 0.038660913705825806, + 0.003557073650881648, + -0.03737093508243561, + 0.05518036708235741, + -0.03604244440793991, + 0.018204130232334137, + 0.05687467008829117, + -0.010367979295551777, + 0.00729705486446619, + 0.03636975586414337, + -0.020524170249700546, + 0.05606602504849434, + -0.00012680196959991008, + 0.03610020503401756, + -0.01332338247448206, + 0.011186250485479832, + -0.03679332882165909, + -0.07608960568904877, + -0.02393203042447567, + -0.02087073214352131, + -0.023219652473926544, + -0.05109863728284836, + -0.048287633806467056, + 0.0799402967095375, + -0.027031835168600082, + -0.006127408239990473, + 0.048249129205942154, + 0.01937859132885933, + -0.17405112087726593, + 0.029611796140670776, + -0.03750570863485336, + 0.013140475377440453, + 0.007653243839740753, + -0.015470141544938087, + 0.04297368600964546, + -0.029881343245506287, + -0.0001304871984757483, + 0.012331830337643623, + -0.04701690748333931, + -0.07751436531543732, + -0.034502170979976654, + -0.03350099176168442, + 0.03350099176168442, + -0.03873792663216591, + 0.00403118971735239, + 0.022083699703216553, + 0.012726525776088238, + -0.002051695017144084, + -0.01514283288270235, + -0.007037133444100618, + 0.045515138655900955, + 0.002705108840018511, + -0.009212772361934185, + -0.009530453942716122, + 0.0192149356007576, + 0.0385839007794857, + -0.026762286201119423, + -0.03405934199690819, + -0.013111595064401627, + -0.014574856497347355, + -0.0006696588243357837, + 0.042203549295663834, + 0.02196817845106125, + -0.0023910370655357838, + 0.023450693115592003, + -0.013015327975153923, + -0.005482417996972799, + 0.015296860598027706, + 0.021871911361813545, + 0.03430963680148125, + 0.014189787209033966, + 0.014382322318851948, + -0.029592541977763176, + -0.001724386471323669, + 0.0019145142287015915, + -0.02782122604548931, + -0.007653243839740753, + -0.02832181565463543, + 0.03363576531410217, + -0.029342247173190117, + -0.009814443066716194, + -0.01294794026762247, + -0.0714302733540535, + 0.0078120846301317215, + -0.04154893010854721, + 0.0022069260012358427, + 0.05471828579902649, + -0.041625943034887314, + -0.03055521473288536, + -0.010069550946354866, + 0.01883949339389801, + -0.02225697971880436, + -0.0024764740373939276, + -0.02445187233388424, + 0.048865240067243576, + -0.01747249998152256, + -0.008192339912056923, + -0.012177802622318268, + -0.0004867511161137372, + -0.013766211457550526, + 0.018868373706936836, + -0.018618078902363777, + 0.0011876968201249838, + 0.01763615384697914, + -0.03762122988700867, + -0.006064834538847208, + -0.05283144861459732, + -0.09156937897205353, + 0.016586842015385628, + 0.013977999798953533, + -0.0015547155635431409, + -0.018069356679916382, + -0.0035209734924137592, + -0.005516111385077238, + -5.392468301579356e-05, + -0.016692735254764557, + 0.026454230770468712, + 0.20562677085399628, + -0.04366680979728699, + -0.00915019866079092, + 0.008274166844785213, + 0.043897852301597595, + -0.009092438966035843, + -0.005761593114584684, + -0.04489902779459953, + 0.0028543230146169662, + -0.025472305715084076, + -0.019965820014476776, + -0.03465619683265686, + 0.04720944166183472, + 0.01763615384697914, + 0.027051087468862534, + 0.023855015635490417, + -0.000555341481231153, + 0.017944209277629852, + 0.0988086685538292, + -0.006575050763785839, + 0.02397053688764572, + -0.01579744927585125, + 0.007908351719379425, + 0.007874658331274986, + -0.02589588053524494, + -0.03136385977268219, + -0.009564148262143135, + 0.00271954876370728, + 0.004519745707511902, + -0.013949119485914707, + -0.00935717299580574, + 0.0137565853074193, + -0.0031359046697616577, + -0.006647251080721617, + -0.043589796870946884, + -0.008981731720268726, + 0.003675000974908471, + 0.044090386480093, + 0.01979253999888897, + 0.007504029665142298, + -0.03271159902215004, + -0.0247406754642725, + -0.013130848295986652, + 0.004572692792862654, + 0.0059685674495995045, + -0.04270413890480995, + 0.023720242083072662, + -0.0047339401207864285, + 0.03602319210767746, + 0.006151475012302399, + 0.030035370960831642, + 0.027975253760814667, + -0.047132428735494614, + 0.006069648079574108, + 0.006743518635630608, + -0.014584483578801155, + 0.012899806722998619, + -0.0034439596347510815, + 0.02364322915673256, + 0.0010529226856306195, + 0.026223190128803253, + -0.014459336176514626, + -0.0096267219632864, + -0.011629079468548298, + 0.0412408746778965, + -0.06938941031694412, + -0.03001611866056919, + -0.06985149532556534, + 0.01087819505482912, + 0.010098431259393692, + 0.06846524775028229, + -0.0023705800995230675, + -0.02287309058010578, + -0.002169622341170907, + 0.024952461943030357, + 0.040817297995090485, + 0.033423978835344315, + 0.07000552117824554, + -0.016153639182448387, + -0.021679377183318138, + -0.043320246040821075, + -0.017116311937570572, + -0.03708213195204735, + -0.03552260249853134, + 0.01212004292756319, + 0.026858553290367126, + -0.02672377973794937, + -0.030112385749816895, + -0.005530551541596651, + -0.027397649362683296, + -0.010367979295551777, + -0.016365427523851395, + 0.04478351026773453, + -0.011234384030103683, + 0.005804913118481636, + -0.017665034160017967, + 0.02608841471374035, + -0.020254623144865036, + -0.007268175017088652, + 0.030901776626706123, + -0.03301965445280075, + -0.024567393586039543, + -0.03496425226330757, + -0.02142908237874508, + 0.0033765726257115602, + 0.057914357632398605, + -0.005034775473177433, + 0.013130848295986652, + -0.05248488485813141, + 0.07012104243040085, + 0.028495095670223236, + 0.03525305539369583, + -0.01237033773213625, + 0.011166997253894806, + 0.005347643978893757, + 0.000764722703024745, + -0.0062573691830039024, + 0.03737093508243561, + 0.024798434227705002, + 0.0439363569021225, + -0.07000552117824554, + 0.010396859608590603, + -0.01418016105890274, + -0.045207083225250244, + 0.012168176472187042, + -0.024971716105937958, + -0.009631535038352013, + -0.04347427561879158, + -0.013477410189807415, + 0.032365038990974426, + 0.006074461154639721, + -0.010570140555500984, + -0.015422008000314236, + -0.01853143982589245, + 0.008033499121665955, + -0.0003194868331775069, + -0.016346173360943794, + 0.023835763335227966, + 0.030767003074288368, + -0.04539961740374565, + -0.07123774290084839, + -0.0034295194782316685, + 0.009467880241572857, + -0.03579214960336685, + -0.006599117536097765, + -0.0033380656968802214, + 0.05117565393447876, + -0.004103390034288168, + -0.0026882619131356478, + -0.002311616437509656, + -0.006170728709548712, + 0.017693914473056793, + 0.04720944166183472, + -0.0687732994556427, + 0.00970854889601469, + -0.011224756948649883, + -0.015826329588890076, + -0.011754226870834827, + -0.0178864486515522, + -0.00049306865548715, + -0.005395777523517609, + 0.0016666261944919825, + 0.06161101907491684, + 0.008428194560110569, + 0.02807152085006237, + 0.07570453733205795, + -0.01828114502131939, + 0.049673885107040405, + 0.031748928129673004, + -0.017501380294561386, + 0.04844166338443756, + -0.04108684882521629, + 0.013390770182013512, + 0.035638123750686646, + 0.03357800468802452, + 0.03078625537455082, + -0.013775838539004326, + -0.03196071460843086, + -0.04844166338443756, + 0.07878509163856506, + 0.054641272872686386, + 0.07324010133743286, + -0.012514738366007805, + 0.02966955676674843, + 0.0013934680027887225, + -0.0007689343765377998, + 0.01668310910463333, + -0.027108848094940186, + 0.054333217442035675, + -0.0021106586791574955, + -0.02422083169221878, + 0.09703735262155533, + -0.014218667522072792, + -0.007104520685970783, + 0.04975089803338051, + -0.043050698935985565, + -0.0007304275059141219, + 0.02587662823498249, + 0.025183504447340965, + -0.01032947190105915, + 0.07739884406328201, + -0.030709242448210716, + 0.0035498535726219416, + -0.027070341631770134, + -0.0007370458915829659, + -0.03789077699184418, + -0.013361889868974686, + -0.024644406512379646, + 0.00950157456099987, + -0.00949194747954607, + -0.0047387536615133286, + -0.045284099876880646, + 0.024028297513723373, + 0.013535170815885067, + -0.001920530921779573, + 0.01743399351835251, + -0.020678197965025902, + 0.07012104243040085, + -0.026589004322886467, + -0.04181847721338272, + -0.019041655585169792, + 0.024105310440063477, + 0.029823584482073784, + -0.032037731260061264, + -0.00991552323102951, + -0.037524960935115814, + 0.004038409795612097, + -0.042203549295663834, + 0.06191907450556755, + 0.0024403738789260387, + 0.012418471276760101, + 0.015008059330284595, + 0.008274166844785213, + 0.021005505695939064, + 0.06831121444702148, + -0.030882522463798523, + -0.0220066849142313, + 0.028745390474796295, + 0.030709242448210716, + -0.01639430783689022, + 0.02477918192744255, + 0.026743032038211823, + 0.03509902581572533, + 0.039739105850458145, + -0.00798055250197649, + 0.062034595757722855, + -0.020697452127933502, + 0.05005895346403122, + -0.005068468861281872, + 0.03848763182759285, + -0.0075377230532467365, + 0.0233544260263443, + 0.01977328583598137, + -0.023181146010756493, + -0.021660123020410538, + -0.021563855931162834, + -0.021063266322016716, + 0.0130923418328166, + -0.02635796368122101, + -0.0021106586791574955, + -0.006979373283684254, + 0.018329277634620667, + 0.008543715812265873, + 0.0037712682969868183, + -0.0069841863587498665, + 0.00207816855981946, + 0.011157370172441006, + -0.026319457218050957, + -0.030420441180467606, + -0.03361651301383972, + -0.03411710262298584, + 0.0010595410130918026, + -0.06515365093946457, + -0.07254697382450104, + 0.03654303401708603, + -0.005193616263568401, + -0.02857211045920849, + -0.03579214960336685, + 0.008230847306549549, + -0.023527707904577255, + -0.04547663405537605, + 0.02258428931236267, + 0.010483499616384506, + 0.010339098982512951, + 0.04978940263390541, + -0.010358352214097977, + 0.007778391242027283, + -0.01869509369134903, + 0.038622405380010605, + -0.01623065210878849, + -0.005747152958065271, + -0.010444993153214455, + -0.022199220955371857, + 0.02252652868628502, + -0.013592930510640144, + 0.026300203055143356, + 0.001634135958738625, + 0.013795091770589352, + -0.018993521109223366, + -0.022603541612625122, + -0.01125363726168871, + 0.013862479478120804, + -0.0072633614763617516, + -0.025972895324230194, + -0.013544796966016293, + 0.0029481835663318634, + -0.01898389495909214, + 0.020158354192972183, + 0.02999686449766159, + -0.0029770636465400457, + 0.02366248145699501, + 0.0074944025836884975, + 0.018233010545372963, + -0.002168419072404504, + 0.01937859132885933, + -0.0056653255596756935, + 0.013111595064401627, + -0.0103005925193429, + -0.018502559512853622, + 0.035618871450424194, + 0.0002021611580858007, + -0.013515917584300041, + -0.006377703044563532, + 0.0047772605903446674, + -0.0494428426027298, + 0.006844599265605211, + -0.0089432243257761, + 0.04008566960692406, + -0.01813674345612526, + -0.05606602504849434, + -0.0019121075747534633, + 0.005795286502689123, + -0.01954224519431591, + 0.016702361404895782, + 0.0016425594221800566, + -0.022699808701872826, + 0.0012911839876323938, + -0.049904923886060715, + 0.03446366265416145, + 0.015036938712000847, + 0.0033500990830361843, + -0.04050924628973007, + 0.030767003074288368, + -0.0028735764790326357, + 0.06996700912714005, + -0.018001969903707504, + 0.005164735950529575, + -0.004437918774783611, + 0.03197997063398361, + 0.0020829818677157164, + -0.014988805167376995, + 0.029650302603840828, + -0.030324172228574753, + -0.05202280357480049, + -0.04093281924724579, + 0.00010732290684245527, + -0.014247547835111618, + -0.017135564237833023, + 0.035349320620298386, + -0.00447642570361495, + 0.004495678935199976, + 0.008327114395797253, + 0.012485858052968979, + 0.025453051552176476, + 0.016615722328424454, + 0.0317104198038578, + 0.00015207211254164577, + -0.008346367627382278, + 0.036754824221134186, + -0.01910904236137867, + -0.007826524786651134, + -0.0317104198038578, + 0.04035521671175957, + 0.013121221214532852, + 0.021294308826327324, + 0.01606699824333191, + -0.04270413890480995, + -0.0005252580158412457, + 0.011715720407664776, + -0.0070419469848275185, + 0.018974268808960915, + -0.11374934017658234, + -0.05410217493772507, + 0.004760413896292448, + 0.07901613414287567, + -0.01596110500395298, + -0.0001339467999059707, + 0.004957761615514755, + 0.013294502161443233, + 0.022141460329294205, + -0.055989012122154236, + -0.004582319408655167, + -0.029034191742539406, + -0.02196817845106125, + -0.12044954299926758, + -0.019965820014476776, + -0.03001611866056919, + -0.03484873101115227, + -0.044128891080617905, + -0.023489201441407204, + -0.0022045192308723927, + 0.031190577894449234, + 0.003123871050775051, + -0.017588021233677864, + 0.02857211045920849, + -0.015749316662549973, + 0.041933998465538025, + -0.018685467541217804, + -0.032846372574567795, + -0.0027773091569542885, + -0.038391366600990295, + -0.014892538078129292, + 0.029650302603840828, + 0.018743226304650307, + -0.044436946511268616, + -0.02169863134622574, + -0.0016196959186345339, + 0.00041635570232756436, + 0.02755167707800865, + -0.02891867235302925, + 0.004411444999277592, + 0.03881494328379631, + -0.019696272909641266, + 0.017414739355444908, + 0.07339412719011307, + 0.021679377183318138, + 0.03748645260930061, + 0.04320472478866577, + 0.012505111284554005, + -0.019137922674417496, + -0.014796270988881588, + -0.029804330319166183, + 0.046092744916677475, + 0.03812181577086449, + 0.038044802844524384, + 0.02668527141213417, + 0.016288412734866142, + -0.03280786797404289, + -0.011475051753222942, + 0.05529588833451271, + -0.020254623144865036, + -0.000552634010091424, + -0.07478037476539612, + 0.04216504096984863, + -0.008659236133098602, + -0.0034102662466466427, + 0.07813047617673874, + -0.01569155603647232, + -0.004223723895847797, + -0.022199220955371857, + -0.02088998630642891, + -0.02533753216266632, + -0.021525349467992783, + 0.05113714560866356, + -0.06295876204967499, + -0.010271712206304073, + -0.014815524220466614, + -0.049904923886060715, + 0.009092438966035843, + -0.013689198531210423, + -0.08617841452360153, + 0.033385470509529114, + 0.020774465054273605, + -0.030054625123739243, + -0.03794853761792183, + 0.003660560818389058, + 0.01182161457836628, + -0.0015884090680629015, + 0.014199414290487766, + 0.002928930101916194, + 0.06126445531845093, + 0.028706884011626244, + -0.012928687036037445, + -0.01266876608133316, + 0.004570286255329847, + 0.048249129205942154, + -0.035349320620298386, + 0.04324323311448097, + -0.03084401600062847, + 0.004279077984392643, + -0.016692735254764557, + 0.01626916043460369, + 0.012562871910631657, + -0.017231831327080727, + -0.04270413890480995, + -0.006632811389863491, + 0.028148533776402473, + -0.015893718227744102, + -0.04023969545960426, + -0.0233544260263443, + 0.012832419946789742, + -0.052292350679636, + -0.008765130303800106, + -0.051830269396305084, + -0.018290771171450615, + 0.012813166715204716, + 0.017068177461624146, + -0.0017027263529598713, + -0.032596077769994736, + 0.017568767070770264, + 0.04050924628973007, + 0.001909700920805335, + 0.03912299498915672, + -0.03321218863129616, + 0.004789294209331274, + 0.00578084634616971, + -0.03767898678779602, + 0.00261846836656332, + 0.0007280207937583327, + 0.002013188088312745, + -0.004584725946187973, + -0.06014775484800339, + -0.04486052319407463, + 0.012023774906992912, + -0.021583110094070435, + 0.04262712225317955, + -0.014805898070335388, + -0.029303740710020065, + -0.007513656280934811, + 0.010839688591659069, + 0.00046418848796747625, + 0.027898238971829414, + 0.012274069711565971, + -0.0031046178191900253, + 0.03132535144686699, + -0.04570767283439636, + 0.016798628494143486, + -0.009419746696949005, + 0.00907799880951643, + 0.010781927965581417, + 0.008081632666289806, + 0.06781062483787537, + -0.03169116750359535, + -0.0689273253083229, + 0.004435511771589518, + 0.0206589438021183, + -0.012177802622318268, + -0.012197055853903294, + 0.0011949167819693685, + 0.015344994142651558, + 0.003070924198254943, + -0.024105310440063477, + 0.020254623144865036, + -0.010194698348641396, + -0.004221317358314991, + 0.001583595760166645, + 0.004551032558083534, + 0.029207473620772362, + -0.02397053688764572, + 0.022122206166386604, + 0.025953641161322594, + 0.02062043733894825, + -0.004668959882110357, + 0.005410217680037022, + 0.030150892212986946, + -0.04971238970756531, + 0.02360472083091736, + -0.03438664972782135, + 0.0045077125541865826, + 0.02445187233388424, + -0.0015113953268155456, + 0.02753242291510105, + -0.03665855526924133, + 0.009867389686405659, + -0.017279965803027153, + 0.00250776088796556, + -0.001634135958738625, + 0.03465619683265686, + 0.007609923370182514, + -0.02526051737368107, + 0.03350099176168442, + 0.00557387201115489, + 0.059531647711992264, + 0.026492737233638763, + 0.020793719217181206, + 0.03386680781841278, + 0.031787436455488205, + -0.019349711015820503, + 0.020755210891366005, + 0.0689658373594284, + 0.049635376781225204, + 0.019532619044184685, + 0.05198429524898529, + -0.01180236041545868, + 0.006825345568358898, + 0.02256503514945507, + 0.0037303545977920294, + 0.009737429209053516, + 0.02558782696723938, + 0.000829703058116138, + 0.032615333795547485, + 0.045823194086551666, + -0.01563379541039467, + 0.02938075363636017, + -0.01869509369134903, + 0.007345188409090042, + -0.005313950125128031, + -0.04062476381659508, + -0.0412408746778965, + -0.014497842639684677, + 0.026743032038211823, + -0.06688646227121353, + -0.041625943034887314, + 0.023315919563174248, + -0.030343426391482353, + -0.014112774282693863, + 0.022892344743013382, + 0.006964933127164841, + -0.0017532666679471731, + 0.015576035715639591, + 0.019368963316082954, + -0.0011142930015921593, + -0.0024608306121081114, + 0.017029670998454094, + -0.008996170945465565, + -0.031537141650915146, + 0.01954224519431591, + -0.009954029694199562, + 0.06395994126796722, + -0.028783896937966347, + -0.03742869198322296, + -0.03419411554932594, + -0.005241749808192253, + -0.02997761033475399, + -0.05752928927540779, + -0.021891165524721146, + -0.01169646717607975, + 0.026550497859716415, + 0.013939493335783482, + 0.00920314621180296, + -0.015373874455690384, + 0.01952299103140831, + 0.007075640372931957, + -0.01660609431564808, + 0.037563469260931015, + 0.08148057013750076, + -0.01417053397744894, + -0.0014945485163480043 + ] + } + }, + { + "type": "工作原理", + "properties": { + "名称": "发动机的工作原理", + "内容": "3.2 工作原理\n主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\n船舶主发动机工作原理\n图 3.2 船舶主发动机组成图\nimages/ae9bcbc029d318bd8189bbb9c67cd730ea4c950b1e383ed8454834040d7d16ae.jpg\n图 3.3 机座与机架组件整体图\nimages/8adac92aca5096dde35f5be2420796b45d0e94ca723aae8ba857624de66aa758.jpg\n图 3.4 曲柄连杆机构工作原理图\nimages/23fa41fea5e5b5458d6f7df3f8e7e8033b6665bd23203946646651c3e56c2da7.jpg\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\n图 3.5 燃烧室部件工作原理图\nimages/ebfc008f330e9041518542ffd9cde5df5143a441eaada1b7e225cef8063aa904.jpg\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\n图 3.6 排气阀驱动系统工作原理图\nimages/bd853c17f04663c1afbaa7935da38fddd1bc94764f23539c044fdf3fc0ca42ed.jpg\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\n核心原理与步骤\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\n图 3.7 燃油喷射系统工作原理图\nimages/141c6a9ab46f9b8b4bd5ee3355ab569bbd8c17f0436343e32bf4429a742c40d9.jpg\n如图3.7中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\n图 3.8 扫气与增压系统工作原理图\nimages/d21cb32df23febcd28812d8e8d1a0fbfff2bc35be920932d6cd4a166663f1de4.jpg\n用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 700-900°C 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.2 工作原理\\n主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\\n船舶主发动机工作原理\\n图 3.2 船舶主发动机组成图\\nimages/ae9bcbc029d318bd8189bbb9c67cd730ea4c950b1e383ed8454834040d7d16ae.jpg\\n图 3.3 机座与机架组件整体图\\nimages/8adac92aca5096dde35f5be2420796b45d0e94ca723aae8ba857624de66aa758.jpg\\n图 3.4 曲柄连杆机构工作原理图\\nimages/23fa41fea5e5b5458d6f7df3f8e7e8033b6665bd23203946646651c3e56c2da7.jpg\\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\\n图 3.5 燃烧室部件工作原理图\\nimages/ebfc008f330e9041518542ffd9cde5df5143a441eaada1b7e225cef8063aa904.jpg\\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\\n图 3.6 排气阀驱动系统工作原理图\\nimages/bd853c17f04663c1afbaa7935da38fddd1bc94764f23539c044fdf3fc0ca42ed.jpg\\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\\n核心原理与步骤\\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\\n图 3.7 燃油喷射系统工作原理图\\nimages/141c6a9ab46f9b8b4bd5ee3355ab569bbd8c17f0436343e32bf4429a742c40d9.jpg\\n如图3.7中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\\n图 3.8 扫气与增压系统工作原理图\\nimages/d21cb32df23febcd28812d8e8d1a0fbfff2bc35be920932d6cd4a166663f1de4.jpg\\n用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 700-900°C 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_e3899eeb-febe-4f34-b93e-152cd28a3fe9.pdf#page=9\"}]", + "embedding": [ + -0.019392002373933792, + -0.01896601729094982, + -0.025346113368868828, + 0.013108722865581512, + -0.018985381349921227, + -0.026527253910899162, + 0.008234098553657532, + 0.0024578855372965336, + 5.967724428046495e-05, + -0.00999128632247448, + -0.034698422998189926, + -0.013912285678088665, + 0.01938232220709324, + 0.0013554070610553026, + 0.0007448688265867531, + -0.020757092162966728, + 0.014783618971705437, + 0.023642173036932945, + -0.020815180614590645, + -0.02546229027211666, + 0.019498499110341072, + -0.014260819181799889, + 0.0314260832965374, + 0.005266724620014429, + 0.020466648042201996, + 0.027669668197631836, + -0.006418820936232805, + -0.029954496771097183, + 0.03520185872912407, + 0.010407590307295322, + -0.01089166384190321, + -0.0409720204770565, + -0.08504211157560349, + -0.008931164629757404, + -0.01283764187246561, + -0.025907639414072037, + 0.017436344176530838, + -0.012769871391355991, + -0.0409720204770565, + 0.026720883324742317, + -0.015393552370369434, + -0.045812759548425674, + 0.026953238993883133, + -0.043760284781455994, + -0.020776454359292984, + -0.01243101991713047, + -0.011104656383395195, + -0.04480588808655739, + -0.05882466956973076, + -0.028966985642910004, + -0.03632491081953049, + -0.021376706659793854, + 0.035608481615781784, + 0.003613612148910761, + 0.006167102139443159, + 0.020001936703920364, + -0.0388420969247818, + 0.02987704612314701, + -0.08868235349655151, + -0.0006952512194402516, + 0.01048504188656807, + 0.028153741732239723, + -0.043024495244026184, + -0.007294994778931141, + 0.020389195531606674, + 0.057004548609256744, + -0.0027810048777610064, + -0.007067480124533176, + -0.012043760158121586, + -0.0671120136976242, + 0.02919934131205082, + -0.008655242621898651, + -0.005615258123725653, + -0.023216187953948975, + -0.018201181665062904, + 0.0370800644159317, + 0.025539742782711983, + -0.018423855304718018, + -0.02718559466302395, + 0.0033739956561475992, + 0.012760189361870289, + 3.367717727087438e-05, + 0.03241359442472458, + 0.00574595807120204, + -0.008621357381343842, + 0.024106884375214577, + -0.047439247369766235, + 0.03415625914931297, + -0.023003194481134415, + -0.05456481873989105, + 0.001757188467308879, + -0.005223158281296492, + 0.01588730700314045, + -0.02641107514500618, + -0.05088585615158081, + -0.029644690454006195, + -0.029083164408802986, + 0.026895148679614067, + 0.01620679721236229, + 0.028618453070521355, + 0.03258785977959633, + 0.008345435373485088, + 0.007972698658704758, + -0.04976280406117439, + 0.03957788646221161, + -0.014028463512659073, + 0.022906379774212837, + 0.0059153838083148, + -0.018085002899169922, + 0.0023876947816461325, + 0.019295187667012215, + 0.038648463785648346, + -0.0033110659569501877, + 0.01945977285504341, + -0.027030689641833305, + -0.0004386920190881938, + -0.008814986795186996, + -0.015722721815109253, + 0.019479136914014816, + 0.009962242096662521, + -0.02584954909980297, + -0.012353567406535149, + -0.014222092926502228, + -0.0034393456298857927, + -0.03185206651687622, + -0.06079969182610512, + 0.04852357506752014, + 0.016894182190299034, + -0.06560170650482178, + 0.0031997289042919874, + -0.009168361313641071, + 0.013825152069330215, + -0.021163713186979294, + 0.02147352136671543, + -0.022828929126262665, + -0.04178526625037193, + 0.018936973065137863, + 0.014009100385010242, + -0.00379998073913157, + -0.02941233478486538, + 0.028715267777442932, + 0.0008271613623946905, + -8.48642157507129e-05, + 0.0034732306376099586, + 0.011550004594027996, + -0.03806757554411888, + 0.0033570530358701944, + -0.011646819300949574, + -0.023777713999152184, + 0.0028027882799506187, + 0.0014316487358883023, + 0.028947623446583748, + 0.049452997744083405, + 0.02705005370080471, + -0.029644690454006195, + 0.03270403668284416, + -0.045890212059020996, + 0.048639751970767975, + -0.024242423474788666, + 0.05971536412835121, + 0.08062735944986343, + 0.02623680979013443, + -0.002931067952886224, + 0.028521638363599777, + 0.03156162425875664, + -0.060373704880476, + 0.039074450731277466, + 0.012130893766880035, + -0.027630941942334175, + -0.02298383228480816, + 0.0019036208977922797, + 0.014270500279963017, + -0.025404201820492744, + -0.017281441017985344, + 0.03262658417224884, + 0.012634330429136753, + 0.04577403515577316, + 0.019266143441200256, + -0.04650982841849327, + -0.020331107079982758, + -0.008001742884516716, + 0.024319875985383987, + 0.02524929866194725, + -0.0006023695459589362, + -0.012227708473801613, + 0.0023598605766892433, + 0.036557264626026154, + -0.023855164647102356, + -0.004276793450117111, + -0.016903862357139587, + -0.026546616107225418, + -0.026856424286961555, + 0.004627746995538473, + 0.018346402794122696, + 0.02224803902208805, + -0.060683511197566986, + 0.024920128285884857, + 0.02079581841826439, + 0.006888372357934713, + 0.009352308697998524, + 0.0317746140062809, + -0.006810920778661966, + 0.008674605749547482, + 0.006326846778392792, + -0.017078129574656487, + -0.007416013162583113, + -0.04476715996861458, + -0.03589892387390137, + -0.03233614191412926, + -0.023254914209246635, + 0.015345145016908646, + -0.051854003220796585, + -0.004194500856101513, + -0.020737728103995323, + -0.014735211618244648, + 0.01956626959145069, + -0.014744892716407776, + -0.03555039316415787, + 0.03733178600668907, + -0.05045986920595169, + -0.030903281643986702, + 0.07977539300918579, + 0.03489205241203308, + -0.030922645702958107, + 0.03570529446005821, + -0.0670732855796814, + 0.06622131913900375, + 0.004927873145788908, + 0.023855164647102356, + -0.03611191734671593, + -0.015306418761610985, + -0.0006837544497102499, + -0.00868912786245346, + -0.005382902454584837, + -0.006994868628680706, + -0.021512247622013092, + -0.015287055633962154, + -0.00216260040178895, + 0.03845483437180519, + 0.023100009188055992, + 0.001609545899555087, + -0.032471682876348495, + -0.00813728291541338, + -0.001770500559359789, + -0.008471294306218624, + 0.009526575915515423, + 0.04790395870804787, + -0.014502855949103832, + -0.012169619090855122, + -0.0019508181139826775, + 0.025404201820492744, + -0.010165553539991379, + -0.05243489146232605, + -0.003988769371062517, + 0.004010553006082773, + 0.002041582018136978, + 0.028444185853004456, + -0.0005382297676987946, + 0.0016652144258841872, + -0.026178719475865364, + 0.00034096959279850125, + 0.019479136914014816, + 0.018723981454968452, + 0.033246200531721115, + -0.008713331073522568, + 0.0255978312343359, + 0.001902410644106567, + 0.021163713186979294, + -0.0035434213932603598, + 0.05038241669535637, + -0.014822345227003098, + -0.01885952241718769, + 0.03316874802112579, + 0.02217058837413788, + 0.0025631715543568134, + 0.0064430246129632, + 0.0010401539038866758, + 0.01324426382780075, + 0.03030303120613098, + -0.050847128033638, + 0.01998257264494896, + -0.0017245134804397821, + 0.04399264231324196, + -0.01705876737833023, + 0.008500338532030582, + -0.0702488124370575, + -0.05193145573139191, + -0.03553102910518646, + -0.006399457808583975, + -0.04128182679414749, + -0.033207472413778305, + -0.05355794355273247, + 0.06931938976049423, + -0.04774905741214752, + -0.03696388751268387, + 0.06540807336568832, + 0.004605963826179504, + -0.17860393226146698, + 0.024358602240681648, + -0.039422985166311264, + 0.021589698269963264, + 0.005126343108713627, + -0.006046083755791187, + 0.012924774549901485, + -0.020602187141776085, + -0.013350759632885456, + 0.020079387351870537, + -0.0255978312343359, + -0.06176783889532089, + -0.03359473496675491, + -0.04197889566421509, + 0.00037727513699792325, + -0.02298383228480816, + -0.0053635393269360065, + 0.013650885783135891, + -0.009381353855133057, + -0.013815470971167088, + -0.03268467262387276, + -0.016264885663986206, + 0.06397521495819092, + -0.02919934131205082, + -0.004192080348730087, + -0.02048601023852825, + 0.0048116953112185, + 0.02503630518913269, + -0.04321812465786934, + -0.01779455877840519, + 0.017668699845671654, + -0.01796882599592209, + -0.008940845727920532, + 0.04476715996861458, + 0.02941233478486538, + 0.0023005616385489702, + -0.005019846837967634, + -0.013021589256823063, + 0.00016171096649486572, + 0.001755978330038488, + 0.02885080873966217, + 0.045115694403648376, + -0.000718244758900255, + 0.024339238181710243, + -0.02747603878378868, + 0.001725723734125495, + -0.001110344659537077, + -0.030128763988614082, + -0.04077839106321335, + -0.011646819300949574, + 0.02859908901154995, + -5.608450737781823e-05, + -0.026604704558849335, + -0.023119373247027397, + -0.0518927276134491, + 0.0006280859815888107, + 0.0008005372947081923, + -0.006578565109521151, + 0.006346209906041622, + 0.01616807095706463, + -0.051389291882514954, + -0.0057362765073776245, + 0.03152289614081383, + -0.021105624735355377, + -0.004136411938816309, + 0.025868913158774376, + 0.03489205241203308, + 0.03733178600668907, + -0.0010038483887910843, + -0.002926227170974016, + 0.017049085348844528, + 0.012915093451738358, + 0.007880724035203457, + 0.007299835328012705, + 0.002611579140648246, + 0.010630263946950436, + -0.03558911755681038, + -0.030322393402457237, + -0.0014534321380779147, + -0.079117052257061, + -0.011927582323551178, + 0.008030787110328674, + -0.0038895343896001577, + -0.017049085348844528, + -0.008311550132930279, + -0.006893213372677565, + -0.0220737736672163, + -0.033885177224874496, + 0.03936489671468735, + 0.22259657084941864, + -0.03541485220193863, + 0.008892438374459743, + 0.006181624718010426, + 0.04085584357380867, + -0.03992642089724541, + -0.03909381479024887, + -0.02774711884558201, + 0.004104947205632925, + -0.020989447832107544, + 0.011104656383395195, + -0.017600929364562035, + 0.033807724714279175, + 0.018481943756341934, + 0.00817116815596819, + -0.01279891561716795, + -0.009647593833506107, + 0.018743343651294708, + 0.0879078358411789, + -0.025520378723740578, + 0.042637236416339874, + 0.018423855304718018, + 0.02015683986246586, + 0.016090618446469307, + -0.03541485220193863, + -0.019246781244874, + -0.024106884375214577, + 0.0041702971793711185, + 0.003783038118854165, + -0.0029625326860696077, + -0.013263626955449581, + 0.006709265056997538, + 0.021066898480057716, + -0.009608868509531021, + -0.01779455877840519, + -0.013854197226464748, + -0.003514376934617758, + 0.006089650560170412, + 0.04240487888455391, + 0.00038877190672792494, + -0.025346113368868828, + -0.009037661366164684, + -0.03382708877325058, + 0.015287055633962154, + -0.00730951689183712, + -0.042675960808992386, + 0.012992545031011105, + 0.004814115818589926, + 0.0003203964442946017, + -0.0018080162117257714, + 0.015877626836299896, + 0.05076967924833298, + -0.033207472413778305, + 0.004073482472449541, + -0.02147352136671543, + -0.04035240411758423, + 0.012847322970628738, + 0.04042985662817955, + 0.010833575390279293, + 0.008476135320961475, + 0.04178526625037193, + -0.01061090175062418, + 0.021279891952872276, + 0.05394520238041878, + 0.0007103785173967481, + -0.09394907206296921, + -0.03129054233431816, + -0.047090716660022736, + 0.028269920498132706, + 0.008969890885055065, + 0.04163036122918129, + -0.0035918287467211485, + -0.021241165697574615, + 0.02877335622906685, + 0.0220737736672163, + 0.04794268682599068, + 0.01007841993123293, + 0.0766385868191719, + -0.032858941704034805, + -0.01504501886665821, + -0.05557169020175934, + -0.03729305788874626, + -0.056656017899513245, + -0.04159163683652878, + 0.007808113005012274, + 0.019575951620936394, + -0.05193145573139191, + -0.012198664247989655, + 0.011433826759457588, + -0.002002855995669961, + -0.024455416947603226, + -0.011569367721676826, + 0.0370800644159317, + 0.005092458333820105, + 0.023177461698651314, + -0.00782263558357954, + -0.012973181903362274, + -0.022364217787981033, + -0.00217591249383986, + 0.011027204804122448, + -0.0413205549120903, + -0.04279213771224022, + 0.0006637864280492067, + 0.01502565573900938, + -0.014928841032087803, + 0.038048215210437775, + 0.010920708999037743, + 0.033846452832221985, + -0.006307483650743961, + 0.04434117674827576, + -0.00782263558357954, + 0.00914415717124939, + -0.010649627074599266, + 0.007875883020460606, + 0.029005711898207664, + 0.023855164647102356, + 0.0011793251615017653, + 0.0518927276134491, + 0.02945106104016304, + 0.043450478464365005, + -0.05808887630701065, + 0.029857682064175606, + 0.006200987379997969, + -0.002276357728987932, + -0.026256171986460686, + -0.005775002297013998, + -0.01228579692542553, + -0.06095459312200546, + -0.02015683986246586, + 0.013621841557323933, + 0.03950043395161629, + -0.009826701134443283, + -0.0015599284088239074, + -0.034407977014780045, + 0.030496660619974136, + -0.016400426626205444, + 0.03700261563062668, + 0.036595992743968964, + 0.046238746494054794, + -0.022267403081059456, + -0.05913447588682175, + -0.008882757276296616, + 0.0052328393794596195, + -0.026895148679614067, + -0.0002553490048740059, + 0.00391131779178977, + 0.05533933639526367, + -0.033923905342817307, + -0.02821183018386364, + 0.019295187667012215, + 0.011908219195902348, + 0.03640236333012581, + 0.017775196582078934, + -0.05956045910716057, + 0.02524929866194725, + -0.05193145573139191, + -0.03510504588484764, + -0.049027010798454285, + -0.01515151560306549, + -0.028269920498132706, + 0.0005076725501567125, + 0.0016398006118834019, + 0.034098170697689056, + 0.04558040574193001, + 0.03314938396215439, + 0.02054409869015217, + 0.025965727865695953, + 0.06281343847513199, + 0.021686512976884842, + -0.018239907920360565, + 0.03386581316590309, + -0.02238357998430729, + -0.008069513365626335, + 0.01584858074784279, + 0.02447477914392948, + 0.04050730913877487, + -0.05855358764529228, + -0.0018636847380548716, + -0.08798528462648392, + 0.05208635702729225, + 0.02718559466302395, + 0.049878980964422226, + -0.012547196820378304, + 0.015625907108187675, + -0.018704617395997047, + 0.035434212535619736, + 0.06203892081975937, + -0.008200213313102722, + 0.02555910497903824, + -0.010833575390279293, + -0.0183560848236084, + 0.11385419964790344, + -0.017959143966436386, + 0.013892922550439835, + 0.050188787281513214, + -0.03649917617440224, + 0.010814212262630463, + 0.014376997016370296, + 0.032355502247810364, + -0.02615935727953911, + 0.10967180132865906, + -0.007948494516313076, + 0.03262658417224884, + 0.015790492296218872, + 0.003804821288213134, + -0.009933197870850563, + -0.009574983268976212, + -0.013350759632885456, + 0.01726207695901394, + 0.034020718187093735, + -0.014851389452815056, + -0.03756413981318474, + -0.01423177495598793, + 0.014754574745893478, + 0.002248523524031043, + -0.025578469038009644, + -0.009395875968039036, + 0.06246490404009819, + 0.03043857030570507, + -0.034272436052560806, + -0.019924484193325043, + 0.005116662010550499, + 0.04112692549824715, + -0.02249975875020027, + -0.04286959022283554, + -0.03835802152752876, + -0.0024881402496248484, + -0.040274955332279205, + 0.05320940911769867, + -0.0067479913122951984, + 0.008543905802071095, + -0.00736276526004076, + 0.011840449646115303, + 0.015790492296218872, + 0.06540807336568832, + -0.0048407395370304585, + 0.00010082353401230648, + 0.02563655748963356, + 0.02220931276679039, + -0.017310485243797302, + 0.0055523281916975975, + 0.016255203634500504, + 0.060722239315509796, + -0.00775002408772707, + -0.026740245521068573, + 0.009153838269412518, + -0.025481654331088066, + 0.0423661544919014, + 0.05076967924833298, + 0.06893213093280792, + -0.028269920498132706, + 0.0441475473344326, + 0.03775776922702789, + -0.02139606885612011, + -0.04647110030055046, + 0.0005621308810077608, + -0.009434601292014122, + -0.001667634816840291, + -0.008950527757406235, + 0.00999128632247448, + 0.016642462462186813, + 0.0022848290391266346, + 0.0008658873266540468, + 0.0011042937403544784, + -0.032471682876348495, + -0.004659211728721857, + 0.026333624497056007, + 0.026565980166196823, + -0.011656501330435276, + -0.09774421900510788, + -0.018297996371984482, + -0.0019314551027491689, + -0.058243781328201294, + -0.05452609062194824, + 0.026604704558849335, + 0.018510987982153893, + 0.019692128524184227, + -0.029935134574770927, + 0.010756123811006546, + 0.002014957834035158, + -0.03175525367259979, + 0.03373027220368385, + 0.01839481107890606, + 0.04604511708021164, + 0.05088585615158081, + 0.008447091095149517, + 0.06420756876468658, + -0.033207472413778305, + 0.014338270761072636, + -0.02362280897796154, + -0.017145900055766106, + -0.01588730700314045, + -0.035259947180747986, + 0.049065738916397095, + -0.02404879406094551, + 0.02195759490132332, + -0.030554749071598053, + 0.06343305110931396, + -0.019905121996998787, + 0.0070142317563295364, + 0.0003781827981583774, + 0.008142123930156231, + -0.03163907304406166, + -0.011530641466379166, + -0.009681479074060917, + 0.024629684165120125, + -0.01277955248951912, + -0.03254913166165352, + 0.03609255328774452, + -0.0140381446108222, + 0.0331881120800972, + -0.01839481107890606, + 0.020640913397073746, + 0.04681963473558426, + 0.009908993728458881, + 0.009342627599835396, + 0.02249975875020027, + -0.025481654331088066, + -0.012924774549901485, + 0.020040662959218025, + 0.012692419812083244, + -0.0029601124115288258, + -0.0026793493889272213, + -0.002885080873966217, + -0.031580984592437744, + 0.01644883304834366, + -0.022654661908745766, + 0.02602381631731987, + -0.01793978177011013, + -0.04255978390574455, + -0.012605286203324795, + 0.02002129890024662, + 0.0008350276038981974, + 0.034833963960409164, + 0.00664633559063077, + -0.021918868646025658, + -0.01502565573900938, + -0.038222480565309525, + 0.060257527977228165, + -0.029954496771097183, + -0.01103688683360815, + -0.025133119896054268, + 0.02302255854010582, + 0.0006462387391366065, + 0.04821376875042915, + 0.012159937992691994, + 0.016545647755265236, + -0.023777713999152184, + 0.016642462462186813, + -0.026740245521068573, + -0.03254913166165352, + 0.04689708724617958, + -0.006283279974013567, + -0.0670732855796814, + -0.02058282494544983, + 0.007285313215106726, + -0.03415625914931297, + -0.0356665700674057, + 0.03580211102962494, + -0.02139606885612011, + 0.025481654331088066, + 0.021376706659793854, + 0.01824958808720112, + 0.019304869696497917, + 0.0028971827123314142, + 0.02803756482899189, + 0.019295187667012215, + 0.022364217787981033, + 0.05475844815373421, + -0.01998257264494896, + -0.007735501974821091, + -0.01613902673125267, + 0.025965727865695953, + -0.02422306127846241, + -0.0174847524613142, + 0.008955368772149086, + -0.05956045910716057, + -0.010000968351960182, + -0.015335462987422943, + 0.0010825104545801878, + 0.03398199379444122, + -0.0787297934293747, + -0.04283086583018303, + 0.0008313970174640417, + 0.029083164408802986, + -0.040158774703741074, + -0.03154226019978523, + 0.005353858228772879, + 0.027882659807801247, + 0.01458030752837658, + -0.06761544942855835, + -0.010881982743740082, + -0.01892729289829731, + -0.008752057328820229, + -0.1257043331861496, + -0.03194888308644295, + -0.0066947429440915585, + -0.05135056748986244, + -0.047090716660022736, + -0.01775583252310753, + 0.0009009826462715864, + 0.037409234791994095, + 0.02040855772793293, + -0.020331107079982758, + 0.03434988856315613, + 0.03895827382802963, + 0.027882659807801247, + -0.0074014910496771336, + -0.03436925262212753, + 0.003376415930688381, + -0.02461032010614872, + -0.006481750402599573, + 0.029141252860426903, + 0.007164294831454754, + -0.02919934131205082, + -0.01638106256723404, + 0.007585438899695873, + 0.020853906869888306, + -0.010746441781520844, + -0.02023429237306118, + -0.022964468225836754, + 0.03694452345371246, + -0.02306128293275833, + 0.0020621551666408777, + 0.0483686700463295, + -0.010397909209132195, + 0.028502274304628372, + 0.048678476363420486, + 0.024319875985383987, + -0.00951689388602972, + -0.011240197345614433, + 0.005518443416804075, + 0.03651854023337364, + 0.034950140863657, + 0.05533933639526367, + 0.013883241452276707, + 0.008040468208491802, + -0.032645948231220245, + -0.022131862118840218, + 0.059444282203912735, + -0.03433052450418472, + -0.007440216839313507, + -0.04488333687186241, + -0.0021674411837011576, + 0.0035773066338151693, + 0.026333624497056007, + 0.08233129978179932, + 0.010175234638154507, + -0.021415432915091515, + -0.0031125955283641815, + -0.026217445731163025, + -0.017784876748919487, + -0.029722141101956367, + 0.05003388598561287, + -0.051815278828144073, + -0.011143382638692856, + -0.022402944043278694, + -0.04790395870804787, + -0.018849840387701988, + -0.014512537978589535, + -0.08062735944986343, + 0.04530932381749153, + 0.03194888308644295, + -0.02062155120074749, + -0.013999419286847115, + 0.022093135863542557, + 0.00815664604306221, + -0.029935134574770927, + -0.009725046344101429, + 0.004158195573836565, + 0.03136799484491348, + 0.006128376349806786, + -0.02627553418278694, + -0.01149191614240408, + 0.0052328393794596195, + 0.07462484389543533, + -0.035298675298690796, + 0.032645948231220245, + 0.0077693872153759, + 0.017116855829954147, + -0.03593765199184418, + 0.003277180716395378, + 0.04124310240149498, + -0.027417950332164764, + -0.027069415897130966, + -0.014454448595643044, + -0.011714589782059193, + -0.025133119896054268, + -0.0420176200568676, + -0.008035628125071526, + -0.006215509958565235, + -0.024920128285884857, + 0.0032796012237668037, + -0.04898828640580177, + -0.032355502247810364, + 0.01935327798128128, + 0.02863781526684761, + -0.03241359442472458, + -0.04248233139514923, + -0.0062397136352956295, + 0.03191015496850014, + 0.01283764187246561, + 0.05688837170600891, + -0.019188692793250084, + -0.0007285313331522048, + 0.007425694726407528, + -0.023254914209246635, + -0.007246587425470352, + -0.029083164408802986, + -0.00822441652417183, + -0.03644108772277832, + -0.050304967910051346, + -0.025868913158774376, + -0.007285313215106726, + 0.00949753075838089, + 0.034950140863657, + -0.019227417185902596, + -0.028347371146082878, + -0.024242423474788666, + 0.024842675775289536, + -0.0038943751715123653, + 0.03262658417224884, + 0.01468680426478386, + -0.011656501330435276, + 0.022732112556695938, + -0.04600638896226883, + -0.0024566752836108208, + 0.010630263946950436, + 0.021415432915091515, + 0.02457159385085106, + 0.01656501181423664, + 0.05042114481329918, + -0.004211443476378918, + -0.04712944105267525, + 0.017804240807890892, + 0.010020331479609013, + -0.014967567287385464, + -0.049027010798454285, + 0.007846838794648647, + -0.02461032010614872, + 0.019304869696497917, + -0.0025317068211734295, + -0.0021771227475255728, + -0.0003343135758768767, + 0.002785845659673214, + -0.005198954604566097, + -0.013767063617706299, + 0.053441766649484634, + -0.006041243206709623, + 0.047787781804800034, + -0.0045430343598127365, + 0.01727175898849964, + -0.0023441282100975513, + 0.0009475747938267887, + 0.023680899292230606, + -0.06517571955919266, + 0.02799883857369423, + -0.04964662715792656, + 0.011821086518466473, + 0.009410398080945015, + 0.0028100493364036083, + 0.013767063617706299, + -0.039422985166311264, + 0.02443605475127697, + -0.0010111094452440739, + 0.023932617157697678, + -0.001768080168403685, + 0.005876658018678427, + 0.009052183479070663, + -0.018510987982153893, + 0.03357537090778351, + 0.016264885663986206, + 0.06172911077737808, + -0.01726207695901394, + 0.007909768261015415, + 0.04720689356327057, + 0.0053441766649484634, + 0.018530352041125298, + 0.0032287733629345894, + 0.017465388402342796, + 0.005881498567759991, + 0.0162455216050148, + 0.07021009176969528, + -0.011366056278347969, + -0.011608093976974487, + 0.044224996119737625, + 0.006525317206978798, + -0.008664923720061779, + 0.04678090661764145, + -0.024242423474788666, + 0.0142124118283391, + 0.05328686162829399, + 0.007745183538645506, + 0.040662214159965515, + -0.036073192954063416, + 0.002507503144443035, + -0.03117436356842518, + -0.028502274304628372, + -0.022151224315166473, + -0.026933874934911728, + 0.020892633125185966, + -0.023216187953948975, + -0.07183657586574554, + 0.03704134002327919, + -0.008766579441726208, + -0.02916061505675316, + 0.02062155120074749, + 0.01103688683360815, + -0.004230806604027748, + -0.0015042598824948072, + -0.006147739477455616, + 0.01896601729094982, + -0.027146868407726288, + 0.021705877035856247, + -0.032355502247810364, + 0.012527834624052048, + 0.020602187141776085, + 0.0019254041835665703, + 0.05193145573139191, + -0.04197889566421509, + -0.019469454884529114, + -0.028366735205054283, + -0.0346016064286232, + -0.023351728916168213, + -0.06517571955919266, + -0.03520185872912407, + -0.015054699964821339, + 0.0596766397356987, + 0.019111240282654762, + 0.0006156815798021853, + -0.013263626955449581, + 0.0074014910496771336, + -0.010659309104084969, + -0.02323555015027523, + 0.06153548136353493, + 0.06560170650482178, + -0.0003603325458243489, + -0.008030787110328674 + ] + } + }, + { + "type": "技术指标参数", + "properties": { + "名称": "发动机的技术指标参数", + "内容": "3.3 技术指标\n船舶主发动机的基本指标参见表3.2。\n表 3.2 船舶主发动机基本参数\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度≤700cSt@ 50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径 ×行程 500 mm × 2200 mm 平均有效压力(BMEP) ~ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50 ℃ 冷却水进口温度 ≤ 36 ℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25 年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.3 技术指标\\n船舶主发动机的基本指标参见表3.2。\\n表 3.2 船舶主发动机基本参数\\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度≤700cSt@ 50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径 ×行程 500 mm × 2200 mm 平均有效压力(BMEP) ~ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50 ℃ 冷却水进口温度 ≤ 36 ℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25 年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_fe841c75-4516-4760-97f9-564b9eefb74e.pdf#page=11\"}]", + "embedding": [ + -0.02234002575278282, + -0.004612179473042488, + -0.02474759705364704, + -0.024878239259123802, + -0.025120863690972328, + -0.03454585373401642, + -0.002264097100123763, + 0.005785637069493532, + -0.019913790747523308, + 0.025624774396419525, + -0.03277283534407616, + -0.0042715733870863914, + 0.029189473018050194, + 0.010554121807217598, + 0.007381353061646223, + -0.02715516835451126, + -0.00772195914760232, + 0.020585671067237854, + -0.012793723493814468, + -0.013997509144246578, + -0.0106287756934762, + 0.02099626325070858, + 0.00046366750029847026, + 0.022731954231858253, + 0.018765993416309357, + 0.016927653923630714, + -0.03135441988706589, + -0.05315320938825607, + 0.037886593490839005, + 0.06935299187898636, + -0.03025328367948532, + -0.037158720195293427, + -0.03159704431891441, + -0.028816206380724907, + -0.0428510420024395, + -0.018803320825099945, + 0.007311365567147732, + -0.02099626325070858, + -0.06901705265045166, + 0.02517685294151306, + -0.01819676160812378, + -0.04677034541964531, + -0.003359402297064662, + -0.049420539289712906, + 0.03288481384515762, + -0.0362628810107708, + 0.00018940379959531128, + -0.035609662532806396, + -0.03322075679898262, + -0.03648684173822403, + 0.007260041311383247, + -0.0903305932879448, + 0.02052967995405197, + -0.015714537352323532, + 0.01884998008608818, + 0.01935388892889023, + -0.060730528086423874, + 0.02890952304005623, + -0.107426218688488, + 0.004122266545891762, + -0.024766258895397186, + 0.041283320635557175, + -0.05401172116398811, + -0.018038123846054077, + 0.03967827185988426, + 0.02297457866370678, + -0.012915035709738731, + -0.002876488259062171, + 0.008085894398391247, + -0.04762885719537735, + 0.03378065675497055, + -0.01874733157455921, + -0.009084383957087994, + 0.012868376448750496, + -0.05778171867132187, + 0.023870419710874557, + 0.027733732014894485, + -0.0033407388255000114, + -0.0009914902038872242, + -0.023459825664758682, + -0.0024775592610239983, + -0.0034013947006314993, + 0.02452363632619381, + -0.004166591912508011, + -0.01438943948596716, + 0.04064876586198807, + -0.013521593995392323, + 0.001621378120034933, + -0.02370244823396206, + -0.02706185169517994, + -0.02073497697710991, + 0.02004443295300007, + -0.009583627805113792, + -0.019801810383796692, + -0.027901701629161835, + -0.04135797545313835, + -0.02116423472762108, + 0.0126910749822855, + -0.01079674530774355, + -0.004756820388138294, + -0.020585671067237854, + 0.049121927469968796, + 0.028162987902760506, + -0.01572386920452118, + 0.06897972524166107, + -0.02672591060400009, + 0.03206362947821617, + -0.008725114166736603, + -0.028685562312602997, + 0.003991622943431139, + -0.015033325180411339, + 0.006471515167504549, + 0.022638637572526932, + 0.018607355654239655, + -0.02461695298552513, + -0.021070918068289757, + -0.0040242839604616165, + -0.012289812788367271, + 0.040462132543325424, + 0.00037443338078446686, + 0.04158193618059158, + -0.0036603487096726894, + -0.012401793152093887, + -0.024337003007531166, + -0.012877708300948143, + -0.013885528780519962, + 0.005603669676929712, + 0.025139527395367622, + -0.02999199740588665, + -0.012457783333957195, + -0.02650195173919201, + 0.023571806028485298, + -0.04471737518906593, + 0.0271924939006567, + -0.009891573339700699, + -0.02706185169517994, + -0.007428011391311884, + 0.03378065675497055, + -0.015975823625922203, + -0.023123884573578835, + 0.0002163781609851867, + 0.009173034690320492, + 0.0067141386680305, + -0.027136504650115967, + 0.03536704182624817, + -0.03415392339229584, + 0.019129930064082146, + -0.03749466314911842, + -0.025662099942564964, + -0.0031191117595881224, + 0.014361444860696793, + 0.021630818024277687, + 0.07297368347644806, + 0.005379709415137768, + -0.03747599944472313, + 0.0066301533952355385, + -0.01118867564946413, + 0.05837894603610039, + -0.03486312925815582, + 0.05304122716188431, + 0.006322208326309919, + 0.0016330427024513483, + -0.004469871520996094, + -0.027696404606103897, + 0.0352737233042717, + -0.03549768403172493, + 0.03949163854122162, + 0.016302432864904404, + -0.022172054275870323, + -0.028890859335660934, + 0.05300390347838402, + 0.005449696909636259, + -0.06808388233184814, + -0.02870422601699829, + 0.018010128289461136, + -0.0030024657025933266, + 0.053713109344244, + 0.022993242368102074, + 0.008757774718105793, + -0.010302166454494, + 0.0034667165018618107, + 0.05177212134003639, + 0.014874686487019062, + -0.01359624695032835, + -0.018047455698251724, + -0.007451341021806002, + 0.07472803443670273, + 0.005860290490090847, + 0.007026749663054943, + -0.012971024960279465, + -0.012644416652619839, + 0.016638372093439102, + 0.007026749663054943, + -0.014940008521080017, + 0.061514388769865036, + -0.007955251261591911, + -0.0007552822935394943, + -0.012336471118032932, + -0.009751598350703716, + -0.022731954231858253, + 0.017758173868060112, + 0.0054170358926057816, + -0.007707961834967136, + -0.020156413316726685, + -0.03807322680950165, + 0.01918591931462288, + -0.030775856226682663, + -0.01589183881878853, + -0.03325808048248291, + -0.04281371459364891, + -0.04475470259785652, + -0.016815675422549248, + 0.00820720661431551, + -0.011300656013190746, + 0.014669389463961124, + 0.04169391468167305, + 0.00274817761965096, + -0.021630818024277687, + 0.00032952468609437346, + -0.032418232411146164, + -0.008893084712326527, + 0.0863739624619484, + 0.027397790923714638, + -0.008491822518408298, + -0.010274171829223633, + -0.055878058075904846, + 0.055654097348451614, + -0.0032637526746839285, + 0.0126910749822855, + -0.03387397155165672, + 0.011412636376917362, + 0.014576072804629803, + -0.03727070242166519, + 0.0074326773174107075, + 0.019101934507489204, + 0.019951116293668747, + -0.005626998841762543, + -0.02254532091319561, + 0.058490924537181854, + 0.014109489507973194, + 0.027603087946772575, + 0.002939476864412427, + -0.0283496230840683, + -0.0014884017873555422, + -0.0477781668305397, + 0.01858869194984436, + 0.08264129608869553, + -0.002794835949316621, + -0.026613930240273476, + 0.014184142462909222, + 0.027080515399575233, + -0.014837360009551048, + -0.06860645860433578, + -0.0012236156035214663, + 0.07069675624370575, + 0.0291708093136549, + 0.03562832623720169, + -0.009695608168840408, + -0.021220223978161812, + -0.022881262004375458, + 0.015135973691940308, + 0.021761460229754448, + 0.028368284925818443, + 0.03557233884930611, + -0.02090294659137726, + 0.020511016249656677, + 0.026912543922662735, + 0.037923917174339294, + -0.0017158613773062825, + 0.021145571023225784, + -0.017132950946688652, + -0.017114287242293358, + 0.02960006706416607, + 0.0271924939006567, + 0.007446675095707178, + 0.06468715518712997, + -0.01493067666888237, + 0.018476711586117744, + 0.05401172116398811, + -0.0375693142414093, + 0.0547209307551384, + 0.019391216337680817, + 0.022619975730776787, + -0.03727070242166519, + 0.01638641767203808, + -0.05938676744699478, + -0.0771169438958168, + -0.00804390199482441, + -0.018896637484431267, + -0.025027547031641006, + -0.06726270169019699, + -0.017254263162612915, + 0.085702084004879, + -0.024504972621798515, + -0.03183966875076294, + 0.008958405815064907, + -0.00820720661431551, + -0.1496053785085678, + 0.014622731134295464, + -0.05632597580552101, + 0.014426765963435173, + 0.009508974850177765, + -0.009368999861180782, + 0.005426367744803429, + -0.05091360583901405, + 0.014538746327161789, + -0.0062475549057126045, + -0.055392809212207794, + -0.08196941763162613, + -0.021668143570423126, + -0.04426945745944977, + -0.03695342317223549, + -0.029357442632317543, + -0.017291590571403503, + 0.010358156636357307, + 0.00010818908049259335, + -0.01374555379152298, + -0.029208136722445488, + -0.017347579821944237, + 0.05632597580552101, + -0.05177212134003639, + -0.0090657202526927, + -0.020641660317778587, + 0.003385064424946904, + 0.03445253521203995, + -0.049756478518247604, + -0.002148617757484317, + 0.00861779972910881, + -0.012924366630613804, + -0.00998488999903202, + 0.07114467769861221, + 0.04628509655594826, + -0.004978447686880827, + 0.0009185865637846291, + -0.02323586493730545, + -0.004528194200247526, + -0.03501243516802788, + 0.03667347505688667, + 0.005431033670902252, + 0.013138995505869389, + 0.004588850308209658, + -0.002318920800462365, + -0.017524881288409233, + 0.03602025657892227, + -0.010787413455545902, + -0.011048700660467148, + -0.03159704431891441, + 0.019951116293668747, + -0.00551968440413475, + -0.007679966744035482, + 0.04561321809887886, + -0.06270883977413177, + 0.00875310879200697, + -0.031130461022257805, + 0.03915569931268692, + 0.0428510420024395, + -0.03085051104426384, + -0.030271947383880615, + -0.0428510420024395, + 0.03338872641324997, + -0.014034835621714592, + -0.019559185951948166, + 0.013782881200313568, + 0.029880017042160034, + -0.01987646333873272, + -0.0240570530295372, + -0.00959295965731144, + 0.015135973691940308, + 0.024019725620746613, + 0.024448983371257782, + -0.0034223911352455616, + 0.027864376083016396, + 0.03058922290802002, + -0.03351936861872673, + -0.026408635079860687, + -0.0464717298746109, + -0.08047634363174438, + -0.019727155566215515, + 0.026054030284285545, + 0.004245911259204149, + -0.015518572181463242, + -0.006802789401262999, + -0.030869174748659134, + 0.035646989941596985, + -0.038745105266571045, + 0.02215339057147503, + 0.22022747993469238, + -0.032287586480379105, + -0.011393972672522068, + 0.032978132367134094, + 0.015257284976541996, + -0.01473471149802208, + -0.045538563281297684, + -0.007558654993772507, + 0.025008883327245712, + -0.018122108653187752, + -0.003240423509851098, + -0.013997509144246578, + 0.04893529415130615, + 0.0010643939021974802, + 0.009779592975974083, + -0.023609131574630737, + -0.001678534667007625, + -0.0023562475107610226, + 0.09331672638654709, + -0.007847936823964119, + 0.06464982777833939, + -9.68890090007335e-05, + 0.028760215267539024, + -0.03273550793528557, + -0.05132419988512993, + -0.016638372093439102, + 0.0034130592830479145, + 0.017114287242293358, + -0.0020553008653223515, + -0.01819676160812378, + -0.009266351349651814, + 0.03542302921414375, + -0.017842158675193787, + -0.04001421481370926, + -0.05662459135055542, + 0.0046425070613622665, + -0.021873440593481064, + 0.027864376083016396, + 0.004518862813711166, + 0.016834337264299393, + -0.057931024581193924, + -0.05072697252035141, + -0.10361889749765396, + 0.023478489369153976, + -0.009760930202901363, + -0.0311491247266531, + -0.004238912370055914, + -0.008151216432452202, + 0.020081760361790657, + -0.00924768764525652, + -0.02857358194887638, + 0.0448293574154377, + -0.03807322680950165, + -0.011757907457649708, + -0.006555499974638224, + -0.006210228428244591, + 0.0038189871702343225, + 0.0037023411132395267, + 0.02564343623816967, + -0.0011635429691523314, + 0.023030567914247513, + -0.015611888840794563, + 0.006611490156501532, + 0.053713109344244, + 0.017095625400543213, + -0.048636678606271744, + -0.01084340363740921, + -0.028984175994992256, + 0.013754885643720627, + 0.020641660317778587, + 0.05524350330233574, + 0.05151083320379257, + -0.027603087946772575, + 0.045799851417541504, + 0.03773728385567665, + 0.008351847529411316, + 0.025662099942564964, + 0.06248488277196884, + 0.006606824230402708, + 0.009135708212852478, + -0.04706895723938942, + -0.013969514518976212, + -0.021238887682557106, + -0.018252752721309662, + 0.0309811532497406, + -0.0003271917812526226, + 0.000847432529553771, + -0.02383309230208397, + 0.004367223009467125, + -0.029376106336712837, + -0.0281816516071558, + -0.005654993932694197, + 0.028069671243429184, + 0.016470402479171753, + 0.014538746327161789, + 0.025400813668966293, + -0.006868111435323954, + -0.029506750404834747, + -0.022172054275870323, + 0.005435699597001076, + 0.00704541290178895, + -0.011449962854385376, + -0.016190452501177788, + -0.004402216523885727, + -0.026669921353459358, + 0.0392303541302681, + 0.02659526839852333, + 0.01730092242360115, + -0.023347845301032066, + 0.02749110758304596, + -0.03058922290802002, + 0.033146101981401443, + 0.0040522790513932705, + 0.00794125348329544, + 0.015415923669934273, + 0.006168235559016466, + -0.02848026528954506, + 0.003170435782521963, + 0.01118867564946413, + 0.00930834375321865, + -0.034956447780132294, + 0.021014926955103874, + -0.03697208687663078, + -0.04789014533162117, + 0.00464717298746109, + 0.009210361167788506, + -0.048338066786527634, + -0.029189473018050194, + -0.013642906211316586, + 0.033146101981401443, + 0.009266351349651814, + 0.0020261395256966352, + -0.018206093460321426, + -0.02319853939116001, + -0.02066032402217388, + -0.020473690703511238, + -0.022321362048387527, + 0.019223246723413467, + 0.011823229491710663, + 0.008687787689268589, + -0.0421791598200798, + 0.017580872401595116, + -0.005766973830759525, + -0.024038389325141907, + -0.01634909026324749, + -0.006060921587049961, + 0.028629573062062263, + -0.016209116205573082, + -0.000730786647181958, + 0.02461695298552513, + -0.008701784536242485, + 0.01763686165213585, + 0.06603091955184937, + -0.06879309564828873, + 0.0017730178078636527, + -0.050241727381944656, + -0.03497511148452759, + -0.016433075070381165, + -0.03867045417428017, + -0.0060282605700194836, + -0.0039519635029137135, + -0.0006666313856840134, + 0.026110021397471428, + 0.040686093270778656, + 0.001298269024118781, + 0.03572164475917816, + 0.03710273280739784, + 0.010078206658363342, + -0.004432544577866793, + -0.03734535351395607, + 0.03911837190389633, + -0.014772037975490093, + -0.00017044883861672133, + 0.049681827425956726, + 0.03727070242166519, + 0.04897261783480644, + -0.011748576536774635, + 0.02517685294151306, + -0.04983113333582878, + 0.019857799634337425, + 0.02366512268781662, + 0.045277275145053864, + -0.04852470010519028, + 0.01805678755044937, + -0.039902232587337494, + 0.0046145124360919, + 0.004266907460987568, + -0.008566475473344326, + 0.04927123337984085, + 0.0033150766976177692, + -0.040163520723581314, + 0.08853891491889954, + -0.019503196701407433, + -0.01488401833921671, + -0.00035868617123924196, + -0.05061499401926994, + -0.040947381407022476, + 0.04755420610308647, + 0.022638637572526932, + -0.0028461602050811052, + 0.0840597078204155, + -0.02245200425386429, + -0.004462872631847858, + -0.0029278122819960117, + 0.001213117502629757, + -0.015210626646876335, + 0.003144773654639721, + -0.0005587339401245117, + 0.0023480821400880814, + -0.020324382930994034, + -0.002224437426775694, + -0.01153394766151905, + -0.0010585616109892726, + 0.024430319666862488, + -0.022489331662654877, + -0.0003505209751892835, + 0.004777816589921713, + 0.05460894852876663, + 0.013362955302000046, + -0.017244931310415268, + -0.0003496461140457541, + 0.04083539918065071, + 0.03256753832101822, + -0.02099626325070858, + -0.02465428039431572, + -0.0428510420024395, + -0.010768750682473183, + -0.05192142724990845, + 0.06666547060012817, + 0.013222980313003063, + 0.011823229491710663, + -0.012513773515820503, + 0.00464717298746109, + 0.028928186744451523, + 0.05632597580552101, + -0.01806611940264702, + -0.013866866007447243, + 0.046023812144994736, + 0.01957784965634346, + -0.011067364364862442, + 0.0064388541504740715, + 0.030103975906968117, + 0.02185477875173092, + 0.024504972621798515, + -0.03503109887242317, + 0.028928186744451523, + 0.016918322071433067, + 0.03937966004014015, + -0.009000398218631744, + 0.016209116205573082, + -0.01935388892889023, + 0.010852735489606857, + 0.01802879199385643, + 0.005207073409110308, + -0.005361046176403761, + 0.009140373207628727, + -0.04329896345734596, + 0.009089048951864243, + -0.036505505442619324, + 0.006891440600156784, + -0.008160548284649849, + 0.016750352457165718, + -0.001974815269932151, + 0.024187695235013962, + -0.034359220415353775, + -0.010040880180895329, + -0.009462316520512104, + -0.006280215922743082, + -0.03338872641324997, + -0.017412900924682617, + -0.0033477377146482468, + -0.01770218275487423, + -0.040462132543325424, + -0.03447119891643524, + 0.036505505442619324, + 0.00790859293192625, + -0.005515018478035927, + -0.05599003657698631, + -0.007997243665158749, + 0.0230678953230381, + -0.03157838061451912, + -0.0013635907089337707, + 0.019988443702459335, + 0.01757154054939747, + -0.006910103838890791, + -0.007824608124792576, + 0.026613930240273476, + -0.030234619975090027, + -0.013055010698735714, + -0.027248485013842583, + -0.001446409267373383, + -0.03183966875076294, + -0.04225381463766098, + 0.03514308109879494, + -0.022134728729724884, + 0.03656149283051491, + -0.019129930064082146, + -0.007614645175635815, + -0.017888816073536873, + 0.0015653881710022688, + 0.0110393688082695, + -0.006956762168556452, + 0.0027411789633333683, + 0.006102913990616798, + 0.010442142374813557, + 0.027528434991836548, + -0.014856022782623768, + 0.017058297991752625, + -0.002517218701541424, + 0.005930277984589338, + 0.014772037975490093, + -0.006812121253460646, + 0.030141303315758705, + 0.0336126871407032, + -0.011561942286789417, + 0.014361444860696793, + 0.0402008481323719, + 0.016722356900572777, + 0.008440498262643814, + 0.014828028157353401, + 0.011561942286789417, + -0.013521593995392323, + -0.023515814915299416, + -0.015518572181463242, + -0.027547098696231842, + 0.021220223978161812, + -0.02010042406618595, + 0.0002331460127606988, + -0.009760930202901363, + -0.015667878091335297, + -0.017263595014810562, + -0.01621844805777073, + -0.021145571023225784, + 0.01463206298649311, + -0.015145305544137955, + 0.0066301533952355385, + 0.004418547265231609, + -0.037905253469944, + 0.04990578815340996, + 0.014902682043612003, + 0.024019725620746613, + -0.0388944111764431, + 0.033538032323122025, + -0.003303412115201354, + -0.012168501503765583, + -0.015135973691940308, + 0.01064743846654892, + -0.0074046822264790535, + 0.03594560548663139, + -0.0033500706776976585, + -0.027995018288493156, + 0.02939477004110813, + -0.0311491247266531, + -0.042440447956323624, + -0.013866866007447243, + 0.024374330416321754, + -0.021742798388004303, + 0.013558920472860336, + 0.039603620767593384, + -0.02814432606101036, + -0.014501419849693775, + 0.015154636465013027, + 0.007787281181663275, + 0.03911837190389633, + 0.01743156462907791, + -0.00046512557310052216, + 0.016890328377485275, + 0.0019479866605252028, + 0.04277638718485832, + 0.022993242368102074, + 0.0019503196235746145, + 0.02900283969938755, + -0.0161531250923872, + 0.053414493799209595, + -0.014986666850745678, + 0.043485596776008606, + -0.04479203000664711, + -0.03648684173822403, + 0.006392195820808411, + 0.01497733499854803, + 0.020119085907936096, + -0.0688677430152893, + -0.0504283607006073, + 0.01779549941420555, + 0.04199252650141716, + -0.027640415355563164, + 0.012299144640564919, + 0.03803589940071106, + 0.05501954257488251, + 0.03867045417428017, + -0.021332204341888428, + -0.05494489148259163, + -0.034359220415353775, + -0.01878465712070465, + -0.14938141405582428, + -0.01948453299701214, + -0.007577318232506514, + -0.05386241525411606, + -0.03055189736187458, + -0.019503196701407433, + 0.005561676807701588, + 0.013428277336061, + 0.023851756006479263, + -0.0580056793987751, + 0.009047056548297405, + 0.02383309230208397, + 0.020119085907936096, + -0.006317542400211096, + 0.0017555209342390299, + -0.0007564487168565392, + -0.00014908805314917117, + -0.01970849372446537, + 0.011272660456597805, + 0.011963204480707645, + -0.029152145609259605, + 0.0014510750770568848, + 0.029618728905916214, + 0.031821005046367645, + 0.04079807549715042, + -0.01957784965634346, + -0.03952896595001221, + 0.027565762400627136, + -0.03088783659040928, + 0.012485777959227562, + 0.02293725125491619, + 0.017524881288409233, + 0.026744574308395386, + 0.08279059827327728, + 0.0038936405908316374, + -0.036636147648096085, + -0.0035390369594097137, + 0.008510485291481018, + -0.008323851972818375, + 0.035348378121852875, + 0.062148939818143845, + 0.017282258719205856, + -0.004572519566863775, + -0.03510575369000435, + -0.027117840945720673, + 0.057931024581193924, + 0.0192792359739542, + -0.025456802919507027, + -0.04979380592703819, + 0.023814428597688675, + 0.014184142462909222, + 0.01598515547811985, + 0.04733024537563324, + -0.024896902963519096, + 0.02336650900542736, + -0.0011238832958042622, + 0.010871399194002151, + -0.018467379733920097, + -0.032119616866111755, + 0.03579629585146904, + -0.04822608456015587, + -0.014594736509025097, + -0.024896902963519096, + -0.0576697401702404, + 0.0002827205171342939, + -0.022302698343992233, + -0.07681833207607269, + 0.048039451241493225, + -0.005048435181379318, + 0.009620954282581806, + -0.033761993050575256, + -0.018122108653187752, + 0.0031914322171360254, + -0.027901701629161835, + 0.007274039089679718, + -0.02422502264380455, + 0.07424279302358627, + 0.024859577417373657, + -0.028816206380724907, + -0.012961694039404392, + -0.013027015142142773, + 0.054758258163928986, + -0.014725379645824432, + 0.08883752673864365, + -0.01069409679621458, + 0.01598515547811985, + -0.0283496230840683, + 0.006933433003723621, + -0.054496970027685165, + 0.0023877418134361506, + -0.012644416652619839, + -0.02848026528954506, + 0.03301545977592468, + 0.022881262004375458, + -0.011198007501661777, + -0.018075451254844666, + -0.0028998174238950014, + -0.06644151359796524, + 0.015266616828739643, + -0.021500173956155777, + 0.01527594868093729, + -0.016983645036816597, + 0.025456802919507027, + -0.048897966742515564, + -0.003364067990332842, + 0.030757194384932518, + 0.016461070626974106, + 0.001692532212473452, + 0.008841760456562042, + -0.02164948172867298, + -0.023478489369153976, + 0.026147346943616867, + -0.018803320825099945, + -0.004248244222253561, + -0.018514038994908333, + 0.008678455837070942, + -0.0029838024638593197, + -0.031055808067321777, + -0.04673301801085472, + -0.025027547031641006, + 0.032511547207832336, + 0.06091716140508652, + 0.01562122069299221, + -0.036897435784339905, + -0.0007774449768476188, + 0.015303943306207657, + -0.009854246862232685, + 0.025288833305239677, + 0.003403727663680911, + 0.015555898658931255, + 0.01064743846654892, + 0.025419477373361588, + -0.02594204992055893, + 0.0278457123786211, + 0.013624242506921291, + 0.012485777959227562, + -0.011235333979129791, + 0.06819586455821991, + -0.033836644142866135, + -0.059013500809669495, + 0.024075716733932495, + -0.003345404751598835, + 0.006018929183483124, + -0.015201294794678688, + 0.03837183862924576, + 0.04419480264186859, + 0.021873440593481064, + -0.03555367514491081, + 0.027733732014894485, + -0.028722889721393585, + 0.02310522273182869, + -0.014772037975490093, + 0.004241245333105326, + 0.07241377979516983, + -0.018514038994908333, + 0.02814432606101036, + -0.0031517725437879562, + 0.04729291796684265, + 0.0054170358926057816, + 0.009658281691372395, + 0.02228403463959694, + -0.082417331635952, + 0.010722092352807522, + -0.05348914861679077, + 0.007302034180611372, + -0.006938098929822445, + 0.01187921967357397, + 0.004453540779650211, + -0.018877973780035973, + -0.015714537352323532, + 0.02297457866370678, + 0.007810610346496105, + -0.018793988972902298, + 0.05852825194597244, + 0.01478136982768774, + -0.024150369688868523, + 0.037793274968862534, + -0.014277459122240543, + 0.06655348837375641, + 0.005766973830759525, + 0.024281013756990433, + 0.023161211982369423, + 0.010591448284685612, + 0.02943209558725357, + -0.007190053816884756, + 0.08122288435697556, + 0.06849447637796402, + 0.017188942059874535, + 0.014660058543086052, + 0.015434587374329567, + -0.006751465145498514, + 0.02362779527902603, + -0.05124954879283905, + 0.0067141386680305, + 0.04759153351187706, + -0.012831049971282482, + 0.01273773331195116, + 0.025923388078808784, + -0.0023889082949608564, + 0.03829718381166458, + -0.0140908258035779, + 0.0082398671656847, + -0.028162987902760506, + -0.051958754658699036, + -0.02017507702112198, + -0.009154370985925198, + 0.023739775642752647, + -0.006732801906764507, + -0.07696763426065445, + 0.05580340325832367, + -0.0017345247324556112, + -0.030477244406938553, + 0.03458318114280701, + 0.02013774961233139, + -0.001418414292857051, + 0.040163520723581314, + -0.02103359065949917, + -0.01069409679621458, + -0.020361710339784622, + 0.027304474264383316, + -0.003965960815548897, + 0.02400106191635132, + 0.00687277689576149, + -0.04598648473620415, + -0.0006228891434147954, + -0.02930145338177681, + -0.0019911457784473896, + -0.009368999861180782, + -0.0182900782674551, + -0.04565054550766945, + -0.044082824140787125, + -0.033202093094587326, + -0.027248485013842583, + -0.002442565280944109, + 0.0372520387172699, + 0.01918591931462288, + 0.011944541707634926, + -0.013400282710790634, + -0.025120863690972328, + -0.034919120371341705, + 0.04202985391020775, + 0.033146101981401443, + 0.019204583019018173, + 0.014538746327161789 + ] + } + }, + { + "type": "接口", + "properties": { + "名称": "发动机的接口", + "内容": "3.4 接口关系\n船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\n1) 安装接口\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48×320 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\n2) 能源接口\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管(040202 / 0503 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\n3) 信息与监测接口\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.4 接口关系\\n船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\\n1) 安装接口\\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48×320 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\\n2) 能源接口\\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管(040202 / 0503 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\\n3) 信息与监测接口\\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_0a6e660d-c85d-4ca9-aa75-9f41252a8086.pdf#page=13\"}]", + "embedding": [ + -0.0044397455640137196, + -0.013411386869847775, + -0.032928310334682465, + -0.019488569349050522, + -0.001331451116129756, + 0.02682277373969555, + 0.03506430238485336, + -0.024459950625896454, + 0.012806504033505917, + -0.01259857602417469, + -0.010821732692420483, + -0.013836695812642574, + 0.06389075517654419, + 0.014583347365260124, + 0.0004046335525345057, + -0.049524784088134766, + 0.012891566380858421, + -0.014847983606159687, + 0.008246255107223988, + -0.009867151267826557, + 0.02111419290304184, + 0.0036505626048892736, + -0.016747694462537766, + -0.024592269212007523, + 0.00860067829489708, + 0.011615641415119171, + -0.027956929057836533, + -0.014394321478903294, + 0.016804402694106102, + -0.022891035303473473, + 0.0021241784561425447, + -0.025594105944037437, + -0.04653817415237427, + -0.015348902903497219, + -0.013562607578933239, + -0.0489577054977417, + 0.010188495740294456, + -0.018023619428277016, + -0.05806875601410866, + -0.011445517651736736, + -0.048806484788656235, + -0.02328799106180668, + 0.037351515144109726, + -0.0681249350309372, + -0.025386177003383636, + -0.04351375997066498, + -0.011417164467275143, + -0.031397201120853424, + -0.040753982961177826, + -0.033778928220272064, + -0.02209712751209736, + -0.03368441388010979, + 0.029091084375977516, + -0.032039888203144073, + -0.02941242977976799, + 0.03984665870666504, + -0.04623573273420334, + -0.008345493115484715, + -0.11613751202821732, + 0.034194786101579666, + 0.0002576954721007496, + 0.03818323090672493, + -0.037446029484272, + -0.02047150395810604, + 0.026539236307144165, + 0.05372115969657898, + 0.02328799106180668, + 0.004359409678727388, + -0.025423983111977577, + -0.04007348790764809, + 0.010141239501535892, + -0.029506942257285118, + -0.01464005559682846, + 0.001939878216944635, + -0.041699111461639404, + 0.008052502758800983, + 0.0723591148853302, + 0.014517189003527164, + -0.031983181834220886, + 0.02876974083483219, + 0.040753982961177826, + -0.0055101048201322556, + 0.016445253044366837, + 0.005992121063172817, + -0.006856914144009352, + 0.01881752721965313, + -0.06691516935825348, + 0.040413737297058105, + -0.04540402069687843, + -0.015764759853482246, + -0.019507471472024918, + -0.02856181189417839, + -0.004371223971247673, + -0.024157509207725525, + -0.03508320450782776, + -0.008099759928882122, + -0.006190598011016846, + 0.03980885446071625, + 0.00046842978917993605, + -0.034931983798742294, + 0.020925166085362434, + 0.02757887728512287, + 0.022021517157554626, + -0.039392996579408646, + 0.02447885274887085, + 0.011662897653877735, + 0.05814436450600624, + 0.00021442625438794494, + -0.017522700130939484, + -0.015556830912828445, + 0.030452070757746696, + 0.02876974083483219, + -0.007126276381313801, + -0.006875816732645035, + -0.02145443856716156, + -0.060601700097322464, + 0.001671697711572051, + -0.026236794888973236, + 0.030508778989315033, + -0.009763187728822231, + -0.010575998574495316, + 0.0014543179422616959, + -0.015859272330999374, + -0.02430872991681099, + -0.014810178428888321, + -0.0489577054977417, + 0.04185033217072487, + 0.03213440254330635, + -0.008142290636897087, + 0.013553156517446041, + -0.05651874095201492, + 0.007140452973544598, + -0.024233119562268257, + 0.025915449485182762, + 0.01072721928358078, + -0.025934353470802307, + 0.02183249033987522, + 0.0021974260453134775, + -0.021359926089644432, + -0.040753982961177826, + 0.010736671276390553, + 0.007447620388120413, + -0.007244417443871498, + 0.0014744020299986005, + 0.018108680844306946, + -0.02825937047600746, + -0.003289050655439496, + 0.013912306167185307, + 1.6770511138020083e-05, + -0.021945906803011894, + -0.0016976888291537762, + 0.012995529919862747, + 0.0353289395570755, + 0.02886425331234932, + -0.018420573323965073, + 0.006932524498552084, + -0.03793749585747719, + 0.016568120568990707, + 0.005571538116782904, + 0.07636646181344986, + 0.00604410283267498, + 0.01744708977639675, + -0.04234180226922035, + -0.04196374863386154, + 0.05655654892325401, + -0.06181146949529648, + 0.04733208566904068, + 0.008888943120837212, + -0.018373316153883934, + -0.04623573273420334, + 0.015679698437452316, + 0.037824083119630814, + -0.010320814326405525, + -0.009073242545127869, + 0.023250184953212738, + 0.01074612233787775, + 0.05232236906886101, + 0.005944864358752966, + 0.027900222688913345, + -0.026803871616721153, + -0.031642936170101166, + 0.018940394744277, + 0.026539236307144165, + -0.01570805162191391, + 0.0074239918030798435, + 0.023855067789554596, + 0.03035755828022957, + -0.032777089625597, + 0.010698866099119186, + 0.03256916254758835, + -0.0018808076856657863, + -0.014781825244426727, + 0.05769070237874985, + -0.01036807056516409, + 0.03961982578039169, + -0.013486997224390507, + 0.016653181985020638, + 0.004078233614563942, + -0.001640981063246727, + 0.00015875221288297325, + 0.007348381448537111, + -0.026709359139204025, + 0.014309260062873363, + -0.00585507694631815, + -0.022664204239845276, + 0.010339716449379921, + 0.0022435011342167854, + -0.029431331902742386, + -0.03455393388867378, + -0.052851639688014984, + 0.011776313185691833, + -0.02345811389386654, + -0.014668409712612629, + -0.008071405813097954, + -0.002497504698112607, + 0.03444051742553711, + 0.01239064708352089, + -0.04495035856962204, + 0.019091615453362465, + -0.0018890774808824062, + -0.027484364807605743, + 0.07629085332155228, + 0.0037025446072220802, + 0.013704377226531506, + 0.023042256012558937, + -0.07160300761461258, + 0.05500653386116028, + 0.023306893184781075, + -0.01278760191053152, + -0.030452070757746696, + -0.008118662051856518, + 0.004286162089556456, + -0.013836695812642574, + -0.010103434324264526, + -0.024497756734490395, + 0.01445102971047163, + -0.03272038325667381, + -0.007740610279142857, + 0.028334980830550194, + 0.02451665885746479, + 0.037389323115348816, + 0.0005159816355444491, + -0.033306363970041275, + -0.01530164573341608, + -0.03508320450782776, + 0.01239064708352089, + 0.02723863162100315, + -0.005070619750767946, + -0.033400874584913254, + -0.002401810372248292, + 0.007097922265529633, + -0.0259721577167511, + -0.0612821951508522, + -0.007069568615406752, + 0.06445783376693726, + 0.02665265090763569, + 0.05432604253292084, + -0.007669725455343723, + -0.022078225389122963, + -0.021775783970952034, + 0.0010550008155405521, + 0.04196374863386154, + 0.021227607503533363, + 0.01761721260845661, + -0.012466257438063622, + 0.04461011290550232, + -0.021700173616409302, + 0.012135462835431099, + -0.01652086339890957, + 0.050885770469903946, + -0.046802811324596405, + -0.02179468609392643, + 0.010878439992666245, + -0.008052502758800983, + 0.01592543162405491, + 0.04823940992355347, + 0.0006131527479737997, + -0.0024455224629491568, + 0.02081175148487091, + -0.019772108644247055, + 0.05273822322487831, + -0.010566547513008118, + 0.05440165102481842, + -0.034799668937921524, + 0.027900222688913345, + 0.003974269609898329, + -0.1042666807770729, + -0.030281947925686836, + -0.03324965387582779, + -0.048504043370485306, + -0.025953255593776703, + -0.015188230201601982, + 0.06710419058799744, + -0.02247517928481102, + -0.02264530211687088, + 0.03440271317958832, + -0.019261738285422325, + -0.1604451835155487, + 0.016804402694106102, + -0.023741653189063072, + 0.03549906238913536, + -0.003995534963905811, + -0.011634543538093567, + -0.017210807651281357, + -0.0005898198578506708, + -0.007631920278072357, + 0.013307423330843449, + -0.011020209640264511, + -0.062416352331638336, + -0.011313199996948242, + -0.004333418793976307, + 0.000262125744484365, + -0.03597162663936615, + -0.018326060846447945, + 0.033949051052331924, + -0.01151167694479227, + -0.019526375457644463, + -0.0006101992330513895, + -0.02604776807129383, + 0.062378544360399246, + -0.002811760175973177, + -0.016379093751311302, + -0.04464791715145111, + 0.047861356288194656, + 0.02043369971215725, + -0.031567323952913284, + 0.01787239871919155, + 0.006823834963142872, + -0.039392996579408646, + 0.0018347325967624784, + 0.03808871656656265, + -0.014139137230813503, + -0.008803880773484707, + -0.03793749585747719, + -0.02230505645275116, + -0.03844786807894707, + 0.0037285357248038054, + 0.04789916053414345, + 0.048466239124536514, + 0.010339716449379921, + 0.015169328078627586, + -0.008610129356384277, + -0.021133095026016235, + -0.019639790058135986, + -0.04653817415237427, + -0.05769070237874985, + -0.03856128081679344, + 0.01945076510310173, + -0.03712468594312668, + -0.016067201271653175, + -0.05780411884188652, + -0.03823993727564812, + -0.006493039429187775, + -0.005831448826938868, + 0.01669098623096943, + 0.01911996863782406, + -0.01847728155553341, + -0.05281383544206619, + 0.002302571665495634, + 0.03268257901072502, + 0.005410866346210241, + -0.01445102971047163, + -0.012267780490219593, + 0.06865420192480087, + -0.006889993790537119, + -0.01749434694647789, + -0.022248348221182823, + 0.02818376012146473, + 0.02856181189417839, + 0.037011269479990005, + 0.005760564003139734, + -0.032153304666280746, + 0.01982881687581539, + -0.02332579530775547, + -0.021000776439905167, + -0.025140443816781044, + -0.12263999879360199, + -0.024195315316319466, + 0.0021773420739918947, + -0.0007466523093171418, + -0.033400874584913254, + -0.008581775240600109, + -0.009611967019736767, + 0.013354679569602013, + 0.0009138220339082181, + 0.04162350296974182, + 0.23983605206012726, + 0.051226016134023666, + 0.012938822619616985, + 0.019847718998789787, + 0.06468465924263, + -0.03098134510219097, + -0.00016908957331907004, + -0.016360191628336906, + -9.510365634923801e-05, + -0.02536727488040924, + 0.0030456797685474157, + 0.0004067010304424912, + 0.030130727216601372, + 0.003244156949222088, + 0.009715930558741093, + 0.01988552324473858, + -0.011143076233565807, + 0.013212909922003746, + 0.06147122010588646, + -0.03385453671216965, + 0.0022281426936388016, + -0.016785498708486557, + 0.013486997224390507, + -0.015462318435311317, + -0.06438221782445908, + -0.009049614891409874, + -0.006398526486009359, + 0.08317139744758606, + -0.007825671695172787, + -0.0003579678013920784, + 0.007447620388120413, + 0.014933045953512192, + 0.002173797693103552, + -0.03890153020620346, + -0.05954315513372421, + -0.012163816019892693, + -0.006582826841622591, + -0.014422675594687462, + 0.05511995032429695, + 0.0185150858014822, + -0.007301125209778547, + -0.029658162966370583, + -0.022153835743665695, + 0.03351429104804993, + -0.012891566380858421, + -0.06721761077642441, + -0.013165653683245182, + 0.03523442521691322, + 0.0018772634211927652, + -0.02434653602540493, + 0.009219737723469734, + 0.022229446098208427, + -0.029620356857776642, + -0.012891566380858421, + -0.0022293240763247013, + -0.017229709774255753, + 0.03912835940718651, + -0.0004846742085646838, + 0.010405875742435455, + 0.015764759853482246, + 0.055573612451553345, + 0.0009090963867492974, + -0.00772643368691206, + 0.030584389343857765, + -0.040716178715229034, + -0.07976892590522766, + -0.014895240776240826, + -0.03009292297065258, + 0.014120234176516533, + 0.022323958575725555, + 0.03474295884370804, + 0.005675502587109804, + -0.01072721928358078, + 0.02818376012146473, + 0.05508214607834816, + -0.009021260775625706, + 0.00036328413989394903, + 0.036538705229759216, + -0.03270148113369942, + 0.0012109471717849374, + -0.04245521500706673, + -0.03608504310250282, + -0.05137723684310913, + 0.020566018298268318, + 0.016114458441734314, + -0.030886830762028694, + -0.014914142899215221, + -0.003789969254285097, + -0.013572059571743011, + 0.03668992593884468, + -0.005004460457712412, + 0.006365446839481592, + 0.05417482182383537, + 0.028240468353033066, + -0.002700707409530878, + -0.015093717724084854, + 0.02277762070298195, + -0.034119173884391785, + 0.0023474653717130423, + -0.00881333276629448, + -0.02801363728940487, + -0.03379783034324646, + -0.030036214739084244, + -0.02614228054881096, + -0.03878811374306679, + 0.001473220530897379, + 0.010547645390033722, + 0.013297971338033676, + -0.018760820850729942, + 0.03708688169717789, + -0.0018890774808824062, + 0.031642936170101166, + 0.0030929362401366234, + -0.027352046221494675, + 0.01655866764485836, + 0.009352056309580803, + 0.00172131706494838, + 0.02315567247569561, + 0.025102639570832253, + 0.0005106652970425785, + -0.04324912652373314, + -0.0506589412689209, + -0.010179044678807259, + -0.009800992906093597, + -0.01982881687581539, + -0.022323958575725555, + -0.04230399429798126, + -0.03566918522119522, + -0.05009186267852783, + 0.05394798889756203, + 0.04653817415237427, + -0.013061689212918282, + -0.031945377588272095, + -0.0035631381906569004, + 0.026255697011947632, + 0.015197682194411755, + 0.027975833043456078, + 0.013203458860516548, + 0.021719075739383698, + -0.03358990326523781, + -0.04203936085104942, + 0.0038726681377738714, + 0.012116559781134129, + -0.01574585773050785, + 0.009687577374279499, + -0.012475709430873394, + 0.03693566098809242, + 0.0017922017723321915, + 0.007164081558585167, + 0.0463869534432888, + -0.024044094607234, + 0.028958767652511597, + 0.05606507882475853, + -0.07496766746044159, + 0.008118662051856518, + -0.021681269630789757, + -0.01613336056470871, + 0.009446568787097931, + -0.01240955013781786, + -0.015849821269512177, + -0.015812017023563385, + 0.03400575742125511, + 0.0349130816757679, + -0.01189917977899313, + -0.0024691508151590824, + 0.05175529047846794, + -0.00917248148471117, + 0.05307847261428833, + 0.044421084225177765, + -0.034667350351810455, + 0.005996846593916416, + -0.0404515415430069, + -0.029828285798430443, + 0.02081175148487091, + 0.03508320450782776, + -0.011946436949074268, + -0.016747694462537766, + -0.04956258833408356, + -0.03695456311106682, + 0.0830201730132103, + 0.03047097474336624, + 0.05330530181527138, + 0.00595904141664505, + -0.003468625247478485, + -0.05228456109762192, + 0.027125215157866478, + -0.028750838711857796, + -0.009205561131238937, + 0.035858213901519775, + 0.02209712751209736, + -0.03209659829735756, + 0.09655442833900452, + -0.015764759853482246, + -0.0014094243524596095, + 0.038334451615810394, + -0.03154842182993889, + 0.018033070489764214, + 0.04570646211504936, + 0.003331581363454461, + -0.01808977872133255, + 0.09186658263206482, + -0.021435536444187164, + 0.014243100769817829, + -0.037861887365579605, + -0.01132265105843544, + -0.03090573474764824, + -0.00881333276629448, + -0.017598310485482216, + 0.002111183013767004, + -0.009744284674525261, + -2.2077634639572352e-05, + -0.03706797957420349, + -0.02835388481616974, + 0.011143076233565807, + -0.006804932374507189, + -0.025121541693806648, + 0.04997844621539116, + 0.06925908476114273, + -0.025216054171323776, + -0.019488569349050522, + -0.010330265387892723, + 0.01142661552876234, + 0.017560506239533424, + -0.01804252155125141, + -0.019507471472024918, + -0.05678337812423706, + -0.014214747585356236, + -0.05496872961521149, + 0.011549482122063637, + 0.007773689925670624, + 0.009224463254213333, + 0.006573375314474106, + 0.044458892196416855, + 0.007627194747328758, + 0.0825665146112442, + 0.027087410911917686, + 0.011398261412978172, + 0.013401935808360577, + -0.008619580417871475, + -0.01600104197859764, + 0.0040994989685714245, + 0.026955092325806618, + 0.0234203077852726, + 0.03226672112941742, + -0.010292460210621357, + 0.053872380405664444, + -0.004073508083820343, + 0.024800198152661324, + 0.016974525526165962, + 0.03060329146683216, + -0.0008334860322065651, + 0.023987386375665665, + 0.017475444823503494, + -0.02094407007098198, + 0.01808977872133255, + -0.029998408630490303, + 0.01036807056516409, + -0.014800727367401123, + -0.04721866920590401, + 0.03294721245765686, + -0.009904956445097923, + -0.0006757676019333303, + -0.006105536594986916, + -0.02489471063017845, + -0.01834496296942234, + -0.022418471053242683, + 0.0009362688870169222, + 0.020282479003071785, + -0.03687895089387894, + -0.07572377473115921, + 0.011965339072048664, + 0.005869254004210234, + -0.03610394522547722, + -0.015613539144396782, + 0.037824083119630814, + -0.014895240776240826, + 0.022229446098208427, + -0.04181252792477608, + 0.02485690452158451, + 0.045517437160015106, + -0.01453609112650156, + 0.010075080208480358, + -0.0035395098384469748, + 0.030962441116571426, + 0.023231282830238342, + 0.010509840212762356, + 0.016870561987161636, + -0.025008125230669975, + 0.012277231551706791, + -0.013817792758345604, + 0.01693671941757202, + -0.02818376012146473, + -0.0261800866574049, + 0.04392961785197258, + -0.03961982578039169, + 0.005103698931634426, + -0.013052238151431084, + 0.018760820850729942, + -0.021189803257584572, + 0.029261209070682526, + -0.00045661567128263414, + 0.0007431080448441207, + -0.02771119587123394, + -0.03009292297065258, + 0.0018252813024446368, + 0.019847718998789787, + -0.02260749787092209, + -0.0006090177921578288, + 0.037691764533519745, + 0.008926748298108578, + 0.047521110624074936, + -0.03625516593456268, + 0.02784351445734501, + 0.03909055516123772, + 0.01710684411227703, + 0.013931208290159702, + 0.009304800070822239, + -0.013543705455958843, + 0.0034757135435938835, + 0.02434653602540493, + 0.004470462445169687, + -0.029015474021434784, + -0.018921492621302605, + 0.051528457552194595, + -0.027654487639665604, + 0.005061168223619461, + -0.026917288079857826, + 0.03135939687490463, + -0.003787606256082654, + -0.004961929749697447, + -0.010717768222093582, + 0.003225254360586405, + -0.01971540041267872, + 0.03712468594312668, + 0.01567024737596512, + -0.0054439459927380085, + 0.0003033274842891842, + -0.015651343390345573, + 0.03727590665221214, + -0.005519556347280741, + 0.0034969791304320097, + 0.0054439459927380085, + 0.04759671911597252, + 0.013401935808360577, + 0.036633219569921494, + -0.004961929749697447, + -0.020566018298268318, + -0.02876974083483219, + 0.029506942257285118, + -0.007783141452819109, + -0.009753735736012459, + 0.02353372424840927, + -0.023609334602952003, + -0.04064056649804115, + -0.0036505626048892736, + 0.007069568615406752, + -0.05341871827840805, + -0.05111260339617729, + -0.01344919204711914, + -0.0043310560286045074, + -0.0011430159211158752, + 0.018420573323965073, + 0.0007088471320457757, + 0.019507471472024918, + 0.014715665951371193, + 0.028750838711857796, + 0.007173532620072365, + 0.008860589005053043, + 0.03209659829735756, + -0.02757887728512287, + -0.010226300917565823, + -0.006181146949529648, + 0.01877027191221714, + 0.020339185371994972, + -0.02251298353075981, + 0.018609600141644478, + -0.027635585516691208, + -0.0061149876564741135, + 0.027522170916199684, + -0.024951418861746788, + 0.02472458779811859, + -0.10615694522857666, + -0.02243737317621708, + 0.017551055178046227, + 0.03689785301685333, + -0.024252021685242653, + 0.02073614113032818, + -0.000527795753441751, + 0.002684167819097638, + 0.0370301716029644, + -0.04162350296974182, + -0.012910468503832817, + -0.015311097726225853, + 0.021983711048960686, + -0.1383669525384903, + -0.0007330660591833293, + -0.014394321478903294, + -0.048088189214468, + -0.04430767148733139, + -0.027106313034892082, + -0.019091615453362465, + 0.014602250419557095, + 0.015679698437452316, + -0.02916669473052025, + 0.020358089357614517, + 0.006190598011016846, + 0.0185245368629694, + -0.01036807056516409, + -0.008525067940354347, + -0.006554472725838423, + -0.007575212512165308, + -0.014980302192270756, + 0.019346799701452255, + -0.006625357549637556, + -0.013732731342315674, + -0.02706850878894329, + 0.06653711199760437, + 0.02941242977976799, + 0.06419319659471512, + -0.01808977872133255, + -0.02937462367117405, + 0.01642635092139244, + -0.023552626371383667, + 0.0034520854242146015, + 0.011360456235706806, + -0.04098081216216087, + 0.01387450098991394, + 0.060601700097322464, + 0.03621736168861389, + 0.005831448826938868, + -0.018666306510567665, + -0.006511942017823458, + 0.029866091907024384, + 0.04014910012483597, + 0.024800198152661324, + 0.012012595310807228, + 0.004456285387277603, + -0.026936190202832222, + 0.010708317160606384, + 0.03805091232061386, + -0.014006818644702435, + 0.006984506733715534, + -0.03676553815603256, + 0.029998408630490303, + 0.004283799324184656, + 0.026293501257896423, + 0.026955092325806618, + 0.014602250419557095, + 0.018184291198849678, + -0.010292460210621357, + -0.04464791715145111, + -0.011473871767520905, + 0.00994276162236929, + 0.04249302297830582, + -0.0778786689043045, + -0.01377053651958704, + -0.006209500599652529, + -0.03623626381158829, + -0.03549906238913536, + -0.02430872991681099, + -0.05818216875195503, + -0.0017933831550180912, + -0.021548952907323837, + -0.0094749229028821, + 0.005410866346210241, + -0.04332473501563072, + 0.009800992906093597, + -0.010906794108450413, + 0.016237324103713036, + -0.019866621121764183, + 0.07031763345003128, + 0.0170312337577343, + -0.01417694240808487, + 0.0018796261865645647, + 0.0023852705489844084, + 0.04324912652373314, + -0.016123909503221512, + 0.04536621645092964, + 0.00039045661105774343, + 0.017258064821362495, + -0.013392484746873379, + 0.008265157230198383, + 0.00031336949905380607, + -0.01543396431952715, + -0.012551319785416126, + -0.016397995874285698, + 0.0034213687758892775, + 0.028448397293686867, + 0.005410866346210241, + -0.008430554531514645, + 0.012626930139958858, + -0.05878705158829689, + 0.012995529919862747, + -0.03504540026187897, + -0.028410591185092926, + 0.0037119959015399218, + 0.02549959346652031, + 0.017806239426136017, + -0.0006037014536559582, + -0.013931208290159702, + 0.06347489356994629, + 0.007310576271265745, + 0.04423205927014351, + -0.05103699117898941, + -0.033778928220272064, + 0.0054912022314965725, + -0.03376002609729767, + -0.009120499715209007, + -0.03754054382443428, + 0.01774953119456768, + 0.0019564179237931967, + -0.021511146798729897, + -0.027446560561656952, + -0.01045313198119402, + 0.010547645390033722, + 0.05598947033286095, + -0.004137304145842791, + -0.03710578382015228, + -0.02047150395810604, + -0.02720082551240921, + 0.045101579278707504, + 0.01890258863568306, + -0.0308679286390543, + 0.011294296942651272, + 0.019299544394016266, + -0.010160141624510288, + -0.001392884529195726, + 0.02549959346652031, + -0.012730893678963184, + 0.06336148083209991, + -0.01860014721751213, + 0.0647224634885788, + -0.052927251905202866, + -0.07005299627780914, + 0.0002946145832538605, + 0.027276435866951942, + -0.007395638152956963, + -0.04755891487002373, + 0.013392484746873379, + 0.010207397863268852, + -0.0027834062930196524, + -0.02655813843011856, + -0.005760564003139734, + 0.018401671200990677, + 0.020376991480588913, + 0.013297971338033676, + 0.01523548737168312, + 0.03695456311106682, + -0.017135197296738625, + 0.046802811324596405, + 0.00482016010209918, + 1.7001255400828086e-05, + 0.004175109323114157, + -0.004338144324719906, + 0.0026865305844694376, + -0.04090520367026329, + 0.026066670194268227, + -0.06559198349714279, + 0.006568649783730507, + 0.009479648433625698, + 0.026161184534430504, + 0.003794694785028696, + -0.049865029752254486, + 0.015632441267371178, + 0.0018619050970301032, + 0.018628502264618874, + -0.0025187700521200895, + 0.05973218381404877, + 0.01183302141726017, + -0.031132565811276436, + 0.03750273585319519, + 0.000405519618652761, + 0.10033494234085083, + 0.008203723467886448, + 0.013099494390189648, + 0.04120764508843422, + 0.02600996382534504, + -0.00044243872980587184, + 0.01132265105843544, + 0.02209712751209736, + 0.06192488223314285, + 0.011880277656018734, + 0.011303748935461044, + 0.013458644039928913, + -0.011681800708174706, + 0.017267515882849693, + -0.0008919659303501248, + 0.0004329874354880303, + 0.05685899034142494, + -0.04147228226065636, + 0.002310841577127576, + 0.030792318284511566, + -0.011974790133535862, + 0.05500653386116028, + -0.02570752240717411, + 0.03374112397432327, + -0.03056548722088337, + -0.05092357471585274, + -0.018401671200990677, + 0.02013125829398632, + -0.0021052758675068617, + -0.05239797756075859, + -0.05167967826128006, + 0.051906511187553406, + 0.027616683393716812, + -0.03451612964272499, + -0.006554472725838423, + 0.0308679286390543, + 2.6064899429911748e-05, + 0.023722749203443527, + 0.0032725108321756124, + 0.004739824216812849, + -0.021265413612127304, + 0.01945076510310173, + -0.01626567915081978, + -0.023760555312037468, + 0.007471248507499695, + 0.011700702831149101, + 0.030414266511797905, + -0.03557467460632324, + 0.00672459602355957, + -0.024838002398610115, + -0.017806239426136017, + -0.02648252807557583, + -0.055573612451553345, + 0.022456277161836624, + -0.007995795458555222, + 0.03506430238485336, + -0.0042719850316643715, + 0.00810921099036932, + 0.034931983798742294, + -0.011473871767520905, + 0.019809912890195847, + -0.021038582548499107, + 0.044458892196416855, + 0.05300286039710045, + 0.019772108644247055, + 0.006422154605388641 + ] + } + }, + { + "type": "布置情况", + "properties": { + "名称": "发动机的布置情况", + "内容": "3.5 布置情况\n全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\n船舶主发动机布置情况见表 3.3。\n表 3.3 船舶主发动机布置情况\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵触线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.5 布置情况\\n全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\\n船舶主发动机布置情况见表 3.3。\\n表 3.3 船舶主发动机布置情况\\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵触线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8f08d8fa-0421-4cc0-bc63-4e520a59ff83.pdf#page=14\"}]", + "embedding": [ + -0.010495094582438469, + -0.041784025728702545, + -0.05454700067639351, + -0.0033453728538006544, + -0.019723709672689438, + -0.0019733526278287172, + 0.06428613513708115, + 0.03249650448560715, + 0.0258793905377388, + 0.01163394469767809, + -0.007147267460823059, + -0.009326791390776634, + 0.03510800749063492, + 0.01496213674545288, + -0.03396915644407272, + -0.03400842472910881, + 0.026115015149116516, + 0.008457927033305168, + -0.033576447516679764, + -0.010396918281912804, + -0.004923563916236162, + -0.005664798431098461, + 0.044768597930669785, + 0.03978122025728226, + 0.020656388252973557, + 0.023424971848726273, + -0.04916691780090332, + 0.0018776303622871637, + 0.031180936843156815, + 0.012743341736495495, + -0.022973360493779182, + -0.030336616560816765, + -0.03359608352184296, + 0.014392711222171783, + 0.017593273892998695, + -0.07182610780000687, + 0.0034116420429199934, + -0.021736333146691322, + -0.04186256602406502, + 0.03453858196735382, + 0.013528755865991116, + -0.013931280933320522, + -0.0007522793603129685, + -0.009778404608368874, + -0.012448811903595924, + -0.04131277650594711, + -0.02022441104054451, + -0.03650211542844772, + -0.051601700484752655, + -0.026998605579137802, + -0.024406740441918373, + -0.04955962300300598, + 0.002756312256678939, + -0.004251053091138601, + 0.005969146266579628, + 0.02301263064146042, + -0.012173917144536972, + -0.0007755963015370071, + -0.06895934790372849, + 0.024288928136229515, + -0.03532399609684944, + 0.027391312643885612, + -0.028000008314847946, + -0.0286872461438179, + 0.010495094582438469, + 0.07536047697067261, + 0.013921462930738926, + 0.002196704735979438, + -0.024406740441918373, + -0.07712765783071518, + 0.030258074402809143, + -0.024347834289073944, + -0.002827490447089076, + -0.0056157102808356285, + -0.0554109588265419, + 0.011457227170467377, + 0.01609116978943348, + -0.04897056147456169, + -0.021814873442053795, + 0.022796642035245895, + 0.03603086620569229, + -0.02320898324251175, + 0.035225819796323776, + 0.01741655543446541, + 0.022011227905750275, + 0.03650211542844772, + -0.045868176966905594, + 0.051287535578012466, + -0.02984573133289814, + -0.043983183801174164, + 0.00266549875959754, + 0.025584861636161804, + 0.005350633058696985, + -0.011525950394570827, + -0.04245162755250931, + -0.012105192989110947, + -0.0181430634111166, + -0.0006718971417285502, + 0.015266484580934048, + -0.02782329171895981, + 0.0019021745538339019, + 0.017318379133939743, + 0.03310520201921463, + -0.022777006030082703, + 0.015943903475999832, + 0.0005678911693394184, + 0.03473493456840515, + 0.028589069843292236, + -0.006494392175227404, + 0.0027538577560335398, + 0.039820488542318344, + 0.02413184568285942, + 0.012301546521484852, + -0.0006541025941260159, + -0.011143061332404613, + -0.03373353183269501, + -0.02801964432001114, + -0.0416269414126873, + 0.0035294541157782078, + -0.011103790253400803, + 0.0005439605447463691, + 0.0023378338664770126, + 0.015423567034304142, + -0.007363256067037582, + -0.04146986082196236, + -0.04794952645897865, + 0.018938295543193817, + 0.01212482899427414, + -0.010838713496923447, + -0.0157475508749485, + -0.015796639025211334, + 0.01423562876880169, + -0.05462554469704628, + 0.027489490807056427, + -0.015070131048560143, + -0.040802258998155594, + -0.003612904343754053, + 0.01479523628950119, + -0.03542217239737511, + -0.03279103338718414, + 0.0326339527964592, + 0.010740536265075207, + -0.005704069044440985, + -0.008124126121401787, + 0.02678261697292328, + -0.008875178173184395, + 0.021893415600061417, + -0.01625807024538517, + 0.008703368715941906, + -0.0012971602845937014, + -0.023837314918637276, + 0.04284433275461197, + 0.0257419440895319, + 0.03557925298810005, + -0.009051896631717682, + 0.018575040623545647, + -0.03819075599312782, + 0.04842077195644379, + -0.04736046493053436, + 0.06460030376911163, + 0.0345974862575531, + 0.03446003794670105, + -0.03856382891535759, + -0.007019637618213892, + 0.04084152728319168, + -0.05293690413236618, + 0.033851344138383865, + 0.02725386619567871, + -0.035284724086523056, + -0.03491165116429329, + 0.0261542871594429, + 0.010377282276749611, + -0.027587667107582092, + -0.0010222654091194272, + 0.01862412877380848, + 0.010632541961967945, + 0.07516411691904068, + 0.005851334426552057, + -0.011781210079789162, + -0.014559611678123474, + 0.01485414244234562, + 0.0374053418636322, + 0.04115569218993187, + -0.008428473956882954, + -0.005704069044440985, + 0.004091516137123108, + 0.02328752540051937, + -0.04319776967167854, + -9.173389844363555e-05, + -0.027980374172329903, + -0.03412623703479767, + -0.01738710328936577, + 0.019497903063893318, + -0.031966350972652435, + 0.03766060248017311, + 0.0029428480193018913, + -0.007112905383110046, + -0.009400423616170883, + 0.010976160876452923, + -0.025447413325309753, + 0.033713895827531815, + -0.02678261697292328, + 0.04092007130384445, + -0.015403931960463524, + -0.02607574500143528, + 0.021108001470565796, + -0.03730716556310654, + -0.044768597930669785, + -0.020145868882536888, + -0.060751773416996, + -0.002790674101561308, + -0.028647975996136665, + 0.0040792440995574, + -0.028235632926225662, + 0.002805400639772415, + 0.020067328587174416, + 0.02523142471909523, + -0.016042081639170647, + 0.025781214237213135, + -0.0410771518945694, + -0.0396634079515934, + 0.042373087257146835, + 0.04166621342301369, + -0.015187943354249, + 0.019085559993982315, + -0.03575597330927849, + 0.05454700067639351, + 0.007751054596155882, + -0.015492291189730167, + -0.04955962300300598, + -0.04999160021543503, + 0.028117820620536804, + -0.04559328407049179, + -0.029374483972787857, + 0.024740541353821754, + -0.00476157246157527, + -0.026252463459968567, + 0.030336616560816765, + 0.014785418286919594, + 0.021049095317721367, + 0.008948810398578644, + -0.011663397774100304, + -0.02106873132288456, + -0.0016285068122670054, + -0.02697897143661976, + 0.030395522713661194, + 0.04245162755250931, + -0.0013192500919103622, + -0.01572791486978531, + 0.042765792459249496, + 0.026350639760494232, + -0.02672371082007885, + -0.0250350721180439, + -0.003887799335643649, + 0.03997757285833359, + 0.02373913861811161, + 0.04111642390489578, + -0.011319778859615326, + 0.0013008419191464782, + -0.04437589272856712, + -0.015237031504511833, + 0.014579247683286667, + 0.04622161388397217, + 0.03942778334021568, + 0.007039273157715797, + 0.015845727175474167, + -0.0030042086727917194, + 0.013450214639306068, + -0.005404630210250616, + 0.010338012129068375, + -0.011152878403663635, + -0.023385701701045036, + 0.050227224826812744, + -0.0051248264499008656, + 0.022777006030082703, + 0.0551360622048378, + -0.00510519091039896, + -0.021304354071617126, + 0.03322301059961319, + -0.04272652044892311, + 0.04716411232948303, + -0.03510800749063492, + 0.026605898514389992, + -0.01348948571830988, + 0.0142748998478055, + -0.021539978682994843, + -0.059338029474020004, + -0.005272091366350651, + -0.023817678913474083, + -0.03010099194943905, + -0.05450773239135742, + -0.022266486659646034, + 0.07928754389286041, + -0.008237029425799847, + 0.000522177608218044, + 0.02315007708966732, + 0.003338009584695101, + -0.18944185972213745, + 0.016807859763503075, + -0.016925672069191933, + 0.00895862840116024, + 0.013764380477368832, + -0.023110806941986084, + 0.010151475667953491, + -0.04610380157828331, + -0.005620618816465139, + -0.0013977914350107312, + -0.030552605167031288, + -0.07292568683624268, + 0.011928475461900234, + -0.019762979820370674, + 0.03569706529378891, + -0.008148670196533203, + -0.002937939250841737, + 0.024072939530014992, + 0.015816275030374527, + -0.014903230592608452, + -0.021539978682994843, + 0.004791025537997484, + 0.06346145272254944, + 0.014775601215660572, + -0.057649388909339905, + 0.007677421905100346, + 0.014098181389272213, + -0.000544267357327044, + -0.03746424615383148, + 0.00674474285915494, + 0.02970828488469124, + -0.003841165453195572, + -0.01830996386706829, + 0.063579261302948, + 0.022207580506801605, + 0.008109399117529392, + 0.06405051052570343, + -0.023562420159578323, + 0.00521809421479702, + 0.006528753787279129, + 0.02705751173198223, + 0.03610941022634506, + -0.0025820485316216946, + 0.012438993901014328, + -0.022678829729557037, + -0.05215149000287056, + -0.00860519241541624, + -0.04319776967167854, + -0.03552034869790077, + -0.016415152698755264, + 0.02087237685918808, + -0.002073983894661069, + -0.021108001470565796, + 0.016051897779107094, + -0.06931278854608536, + 0.0063569447956979275, + -0.0216577909886837, + 0.00013890476839151233, + 0.001286115380935371, + -0.013960734009742737, + -0.04374755918979645, + -0.033458635210990906, + 0.03192707896232605, + -0.008094673044979572, + -0.024603093042969704, + 0.00959186814725399, + 0.006258768029510975, + -0.023582056164741516, + 0.008659189566969872, + -0.009547688998281956, + 0.014765783213078976, + -0.012733524665236473, + 0.024210385978221893, + 0.013440397568047047, + 0.026507722213864326, + 0.03667883574962616, + -0.05474335700273514, + -0.03720898926258087, + -0.027941104024648666, + -0.10713046789169312, + -0.006327491719275713, + 0.01856522262096405, + 0.006410941947251558, + -0.036973364651203156, + -0.009042078629136086, + -0.04025246948003769, + 0.010671813040971756, + -0.03999720886349678, + 0.04076298698782921, + 0.25023290514945984, + 0.011791028082370758, + 0.06208697706460953, + -0.017603091895580292, + 0.058042094111442566, + -0.019252460449934006, + -0.022089768201112747, + -0.030670417472720146, + -0.004773844499140978, + -0.02627209760248661, + -0.0268611591309309, + 0.005708978045731783, + 0.029237035661935806, + 0.02483871765434742, + 0.006774195935577154, + 0.0037356254179030657, + 0.0013904282823204994, + -0.005345724057406187, + 0.0981767475605011, + -0.02472090534865856, + 0.01830996386706829, + -0.001088534714654088, + -0.002021213760599494, + -0.007893410511314869, + -0.048145879060029984, + -0.020577846094965935, + -0.012242640368640423, + 0.04037027806043625, + 0.018408140167593956, + -0.023523150011897087, + -0.038662005215883255, + 0.03734643757343292, + 0.00821248535066843, + 0.01021038182079792, + -0.06907716393470764, + 0.002467917976900935, + 0.006946004927158356, + 0.02242356911301613, + 0.011486680246889591, + 0.01904628984630108, + -0.04987378790974617, + -0.0216577909886837, + -0.04567182436585426, + -0.026645170524716377, + 0.025074342265725136, + -0.0503450371325016, + -0.004665850196033716, + -0.013234226033091545, + 0.01174193900078535, + 0.02261992357671261, + -0.0037208988796919584, + 0.022659193724393845, + -0.037228625267744064, + -0.009405332617461681, + -0.012016834691166878, + -0.021225813776254654, + 0.011535768397152424, + -0.003897617105394602, + 0.026056108996272087, + 0.006803649011999369, + 0.03758205845952034, + 0.010171111673116684, + -0.019360454753041267, + -0.002224930562078953, + 0.020911647006869316, + -0.07449651509523392, + -0.04111642390489578, + -0.03715008124709129, + -0.005704069044440985, + 0.014000004157423973, + 0.06738851964473724, + -0.0019095378229394555, + -0.013047690503299236, + 0.028196362778544426, + 0.028451621532440186, + 0.036443211138248444, + 0.00957714207470417, + 0.05831699073314667, + -0.009164799936115742, + 0.015934087336063385, + -0.06825247406959534, + -0.04017392545938492, + -0.03418514505028725, + 0.0006817147950641811, + 0.019527355208992958, + -0.02413184568285942, + -0.0071816290728747845, + 0.007112905383110046, + 0.023130442947149277, + -0.03343900293111801, + -0.01287097204476595, + -0.000550710188690573, + 0.0416269414126873, + -0.0026188648771494627, + 0.012007016688585281, + -0.02497616596519947, + 0.013057507574558258, + -0.016218798235058784, + -0.01026928797364235, + 0.02464236505329609, + -0.042765792459249496, + -0.02419075183570385, + -0.02275737002491951, + -0.020037874579429626, + -0.003222651779651642, + 0.010190746746957302, + -0.00804558489471674, + 0.02191305160522461, + -0.016690047457814217, + 0.028589069843292236, + 0.023876585066318512, + 0.03141656145453453, + -0.0005436537321656942, + 0.015070131048560143, + 0.008291026577353477, + -0.008983172476291656, + -0.022129040211439133, + 0.018211787566542625, + -0.003475456964224577, + 0.040605902671813965, + -0.05226930230855942, + 0.0067496513947844505, + -0.004363956395536661, + -0.027666207402944565, + -0.039447419345378876, + -0.019488085061311722, + 0.00498492456972599, + -0.01830996386706829, + -0.02073493041098118, + 0.014863960444927216, + 0.013194954954087734, + -0.019360454753041267, + -0.037228625267744064, + -0.0037454429548233747, + 0.03165218606591225, + 0.002289972733706236, + -0.007682330906391144, + 0.013892009854316711, + 0.038995806127786636, + -0.006514027249068022, + -0.06840956211090088, + -0.003914798144251108, + -0.0013082051882520318, + -0.021952321752905846, + -0.005335906520485878, + -0.0066072954796254635, + 0.020970553159713745, + -0.014647970907390118, + -0.030336616560816765, + 0.03406733274459839, + -0.0019279458792880177, + 0.026821888983249664, + 0.04213746264576912, + -0.07575318217277527, + -0.01150631532073021, + 0.006278403103351593, + -0.017396919429302216, + -0.014726512134075165, + -0.006892007775604725, + -0.017593273892998695, + 0.0017585910391062498, + -0.003475456964224577, + 0.048734940588474274, + 0.027410948649048805, + 0.016670411452651024, + 0.05796355381608009, + -0.02452455274760723, + 0.04661432281136513, + 0.01612062193453312, + -0.013568026944994926, + 0.04798879474401474, + -0.031966350972652435, + -0.012085557915270329, + 0.045161306858062744, + 0.04578963667154312, + 0.046653591096401215, + 0.0043737743981182575, + -0.028058914467692375, + -0.04751754552125931, + 0.0700589269399643, + 0.04908837378025055, + 0.06876299530267715, + -0.030474063009023666, + 0.015737732872366905, + -0.02764657326042652, + -0.016071533784270287, + -0.0014738785102963448, + -0.006410941947251558, + 0.04826369136571884, + 0.007701965980231762, + -0.010014028288424015, + 0.12472374737262726, + -0.021363260224461555, + -0.022678829729557037, + 0.022678829729557037, + -0.026998605579137802, + 0.030906040221452713, + 0.034499309957027435, + 0.00590042257681489, + -0.028196362778544426, + 0.04488641023635864, + -0.06707435846328735, + -0.02224685251712799, + -0.019654985517263412, + 0.016955124214291573, + -0.01791725680232048, + -0.005669707432389259, + -0.010328194126486778, + 0.013175319880247116, + -0.05018795654177666, + -0.030316980555653572, + -0.019340820610523224, + 0.012920060195028782, + -0.005009468644857407, + -0.007412344682961702, + 0.005988781806081533, + 0.03035625070333481, + 0.08678824454545975, + -0.013185137882828712, + -0.032614316791296005, + -0.016169710084795952, + 0.047831714153289795, + 0.05215149000287056, + -0.037758778780698776, + -0.032751765102148056, + -0.03314447030425072, + -0.015286119654774666, + -0.06079104542732239, + 0.05187659338116646, + -0.0035711792297661304, + 0.007662695366889238, + 0.013253861106932163, + 5.131269062985666e-05, + 0.007196355611085892, + 0.06247968226671219, + -0.02523142471909523, + 0.030277710407972336, + 0.023758772760629654, + 0.032869577407836914, + -0.0018972656689584255, + 0.01348948571830988, + 0.012330999597907066, + 0.041784025728702545, + 0.040291737765073776, + 0.005733522120863199, + 0.02782329171895981, + -0.05313325673341751, + 0.00860519241541624, + 0.01537447888404131, + 0.03373353183269501, + -0.020037874579429626, + -0.006941096391528845, + 0.0071079968474805355, + -0.0286872461438179, + -0.012389905750751495, + -0.004138150252401829, + -0.0027317681815475225, + -0.012468446977436543, + -0.02697897143661976, + -0.005164097063243389, + -0.001101420377381146, + 0.04437589272856712, + -0.015384296886622906, + 0.012164099141955376, + 0.003021389478817582, + -0.04610380157828331, + 0.007029455155134201, + -0.007957225665450096, + -0.023444607853889465, + -0.07575318217277527, + -0.031239841133356094, + -0.0019279458792880177, + -0.0677812248468399, + -0.03856382891535759, + 0.024288928136229515, + 0.031377289444208145, + -0.004116060212254524, + -0.020302951335906982, + 0.019007019698619843, + -0.001482468913309276, + -0.05152316018939018, + 0.0012376406230032444, + -0.03919215872883797, + 0.00912552885711193, + 0.026173921301960945, + -0.03412623703479767, + 0.01670968346297741, + -0.02913885936141014, + 0.013185137882828712, + -0.009076440706849098, + 0.007446706295013428, + -0.01805470511317253, + -0.018751759082078934, + 0.03414587303996086, + -0.03650211542844772, + 0.001573282410390675, + 0.0023096080403774977, + 0.005193550139665604, + -0.01946844905614853, + 0.015561015345156193, + 0.01496213674545288, + -0.009631139226257801, + -0.02782329171895981, + -0.026841523125767708, + 0.004147967789322138, + 0.010122022591531277, + -0.00028824081528000534, + -0.009233523160219193, + 0.020302951335906982, + -0.015040677972137928, + 0.013342220336198807, + -0.021677426993846893, + 0.013518938794732094, + 0.04044882208108902, + 0.012969148345291615, + 0.01060308888554573, + 0.016434788703918457, + 0.029688648879528046, + -0.0045554013922810555, + 0.04739973321557045, + -0.008909540250897408, + -0.002802946139127016, + -0.007584154140204191, + 0.016326794400811195, + -0.034695662558078766, + 0.007638151291757822, + -0.04904910549521446, + 0.029963543638586998, + -0.020008422434329987, + -0.023464243859052658, + 0.018840119242668152, + 0.01092707272619009, + -0.022011227905750275, + 0.0385441929101944, + 0.016130439937114716, + -0.033399730920791626, + -0.0015475110849365592, + -0.0365610234439373, + 0.04429734870791435, + 0.007647968828678131, + 0.008408838883042336, + -0.0012922515161335468, + -0.01836887001991272, + -0.018015433102846146, + 0.043472666293382645, + -0.02972792088985443, + -7.259710400830954e-05, + -0.01986115612089634, + 0.02638990990817547, + 0.02100982517004013, + -0.01572791486978531, + 0.022678829729557037, + -0.011584856547415257, + -0.052190762013196945, + -0.006253859028220177, + -0.006155682262033224, + -0.022541381418704987, + -0.026880795136094093, + 0.020185139030218124, + -0.020774200558662415, + -0.010416553355753422, + 0.03245723247528076, + -0.004398318473249674, + 0.025447413325309753, + 0.011398321017622948, + 0.027293136343359947, + -0.000278423132840544, + 0.004665850196033716, + 0.04076298698782921, + -0.023640962317585945, + 0.0022887454833835363, + -0.033851344138383865, + 0.035932689905166626, + 0.016444604843854904, + 0.01036746520549059, + 0.010230017825961113, + -0.0466928631067276, + -0.007942498661577702, + 0.00018147358787246048, + 0.012232823297381401, + 0.013312767259776592, + -0.08223284780979156, + -0.033065930008888245, + 0.01833941787481308, + 0.05340815335512161, + -0.02281627617776394, + -0.0194095429033041, + 0.014814871363341808, + 0.03017953224480152, + 0.034892018884420395, + -0.06719216704368591, + 0.006371670868247747, + -0.022521747276186943, + -0.012154282070696354, + -0.1676073521375656, + -0.00024145343923009932, + -0.0309453122317791, + -0.02782329171895981, + -0.05411502346396446, + -0.016248252242803574, + -0.01974334381520748, + 0.027803655713796616, + 0.0030729323625564575, + -0.0365610234439373, + 0.007859048433601856, + 0.019645167514681816, + 0.044650785624980927, + -0.016699865460395813, + -0.00023010175209492445, + 0.006612204015254974, + -0.02216831035912037, + -0.013960734009742737, + 0.010338012129068375, + 0.054272107779979706, + -0.017897620797157288, + -0.01665077731013298, + 0.01898738369345665, + 0.0026016838382929564, + 0.03389061242341995, + -0.02821599878370762, + -0.023071536794304848, + 0.019841521978378296, + -0.027921468019485474, + -0.004894110839813948, + 0.030199168249964714, + -0.0032840122003108263, + 0.02678261697292328, + 0.06943059712648392, + 0.010495094582438469, + -0.017671814188361168, + -0.01060308888554573, + -0.006572933401912451, + 0.031102394685149193, + 0.012988784350454807, + 0.015266484580934048, + 0.022345028817653656, + 0.00476157246157527, + -0.00860519241541624, + -0.0419018380343914, + 0.07638151198625565, + -0.019566627219319344, + 0.008035766892135143, + -0.07025527954101562, + 0.04429734870791435, + -0.0014088363386690617, + 0.011476862244307995, + 0.04076298698782921, + 0.010465641506016254, + 0.01343057956546545, + 0.001429698895663023, + 0.03577560931444168, + -0.02711641788482666, + -0.01417672261595726, + 0.04213746264576912, + -0.047046300023794174, + -0.03691445663571358, + -0.031377289444208145, + -0.05831699073314667, + -0.009812765754759312, + -0.025525955483317375, + -0.07787379622459412, + 0.013597480021417141, + 0.018575040623545647, + -0.013381491415202618, + -0.005502806976437569, + -0.0033748256973922253, + 0.01850631833076477, + -0.016375882551074028, + 0.022737735882401466, + -0.00903226062655449, + 0.036384303122758865, + -0.01820196956396103, + -0.00606241449713707, + -0.011977563612163067, + -0.016336610540747643, + 0.05073774605989456, + -0.004778753500431776, + 0.036973364651203156, + -0.015551197342574596, + -0.001611325889825821, + -0.024819081649184227, + 0.000647352950181812, + -0.010593271814286709, + -0.04280506446957588, + -0.03175036236643791, + -0.006096776109188795, + 0.011702668853104115, + 0.024210385978221893, + -0.020145868882536888, + 0.009827492758631706, + 0.027803655713796616, + -0.054389920085668564, + -0.017985980957746506, + -0.03848528489470482, + -0.0013634295901283622, + -0.0015659191412851214, + 0.020381493493914604, + -0.00935133546590805, + -0.019762979820370674, + 0.023955127224326134, + 0.02061711810529232, + 0.01615007594227791, + 0.01921319030225277, + -0.03377280384302139, + -0.037483882158994675, + -0.005718795582652092, + -0.03483311086893082, + 0.019625531509518623, + -0.015708280727267265, + 0.019262278452515602, + -0.015295937657356262, + -0.027293136343359947, + -0.027862561866641045, + -0.009645865298807621, + 0.021500708535313606, + 0.04602526128292084, + 0.025722308084368706, + -0.0416269414126873, + -0.020892012864351273, + 0.009596777148544788, + 0.015217396430671215, + 0.02269846387207508, + 0.011192149482667446, + 0.014697059988975525, + 0.02725386619567871, + -0.015158490277826786, + 0.011948110535740852, + 0.022030862048268318, + 0.0011161469155922532, + 0.02140253223478794, + -0.017652180045843124, + 0.0554109588265419, + -0.027607303112745285, + -0.053879398852586746, + 0.021363260224461555, + 0.018692852929234505, + -0.03165218606591225, + -0.028176726773381233, + -0.018663400784134865, + 0.01423562876880169, + 0.003541726153343916, + -0.024622729048132896, + 0.03583451360464096, + -0.015855545178055763, + 0.015610103495419025, + 0.005213185213506222, + -0.011201967485249043, + 0.054468460381031036, + -0.025113612413406372, + 0.04578963667154312, + 0.03860309720039368, + 0.05223003029823303, + 0.012340817600488663, + 0.00334782712161541, + 0.03336045891046524, + -0.013509120792150497, + 0.02770547941327095, + -0.0486563965678215, + 0.0268611591309309, + 0.05336888134479523, + 0.028196362778544426, + 0.024288928136229515, + -0.04531838744878769, + 0.011702668853104115, + 0.014461435377597809, + 0.028137456625699997, + 0.003384643467143178, + 0.034302957355976105, + 0.0045063127763569355, + -0.055685851722955704, + 0.04025246948003769, + 0.022973360493779182, + 0.07355402410030365, + 0.0007713011000305414, + 0.026998605579137802, + 0.028510527685284615, + 0.026645170524716377, + 0.014323987998068333, + -0.004420408047735691, + 0.028510527685284615, + 0.050502121448516846, + 0.034165509045124054, + 0.01128050871193409, + 0.010681630112230778, + -0.010298741050064564, + 0.008880087174475193, + -0.006833101622760296, + -0.011948110535740852, + 0.06016271188855171, + 0.009189344011247158, + 0.023719502612948418, + 0.06373634934425354, + 0.01365638617426157, + 0.010779807344079018, + 0.005404630210250616, + -0.019870974123477936, + -0.014078546315431595, + -0.021422166377305984, + -0.043276309967041016, + -0.017897620797157288, + 0.032673221081495285, + -0.03746424615383148, + -0.04798879474401474, + 0.014814871363341808, + -0.014353441074490547, + -0.034028060734272, + 0.01583590917289257, + 0.012497900053858757, + -0.021108001470565796, + 0.017652180045843124, + 0.010642359964549541, + -0.020460035651922226, + -0.013469849713146687, + 0.027882197871804237, + -0.014088363386690617, + 0.009586960077285767, + 0.0005875264760106802, + -0.03249650448560715, + 0.02835344523191452, + -0.03208416327834129, + -0.034636758267879486, + -0.01935063675045967, + -0.0006909188814461231, + -0.0250350721180439, + -0.03783731907606125, + -0.02464236505329609, + -0.0003163132059853524, + 0.06829174607992172, + 0.01492286566644907, + -0.007574336137622595, + -0.015718096867203712, + -0.002486326266080141, + -0.0257419440895319, + -0.025329601019620895, + 0.07579245418310165, + 0.04221600294113159, + 0.009891307912766933, + -0.004953016992658377 + ] + } + }, + { + "type": "器材保障", + "properties": { + "名称": "发动机的器材保障", + "保障设施、保障设备(工具)信息汇总表": "5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n序号 名称 规格/型号 生产单位 通用/专用 体积山 重量8) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 中仪 C-01 同轴度检测 6 塞尺组 0.02 - 1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10 /RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300mm /40-50mm Mitutoyo 等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001mm 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ /iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量(kg) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LINER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0-300mm 市品 通用 1 0.7 600 量具柜F-05 一 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 序号 名称 规格/型号 生产单位 通用/专用 体积山 重量(kg) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flat/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Kärcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量8) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速", + "消耗材料信息汇总表": "5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n序号 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shell 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC /Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henke1 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shell 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "内容": "5器材保障\n5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n序号 名称 规格/型号 生产单位 通用/专用 体积山 重量8) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 中仪 C-01 同轴度检测 6 塞尺组 0.02 - 1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10 /RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300mm /40-50mm Mitutoyo 等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001mm 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ /iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量(kg) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LINER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0-300mm 市品 通用 1 0.7 600 量具柜F-05 一 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 序号 名称 规格/型号 生产单位 通用/专用 体积山 重量(kg) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flat/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Kärcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量8) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\n5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n序号 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shell 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC /Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henke1 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shell 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n序号 名称 规格/型号 生产单位 通用/专用 体积山 重量8) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 中仪 C-01 同轴度检测 6 塞尺组 0.02 - 1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10 /RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300mm /40-50mm Mitutoyo 等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001mm 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ /iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量(kg) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LINER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0-300mm 市品 通用 1 0.7 600 量具柜F-05 一 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 序号 名称 规格/型号 生产单位 通用/专用 体积山 重量(kg) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flat/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Kärcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量8) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n序号 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shell 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC /Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henke1 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shell 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8b54bbc9-26cb-4bb7-a7c5-6c4abbb153bc.pdf#page=54\"}]", + "embedding": [ + 0.000994462869130075, + -0.015596233308315277, + -0.051573581993579865, + -0.006843050476163626, + -0.017344005405902863, + -0.035070035606622696, + 0.032185737043619156, + 0.03722848743200302, + 0.024755319580435753, + -0.002190683502703905, + -0.01430689450353384, + -0.0017262824112549424, + 0.011374840512871742, + 0.00973690114915371, + 0.01027651410549879, + -0.056425321847200394, + 0.029244132339954376, + 0.016484444960951805, + 0.005372248124331236, + -0.005520283710211515, + 0.007373112253844738, + 0.009092232212424278, + 0.04538475349545479, + 0.027983443811535835, + 0.03894760459661484, + 0.015443422831594944, + -0.03780152648687363, + -0.0018898375565186143, + 0.06299617886543274, + 0.007430416531860828, + -0.04702746868133545, + -0.019750772044062614, + -0.03961615264415741, + 0.025691285729408264, + -0.029683463275432587, + -0.01834682561457157, + 0.0008870178717188537, + -0.023571038618683815, + -0.060398396104574203, + 0.046301618218421936, + -0.020362015813589096, + -0.03780152648687363, + -0.005252865143120289, + -0.0005052898195572197, + -0.0026622475124895573, + -0.03694196790456772, + -0.019808076322078705, + -0.03594869747757912, + -0.04164089262485504, + -0.061009638011455536, + -0.011011915281414986, + -0.04408586397767067, + 0.016694560647010803, + -0.03188011422753334, + 0.03178460896015167, + 0.033484626561403275, + -0.040456611663103104, + 0.004061419516801834, + -0.06631980836391449, + 0.010429324582219124, + -0.019072676077485085, + 0.025041840970516205, + -0.01520465686917305, + -0.011709113605320454, + 0.019034473225474358, + 0.028804801404476166, + 0.009292795322835445, + -0.011699562892317772, + -0.010505730286240578, + -0.07231762260198593, + 0.00914476066827774, + -0.029511550441384315, + -0.003242450300604105, + 0.007253729272633791, + -0.06838275492191315, + -0.006303437985479832, + 0.02343732863664627, + -0.029874475672841072, + 0.006671138573437929, + 0.026951972395181656, + 0.007430416531860828, + -0.026550844311714172, + 0.04175550118088722, + 0.007148671895265579, + -0.019072676077485085, + 0.0008947778260335326, + -0.017372656613588333, + 0.007917500101029873, + -0.017945697531104088, + -0.018891213461756706, + 0.00705794058740139, + 0.03688466176390648, + -0.02637893334031105, + -0.026417136192321777, + -0.025576677173376083, + -0.016331635415554047, + -0.03478351607918739, + 0.011212479323148727, + 0.02697107382118702, + -0.01089730765670538, + 0.012816990725696087, + 0.013905766420066357, + 0.04985446482896805, + -0.017754683271050453, + 0.02278788387775421, + 0.03732399269938469, + 0.037094779312610626, + 0.019597962498664856, + -0.0030108466744422913, + 0.00036023909342475235, + 0.0030108466744422913, + 0.03711387887597084, + -0.016446242108941078, + 0.023246316239237785, + -0.0030586000066250563, + -0.062041111290454865, + 0.028460977599024773, + -0.040189191699028015, + 0.05608149617910385, + -0.00941217876970768, + -0.008543068543076515, + -0.009211614727973938, + -0.01599736139178276, + -0.05023648962378502, + 0.0039587500505149364, + -0.05138257145881653, + 0.006451473105698824, + -0.027696924284100533, + 0.021832816302776337, + -0.013170365244150162, + -0.016522647812962532, + 0.004923366941511631, + -0.0644860789179802, + 0.021775513887405396, + -0.011231580749154091, + -0.052070219069719315, + -0.0009556632721796632, + -0.0036698426119983196, + -0.023742949590086937, + -0.028976714238524437, + 0.028193559497594833, + 0.029664361849427223, + 0.0206485353410244, + -0.00994224101305008, + 0.015691740438342094, + -0.012922047637403011, + 0.013743405230343342, + -0.03333181515336037, + -0.03831726312637329, + -0.007048389874398708, + 0.0010505729587748647, + 0.02905311807990074, + 0.043245404958724976, + 0.019101327285170555, + -0.0005933349602855742, + 0.0374768041074276, + -0.06238493323326111, + 0.013304074294865131, + -0.02681826427578926, + 0.027372201904654503, + 0.022577768191695213, + 0.01967436634004116, + -0.03384755179286003, + -0.023017099127173424, + 0.03382845222949982, + -0.036865562200546265, + 0.02393396385014057, + 0.021832816302776337, + -0.03443969413638115, + 0.02534746192395687, + 0.04213752970099449, + 0.004612970631569624, + -0.027773329988121986, + -0.010868655517697334, + 0.004675049800425768, + -0.0035504591651260853, + 0.01635073684155941, + 0.02582499384880066, + 0.039692558348178864, + -0.02479352243244648, + 0.0157012902200222, + -0.006480125244706869, + 0.01291249692440033, + -0.016417590901255608, + -0.00031367960036732256, + 0.011680461466312408, + 0.07415135204792023, + -0.05596688762307167, + 0.0001350523525616154, + -0.027983443811535835, + -0.03117336705327034, + -3.366982127772644e-05, + 0.002810282865539193, + -0.02244406007230282, + 0.0637984350323677, + -0.028403673321008682, + 0.024067671969532967, + 0.018003001809120178, + 0.03585319221019745, + -0.008237447589635849, + 0.00805598497390747, + -0.02653174288570881, + 0.0322430394589901, + -0.01027651410549879, + -0.040685828775167465, + 0.05199381336569786, + -0.00028234149795025587, + -0.0367700569331646, + -0.017726032063364983, + -0.045422956347465515, + -0.013695651665329933, + -0.018862560391426086, + 0.026856467127799988, + -0.015099599026143551, + -0.017802437767386436, + 0.04889939725399017, + 0.026780061423778534, + -0.04194651544094086, + 0.00893942080438137, + -0.023914862424135208, + -0.03887120261788368, + 0.05019828677177429, + 0.03810714930295944, + -0.013743405230343342, + 0.004300186410546303, + -0.04572857916355133, + 0.04897580295801163, + 0.029492449015378952, + 0.00012445708853192627, + -0.04309259355068207, + -0.007463843561708927, + 0.028021646663546562, + -0.06907039880752563, + -0.001962661277502775, + 0.02338002435863018, + 0.033522829413414, + -0.004558054264634848, + -0.03117336705327034, + 0.041488081216812134, + 0.01711479015648365, + 0.00814671628177166, + -0.019426049664616585, + -0.040189191699028015, + -0.019960887730121613, + -0.048364561051130295, + 0.04179370403289795, + 0.026608148589730263, + 0.012463616207242012, + -0.028422774747014046, + 0.00799868069589138, + 0.0037892258260399103, + -0.020342914387583733, + -0.037515006959438324, + 0.005295842885971069, + 0.02720029093325138, + 0.009163862094283104, + 0.029931779950857162, + -0.0021286041010171175, + 0.03740039840340614, + -0.029167726635932922, + 0.0023363311775028706, + 0.013628796674311161, + 0.031861014664173126, + 0.03073403611779213, + 0.01978897489607334, + 0.005897535011172295, + -0.011947880499064922, + -0.00520511157810688, + -0.0299126785248518, + 0.04779152199625969, + -0.003015622030943632, + -0.05554665997624397, + 0.02211933769285679, + 0.013141713105142117, + 0.036980170756578445, + 0.05837365612387657, + 0.03178460896015167, + -0.018843458965420723, + 0.036808256059885025, + -0.021297980099916458, + 0.021336182951927185, + -0.0075211478397250175, + 0.007893623784184456, + 0.00022130677825771272, + 0.016197925433516502, + 0.014803528785705566, + -0.06952883303165436, + -0.003564785234630108, + -0.026073312386870384, + -0.06589958071708679, + -0.05203201621770859, + 0.0002687616506591439, + 0.0865672156214714, + -0.018709750846028328, + -0.005825904663652182, + 0.03455430269241333, + 0.003980238921940327, + -0.1670220047235489, + 0.018050754442811012, + -0.03499362990260124, + 0.024277787655591965, + -0.008409359492361546, + -0.013342277146875858, + 0.026856467127799988, + -0.007568900939077139, + 0.01092595886439085, + 0.024449698626995087, + 0.007158222608268261, + -0.07636711001396179, + 0.020037291571497917, + -0.010859104804694653, + 0.005945288110524416, + -0.016856921836733818, + -0.004694151226431131, + 0.022463161498308182, + 0.007124795112758875, + -0.012062488123774529, + 0.010830452665686607, + -0.02614971622824669, + 0.037362195551395416, + 0.003612538566812873, + -0.03961615264415741, + -0.030256502330303192, + 0.0028007321525365114, + -0.002511824481189251, + -0.04114425927400589, + -0.0019483354408293962, + -0.0008613505051471293, + -0.018566491082310677, + -0.013113060966134071, + 0.07281426340341568, + -0.018222665414214134, + -0.030332908034324646, + 0.04450609162449837, + -0.051955610513687134, + -0.0023888596333563328, + 0.023513734340667725, + 0.04015098884701729, + 0.02838457189500332, + -0.012482717633247375, + 0.017993450164794922, + -0.01471757236868143, + -0.05073312669992447, + 0.002834159415215254, + -0.001549595152027905, + -0.038775693625211716, + -0.012769237160682678, + 0.017095688730478287, + -0.002781630726531148, + -0.02169910818338394, + 0.00044828426325693727, + -0.05394214764237404, + -0.005763825494796038, + -0.03825995698571205, + 0.006900354288518429, + 0.029186828061938286, + -0.029893577098846436, + -0.03549026697874069, + -0.05126796290278435, + 0.016856921836733818, + -0.05596688762307167, + -0.05428597331047058, + -0.021718209609389305, + 0.026226121932268143, + -0.006236583460122347, + 0.005773376207798719, + -0.04034200310707092, + -0.01861424371600151, + -0.041602689772844315, + 0.024889029562473297, + 0.00616017822176218, + 0.007067491300404072, + 0.026627250015735626, + -0.011384391225874424, + -0.041717298328876495, + -0.057303983718156815, + -0.09481898695230484, + -0.009388302452862263, + 0.008614698424935341, + 0.01929233968257904, + -0.016255229711532593, + -0.015042295679450035, + -0.06674003601074219, + 0.015567582100629807, + -0.04244314879179001, + 0.01835637539625168, + 0.22768782079219818, + -0.019330542534589767, + 0.014134982600808144, + 0.021890120580792427, + 0.079767145216465, + -0.037839729338884354, + -0.005209886934608221, + -0.03331271559000015, + 0.041984718292951584, + -0.033599235117435455, + -0.016131071373820305, + 0.023456430062651634, + 0.05080953240394592, + 0.016455793753266335, + 0.01947380229830742, + -0.016006913036108017, + -0.02408677339553833, + -0.0075211478397250175, + 0.10406403243541718, + 0.015405220910906792, + 0.004266758915036917, + 0.015519828535616398, + -0.012606875970959663, + -0.0021811327897012234, + -0.04011278599500656, + -0.018050754442811012, + -0.010505730286240578, + 0.05676914379000664, + 0.036273419857025146, + -0.009970893152058125, + -0.05012188106775284, + 0.005988266319036484, + 0.02217664010822773, + -0.01684737019240856, + -0.08610878139734268, + 0.06028378754854202, + 0.008457113057374954, + 0.03957794979214668, + -0.0020235469564795494, + 0.004223781172186136, + -0.03558577224612236, + -0.027601417154073715, + -0.0032400626223534346, + 0.0069481078535318375, + 0.0015484013129025698, + -0.03226214274764061, + -0.0018647670513018966, + -0.009187738411128521, + 0.030810441821813583, + -0.006967209279537201, + -0.0004461950738914311, + 0.036980170756578445, + -0.05783881992101669, + 0.0055441600270569324, + -0.003459727857261896, + -0.05810623615980148, + -0.007306257728487253, + -0.0014767713146284223, + 0.018136709928512573, + 0.011594505980610847, + 0.03824085742235184, + 0.001497066579759121, + -0.05608149617910385, + 0.0057112970389425755, + 0.041602689772844315, + -0.06868837028741837, + -0.013628796674311161, + -0.04339821636676788, + 0.04813534393906593, + -0.0016522648511454463, + 0.0503510981798172, + 0.012282153591513634, + -0.012110241688787937, + 0.024717116728425026, + 0.03646443411707878, + 0.023628341034054756, + 0.010419773869216442, + 0.10498089343309402, + -0.030428415164351463, + -0.006647261790931225, + -0.059099506586790085, + -0.025213751941919327, + -0.03432508558034897, + -0.027123885229229927, + 0.02479352243244648, + -0.025805892422795296, + -0.010696743614971638, + -0.007225077133625746, + 0.001349031226709485, + -0.021106965839862823, + -0.028422774747014046, + -0.006284336559474468, + 0.045957792550325394, + 0.008738857693970203, + 0.011737765744328499, + 0.004694151226431131, + 0.013036656193435192, + 0.01182372123003006, + -0.018165362998843193, + 0.015252409502863884, + -0.008867790922522545, + -0.0031302301213145256, + -0.01130798552185297, + -0.026512641459703445, + -0.017477715387940407, + 0.02011369727551937, + 0.009479033760726452, + -0.011995633132755756, + -0.011393941938877106, + 0.038336362689733505, + 0.014049026183784008, + 0.02338002435863018, + -0.03342732414603233, + -0.00019235633953940123, + 0.03178460896015167, + -0.018155811354517937, + 9.15520649868995e-05, + 0.032395850867033005, + 0.017630524933338165, + 0.0002510033664293587, + -0.0461106039583683, + 0.025213751941919327, + -0.019846279174089432, + -0.039043113589286804, + -0.0008822425734251738, + -0.03340822085738182, + -0.014593414030969143, + -0.020572129637002945, + 0.019044023007154465, + 0.03056212328374386, + -0.01098326314240694, + -0.007091367617249489, + 0.030160995200276375, + 0.029778968542814255, + -0.009168636985123158, + 0.00405186926946044, + -0.022959794849157333, + 0.016197925433516502, + 0.02355193719267845, + -0.01272148359566927, + -0.05012188106775284, + -0.0013048594119027257, + 0.0065040020272135735, + 0.0011514518409967422, + 0.011479897424578667, + -0.030313806608319283, + 0.010801800526678562, + 0.05023648962378502, + -0.00217993906699121, + 0.04488812014460564, + -0.03476441651582718, + 0.05084773153066635, + 0.08114244043827057, + -0.035222847014665604, + 0.028785699978470802, + -0.018757503479719162, + 0.003922935109585524, + -0.011183827184140682, + -0.008275650441646576, + -0.013495087623596191, + 0.011575404554605484, + 0.005706521682441235, + 0.02544296719133854, + 0.04462070018053055, + 0.021297980099916458, + 0.09267964214086533, + 0.0009353681234642863, + 0.06536474078893661, + 0.012520920485258102, + -0.02905311807990074, + 0.0632253959774971, + -0.039692558348178864, + -0.0066950153559446335, + 0.040838636457920074, + 0.059863559901714325, + 0.027219392359256744, + 0.013963070698082447, + 0.015491176396608353, + -0.03537565842270851, + 0.032395850867033005, + 0.034745313227176666, + 0.07529743015766144, + -0.03405766561627388, + 0.014154083095490932, + -0.05050390958786011, + -0.05187920480966568, + 0.025538474321365356, + -0.013724303804337978, + 0.05260505527257919, + -0.0005017083021812141, + -0.029989084228873253, + 0.06926140934228897, + -0.025977805256843567, + 0.005391349550336599, + 0.009670047089457512, + 0.013428233563899994, + 0.026359831914305687, + 0.016217026859521866, + 0.022482262924313545, + -0.0013896215241402388, + 0.004601032007485628, + -0.06318718940019608, + -0.01967436634004116, + -0.016312533989548683, + 0.00832340307533741, + -0.041831906884908676, + -0.0010965355904772878, + 0.0004939484060741961, + 0.006145852152258158, + -0.029798069968819618, + -0.029014917090535164, + -0.04041840881109238, + 0.03132617846131325, + 0.014268691651523113, + -0.023017099127173424, + -0.02017100155353546, + 0.015271510928869247, + 0.05497362092137337, + 0.03459250554442406, + -0.03466890752315521, + -0.01089730765670538, + 0.040953245013952255, + 0.009951791726052761, + -0.024698015302419662, + 0.01870019920170307, + -0.016933327540755272, + -0.014364197850227356, + -0.06693105399608612, + 0.06708385795354843, + -0.014612515456974506, + 0.015252409502863884, + -0.02261597104370594, + 0.04099144786596298, + 0.0339430570602417, + 0.06047480180859566, + 0.017993450164794922, + -0.007167772855609655, + 0.02381935529410839, + 0.017277151346206665, + 0.008652901276946068, + -0.023742949590086937, + 0.01658950187265873, + -0.019808076322078705, + 0.021106965839862823, + -0.008495314978063107, + 0.03214753419160843, + -0.059596139937639236, + 0.03881389647722244, + 0.03170820325613022, + 0.04442968592047691, + -0.04374203830957413, + -0.010763597674667835, + 0.026302527636289597, + -0.007024513091892004, + 0.006594733335077763, + -0.012673730961978436, + -0.016217026859521866, + -0.01905357465147972, + -0.04232854023575783, + -0.0032997543457895517, + -0.005377023480832577, + 0.03717118129134178, + -0.004715640097856522, + 0.026245223358273506, + -0.0019495291635394096, + -0.01098326314240694, + 0.014660269021987915, + 0.004543728195130825, + -0.03079134039580822, + -0.05340731143951416, + 0.003428688272833824, + -0.005377023480832577, + -0.05711296945810318, + -0.06020738556981087, + 0.04015098884701729, + -0.0052671912126243114, + -0.05749499425292015, + 0.02364744246006012, + 0.0023554323706775904, + 0.03440149128437042, + -0.04817354679107666, + -0.0299126785248518, + 0.010906857438385487, + 0.007922275923192501, + 0.04867018386721611, + -0.016761414706707, + 0.024621611461043358, + 0.012272602878510952, + 0.014736673794686794, + -0.002671798225492239, + 0.014851282350718975, + -0.02593960240483284, + -0.019550208002328873, + 0.04947243630886078, + -0.016226576641201973, + 0.002547639422118664, + 0.018986718729138374, + 0.00922116544097662, + -0.02794524095952511, + -0.011584955267608166, + -0.008566944859921932, + 0.01539567019790411, + -0.011565853841602802, + -0.02311260625720024, + 0.004230943974107504, + 0.005548935383558273, + -0.00771216070279479, + 0.017917044460773468, + -0.022845188155770302, + 0.03573858365416527, + 0.00309919030405581, + -0.010114152915775776, + 0.02870929427444935, + -0.022367654368281364, + 0.030313806608319283, + 0.015558031387627125, + 0.00380832701921463, + 0.0012403924483805895, + 0.012883845716714859, + 0.033159904181957245, + 0.0012463616440072656, + 0.004001728259027004, + -0.03258686512708664, + 0.012807440012693405, + -0.02981717139482498, + 0.007306257728487253, + -0.02817445807158947, + 0.03067673183977604, + -0.012349007651209831, + -0.0007819606107659638, + -0.011613607406616211, + 0.014450154267251492, + -0.03350372985005379, + 0.0079557029530406, + 0.041220664978027344, + -0.016856921836733818, + 0.01994178630411625, + -0.03808804601430893, + 0.036750953644514084, + 0.040685828775167465, + -0.001232035574503243, + -0.027601417154073715, + 0.04584318399429321, + -0.00506662717089057, + 0.015109149739146233, + -0.02861378900706768, + 0.005424777045845985, + 0.011088320054113865, + 0.0527578666806221, + 0.012091140262782574, + -0.010200108401477337, + 0.0020032518077641726, + -0.02169910818338394, + -0.04928142577409744, + -0.014975440688431263, + -0.02087775059044361, + -0.03587229177355766, + 0.002846097806468606, + -0.002714776201173663, + -0.029110422357916832, + -0.026741858571767807, + 0.03052392043173313, + 0.006446697749197483, + 0.02294069342315197, + 0.00476339366286993, + 0.01520465686917305, + 0.0076787336729466915, + -0.005061851814389229, + 0.05149718001484871, + -0.018566491082310677, + 0.008266099728643894, + -0.02861378900706768, + -0.0013239607214927673, + 0.01528106164187193, + -0.014411951415240765, + 0.036750953644514084, + -0.03770602121949196, + -0.012272602878510952, + 0.020724941045045853, + 0.01051528099924326, + 0.005200336221605539, + -0.059748951345682144, + -0.01321811880916357, + 0.01329452358186245, + 0.07025468349456787, + -0.028460977599024773, + -0.018690649420022964, + -0.0063082133419811726, + 0.02729579620063305, + 0.029129523783922195, + -0.029034016653895378, + 0.0020175776444375515, + -0.03655993938446045, + -0.03514644131064415, + -0.14226669073104858, + -0.00419035367667675, + -0.033159904181957245, + -0.04840276390314102, + -0.03455430269241333, + -0.018900763243436813, + -0.022138439118862152, + 0.025385664775967598, + -0.007320583797991276, + -0.02452610433101654, + 0.038832999765872955, + -0.00776468962430954, + 0.021622702479362488, + -0.00658040726557374, + 0.006236583460122347, + 0.0015663087833672762, + -0.029396941885352135, + -0.041602689772844315, + 0.0021560622844845057, + 0.04374203830957413, + -0.03591049462556839, + 0.003634027438238263, + 0.045193739235401154, + 0.00340481149032712, + 0.02572948858141899, + -0.024296889081597328, + -0.014297343790531158, + 0.008800936862826347, + -0.03356103226542473, + 0.03417227417230606, + 0.02011369727551937, + -0.05829725041985512, + 0.022100236266851425, + 0.09290885925292969, + -0.004782494623214006, + -0.03442059084773064, + -0.0031708204187452793, + -0.028651991859078407, + 0.018900763243436813, + 0.028460977599024773, + 0.014555211178958416, + 0.009655720554292202, + -0.002994133159518242, + -0.002391247311607003, + -0.043894849717617035, + 0.07774240523576736, + 0.009316672571003437, + -0.01092595886439085, + -0.06570856273174286, + 0.027716025710105896, + -0.03976896405220032, + -0.004694151226431131, + 0.03209022805094719, + 0.014201836660504341, + 0.026073312386870384, + -0.011250682175159454, + -0.010916408151388168, + -0.031956519931554794, + -0.026780061423778534, + 0.06467709690332413, + -0.046530831605196, + 0.0037677367217838764, + -0.016856921836733818, + -0.03056212328374386, + -0.004538952838629484, + 0.009149535559117794, + -0.021068764850497246, + 0.0013585819397121668, + 0.003115904051810503, + -0.03726669028401375, + 0.0010058042826130986, + -0.03094414994120598, + -0.0036316397599875927, + -0.00885346531867981, + 0.005128706339746714, + -0.02681826427578926, + 0.05145897716283798, + -0.0135428411886096, + -0.029301436617970467, + -0.017477715387940407, + -0.0036220892798155546, + -0.010887756943702698, + 0.010887756943702698, + 0.010859104804694653, + 0.010018645785748959, + 0.004154538735747337, + -0.0054200016893446445, + -0.002564353169873357, + -0.009584090672433376, + -0.02544296719133854, + -0.04091504216194153, + -0.009989994578063488, + 0.023131707683205605, + 0.03644533082842827, + -0.0503510981798172, + -0.0012559122405946255, + -0.00791272521018982, + -0.039539746940135956, + 0.002733877394348383, + -0.03646443411707878, + -0.012425413355231285, + -0.03329361230134964, + 0.023093504831194878, + 0.0027649172116070986, + -0.028804801404476166, + 0.0315362922847271, + 0.026340730488300323, + -0.010362470522522926, + 0.013227669522166252, + -0.029549753293395042, + -0.031249770894646645, + 0.0206485353410244, + -0.02767782285809517, + 0.014793978072702885, + -0.02861378900706768, + 0.035719480365514755, + 0.0053626978769898415, + -0.032892484217882156, + -0.0668928474187851, + -0.024277787655591965, + 0.04125886783003807, + 0.04622521251440048, + -0.007091367617249489, + -0.04423867538571358, + -0.0025261505506932735, + -0.003681780770421028, + 0.03205202892422676, + 0.0025571901351213455, + 0.015452973544597626, + 0.017238948494195938, + 0.01608331687748432, + -0.005138257052749395, + -0.029034016653895378, + 0.027887938544154167, + -0.0021500932052731514, + 0.029244132339954376, + -0.014316445216536522, + 0.05776241421699524, + -0.04049481451511383, + -0.0702928826212883, + 0.027964342385530472, + 0.026856467127799988, + -0.006394169293344021, + -0.015414770692586899, + -0.002048617461696267, + 0.012692832387983799, + 0.002872362034395337, + -0.03478351607918739, + 0.03061942756175995, + -0.045193739235401154, + 0.021106965839862823, + -0.013370929285883904, + 0.01702883280813694, + 0.05650172755122185, + 0.004622521344572306, + 0.01844233088195324, + 0.0007109275320544839, + -0.005458204075694084, + -0.0030060713179409504, + 0.03189921751618385, + 0.05860287323594093, + -0.062155719846487045, + 0.005085728596895933, + -0.025099143385887146, + -0.015319264493882656, + 0.024717116728425026, + 0.017535017803311348, + 0.0065613058395683765, + -0.04737129062414169, + 0.008027332834899426, + -0.01620747707784176, + 0.010648990049958229, + -0.022596869617700577, + 0.052948880940675735, + 0.010438875295221806, + -0.019597962498664856, + 0.035566672682762146, + 0.0009741677204146981, + 0.08305256813764572, + 0.007430416531860828, + 0.01632208377122879, + 0.006742768455296755, + 0.010075950063765049, + 0.031211568042635918, + -0.025385664775967598, + 0.024220483377575874, + 0.06418045610189438, + 0.008920320309698582, + -0.023227214813232422, + -0.0010219210525974631, + -0.022157540544867516, + 0.03145988658070564, + 0.008461887948215008, + -0.02173731103539467, + 0.03302619606256485, + 0.03094414994120598, + 0.027639620006084442, + 0.04981626197695732, + -0.009627069346606731, + 0.026302527636289597, + 0.00696243392303586, + 0.02223394438624382, + -0.0050379750318825245, + -0.01111697219312191, + -0.003476441605016589, + -0.0102192098274827, + 0.04011278599500656, + -0.04534655064344406, + -0.05749499425292015, + -0.005190785508602858, + -0.037629615515470505, + -0.03117336705327034, + 0.023628341034054756, + -0.014106330461800098, + -0.0006061687017790973, + 0.01122203003615141, + 0.02855648472905159, + -0.017620975151658058, + -0.007196424994617701, + 0.022577768191695213, + -0.03111606277525425, + -0.014545660465955734, + -0.0172580499202013, + 0.0016355511033907533, + 0.03438238799571991, + -0.00606467155739665, + -0.025519372895359993, + -0.012406311929225922, + -0.03923412784934044, + -0.027162088081240654, + -0.03466890752315521, + -0.0046272967010736465, + -0.005921411328017712, + 0.04446788877248764, + 0.05008368194103241, + -0.055279240012168884, + 0.015873203054070473, + -0.015300163067877293, + -0.009598417207598686, + -0.001270238310098648, + 0.07930871099233627, + 0.020686738193035126, + -0.0019005821086466312, + 0.010935509577393532 + ] + } + }, + { + "type": "维修安全防护及注意事项汇总表", + "properties": { + "名称": "发动机的维修安全防护及注意事项汇总表", + "概述": "以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。", + "安全防护": "6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006 拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MT009 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MT017 修复连杆异常磨损 1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花", + "注意事项": "6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "内容": "6 维修安全防护及注意事项汇总表\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\n6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006 拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MT009 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MT017 修复连杆异常磨损 1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\n6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006 拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MT009 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MT017 修复连杆异常磨损 1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_a4fb7669-e561-486c-83e2-c6e0e7d19fec.pdf#page=60\"}]", + "embedding": [ + -0.0020940490067005157, + 0.015214098617434502, + -0.05091376602649689, + 0.008104180917143822, + -0.012325108051300049, + -0.047124311327934265, + 0.023937348276376724, + -0.005130772013217211, + -0.02125471457839012, + 0.015955105423927307, + -0.020860761404037476, + 0.022080140188336372, + 0.008380886167287827, + -0.007241235580295324, + 0.020485568791627884, + -0.07323778420686722, + -0.0002764121163636446, + 0.022080140188336372, + -0.02288680709898472, + -0.03924524411559105, + 0.009989527985453606, + 0.02194882184267044, + 0.012719061225652695, + 0.01195929478853941, + -0.01856270059943199, + 0.024518897756934166, + -0.0029968584422022104, + -0.02943393401801586, + -0.0007884926744736731, + -0.011499682441353798, + -0.051964305341243744, + -0.0376131534576416, + -0.06295748054981232, + -0.008094800636172295, + -0.019078591838479042, + -0.02885238453745842, + -0.030353158712387085, + -0.01829068548977375, + -0.05886786803603172, + 0.029039980843663216, + -0.032604318112134933, + -0.05946817621588707, + 0.015317277051508427, + -0.03251052275300026, + 0.009633094072341919, + -0.028083236888051033, + -0.012137511745095253, + -0.023243241012096405, + -0.00658464664593339, + -0.08359312266111374, + -0.026807578280568123, + -0.030972227454185486, + 0.02540060319006443, + -0.032604318112134933, + 0.028289593756198883, + 0.055378567427396774, + 0.0007515595643781126, + 0.026901377364993095, + -0.060030966997146606, + 0.011687278747558594, + -0.02556944079697132, + 0.02519424632191658, + -0.05650414898991585, + 0.0021843300200998783, + 0.005463756155222654, + 0.07526382803916931, + 0.0039278073236346245, + -0.020766962319612503, + -0.0032149397302418947, + -0.05556616559624672, + 0.038945090025663376, + 0.002126878360286355, + 0.05125143751502037, + 0.002325027482584119, + -0.041984159499406815, + 0.010993171483278275, + 0.04723686724901199, + -0.009942629374563694, + -0.02071068435907364, + -0.00024153085541911423, + -0.02333703823387623, + 0.03219160810112953, + -0.006875421851873398, + -0.005459066014736891, + 0.007677398156374693, + 0.022005101665854454, + -0.0347241647541523, + 0.029940444976091385, + -0.004134163726121187, + -0.0604061633348465, + -0.002431723289191723, + -0.02063564583659172, + 0.02260541170835495, + 0.012090612202882767, + -0.04596120864152908, + -0.014079137705266476, + -0.054102908819913864, + -0.01649913564324379, + 0.015120300464332104, + 0.009225071407854557, + 0.04220927506685257, + 0.004274861421436071, + 0.026526184752583504, + -0.035361990332603455, + 0.050988804548978806, + -0.024031147360801697, + 0.03868245333433151, + 0.02149859070777893, + -0.00514953164383769, + -0.011340225115418434, + -0.015504873357713223, + 0.026207270100712776, + -0.025794556364417076, + 0.013019216246902943, + -0.009529916569590569, + -0.02840215153992176, + 0.02650742419064045, + -0.036806486546993256, + 0.04258446767926216, + 0.0031938350293785334, + 0.010430380702018738, + -0.01943502575159073, + -0.010524178855121136, + -0.0682477056980133, + 0.022492853924632072, + -0.02450013905763626, + -0.01438867300748825, + 0.002670909045264125, + 0.01697750762104988, + 0.02087952196598053, + 0.009201621636748314, + 0.0028350562788546085, + -0.005374647676944733, + 0.020035335794091225, + -0.026770059019327164, + -0.00762580893933773, + 0.014369913376867771, + -0.0035971682518720627, + -0.0017809969140216708, + -0.04183408245444298, + 0.004242032300680876, + -0.0004686988249886781, + 0.014707586728036404, + 0.004947864916175604, + 8.544446609448642e-05, + -0.003435365855693817, + 0.00048276857705786824, + -0.04794973507523537, + -0.011687278747558594, + 0.004359280224889517, + -0.02346835657954216, + 0.02988416701555252, + 0.06524615734815598, + -0.006312631536275148, + 0.02273673005402088, + 0.006495538167655468, + -0.08419343084096909, + 0.004638330079615116, + -0.02433130145072937, + -0.01119952742010355, + 0.038982611149549484, + 0.026376105844974518, + -0.03690028563141823, + 0.011724798008799553, + 0.046036247164011, + -0.03669393062591553, + -0.0005941541749052703, + -0.004544531926512718, + -0.039395321160554886, + 0.03132866322994232, + 0.02695765718817711, + -0.0032641838770359755, + -0.02857098914682865, + -0.02264293096959591, + -0.0024481378495693207, + -0.014050998724997044, + 0.021554868668317795, + 0.0345178060233593, + 0.02560696005821228, + -0.015411075204610825, + -0.0024528277572244406, + 0.025925874710083008, + 0.008357436396181583, + -0.011049450375139713, + 0.004169338382780552, + 0.012953557074069977, + 0.04258446767926216, + -0.03708788380026817, + 0.00884987786412239, + -0.003252458991482854, + -0.01728704199194908, + -0.0464489609003067, + -0.0017235453706234694, + 0.01313177403062582, + 0.0040849195793271065, + -0.0153078967705369, + 0.024350062012672424, + -0.0012217239709571004, + 0.0181875079870224, + 0.010308442637324333, + 0.038044627755880356, + -0.027933159843087196, + 0.0361686572432518, + 0.013403789140284061, + -0.025719517841935158, + 0.016930608078837395, + 0.008962435647845268, + -0.01860021986067295, + -0.016939988359808922, + -0.09199745953083038, + -0.026244789361953735, + -0.009445497766137123, + -0.007184956688433886, + -0.0012041367590427399, + -0.034630365669727325, + 0.008652901276946068, + 0.04213423654437065, + -0.038607414811849594, + 0.010055187158286572, + 0.005276159383356571, + -0.03607485815882683, + 0.05248957872390747, + 0.0021303959656506777, + -0.05943065881729126, + 0.02902122028172016, + -0.06119406968355179, + 0.01547673437744379, + 0.04941299185156822, + 0.03078463114798069, + 0.0287773460149765, + -0.056579187512397766, + 0.019453786313533783, + -0.02498789131641388, + -0.008188598789274693, + 0.07196212559938431, + 0.04250942915678024, + 0.0038363540079444647, + -0.012437665835022926, + 0.047124311327934265, + 0.016236500814557076, + 0.00655650720000267, + -0.07106165587902069, + -0.03592478111386299, + -0.02523176558315754, + -0.038494858890771866, + 0.03078463114798069, + 0.07575158029794693, + 0.008535653352737427, + -0.02626354806125164, + 0.029565252363681793, + 0.015889447182416916, + -0.02116091549396515, + -0.020992079749703407, + 0.030521994456648827, + 0.03237920254468918, + 0.011602860875427723, + 0.0336923822760582, + -0.020823242142796516, + 0.0012580709299072623, + -0.04138384759426117, + -0.005022903438657522, + 0.0670095682144165, + 0.008132319897413254, + 0.02146107144653797, + -0.010345961898565292, + 0.01594572514295578, + 0.01230634842067957, + -0.010899372398853302, + -0.01749339886009693, + 0.03153501823544502, + -0.0026122850831598043, + -0.02063564583659172, + 0.06070631742477417, + 0.0012674507452175021, + 0.014491850510239601, + 0.036431293934583664, + -0.02132975310087204, + 0.005407477263361216, + 0.08119188249111176, + -0.03690028563141823, + 0.03928276523947716, + 0.024687735363841057, + 0.025513160973787308, + -0.05950569733977318, + 0.014660688117146492, + -0.03768819198012352, + -0.06599654257297516, + -0.028289593756198883, + -0.016161462292075157, + -0.059205543249845505, + -0.035324472934007645, + -0.023562155663967133, + 0.08599436283111572, + -0.02712649293243885, + 0.004767302889376879, + 0.06108151003718376, + -0.0034611604642122984, + -0.1541295051574707, + 0.05076368898153305, + -0.008671660907566547, + 0.04228431358933449, + 0.002368409186601639, + 0.002391858957707882, + -0.00603123614564538, + -0.013263092376291752, + 0.007555460091680288, + -0.019866498187184334, + -0.041121214628219604, + -0.0764269232749939, + -0.005946817807853222, + -0.0011648586951196194, + 0.006959840189665556, + -0.01304735615849495, + -0.012203169986605644, + 0.009450187906622887, + 0.02782060205936432, + -0.047161828726530075, + -0.04100865498185158, + -0.025832075625658035, + 0.04333485662937164, + -0.011237046681344509, + -0.039020128548145294, + -0.04734942689538002, + 0.03288571536540985, + 0.0065002283081412315, + -0.05650414898991585, + -0.007616429124027491, + -0.028252074494957924, + -0.008141700178384781, + -0.00911251362413168, + 0.07139933109283447, + 0.012897278182208538, + -0.02560696005821228, + -0.007344413548707962, + -0.05627903342247009, + 0.027145253494381905, + -0.01960386335849762, + 0.039808034896850586, + 0.03748183697462082, + -0.00027465340099297464, + 0.005660732742398977, + -0.01866587996482849, + -0.02798943966627121, + 0.01573937013745308, + -0.025062929838895798, + -0.03526819497346878, + -0.0025302115827798843, + -0.04179656133055687, + -0.015411075204610825, + -0.0195288248360157, + 0.044985707849264145, + -0.035605866461992264, + 0.006443949416279793, + -0.030559515580534935, + -0.005609143525362015, + 0.04250942915678024, + 0.0048728263936936855, + -0.033354707062244415, + -0.03836354240775108, + -0.011743558570742607, + -0.057066939771175385, + -0.020373009145259857, + -0.009084373712539673, + 0.021235955879092216, + -0.017212003469467163, + 0.009539295919239521, + -0.02104835771024227, + -0.007780576124787331, + -0.009426738135516644, + 0.032566800713539124, + -0.010965031571686268, + -0.02326199971139431, + -0.006171933840960264, + -0.0033743970561772585, + -0.032735638320446014, + -0.02042928896844387, + -0.10445388406515121, + -0.018281305208802223, + 0.027032695710659027, + 0.002013147808611393, + -0.059130504727363586, + -0.025419363752007484, + -0.01311301440000534, + 0.008699800819158554, + 0.025719517841935158, + -0.014857664704322815, + 0.18024298548698425, + -0.02943393401801586, + -0.051101360470056534, + 0.02663874253630638, + 0.06562135368585587, + -0.006092205177992582, + 0.006941080559045076, + -0.03275439515709877, + 0.050538569688797, + -0.04168400168418884, + -0.022136420011520386, + 0.012128131464123726, + 0.036187417805194855, + 0.0012451736256480217, + 0.04828741028904915, + -0.02905874140560627, + -0.010965031571686268, + 0.02663874253630638, + 0.13116766512393951, + -0.019144250079989433, + 0.010233404114842415, + 0.03406757488846779, + -0.028420912101864815, + 0.01580502837896347, + -0.05207686498761177, + -0.052714694291353226, + -0.022042620927095413, + 0.026582462713122368, + -0.027689283713698387, + -0.014792005531489849, + -0.008132319897413254, + 0.015260997228324413, + 0.017999909818172455, + -0.026807578280568123, + -0.09499900788068771, + 0.01867525838315487, + -0.02009161375463009, + 0.005810810253024101, + 0.008376196026802063, + 0.0042279623448848724, + -0.019716421142220497, + -0.062244608998298645, + -0.028908662497997284, + 0.025738278403878212, + 0.01331937126815319, + -0.05860523134469986, + -0.004295966122299433, + 0.008287088014185429, + -0.018318824470043182, + -0.0014679448213428259, + 0.01421983540058136, + 0.03219160810112953, + -0.033636100590229034, + 0.007714917417615652, + -0.0439726859331131, + 0.019547583535313606, + 0.004401489160954952, + -0.037219200283288956, + 0.017249522730708122, + 0.036806486546993256, + 0.01116200815886259, + -0.025719517841935158, + -0.03247300162911415, + 0.0559038408100605, + 0.011856116354465485, + 0.01621774211525917, + 0.0012264138786122203, + -0.019753940403461456, + -0.010449140332639217, + 0.03357982262969017, + -0.03119734302163124, + 0.0011396503541618586, + -0.009257900528609753, + 0.03221036493778229, + -0.00028989562997594476, + 0.015570532530546188, + 0.023730991408228874, + 0.07177452743053436, + 0.01337565016001463, + -0.008254257962107658, + -0.0509512834250927, + -0.0267137810587883, + -0.02433130145072937, + -0.02761424519121647, + 0.006448639091104269, + 0.004689919296652079, + -0.033879976719617844, + -0.001348351826891303, + -0.009651853702962399, + -0.008104180917143822, + -0.011452782899141312, + -0.0034048815723508596, + 0.008742009289562702, + 0.013722703792154789, + -0.01756843738257885, + 0.015392315573990345, + 0.020279211923480034, + 0.004159958567470312, + -0.021273475140333176, + -0.013563246466219425, + -0.0019979055505245924, + -0.03498679772019386, + -0.022943085059523582, + 0.02018541283905506, + 0.0016414717538282275, + 0.04085857793688774, + -0.03579346463084221, + 0.01442619226872921, + -0.017474640160799026, + 0.006561197340488434, + -0.015336036682128906, + 0.02461269684135914, + 0.010674256831407547, + 0.018553320318460464, + 0.02268045023083687, + -0.015101540833711624, + 0.015411075204610825, + 0.042884621769189835, + 0.03624369576573372, + 0.02174246683716774, + -0.06603406369686127, + 0.04656152054667473, + -0.005792050622403622, + -0.010233404114842415, + -0.0008840498048812151, + 0.0034119163174182177, + -0.02260541170835495, + -0.044047724455595016, + -0.00461488077417016, + 0.04187159985303879, + 0.0022265391889959574, + 0.005688872188329697, + 0.003967671655118465, + 0.007245925255119801, + 0.003819939447566867, + -0.004385074600577354, + -0.04472307115793228, + 0.025100449100136757, + 0.05564120411872864, + -0.03519315645098686, + -0.05215190351009369, + 0.010055187158286572, + -0.010308442637324333, + -0.029133779928088188, + -0.014304254204034805, + -0.02395610883831978, + 0.015082781203091145, + -0.036806486546993256, + -0.025663238018751144, + 0.028214555233716965, + -0.007621118798851967, + 0.051926787942647934, + 0.053577639162540436, + -0.0682101845741272, + 0.04858756437897682, + -0.011312085203826427, + -0.033467262983322144, + -0.0053511979058384895, + -0.013253712095320225, + -0.04247191175818443, + 0.009501776657998562, + -0.012015573680400848, + -0.010580457746982574, + 0.041984159499406815, + 0.057929884642362595, + 0.03485548123717308, + 0.026732539758086205, + 0.04491066932678223, + 0.032041531056165695, + -0.014585649594664574, + 0.03710664063692093, + -0.015035881660878658, + -0.014613788574934006, + 0.018168747425079346, + 0.05380275472998619, + -0.00657526683062315, + 0.005989027209579945, + -0.03965795785188675, + -0.01261588279157877, + 0.039020128548145294, + 0.022380296140909195, + 0.060893911868333817, + -0.023599674925208092, + -0.006017166655510664, + -0.023580914363265038, + 0.030840909108519554, + 0.05905546620488167, + -0.002710773376747966, + 0.032979514449834824, + 0.014707586728036404, + 0.001977973384782672, + 0.07076150178909302, + 0.008990575559437275, + 0.0007673880318179727, + 0.0020940490067005157, + -0.025456883013248444, + 0.030390677973628044, + 0.013394409790635109, + 0.04701175168156624, + -0.03206028789281845, + 0.0019240394467487931, + -0.01798115111887455, + 0.014970222488045692, + 0.027351610362529755, + -0.01790611259639263, + -0.05654166638851166, + -0.0517767108976841, + -0.011640380136668682, + 0.006603406276553869, + -0.009633094072341919, + 0.011321465484797955, + -0.03502431884407997, + -0.02992168627679348, + 0.025738278403878212, + -0.033467262983322144, + -0.0039207725785672665, + 0.0018314134795218706, + 0.06610910594463348, + -0.011856116354465485, + -0.046749114990234375, + 0.016377197578549385, + 0.016696112230420113, + 0.11330845206975937, + -0.0372004397213459, + 0.005444996524602175, + -0.05515345185995102, + 0.004532807040959597, + -0.0390576496720314, + 0.02029797062277794, + -0.019022313877940178, + 0.017108825966715813, + 0.02646990492939949, + 0.04213423654437065, + 0.02346835657954216, + 0.047612059861421585, + 0.028252074494957924, + 0.02782060205936432, + 0.02264293096959591, + 0.04862508550286293, + -0.013272471725940704, + 0.003433021018281579, + 0.033879976719617844, + -0.012690922245383263, + 0.020973319187760353, + -0.006903561297804117, + 0.03309207037091255, + -0.019510064274072647, + 0.009140652604401112, + 0.009914489462971687, + 0.05158911272883415, + -0.043672528117895126, + 0.012934797443449497, + 0.040746018290519714, + -0.02934013493359089, + -0.00864352099597454, + -0.01890975423157215, + -0.007949413731694221, + 0.029809128493070602, + -0.036149900406599045, + -0.024256262928247452, + -0.0008371506119146943, + 0.03324214741587639, + -0.015336036682128906, + 0.004073195159435272, + -9.20579907415231e-07, + -0.0005047525628469884, + -0.0011255806311964989, + -0.0021374307107180357, + -0.02650742419064045, + -0.03669393062591553, + 0.0014046308351680636, + -0.032566800713539124, + -0.03033439815044403, + -0.03161005675792694, + -0.022924326360225677, + 0.004839996807277203, + -0.01791549287736416, + 0.01753091812133789, + 0.02964029088616371, + 0.001431597862392664, + -0.010233404114842415, + -0.04506074637174606, + -0.0005718770553357899, + -0.0014773246366530657, + 0.0616443008184433, + 0.02692013792693615, + 0.035043079406023026, + -0.04168400168418884, + -0.01897541433572769, + -0.010514799505472183, + -0.0045656366273760796, + -0.0030765871051698923, + -0.03181641176342964, + 0.0380258671939373, + -0.03074711188673973, + 0.02067316509783268, + -0.007236545439809561, + 0.011903014965355396, + -0.004230307415127754, + -0.016789911314845085, + 0.014473090879619122, + -0.0089389868080616, + -0.011330844834446907, + -0.008709180168807507, + 0.029940444976091385, + 0.003620617790147662, + -0.004617225844413042, + -0.035943541675806046, + 0.0020377698820084333, + 0.023243241012096405, + 0.0334860235452652, + -0.023130683228373528, + 0.042809583246707916, + 0.02042928896844387, + 0.009539295919239521, + 0.008591932244598866, + 0.0092485211789608, + -0.004159958567470312, + -0.024837812408804893, + -0.008976506069302559, + 0.004073195159435272, + -0.0049197254702448845, + -0.04340989515185356, + 0.02026045136153698, + -0.06194445490837097, + 0.04258446767926216, + -0.053127408027648926, + 0.011827976442873478, + -0.01206247229129076, + -0.01611456274986267, + -0.02643238566815853, + -0.01095565129071474, + 0.010908752679824829, + 0.02650742419064045, + 0.040708500891923904, + 0.005065112840384245, + 0.012437665835022926, + -0.03419889137148857, + 0.035906024277210236, + -0.05286477133631706, + -0.003203214844688773, + -0.011518442071974277, + 0.03523067384958267, + 0.032116569578647614, + 0.03500555828213692, + -0.03992059454321861, + -0.011415263637900352, + 0.00572170177474618, + -0.0024106185883283615, + -0.015298517420887947, + -0.012559603899717331, + -0.030803389847278595, + 0.0047696479596197605, + -0.05973081290721893, + 0.004725093953311443, + 0.038532376289367676, + -0.0066972048953175545, + -0.005060423165559769, + -0.014998362399637699, + -0.0036792417522519827, + 0.020316731184720993, + -0.016958748921751976, + -0.00656588701531291, + 0.04048338532447815, + 0.009886350482702255, + -0.001996733248233795, + 0.004035675432533026, + -0.0028655407950282097, + -0.003782419953495264, + -0.016546035185456276, + -0.0181875079870224, + 0.0355495885014534, + -0.002427033381536603, + 0.038569897413253784, + -0.042884621769189835, + 0.029377654194831848, + -0.036637648940086365, + -0.03434896841645241, + 0.04007067158818245, + 0.015926966443657875, + -0.006481468677520752, + -0.08862071484327316, + -0.01753091812133789, + 0.0003277081123087555, + 0.05541608855128288, + 0.028589747846126556, + -0.02782060205936432, + -0.01142464391887188, + -0.00045287032844498754, + 0.02112339623272419, + -0.03485548123717308, + -0.0058154999278485775, + -0.004579706117510796, + -0.032079048454761505, + -0.13244332373142242, + -0.029696568846702576, + 0.01867525838315487, + -0.03448028862476349, + -0.025456883013248444, + -0.033636100590229034, + -0.02050432749092579, + 0.013769603334367275, + -0.0043053459376096725, + -0.005585694219917059, + 0.02232401631772518, + -0.029358895495533943, + 0.06517112255096436, + -0.01011146605014801, + 0.019960297271609306, + 0.02433130145072937, + 0.016921229660511017, + -0.04359748959541321, + -0.00938452873378992, + 0.06066879630088806, + -0.024256262928247452, + -0.013985339552164078, + 0.0031586606055498123, + 0.03367362171411514, + 0.023655952885746956, + -0.02346835657954216, + -0.008629451505839825, + 0.011302705854177475, + -0.023243241012096405, + 0.005055733025074005, + 0.03196648880839348, + 0.007152127102017403, + 0.025325564667582512, + 0.027689283713698387, + 0.02547564171254635, + -0.031009746715426445, + -0.01257836353033781, + 0.01649913564324379, + 0.014116656966507435, + 0.011058829724788666, + 0.01528913713991642, + -0.003946566954255104, + -0.02556944079697132, + -0.006364220753312111, + -0.01977270096540451, + 0.07834041118621826, + -0.0035690285731106997, + 0.016827430576086044, + -0.047574542462825775, + 0.038945090025663376, + -0.010524178855121136, + -0.028420912101864815, + 0.05781732499599457, + -0.01278472039848566, + 0.003043757751584053, + 0.003972361795604229, + 0.0074429018422961235, + -0.0021350858733057976, + -0.03962044045329094, + 0.08787032961845398, + -0.06145670264959335, + 0.0060687558725476265, + -0.02243657410144806, + -0.023562155663967133, + 0.04491066932678223, + -0.0008412543102167547, + -0.049788184463977814, + 0.033804938197135925, + 0.026770059019327164, + -0.036562610417604446, + 0.008094800636172295, + -0.016489757224917412, + -0.01622712053358555, + 0.01208123192191124, + -0.0038035246543586254, + -0.0075929793529212475, + 0.019097352400422096, + -0.0049666245467960835, + -0.003083622083067894, + 0.008212048560380936, + -0.00980193167924881, + 0.005308988969773054, + 0.005041663534939289, + 0.024143705144524574, + 0.0153078967705369, + 0.01477324590086937, + -0.042734544724226, + 0.0023719267919659615, + 0.037294238805770874, + 0.014060378074645996, + -0.03196648880839348, + -0.033598583191633224, + -0.019735179841518402, + 0.04581113159656525, + -0.006828522775322199, + 0.035118117928504944, + 0.00982069130986929, + -0.05038849264383316, + -0.014801385812461376, + -0.03693780675530434, + -0.018928514793515205, + -0.01497960276901722, + -0.001191239571198821, + -0.016180220991373062, + -0.00955805554986, + 0.0608188733458519, + 0.021386032924056053, + -0.04187159985303879, + 0.01577688939869404, + -0.02540060319006443, + 0.027670525014400482, + 0.011687278747558594, + 0.011846736073493958, + 0.00030660346965305507, + -0.05173918977379799, + -0.004915035329759121, + -0.042021676898002625, + -0.04419780150055885, + -0.04134633019566536, + 0.03200400993227959, + 0.015382935293018818, + 0.020410528406500816, + -0.032604318112134933, + -0.03423641249537468, + -0.013675805181264877, + 0.01829068548977375, + -0.01471696700900793, + 0.014050998724997044, + 0.019585102796554565, + -0.01811246946454048, + 0.013385029509663582, + -0.015692470595240593, + 0.001309660030528903, + 0.02391858957707882, + -0.005843639373779297, + 0.027201533317565918, + -0.011358984746038914, + 0.05327748507261276, + -0.036525093019008636, + -0.06464584916830063, + 0.011818597093224525, + 0.04596120864152908, + -0.0005179430008865893, + -0.04491066932678223, + 0.036562610417604446, + 0.002390686422586441, + -0.02695765718817711, + -0.02284928783774376, + 0.008066661655902863, + -0.011246426962316036, + 0.0328669548034668, + 0.017212003469467163, + 0.0011367192491889, + 0.07188708335161209, + -0.01694936864078045, + 0.020354250445961952, + 0.024143705144524574, + 0.02753920666873455, + -0.011865495704114437, + 0.011340225115418434, + 0.01192177552729845, + -0.05166415125131607, + 0.007410072721540928, + -0.00018261373043060303, + 0.01580502837896347, + 0.008362126536667347, + 0.027933159843087196, + 0.010252163745462894, + -0.03459284454584122, + -0.006045306101441383, + -0.025944633409380913, + -0.03622493892908096, + -0.009271970950067043, + 0.046261366456747055, + -0.010777434334158897, + -0.01440743263810873, + 0.016733631491661072, + -0.014792005531489849, + 0.035774704068899155, + -0.006242282688617706, + -0.0012522084871307015, + 0.07023623585700989, + 0.060931432992219925, + 0.019097352400422096, + -0.03836354240775108, + 0.04536090046167374, + 0.06948584318161011, + -0.016170842573046684, + -0.026601223275065422, + -0.01169665902853012, + 0.005595074035227299, + 0.029246337711811066, + -0.035080596804618835, + 0.0012088266666978598, + 0.029377654194831848, + -0.007452282123267651, + 0.007170886732637882, + 0.08081669360399246, + 0.017437120899558067, + 0.05068865045905113, + -0.029490213841199875, + -0.01860021986067295, + -0.017559058964252472, + 0.0008541515562683344, + 0.001385871204547584, + 0.04431035742163658, + 0.036393772810697556, + -0.007053638808429241, + -0.035493310540914536, + 0.025175487622618675, + -0.01804680936038494, + -0.011011931113898754, + 0.051026321947574615, + 0.01566433161497116, + -0.003245424246415496, + 0.04708679020404816, + 0.004049745388329029, + 0.0324542410671711, + -0.002584145637229085, + -0.016470996662974358, + 0.01577688939869404, + 0.0330733098089695, + 0.024650216102600098, + -0.016311539337038994, + 0.05369019880890846, + -0.02322448045015335, + 0.01997905597090721, + -0.02581331692636013, + -0.028796104714274406, + -0.08089172840118408, + 0.003892633132636547, + 0.008066661655902863, + -0.019003553315997124, + 0.027220292016863823, + 0.037012845277786255, + -0.0033368775621056557, + -0.025925874710083008, + 0.00695515051484108, + -0.01874091848731041, + 0.004183407872915268, + 0.050988804548978806, + 0.0390576496720314, + 0.016724253073334694, + 0.013403789140284061 + ] + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作", + "knowledge_source": "[]", + "embedding": [ + 0.006556016393005848, + -0.028802860528230667, + -0.04209503158926964, + 0.016288122162222862, + -0.00029672138043679297, + -0.03794241324067116, + 0.016534624621272087, + -0.005892356391996145, + -0.00455555459484458, + 0.00408862205222249, + -0.007698460482060909, + 0.0010387470247223973, + 0.0434981994330883, + 0.017890388146042824, + 0.007703200913965702, + -0.08532776683568954, + 0.020099429413676262, + 0.011462363414466381, + 0.003922706935554743, + -0.005588968750089407, + 0.023645272478461266, + -0.033429522067308426, + 0.04444628581404686, + 0.019274594262242317, + -0.009120590053498745, + -0.028897669166326523, + 0.013093071058392525, + 0.0007934297318570316, + 0.05093119293451309, + -0.020630357787013054, + -0.04930048808455467, + -0.00018887656915467232, + -0.03526880964636803, + -0.007034800015389919, + -0.05108288675546646, + -0.052144743502140045, + 0.0034083700738847256, + -0.0009350500768050551, + -0.05904681235551834, + 0.02804439142346382, + -0.04163995012640953, + -0.040729787200689316, + -0.0013166548451408744, + -0.018080005422234535, + -0.048504095524549484, + -0.015795117244124413, + -0.04266388341784477, + -0.029314827173948288, + -0.029978487640619278, + -0.011945887468755245, + -0.007423515431582928, + -0.010675451718270779, + 0.008110878057777882, + -0.052789442241191864, + 0.004586367402225733, + 0.03835957124829292, + -0.0026190883945673704, + 0.013064628466963768, + -0.060942985117435455, + -0.0002075420052278787, + -0.036747824400663376, + 0.039061155170202255, + -0.003147646551951766, + 0.008300495333969593, + 0.022298989817500114, + 0.07444373518228531, + 0.002018238650634885, + 0.007006357423961163, + -0.005669556092470884, + -0.056619711220264435, + -0.009224879555404186, + 0.006939991377294064, + -0.0006938806618563831, + -0.0068973274901509285, + -0.0474422387778759, + 0.05108288675546646, + 0.02684980258345604, + -0.031609196215867996, + -0.02999744936823845, + -0.018298065289855003, + -0.008570699952542782, + -0.018743665888905525, + -0.004050698596984148, + 0.024138277396559715, + -0.004406230989843607, + 0.02836674079298973, + -0.03866295889019966, + 0.01577615551650524, + -0.0511208102107048, + -0.07053761929273605, + 0.014780664816498756, + -0.000771505234297365, + -0.0031215741764754057, + -0.003344374243170023, + -0.06299085170030594, + -0.0004853016580455005, + -0.037544216960668564, + 0.019189266487956047, + 0.01776713691651821, + -0.0010268959449604154, + 0.04565983638167381, + -0.005906577687710524, + 0.024669205769896507, + -0.03932661935687065, + 0.05487523227930069, + -0.00625736964866519, + 0.01517886109650135, + 0.015055609866976738, + 0.02089582197368145, + -0.018468720838427544, + -0.004562665242701769, + 0.057643644511699677, + -0.021635329350829124, + 0.021654291078448296, + 0.007167532108724117, + -0.05256190150976181, + 0.002410509390756488, + -0.04118486866354942, + 0.08813410252332687, + -0.010059195570647717, + -0.03284170851111412, + -0.020270084962248802, + 0.030964497476816177, + -0.035079192370176315, + 0.0007549137226305902, + -0.03680470958352089, + 0.03733563795685768, + -0.014553124085068703, + 0.012543181888759136, + 0.031059306114912033, + -0.0045484439469873905, + 0.033562254160642624, + -0.020004620775580406, + 0.0015204934170469642, + -0.008106137625873089, + -0.05916058272123337, + -0.026129256933927536, + -0.023834889754652977, + -0.031116191297769547, + -0.06363555043935776, + 0.00617204187437892, + 0.004567405674606562, + -0.0037876046262681484, + 0.0032163825817406178, + 0.014941839501261711, + 0.03875776752829552, + -0.0056221517734229565, + -0.04493929073214531, + -0.01193640660494566, + 0.014031676575541496, + -0.002460283925756812, + 0.02374008111655712, + 0.023815928027033806, + 0.01524522714316845, + 0.03136269375681877, + 0.017994677647948265, + -0.05423053354024887, + 0.06424232572317123, + -0.029295865446329117, + -0.02353150211274624, + -0.010144523344933987, + 0.049035023897886276, + -0.04273973032832146, + 0.017605962231755257, + 0.01680956967175007, + -0.0013960570795461535, + 0.008305235765874386, + 0.008366861380636692, + -0.018535086885094643, + 0.009310207329690456, + 0.020478663966059685, + 0.006921029649674892, + -0.0022019303869456053, + 0.007551507093012333, + 0.023019535467028618, + 0.008712912909686565, + 0.03898530825972557, + 0.009736846201121807, + 0.035913508385419846, + -0.019274594262242317, + 0.011651980690658092, + 0.030717995017766953, + 0.010561681352555752, + -0.010931435041129589, + 0.01839287392795086, + 0.016838012263178825, + 0.046456228941679, + -0.021635329350829124, + -0.003116833744570613, + 0.0010559310903772712, + -0.03020602837204933, + -0.008371601812541485, + 0.03454826399683952, + 0.0025242797564715147, + 0.0242141243070364, + -0.012400968931615353, + 0.011149494908750057, + -0.0006559572066180408, + 0.02339877001941204, + -0.005783326458185911, + -0.010125561617314816, + -0.021654291078448296, + -0.00048056122614070773, + -0.01003075297921896, + -0.023455655202269554, + 0.052979059517383575, + 0.016136428341269493, + -0.0425121895968914, + -0.013121513649821281, + -0.03633066639304161, + 0.006385360844433308, + 0.00418106047436595, + 0.048504095524549484, + -0.015643423423171043, + -0.03460514917969704, + 0.03413110598921776, + 0.01699918694794178, + -0.02584483101963997, + -0.009158513508737087, + -0.03052837774157524, + -0.05119665712118149, + 0.018421316519379616, + 0.010836626403033733, + -0.020364893600344658, + 0.014477277174592018, + -0.04364989325404167, + 0.04296727105975151, + 0.0015607870882377028, + 0.009348130784928799, + -0.006537054665386677, + -0.029902640730142593, + -0.01442987285554409, + -0.019454730674624443, + -0.01524522714316845, + 0.059956975281238556, + 0.02853739634156227, + -0.01135807391256094, + 0.020137352868914604, + 0.03710809722542763, + 0.016667356714606285, + -0.05123458057641983, + -0.017530115321278572, + -0.007565728388726711, + -0.012116543017327785, + -0.011433920823037624, + 0.022924726828932762, + 0.021995602175593376, + 0.017312055453658104, + -0.033239904791116714, + 0.02089582197368145, + 0.013927387073636055, + -0.012524220161139965, + -0.03733563795685768, + -0.014467796310782433, + 0.0007027689716778696, + 0.006584458984434605, + 0.020308008417487144, + 0.0042948308400809765, + 0.01526418887078762, + -0.02006150595843792, + -0.029068324714899063, + 0.0543443039059639, + -0.005276100244373083, + 0.015700308606028557, + -0.020023582503199577, + 0.012837087735533714, + -0.01227771770209074, + 0.00032886743429116905, + -0.04804901406168938, + 0.05354791134595871, + -0.027759965509176254, + -0.0034936978481709957, + 0.025408713147044182, + 0.016819050535559654, + 0.05187927931547165, + 0.041867490857839584, + 0.008864606730639935, + -0.016989706084132195, + 0.09420185536146164, + -0.021805984899401665, + 0.01616487093269825, + -0.0028181865345686674, + 0.02821504697203636, + -0.06462156027555466, + 0.0004820426111109555, + 0.03411214426159859, + -0.036899518221616745, + -0.0175111535936594, + -0.0029390675481408834, + -0.0651145651936531, + -0.032234933227300644, + -0.04994518682360649, + 0.07979094237089157, + 0.011557172052562237, + -0.00786911603063345, + 0.05589916557073593, + 0.002502947812899947, + -0.163222536444664, + 0.04497721418738365, + -0.022962650284171104, + 0.028120238333940506, + -0.011471844278275967, + -0.004538963083177805, + -0.029580291360616684, + 0.004835240077227354, + -0.040388476103544235, + 0.021483635529875755, + -0.01623123697936535, + -0.0769466832280159, + 0.0018760256934911013, + -0.012031215243041515, + 0.028916630893945694, + -0.011670942418277264, + -0.001861804397776723, + 0.014543643221259117, + -0.001012674649246037, + -0.019966697320342064, + -0.013178398832678795, + -0.04459797963500023, + 0.004145507235080004, + -0.01127274613827467, + -0.017207765951752663, + -0.035230886191129684, + 0.0022386687342077494, + -0.00530454283580184, + -0.042057108134031296, + -0.017027629539370537, + -0.0031310550402849913, + 0.05290321260690689, + 0.001989796059206128, + 0.04694923385977745, + -0.04930048808455467, + -0.060108669102191925, + 0.0031855697743594646, + -0.053130753338336945, + -0.029485482722520828, + 0.02339877001941204, + 0.017046591266989708, + 0.10133146494626999, + 0.016136428341269493, + 0.028973516076803207, + -0.0007892818539403379, + -0.06014659255743027, + 0.00521921506151557, + -0.007992367260158062, + -0.0038610813207924366, + -0.03132477030158043, + -0.0028727015014737844, + -0.00045952555956318974, + -0.004050698596984148, + -0.001410278375260532, + -0.037752795964479446, + 0.025275981053709984, + -0.0324624739587307, + 0.011794193647801876, + 0.010267774574458599, + 0.034927498549222946, + -0.042398419231176376, + -0.022014563903212547, + -0.02870805189013481, + -0.03411214426159859, + -0.03760110214352608, + -0.013377496972680092, + 0.004152617882937193, + -0.0304904542863369, + 0.02091478370130062, + -0.05935019999742508, + -0.0030836507212370634, + -0.00348421698436141, + 0.013623999431729317, + -0.02303849719464779, + -0.01899016834795475, + 0.008603882975876331, + -0.03631170466542244, + -0.009395535103976727, + -0.026318874210119247, + -0.10724751651287079, + -0.009850616566836834, + 0.026072371751070023, + 0.011718346737325191, + -0.09313999861478806, + -0.018914321437478065, + 0.010172965936362743, + 0.011879521422088146, + -0.005380389746278524, + 0.005034338217228651, + 0.223293274641037, + 0.0042047626338899136, + -0.02104751579463482, + -0.022090410813689232, + 0.025275981053709984, + -0.04129863902926445, + 0.009073185734450817, + 0.0057975477539002895, + 0.057454027235507965, + -0.01434454508125782, + -0.0025882755871862173, + -0.026982534676790237, + 0.017217246815562248, + 0.010362583212554455, + 0.036387551575899124, + -0.008319457061588764, + -0.04410497471690178, + -0.010182446800172329, + 0.1086886078119278, + -0.010144523344933987, + 0.0017089254688471556, + -0.013235284015536308, + -0.03168504312634468, + -0.026261989027261734, + -0.06443194299936295, + -0.03396045044064522, + -0.02817712351679802, + 0.0304904542863369, + -0.015567576512694359, + 0.019701233133673668, + -0.03932661935687065, + 0.04126071557402611, + 0.011860559694468975, + -0.016819050535559654, + -0.07281302660703659, + 0.01975811831653118, + -0.004939529579132795, + 0.03128684684634209, + 0.04444628581404686, + 0.007935482077300549, + -0.04880748316645622, + -0.039895471185445786, + -0.008063473738729954, + -0.018573010340332985, + -0.01187004055827856, + -0.04478759691119194, + 0.03815099224448204, + -0.003337263595312834, + -0.004576886538416147, + -0.01417388953268528, + -0.02605341002345085, + -0.00659393984824419, + -0.026318874210119247, + 0.01839287392795086, + -0.05305490642786026, + -0.0004050105926580727, + -0.0076036518439650536, + -0.007347668521106243, + 0.028802860528230667, + 0.01442987285554409, + -0.012050176970660686, + -0.016866454854607582, + -0.015662385150790215, + 0.030793841928243637, + 0.00024798381491564214, + -0.006300033535808325, + -0.020801013335585594, + 0.003953519742935896, + 0.00953774806112051, + -0.012040696106851101, + 0.015169380232691765, + -0.0043493458069860935, + 0.00679777842015028, + 0.02588275447487831, + 0.020801013335585594, + -0.003766272682696581, + 0.025257019326090813, + 0.08563115447759628, + 0.0006029236246831715, + 0.003671464044600725, + -0.0577574148774147, + -0.019132381305098534, + -0.020175276324152946, + -0.031760890036821365, + 0.01727413199841976, + -0.04198126122355461, + -0.016563067212700844, + -0.026413682848215103, + 0.006015607621520758, + 0.02055451087653637, + -0.004365937318652868, + 0.014828069135546684, + -0.013813616707921028, + 0.0074946219101548195, + -0.009646777994930744, + -0.022602377459406853, + -0.03760110214352608, + -0.03917492553591728, + -0.026754993945360184, + -0.004309052135795355, + -0.04148825630545616, + -0.028271932154893875, + 0.0008289829129353166, + -0.021350903436541557, + 0.03534465655684471, + 0.0018546937499195337, + -0.018440278246998787, + 0.006688748486340046, + 0.01035310234874487, + -0.002127268584445119, + 0.02307642064988613, + 0.027285922318696976, + -0.014562604948878288, + -0.022754071280360222, + 0.04194333776831627, + -0.03371394798159599, + 0.011149494908750057, + 0.05817457288503647, + -0.0068309614434838295, + 0.025408713147044182, + -0.0501348040997982, + 0.06337008625268936, + 0.02952340617775917, + 0.010068676434457302, + -0.008779278956353664, + -0.031078267842531204, + -0.012211351655423641, + -0.030812803655862808, + 0.004086251836270094, + 0.038075145334005356, + -0.025010516867041588, + -0.02521909587085247, + -0.018269622698426247, + 0.001561972196213901, + 0.043877433985471725, + -0.015074571594595909, + -0.04364989325404167, + 0.017672328278422356, + 0.028632204979658127, + -0.02288680337369442, + -0.050362344831228256, + -0.03617897257208824, + -0.025825869292020798, + 0.01293189637362957, + 0.004707248415797949, + -0.01592784933745861, + -0.051955126225948334, + 0.034927498549222946, + -0.05108288675546646, + 0.03297444060444832, + -0.006551275961101055, + 0.04839032515883446, + -0.0024033987428992987, + -0.035230886191129684, + 0.018383393064141273, + -0.019682271406054497, + -0.007129608653485775, + -0.008542257361114025, + 0.04258803650736809, + -0.012078619562089443, + 0.022791994735598564, + 0.02620510384440422, + -0.00148375506978482, + 0.04000924155116081, + 0.061587683856487274, + 0.05715063959360123, + -0.024176200851798058, + 0.05142419785261154, + -0.014012714847922325, + 0.013368016108870506, + 0.01534951664507389, + -0.010656489990651608, + -0.039212848991155624, + 0.071751169860363, + 0.032253894954919815, + 0.015055609866976738, + -0.0175775196403265, + 0.020782051607966423, + -0.027229037135839462, + 0.005167070310562849, + 0.01052375789731741, + 0.08108033984899521, + -0.03834060952067375, + 0.007219676859676838, + -0.03993339464068413, + -0.011794193647801876, + 0.019492654129862785, + -0.007930741645395756, + 0.018080005422234535, + 0.012258755974471569, + -0.036880556493997574, + 0.09124382585287094, + 0.009490343742072582, + -0.0037994557060301304, + -0.02106647752225399, + 0.02885974571108818, + 0.08760317414999008, + -0.036880556493997574, + 0.029637176543474197, + -0.03536361828446388, + -0.020611396059393883, + -0.002960399491712451, + 0.03033876046538353, + 0.022147295996546745, + -0.02455543540418148, + -0.04558398947119713, + -0.007542026229202747, + 0.011471844278275967, + -0.002291998593136668, + -0.013775693252682686, + -0.013178398832678795, + -0.011130533181130886, + -0.003972481470555067, + 0.0285184346139431, + 0.01187004055827856, + -0.011509767733514309, + 0.022355875000357628, + 0.0676175132393837, + 0.006958953104913235, + -0.03100242093205452, + 0.018999649211764336, + 0.01796623505651951, + 0.04528060182929039, + -0.03593247011303902, + 0.03263312950730324, + 0.019777080044150352, + 0.019454730674624443, + -0.05536823719739914, + 0.021275056526064873, + -0.014069600030779839, + 0.012239794246852398, + 0.03568596765398979, + -0.0036904257722198963, + -0.03335367515683174, + 0.03729771450161934, + 0.011092609725892544, + 0.016126947477459908, + 0.0321970097720623, + -0.012211351655423641, + 0.007105906493961811, + 0.01586148329079151, + 0.01907549612224102, + 0.07664329558610916, + 0.026489529758691788, + 0.006655565463006496, + 0.042891424149274826, + -0.08396252244710922, + 0.03727875277400017, + 0.005204993765801191, + 0.06374932080507278, + -0.041526179760694504, + -0.011140014044940472, + 0.035742852836847305, + -0.01796623505651951, + -0.026963572949171066, + -0.02004254423081875, + -0.007006357423961163, + 0.0021177877206355333, + -0.045053061097860336, + -0.030623186379671097, + 0.003135795472189784, + 0.03720290586352348, + -0.01781454123556614, + 0.0052666193805634975, + 0.01883847452700138, + 0.0020822344813495874, + 0.029788870364427567, + 0.016449296846985817, + -0.02538975141942501, + -0.022640300914645195, + -0.005769105162471533, + -0.016089024022221565, + -0.048011090606451035, + -0.03050941601395607, + 0.03813203051686287, + 0.005503640975803137, + 0.0007454328588210046, + 0.03932661935687065, + 0.01417388953268528, + 0.01738790236413479, + -0.01374725066125393, + -0.055444084107875824, + -0.01676216535270214, + -0.0076273540034890175, + 0.04296727105975151, + -0.02901143953204155, + 0.019966697320342064, + 0.0016899637412279844, + -0.011424439959228039, + -0.016885416582226753, + -0.006939991377294064, + 0.03386564180254936, + -0.0457356832921505, + -0.017871426418423653, + -0.0032566762529313564, + 0.004991674330085516, + 0.006347437854856253, + -0.013074109330773354, + -0.0053993514738976955, + 0.011727827601134777, + -0.010959877632558346, + 0.048504095524549484, + -0.008689210750162601, + -0.010428949259221554, + 0.015918368473649025, + -0.006821480579674244, + 0.02303849719464779, + -0.01344386301934719, + 0.0008117988472804427, + 0.03532569482922554, + 0.049679722636938095, + -0.07243379205465317, + -0.010912473313510418, + 0.007167532108724117, + 0.03085072711110115, + 0.011566652916371822, + -0.0194168072193861, + -0.0072955237701535225, + 0.011974330060184002, + -0.01234408374875784, + 0.008494853042066097, + 0.0014422762906178832, + -0.036918479949235916, + -0.012135504744946957, + -0.04209503158926964, + 0.024157239124178886, + -0.02355046384036541, + 0.04611491784453392, + -0.02402450703084469, + 0.006413803435862064, + -0.013386977836489677, + 0.01609850488603115, + -0.015795117244124413, + 0.01650618202984333, + 0.029940564185380936, + -0.0026190883945673704, + 0.051500044763088226, + 0.009983348660171032, + 0.04945218190550804, + -0.0014339805347844958, + -0.02683084085583687, + -0.0265464149415493, + 0.05252397805452347, + 0.004621920641511679, + 0.054799385368824005, + -0.03253832086920738, + -0.004600588697940111, + -0.0038018259219825268, + 0.015292631462216377, + -0.0062621100805699825, + -0.023190191015601158, + -0.004588737618178129, + 0.011879521422088146, + -0.07910832017660141, + -0.006740893237292767, + -0.020838936790823936, + -0.00817724410444498, + 0.006375879980623722, + 0.018857436254620552, + -0.006906808353960514, + -0.007764826528728008, + 0.034737881273031235, + 0.015614980831742287, + 0.027987506240606308, + 0.027911659330129623, + -0.013292169198393822, + 0.0061293779872357845, + -0.015899406746029854, + 0.024479588493704796, + -0.004259277600795031, + -0.027778927236795425, + 0.00345814460888505, + -0.017463749274611473, + 0.019530577585101128, + -0.01793779246509075, + 0.010447910986840725, + -0.030111219733953476, + 0.0033775572665035725, + 0.017672328278422356, + -0.022848879918456078, + -0.0378476046025753, + -0.05969151109457016, + -0.008020809851586819, + -0.0087555767968297, + 0.012031215243041515, + -0.009599373675882816, + -0.04675961658358574, + -0.03215908631682396, + 0.03303132578730583, + 0.018895359709858894, + -0.05222059041261673, + 0.0036074682138860226, + -0.03102138265967369, + -0.0066982293501496315, + -0.14054431021213531, + -0.002706786384806037, + -0.002358364639803767, + 0.012808645144104958, + -0.04391535744071007, + -0.012382007203996181, + -0.007034800015389919, + 0.014012714847922325, + 0.00931494776159525, + 0.0028063354548066854, + 0.034756843000650406, + -0.008129839785397053, + 0.04649415239691734, + -0.013225803151726723, + -0.027418654412031174, + 0.01541588269174099, + 0.006323735695332289, + -0.009831654839217663, + 0.021426750347018242, + 0.10231746733188629, + -0.01922718994319439, + -0.0039511495269834995, + 0.017075033858418465, + 0.00020324598881416023, + 0.052296437323093414, + 0.012201870791614056, + -0.0001319173170486465, + 0.007722162641584873, + -0.021635329350829124, + 0.006925770081579685, + 0.008575440384447575, + -0.05965358763933182, + 0.01740686409175396, + 0.010912473313510418, + -0.006570237688720226, + -0.005674296524375677, + -0.020289046689867973, + 0.028290893882513046, + 0.015273669734597206, + 0.009490343742072582, + 0.022640300914645195, + -0.004508150275796652, + 0.011215860955417156, + 0.02950444445014, + -0.00940027553588152, + 0.08661716431379318, + -0.03282274678349495, + -0.00403647730126977, + -0.012818126007914543, + 0.04042639955878258, + 0.023133305832743645, + -0.01410752348601818, + 0.007286042906343937, + 0.03189362213015556, + 0.007309745065867901, + 0.020971668884158134, + -0.06041205674409866, + 0.026584338396787643, + -0.08585869520902634, + 0.07880493253469467, + -0.0712960883975029, + 0.0157382320612669, + -0.023284999653697014, + -0.011263265274465084, + -0.005309283267706633, + 0.037582140415906906, + 0.014467796310782433, + 0.00045063724974170327, + 0.00965625885874033, + -0.016714761033654213, + 0.032443512231111526, + 0.022602377459406853, + 0.015870964154601097, + -0.0313437320291996, + 0.031779851764440536, + -0.00596820330247283, + 0.01500820554792881, + -0.055140696465969086, + -0.033107172697782516, + 0.03985754773020744, + -0.011689904145896435, + -0.016107985749840736, + -0.006527573801577091, + 0.02402450703084469, + 0.04410497471690178, + -0.006579718552529812, + -0.02853739634156227, + -0.05043819174170494, + 0.015633942559361458, + -0.005778586026281118, + -0.04698715731501579, + -0.031419578939676285, + 0.006276331376284361, + 0.02920105680823326, + -0.002472135005518794, + 0.0006470688967965543, + -0.02091478370130062, + -0.027399692684412003, + -0.021521558985114098, + -0.012486296705901623, + -0.0055320835672318935, + -0.04281557723879814, + 0.001849953318014741, + 0.019435768947005272, + -0.005252398084849119, + -0.0033491146750748158, + 0.020270084962248802, + -0.04399120435118675, + 0.01569082774221897, + -0.0381130687892437, + 0.015084052458405495, + 0.009352871216833591, + 0.01905653439462185, + -0.02389177493751049, + -0.04167787358164787, + 0.0371270589530468, + 0.014932358637452126, + -0.044370438903570175, + -0.051158733665943146, + 0.003496068064123392, + 0.03504126891493797, + -0.006484909914433956, + -0.04095732793211937, + -0.04361196979880333, + -0.01937888376414776, + 0.021331941708922386, + 0.017293093726038933, + 0.043043117970228195, + 0.022450683638453484, + 0.047025080770254135, + 0.01734049804508686, + -0.004671695176512003, + -0.020099429413676262, + 0.05244813114404678, + 0.01793779246509075, + 0.004429933149367571, + -0.03172296658158302, + 0.06412855535745621, + -0.056619711220264435, + -0.04467382654547691, + 0.025465596467256546, + 0.02853739634156227, + -0.006840442307293415, + -0.015899406746029854, + -0.00022798511781729758, + -0.0029153653886169195, + -0.04228464886546135, + -0.04118486866354942, + 0.024782976135611534, + 0.0060867141000926495, + 0.018459239974617958, + -0.0029888420831412077, + 0.005323504563421011, + 0.05187927931547165, + -0.006845182739198208, + -0.015709789469838142, + 0.041033174842596054, + 0.002199560170993209, + -0.02999744936823845, + 0.002730488544330001, + 0.043536122888326645, + -0.013908425346016884, + 0.012505258433520794, + 0.00038990049506537616, + 0.016411373391747475, + 0.008063473738729954, + 0.015766674652695656, + -0.007968665100634098, + -0.024972593411803246, + 0.027949582785367966, + -0.02821504697203636, + 0.02136986516416073, + -0.025484558194875717, + 0.01466689445078373, + 0.011538210324943066, + -0.02967509999871254, + 0.008172503672540188, + -0.013965310528874397, + 0.07971509546041489, + 0.0005984794697724283, + -0.0035458425991237164, + 0.04497721418738365, + 0.04490136727690697, + 0.016363969072699547, + 0.01871522329747677, + 0.058288343250751495, + 0.06526625901460648, + -0.0005972943617962301, + -0.04729054495692253, + -0.017615443095564842, + -0.00294143776409328, + 0.013567114248871803, + -0.022507568821310997, + 0.00452237157151103, + 0.038871537894010544, + 0.03564804419875145, + 0.013149956241250038, + 0.057947032153606415, + -0.0069636935368180275, + 0.04406705126166344, + -0.00391796650364995, + 0.013955829665064812, + -0.007504102773964405, + 0.01817481406033039, + 0.019189266487956047, + -0.0005158181884326041, + 0.017520634457468987, + -0.029580291360616684, + -0.04228464886546135, + -0.0012230313150212169, + 0.01127274613827467, + 0.0020229790825396776, + -0.00746143888682127, + 0.011737308464944363, + 0.005655334796756506, + 0.031741928309202194, + 0.029220018535852432, + -0.004067290108650923, + 0.012912934646010399, + 0.019435768947005272, + 0.004851831588894129, + -0.01832650788128376, + 0.012799164280295372, + -0.03284170851111412, + 0.04888333007693291, + -0.056619711220264435, + 0.00021317126811482012, + -0.014799626544117928, + -0.04133656248450279, + -0.013823097571730614, + 0.01054271962493658, + -0.051462121307849884, + -0.028594281524419785, + 0.02535182796418667, + 0.016278641298413277, + -0.04664584621787071, + -0.01973915658891201, + -0.004190541338175535, + 0.01607954315841198, + 0.03646339848637581, + 0.07414034754037857, + 0.021597405895590782, + -0.007854894734919071, + 0.007798009552061558 + ] + } + }, + { + "type": "维修工作", + "properties": { + "名称": "曲轴组件的维修工作", + "embedding": [ + -0.019966350868344307, + -0.012483669444918633, + -0.04741538316011429, + 0.025061342865228653, + -0.003501631785184145, + 0.004742478486150503, + 0.017700865864753723, + -0.014232135377824306, + -0.03378487005829811, + 0.0014946562005206943, + 0.009945574216544628, + 0.015454181469976902, + 0.04049672186374664, + 0.007774092257022858, + 0.02160201221704483, + -0.04598652943968773, + 0.005348801147192717, + -0.0007473281002603471, + 0.008606024086475372, + -0.026527797803282738, + -0.015698591247200966, + -0.006561446934938431, + -0.0014194534160196781, + 0.016196809709072113, + -0.004201957955956459, + 0.0190639179199934, + -0.00021180171461310238, + 0.026715805754065514, + 0.02310606837272644, + -0.01119582075625658, + -0.05328120291233063, + 0.0020516272634267807, + -0.02088758535683155, + -0.014185133390128613, + -0.06087668985128403, + -0.04500889405608177, + 0.007689489051699638, + -0.026546599343419075, + -0.04297841712832451, + 0.031152771785855293, + -0.027561837807297707, + -0.04342963546514511, + 0.01802987791597843, + 0.003008113242685795, + -0.027561837807297707, + -0.014777355827391148, + -0.02855827473104, + -0.034142084419727325, + 0.010556597262620926, + -0.018255487084388733, + -0.02682860940694809, + -0.014222734607756138, + 0.01582079567015171, + -0.022429244592785835, + -0.015566986054182053, + 0.03515732288360596, + -0.02491093799471855, + -0.025117745622992516, + -0.03970709443092346, + 0.026922613382339478, + -0.02327527478337288, + 0.0378270223736763, + 0.0460241325199604, + 0.013705715537071228, + 0.03109636902809143, + 0.08482879400253296, + -0.014908961020410061, + 0.0021456307731568813, + -9.672082524048164e-05, + -0.014495345763862133, + -0.011214622296392918, + -0.004044502042233944, + 0.011073616333305836, + 0.000948260654695332, + -0.012652875855565071, + 0.046813759952783585, + -0.007604886312037706, + -0.02160201221704483, + 0.030645152553915977, + -0.0024957938585430384, + -0.0009459105785936117, + -0.010020776651799679, + 0.010547196492552757, + 0.0027801545802503824, + -0.0414743609726429, + 0.058282192796468735, + -0.01543538086116314, + -0.02214723266661167, + -0.03515732288360596, + -0.02318127267062664, + 0.015275574289262295, + -0.020530372858047485, + 0.008883333764970303, + 0.03837224468588829, + -0.04421926289796829, + 0.0074309795163571835, + -0.02485453523695469, + 0.0027754544280469418, + 0.02863347716629505, + 0.007506182417273521, + 0.03260042518377304, + 0.04083513468503952, + 0.0382782407104969, + -0.047039370983839035, + 0.08016621321439743, + -0.01598060131072998, + 0.041436757892370224, + 0.028219861909747124, + -0.0007814043783582747, + 0.008577822707593441, + 0.005607311148196459, + 0.025813370943069458, + -0.02397090196609497, + -0.022448044270277023, + -0.007886896841228008, + -0.02934790402650833, + -0.02374529279768467, + -0.03045714646577835, + 0.041812773793935776, + -0.00827701110392809, + -0.01191024761646986, + 0.02611418254673481, + 0.04583612456917763, + -0.013865521177649498, + 0.012211059220135212, + -0.0230120662599802, + 0.07324755191802979, + 0.010058378800749779, + 0.009014938957989216, + 0.04057192802429199, + 0.0011368552222847939, + 0.04662575572729111, + -0.022429244592785835, + 0.018340090289711952, + -0.04455767571926117, + -0.034142084419727325, + 0.014448343776166439, + 0.00010303669114364311, + -0.005767116788774729, + -0.012587073259055614, + -0.032562825828790665, + -0.06550166755914688, + -0.007980899885296822, + -0.011017214506864548, + -0.008446217514574528, + -0.013865521177649498, + 0.002398265292868018, + -0.03102116659283638, + 0.01897931471467018, + 0.0065285456366837025, + 0.0062700361013412476, + 0.017588062211871147, + 0.01016178261488676, + 0.00023074931232258677, + 0.004277160856872797, + -0.030645152553915977, + -0.04797940328717232, + 0.04959626495838165, + -0.019129719585180283, + -0.023538485169410706, + 0.06219273805618286, + 0.07358596473932266, + -0.03365326672792435, + 0.0018354190979152918, + 0.04226398840546608, + 0.0015945349587127566, + 0.0015252074226737022, + 0.015388378873467445, + 0.005748316179960966, + -0.008836332708597183, + -0.011919648386538029, + -0.03750741109251976, + 0.0015205071540549397, + 0.020060354843735695, + 0.04895704239606857, + 0.01067880168557167, + 0.08888974040746689, + 0.0064298417419195175, + 0.026377392932772636, + -0.02357608638703823, + 0.03536412864923477, + 0.03585295006632805, + 0.008855133317410946, + -0.03440529480576515, + 0.01661982573568821, + 0.04053432494401932, + 0.05403323099017143, + -0.02374529279768467, + 0.01867850311100483, + 0.003999850247055292, + -0.023087268695235252, + -0.018481094390153885, + -0.012314463034272194, + -0.014053529128432274, + 0.010302787646651268, + -0.00037953926948830485, + 0.022410443052649498, + 0.037150196731090546, + 0.007708290126174688, + -0.01780427061021328, + -0.029404306784272194, + -0.00922174658626318, + 0.01985354721546173, + -0.018340090289711952, + -0.052040357142686844, + 0.02286165952682495, + 0.008267611265182495, + -0.044820886105298996, + 0.026170585304498672, + -0.03252522274851799, + 0.015961799770593643, + -0.02295566350221634, + 0.004737778101116419, + -0.05106272175908089, + -0.03241242095828056, + 0.003351225983351469, + 0.009898572228848934, + -0.005992725491523743, + -0.027016615495085716, + -0.028389068320393562, + -0.048693832010030746, + 0.01372451614588499, + 0.023801695555448532, + -0.027524234727025032, + 0.05064910650253296, + -0.04734018072485924, + 0.058996617794036865, + 0.022090831771492958, + 0.0038494449108839035, + -0.038409844040870667, + -0.014664551243185997, + -0.023876897990703583, + -0.038804661482572556, + -0.03688698634505272, + 0.05222836509346962, + 0.020191960036754608, + 0.00492578512057662, + -0.0010763404425233603, + 0.044444870203733444, + 0.03333365544676781, + -0.005945723503828049, + -0.013762117363512516, + 0.016272012144327164, + -0.041887976229190826, + 0.017475256696343422, + 0.028351467102766037, + 0.050912316888570786, + 0.03261922672390938, + -0.028840284794569016, + -0.0015346077270805836, + -0.012652875855565071, + 0.017841871827840805, + -0.003708439413458109, + 0.021244799718260765, + 0.017541060224175453, + 0.006617848761379719, + 0.015961799770593643, + -0.01622501015663147, + -0.011825645342469215, + -0.031227974221110344, + -0.02177121862769127, + 0.10137341171503067, + 0.015087567269802094, + 0.0022126082330942154, + -0.0048270816914737225, + 0.027261026203632355, + -0.036116160452365875, + 0.033766068518161774, + -0.04985947534441948, + 0.05267958343029022, + -0.05215316265821457, + -0.001956448657438159, + 0.0018072179518640041, + 0.00289765908382833, + 0.019402330741286278, + 0.03275083377957344, + 0.013555309735238552, + -0.027580637484788895, + 0.10708882659673691, + -0.03466850519180298, + 0.03966949135065079, + -0.012258061207830906, + 0.03570254147052765, + -0.05094991624355316, + 0.00046149862464517355, + 0.034311290830373764, + -0.09031859785318375, + -0.033352453261613846, + -0.0005804718239232898, + -0.05230356752872467, + -0.01336730271577835, + -0.019402330741286278, + 0.08941616117954254, + 0.005983325187116861, + -0.05418363958597183, + 0.05151393637061119, + -0.015360177494585514, + -0.15657229721546173, + 0.021414006128907204, + -0.04873143509030342, + 0.03457450121641159, + 0.007797593250870705, + -0.002770754275843501, + -0.06260635703802109, + 0.016422417014837265, + -0.005879921372979879, + -0.00280835572630167, + -0.009513158351182938, + -0.08648325502872467, + -0.008455618284642696, + -0.012897285632789135, + 0.005250097718089819, + -0.021320002153515816, + -0.03196120262145996, + -0.0031890699174255133, + 0.022974465042352676, + -0.04850582405924797, + -0.017851270735263824, + -0.024177709594368935, + 0.042301591485738754, + 0.004397015552967787, + -0.026057779788970947, + -0.08964177221059799, + 0.028351467102766037, + 0.0013748017372563481, + -0.04421926289796829, + -0.0074544805102050304, + -0.0037366405595093966, + -0.008070203475654125, + 0.010199383832514286, + 0.06907379627227783, + -0.015331977047026157, + -0.06087668985128403, + -0.017672665417194366, + -0.03814663365483284, + -0.02697901427745819, + 0.015294375829398632, + 0.006693051662296057, + 0.03412328287959099, + 0.015472982078790665, + 0.029479509219527245, + -0.02088758535683155, + -0.09565799683332443, + 0.017371853813529015, + -0.015087567269802094, + 0.0049069845117628574, + -0.007393378298729658, + -0.022579649463295937, + -0.02675340697169304, + 0.0034757808316498995, + -0.02184642106294632, + -0.03267562761902809, + 0.03955668956041336, + -0.008559022098779678, + 0.013207497075200081, + -0.028031853958964348, + 0.038409844040870667, + -0.03910547122359276, + -0.026001378893852234, + -0.006495644338428974, + -0.056477323174476624, + -0.03179199621081352, + -0.01056599710136652, + -0.014194534160196781, + -0.03760141506791115, + 0.02214723266661167, + -0.059297431260347366, + 0.00022384592739399523, + -0.007576684933155775, + -0.001457054866477847, + -0.02579457126557827, + -0.052905190736055374, + -0.014232135377824306, + -0.03331485390663147, + 0.02660300023853779, + -0.04452007636427879, + -0.11498512327671051, + -0.017757268622517586, + 0.014814957045018673, + 0.027975453063845634, + -0.05903422087430954, + -0.04098554328083992, + -0.01804867945611477, + 0.002836556639522314, + 0.010537796653807163, + 0.002747253281995654, + 0.2105679214000702, + -0.016986439004540443, + -0.002305436646565795, + -0.0013313250383362174, + 0.06320797652006149, + -0.02532455325126648, + 0.0056261117570102215, + -0.02588857337832451, + 0.031039968132972717, + -0.035326529294252396, + -0.046174537390470505, + -0.03963189199566841, + 0.014561147429049015, + -0.019740743562579155, + 0.013912523165345192, + 0.00890213530510664, + -0.019515134394168854, + 0.024403318762779236, + 0.09565799683332443, + -0.032487623393535614, + -0.001126867369748652, + 0.0341796875, + -0.03513852134346962, + -0.023218873888254166, + -0.02318127267062664, + -0.05196515470743179, + -0.00980456918478012, + 0.05106272175908089, + -0.006067928392440081, + 0.03981989622116089, + -0.02382049523293972, + 0.029235100373625755, + 0.052040357142686844, + -0.022918062284588814, + -0.05794377997517586, + -0.0031326678581535816, + 0.02216603420674801, + 0.022015627473592758, + 0.05121312662959099, + -0.008225309662520885, + 0.012991288676857948, + -0.019176721572875977, + -0.011938448995351791, + -0.021658414974808693, + -0.0019364728359505534, + -0.05925982818007469, + 0.0071771699003875256, + -0.016948837786912918, + 0.025117745622992516, + 0.0032666227780282497, + 0.03748860955238342, + 0.0021444556768983603, + -0.009983175434172153, + -0.0017590412171557546, + -0.0065285456366837025, + -0.041023142635822296, + -0.021320002153515816, + -0.03679298236966133, + 0.023876897990703583, + -0.005536808166652918, + 0.038804661482572556, + -0.004822381306439638, + -0.04515929892659187, + 0.029874324798583984, + -0.010453193448483944, + -0.016826633363962173, + -0.00433121295645833, + 0.018565697595477104, + 0.0024017903488129377, + -0.012681077234447002, + 0.017136843875050545, + -0.010537796653807163, + -0.01254947204142809, + 0.014767955988645554, + 0.01874430477619171, + -0.007134868297725916, + 0.008521420881152153, + 0.07918857783079147, + -0.022993264719843864, + 0.0178136695176363, + -0.05790617689490318, + -0.05151393637061119, + -0.014467144384980202, + -0.0381278358399868, + 0.04835541918873787, + -0.025832172483205795, + -0.04365524277091026, + -0.012652875855565071, + -0.00922174658626318, + -0.01567978970706463, + -0.025343352928757668, + -0.0026838008780032396, + -0.03523252531886101, + 0.0033488760236650705, + -0.023068467155098915, + -0.01756926067173481, + 0.0009241722873412073, + -0.03775181993842125, + -0.034311290830373764, + -0.011242822743952274, + -0.02064317651093006, + -0.04888183996081352, + -0.024158908054232597, + -0.04312882199883461, + 0.018086280673742294, + -0.010218184441328049, + -0.029385505244135857, + 0.021940425038337708, + -0.0030621651094406843, + -0.013263898901641369, + 0.023463282734155655, + 0.029329102486371994, + 0.025907374918460846, + -0.04139915853738785, + 0.030720354989171028, + -0.004263060167431831, + 0.02318127267062664, + 0.05813178792595863, + 0.007313475012779236, + 0.01636601611971855, + -0.05185234919190407, + 0.03711259737610817, + 0.01890411041676998, + 0.010095980018377304, + -0.03758261352777481, + -0.021489208564162254, + -0.03466850519180298, + -0.026452595368027687, + -0.007012663874775171, + 0.03551453724503517, + 0.00543810473755002, + -0.040722332894802094, + 0.011844445951282978, + -0.01813328266143799, + 0.025738168507814407, + -0.0005422828835435212, + -0.019167320802807808, + 0.02414010837674141, + 0.007548484019935131, + -0.009766967035830021, + -0.03286363556981087, + -0.06580247730016708, + -0.034461695700883865, + -0.008450917899608612, + 0.007214771583676338, + -0.01282208226621151, + -0.014185133390128613, + 0.007816393859684467, + -0.03647337108850479, + 0.03598455339670181, + -0.03269442915916443, + 0.07888776808977127, + 0.0026320989709347486, + -0.038334641605615616, + 0.0013560010120272636, + -0.0055274078622460365, + -0.006721253041177988, + 0.021263599395751953, + 0.018302489072084427, + -0.016178008168935776, + -0.0001310174266109243, + 0.001145080546848476, + 0.0038705957122147083, + 0.012812682427465916, + 0.0827983170747757, + 0.0419255755841732, + -0.02397090196609497, + 0.056063707917928696, + 0.015924198552966118, + 0.006796455476433039, + 0.02643379382789135, + -0.003271323163062334, + -0.036604978144168854, + 0.06614089012145996, + 0.03656737506389618, + -0.014100530184805393, + -0.040383920073509216, + 0.00682465685531497, + 0.0009417979163117707, + 0.034781306982040405, + 0.014476544223725796, + 0.035890549421310425, + -0.01875370554625988, + -0.036134958267211914, + -0.0034452297259122133, + -0.014232135377824306, + 0.0031326678581535816, + -0.009832769632339478, + 0.026941413059830666, + 0.02523054927587509, + -0.0712546780705452, + 0.08904015272855759, + -0.05967344343662262, + 9.348945604870096e-05, + 0.013404903933405876, + -0.0015769093297421932, + 0.056214116513729095, + -0.024497320875525475, + 0.01802987791597843, + -0.07027704268693924, + -0.026941413059830666, + 0.01756926067173481, + 0.014589348807930946, + 0.031848397105932236, + -0.006368739530444145, + -0.02848307229578495, + -0.019402330741286278, + -0.011365027166903019, + -0.019195521250367165, + -0.009813969023525715, + -0.005842319689691067, + -0.007007963489741087, + -0.015096968039870262, + 0.019054517149925232, + -0.02414010837674141, + -0.04805460944771767, + 0.007477981504052877, + 0.02665940299630165, + -0.04256480187177658, + -0.005353501532226801, + -0.010885609313845634, + 0.010979613289237022, + 0.05858300253748894, + 0.0048317816108465195, + 0.01765386387705803, + 0.000616310688201338, + -0.0024393917992711067, + -0.029084693640470505, + 0.025456158444285393, + -0.017042841762304306, + 0.010547196492552757, + 0.0305323489010334, + -0.0344804972410202, + -0.018180284649133682, + 0.04154956340789795, + 0.007689489051699638, + 0.013198096305131912, + 0.03416088595986366, + -0.022260038182139397, + 0.004996288102120161, + 0.025512559339404106, + -0.013433105312287807, + 0.06241834908723831, + 0.006613148842006922, + -0.03339005634188652, + 0.028445469215512276, + -0.07437559962272644, + -0.0011697565205395222, + 0.002091578673571348, + 0.05753016471862793, + -0.027167022228240967, + 0.02579457126557827, + 0.06700572371482849, + 0.015566986054182053, + -0.029216298833489418, + -0.02825746312737465, + -0.015360177494585514, + 0.03181079775094986, + -0.013668114319443703, + 0.016892435029149055, + 0.0010105379624292254, + 0.0360785573720932, + 0.004561521578580141, + 0.0002026951260631904, + -0.03891746327280998, + 0.01992874965071678, + 0.041624765843153, + 0.013386103324592113, + -0.05245397239923477, + -0.03408568352460861, + -0.0034170285798609257, + -0.01543538086116314, + -0.04279040917754173, + -0.0008953837095759809, + 0.010189983062446117, + -0.009268748573958874, + -0.027035417035222054, + 0.004479268565773964, + 0.005941023584455252, + 0.025042541325092316, + 0.018471695482730865, + -0.04109834507107735, + -0.000888333423063159, + -0.034066881984472275, + 0.044369667768478394, + 0.012850283645093441, + 0.007022064179182053, + 0.0006785880541428924, + -0.00480828108265996, + -0.021470407024025917, + -0.016958238556981087, + 0.016648026183247566, + -0.053920429199934006, + 0.06102709472179413, + -0.018105080351233482, + 0.00046825510798953474, + -0.033766068518161774, + 0.021790020167827606, + -0.00862012431025505, + 0.013047690503299236, + 0.002791905077174306, + 0.06738173216581345, + 0.011130019091069698, + -0.019684340804815292, + 0.007882196456193924, + -0.03684938699007034, + -0.02295566350221634, + 0.0022596099879592657, + 0.047039370983839035, + 0.03527012839913368, + 0.010424992069602013, + -0.04850582405924797, + 0.0013419004390016198, + 0.023294076323509216, + 0.04233919456601143, + 0.013686914928257465, + 0.05358201637864113, + -0.01717444695532322, + 0.020549172535538673, + -0.0010258136317133904, + -0.013057091273367405, + -0.016187408939003944, + -0.044595278799533844, + 0.019496332854032516, + -0.06294476985931396, + -0.0014699803432449698, + 0.0071724699810147285, + 0.030250338837504387, + -0.016732629388570786, + -0.018781905993819237, + -0.03775181993842125, + 0.030269138514995575, + -0.0024981440510600805, + -0.012521270662546158, + 0.052980393171310425, + 0.0005093816434964538, + 0.011628237552940845, + -0.005386402830481529, + 0.038729455322027206, + 0.008596623316407204, + -0.013846720568835735, + -0.016713827848434448, + 0.024816934019327164, + -0.00289765908382833, + 0.03974469378590584, + -0.02562536485493183, + -0.012370865792036057, + -0.018405891954898834, + -0.006730653345584869, + -0.005767116788774729, + -0.015096968039870262, + -0.027430232614278793, + 0.013188696466386318, + -0.058432597666978836, + 0.0029000090435147285, + -0.03143478184938431, + 0.023839296773076057, + -0.004695476498454809, + 0.030682753771543503, + 0.000727939885109663, + 0.01060359925031662, + 0.00012418748519849032, + 0.021714817732572556, + 0.029065893962979317, + 0.011327425949275494, + -0.010979613289237022, + 0.029216298833489418, + -0.02998712845146656, + 0.05429644137620926, + 0.0022079080808907747, + -0.03914307430386543, + 0.005019788630306721, + -0.00044827937381342053, + 0.018415292724967003, + -0.014344939962029457, + 0.0011274549178779125, + -0.016478819772601128, + 0.024666527286171913, + 0.017061641439795494, + -0.04264000430703163, + -0.026302188634872437, + -0.03669898211956024, + -0.024948539212346077, + -0.017522258684039116, + -0.025023741647601128, + 0.017277849838137627, + -0.04440727084875107, + -0.027185821905732155, + 0.04628734290599823, + 0.02515534684062004, + -0.055499687790870667, + 0.017371853813529015, + -0.03513852134346962, + -0.014109930954873562, + -0.14619429409503937, + 0.0209627877920866, + 0.000304042681818828, + -0.008060803636908531, + -0.030099932104349136, + -0.0026461996603757143, + -0.015209772624075413, + -0.0007579035009257495, + 0.025512559339404106, + 0.013461306691169739, + 0.001716739614494145, + 0.026132982224225998, + 0.05516127496957779, + -0.01652582176029682, + -0.01607460528612137, + 0.029141096398234367, + 0.002648549620062113, + -0.0043359133414924145, + 0.02887788601219654, + 0.06320797652006149, + 0.005583810154348612, + -0.004227809142321348, + 0.0036097357515245676, + 0.008352214470505714, + 0.032807234674692154, + 0.014373140409588814, + 0.04835541918873787, + -0.023124869912862778, + 0.010885609313845634, + -0.052829988300800323, + 0.0018612700514495373, + -0.04470808058977127, + 0.02722342498600483, + 0.004060952924191952, + 0.01725905016064644, + -0.010152381844818592, + -0.007698889821767807, + 0.01669502817094326, + 0.02350088395178318, + 0.025832172483205795, + 0.02776864543557167, + -0.004350013565272093, + -0.011289824731647968, + 0.041887976229190826, + 0.030908362939953804, + 0.05200275778770447, + -0.0363793671131134, + -0.008018502034246922, + -0.023613687604665756, + 0.018095681443810463, + 0.016666827723383904, + -0.004735428374260664, + 0.0246101263910532, + 0.023557286709547043, + -0.0004191970219835639, + 0.009635362774133682, + -0.02682860940694809, + 0.015012364834547043, + -0.02524935081601143, + 0.059222228825092316, + -0.045460108667612076, + 0.016018202528357506, + -0.010707003064453602, + -0.04218878597021103, + -0.011900847777724266, + 0.017362453043460846, + 0.007026764564216137, + -0.024572525173425674, + 0.04647534713149071, + -0.013339102268218994, + 0.033352453261613846, + -0.009795168414711952, + 0.006998563185334206, + -0.02611418254673481, + 0.03959428891539574, + 0.024422118440270424, + 0.021150795742869377, + -0.02199682779610157, + -0.03609735891222954, + 0.014946562238037586, + 0.003948148339986801, + 0.013357902877032757, + -0.0159147996455431, + 0.0455729141831398, + 0.09603401273488998, + 0.013122893869876862, + -0.03126557543873787, + -0.041737571358680725, + 0.007153668906539679, + 0.007026764564216137, + 0.004580322187393904, + -0.0042654103599488735, + 0.0026838008780032396, + -0.017381254583597183, + -0.00019711366621777415, + -0.003179669613018632, + -0.02968631684780121, + -0.021244799718260765, + 0.0074074785225093365, + -0.02468532882630825, + -0.00862012431025505, + -0.007369877304881811, + -0.0013865521177649498, + 0.043091222643852234, + -0.046324942260980606, + 0.019195521250367165, + 0.004667275585234165, + -0.030739156529307365, + 0.021790020167827606, + -0.019590336829423904, + -0.012201659381389618, + -0.01012418046593666, + 0.006702451966702938, + -0.025211747735738754, + 0.0009359227260574698, + 0.027336228638887405, + 0.008559022098779678, + -0.026076581329107285, + -0.005856420379132032, + -0.011045415885746479, + 0.0014218034921213984, + 0.011938448995351791, + -0.022504447028040886, + -0.04643774777650833, + -0.03854145109653473, + -0.0015628087567165494, + 0.029460707679390907, + 0.0460241325199604, + 0.007492081727832556, + 0.05335640907287598, + 0.018781905993819237, + -0.013301500119268894, + -0.009470856748521328, + 0.058357395231723785, + 0.022297639399766922, + 0.012248660437762737, + -0.04636254534125328, + 0.0644112229347229, + -0.02429051324725151, + -0.034386493265628815, + 0.01789827272295952, + 0.015228573232889175, + 0.002784854732453823, + -0.04004550725221634, + 0.015012364834547043, + 0.02509894408285618, + -0.009508457966148853, + -0.02991192601621151, + 0.029310302808880806, + 0.010152381844818592, + 0.00993617344647646, + -0.012154657393693924, + 0.0006956261931918561, + 0.03978229686617851, + 0.007604886312037706, + -0.02160201221704483, + 0.00933455117046833, + -0.006993863265961409, + -0.037074994295835495, + 0.024553723633289337, + 0.05674053356051445, + -0.04801700636744499, + -0.01693003624677658, + -0.002039876766502857, + 0.01373391691595316, + -0.014749154448509216, + -0.008469718508422375, + 0.019515134394168854, + -0.02389569953083992, + -0.005565009545534849, + -0.009766967035830021, + 0.022936861962080002, + -0.0189887136220932, + 0.0189887136220932, + 0.013160495087504387, + -0.05019788816571236, + 0.02712942101061344, + -0.04064713045954704, + 0.05252917483448982, + -0.025117745622992516, + -0.0012666976545006037, + 0.02744903229176998, + 0.016901835799217224, + -0.012145256623625755, + 0.03519492223858833, + 0.024027304723858833, + 0.04888183996081352, + 0.03472490608692169, + -0.016243811696767807, + 0.002890608739107847, + -0.0036520373541861773, + 0.0103309890255332, + -0.01112061832100153, + -0.002733152825385332, + 0.010857408866286278, + 0.027561837807297707, + -0.02034236490726471, + 0.0005578522104769945, + 0.00859192293137312, + 0.05467245727777481, + 0.026809807866811752, + 0.0247605312615633, + -0.029968326911330223, + 0.018471695482730865, + 0.028614675626158714, + 0.029460707679390907, + -0.002502844203263521, + -0.007680088747292757, + -0.04640014469623566, + -0.013160495087504387, + -0.003069215454161167, + 0.010114780627191067, + -0.02991192601621151, + 0.04139915853738785, + -0.0013795018894597888, + 0.029385505244135857, + -0.002133880276232958, + 0.01087620947510004, + -0.017700865864753723, + 0.022824058309197426, + -0.0002809824363794178, + -0.02303086593747139, + -0.015867797657847404, + -0.0011732816928997636, + 0.0492202527821064, + -0.0636591985821724, + 0.026565399020910263, + -0.048543427139520645, + -0.05110032111406326, + -0.022354040294885635, + 0.015143970027565956, + -0.03822183609008789, + -0.011882047168910503, + 0.04429446533322334, + 0.04865622892975807, + -0.019120318815112114, + -0.02831386588513851, + -0.016337813809514046, + 0.014824357815086842, + 0.03639816865324974, + 0.07971499860286713, + 0.004326512571424246, + -0.014147532172501087, + 0.03534533083438873 + ] + } + }, + { + "type": "维修工作", + "properties": { + "名称": "连杆大端轴承的维修工作", + "knowledge_source": "[]", + "embedding": [ + -0.0227820947766304, + -0.020557131618261337, + -0.05123118683695793, + 0.004647224210202694, + 0.009090017527341843, + 0.007944256998598576, + 0.03109242394566536, + 0.003190063638612628, + -0.050964951515197754, + -0.02282012812793255, + 0.0015130219981074333, + 0.021565021947026253, + 0.026794632896780968, + 0.039554890245199203, + -0.022154541686177254, + -0.05168759077787399, + 0.012408444657921791, + -0.019606294110417366, + 0.031016357243061066, + -0.02135583572089672, + -0.0012931405799463391, + 0.0365692563354969, + -0.03171997889876366, + 0.006850792560726404, + -0.0019218826200813055, + -0.0005458408268168569, + 0.032708849757909775, + 0.015983598306775093, + 0.02449360489845276, + -0.019225958734750748, + -0.06629247218370438, + -0.02591986209154129, + -0.012988456524908543, + -0.0342111736536026, + -0.002305783797055483, + -0.049139343202114105, + 0.009917247109115124, + -0.0021845519077032804, + -0.0600549690425396, + 0.04069589450955391, + -0.021546004340052605, + -0.00675570871680975, + -0.006731937639415264, + 0.010896611027419567, + -0.003294656053185463, + -0.039174553006887436, + -0.02533034235239029, + -0.027992689982056618, + -0.013596992939710617, + -0.01081103552132845, + -0.008800012059509754, + -0.01158121507614851, + 0.003365968819707632, + -0.010649393312633038, + -0.0013965442776679993, + 0.04297790676355362, + 0.0527905635535717, + -0.03238556534051895, + -0.031967196613550186, + -0.0066416081972420216, + -0.000645976047962904, + 0.022953245788812637, + 0.03457249328494072, + -0.008291313424706459, + 0.029019596055150032, + 0.08511907607316971, + -0.007468837779015303, + 0.03073110617697239, + -0.00039073528023436666, + -0.039174553006887436, + -0.005538635421544313, + 0.027403170242905617, + -0.011362521909177303, + -0.006750954780727625, + -0.04370054602622986, + 0.03291803598403931, + 0.000747002603020519, + -0.026699550449848175, + -0.013102556578814983, + 0.00528190890327096, + 0.029095662757754326, + 0.005372238345444202, + 0.04427104815840721, + 0.001044734031893313, + -0.05735458806157112, + 0.029000580310821533, + -0.034249208867549896, + 0.018313152715563774, + -0.05256236344575882, + 0.008914112113416195, + 0.026319215074181557, + -0.002409187378361821, + 0.025596577674150467, + 0.030655039474368095, + -0.02664249949157238, + -0.020195813849568367, + -0.02626216411590576, + -0.0037082708440721035, + 0.01236090250313282, + 0.048682939261198044, + 0.007345228921622038, + 0.0007054034504108131, + 0.009394286200404167, + -0.055985379964113235, + 0.059484466910362244, + -0.023847034201025963, + 0.004547385964542627, + 0.04415694624185562, + -0.032708849757909775, + 0.008324592374265194, + 0.007939502596855164, + 0.0366072878241539, + -0.03852798417210579, + 0.0034301504492759705, + 0.0010696934768930078, + -0.035352181643247604, + -0.01692492887377739, + -0.05522470921278, + 0.07268210500478745, + -0.00470665143802762, + 0.005144037306308746, + 0.0420270673930645, + -0.012912388890981674, + -0.02675659954547882, + -0.006560786627233028, + -0.005201087333261967, + 0.06195664778351784, + 0.03384985774755478, + 0.008605089969933033, + 0.0479983352124691, + 0.022839145734906197, + 0.04811243712902069, + -0.02856319397687912, + 0.010934644378721714, + -0.03423019126057625, + -0.06085367500782013, + -0.014652423560619354, + -0.028258925303816795, + 0.003018912859261036, + -0.023314563557505608, + 0.006323077250272036, + -0.007426050025969744, + -0.03152981027960777, + -0.007929994724690914, + -0.001350190956145525, + -0.0455641895532608, + 0.019263992086052895, + -0.010402174666523933, + 0.013007473200559616, + -0.011676298454403877, + 0.004972886294126511, + 0.03866109997034073, + 0.01350190956145525, + -0.02496902272105217, + 0.042673639953136444, + -0.05918020009994507, + -0.0588378980755806, + 0.025368375703692436, + -0.01409142930060625, + -0.0020573772490024567, + 0.06389635801315308, + 0.07169323414564133, + -0.023067345842719078, + -0.013359283097088337, + 0.03970702365040779, + 0.01812298595905304, + 0.02051909826695919, + 0.030540937557816505, + 0.013882244937121868, + -0.008286559022963047, + 0.006342093925923109, + -0.019225958734750748, + -0.009280185215175152, + 0.025140173733234406, + 0.018788572400808334, + -0.004495089873671532, + 0.06693904101848602, + 0.012798288837075233, + 0.009270677343010902, + -0.011847449466586113, + -0.006370618939399719, + 0.060777608305215836, + 0.01104874536395073, + -0.021660104393959045, + 0.03879421949386597, + 0.06286945194005966, + 0.05986480414867401, + -0.006765217054635286, + 0.00786343589425087, + 0.006727183703333139, + -0.01181892491877079, + -0.0014559717383235693, + 0.03982112184166908, + -0.01753346435725689, + -0.019016772508621216, + -0.027213003486394882, + -0.014348155818879604, + 0.0010768248466774821, + 0.04929147660732269, + -0.028620243072509766, + 0.0044665648601949215, + -0.028867462649941444, + 0.0408099964261055, + -0.005966512486338615, + -0.036188919097185135, + 0.020481064915657043, + 0.004775587003678083, + -0.03805256262421608, + 0.030160602182149887, + -0.03394494205713272, + -0.001231336034834385, + -0.03071208856999874, + 0.02890549600124359, + -0.014253071509301662, + -0.028392042964696884, + 0.019397109746932983, + 0.01932104118168354, + -0.04176083579659462, + -0.02257291041314602, + -0.02603396214544773, + -0.04948164522647858, + 0.04719963297247887, + 0.005258137825876474, + 0.0034491673577576876, + 0.04731373116374016, + -0.04358644410967827, + 0.06423866003751755, + -0.0019634817726910114, + 0.0009633184527046978, + -0.015175385400652885, + -0.023428665474057198, + 0.010792018845677376, + 0.003672614460811019, + 0.0007161003886722028, + 0.08101145178079605, + 0.0044237771071493626, + 0.021641088649630547, + -0.0010245286393910646, + 0.01915939897298813, + 0.023847034201025963, + 0.0018113476689904928, + -0.020975500345230103, + 0.049861978739500046, + -0.014947183430194855, + 0.02209749072790146, + 0.00557666877284646, + -0.026832668110728264, + 0.02938091568648815, + -0.020347947254776955, + 0.003922209609299898, + 0.010354633443057537, + 0.008281804621219635, + -0.03267081826925278, + -0.03141570836305618, + 0.014966201037168503, + -0.008999687619507313, + 0.03721582517027855, + -0.020081711933016777, + -0.006384881678968668, + -0.04731373116374016, + -0.018294135108590126, + 0.06667280942201614, + -0.02386604994535446, + 0.025729693472385406, + -0.02844909206032753, + 0.022648977115750313, + -0.030160602182149887, + -0.010963169857859612, + -0.03645515441894531, + 0.0318150632083416, + -0.053703367710113525, + 0.008029832504689693, + -0.013825193978846073, + 0.018313152715563774, + 0.055490944534540176, + -0.0071217818185687065, + 0.013577976264059544, + -0.009170838631689548, + 0.07880550622940063, + -0.024797871708869934, + 0.028201874345541, + 0.02183125540614128, + 0.023809000849723816, + -0.05305679887533188, + -0.017780683934688568, + 0.0221925750374794, + -0.06416259706020355, + -0.04468941688537598, + -0.007839664816856384, + -0.026224130764603615, + 0.00036488432670012116, + -0.06214681640267372, + 0.09493172913789749, + 0.009289694018661976, + -0.027460221201181412, + 0.05126922205090523, + -0.02892451174557209, + -0.16521772742271423, + 0.060549408197402954, + -0.004221723880618811, + 0.013549450784921646, + -0.0034016254357993603, + 0.01525145210325718, + -0.03398297354578972, + -0.005381746683269739, + -0.028544176369905472, + -0.00801081582903862, + -0.03639810532331467, + -0.07412738353013992, + -0.03620793670415878, + -0.030217653140425682, + -0.001138034975156188, + -0.005148791242390871, + -0.05739262327551842, + 0.01206614263355732, + 0.020918451249599457, + -0.0456402562558651, + -0.02677561715245247, + -0.013283216394484043, + -0.010544801130890846, + -0.0021500838920474052, + -0.01579342968761921, + -0.04689536243677139, + 0.03443937748670578, + -0.034743644297122955, + -0.03107340820133686, + -0.02713693492114544, + -0.012018600478768349, + 0.059940870851278305, + -0.014005853794515133, + 0.023219481110572815, + -0.024778855964541435, + -0.02555854432284832, + -0.0047803414054214954, + -0.013882244937121868, + -0.013035997748374939, + -0.008918866515159607, + 0.030674055218696594, + 0.06351602077484131, + -0.007868190295994282, + 0.028601227328181267, + -0.008800012059509754, + -0.0947795957326889, + 0.012693696655333042, + -0.029361898079514503, + -0.021450920030474663, + 0.0330321341753006, + -0.03740599378943443, + -0.0006489473744295537, + 0.014234054833650589, + 0.0036773686297237873, + -0.02533034235239029, + 0.01572687178850174, + 0.0257867444306612, + 0.029818300157785416, + 0.00627078115940094, + 0.03442035987973213, + -0.04932951182126999, + -0.025653626769781113, + -0.023732932284474373, + -0.05796312540769577, + -0.03430625796318054, + -0.024208351969718933, + -0.008272296749055386, + 0.0018945460906252265, + 0.0015486784977838397, + -0.06507539749145508, + 0.019045298919081688, + 0.025862811133265495, + 0.027308085933327675, + 0.0034562984947115183, + -0.010544801130890846, + 0.023618832230567932, + 0.005619456525892019, + -0.014024870470166206, + -0.00023028123541735113, + -0.11676298826932907, + 0.004775587003678083, + 0.06229894980788231, + 0.0018042164156213403, + -0.03609383478760719, + -0.021336819976568222, + 0.024911973625421524, + 0.010725460015237331, + 0.0007006492232903838, + 0.024170318618416786, + 0.2280491441488266, + 0.017305264249444008, + 0.0045782881788909435, + 3.261079473304562e-05, + 0.056365717202425, + -0.018541354686021805, + 0.03428724408149719, + -0.033545587211847305, + 0.04609666019678116, + -0.04221723601222038, + -0.02110861800611019, + 0.00554814375936985, + 0.03288000077009201, + -0.016687218099832535, + -0.020252862945199013, + 0.004815998021513224, + -0.011010712012648582, + 0.019416125491261482, + 0.11440490931272507, + -0.016478033736348152, + 0.012608121149241924, + 0.022972261533141136, + -0.04430908337235451, + -0.044347114861011505, + -0.09036770462989807, + -0.07903371006250381, + -0.021507970988750458, + 0.030807172879576683, + 0.03164391219615936, + 0.04358644410967827, + 0.014842591248452663, + 0.0030403067357838154, + 0.027764489874243736, + -0.019530225545167923, + -0.044004812836647034, + -0.0017519202083349228, + -0.02257291041314602, + -0.0025577559135854244, + 0.03611285239458084, + 0.01615474931895733, + -0.0003616158210206777, + -0.024531638249754906, + 0.00028391447267495096, + 0.007411787286400795, + -0.023219481110572815, + -0.07781663537025452, + -0.005434042774140835, + 0.016002614051103592, + 0.017723632976412773, + -0.016031140461564064, + -0.029818300157785416, + 0.00519157899543643, + -0.042559538036584854, + 0.00774458097293973, + -0.015213418751955032, + -0.023561783134937286, + -0.014747507870197296, + -0.03902241960167885, + 0.02747923694550991, + -0.014966201037168503, + 0.05857166275382042, + 0.012921897694468498, + -0.00011818627535831183, + 0.005115511827170849, + -0.02076631598174572, + 0.011248421855270863, + -0.012959931045770645, + 0.026129046455025673, + -0.002671856665983796, + -0.012028109282255173, + 0.0032447369303554296, + -5.998454798827879e-05, + -0.024988040328025818, + 0.0113910473883152, + 0.03171997889876366, + -0.000337250588927418, + 0.014243563637137413, + 0.06633050739765167, + -0.04332020878791809, + 0.016002614051103592, + -0.06153827905654907, + -0.012028109282255173, + -0.018969232216477394, + -0.019511209800839424, + 0.0021132389083504677, + -0.01529899425804615, + -0.032081298530101776, + 0.003672614460811019, + -0.03603678569197655, + 0.01848430372774601, + -0.0408480279147625, + 0.011790399439632893, + -0.013178624212741852, + -0.01313108205795288, + -0.020842384546995163, + 0.030274704098701477, + 0.013112065382301807, + -0.02173617109656334, + -0.01482357457280159, + 0.008671648800373077, + 0.03183407709002495, + -0.026338230818510056, + 0.0036821227986365557, + 0.013663551770150661, + 0.019853511825203896, + 0.00345154432579875, + -0.03192916139960289, + 0.005367484409362078, + 0.007330966182053089, + -0.00731670344248414, + -0.012341885827481747, + 0.02399916760623455, + -0.0008593204547651112, + -0.04765603318810463, + 0.01158121507614851, + 0.022744061425328255, + -0.010601851157844067, + 0.0648471936583519, + 0.017523957416415215, + -0.01104874536395073, + -0.04107623174786568, + 0.06100580841302872, + 0.0001616425724932924, + 0.0021096733398735523, + -0.009765112772583961, + -0.0359797365963459, + 0.01062086783349514, + -0.02485492266714573, + 0.008267542347311974, + 0.05233415961265564, + 0.005562406033277512, + -0.01915939897298813, + 0.004725668113678694, + 0.005743065383285284, + 0.046629127115011215, + -0.009137559682130814, + 0.017191162332892418, + 0.04244543984532356, + -0.005229612812399864, + -0.021431904286146164, + -0.04731373116374016, + -0.09789834916591644, + -0.007307195104658604, + -0.010582834482192993, + 0.011267438530921936, + -0.05701228603720665, + -0.03383084014058113, + 0.025881828740239143, + -0.01807544380426407, + 0.014642915688455105, + -0.01585998944938183, + 0.03795747831463814, + 0.0012384674046188593, + -0.04404284805059433, + 0.005800115875899792, + -0.014224546030163765, + -0.013891752809286118, + 0.015184893272817135, + 0.006479965522885323, + -0.03396395593881607, + -0.01613573171198368, + 0.0028239907696843147, + -0.02245880849659443, + 0.00740703335031867, + 0.057430654764175415, + 0.024341469630599022, + -0.03398297354578972, + 0.052029892802238464, + 0.05929429829120636, + -0.02122271992266178, + 0.014842591248452663, + -0.02928583137691021, + -0.029799284413456917, + 0.0329941026866436, + 0.020195813849568367, + 0.005234366748481989, + -0.04236936941742897, + -0.006332585588097572, + -0.011486130766570568, + 0.04271167144179344, + -0.03603678569197655, + 0.0780448392033577, + -0.029742233455181122, + -0.036188919097185135, + -0.01577441394329071, + 0.01644950918853283, + -0.03504791483283043, + -0.014776033349335194, + 0.031967196613550186, + 0.002119181677699089, + -0.0456022210419178, + 0.09523600339889526, + 0.008167704567313194, + 0.02386604994535446, + 0.0035466281697154045, + 0.008833291009068489, + 0.03776731342077255, + -0.053589265793561935, + 0.01224680244922638, + -0.06427669525146484, + -0.03470561280846596, + 0.010991695336997509, + -0.0026932505425065756, + 0.04545008763670921, + -0.0063611106015741825, + -0.03194817900657654, + -0.041228365153074265, + -0.0038580279797315598, + -0.0008587261545471847, + -0.0060901218093931675, + 0.00322334305383265, + -0.005020427983254194, + -0.0008943825960159302, + 0.003035552566871047, + -0.02881041169166565, + -0.012436970137059689, + 0.005709786433726549, + 0.044004812836647034, + -0.03613187000155449, + -0.017067553475499153, + 0.024037200957536697, + 0.005681260954588652, + 0.03947881981730461, + 0.015983598306775093, + -0.000653701601549983, + 0.024531638249754906, + -0.004086229018867016, + -0.0023117265664041042, + 0.04153263196349144, + -0.015850480645895004, + 0.013055015355348587, + 0.018741030246019363, + 0.03398297354578972, + -0.03856601566076279, + 0.003905569901689887, + -0.009389531798660755, + -0.01697247102856636, + 0.052866630256175995, + -0.004977640230208635, + 0.017048537731170654, + -0.007340474519878626, + -0.025634611025452614, + 0.028601227328181267, + -0.01177138276398182, + -0.026071995496749878, + 0.0011659659212455153, + -0.052029892802238464, + -0.024322453886270523, + 0.005671752616763115, + 0.01938760094344616, + -0.008086882531642914, + 0.009746096096932888, + 0.07648546248674393, + 0.008143933489918709, + -0.02350473217666149, + -0.03771026059985161, + 0.0008373322780244052, + 0.01895972341299057, + -0.03563743457198143, + 0.011600231751799583, + 0.017000995576381683, + 0.030636021867394447, + -0.041684769093990326, + 0.006370618939399719, + -0.002161969430744648, + -0.005110757891088724, + 0.026737583801150322, + 0.006413406692445278, + -0.02316243015229702, + -0.07264407724142075, + -0.04537402093410492, + 0.006917351391166449, + -0.03731090947985649, + -0.037995513528585434, + -0.027650387957692146, + -0.00453074648976326, + -0.016763286665081978, + 0.015108826570212841, + 0.02472180500626564, + 0.013007473200559616, + -0.0015356044750660658, + -0.04894917458295822, + -0.002413941780105233, + 0.03493381291627884, + 0.018522337079048157, + 0.014462255872786045, + -0.013654042966663837, + 0.018113477155566216, + -0.01409142930060625, + -0.029076647013425827, + 0.02808777429163456, + -0.00777310598641634, + -0.023352596908807755, + 0.03685450553894043, + -0.02483590692281723, + 0.025235258042812347, + -0.01667771115899086, + 0.03947881981730461, + 0.0257867444306612, + -0.0014096183003857732, + -0.013197640888392925, + 0.030198635533452034, + -0.030559955164790154, + -0.02711791917681694, + 0.008210492320358753, + -0.024189336225390434, + -0.000981146702542901, + -0.011999583803117275, + 0.018569879233837128, + 0.016782302409410477, + 0.040239494293928146, + -0.07055222988128662, + -0.006627345457673073, + 0.02171715535223484, + -0.01481406670063734, + 0.03472462669014931, + -0.009993314743041992, + -0.010934644378721714, + -0.00820098351687193, + 0.02053811587393284, + -0.034249208867549896, + 0.015993107110261917, + -0.014471764676272869, + -0.041608698666095734, + -0.007782614324241877, + 0.025140173733234406, + 0.04271167144179344, + 0.04065786302089691, + -0.03854699805378914, + -0.008590827696025372, + -0.009185101836919785, + -0.027270052582025528, + 0.011619248427450657, + -0.007972782477736473, + 0.030636021867394447, + 0.019216449931263924, + -0.04286380857229233, + -0.017096079885959625, + 0.021298786625266075, + 0.03394494205713272, + -0.0257867444306612, + 0.034857746213674545, + 0.02736513689160347, + 0.010525784455239773, + 0.012379919178783894, + -0.02472180500626564, + -0.008443447761237621, + -0.025900844484567642, + 0.0443851500749588, + -0.00921838078647852, + 0.007264407351613045, + -0.04042965918779373, + -0.00855279341340065, + -0.040239494293928146, + 0.03596071898937225, + -0.018931197002530098, + -0.01457635685801506, + 0.001197462435811758, + 0.02544444240629673, + 0.019054807722568512, + 0.005315188318490982, + -0.011837941594421864, + -0.0047351764515042305, + 0.028715327382087708, + 0.030864223837852478, + 0.011742857284843922, + 0.00034259905805811286, + -0.05005214735865593, + 0.04666716232895851, + 0.0064752111211419106, + 0.010364141315221786, + 0.017837733030319214, + 0.019225958734750748, + 0.0468192957341671, + -0.030388804152607918, + 0.01864594593644142, + -0.03940275311470032, + 0.010487750172615051, + 0.004552139900624752, + 0.025254275649785995, + -0.04487958550453186, + -0.050926920026540756, + -0.027308085933327675, + -0.01800888404250145, + -0.013644535094499588, + -0.008662139996886253, + -0.02521624229848385, + -0.051801688969135284, + 0.021774206310510635, + 0.052866630256175995, + -0.0755346268415451, + 0.027536287903785706, + -0.00801081582903862, + 0.01356846746057272, + -0.14369073510169983, + 0.025881828740239143, + -0.014205529354512691, + -0.011314979754388332, + -0.025387393310666084, + -0.045183852314949036, + -0.011429080739617348, + -0.013302233070135117, + 0.012275326997041702, + 0.008239016868174076, + 0.02148895338177681, + -0.0005705031799152493, + 0.037615176290273666, + -0.019530225545167923, + -0.04282577335834503, + 0.03215736523270607, + -0.0006293363403528929, + -0.026604466140270233, + 0.009303956292569637, + 0.023789983242750168, + -0.017257722094655037, + -0.02268701046705246, + 0.005101249553263187, + -0.005999791901558638, + -0.0005393038154579699, + 0.022002406418323517, + 0.019587276503443718, + 0.0070742396637797356, + -0.009465598501265049, + -0.03491479530930519, + 0.002914320444688201, + -0.043510377407073975, + 0.0395929217338562, + -0.00036785571137443185, + -0.014880625531077385, + 0.01579342968761921, + 0.018626930192112923, + 0.03036978654563427, + 0.02002466283738613, + 0.003525234293192625, + 0.003729664720594883, + 0.007026697974652052, + 0.0006768782623112202, + 0.05545291304588318, + 0.010421192273497581, + 0.06229894980788231, + -0.018988247960805893, + -0.009232643060386181, + -0.00882378313690424, + 0.008704927749931812, + 0.022173557430505753, + 0.024988040328025818, + 0.02074730023741722, + 0.0162022914737463, + 0.007849173620343208, + 0.04659109562635422, + -0.05233415961265564, + 0.0014036755310371518, + -0.03183407709002495, + 0.05663195252418518, + -0.015146859921514988, + -0.009812654927372932, + -0.0347626619040966, + -0.010021839290857315, + -0.027916623279452324, + 0.020081711933016777, + 0.011609740555286407, + -0.006831775885075331, + 0.02508312463760376, + -0.017210179939866066, + 0.011029728688299656, + -0.006498982198536396, + 0.011181863024830818, + -0.008524268865585327, + 0.005985529627650976, + 0.0009478672873228788, + 0.020557131618261337, + -0.035333164036273956, + -0.0167918112128973, + -0.013311740942299366, + 0.01553670410066843, + -0.002469803439453244, + 0.03375477343797684, + 0.022953245788812637, + 0.05686015263199806, + 0.008324592374265194, + -0.024664755910634995, + -0.046134691685438156, + 0.048682939261198044, + -0.0021500838920474052, + -0.020861400291323662, + -0.004048195667564869, + -0.013425841927528381, + -0.02785957232117653, + 0.011533672921359539, + 0.021546004340052605, + -0.04472745209932327, + -0.028962545096874237, + -0.016829844564199448, + -0.02915271371603012, + -0.02050008252263069, + -0.023314563557505608, + 4.600982265401399e-06, + 0.04932951182126999, + -0.02329554781317711, + 0.004178936127573252, + -0.014595373533666134, + -0.014871116727590561, + -0.009432319551706314, + -0.039060451090335846, + -0.021679122000932693, + 0.004052949603646994, + 0.006256518419831991, + -0.02593887969851494, + -0.018294135108590126, + 0.002132255816832185, + -0.00029401713982224464, + -0.03219539672136307, + -0.012484511360526085, + -0.01211368478834629, + 0.015945564955472946, + 0.033526573330163956, + -0.04221723601222038, + -0.04008735716342926, + -0.002465049270540476, + 0.022744061425328255, + 0.05050855129957199, + 0.052866630256175995, + 0.02677561715245247, + 0.042673639953136444, + 0.017552481964230537, + -0.006099630147218704, + -0.03729189187288284, + 0.044841550290584564, + -0.003278016345575452, + 0.004136148374527693, + -0.05975070223212242, + 0.046248793601989746, + -0.04328217729926109, + -0.04430908337235451, + 0.053475167602300644, + 0.02831597626209259, + -0.004219346679747105, + -0.043130043894052505, + -0.0079537658020854, + -0.010849068872630596, + -0.017067553475499153, + -0.01805642619729042, + 0.03122554160654545, + 0.003817617194727063, + 0.01825610175728798, + -0.001262238365598023, + 0.01409142930060625, + 0.010231023654341698, + 0.02340964786708355, + -0.0019931956194341183, + 0.021660104393959045, + -0.03206228092312813, + -0.04773209989070892, + 0.030883239582180977, + 0.043510377407073975, + -0.03457249328494072, + -0.0035561365075409412, + -0.021450920030474663, + -0.004074343480169773, + -0.016601642593741417, + 0.03508594632148743, + 0.024170318618416786, + -0.000638250436168164, + 0.005643227603286505, + 0.012494020164012909, + 0.0025007056538015604, + -0.0281828586012125, + -0.018027901649475098, + 0.011429080739617348, + -0.03732992708683014, + 0.0228011105209589, + -0.07055222988128662, + 0.027193985879421234, + -0.03890831768512726, + -0.013663551770150661, + 0.08238065987825394, + 0.015137352049350739, + -0.01751444861292839, + 0.019625309854745865, + -0.020481064915657043, + -0.006161434575915337, + 0.01812298595905304, + 0.0020490572787821293, + -0.00513452896848321, + 0.005239121150225401, + 0.022154541686177254, + -0.03191014751791954, + 0.0008670460083521903, + 0.04719963297247887, + -0.01554621197283268, + 0.008471972309052944, + 0.01008839812129736, + 0.0013454366708174348, + 0.06819415092468262, + 0.004842145834118128, + 0.028753360733389854, + -0.021184684708714485, + 0.024151302874088287, + 0.013454367406666279, + 0.0035775303840637207, + 0.0001558484073029831, + 0.0018695865292102098, + -0.08268493413925171, + 0.009232643060386181, + 0.014490781351923943, + 0.015802938491106033, + -0.005267646163702011, + 0.044461216777563095, + 0.002947599859908223, + 0.032081298530101776, + -0.0014880625531077385, + -0.015080301091074944, + -0.04008735716342926, + 0.007811139803379774, + -0.012275326997041702, + -0.022116508334875107, + 0.00012516899732872844, + 0.011780891567468643, + 0.06868858635425568, + -0.04643896222114563, + 0.020557131618261337, + -0.021774206310510635, + -0.01825610175728798, + -0.04499368742108345, + 0.02112763561308384, + 0.0033754773903638124, + 0.013102556578814983, + 0.0756106898188591, + -0.006831775885075331, + 0.011314979754388332, + -0.005985529627650976, + -0.022002406418323517, + -0.011923517100512981, + 0.046248793601989746, + 0.043130043894052505, + 0.02411326952278614, + -0.022382741793990135, + 0.05115512013435364 + ] + } + }, + { + "type": "维修工作", + "properties": { + "名称": "活塞头的维修工作", + "knowledge_source": "[]", + "embedding": [ + -0.026704996824264526, + 0.016135074198246002, + -0.017120569944381714, + 0.01976788230240345, + 0.005598967429250479, + -0.01685004122555256, + 0.022936927154660225, + 0.008854967541992664, + -0.014473258517682552, + -0.007729377131909132, + -0.014502243138849735, + 0.01338148396462202, + 0.03576769307255745, + 0.022473163902759552, + 0.024849947541952133, + -0.0687914565205574, + 0.007985413074493408, + -0.02104322798550129, + 0.004260818939656019, + -0.04332315921783447, + 0.010975715704262257, + -0.0007373100961558521, + -0.03885944187641144, + 0.02629920467734337, + -0.0015700296498835087, + 0.01326554361730814, + 0.001829688437283039, + 0.019062576815485954, + 0.032927144318819046, + -0.03362279012799263, + -0.03375805541872978, + 0.011845270171761513, + -0.07033733278512955, + -0.04374827444553375, + -0.040347348898649216, + -0.0624920129776001, + -0.028289519250392914, + -0.00928491447120905, + -0.03934253007173538, + 0.037758007645606995, + 0.011410492472350597, + 0.002002391731366515, + 0.0401541143655777, + 0.003345370991155505, + 0.011487786658108234, + -0.03565175086259842, + -0.017207525670528412, + -0.029468249529600143, + -0.02952622063457966, + -0.04568061977624893, + -0.016289662569761276, + -0.00956027302891016, + 0.015613341704010963, + -0.037313565611839294, + 0.021874137222766876, + 0.04088840261101723, + 0.03553581237792969, + 0.03246338292956352, + -0.05383511260151863, + 0.00939119327813387, + -0.019487692043185234, + 0.05209600180387497, + -0.02139105089008808, + 0.019622955471277237, + 0.04150675609707832, + 0.08649172633886337, + -0.00019564985996112227, + 0.033043086528778076, + -0.0047052581794559956, + -0.026028677821159363, + -0.005362255498766899, + 0.032598648220300674, + 0.012550575658679008, + 0.0009275252232328057, + -0.0271687600761652, + 0.02879192866384983, + 0.02664702758193016, + -0.05800897255539894, + 0.023130159825086594, + 0.007313922978937626, + 0.02052149549126625, + 0.016415264457464218, + 0.008226955309510231, + 0.04811537265777588, + -0.038704853504896164, + 0.02083067037165165, + -0.016695454716682434, + -0.003067596582695842, + -0.02063743583858013, + -0.033989936113357544, + 0.007980581372976303, + 0.0003094770072493702, + -0.01370032038539648, + 0.02676296792924404, + -0.027748463675379753, + -0.005811525508761406, + 0.016676131635904312, + -0.015874208882451057, + 0.04425068199634552, + -0.003123151371255517, + 0.05456940084695816, + 0.025178445503115654, + 0.03532325103878975, + -0.03084021434187889, + 0.06025049462914467, + -0.012280047871172428, + 0.04235698655247688, + 0.0010736588155850768, + 0.0162220299243927, + -0.012724487110972404, + 0.029893364757299423, + -0.0015325904823839664, + -0.02964216098189354, + -0.024888593703508377, + -0.004374344367533922, + -0.043013982474803925, + 0.013603703118860722, + -0.05271435156464577, + 0.03167112171649933, + -0.004410575609654188, + -0.033777378499507904, + 0.030975477769970894, + -0.007483003195375204, + -0.034956108778715134, + -0.002134032780304551, + -0.004229418467730284, + 0.061178017407655716, + -0.023458659648895264, + 0.0446757972240448, + 0.015497400425374508, + -0.006574801169335842, + 0.01942972093820572, + -0.008024059236049652, + 0.007598943542689085, + -0.03180638700723648, + -0.01513991691172123, + 0.011255905032157898, + 0.035825662314891815, + 0.01631864719092846, + 0.002301905071362853, + -0.005893649999052286, + 0.05638580396771431, + 0.017593994736671448, + -0.008864629082381725, + -0.001952875405550003, + -0.03215420991182327, + 0.01730414293706417, + 0.0042366646230220795, + 0.051400355994701385, + 0.001782587612979114, + 0.013014338910579681, + 0.0011412908788770437, + -0.002359875477850437, + 0.017990125343203545, + 0.038067180663347244, + -0.04046328738331795, + -0.07659812271595001, + 0.0009625490056350827, + -0.01214478351175785, + -8.476650691591203e-05, + 0.04189322516322136, + 0.02363257110118866, + -0.042588867247104645, + -0.0019045667722821236, + 0.029584189876914024, + -0.012386326678097248, + 0.023555276915431023, + 0.0037849792279303074, + -0.01976788230240345, + 0.026898231357336044, + -0.004384005907922983, + -0.01198053453117609, + 0.03601889684796333, + 0.010096498765051365, + 0.01717854104936123, + 0.010618231259286404, + 0.022163989022374153, + -0.0019190594321116805, + 0.039052676409482956, + -0.02556491456925869, + 0.015825899317860603, + 0.024753330275416374, + 0.008734196424484253, + -0.024791976436972618, + 0.03418317064642906, + 0.027304023504257202, + 0.05750656500458717, + -0.02405768632888794, + 0.024734007194638252, + 0.002615910954773426, + -0.012695501558482647, + -0.014193068258464336, + 0.04541008919477463, + 0.019265472888946533, + 0.03487881273031235, + -0.03327496722340584, + 0.037661388516426086, + 0.013226896524429321, + 0.018763063475489616, + 0.010647216811776161, + 0.029390955343842506, + -0.021023904904723167, + 0.0076375906355679035, + -0.013941863551735878, + -0.03416384756565094, + 0.005101388785988092, + 0.04587385430932045, + -0.01509160827845335, + 0.03940049931406975, + -0.034627608954906464, + 0.02544897422194481, + -0.04050193727016449, + 0.000548302661627531, + -0.06314901262521744, + -0.013207572512328625, + 0.021564962342381477, + 0.019719572737812996, + -0.02181616611778736, + -0.013024000450968742, + -0.028173578903079033, + -0.036038219928741455, + 0.03584498539566994, + 0.029275014996528625, + -0.042588867247104645, + 0.030531039461493492, + -0.023381365463137627, + 0.014888712204992771, + -0.022820984944701195, + -0.0017487715231254697, + 0.016183383762836456, + -0.040656521916389465, + -0.017381437122821808, + -0.015449092723429203, + 0.0023272670805454254, + 0.04629896953701973, + 0.017874184995889664, + -0.003313970286399126, + -0.002099008997902274, + 0.007937104441225529, + 0.01772925816476345, + -0.029081780463457108, + -0.03348752483725548, + 0.008362219668924809, + -0.03124600648880005, + -0.037429507821798325, + 0.03478219732642174, + 0.04637626186013222, + 0.043439097702503204, + -0.005251145455986261, + -0.00928974524140358, + 0.0185698289424181, + 0.014966006390750408, + -0.044327978044748306, + -0.02115917019546032, + -0.005777709186077118, + 0.002202872419729829, + 0.02363257110118866, + -0.006565139628946781, + -0.025429651141166687, + -0.028656665235757828, + -0.004388836678117514, + 0.11516771465539932, + 0.018840355798602104, + 0.0014408042188733816, + -0.005980605259537697, + 0.037216950207948685, + -0.03169044479727745, + 0.02856004796922207, + 0.0006376735982485116, + 0.032289471477270126, + -0.04084975644946098, + -0.003463726956397295, + -0.016579514369368553, + 0.02117849327623844, + 0.031014125794172287, + 0.004014445003122091, + -0.00032970623578876257, + -0.010280071757733822, + 0.05723603814840317, + -0.018927311524748802, + 0.012627869844436646, + -0.00265697343274951, + 0.017333127558231354, + -0.03225082531571388, + 0.0030361958779394627, + 0.007492664735764265, + -0.073390431702137, + -0.038936737924814224, + 0.013178587891161442, + -0.05360322818160057, + 0.02728470042347908, + -0.0003318197268527001, + 0.07806670665740967, + -0.00480912160128355, + -0.044212035834789276, + 0.06983491778373718, + 0.0005815148469991982, + -0.17823943495750427, + -1.2879149835498538e-05, + -0.044327978044748306, + 0.05275299772620201, + -0.005338101182132959, + 0.003178706392645836, + -0.027574552223086357, + 0.023265425115823746, + -0.05445346236228943, + -0.0313812717795372, + -0.005859834142029285, + -0.07056920975446701, + 0.0018139882013201714, + -0.002237896202132106, + 0.02684026211500168, + 0.029622837901115417, + -0.04003817215561867, + -0.015352475456893444, + 0.01460852287709713, + -0.026241235435009003, + -0.0268595851957798, + 0.0029130089096724987, + 0.04285939410328865, + -0.012676178477704525, + -0.05789303407073021, + -0.05379646271467209, + 0.0009009555215016007, + -0.009164142422378063, + -0.041197579354047775, + -0.00041364243952557445, + -0.007753531448543072, + 0.022318575531244278, + -0.015468415804207325, + 0.06542917340993881, + -0.03211556002497673, + -0.025912735611200333, + -0.011835608631372452, + -0.02071473002433777, + -0.007304261438548565, + 0.012328356504440308, + 0.053448643535375595, + 0.05959349498152733, + 0.0018598813330754638, + 0.058240856975317, + -0.0064443680457770824, + -0.06353548169136047, + 0.02469535917043686, + -0.03136194869875908, + 0.002999964402988553, + 0.008608593605458736, + -0.022956250235438347, + -0.01197087299078703, + 0.014067466370761395, + -0.015574694611132145, + -0.030743597075343132, + -0.01085011288523674, + 0.013400807045400143, + 2.3682539904257283e-05, + -0.045603323727846146, + 0.051400355994701385, + -0.04575791209936142, + -0.07833723723888397, + -0.005917804315686226, + -0.015729282051324844, + -0.032617971301078796, + -0.017149554565548897, + -0.02481129951775074, + -0.02728470042347908, + -0.004248742014169693, + -0.056888215243816376, + 0.004623133689165115, + -0.033584143966436386, + 0.01945870742201805, + 0.01095639169216156, + -0.020366908982396126, + 0.007241460029035807, + -0.015536047518253326, + -0.006111038848757744, + -0.017767906188964844, + -0.1545875370502472, + -0.034646932035684586, + 0.02427024394273758, + -0.005647276062518358, + -0.044405270367860794, + -0.00898057036101818, + -0.00025739430566318333, + -0.004794629290699959, + 0.050743360072374344, + 0.02342001162469387, + 0.2372918725013733, + -0.032811205834150314, + 0.04510091617703438, + 0.00036956084659323096, + 0.06083019822835922, + -0.01664714515209198, + -0.012338018044829369, + -0.023903097957372665, + 0.01891764998435974, + -0.033023763447999954, + -0.018415240570902824, + -0.001281385775655508, + 0.03781597688794136, + 0.016193045303225517, + 0.004999940749257803, + -0.0041835252195596695, + -0.017159216105937958, + 0.038530945777893066, + 0.07999905198812485, + -0.01837659440934658, + -0.0055265044793486595, + -0.023226777091622353, + -0.02417362667620182, + 0.009371869266033173, + -0.023014219477772713, + -0.04738108068704605, + -0.01338148396462202, + 0.07864641398191452, + -0.024985210970044136, + 0.04278210178017616, + 0.0029782254714518785, + 0.027265377342700958, + 0.03845364972949028, + -0.019613293930888176, + -0.08881054073572159, + -0.016482897102832794, + 0.015526385977864265, + 0.005574813112616539, + 0.02125578746199608, + 0.01579691469669342, + -0.0010869436664506793, + -0.025642208755016327, + 0.020598789677023888, + -0.013671335764229298, + 0.0013767952332273126, + -0.061912309378385544, + 0.013825923204421997, + 0.026183264330029488, + 0.021023904904723167, + -0.006376735866069794, + 0.018434563651680946, + -0.011758314445614815, + -0.02181616611778736, + -0.005299454089254141, + -0.010009543038904667, + 0.0024878932163119316, + -0.016714777797460556, + -0.04100434482097626, + -0.0004311543016228825, + 0.012946706265211105, + 0.05518775060772896, + -0.013719644397497177, + -0.05016365647315979, + -0.008173815906047821, + -0.025333033874630928, + -0.015526385977864265, + -0.044637151062488556, + 0.022183312103152275, + -0.004311542958021164, + -0.0031279821414500475, + -0.01203850470483303, + 0.014212392270565033, + 0.004009614232927561, + 0.028656665235757828, + 0.032830528914928436, + -0.02179684303700924, + -0.002217364963144064, + 0.0648881196975708, + -0.0031062434427440166, + 0.035168666392564774, + -0.05456940084695816, + -0.04374827444553375, + -0.028598694130778313, + -0.019478030502796173, + 0.024231597781181335, + -0.015110932290554047, + -0.029584189876914024, + -0.021661579608917236, + -0.03267594054341316, + -0.013758291490375996, + -0.005941958632320166, + 0.03165179863572121, + -0.032598648220300674, + -0.0048187836073338985, + -0.022705044597387314, + -0.028753282502293587, + -0.020115703344345093, + -0.024096332490444183, + -0.02633785270154476, + 0.017139893025159836, + -0.01955532468855381, + -0.050009068101644516, + -0.01311095617711544, + -0.010405673645436764, + -0.003987875301390886, + 0.013623027130961418, + -0.02191278338432312, + 0.04765160754323006, + -0.0029371632263064384, + -0.0015289674047380686, + 0.02083067037165165, + 0.00012205471284687519, + 0.008193139918148518, + -0.04135216772556305, + 0.029680807143449783, + -0.007569958455860615, + -0.0014504658756777644, + 0.05476263538002968, + 0.033893316984176636, + 0.029622837901115417, + -0.04340045154094696, + 0.05329405516386032, + -0.024192949756979942, + 0.0223378986120224, + 0.0005259599420242012, + -0.023903097957372665, + -0.0046980120241642, + -0.014531228691339493, + -0.01943938247859478, + 0.04274345561861992, + 0.0009208827978000045, + -0.010154468938708305, + -0.0004839918401557952, + -0.013178587891161442, + 0.056656334549188614, + 0.015497400425374508, + -0.01752636209130287, + 0.00908201839774847, + 0.04950666055083275, + 0.019709911197423935, + -0.006492676679044962, + -0.04691731929779053, + -0.020250968635082245, + 0.0042535727843642235, + 0.01477277185767889, + -0.046569496393203735, + -2.109727392962668e-05, + -0.022183312103152275, + -0.023342719301581383, + 0.056540392339229584, + -0.02146834507584572, + 0.0537191703915596, + -0.01868576928973198, + -0.04208645597100258, + -0.00944433268159628, + -0.08950618654489517, + -0.0341251976788044, + -0.0215842854231596, + -0.012569899670779705, + -0.020212320610880852, + 0.0008943130960687995, + 0.02902381122112274, + -0.004666611552238464, + 0.0076472521759569645, + 0.04653085023164749, + 0.05410563945770264, + -0.0483086071908474, + 0.016801733523607254, + 0.022395869717001915, + 0.019052913412451744, + 0.034762874245643616, + -0.023458659648895264, + -0.011323537677526474, + 0.028946517035365105, + 0.006004759576171637, + -0.004456468857824802, + -0.022048048675060272, + 0.015980487689375877, + 0.0043236203491687775, + 0.039806291460990906, + -0.0035796677693724632, + 0.05302352458238602, + -0.025970706716179848, + 0.007405709475278854, + 0.000482482195366174, + -0.021932106465101242, + -0.0035820831544697285, + -0.011777638457715511, + 0.032502029091119766, + -0.01235734112560749, + -0.07138079404830933, + 0.09282981604337692, + 0.006140023935586214, + -0.0037608249112963676, + 0.011758314445614815, + -0.02148766815662384, + 0.06040508300065994, + -0.0040071988478302956, + 0.004903323482722044, + -0.034956108778715134, + 0.000964964390732348, + 0.007444356102496386, + 0.02332339435815811, + 0.03460828587412834, + -0.011497448198497295, + -0.0268595851957798, + -0.0017149555496871471, + 0.0035168665926903486, + -0.0008997477707453072, + 0.012695501558482647, + -0.01633797027170658, + -0.007057887502014637, + -0.0037439169827848673, + 0.04629896953701973, + -0.019806528463959694, + -9.986294753616676e-05, + 0.004371928982436657, + 0.06168042868375778, + -0.02276301570236683, + -0.020135026425123215, + 0.012927383184432983, + 0.00811101496219635, + 0.08401832729578018, + -0.006748712155967951, + 0.0029540713876485825, + 0.003961305599659681, + -0.01202884316444397, + -0.009111003018915653, + -0.02297557331621647, + -0.0011775222374126315, + 0.0135843800380826, + -0.01445393543690443, + -0.001053127576597035, + -0.03835703432559967, + 0.055149104446172714, + 0.0012632700381800532, + 0.02579679526388645, + 0.02386445179581642, + 0.013545732945203781, + 0.02535235695540905, + -0.006328427232801914, + -0.007255952805280685, + 0.06492676585912704, + 0.04912019148468971, + -0.021333079785108566, + 0.015352475456893444, + -0.05464669689536095, + -0.010521613992750645, + 0.0003408775955904275, + 0.042163752019405365, + -0.027265377342700958, + -0.007468510419130325, + 0.05379646271467209, + -0.011149626225233078, + -0.0006823590374551713, + 0.015439430251717567, + -0.004789798520505428, + -0.0018079496221616864, + -0.060443729162216187, + 0.006806682795286179, + 0.02975810132920742, + 0.04309127852320671, + -0.00022629562590736896, + 0.010724510997533798, + -0.03327496722340584, + -0.009961234405636787, + 0.0037487477529793978, + 0.036038219928741455, + -0.03360346704721451, + -0.0573519766330719, + -0.0033526173792779446, + -0.011565079912543297, + -0.038956061005592346, + -0.050318244844675064, + -0.01762297935783863, + -0.0008804243407212198, + -0.04123622551560402, + 0.039477791637182236, + 0.020772701129317284, + 0.0003535586001817137, + 0.010927407070994377, + -0.0537191703915596, + -0.018743738532066345, + 0.022260606288909912, + 0.02394174598157406, + -0.037970565259456635, + 0.022743692621588707, + 0.0009420178248547018, + -0.013787276111543179, + -0.024888593703508377, + -0.010241424664855003, + -0.014125436544418335, + -0.021004581823945045, + 0.04962259903550148, + -0.02523641660809517, + -0.009521625936031342, + -0.01187425572425127, + 0.02622191235423088, + -0.008879121392965317, + -0.00339609500952065, + -0.02061811275780201, + 0.0515935905277729, + -0.025738826021552086, + -0.01813505031168461, + 0.007883964106440544, + 0.0009492640965618193, + -0.03103344887495041, + -0.01986449956893921, + -0.010164130479097366, + 0.0029927182476967573, + 0.0023308901581913233, + -0.05313946679234505, + -0.0007415370782837272, + 0.03683048114180565, + -0.002313982229679823, + 0.018289638683199883, + 0.023342719301581383, + -0.004562747664749622, + -0.005086896009743214, + 0.00025226149591617286, + -0.01750703901052475, + 0.0035265283659100533, + -0.028076961636543274, + 0.023903097957372665, + -0.03578701615333557, + 0.026685673743486404, + -0.019825851544737816, + 0.025970706716179848, + -0.012173769064247608, + -0.026820939034223557, + -0.0021569791715592146, + 0.004797044675797224, + 0.0062849498353898525, + -0.02664702758193016, + 0.034762874245643616, + -0.0047318278811872005, + 0.01321723498404026, + -0.028424784541130066, + 0.027555229142308235, + -0.049583952873945236, + -0.04197051748633385, + 0.025197768583893776, + 0.06569970399141312, + 0.018115727230906487, + 0.021758196875452995, + -0.0016581929521635175, + -0.0637287124991417, + -0.011729329824447632, + 0.024676036089658737, + 0.01202884316444397, + 0.005980605259537697, + 0.040772464126348495, + -0.00045983755262568593, + -0.034762874245643616, + -0.011681021191179752, + 0.026569733396172523, + 0.02374851144850254, + 0.029390955343842506, + 0.011690682731568813, + -0.010270409286022186, + -0.004681103862822056, + 0.010434659197926521, + -0.0013804184272885323, + 0.03252135217189789, + 0.02330407127737999, + -0.026569733396172523, + -0.01187425572425127, + -0.0375840961933136, + 0.03623145446181297, + -0.009763169102370739, + -0.03578701615333557, + -0.01451190561056137, + -0.011796961538493633, + 0.0069226231426000595, + -0.026376498863101006, + -0.0005525297019630671, + -0.03578701615333557, + 0.03580633923411369, + 0.026395821943879128, + -0.008743857964873314, + -0.03955508768558502, + -0.04513956233859062, + -0.00929940678179264, + 0.0028115608729422092, + -0.015864545479416847, + 0.012222077697515488, + -0.03683048114180565, + -0.035072047263383865, + 0.05468534305691719, + 0.031748417764902115, + -0.04200916364789009, + -0.006183501798659563, + -0.01192256435751915, + 0.020115703344345093, + -0.16046187281608582, + -0.0020458693616092205, + -0.014183406718075275, + -0.022589104250073433, + -0.037313565611839294, + -0.00229586660861969, + -0.01570029743015766, + 0.012879074551165104, + 0.0017958724638447165, + 0.01783553697168827, + 0.0389174148440361, + 0.041313521564006805, + -0.008666563779115677, + -0.010386350564658642, + -0.050009068101644516, + 0.034009259194135666, + -0.007772854529321194, + -0.020154351368546486, + -0.008671394549310207, + 0.04479173943400383, + 0.012898397631943226, + -0.02113984525203705, + -0.005053080152720213, + 0.006937115918844938, + 0.025062505155801773, + -0.022859632968902588, + 0.013661674223840237, + 0.011072332970798016, + -0.011188273318111897, + 0.023709863424301147, + -0.017381437122821808, + -0.06983491778373718, + 0.04050193727016449, + 0.045719265937805176, + 0.02372918650507927, + 0.0033791870810091496, + 0.0017052937764674425, + 0.0455646775662899, + 0.03267594054341316, + 0.007613436318933964, + 0.0064443680457770824, + -0.011449139565229416, + -0.010975715704262257, + 0.03300444036722183, + -0.011758314445614815, + 0.04169999063014984, + -0.0019806527998298407, + 0.017767906188964844, + 0.01986449956893921, + -0.02050217241048813, + 0.014270362444221973, + 0.029680807143449783, + -0.0016992551973089576, + 0.019922468811273575, + 0.024115655571222305, + 0.038704853504896164, + 0.004340528044849634, + -0.016453910619020462, + -0.01943938247859478, + 0.06264659762382507, + -0.012589222751557827, + 0.0053960713557899, + -0.02287895604968071, + -0.04622167348861694, + -0.006207656115293503, + -0.02394174598157406, + -0.026666350662708282, + -0.013352498412132263, + 0.026492439210414886, + -0.029932012781500816, + 0.019420059397816658, + -0.04370962828397751, + -0.02589341253042221, + -0.027748463675379753, + 0.032270148396492004, + -0.00795642752200365, + -0.014946682378649712, + -0.025738826021552086, + -0.023168807849287987, + 0.02651176229119301, + 0.0028067301027476788, + 0.041622694581747055, + -0.0025289554614573717, + 0.03447302058339119, + 0.03565175086259842, + 0.010260747745633125, + -0.02631852775812149, + -0.02363257110118866, + 0.020598789677023888, + 0.018424902111291885, + -0.020579466596245766, + -0.010251086205244064, + -0.006425044499337673, + 0.022608427330851555, + -0.0328884981572628, + -0.0018308961298316717, + -0.008777673356235027, + 0.015381460078060627, + -0.00547819584608078, + -0.025700177997350693, + -0.02372918650507927, + -0.008468498475849628, + 0.02256978116929531, + 0.025294385850429535, + -0.012869413010776043, + 0.006420213729143143, + -0.02738131769001484, + -0.03911064937710762, + 0.014318671077489853, + -0.024791976436972618, + -0.027690492570400238, + 0.0003698627697303891, + -0.0023876528721302748, + -0.023284748196601868, + -0.031072095036506653, + 0.03341023251414299, + -0.007217305712401867, + -0.039690349251031876, + -0.02104322798550129, + -0.024656713008880615, + 0.004340528044849634, + 0.006429875269532204, + -0.047110553830862045, + -0.045603323727846146, + -0.04730378836393356, + 0.003833287861198187, + 0.024579418823122978, + 0.04761296138167381, + 0.026898231357336044, + 0.03547783941030502, + 0.0324440598487854, + -0.04243427887558937, + -0.0011902032420039177, + 0.060868844389915466, + 0.019961116835474968, + 0.0031183206010609865, + -0.02846343070268631, + 0.06090749055147171, + -0.025429651141166687, + -0.020135026425123215, + 0.03715898096561432, + 0.027207406237721443, + -0.01057958509773016, + -0.051284417510032654, + -0.021023904904723167, + -0.02340068854391575, + -0.05259840935468674, + -0.04212510585784912, + 0.030434422194957733, + -0.013883893378078938, + -0.01763264089822769, + -0.029912689700722694, + 0.002654557814821601, + 0.0461830273270607, + -0.024096332490444183, + -0.015371798537671566, + 0.05963214486837387, + 0.02139105089008808, + -0.06446300446987152, + 0.008507145568728447, + 0.03530392795801163, + -0.04382556676864624, + -0.03060833364725113, + 0.013545732945203781, + 0.019613293930888176, + -0.010927407070994377, + 0.028270196169614792, + 0.005111050326377153, + -0.02869531139731407, + 0.007231798488646746, + -0.006429875269532204, + 0.040347348898649216, + -0.003925074357539415, + -0.019709911197423935, + 0.007270445115864277, + -0.045255500823259354, + -0.004883999936282635, + 0.009647228755056858, + 0.06910063326358795, + -0.04351639375090599, + -0.00411106226965785, + 0.04189322516322136, + 0.024791976436972618, + 0.0111689493060112, + 0.015623003244400024, + 0.0024613235145807266, + -0.03279188275337219, + 0.0015386290615424514, + -0.0055265044793486595, + -0.016028795391321182, + -0.001609884318895638, + 0.0015434599481523037, + -0.07327449321746826, + 0.014463596977293491, + 0.03538122400641441, + 0.0014057804364711046, + 0.014193068258464336, + 0.05476263538002968, + 0.0003230638103559613, + 0.06334224343299866, + 0.013516748324036598, + -0.005386409815400839, + -0.043245863169431686, + -0.005111050326377153, + -0.012598884291946888, + -0.016821056604385376, + 0.02343933656811714, + 0.015304166823625565, + -0.06048237532377243, + 0.012724487110972404, + 0.01047330629080534, + -0.026492439210414886, + 0.00027128300280310214, + 0.012772795744240284, + 0.027439288794994354, + 0.008362219668924809, + -0.03279188275337219, + 0.04799943044781685, + -0.013342836871743202, + 0.004427483770996332, + -0.008347727358341217, + -0.019603632390499115, + -0.016724439337849617, + -0.011748652905225754, + 0.04776754975318909, + -0.03814447671175003, + 0.0313812717795372, + -0.0537191703915596, + -0.0682503953576088, + -0.013961187563836575, + -0.01709158532321453, + 0.03143924102187157, + -3.0230619813664816e-05, + 0.04510091617703438, + -0.007318753749132156, + -0.04714919999241829, + -0.01945870742201805, + -0.03756477311253548, + -0.0002332399890292436, + 0.04869507625699043, + 0.054839931428432465, + 0.004434729926288128, + 0.0031980297062546015, + 0.05317811295390129 + ] + } + }, + { + "type": "维修工作", + "properties": { + "名称": "1号压缩环的维修工作", + "embedding": [ + -0.04746868461370468, + 0.016536377370357513, + -0.03409562259912491, + -0.005275350529700518, + 0.025495950132608414, + -0.024851921945810318, + -0.005223260261118412, + 0.030534524470567703, + -0.040498025715351105, + 0.005554745439440012, + -0.008495492860674858, + -0.018089622259140015, + 0.005843610968440771, + -0.002528758719563484, + -0.017265645787119865, + -0.02981472946703434, + 0.020211128517985344, + 0.017625542357563972, + 0.016517436131834984, + -0.02509816735982895, + 0.004257217515259981, + 0.002112034475430846, + -0.012700620107352734, + 0.005019633565098047, + -0.026575643569231033, + 0.020911982282996178, + -0.01613859459757805, + 0.004939130041748285, + 0.04477892071008682, + -0.009002191945910454, + -0.05462876707315445, + -0.025211818516254425, + -0.03330006077885628, + -0.06648646295070648, + -0.018023325130343437, + -0.022370517253875732, + 0.011440975591540337, + -0.01633748598396778, + -0.037391532212495804, + 0.02426471933722496, + -0.04637004807591438, + -0.020495258271694183, + 0.023620691150426865, + -0.009745665825903416, + 0.0015437740366905928, + -0.0008085871813818812, + 0.0012276791967451572, + -0.02318502403795719, + -0.047885410487651825, + -0.020627852529287338, + 0.016706855967640877, + -0.00402754545211792, + 0.008206627331674099, + -0.05390897020697594, + -0.01068329531699419, + 0.02405635640025139, + 0.02845090441405773, + -0.007950910367071629, + -0.0047757551074028015, + -0.025514891371130943, + 0.012037649750709534, + 0.050575174391269684, + 0.005379531532526016, + -0.022067444398999214, + 0.03011780045926571, + 0.0586065873503685, + 0.0038049768190830946, + 0.028697149828076363, + 5.641908137477003e-05, + -0.027257556095719337, + -0.008751209825277328, + 0.04591543972492218, + 0.011687221936881542, + 0.0017497685039415956, + -0.04860520735383034, + 0.04413488879799843, + 0.031841523945331573, + -0.011403092183172703, + -0.019567100331187248, + 0.00487756822258234, + 0.023355502635240555, + 0.018582114949822426, + -0.013988676480948925, + -0.014036031439900398, + 0.0044632116332650185, + 0.031292203813791275, + -0.009130050428211689, + 0.03989188000559807, + -0.03676644712686539, + -0.061599425971508026, + 0.022256866097450256, + 0.029454831033945084, + -0.016990985721349716, + 0.019216671586036682, + -0.027087079361081123, + 0.0221242718398571, + -0.0052658794447779655, + -0.01949133165180683, + 0.042089153081178665, + 0.01849687658250332, + 0.04110416769981384, + 0.08743633329868317, + 0.04951442405581474, + -0.016148066148161888, + 0.05648508295416832, + -0.05273456498980522, + -0.003194096963852644, + 0.04720349609851837, + -0.048150599002838135, + -0.03301592916250229, + -0.011583041399717331, + 0.04856732115149498, + -0.04674888774752617, + -0.015911290422081947, + -0.010920070111751556, + -0.04216492176055908, + -0.007051164284348488, + -0.03572463616728783, + 0.04989326372742653, + -0.004901245702058077, + 0.015153610147535801, + 0.04243011027574539, + -0.0012726665008813143, + -0.03146268427371979, + -0.009106372483074665, + -0.016214363276958466, + 0.04083897918462753, + 0.004243011120706797, + 0.02695448510348797, + 0.021309765055775642, + -0.025211818516254425, + 0.06898681074380875, + -0.021158229559659958, + 0.03951304033398628, + -0.02930329367518425, + -0.0590611957013607, + -0.013846611604094505, + -0.024132125079631805, + -0.001549693406559527, + -0.034985899925231934, + -0.003078077221289277, + 0.029985206201672554, + 0.02691660076379776, + -0.022105328738689423, + 0.008964307606220245, + -0.03905843198299408, + 0.0009950476232916117, + -0.00791302602738142, + 0.037391532212495804, + -0.014727415516972542, + -0.0073873852379620075, + 0.024226834997534752, + 0.006890157237648964, + -0.028924454003572464, + -0.008699119091033936, + -0.009295793250203133, + -0.04330144077539444, + -0.008703854866325855, + 0.029435887932777405, + -0.0035019046626985073, + 0.020703621208667755, + 0.05137073993682861, + -0.045763902366161346, + -0.015030487440526485, + 0.046597350388765335, + 0.022768300026655197, + 0.0171425212174654, + 0.014983132481575012, + -0.019889114424586296, + 0.044703152030706406, + 0.007169552147388458, + -0.006814389023929834, + -0.038660649210214615, + 0.0014466962311416864, + 0.021461300551891327, + 0.014992603100836277, + 0.05618201196193695, + 0.010228686966001987, + 0.026253629475831985, + -0.012047120369970798, + 0.027920527383685112, + 0.046786773949861526, + 0.0035184789448976517, + -0.02663247101008892, + 0.032049886882305145, + 0.02375328354537487, + 0.04879462718963623, + -0.027257556095719337, + 0.014168625697493553, + 0.016280660405755043, + 0.019623925909399986, + 0.014736886136233807, + 0.013875024393200874, + 0.014651646837592125, + 0.029113873839378357, + -0.0018042267765849829, + 0.0027465918101370335, + -0.010152919217944145, + 0.011412562802433968, + -0.007022751495242119, + 0.04458949714899063, + -0.014339104294776917, + 0.04519564285874367, + -0.021177170798182487, + -0.03752412647008896, + 0.0349290706217289, + -0.019084077328443527, + -0.009802491404116154, + 0.02350703813135624, + -0.053719550371170044, + -0.029492713510990143, + -0.04405912384390831, + -0.0020421857479959726, + -0.003194096963852644, + -0.04902192950248718, + 0.05758371949195862, + 0.020911982282996178, + -0.06050078943371773, + -0.004823110066354275, + -0.0317278727889061, + -0.0032509230077266693, + 0.04477892071008682, + 0.020684678107500076, + -0.05724276229739189, + 0.01148833055049181, + -0.038906894624233246, + 0.01640378311276436, + 0.03716422989964485, + -0.0370316356420517, + -0.021309765055775642, + -0.037562012672424316, + -0.03290227800607681, + -0.018146447837352753, + -0.00606617983430624, + 0.02612103521823883, + 0.04561236873269081, + 0.01895148493349552, + 0.007093783933669329, + 0.016252247616648674, + -0.004205126781016588, + -0.017843376845121384, + -0.005005427170544863, + 0.012037649750709534, + -0.018695766106247902, + -0.011166316457092762, + -0.01949133165180683, + 0.04542294889688492, + 0.05489395558834076, + -0.03269391506910324, + 0.01665950007736683, + 0.001769894384779036, + 0.00369842816144228, + -0.014272807165980339, + 0.03924785181879997, + 0.027579570189118385, + -0.006246129050850868, + 0.05099190026521683, + -0.019055664539337158, + 0.017492949962615967, + -0.03407668322324753, + -0.006975396536290646, + 0.07262367755174637, + -0.002064679516479373, + 0.013278351165354252, + -0.022105328738689423, + -0.02718178927898407, + 0.003078077221289277, + 0.02801523730158806, + -0.023431269451975822, + 0.02214321307837963, + -0.029435887932777405, + 0.0009838008554652333, + -0.025931615382432938, + 0.058455053716897964, + 0.02668929658830166, + 0.036292895674705505, + 0.018676824867725372, + -0.009982440620660782, + 0.08372370153665543, + 0.006302954629063606, + 0.05246937647461891, + 0.020722562447190285, + 0.03623607009649277, + -0.031197495758533478, + -0.02612103521823883, + 0.020419489592313766, + -0.12009236216545105, + 0.016526905819773674, + 0.025136051699519157, + -0.011033722199499607, + -0.039134200662374496, + -0.0352889709174633, + 0.06023560091853142, + -0.01737929694354534, + -0.03591405600309372, + 0.0827387124300003, + -0.016517436131834984, + -0.16305284202098846, + 0.020230069756507874, + -0.004449005238711834, + 0.0061608897522091866, + 0.008467080071568489, + 0.0033361620735377073, + 0.03242872655391693, + 0.0013993412721902132, + -0.05830351635813713, + -0.05326494202017784, + -0.033413711935281754, + -0.06675165146589279, + -0.005782049614936113, + 0.00921528972685337, + 0.03301592916250229, + -0.008504963479936123, + -0.04436219483613968, + 0.008126123808324337, + -0.0069043636322021484, + -0.009991912171244621, + -0.05201476812362671, + 0.004344824235886335, + 0.020154301077127457, + 0.003670015139505267, + -0.04860520735383034, + -0.03246660903096199, + 0.02901916392147541, + -0.013789785094559193, + -0.02297666110098362, + -0.005085930693894625, + -0.024738268926739693, + 0.025022398680448532, + -0.006582349538803101, + 0.060008298605680466, + -0.0007446578820236027, + -0.019055664539337158, + -0.0028720826376229525, + -0.004136462230235338, + -0.02113928645849228, + -0.012624851427972317, + 0.05985676124691963, + 0.04038437083363533, + -0.018923070281744003, + 0.05068882554769516, + 0.0007908290717750788, + -0.06258440762758255, + -0.026310456916689873, + -0.036292895674705505, + -0.02185908332467079, + 0.002737120958045125, + -0.04565025120973587, + -0.0023736709263175726, + 0.012624851427972317, + 0.023885877802968025, + -0.011194730177521706, + 0.0017971234628930688, + -0.018923070281744003, + 0.03532685339450836, + -0.06944142282009125, + 0.0696687251329422, + -0.03822498396039009, + -0.05095401406288147, + -0.0032556585501879454, + 0.006189303006976843, + -0.05481818690896034, + -0.04284683242440224, + -0.028678208589553833, + -0.024416254833340645, + 0.04777175560593605, + -0.02138553187251091, + -0.016517436131834984, + -0.0015875775134190917, + -0.016782622784376144, + 0.006833331193774939, + -0.030780771747231483, + 0.02242734283208847, + -0.03159527853131294, + -0.030970191583037376, + -0.05546221509575844, + -0.1348671317100525, + -0.030231453478336334, + 0.0026282044127583504, + -0.007856199517846107, + -0.01041810680180788, + -0.03570569306612015, + -0.005526332184672356, + 0.02165072038769722, + 0.044741034507751465, + -0.025799021124839783, + 0.22669801115989685, + -0.013609836809337139, + 0.024435196071863174, + -0.0014384090900421143, + 0.054439347237348557, + -0.04356662929058075, + 0.014405401423573494, + -0.031519509851932526, + 0.03316746652126312, + -0.044475845992565155, + -0.03581934794783592, + 0.02032477967441082, + 0.0018444785382598639, + -0.015087313018739223, + 0.01685839146375656, + -0.011772461235523224, + 0.03138691559433937, + -0.015617690049111843, + 0.09736194461584091, + -0.017606601119041443, + 0.06497110426425934, + 0.004441902041435242, + -0.00739685632288456, + -0.011734576895833015, + -0.054742418229579926, + -0.04773387312889099, + -0.024188950657844543, + 0.027579570189118385, + -0.009570452384650707, + 0.03377360850572586, + -0.006705472711473703, + 0.005010162480175495, + 0.03061029314994812, + -0.00029700485174544156, + -0.043642397969961166, + 0.014708473347127438, + -0.016555318608880043, + 0.013287821784615517, + 0.011137903667986393, + -0.02193485200405121, + -0.03186046704649925, + -0.04201338440179825, + -0.0012016339460387826, + -0.025912674143910408, + 0.019150374457240105, + -0.05356801301240921, + 0.008675442077219486, + -0.03347053751349449, + 0.022881951183080673, + -0.002023243810981512, + -0.033925145864486694, + 0.016309073194861412, + 0.0012525406200438738, + -0.004707090090960264, + -0.011829286813735962, + 0.013827669434249401, + -0.028147831559181213, + -0.031841523945331573, + -0.015428269281983376, + 0.009305263869464397, + -0.023336559534072876, + -0.019396621733903885, + -0.04834001883864403, + 0.031254321336746216, + -0.021802257746458054, + 0.033356886357069016, + -0.0169152170419693, + 0.012482786551117897, + 0.005441093351691961, + -0.0007772144745104015, + -0.006146683357656002, + -0.007662044372409582, + 0.0006233106250874698, + -0.00791302602738142, + 0.026613527908921242, + 0.006288748234510422, + -0.017256174236536026, + 0.0769803375005722, + 0.007903555408120155, + 0.02136659063398838, + -0.07209330052137375, + -0.04565025120973587, + -0.02081727236509323, + -0.042316459119319916, + -0.00014628266217187047, + -0.05568951740860939, + -0.0038499641232192516, + -0.025704311206936836, + -0.032334014773368835, + -0.021271880716085434, + -0.037069518119096756, + 0.035440508276224136, + -0.018790477886795998, + 0.0026329397223889828, + -0.013657191768288612, + -0.03754306957125664, + 0.034455522894859314, + -0.023677516728639603, + -0.029663192108273506, + -0.011213671416044235, + -0.045006223022937775, + -0.04993114620447159, + -0.013628778047859669, + -0.023620691150426865, + 0.02326079271733761, + 0.016773153096437454, + 0.016820507124066353, + -0.0005688523524440825, + -0.011327323503792286, + -0.011687221936881542, + 0.011336795054376125, + 0.013950793072581291, + -0.011336795054376125, + -0.011923997662961483, + 0.010579114779829979, + -0.006520788185298443, + -0.0009500603191554546, + 0.06451649963855743, + 0.009130050428211689, + 0.027579570189118385, + -0.04671100527048111, + 0.016990985721349716, + 0.019870171323418617, + -0.0008293050341308117, + 0.0005806910921819508, + -0.011109490878880024, + -0.02767428196966648, + -0.007524714805185795, + 0.009489948861300945, + 0.03720211237668991, + -0.0008298969478346407, + 0.0009127682424150407, + 0.02352597936987877, + 0.011696693487465382, + 0.022275807335972786, + 0.022616764530539513, + 0.05303763598203659, + 0.017587659880518913, + 0.00884118489921093, + -0.012473315931856632, + -0.028337251394987106, + -0.05144650861620903, + -0.01579763926565647, + -0.008486022241413593, + 0.015002074651420116, + -0.017511891201138496, + -0.01871470920741558, + -0.00964148435741663, + 0.005033839959651232, + 0.016735268756747246, + -0.04356662929058075, + 0.02926540933549404, + -0.014471697621047497, + -0.010626469738781452, + 0.0021250571589916945, + -0.02773110754787922, + -0.0025595396291464567, + 0.013174169696867466, + -0.020249012857675552, + -0.029151758179068565, + 0.025192877277731895, + -0.0024506228510290384, + 0.005621042568236589, + 0.0166405588388443, + 0.08395100384950638, + 0.03040193021297455, + -0.012350192293524742, + 0.07258579134941101, + 0.04860520735383034, + -0.04386970400810242, + 0.0486430898308754, + -0.018657883629202843, + -0.038149215281009674, + 0.007482095155864954, + -0.0012975279241800308, + -0.006231922190636396, + -0.04064955934882164, + 0.021328706294298172, + 0.004449005238711834, + 0.03545944765210152, + 0.00587675953283906, + 0.043680280447006226, + -0.035762522369623184, + -0.01634695753455162, + -0.03420927748084068, + -0.015721870586276054, + -0.007619424723088741, + -0.014954719692468643, + 0.011384150013327599, + -0.01817486248910427, + -0.05542432889342308, + 0.08864862471818924, + -0.021271880716085434, + 0.004702354781329632, + 0.011336795054376125, + 0.009068489074707031, + 0.04133147373795509, + 0.0009725539712235332, + -0.007018015719950199, + -0.03581934794783592, + -0.028943395242094994, + -0.019718635827302933, + 0.0010039267363026738, + -0.014178097248077393, + -0.02536335587501526, + 0.013429887592792511, + -0.0054884483106434345, + 0.029379062354564667, + 0.0030117800924926996, + -0.020476317033171654, + -0.012965807691216469, + 0.027068136259913445, + 0.043642397969961166, + 0.00447505060583353, + -0.014935777522623539, + 0.008542847819626331, + 0.05008268356323242, + 0.06220557168126106, + 0.018572643399238586, + -0.024170009419322014, + 0.06069020926952362, + -0.019093548879027367, + 0.07099466770887375, + -0.005701546091586351, + -0.0058199334889650345, + 0.009347883053123951, + -0.02483297884464264, + -0.02873503416776657, + 0.0019297176040709019, + -0.01279533002525568, + 0.011914526112377644, + 0.04405912384390831, + -0.018279042094945908, + 0.020211128517985344, + 0.03795979544520378, + 0.032599203288555145, + -0.030553467571735382, + 0.0385848805308342, + 0.013145756907761097, + 0.014613763429224491, + -0.002689765766263008, + 0.012463844381272793, + 0.00513802096247673, + 0.03064817748963833, + 3.31670198647771e-05, + 0.054249923676252365, + -0.041520893573760986, + -0.045309294015169144, + 0.04674888774752617, + 0.04784752428531647, + -0.020002765581011772, + -0.01278585847467184, + 0.03924785181879997, + 0.016280660405755043, + -0.029701076447963715, + 5.924003744439688e-06, + 0.01897042617201805, + 0.011668279767036438, + -0.014575879089534283, + -0.04924923554062843, + 0.01850634627044201, + 0.048946160823106766, + -0.006771769840270281, + -0.00613721227273345, + -0.03536473959684372, + -0.002467197133228183, + 0.01694362983107567, + 0.07201753556728363, + -0.010749592445790768, + 0.0019983823876827955, + -0.023904820904135704, + -0.02274935692548752, + -0.055575866252183914, + -0.04940076917409897, + 0.014187567867338657, + -0.02771216444671154, + -0.020495258271694183, + 0.039967648684978485, + 0.04254376143217087, + 0.02218109741806984, + 0.025647485628724098, + -0.02273041568696499, + -0.018572643399238586, + -0.011033722199499607, + 0.012615380808711052, + -0.02375328354537487, + 0.030951248481869698, + -0.02430260367691517, + -0.013212054036557674, + -0.03352736309170723, + 0.004830213263630867, + -0.030723946169018745, + -0.02324184961616993, + 0.04477892071008682, + -0.02399953082203865, + -0.010408636182546616, + 0.010257099755108356, + 0.019415562972426414, + -0.018866244703531265, + -0.003816815558820963, + -0.0023878775537014008, + 0.027844758704304695, + -0.053681664168834686, + -0.02375328354537487, + 0.011251555755734444, + -0.028564555570483208, + -0.006582349538803101, + -0.03955092281103134, + 0.06402400135993958, + 0.03898266330361366, + 0.027295440435409546, + -0.07811686396598816, + -0.015324088744819164, + 0.010778005234897137, + 0.013884495943784714, + 0.008500228635966778, + 0.0037481507752090693, + 0.014301219955086708, + 0.028526671230793, + 0.00580099131911993, + -0.020665736868977547, + -0.03722105547785759, + -0.07107043266296387, + -0.019415562972426414, + -0.026537761092185974, + 0.03722105547785759, + -0.0024293132591992617, + 0.02718178927898407, + -0.029606366530060768, + -0.033375825732946396, + -0.05087824538350105, + 0.006648646667599678, + 0.017256174236536026, + -0.004332985263317823, + 0.06713049113750458, + -0.004226436838507652, + -0.025211818516254425, + -0.0171425212174654, + 0.05690180882811546, + -0.04807483032345772, + -0.02193485200405121, + 0.034985899925231934, + 0.025931615382432938, + -0.012757445685565472, + 0.028962338343262672, + 0.011478859931230545, + -0.007851464673876762, + -0.027030251920223236, + 0.06076597794890404, + -0.007401591632515192, + -0.03040193021297455, + -0.0004596397920977324, + -0.024889804422855377, + -0.05068882554769516, + 0.034436579793691635, + -0.0311785526573658, + -0.010380223393440247, + 0.04038437083363533, + 0.031576335430145264, + 0.005242201965302229, + -0.015494566410779953, + -0.0015710032312199473, + -0.024340486153960228, + 0.030307220295071602, + 0.004162507597357035, + 0.013666662387549877, + 0.0006416607066057622, + -0.01876206323504448, + -0.006568143144249916, + -0.014452756382524967, + -0.017549775540828705, + 0.0045129344798624516, + -0.005526332184672356, + 0.023961646482348442, + -0.04440007731318474, + 0.028810802847146988, + -0.07160080969333649, + -0.007614689413458109, + 0.012350192293524742, + -0.018894657492637634, + -0.010219216346740723, + -0.044968340545892715, + -0.00868964847177267, + -0.01268167793750763, + -0.0035516275092959404, + 0.014841067604720592, + -0.06019771844148636, + -0.03826286643743515, + 0.043642397969961166, + 0.013875024393200874, + -0.040801096707582474, + -0.032580263912677765, + -0.02193485200405121, + 0.015409328043460846, + -0.13471560180187225, + 0.008519170805811882, + -0.010607527568936348, + -0.01631854474544525, + -0.031519509851932526, + 0.014111800119280815, + 0.007903555408120155, + -0.012691148556768894, + -0.0027016045060008764, + -0.00936209037899971, + 0.05618201196193695, + -0.021991677582263947, + 0.02930329367518425, + 0.024340486153960228, + -0.03299698606133461, + 0.018411636352539062, + 0.020211128517985344, + 0.002104931278154254, + 0.04360451549291611, + 0.051560159772634506, + -0.0057394299656152725, + -0.02932223677635193, + -0.013259408995509148, + 0.002718178788200021, + 0.006118270102888346, + -0.002403267892077565, + -0.021044576540589333, + 0.009220024570822716, + -0.023601748049259186, + -0.030004149302840233, + 0.0033811493776738644, + -0.012984749861061573, + 0.02585584856569767, + 0.036520201712846756, + -0.01983228698372841, + -0.01690574735403061, + -0.008732267655432224, + 0.01741718128323555, + -0.016432195901870728, + 0.016934160143136978, + -0.013988676480948925, + -0.005033839959651232, + 0.023677516728639603, + -0.0027465918101370335, + -0.011081078089773655, + 0.0459912084043026, + 0.004160139709711075, + 0.00014842842938378453, + -0.014878951013088226, + 6.463222234742716e-05, + -0.016754209995269775, + -0.015371443703770638, + -0.029738960787653923, + -0.010029795579612255, + 0.02399953082203865, + 0.03210671246051788, + -0.023279733955860138, + 0.026177862659096718, + -0.014026560820639133, + 0.07694245874881744, + -0.05496972054243088, + 0.0055689518339931965, + -0.0459912084043026, + -0.040687445551157, + 0.006762298755347729, + 0.019737577065825462, + -0.01844952069222927, + -0.0024127389770001173, + 0.043907586485147476, + -0.029094932600855827, + 0.018402164801955223, + -0.02161283604800701, + -0.021499184891581535, + -0.043149907141923904, + 0.012624851427972317, + 0.005100137088447809, + 0.01954815723001957, + -0.028829744085669518, + -0.02113928645849228, + -0.02405635640025139, + 0.02668929658830166, + -0.020135359838604927, + 0.0041317264549434185, + 0.01467058900743723, + 0.034739650785923004, + -0.003025986487045884, + -0.046332165598869324, + -0.015513508580625057, + 0.05656085163354874, + 0.03436081111431122, + -0.014244393445551395, + 0.006364516448229551, + 0.025912674143910408, + 0.03191729262471199, + -0.03462599962949753, + 0.025647485628724098, + -0.011649337597191334, + 0.02373434230685234, + -0.01160198263823986, + -0.010882186703383923, + -0.03587617352604866, + -0.006899628322571516, + -0.001928533660247922, + 0.023033488541841507, + -0.008869597688317299, + 0.05667450278997421, + 0.010133977048099041, + -0.04243011027574539, + 0.030705003067851067, + -0.03767566382884979, + -0.03422821685671806, + 0.019567100331187248, + -0.021764373406767845, + -0.021044576540589333, + -0.025439122691750526, + 0.012492258101701736, + -0.0092342309653759, + -0.029189642518758774, + 0.003243819810450077, + -0.012037649750709534, + 0.020893041044473648, + 0.029473772272467613, + -0.02716284617781639, + -0.02401847206056118, + 0.002431680914014578, + -0.04796117544174194, + 0.05125708878040314, + 0.04250587895512581, + -0.0002730313572101295, + 0.03034510463476181, + 0.022503111511468887, + -0.012605909258127213, + -0.03170892968773842, + 0.04928711801767349, + -0.0017556878738105297, + -0.015788167715072632, + -0.06364516168832779, + 0.05788679048418999, + -0.03775143250823021, + -0.032030943781137466, + 0.0036037180107086897, + 0.04243011027574539, + 0.0071553452871739864, + -0.039134200662374496, + -0.02142341621220112, + 0.009849846363067627, + -0.0031727871391922235, + -0.022900894284248352, + 0.03688009828329086, + -0.011744048446416855, + -0.013448829762637615, + 0.010455991141498089, + 0.02112034521996975, + 0.042619530111551285, + -0.006307690404355526, + -0.0006499478477053344, + 0.023071372881531715, + 0.018004383891820908, + -0.03623607009649277, + 0.010768534615635872, + 0.044968340545892715, + -0.060273487120866776, + -0.02267359010875225, + 0.017796020954847336, + 0.00739212054759264, + -0.002323948312550783, + 0.019453447312116623, + -0.0064118714071810246, + -0.0025003456976264715, + 0.011137903667986393, + 0.040687445551157, + 0.050802480429410934, + -0.01922614313662052, + 0.024454139173030853, + 0.002192537998780608, + -0.0411420539021492, + 0.026177862659096718, + -0.02193485200405121, + 0.022806184366345406, + -0.021537069231271744, + 0.005270615220069885, + 0.03199306130409241, + 0.020627852529287338, + 0.018923070281744003, + 0.009840375743806362, + 0.015144139528274536, + 0.013259408995509148, + 0.01268167793750763, + -0.022654647007584572, + -0.005644720047712326, + 0.01068329531699419, + -0.009972970001399517, + 0.006923305802047253, + 0.01640378311276436, + 0.08637557923793793, + -0.027636397629976273, + -0.001684655318967998, + 0.03508060798048973, + 0.010844302363693714, + 0.07754860073328018, + -0.020627852529287338, + -0.0009861685102805495, + -0.031538452953100204, + 0.016024943441152573, + 0.013553010299801826, + 0.012359663844108582, + 0.007098519243299961, + 0.01663108728826046, + -0.03201200067996979, + -0.014537994749844074, + -0.03754306957125664, + 0.000147392536746338, + -0.011687221936881542, + 0.0243215449154377, + 0.025249702855944633, + 0.023166082799434662, + -0.0005593813257291913, + 0.0023405225947499275, + -0.04784752428531647, + 0.03458811715245247, + -0.013306763954460621, + 0.010759063065052032, + -0.00886486191302538, + 0.013770843856036663, + 0.07163869589567184, + -0.023374443873763084, + -1.7138452676590532e-05, + -0.028886569663882256, + -0.018421107903122902, + -0.01771078258752823, + 0.0011536870151758194, + -0.011772461235523224, + -0.011033722199499607, + 0.028924454003572464, + -0.0011057399678975344, + -0.02589373104274273, + -0.015115726739168167, + -0.019870171323418617, + 0.016792094334959984, + 0.04671100527048111, + 0.08152642101049423, + -0.008102445863187313, + -0.0011175788240507245, + 0.027124961838126183 + ] + } + }, + { + "type": "维修工作", + "properties": { + "名称": "2-4号活塞环的维修工作", + "embedding": [ + -0.019239190965890884, + 0.04205908626317978, + -0.02860775776207447, + 0.04944784566760063, + 0.0019099466735497117, + -0.024837596341967583, + 0.029365578666329384, + 0.010079024359583855, + -0.0341777428984642, + 0.01709834486246109, + -0.0026760566979646683, + 0.04668179526925087, + 0.023227225989103317, + -0.010694754309952259, + -0.004179858602583408, + -0.03760688751935959, + -0.0023622713051736355, + 0.005224231164902449, + 0.023265115916728973, + -0.05839013680815697, + -0.005939424969255924, + 0.0027542070019990206, + -0.028721429407596588, + 0.036943793296813965, + -0.025064941495656967, + 0.02739524282515049, + 0.001105353469029069, + 0.006384645123034716, + 0.038421545177698135, + 0.0032041636295616627, + -0.0380236878991127, + -0.024970214813947678, + -0.04027820751070976, + -0.04274112731218338, + -0.029611870646476746, + -0.032321080565452576, + -0.022355731576681137, + -0.024117665365338326, + -0.05191076546907425, + 0.03340097889304161, + -0.00960064958781004, + -0.014654370956122875, + 0.039823513478040695, + 0.005915743298828602, + 0.00951065868139267, + -0.03440508991479874, + 0.006583573296666145, + -0.029706597328186035, + -0.033192574977874756, + -0.03019918128848076, + -0.01553533785045147, + 0.0002076608216157183, + 0.018254023045301437, + -0.058238573372364044, + -0.010259007103741169, + 0.04721227288246155, + 0.013119782321155071, + 0.04088446497917175, + -0.008932819589972496, + 0.006484108977019787, + -0.013214509934186935, + 0.038592055439949036, + 0.002018883591517806, + 0.03226424381136894, + 0.023966101929545403, + 0.053767427802085876, + 0.018017202615737915, + 0.015487974509596825, + 0.009766423143446445, + -0.008269725367426872, + -0.030483365058898926, + 0.03269999101758003, + 0.03489767387509346, + -0.022298894822597504, + -0.03656488284468651, + 0.03290839493274689, + 0.037739504128694534, + -0.04717437922954559, + 0.01839611306786537, + 0.026637421920895576, + 0.017761439085006714, + 0.013195564970374107, + -0.028399355709552765, + 0.06278549879789352, + -0.007800824008882046, + 0.02417450211942196, + 0.0053521133959293365, + -0.01443649735301733, + 0.00042982681770808995, + -0.040429770946502686, + 0.00442851847037673, + 0.01085579115897417, + -0.03533342108130455, + 0.05497994273900986, + -0.020555904135107994, + 0.01281665451824665, + 0.01902131736278534, + -0.020214885473251343, + 0.006375172175467014, + 0.004589555785059929, + 0.021067434921860695, + 0.05820068344473839, + 0.007393494714051485, + -0.015630066394805908, + 0.04232432320713997, + -0.0340072326362133, + 0.016539450734853745, + 0.005603141617029905, + -0.021067434921860695, + -0.018566623330116272, + 0.03035074658691883, + 0.0036162289325147867, + -0.019570736214518547, + -0.024041883647441864, + -0.030218128114938736, + -0.08101110905408859, + 0.0006109934765845537, + -0.050395119935274124, + 0.04141493886709213, + -0.03457560017704964, + -1.8270229702466168e-06, + 0.03340097889304161, + 0.019873864948749542, + -0.023871373385190964, + -0.014209151268005371, + -0.023757699877023697, + 0.05388110131025314, + -0.0012693507596850395, + 0.01621737703680992, + 0.03770161420106888, + -0.041301265358924866, + 0.005096348933875561, + 0.011642031371593475, + 0.021844200789928436, + -0.018339278176426888, + -0.010581080801784992, + -0.0033983553294092417, + 0.0020958497188985348, + 0.017657238990068436, + -0.0024096351116895676, + -0.009297520853579044, + -0.010865263640880585, + 0.02013910375535488, + -0.012797708623111248, + -0.005716815125197172, + 0.0007661100244149566, + -0.005333167966455221, + -0.02809622697532177, + 0.034765057265758514, + 0.0081607885658741, + 0.013981804251670837, + -0.003630438121035695, + 0.01684257946908474, + 0.016094231978058815, + 0.014010222628712654, + -0.0469091422855854, + -0.031695879995822906, + 0.015213264152407646, + 0.00134631700348109, + -0.04569662734866142, + 0.011310484260320663, + 0.028854049742221832, + -0.057177621871232986, + -0.03158220648765564, + 0.011490467004477978, + 0.004293531645089388, + 0.0286267027258873, + -0.0018081144662573934, + -0.0013439488830044866, + 0.03340097889304161, + 0.013148200698196888, + 0.005977316293865442, + -0.016548924148082733, + 0.054222118109464645, + 0.026807932183146477, + 0.012759817764163017, + 0.009851678274571896, + 0.00621887156739831, + 0.02373875491321087, + -0.014218623749911785, + 0.022450458258390427, + 0.029365578666329384, + -0.0071093118749558926, + -0.03705746680498123, + 0.054487358778715134, + 0.028588810935616493, + 0.07419071346521378, + -0.04641655832529068, + 0.010486353188753128, + 0.02949819713830948, + -0.025784872472286224, + 0.014900662936270237, + 0.022014711052179337, + 0.0207643061876297, + 0.022905150428414345, + -0.04054344445466995, + 0.009108065627515316, + 0.01173675898462534, + 0.03484083712100983, + -0.013612366281449795, + 0.03944460302591324, + -0.016463669016957283, + 0.03080543875694275, + -0.0022900414187461138, + -0.02171158231794834, + -0.004499564412981272, + 0.04372629523277283, + 0.023776644840836525, + 0.01518484577536583, + -0.023757699877023697, + 0.0019537582993507385, + -0.04455989599227905, + -0.02102954313158989, + -0.02407977357506752, + 0.0038696255069226027, + 0.03787212446331978, + 0.01675732433795929, + -0.022014711052179337, + -0.04266534373164177, + 0.0014280196046456695, + -0.0051342397928237915, + 0.027111059054732323, + 0.014512279070913792, + -0.04842478781938553, + 0.02896772138774395, + -0.02180631086230278, + 0.006990902125835419, + 0.02703527733683586, + -0.017392000183463097, + -0.007639786694198847, + -0.03620491549372673, + -0.02015804871916771, + -0.02650480344891548, + -0.009529603645205498, + 0.06498318165540695, + 0.03343886882066727, + -0.03251053765416145, + 0.021086379885673523, + 0.018613988533616066, + 0.007355603855103254, + -0.011035773903131485, + -0.0014943290734663606, + 0.02487548626959324, + -0.01383023988455534, + -0.023681918159127235, + 0.0028726167511194944, + 0.017827747389674187, + 0.0646042749285698, + -0.03775845095515251, + -0.0016174750635400414, + 0.012163032777607441, + 0.012219869531691074, + -0.03658382594585419, + 0.06100462004542351, + 0.0019028420792892575, + -0.005404213909059763, + 0.04240010678768158, + -0.007639786694198847, + -0.012864017859101295, + -0.037379540503025055, + -0.011765177361667156, + 0.1078379824757576, + -0.007227721624076366, + 0.00937803927809, + -0.035295531153678894, + 0.017685655504465103, + -0.032491590827703476, + 0.028134118765592575, + -0.017335163429379463, + 0.02023383043706417, + -0.023151442408561707, + 0.018339278176426888, + -0.012513525784015656, + 0.045582957565784454, + -0.0031425906345248222, + 0.05645769089460373, + 0.012987163849174976, + -0.017429891973733902, + 0.07593370229005814, + 0.003658856265246868, + 0.029555033892393112, + -0.007545059081166983, + 0.02398504689335823, + -0.050129882991313934, + -0.014929081313312054, + -0.0016162908868864179, + -0.06123196706175804, + -0.007393494714051485, + -0.020821142941713333, + -0.0465681254863739, + 0.017818275839090347, + 0.010514771565794945, + 0.06524842232465744, + -0.014588061720132828, + 0.0030952265951782465, + 0.025254396721720695, + 0.005659978371113539, + -0.16308316588401794, + -0.004066185560077429, + -0.049675192683935165, + 0.014862772077322006, + 0.016776271164417267, + 0.00824604369699955, + -0.03847838193178177, + 0.022564131766557693, + -0.07775247097015381, + -0.06096673011779785, + -0.002126636216416955, + -0.06483162194490433, + -0.019646519795060158, + 0.03586389496922493, + -0.012977691367268562, + 0.0005615574773401022, + -0.03866783529520035, + -0.03506818413734436, + -0.007961860857903957, + -0.023189334198832512, + -0.045204047113657, + -0.0031378541607409716, + 0.037038519978523254, + -0.015772158280014992, + -0.03629964590072632, + -0.02720578759908676, + 0.014550170861184597, + 0.001896921661682427, + -0.01763829216361046, + -0.008752836845815182, + -0.018102457746863365, + 0.019314972683787346, + -0.011272593401372433, + 0.07187935709953308, + 0.007080893497914076, + 0.02197681926190853, + 0.01981702819466591, + 0.0004360433085821569, + 0.029157178476452827, + -0.009316466748714447, + 0.030672820284962654, + 0.04448411613702774, + 0.020044375211000443, + 0.03557971492409706, + -0.004239063244313002, + -0.08411817252635956, + -0.0015511655947193503, + -0.011831486597657204, + -0.008658109232783318, + 0.005214758217334747, + -0.051077160984277725, + -0.013366074301302433, + 0.003888570936396718, + -0.0015097223222255707, + -0.02180631086230278, + -0.012854545377194881, + -0.02301882393658161, + 0.0185003150254488, + -0.01849084161221981, + 0.034499816596508026, + -0.041490718722343445, + -0.05547252669930458, + 0.0133092375472188, + 0.027622589841485023, + -0.069037526845932, + -0.01981702819466591, + -0.006730400957167149, + -0.060512036085128784, + 0.013678675517439842, + -0.04406731203198433, + 0.007762932684272528, + 0.014938553795218468, + 0.0033273093868047, + 0.003346255049109459, + -0.043044254183769226, + -0.004996884614229202, + -0.02677004039287567, + -0.03933092951774597, + -0.02337878942489624, + -0.14762359857559204, + -0.0418696328997612, + 0.04293058067560196, + 0.0013853921554982662, + -0.03792896121740341, + -0.008975447155535221, + -0.056760821491479874, + 0.008577590808272362, + 0.026447966694831848, + 0.0006577652529813349, + 0.22476981580257416, + -0.014730152674019337, + 0.03036969155073166, + -0.002150318119674921, + 0.0804048478603363, + -0.04315792769193649, + 0.0266184750944376, + -0.015990031883120537, + 0.02748997136950493, + -0.012248287908732891, + -0.040960244834423065, + -0.011073664762079716, + 0.03256737440824509, + -0.021863147616386414, + 0.052554912865161896, + 0.025671198964118958, + -0.017571983858942986, + -0.009666958823800087, + 0.06593046337366104, + -0.012418798170983791, + 0.03489767387509346, + -0.0142280962318182, + -0.009524867869913578, + -0.0090796472504735, + -0.05687449499964714, + -0.06267182528972626, + 0.011263119988143444, + 0.03641331568360329, + -0.00425327243283391, + 0.040960244834423065, + 0.009093856438994408, + 0.03095700405538082, + 0.009709586389362812, + 0.016984671354293823, + -0.06657461076974869, + -0.003076281165704131, + 0.0045706103555858135, + 0.020461177453398705, + 0.01568690314888954, + -0.0035262375604361296, + 0.010012715123593807, + -0.04399153217673302, + 0.04126337543129921, + -0.020612740889191628, + 0.0026500066742300987, + -0.09086278080940247, + -0.00016266517923213542, + -0.021768419072031975, + 0.020650632679462433, + -0.0020615109242498875, + -0.007511904463171959, + 0.018604515120387077, + -0.009420666843652725, + -0.023871373385190964, + 0.00754979532212019, + -0.016994144767522812, + -0.03482189401984215, + -0.015914248302578926, + -0.04387785866856575, + -0.014218623749911785, + 0.019049735739827156, + -0.014768044464290142, + -0.07616104930639267, + 0.029119286686182022, + -0.02459130436182022, + 0.008127634413540363, + -0.02015804871916771, + -0.013849185779690742, + -0.01832033134996891, + 0.030559146776795387, + -0.011822013184428215, + 0.019220244139432907, + 0.006323072127997875, + 0.030028672888875008, + 0.02180631086230278, + -0.014843826182186604, + -0.026031164452433586, + 0.08336035162210464, + -0.010865263640880585, + 0.03508713096380234, + -0.03137380629777908, + -0.05327484384179115, + -0.04740172624588013, + -0.02889193966984749, + 0.023700863122940063, + -0.02582276426255703, + -0.01173675898462534, + -0.020555904135107994, + -0.048386894166469574, + -0.012882963754236698, + -0.03326835855841637, + -0.00017717035370878875, + -0.06293706595897675, + 0.003017076291143894, + -0.01614159531891346, + -0.02013910375535488, + 0.0035357102751731873, + -0.0029673443641513586, + -0.039558276534080505, + -0.008426026441156864, + -0.049258388578891754, + -0.04694703593850136, + -0.028228845447301865, + -0.016520505771040916, + 0.00784818734973669, + 0.003464664565399289, + -0.03052125684916973, + 0.033363085240125656, + 0.016416305676102638, + 0.004407205153256655, + 0.013972331769764423, + 0.014114422723650932, + 0.009396985173225403, + -0.012977691367268562, + 0.005707342177629471, + -0.004369313828647137, + -0.0204232856631279, + 0.06252026557922363, + -0.019314972683787346, + 0.025974327698349953, + -0.060928840190172195, + 0.0226020235568285, + 0.021503182128071785, + 0.02853197418153286, + -0.019144462421536446, + -0.016160540282726288, + -0.019059207290410995, + 0.011642031371593475, + -0.013356601819396019, + 0.06339175999164581, + -0.023416681215167046, + -0.010315843857824802, + -0.0020603269804269075, + 0.00037802261067554355, + 0.06543787568807602, + 0.047515399754047394, + 0.0056931329891085625, + 0.005371058825403452, + 0.054752595722675323, + -0.011443102732300758, + -0.01383023988455534, + -0.056306127458810806, + -0.02531123347580433, + 0.013062945567071438, + 0.013555529527366161, + -0.028569865971803665, + -0.003822261467576027, + -0.013138728216290474, + -0.027622589841485023, + 0.061535097658634186, + -0.0341777428984642, + 0.07013636827468872, + -0.04399153217673302, + -0.042172759771347046, + -0.007265612483024597, + -0.05414633825421333, + -0.007052475120872259, + 0.003800947917625308, + -0.03766372427344322, + -0.004239063244313002, + -0.005001621320843697, + 0.011490467004477978, + -0.012343015521764755, + 0.0011195626575499773, + 0.0589585043489933, + 0.03150642290711403, + -0.01339449267834425, + 0.05854170024394989, + 0.039823513478040695, + -0.029517142102122307, + 0.05551041662693024, + -0.021768419072031975, + -0.03605335205793381, + 0.020726414397358894, + 0.017856165766716003, + 0.008762309327721596, + -0.007118784356862307, + 0.01839611306786537, + 0.005266858730465174, + 0.017126763239502907, + 0.02197681926190853, + 0.02947925217449665, + -0.005489468574523926, + -0.023435626178979874, + -0.06028468906879425, + -0.005854170303791761, + -0.01981702819466591, + -0.008965973742306232, + 0.0049589937552809715, + 0.004203540273010731, + -0.045241937041282654, + 0.0699848011136055, + -0.02356824465095997, + -0.01217250619083643, + -0.004414309747517109, + 0.015260628424584866, + 0.006593045778572559, + 0.018026676028966904, + 0.03523869439959526, + -0.012920854613184929, + -0.0209348164498806, + 0.009103328920900822, + 0.017382528632879257, + 0.005569986999034882, + -0.051342397928237915, + -0.033552542328834534, + -0.005982052534818649, + 0.0003567088861018419, + -0.02425028383731842, + 0.00011559736594790593, + 0.006086253095418215, + -0.019390754401683807, + 0.027546806260943413, + 0.011594667099416256, + -0.02137056365609169, + -0.01612265035510063, + 0.02659953013062477, + 0.07347078621387482, + -0.021351616829633713, + -0.022128384560346603, + 0.031449586153030396, + -0.01989281177520752, + 0.07964702695608139, + 0.002007042523473501, + -0.0163215771317482, + 0.001310794148594141, + -0.021825255826115608, + -0.015857411548495293, + -0.03457560017704964, + -0.026372183114290237, + 0.010685281828045845, + 0.015724793076515198, + -0.013489220291376114, + 0.007417176850140095, + 0.06782501190900803, + 0.028986668214201927, + -0.004591924138367176, + 0.02722473256289959, + 0.0458860844373703, + 0.003464664565399289, + 0.003988035023212433, + -0.002102954313158989, + 0.029384523630142212, + 0.03226424381136894, + -0.038175251334905624, + 0.059110067784786224, + -0.04402942210435867, + -0.036508046090602875, + 0.0455450639128685, + 0.06593046337366104, + -0.018187712877988815, + 0.041377048939466476, + 0.05312328040599823, + -0.0055226231925189495, + -0.014057586900889874, + 0.004464041441679001, + -0.017998257651925087, + -0.004049608018249273, + -0.04755328968167305, + -0.029611870646476746, + 0.02173052728176117, + 0.022658858448266983, + 0.008388135582208633, + 0.01673837937414646, + -0.02966870740056038, + -0.03330624848604202, + 0.021863147616386414, + 0.0539189912378788, + -0.028285682201385498, + -0.013839713297784328, + -0.02766047976911068, + 0.0028797213453799486, + -0.04539350047707558, + -0.05153185501694679, + -0.002969712484627962, + 0.006754083093255758, + -0.018822388723492622, + 0.018272968009114265, + 0.03000972606241703, + -0.001667206990532577, + -0.017325691878795624, + -0.031695879995822906, + 0.016870997846126556, + -0.035996515303850174, + 0.01287349034100771, + -0.02468603104352951, + 0.008672318421304226, + -0.008222362026572227, + 0.012494579888880253, + -0.042437996715307236, + 0.03129802271723747, + -0.019419172778725624, + 0.0005890877218917012, + 0.07119731605052948, + -0.035125020891427994, + -0.006109934765845537, + -0.005333167966455221, + -0.003770161420106888, + -0.015450083650648594, + 0.011348375119268894, + 0.011793594807386398, + 0.04213486984372139, + -0.029441360384225845, + -0.0032017952762544155, + -0.012939800508320332, + -0.03114645928144455, + -0.03201795369386673, + -0.022829368710517883, + 0.008984919637441635, + 0.019248662516474724, + 0.03167693316936493, + -0.06649882346391678, + -0.020726414397358894, + 0.037303756922483444, + -0.0026073791086673737, + 0.022014711052179337, + 0.03190428018569946, + 0.01605634018778801, + -0.0019738879054784775, + 0.011480993591248989, + 0.002165711484849453, + -0.019741246476769447, + -0.025064941495656967, + 0.013707093894481659, + -0.0002843310358002782, + 0.0031615360639989376, + -0.008454444818198681, + 0.0038269979413598776, + -0.03294628486037254, + 0.003777266014367342, + -0.02425028383731842, + -0.02826673723757267, + -0.026372183114290237, + -0.011263119988143444, + 0.04342316463589668, + -0.004134862683713436, + 0.0009443165035918355, + -0.02144634537398815, + 0.039027802646160126, + -0.03484083712100983, + -0.02241256646811962, + 0.02809622697532177, + 0.0458860844373703, + 0.010600026696920395, + 0.011433630250394344, + 0.0034504553768783808, + -0.025349125266075134, + -0.018348749727010727, + 0.013347129337489605, + 0.02118110843002796, + -0.006522000301629305, + 0.0024771285243332386, + -0.002538701519370079, + -0.041490718722343445, + 0.014171259477734566, + 0.04194541275501251, + -0.016785742715001106, + 0.01710781827569008, + 0.044370442628860474, + 0.004168017767369747, + 0.012911382131278515, + 0.03516291081905365, + -0.008463917300105095, + 0.03218846395611763, + 0.015383774414658546, + 0.017695128917694092, + 0.021522127091884613, + -0.04766696318984032, + 0.028209900483489037, + 0.002210706938058138, + -0.022033656015992165, + 0.009671695530414581, + 0.004790851846337318, + 0.005806806497275829, + -0.020120156928896904, + 0.0415286123752594, + -0.03370410576462746, + 0.01603739522397518, + 0.004348000045865774, + -0.0046203420497477055, + -0.040619224309921265, + -0.01630263216793537, + -0.03484083712100983, + -0.011812540702521801, + -0.023795591667294502, + 0.04463567957282066, + -0.052895933389663696, + -0.031108567491173744, + 0.05695027485489845, + 0.04126337543129921, + -0.049068935215473175, + -0.00937803927809, + -0.0011669264640659094, + 0.010154806077480316, + -0.13019371032714844, + 0.029536088928580284, + 0.002439237665385008, + 0.009719058871269226, + -0.044370442628860474, + 0.01842453144490719, + -0.013754458166658878, + 0.01831085979938507, + 0.03446192666888237, + 0.0016743115847930312, + 0.016075285151600838, + -0.011926214210689068, + 0.033552542328834534, + -0.008487599901854992, + -0.029858162626624107, + 0.013337655924260616, + 0.0027186842635273933, + -0.005773651413619518, + 0.020972706377506256, + 0.07286452502012253, + 0.009226474910974503, + -0.03736059367656708, + 0.0190970990806818, + -0.03376094251871109, + 0.0034457191359251738, + -0.01579110324382782, + -0.0063656996935606, + -0.010836845263838768, + 0.00027944662724621594, + -0.004556401167064905, + -0.028399355709552765, + -0.03823208808898926, + 0.03141169622540474, + 0.03567444160580635, + 0.004689019639045, + -0.005181603599339724, + -0.0034149326384067535, + 0.0006228344282135367, + 0.039217256009578705, + -0.0019786241464316845, + 0.017126763239502907, + 0.005001621320843697, + 0.02214732952415943, + 0.012191451154649258, + -0.006005734205245972, + 0.032681047916412354, + 0.006318335887044668, + 0.009558022022247314, + 0.02118110843002796, + -0.014815407805144787, + 0.006735137663781643, + 0.013659730553627014, + -0.014256514608860016, + 0.019087625667452812, + 0.018604515120387077, + 0.030256018042564392, + -0.007331921719014645, + 0.004641655832529068, + -0.020271722227334976, + 0.07403914630413055, + -0.05748075246810913, + -0.018528733402490616, + -0.01604686677455902, + -0.07957124710083008, + 0.002685529412701726, + -0.02284831367433071, + -0.019125517457723618, + 0.002040197141468525, + 0.032681047916412354, + -0.029157178476452827, + 0.0007069052662700415, + -0.03237791731953621, + -0.03940671309828758, + -0.028228845447301865, + -0.018206657841801643, + -0.017316218465566635, + -0.015677429735660553, + -0.0010272031649947166, + -0.006493581924587488, + -0.0014682789333164692, + -0.016965726390480995, + 0.03338203206658363, + 0.011926214210689068, + 0.04236221686005592, + 0.04687125235795975, + -0.01387760415673256, + -0.05103927105665207, + -0.012845071963965893, + 0.02426922880113125, + 0.026732148602604866, + -0.022829368710517883, + -0.00784818734973669, + -0.016075285151600838, + 0.024667086079716682, + -0.03218846395611763, + -0.0030786492861807346, + -0.013650257140398026, + 0.027963608503341675, + -0.012134614400565624, + -0.030862275511026382, + -0.00963854044675827, + -0.0038269979413598776, + 0.026921603828668594, + 0.008321826346218586, + -0.030237073078751564, + 0.01172728557139635, + 0.003871993627399206, + -0.03645120933651924, + 0.007365076337009668, + -0.020271722227334976, + -0.011139973998069763, + -5.583752135862596e-05, + 0.004260377027094364, + -0.02224205806851387, + -0.04891737177968025, + 0.028569865971803665, + -0.012892436236143112, + -0.032415810972452164, + -0.01638788729906082, + -0.018718188628554344, + 0.017069926485419273, + -0.00521002197638154, + -0.054904159158468246, + -0.03010445460677147, + -0.002709211315959692, + 0.00173470051959157, + 0.01770460233092308, + 0.04232432320713997, + -0.0378531776368618, + 0.03516291081905365, + 0.013744985684752464, + -0.013773403130471706, + -0.019760193303227425, + 0.04455989599227905, + 0.04539350047707558, + 0.012418798170983791, + -0.05869326740503311, + 0.06289917230606079, + -0.041301265358924866, + -0.04202119633555412, + -0.011139973998069763, + 0.06740821152925491, + -0.029460305348038673, + -0.04387785866856575, + -0.03027496486902237, + -0.0659683495759964, + -0.01693730801343918, + -0.04668179526925087, + 0.0249512679874897, + 0.010571608319878578, + -0.015649011358618736, + -0.02415555715560913, + 0.009785368107259274, + 0.05213811248540878, + -0.0018554782727733254, + 0.024326065555214882, + 0.06774923205375671, + 0.018092986196279526, + -0.07165201008319855, + 0.008601272478699684, + 0.039141472429037094, + -0.06388434022665024, + -0.035390257835388184, + 0.007303503341972828, + 0.015838466584682465, + 0.006247289944440126, + 0.039823513478040695, + -0.03622386232018471, + -0.005484732333570719, + -1.525448533357121e-05, + -0.015421665273606777, + 0.01762882061302662, + -0.005011093802750111, + 0.024629194289445877, + 0.030938057228922844, + -0.040353987365961075, + 0.018973952159285545, + -0.032851558178663254, + 0.04141493886709213, + -0.041642285883426666, + 0.020480122417211533, + 0.05270647630095482, + 0.005195812787860632, + 0.021787364035844803, + 0.0027494707610458136, + 0.005603141617029905, + -0.0027731526643037796, + -0.008558644913136959, + -0.039747729897499084, + -0.012267233803868294, + 0.022620968520641327, + -0.004698492586612701, + -0.019930701702833176, + 0.004977939184755087, + 0.05933741480112076, + 0.007384022232145071, + 0.018111931160092354, + 0.04630288481712341, + 0.027812045067548752, + 0.07305397838354111, + 0.01718359999358654, + -0.007213512435555458, + -0.021957874298095703, + 0.02635323815047741, + 0.02565225400030613, + -0.007151939440518618, + 0.01614159531891346, + -0.016094231978058815, + -0.06168666109442711, + 0.0018460055580362678, + -0.04717437922954559, + -0.010173751972615719, + 0.03251053765416145, + 0.03105173073709011, + 0.008317089639604092, + 0.035996515303850174, + 0.012674562633037567, + 0.04133915528655052, + -0.01578162983059883, + 0.042172759771347046, + 0.007687150500714779, + -0.016520505771040916, + -0.006185716949403286, + -0.05297171324491501, + 0.04467356950044632, + -0.04376418516039848, + 0.007488222327083349, + -0.060587819665670395, + -0.028513029217720032, + -0.015658484771847725, + -0.03044547326862812, + 0.012570362538099289, + -0.01796983927488327, + 0.037985797971487045, + 0.00824130792170763, + -0.03260526433587074, + 0.007294030860066414, + -0.03203690052032471, + 0.008724418468773365, + 0.0296497605741024, + 0.030293909832835197, + -0.009581703692674637, + 0.014559643343091011, + 0.06274761259555817 + ] + } + }, + { + "type": "维修工作", + "properties": { + "名称": "气缸套的维修工作", + "knowledge_source": "[]", + "embedding": [ + -0.07215739786624908, + -0.01480516605079174, + -0.03930339962244034, + -0.0028595500625669956, + -0.0077013419941067696, + -0.02262980490922928, + 0.015241448767483234, + 0.022250428795814514, + -0.04047946631908417, + 0.0005960359703749418, + -0.0005477247177623212, + 0.009105035103857517, + 0.05751346796751022, + 0.029894864186644554, + 0.019518917426466942, + -0.04180728271603584, + 0.004341489169746637, + 0.0068050650879740715, + -0.007122792769223452, + -0.016114015132188797, + 0.011343355290591717, + -0.009441731497645378, + 0.012234889902174473, + 0.004687670152634382, + -0.004246645141392946, + 0.007293512113392353, + 0.014681868255138397, + -0.009583997540175915, + -0.004142316523939371, + -0.05003975331783295, + -0.03607869893312454, + -0.0035898496862500906, + -0.052809201180934906, + -0.03224699944257736, + -0.039644837379455566, + -0.05986560136079788, + 0.007668146397918463, + -0.028586015105247498, + -0.03156412020325661, + 0.05034325271844864, + -0.014368882402777672, + -0.05383351817727089, + 0.02503884583711624, + -0.037216830998659134, + -0.009517606347799301, + -0.039227522909641266, + -0.022345272824168205, + -0.02039148472249508, + -0.015734637156128883, + -0.0064493995159864426, + -0.021415799856185913, + -0.02154858224093914, + 0.0035234587267041206, + -0.03230390325188637, + -0.011381293646991253, + 0.05542689934372902, + 0.003599334042519331, + -0.02209867723286152, + -0.025987286120653152, + 0.007198668085038662, + -0.03368862718343735, + 0.023540308699011803, + 0.033385127782821655, + 0.007649177685379982, + 0.04594248905777931, + 0.0772789791226387, + 0.002643779618665576, + 0.01838078908622265, + -0.02452668733894825, + -0.0736369714140892, + -0.0017403893871232867, + 0.04692886769771576, + -0.034883663058280945, + -0.037406519055366516, + -0.0322849340736866, + 0.03355584666132927, + 0.05804459750652313, + -0.0334799699485302, + 0.01895933784544468, + 0.023843809962272644, + 0.018693774938583374, + 0.000970966590102762, + 0.02602522447705269, + 0.03459913283586502, + -0.006103218533098698, + 0.004372313618659973, + -0.007397840730845928, + -0.002620068611577153, + -0.035718291997909546, + -0.024393904954195023, + -0.016019171103835106, + 0.015355261974036694, + 0.006046311929821968, + 0.023407526314258575, + -0.03492160141468048, + 0.019898295402526855, + 0.005960952490568161, + 0.011514075100421906, + -0.0044505600817501545, + -0.020884674042463303, + 0.029458580538630486, + -0.012756532989442348, + 0.041769348084926605, + -0.03408697247505188, + 0.07045020908117294, + -0.04180728271603584, + 0.1034180223941803, + 0.03833599016070366, + 0.014824134297668934, + -0.016332155093550682, + 0.03888608515262604, + 0.05060881748795509, + -0.0007166658178903162, + -0.0020035819616168737, + -0.009436989203095436, + -0.02953445538878441, + -0.007838865742087364, + -0.02907920442521572, + 0.02410937286913395, + 0.0024197103921324015, + -0.04484229534864426, + -0.0020581171847879887, + 0.0009591110865585506, + -0.05216426029801369, + -0.009546060115098953, + -0.06885682791471481, + 0.047080617398023605, + -0.02302815020084381, + 0.005757037550210953, + 0.006283422466367483, + -0.007525880355387926, + 0.07204359024763107, + -0.02187105268239975, + 0.03516819700598717, + -0.027258196845650673, + -0.02579759806394577, + 0.0006164867081679404, + -0.0036111895460635424, + 0.0028548077680170536, + 0.003983452450484037, + -0.011438200250267982, + 0.01384724024683237, + -0.012728080153465271, + -0.0003589256957639009, + -0.0031962464563548565, + 0.041238218545913696, + 0.006212289445102215, + -0.027144385501742363, + 0.02219352126121521, + 0.013761880807578564, + 0.014473211020231247, + 0.05379557982087135, + 0.005154777318239212, + -0.0032650085631757975, + 0.02071395330131054, + -0.021700331941246986, + -0.054288771003484726, + 0.023198869079351425, + -0.030027644708752632, + -0.017764301970601082, + 0.019253354519605637, + 0.02528543956577778, + -0.02526647038757801, + 0.005316012538969517, + 0.014036928303539753, + -0.025835536420345306, + 0.018855009227991104, + -0.005230652634054422, + -0.03960689902305603, + 0.016180405393242836, + 0.0033811924513429403, + 0.0012993643758818507, + 0.00024659468908794224, + 0.022762587293982506, + 0.030558772385120392, + 0.012415094301104546, + 0.04154172167181969, + 0.02060014009475708, + 0.0539473295211792, + -0.005837655160576105, + 0.017565129324793816, + 0.049318939447402954, + 0.00852174311876297, + -0.02507678233087063, + 0.001511577982455492, + 0.07234708964824677, + 0.055161334574222565, + -0.046435676515102386, + 0.01884552463889122, + -0.012472000904381275, + -0.0315072126686573, + -0.021207142621278763, + 0.04381797835230827, + 0.025399252772331238, + 0.018655836582183838, + -0.04469054564833641, + 0.04085884243249893, + 0.009351629763841629, + 0.027732418850064278, + 0.030976086854934692, + -0.005221168510615826, + -0.019993139430880547, + 0.03835495933890343, + -0.007891030050814152, + -0.022648774087429047, + 0.010423367843031883, + -0.008028553798794746, + -0.04856018349528313, + 0.02868085913360119, + -0.035623449832201004, + 0.018627382814884186, + -0.02251599170267582, + -0.02866188995540142, + -0.049432750791311264, + -0.024754313752055168, + 0.019613761454820633, + 0.005880334880203009, + -0.005391887854784727, + 0.005752295255661011, + -0.003983452450484037, + -0.026480475440621376, + 0.0658218115568161, + 0.034238725900650024, + -0.026461506262421608, + 0.012784985825419426, + -0.04886368662118912, + 0.07045020908117294, + 0.02376793511211872, + -0.00312985572963953, + -0.029344767332077026, + -0.01815316267311573, + 0.0030444960575550795, + -0.052695389837026596, + -0.01736595667898655, + 0.01824800670146942, + 0.021074362099170685, + -0.011343355290591717, + 0.01555443461984396, + 0.025190595537424088, + 0.004187367390841246, + -0.011589949950575829, + -0.019130056723952293, + 0.008052265271544456, + 0.0016668852185830474, + -0.0171572994440794, + 0.005572091322392225, + 0.05944829061627388, + 0.056223589926958084, + -0.0054677631705999374, + 0.005154777318239212, + -0.0046615879982709885, + -0.0015566289657726884, + -0.038373928517103195, + -0.012822924181818962, + 0.0011944429716095328, + -0.015222479589283466, + 0.019082635641098022, + -0.019035212695598602, + 0.00033165799686685205, + -0.032626375555992126, + 0.009209362789988518, + 0.09385773539543152, + -0.010726869106292725, + 0.01035697665065527, + -0.028965391218662262, + 0.01401796005666256, + -0.032114215195178986, + -0.015184542164206505, + -0.03862052038311958, + 0.06532862037420273, + -0.01279447041451931, + -0.0011742886854335666, + -0.008137624710798264, + 0.013942084275186062, + 0.03439047560095787, + 0.03941721096634865, + -0.009759458713233471, + -0.006591665558516979, + 0.06020704284310341, + 0.029136110097169876, + -0.01251942291855812, + 0.006458884105086327, + 0.02071395330131054, + -0.027561698108911514, + -0.01771687902510166, + -0.016199374571442604, + -0.1017487645149231, + -0.05466814711689949, + -0.001657400862313807, + -0.05789284408092499, + 0.01030007004737854, + -0.0401000902056694, + 0.05990353971719742, + -0.009451216086745262, + 0.001203927444294095, + 0.026783976703882217, + 0.003862526500597596, + -0.16389063000679016, + 0.032341841608285904, + -0.039644837379455566, + 0.030312178656458855, + 0.007321965415030718, + -0.009759458713233471, + -0.02217455394566059, + 0.015269901603460312, + -0.029781050980091095, + -0.031146805733442307, + 0.011770154349505901, + -0.06487337499856949, + -0.009911209344863892, + 0.003153566736727953, + 0.006311875768005848, + -0.009939663112163544, + -0.04419735446572304, + 0.01914902590215206, + 0.03871536627411842, + -0.017982443794608116, + -0.024754313752055168, + -0.011542527936398983, + 0.022857431322336197, + -0.031241649761795998, + -0.04818080738186836, + -0.044007666409015656, + 0.012083140201866627, + -0.02907920442521572, + -0.023104025050997734, + 0.02388174645602703, + -0.016635656356811523, + -0.0008441125974059105, + -0.0002698611351661384, + 0.050267379730939865, + -0.007563817780464888, + -0.020144889131188393, + -0.03209524601697922, + 0.02217455394566059, + -0.005628997925668955, + 0.011760669760406017, + 0.01829542964696884, + 0.053454142063856125, + 0.01555443461984396, + 0.013780849054455757, + -0.0014428159920498729, + -0.03960689902305603, + 0.013818787410855293, + -0.020998485386371613, + 0.016085561364889145, + 0.01013883575797081, + -0.017356472089886665, + -0.002925940789282322, + -0.015905357897281647, + -0.02302815020084381, + -0.01727111265063286, + -0.016891736537218094, + -0.02794107422232628, + 0.004694783594459295, + -0.01789708435535431, + 0.05808253213763237, + -0.04787730798125267, + -0.08308344334363937, + 0.005235394928604364, + -0.04897749796509743, + -0.012557360343635082, + -0.014397336170077324, + -0.033612754195928574, + -0.0645698681473732, + 0.011798607185482979, + -0.03788073733448982, + 0.016066592186689377, + -0.021795175969600677, + 0.020334577187895775, + -0.022041771560907364, + -0.039341337978839874, + 0.0074689737521111965, + -0.04916718602180481, + 0.0060083745047450066, + -0.04434910789132118, + -0.1258012354373932, + -0.007957421243190765, + 0.013828271068632603, + -0.003416759194806218, + -0.054099079221487045, + 0.0020201795268803835, + -0.03036908432841301, + -0.0029401674401015043, + 0.015905357897281647, + -0.0005462428089231253, + 0.23430289328098297, + -0.004211078397929668, + 0.006525274831801653, + -0.010205226019024849, + 0.05595802515745163, + -0.0498880036175251, + -0.039113711565732956, + -0.04419735446572304, + 0.020201794803142548, + -0.021624457091093063, + -0.037539299577474594, + 0.01863686740398407, + 0.015573402866721153, + -0.00034618101199157536, + 0.0273909792304039, + -0.008758854120969772, + -0.003535314230248332, + 0.001229416811838746, + 0.10053475946187973, + -0.03545272722840309, + 0.002639037324115634, + 0.022667743265628815, + -0.025626879185438156, + 0.002323680790141225, + -0.02336958982050419, + -0.05045706778764725, + -0.02462153136730194, + 0.024754313752055168, + -0.004419735632836819, + 0.02058117277920246, + -0.013989506289362907, + 0.0551992729306221, + 0.03683745115995407, + -0.048787809908390045, + -0.09734799712896347, + 0.006055796518921852, + 0.02410937286913395, + 0.018627382814884186, + 0.03182968497276306, + -0.005372918676584959, + -0.015525980852544308, + -0.017517708241939545, + 0.04233841225504875, + -0.029003329575061798, + -0.001890954445116222, + -0.05827222019433975, + -0.0037036624271422625, + 0.0025939864572137594, + 0.0315072126686573, + 0.0007048103143461049, + -0.030198365449905396, + -0.007070628460496664, + -0.020087983459234238, + 0.017612552270293236, + -0.02496296912431717, + 0.0027836747467517853, + -0.008877408690750599, + -0.023502370342612267, + 0.02792210690677166, + -0.0113528398796916, + 0.015374230220913887, + -0.004073554649949074, + -0.06908445060253143, + -0.0016846684738993645, + 0.01290828362107277, + -0.022231459617614746, + -0.05853778496384621, + -0.02653738297522068, + -0.0009324361453764141, + -0.016777923330664635, + -0.016313187777996063, + 0.00820875819772482, + -0.0037439712323248386, + 0.04427323117852211, + 0.011324387043714523, + -0.01480516605079174, + -0.02833941951394081, + 0.07287821173667908, + -0.02185208350419998, + 0.0478014312684536, + -0.05853778496384621, + -0.031791746616363525, + -0.027561698108911514, + -0.0167399849742651, + 0.024393904954195023, + -0.02847220189869404, + -0.03239874914288521, + -0.03882917761802673, + -0.022478055208921432, + -0.03708404675126076, + -0.006202804856002331, + 0.005074160173535347, + -0.01746080070734024, + 0.002067601541057229, + -0.006112703122198582, + -0.014577539637684822, + -0.028168700635433197, + -0.04977418854832649, + -0.02293330617249012, + -0.0023533194325864315, + -0.03480779007077217, + -0.05903097614645958, + 0.0019241499248892069, + -0.02974311262369156, + 0.009546060115098953, + 0.0625971108675003, + 0.022136615589261055, + 0.006748158484697342, + 0.0002458537055645138, + 0.01820058561861515, + 0.03230390325188637, + 0.003762940177693963, + -0.0503053180873394, + -0.03057774156332016, + 0.01161840371787548, + -0.012813439592719078, + 0.04116234555840492, + 0.04617011174559593, + 0.01912057213485241, + 0.020884674042463303, + -0.057703156024217606, + 0.06305236369371414, + 0.005510442890226841, + 0.009968115948140621, + -0.0161424670368433, + -0.027580667287111282, + -0.005036222282797098, + -0.03875330463051796, + -0.03260740637779236, + 0.04848431050777435, + -0.024033498018980026, + -0.02175723947584629, + 0.025399252772331238, + 0.00573332654312253, + 0.056451216340065, + -0.0023533194325864315, + 0.014008475467562675, + 0.048787809908390045, + 0.022553930059075356, + -0.019708605483174324, + -0.012244374491274357, + -0.047422055155038834, + -0.03469397500157356, + -0.0196327306330204, + 0.022667743265628815, + -0.0715503990650177, + -0.010660477913916111, + 0.015374230220913887, + -0.014160226099193096, + 0.056109774857759476, + -0.011779638938605785, + 0.051102008670568466, + 0.0039953081868588924, + -0.03471294417977333, + 0.02198486402630806, + -0.013932599686086178, + 0.0027836747467517853, + -0.013097971677780151, + -0.03374553471803665, + -0.035187166184186935, + -0.0012258600909262896, + 0.037444453686475754, + 0.01480516605079174, + 0.025607910007238388, + 0.05307476595044136, + 0.025569971650838852, + 0.015544950030744076, + 0.07860679924488068, + 0.006691251881420612, + 0.0004626614390872419, + 0.06513893604278564, + -0.0004837049636989832, + -0.024280091747641563, + 0.03937927633523941, + 0.010499242693185806, + 0.014662900008261204, + 0.000589219038374722, + 0.016958126798272133, + -0.00560054462403059, + 0.04859812185168266, + -0.0010219452669844031, + 0.058120470494031906, + -0.04321097582578659, + -0.0022501766216009855, + -0.02843426540493965, + -0.03110886923968792, + 0.0005918865208514035, + -0.018560992553830147, + 0.0027813035994768143, + 0.030179396271705627, + -0.05732377991080284, + 0.10501139611005783, + -0.0343145988881588, + 0.0070326910354197025, + -0.009323175996541977, + 0.014150741510093212, + 0.06658056378364563, + 0.0062170312739908695, + 0.02143476903438568, + -0.01215901505202055, + 0.020448390394449234, + 0.0029164564330130816, + 0.015326808206737041, + 0.030027644708752632, + -0.02378690242767334, + -0.0375962071120739, + -0.00025993213057518005, + 0.027884168550372124, + 0.0017771415878087282, + 0.003374079242348671, + 0.0011778452899307013, + 0.01183654461055994, + -0.00625971145927906, + 0.010821713134646416, + -0.0212450809776783, + -0.013107456266880035, + -0.01873171143233776, + 0.08247643709182739, + 0.006861971225589514, + -0.027523761615157127, + 0.014084350317716599, + 0.004834678489714861, + 0.07655816525220871, + -0.009413277730345726, + 0.015165572986006737, + -0.01326869148761034, + -0.03588901087641716, + -0.04620805010199547, + 0.02367308922111988, + -0.029022298753261566, + 0.019936231896281242, + -0.0013337453128769994, + -0.0707157701253891, + -0.003535314230248332, + 0.03203834220767021, + -0.002251362195238471, + 0.00245409132912755, + 0.03767208009958267, + -0.002513368846848607, + 0.01257632952183485, + -0.010594087652862072, + 0.0004362829204183072, + 0.041238218545913696, + 0.0433247908949852, + -0.02217455394566059, + 0.03738754987716675, + -0.0732196569442749, + 0.020524265244603157, + 0.013885177671909332, + 0.04184522107243538, + -0.03643910586833954, + 0.008531227707862854, + 0.06149692088365555, + 0.01161840371787548, + -5.186787461752829e-07, + 0.019993139430880547, + 0.0014641559682786465, + -0.002299969783052802, + -0.04563898593187332, + -0.024071434512734413, + 0.01713833026587963, + 0.04298334941267967, + -0.01342044211924076, + 0.0008535970118828118, + -0.0020403340458869934, + 0.014473211020231247, + 0.037728987634181976, + 0.01838078908622265, + -0.03325234353542328, + -0.03511128947138786, + -0.00854545459151268, + -0.01984138786792755, + -0.029117142781615257, + 0.021074362099170685, + 0.01369548961520195, + 0.011646856553852558, + -0.01290828362107277, + 0.017584098502993584, + 0.012472000904381275, + 0.018655836582183838, + -0.01667359471321106, + -0.05360589176416397, + -0.03628735616803169, + -0.018655836582183838, + 0.0449940450489521, + 0.024925032630562782, + 0.008147109299898148, + -0.019044697284698486, + -0.0019253354985266924, + -0.023274745792150497, + 0.023805871605873108, + -0.015336292795836926, + -0.028415296226739883, + 0.040934719145298004, + -0.029268892481923103, + 0.020012106746435165, + -0.010897587984800339, + 0.020467359572649002, + -0.004142316523939371, + 0.04150378331542015, + 0.0016538441414013505, + 0.023502370342612267, + -0.037444453686475754, + -0.004386540036648512, + -0.006942588835954666, + -0.0017949248431250453, + -0.005026737693697214, + -0.022534960880875587, + 0.03818424046039581, + 0.04036565497517586, + 0.013097971677780151, + -0.05470608174800873, + -0.0018233780283480883, + 0.05189869925379753, + -0.005505700595676899, + 0.03471294417977333, + -0.000986378756351769, + -0.005448793992400169, + -0.011011401191353798, + 0.009787912480533123, + -0.07617878913879395, + -0.014511149376630783, + -0.025133689865469933, + -0.015763090923428535, + -0.018181616440415382, + 0.009394309483468533, + -0.04924306273460388, + 0.0020924981217831373, + -0.009332660585641861, + -0.01294622104614973, + -0.004068812355399132, + 0.006961557548493147, + 0.019044697284698486, + -0.012206437066197395, + 0.046245988458395004, + 0.014046412892639637, + 0.009977600537240505, + -0.0014416305348277092, + 0.04727030545473099, + -0.01486207265406847, + -0.039341337978839874, + -0.018096257001161575, + 0.035718291997909546, + 0.0005005990969948471, + 0.03173483908176422, + -0.02750479243695736, + -0.011864998377859592, + -0.010100897401571274, + 0.022762587293982506, + -0.0010219452669844031, + -0.03956896439194679, + -0.01077429112046957, + 0.0015258046332746744, + -0.05364383012056351, + 0.0034807787742465734, + -0.023919684812426567, + 0.016569266095757484, + 0.027979012578725815, + -0.00047836999874562025, + -0.010224195197224617, + -0.00276233465410769, + -0.007525880355387926, + -0.02528543956577778, + 0.019338713958859444, + 0.03831702098250389, + 0.016540812328457832, + -0.011447683908045292, + -0.021188175305724144, + 0.024716375395655632, + -0.0070326910354197025, + -0.033707596361637115, + 0.014482695609331131, + -0.01098294835537672, + 0.024280091747641563, + 0.014956916682422161, + 0.020258702337741852, + -0.039455149322748184, + 0.012756532989442348, + 0.008431641384959221, + -0.01672101765871048, + -0.030501866713166237, + -0.046245988458395004, + -0.004350973758846521, + 0.0024683179799467325, + 0.0017996670212596655, + 0.010688931681215763, + -0.02856704592704773, + -0.03279709443449974, + 0.06149692088365555, + 0.008825244382023811, + -0.0641525536775589, + -0.005377660971134901, + -0.023122994229197502, + 0.024071434512734413, + -0.14545293152332306, + 0.01486207265406847, + -0.02708747796714306, + -0.008943799883127213, + -0.03416284918785095, + -0.007312480825930834, + -0.003412016900256276, + 0.02898436039686203, + 0.004161285236477852, + 0.0025015133433043957, + 0.04673917964100838, + -0.022060740739107132, + 0.042300473898649216, + -0.009645646438002586, + -0.016275249421596527, + 0.043476540595293045, + -0.0037344868760555983, + -0.016664110124111176, + 0.02940167486667633, + 0.0588412880897522, + -0.021415799856185913, + 0.00027697443147189915, + -0.026992633938789368, + -0.01056563388556242, + 0.006193320266902447, + -0.02940167486667633, + 0.000531423429492861, + 0.0029970738105475903, + -0.000408718828111887, + 0.03621148318052292, + -0.012690141797065735, + -0.058879222720861435, + 0.02579759806394577, + 0.028491171076893806, + 0.002518111141398549, + -0.021927958354353905, + 0.0022810008376836777, + 0.06798426061868668, + 0.006060538813471794, + 0.0196327306330204, + 0.027770355343818665, + -0.014843103475868702, + 0.026158004999160767, + 0.034011099487543106, + 0.005870850291103125, + 0.019708605483174324, + -0.01641751639544964, + -0.01380930282175541, + -0.02196589671075344, + 0.02314196340739727, + 0.026727071031928062, + -0.022971244528889656, + -0.033385127782821655, + -0.00772031070664525, + 0.037956614047288895, + 0.025721723213791847, + -0.043362729251384735, + 0.03484572470188141, + -0.0067908382043242455, + 0.10045888274908066, + -0.023597214370965958, + 0.009370598010718822, + -0.005192715208977461, + -0.03757723793387413, + -0.0007978760986588895, + 0.0015210624551400542, + -0.006297648884356022, + 0.0030373826157301664, + 0.03035011515021324, + -0.023635152727365494, + 0.010632025077939034, + -0.026480475440621376, + -0.02304711937904358, + -0.009138230234384537, + 0.019594794139266014, + -0.007862577214837074, + 0.010669962503015995, + -0.04579073563218117, + -0.027447884902358055, + 0.013667036779224873, + 0.003478407859802246, + 0.03448531776666641, + -0.009460699744522572, + 0.04044152796268463, + 0.025645848363637924, + -0.002769448095932603, + -0.017280597239732742, + -0.008355766534805298, + 0.055806275457143784, + -0.003274492919445038, + -0.01734698750078678, + -0.0012566844234243035, + -0.006155382841825485, + -0.002426823601126671, + -0.010764806531369686, + 0.030862273648381233, + -0.022022802382707596, + -0.011305417865514755, + -0.0227056797593832, + -0.037956614047288895, + -0.020144889131188393, + -0.0239007156342268, + 0.006492079235613346, + 0.023540308699011803, + -0.011770154349505901, + 0.05489576980471611, + 0.011713247746229172, + -0.006231258157640696, + 0.0075116534717381, + -0.009892241097986698, + -0.00921410508453846, + -0.01803934946656227, + 0.003570880740880966, + -0.039644837379455566, + -0.013951568864285946, + -0.0009757087682373822, + 0.001029651379212737, + -0.013562708161771297, + -0.0200500451028347, + 0.0028168701101094484, + -0.00785309262573719, + 0.004241902846843004, + -0.03941721096634865, + -0.03822217509150505, + -0.02909817360341549, + -0.02122611179947853, + 0.029003329575061798, + 0.012490969151258469, + -0.013629098422825336, + 0.04321097582578659, + 0.01586741954088211, + -0.00713701918721199, + -0.019395621493458748, + 0.087484210729599, + 0.025000907480716705, + 0.00353057193569839, + -0.0473841167986393, + 0.06309030205011368, + -0.038165271282196045, + -0.018703259527683258, + 0.04579073563218117, + 0.031165774911642075, + 0.001209262409247458, + -0.01257632952183485, + -0.04025183990597725, + 0.0039028350729495287, + -0.0401000902056694, + -0.03704610839486122, + 0.021377863362431526, + -0.006762384902685881, + 0.009100292809307575, + -0.009602965787053108, + -0.0010243164142593741, + 0.013126424513757229, + -0.003430985612794757, + 0.01565876230597496, + 0.058461908251047134, + 0.01588638871908188, + -0.05167107284069061, + 0.0016739985439926386, + 0.02824457548558712, + -0.05588214844465256, + 0.010167288593947887, + -0.011087276972830296, + 0.023331651464104652, + -0.00014167338667903095, + 0.020410452038049698, + 0.0018020381685346365, + -0.03410594165325165, + 0.025114720687270164, + 0.028263544663786888, + 0.010745837353169918, + -0.024868125095963478, + 0.02794107422232628, + 0.010413883253932, + -0.023805871605873108, + 0.013885177671909332, + 0.005761779844760895, + 0.067073754966259, + -0.010328523814678192, + 0.012481484562158585, + 0.031374432146549225, + 0.031051961705088615, + 0.0027125414926558733, + -0.01704348623752594, + 0.03209524601697922, + -0.001953788800165057, + 0.0006443471647799015, + -0.039227522909641266, + -0.021681364625692368, + -0.0018672434380277991, + 0.018285945057868958, + -0.00936585571616888, + 0.001122124376706779, + 0.05990353971719742, + -0.009408535435795784, + -0.016000201925635338, + 0.02685985155403614, + -0.0020972404163330793, + 0.06107960641384125, + 0.010878619737923145, + 0.016360608860850334, + -0.021491674706339836, + 0.020657047629356384, + -0.010053475387394428, + -0.011210573837161064, + -0.004808596335351467, + 0.005761779844760895, + -0.04639773815870285, + -0.00972152128815651, + -0.017517708241939545, + -0.003978710621595383, + -0.00252048228867352, + 0.01257632952183485, + -0.005496216006577015, + 0.05739965662360191, + -0.005719100125133991, + 0.00875411182641983, + -0.017337502911686897, + 0.017451316118240356, + -0.003151195589452982, + 0.0184092428535223, + -0.011713247746229172, + -0.004332004580646753, + 0.06350761651992798, + -0.03406800329685211, + 0.0134868323802948, + -0.012832407839596272, + -0.04381797835230827, + -0.032550498843193054, + -0.028168700635433197, + -0.012168499641120434, + -0.0076017556712031364, + 0.02792210690677166, + 0.0028808899223804474, + -0.02058117277920246, + 0.013790333643555641, + -0.0014997224789112806, + -0.029800020158290863, + 0.03547169640660286, + 0.05743759498000145, + 0.02612006850540638, + 0.040289778262376785, + 0.04085884243249893 + ] + } + }, + { + "type": "维修工作", + "properties": { + "名称": "阀杆的维修工作", + "embedding": [ + -0.045766569674015045, + 0.00181735516525805, + -0.04444054886698723, + 0.005469824653118849, + 0.006398037541657686, + -0.00726468488574028, + 0.006975802592933178, + 0.017314007505774498, + -0.02777060866355896, + -0.0043119266629219055, + -0.010541844181716442, + 0.00264730048365891, + 0.014017906039953232, + 0.0242471881210804, + 0.009253712370991707, + -0.025459548458456993, + 0.013980019837617874, + -0.011706845834851265, + 0.022030843421816826, + -0.04000786319375038, + -0.005403523799031973, + 0.0070326318964362144, + 0.0005455025238916278, + 0.03928802162408829, + 0.03428703919053078, + 0.03459012880921364, + 0.02646353282034397, + -0.006488017272204161, + 0.02311060205101967, + -0.005308808293193579, + -0.034628015011548996, + -0.005753971636295319, + -0.054177314043045044, + -0.019984988495707512, + -0.016906730830669403, + -0.04095501825213432, + 0.01454831287264824, + -0.02131100557744503, + -0.04080347344279289, + 0.024455562233924866, + 0.00032706474303267896, + -0.04622120410203934, + 0.023508407175540924, + -0.03951533883810043, + -0.007667226251214743, + -0.014235751703381538, + -0.017010917887091637, + -0.032373785972595215, + -0.005597691051661968, + -0.014188393950462341, + -0.02583841048181057, + -0.017351893708109856, + 0.03809460625052452, + -0.00633647246286273, + 0.02292117103934288, + 0.04144753888249397, + 0.019814498722553253, + 0.0027041297871619463, + -0.04697892814874649, + 0.009637310169637203, + -0.01776864379644394, + 0.023792553693056107, + -0.011356398463249207, + -0.010920706205070019, + 0.00468368548899889, + 0.09085118770599365, + -0.002088478533551097, + 0.0147851025685668, + -0.017323479056358337, + -0.0211594607681036, + -0.0004661782586481422, + 0.04099290445446968, + 0.011526886373758316, + -0.009462086483836174, + -0.028225243091583252, + 0.020401736721396446, + 0.007449380587786436, + -0.019331449642777443, + 0.017550796270370483, + 0.02182246930897236, + 0.012047821655869484, + 0.014917704276740551, + 0.06001179292798042, + 0.013392782770097256, + -0.017200348898768425, + -0.0023998559918254614, + 0.021386777982115746, + 0.0038312452379614115, + -0.04031095281243324, + -0.029778579249978065, + 0.01842218078672886, + 0.008623853325843811, + 0.007643547374755144, + 0.01211412250995636, + -0.04667583853006363, + -0.0023335551377385855, + 0.01776864379644394, + -0.03197598084807396, + 0.03659810125827789, + -0.0071936482563614845, + 0.05459406226873398, + 0.0549350380897522, + 0.006824257783591747, + -0.043682824820280075, + 0.047774538397789, + -0.018156977370381355, + -0.006450131069868803, + 0.011507943272590637, + -0.0011040285462513566, + -0.0090358667075634, + 0.0020813748706132174, + 0.033188339322805405, + -0.013942133635282516, + 0.018374823033809662, + -0.02358417958021164, + -0.03322622552514076, + -0.02407670021057129, + -0.04265989735722542, + 0.042546238750219345, + -0.0027775343041867018, + -0.04538770765066147, + 0.017692871391773224, + 0.019255677238106728, + -0.04811551421880722, + -0.014008434489369392, + -0.02744857594370842, + 0.05451828986406326, + -0.012000463902950287, + 0.0030829922761768103, + 0.03246850147843361, + 0.0009672828600741923, + 0.03580249100923538, + -0.010627088136970997, + 0.014832460321485996, + -0.037696801126003265, + -0.04716835916042328, + -0.015722787007689476, + 0.0069189732894301414, + 0.001986659364774823, + -0.011517414823174477, + -0.017200348898768425, + 0.04345550760626793, + -0.030403701588511467, + -0.009945135563611984, + -0.024417676031589508, + -0.016205836087465286, + 0.009059545584022999, + -0.023944098502397537, + 0.007885072380304337, + -0.020894257351756096, + 0.00665850518271327, + 0.02081848494708538, + 0.010968063957989216, + -0.017152991145849228, + 0.08395589143037796, + -0.007596189621835947, + -0.05845845490694046, + 0.012701359577476978, + -0.011801561340689659, + -0.02775166556239128, + 0.07312043011188507, + 0.07558303326368332, + -0.041106563061475754, + -0.012871847487986088, + 0.03906070441007614, + 0.010305055417120457, + 0.012208838015794754, + 0.0002261334448121488, + -0.003118510590866208, + 0.03210858255624771, + -0.00032588079920969903, + -0.01614900678396225, + 0.011829975992441177, + 0.027353860437870026, + 0.0033505635801702738, + 0.0036299745552241802, + 0.029664920642971992, + 0.011005950160324574, + 0.0497446246445179, + -0.01774022914469242, + 0.012313025072216988, + 0.04375859722495079, + 0.005597691051661968, + -0.01041871402412653, + 0.014586199074983597, + 0.04103079065680504, + 0.023470520973205566, + -0.043379735201597214, + 0.004506093915551901, + -0.0029740692116320133, + 0.002229368081316352, + -0.016688885167241096, + 0.026217272505164146, + 0.012142537161707878, + 0.00969887524843216, + -0.034343868494033813, + -0.015277623198926449, + -0.00226251850835979, + 0.032392729073762894, + -0.01039977092295885, + -0.00512884883210063, + -0.03021427057683468, + 0.04550136625766754, + 0.02195507101714611, + -0.03407866507768631, + 0.012133065611124039, + -0.002358417958021164, + -0.0497446246445179, + 0.021784583106637, + -0.04095501825213432, + 0.012227781116962433, + -0.024663938209414482, + 0.007084725424647331, + -0.019625067710876465, + -0.057246096432209015, + 0.017048804089426994, + 0.0037625764962285757, + -0.04921421408653259, + -0.010115624405443668, + -0.006691655609756708, + -0.025118572637438774, + 0.021405721083283424, + 0.0403488390147686, + -0.04766087979078293, + 0.02015547640621662, + -0.06107260659337044, + 0.051563162356615067, + 0.0012644530506804585, + -0.019662953913211823, + -0.0361434668302536, + -0.03051736019551754, + 0.028509389609098434, + -0.04910055547952652, + -0.017389779910445213, + 0.02439873293042183, + 0.026027841493487358, + 0.021557265892624855, + 0.03519630804657936, + 0.02051539532840252, + 0.02197401411831379, + -0.01356327161192894, + -0.06421716511249542, + 0.0643308237195015, + -0.029645977541804314, + 0.03568883240222931, + 0.02892613783478737, + 0.015154493041336536, + 0.01595957577228546, + -0.012388798408210278, + 0.02650141902267933, + 0.00693791639059782, + -0.025800524279475212, + -0.01697303168475628, + 0.01728559285402298, + -0.0024602371267974377, + 0.013383311219513416, + 0.01918937638401985, + -0.014264166355133057, + 0.007203119806945324, + -0.018677912652492523, + -0.002436558250337839, + 0.08539556711912155, + 0.003106671152636409, + 0.016357380896806717, + 0.0050530764274299145, + 0.021405721083283424, + -0.04387225583195686, + -0.0336429737508297, + -0.005512446630746126, + 0.03627606853842735, + -0.015722787007689476, + -0.02439873293042183, + -0.005564540158957243, + 0.025800524279475212, + 0.042849328368902206, + -0.010674445889890194, + 0.014254694804549217, + -0.03502582013607025, + 0.08001572638750076, + -0.02392515540122986, + 0.04322819039225578, + 0.01810014806687832, + 0.03424915298819542, + -0.017977017909288406, + -0.02097002975642681, + 0.009623102843761444, + -0.07599978148937225, + -0.01989027112722397, + -0.004735779017210007, + -0.04163696989417076, + -0.0034618545323610306, + -0.07588612288236618, + 0.06217130646109581, + -0.0061991349793970585, + -0.022352878004312515, + 0.053192269057035446, + 0.004735779017210007, + -0.16245616972446442, + 0.05781438946723938, + -0.006649033632129431, + 0.06501277536153793, + 0.008548080921173096, + 0.0005490543553605676, + -0.044970959424972534, + 0.011801561340689659, + -0.07285522669553757, + -0.047888197004795074, + -0.012133065611124039, + -0.06266383081674576, + -0.01283396128565073, + 0.0012609012192115188, + 0.03036581538617611, + -0.0147851025685668, + -0.037204280495643616, + 0.007236270233988762, + 0.01985238492488861, + -0.01630055159330368, + -0.03191915154457092, + 0.04250835254788399, + 0.061299923807382584, + -0.024114586412906647, + -0.05262397602200508, + -0.04584234207868576, + -0.002820156514644623, + -0.03343459963798523, + -0.011024893261492252, + 0.004915738478302956, + 0.011413227766752243, + 0.053533244878053665, + -0.011081722564995289, + 0.026520362123847008, + -0.026103613898158073, + -0.019625067710876465, + -0.027240201830863953, + 0.04364493861794472, + -0.012407741509377956, + 0.03887127339839935, + 0.037052735686302185, + 0.06539163738489151, + -0.0072694206610322, + 0.022978000342845917, + -0.0020967661403119564, + -0.07243847846984863, + 0.0031919151078909636, + -0.023053772747516632, + -0.01918937638401985, + 0.011564772576093674, + -0.03443858399987221, + 0.01564701460301876, + 0.03343459963798523, + 0.027524348348379135, + -0.021235233172774315, + -0.033491428941488266, + -0.00039573354297317564, + 0.0383787527680397, + -0.023868326097726822, + 0.06171667203307152, + -0.0529649518430233, + -0.06099683418869972, + 0.003741265507414937, + -0.05152527615427971, + -0.06800578534603119, + -0.006355415564030409, + -0.011886805295944214, + -0.01595957577228546, + 0.009424200281500816, + -0.032714761793613434, + 0.007359400857239962, + -0.010352413170039654, + 0.0180717334151268, + -0.023622065782546997, + -0.04148542508482933, + 0.0051335846073925495, + 0.0010933729354292154, + -0.013544328510761261, + -0.007155762054026127, + -0.13495075702667236, + 0.007127347402274609, + 0.005526653956621885, + 0.010702860541641712, + -0.04375859722495079, + -0.02193612791597843, + -0.025251174345612526, + 0.0011170519283041358, + 0.03227907046675682, + -0.014169450849294662, + 0.23398536443710327, + -0.008945886977016926, + 0.02015547640621662, + 0.025895239785313606, + 0.042053718119859695, + -0.019625067710876465, + -0.0033079416025429964, + -0.024796539917588234, + 0.031256143003702164, + -0.03387029096484184, + 0.017219291999936104, + 0.023678895086050034, + 0.04228103533387184, + -0.028301015496253967, + 0.04614543169736862, + 0.0009903698228299618, + -0.02100791595876217, + -0.004314294550567865, + 0.10759689658880234, + 0.008207105100154877, + 0.0011436906643211842, + 0.009267919696867466, + -0.02311060205101967, + 0.008259198628365993, + -0.07660596072673798, + -0.06353521347045898, + -0.01579855941236019, + 0.04178851470351219, + -0.028130527585744858, + 0.022731740027666092, + 0.0007766677881591022, + 0.011015421710908413, + 0.03195703774690628, + 0.0059007806703448296, + -0.033813461661338806, + -0.009016923606395721, + -0.017484495416283607, + -0.013847418129444122, + 0.02392515540122986, + -0.004633959848433733, + -0.028016868978738785, + -0.022674910724163055, + 0.03142663091421127, + -0.01147005707025528, + -0.0010821254691109061, + -0.03792411834001541, + -0.017560267820954323, + 0.023489464074373245, + -0.009954607114195824, + -0.015902746468782425, + 0.0036299745552241802, + -0.0020932143088430166, + -0.030801506713032722, + 0.022201331332325935, + -0.0023820968344807625, + -0.04068981483578682, + -0.035935092717409134, + -0.06273960322141647, + 0.015400753356516361, + 0.027978982776403427, + 0.035158421844244, + 0.004551083780825138, + -0.018469538539648056, + 0.012777131982147694, + -0.014832460321485996, + -0.019966045394539833, + -0.03309362381696701, + 0.04565291106700897, + 0.0023856486659497023, + 0.018289579078555107, + -0.025895239785313606, + -0.022087672725319862, + 0.002474444452673197, + 0.027884267270565033, + 0.001972452038899064, + -0.01419786550104618, + -0.01039977092295885, + 0.07827295362949371, + -0.008519666269421577, + 0.022674910724163055, + -0.06107260659337044, + -0.02955126203596592, + -0.011905748397111893, + -0.026046784594655037, + 0.0025360097642987967, + -0.03178654983639717, + -0.040273066610097885, + 4.373196134110913e-05, + -0.010030380450189114, + -0.00264493259601295, + -0.018621083348989487, + -0.0076861693523824215, + -0.04216737672686577, + -0.05781438946723938, + -0.038037776947021484, + -0.002165434882044792, + -0.005143056157976389, + -0.05307861045002937, + -0.030782563611865044, + -0.001085677300579846, + -0.05440463125705719, + -0.019833441823720932, + 0.005697142332792282, + 0.0238872691988945, + 0.005086226854473352, + -0.012019407004117966, + -0.01954929530620575, + 0.03144557401537895, + 0.004200635943561792, + -0.0025075951125472784, + -0.005668727681040764, + 0.023508407175540924, + -0.05019925907254219, + -0.020269135013222694, + 0.05213145539164543, + -0.006956859491765499, + 0.028130527585744858, + 0.03779151663184166, + -0.000716286594979465, + 0.01888628676533699, + -0.034324925392866135, + 0.046600066125392914, + 0.01647103950381279, + 0.0007127347635105252, + -0.024019870907068253, + -0.012133065611124039, + -0.04959307983517647, + -0.03114248253405094, + -0.027865324169397354, + 0.051449503749608994, + -0.005346694495528936, + -0.01842218078672886, + -0.00038567002047784626, + -0.007648283150047064, + 0.028471503406763077, + 0.0024626050144433975, + 0.047244131565093994, + 0.00936263520270586, + 0.008898529224097729, + -0.0014254695270210505, + -0.020288078114390373, + -0.028054755181074142, + -0.02616044320166111, + -0.006720070261508226, + -0.010655502788722515, + -0.07107457518577576, + -0.0016314758686348796, + -0.002997748088091612, + -0.0025999427307397127, + 0.024285074323415756, + -0.0163289662450552, + 0.06198187544941902, + -0.012095179408788681, + -0.04099290445446968, + 0.018535839393734932, + -0.04349339380860329, + -0.020780598744750023, + -0.00014888105215504766, + 0.002486283890902996, + -0.04406168684363365, + -0.0030380021780729294, + 0.025933125987648964, + -0.006071268580853939, + 0.02485336922109127, + 0.0851682499051094, + 0.03275264799594879, + 0.01886734366416931, + 0.04940364882349968, + 0.037052735686302185, + -0.0008536241948604584, + -0.00011676655412884429, + -0.02439873293042183, + -0.0383787527680397, + 0.04065192863345146, + 0.023963041603565216, + 0.004487150814384222, + -0.03726110979914665, + 0.0017806529067456722, + -0.03127508610486984, + 0.04201583191752434, + 0.015220793895423412, + 0.07512839883565903, + -0.022068729624152184, + -0.020591167733073235, + -0.03210858255624771, + 0.018147505819797516, + 0.025270117446780205, + -0.009386314079165459, + 0.023641008883714676, + 0.011214325204491615, + -0.05876154825091362, + 0.09547330439090729, + -0.06220919266343117, + 0.005981288850307465, + -0.01008720975369215, + 0.034665901213884354, + 0.056602030992507935, + -0.012947619892656803, + 0.005147791933268309, + -0.047547221183776855, + -0.04421323165297508, + 0.03358614444732666, + 0.028490446507930756, + 0.03809460625052452, + -0.004958360455930233, + -0.027713779360055923, + -0.008595438674092293, + 0.014756687916815281, + 0.00060499575920403, + 0.003360035130754113, + -0.011280626058578491, + 0.026084670796990395, + -0.008609645999968052, + 0.0016030612168833613, + 0.020250191912055016, + -0.013421197421848774, + 0.001353248837403953, + 0.04701681435108185, + 0.03517736494541168, + -0.04633486270904541, + 0.05440463125705719, + 0.005029397550970316, + 0.03799989074468613, + 0.014482012018561363, + -0.00041970840538851917, + 0.031729720532894135, + 0.0028580427169799805, + -0.00969887524843216, + 0.026766622439026833, + -0.01315599400550127, + 0.012805546633899212, + 0.014756687916815281, + 0.00694265216588974, + -0.03760208562016487, + 0.04622120410203934, + -0.018810514360666275, + 0.004749986343085766, + 0.04292510077357292, + -0.023167431354522705, + 0.038037776947021484, + 0.02985435165464878, + -0.004799711983650923, + 0.052548203617334366, + 0.049630966037511826, + -0.009130582213401794, + 0.05038869008421898, + -0.060617972165346146, + 0.009452614933252335, + 0.009409992955625057, + 0.018810514360666275, + -0.04811551421880722, + 0.008349178358912468, + 0.0613756962120533, + 0.023148488253355026, + -0.0011182358721271157, + -0.011848919093608856, + -0.023318976163864136, + -0.001289315870963037, + -0.01477563101798296, + -0.036768589168787, + 0.007231534458696842, + 0.03877655789256096, + -0.010352413170039654, + -0.014841931872069836, + -0.010001965798437595, + 0.0026330931577831507, + 0.01922726258635521, + 0.036768589168787, + -0.025876296684145927, + -0.02148149348795414, + -0.006284378934651613, + 0.009234769269824028, + -0.05235877260565758, + -0.034495413303375244, + -0.0021109734661877155, + -0.01194363459944725, + -0.03176760673522949, + 0.03553728759288788, + 0.0326579324901104, + 0.047547221183776855, + 0.007155762054026127, + -0.06156512722373009, + -0.021273119375109673, + 0.002116893185302615, + 0.023015886545181274, + -0.0028130528517067432, + 0.002005602465942502, + -0.018374823033809662, + -0.014178922399878502, + -0.014804045669734478, + 0.056412599980831146, + -0.020458566024899483, + -0.06277748942375183, + 0.001241958001628518, + -0.04046249762177467, + 0.006483281496912241, + 0.0005996680120006204, + 0.0377536304295063, + -0.013430668972432613, + 0.03762102872133255, + -0.011148023419082165, + 0.018005432561039925, + -0.02924817055463791, + -0.012038350105285645, + 0.035575173795223236, + -0.03616240993142128, + 0.002545481314882636, + -0.012635058723390102, + 0.0072267986834049225, + 0.034646958112716675, + 0.04031095281243324, + -0.05050234869122505, + -0.007724055554717779, + 0.029835408553481102, + 0.01806226186454296, + 0.015002948231995106, + 0.004001733381301165, + -0.015694372355937958, + 0.0036891719792038202, + -0.013345425017178059, + -0.022201331332325935, + 0.00633647246286273, + -0.019454579800367355, + 0.006009703502058983, + -0.041068676859140396, + 0.020913200452923775, + -0.00952365156263113, + 0.03053630329668522, + -0.04951730743050575, + -0.024644993245601654, + -0.028357844799757004, + -0.002074271207675338, + -0.01663205586373806, + 0.023356862366199493, + 0.033491428941488266, + 0.010702860541641712, + -0.019966045394539833, + -0.015343924053013325, + 0.04296298697590828, + 0.019416693598031998, + -0.020458566024899483, + -0.008500723168253899, + 0.03243061527609825, + -0.001083901384845376, + 0.0387386716902256, + -0.04095501825213432, + -0.017077218741178513, + -0.028357844799757004, + 0.014699858613312244, + 0.006488017272204161, + -0.046751610934734344, + -0.005796593613922596, + -0.008211840875446796, + -0.05057812109589577, + 0.011564772576093674, + -0.010797576047480106, + 0.04614543169736862, + 0.00799399521201849, + -0.013942133635282516, + -0.005398788023740053, + -0.010485014878213406, + -0.03280947729945183, + -0.014908232726156712, + 0.029986953362822533, + -0.009263183921575546, + -0.0114511139690876, + 0.011811032891273499, + -0.006274907384067774, + 0.0084770442917943, + -0.0072694206610322, + -0.030062725767493248, + 0.016177421435713768, + 0.01953035220503807, + 0.013591686263680458, + -0.026558248326182365, + 0.03510159254074097, + -0.05334381386637688, + 0.00693791639059782, + 0.037545256316661835, + -0.016688885167241096, + -0.0271076001226902, + -0.03648444265127182, + -0.010371356271207333, + -0.008017674088478088, + 0.005029397550970316, + -0.0044966223649680614, + -0.040576156228780746, + -0.030612075701355934, + 0.04459209367632866, + 0.03178654983639717, + -0.030403701588511467, + 0.030631018802523613, + -0.03224118426442146, + 0.0017640776932239532, + -0.15434850752353668, + 0.022485479712486267, + -0.012474042363464832, + -0.0033789784647524357, + -0.041750628501176834, + -0.007089461199939251, + -0.01761709898710251, + -0.012881319038569927, + -0.010712332092225552, + 0.014567255973815918, + 0.0002714193251449615, + 0.003982790280133486, + 0.05978447571396828, + 0.00028755058883689344, + -0.010664974339306355, + 0.039932090789079666, + 0.017787586897611618, + -0.0022329199127852917, + 0.003118510590866208, + 0.07414335757493973, + -0.018772628158330917, + -0.00424325792118907, + -0.019947100430727005, + -0.003073520492762327, + 0.03099093772470951, + 0.001545047969557345, + 0.030252156779170036, + 0.0008429686422459781, + -0.006634826306253672, + 0.0159690473228693, + -0.0026496683713048697, + -0.07418124377727509, + 0.048191286623477936, + 0.005881837569177151, + -0.014093678444623947, + -0.00985989160835743, + 0.0014373089652508497, + 0.035916149616241455, + 0.03502582013607025, + 0.0005221196333877742, + 0.03438175469636917, + -0.015732258558273315, + -0.003980422392487526, + 0.03373768925666809, + -0.002390384441241622, + 0.03163500502705574, + -0.014103149995207787, + -0.00018676728359423578, + 0.006497488822788, + 0.003819405799731612, + 0.007894543930888176, + 0.021538322791457176, + -0.01870632730424404, + 0.02892613783478737, + -0.04103079065680504, + 0.04277355596423149, + -0.05402576923370361, + -0.0017072483897209167, + -0.028793536126613617, + 0.06796789914369583, + -0.06542952358722687, + -0.005109905730932951, + -0.015220793895423412, + -0.04000786319375038, + -0.01234144065529108, + -0.0019321978325024247, + -0.0008163299062289298, + 0.0008808549027889967, + 0.025592150166630745, + -0.024644993245601654, + 0.01129009760916233, + -0.017806529998779297, + -0.009585216641426086, + -0.004304822999984026, + 0.023963041603565216, + -0.012331969104707241, + -0.004210107494145632, + -0.038511354476213455, + -0.014320995658636093, + -0.00013881752965971828, + -0.000492521037813276, + 0.014870346523821354, + 0.017238235101103783, + 0.05038869008421898, + 0.019606124609708786, + 0.01938827894628048, + -0.005024661775678396, + -0.029304999858140945, + 0.03519630804657936, + 0.01008720975369215, + -0.0056592561304569244, + -0.006975802592933178, + -0.0007973868050612509, + -0.023318976163864136, + 0.01349696982651949, + 0.022163445129990578, + -0.04697892814874649, + -0.024493448436260223, + -0.018033847212791443, + -0.03184337913990021, + -0.0040206764824688435, + 0.008107653819024563, + -0.01266347337514162, + 0.04826705902814865, + -0.01858319714665413, + 0.042205262929201126, + 0.028149470686912537, + -0.00726468488574028, + 0.021595152094960213, + 0.010807047598063946, + -0.036389727145433426, + -0.002389200497418642, + -8.021225949050859e-05, + -0.01677412912249565, + -0.04046249762177467, + 0.028509389609098434, + -0.0044634719379246235, + -0.02439873293042183, + -0.05228300020098686, + -0.013837946578860283, + 0.006876351311802864, + 0.02699393965303898, + -0.051601048558950424, + -0.03523419797420502, + 0.00935789942741394, + -0.04095501825213432, + 0.013137050904333591, + 0.03070679120719433, + 0.022731740027666092, + 0.051260072737932205, + 0.0020257295109331608, + -0.01645209640264511, + -0.01729506440460682, + 0.05398787930607796, + 0.0070799896493554115, + -0.024777596816420555, + -0.07759100198745728, + 0.05243454501032829, + -0.00013578365906141698, + -0.025137515738606453, + 0.007937165908515453, + 0.017825473099946976, + -0.00363234244287014, + -0.05929195508360863, + 0.006767428480088711, + -0.018857872113585472, + -0.0016468671383336186, + -0.01825169287621975, + -0.0033363562542945147, + -0.007212591357529163, + 0.01613953523337841, + -0.007364136632531881, + -0.008761190809309483, + 0.0030356342904269695, + 0.01956823840737343, + 0.020932143554091454, + 0.003045105841010809, + -0.04197794571518898, + -0.05406365543603897, + 0.011839447543025017, + 0.06516432017087936, + -0.06561895459890366, + -0.009954607114195824, + 0.017475023865699768, + 0.015703843906521797, + 0.011043836362659931, + 0.028490446507930756, + 0.012189894914627075, + -0.03627606853842735, + 0.014406239613890648, + 0.008780133910477161, + -0.0042953514494001865, + 0.0004025412199553102, + -0.019255677238106728, + -0.01194363459944725, + -0.059178296476602554, + 0.021727753803133965, + -0.03709062188863754, + 0.05845845490694046, + -0.008202369324862957, + 0.017541324719786644, + 0.03741265460848808, + 0.022561252117156982, + 0.0028935610316693783, + 0.02392515540122986, + 0.025876296684145927, + -0.01598799042403698, + 0.00953785888850689, + -0.02972174994647503, + 0.0064738099463284016, + 0.0041816928423941135, + -0.009140053763985634, + -0.0507296659052372, + 0.0027514875400811434, + 0.03989420086145401, + 0.02470182441174984, + 0.004510829690843821, + 0.020610110834240913, + 0.008263934403657913, + 0.07168075442314148, + -0.014235751703381538, + 0.044175345450639725, + -0.039666883647441864, + 0.010210339911282063, + 0.014813517220318317, + 0.003217961871996522, + 0.017361365258693695, + 0.008775398135185242, + -0.052699748426675797, + -0.023603122681379318, + 0.00036583893233910203, + 0.01871579885482788, + -0.026558248326182365, + -0.000748253078199923, + 0.00935789942741394, + 0.025232231244444847, + 0.0018587933154776692, + 0.00649275304749608, + -0.05088121071457863, + -0.0029503903351724148, + -0.006227549631148577, + -0.004858909174799919, + -0.019350392743945122, + 0.0015545195201411843, + 0.09054809808731079, + -0.04629697650671005, + 0.0018552414840087295, + -0.04413745924830437, + -0.03955322504043579, + -0.037393711507320404, + -0.01541969645768404, + 0.005867630243301392, + -0.0030190590769052505, + 0.02712654322385788, + -0.009675196371972561, + -0.022371821105480194, + -0.030744677409529686, + -0.027372803539037704, + 0.029172398149967194, + 0.05228300020098686, + 0.08880532532930374, + 0.005190413910895586, + -0.0025525849778205156, + 0.03637078404426575 + ] + } + }, + { + "type": "维修工作", + "properties": { + "名称": "阀座的维修工作", + "embedding": [ + -0.044799916446208954, + -0.0013820793246850371, + -0.048622433096170425, + 0.010196567513048649, + 0.010139229707419872, + -0.022227944806218147, + -0.004770980682224035, + -0.008476434275507927, + -0.015538536943495274, + 0.005604767706245184, + -0.007520805113017559, + -0.0020988015457987785, + 0.01209827046841383, + 0.025324184447526932, + 0.005738555919378996, + -0.052139151841402054, + 0.02184569276869297, + -0.016398603096604347, + 0.022266170009970665, + -0.02117675170302391, + -0.012499635107815266, + 0.007315344642847776, + -0.002933782758191228, + 0.020316684618592262, + 0.019762419164180756, + 0.021807467564940453, + -0.004154599737375975, + -0.004426954314112663, + 0.018529657274484634, + -0.012528304010629654, + -0.025782886892557144, + -0.014305775053799152, + -0.06226882338523865, + -0.0055952114053070545, + -0.0235275998711586, + -0.042277052998542786, + 0.0008439403609372675, + -0.046290699392557144, + -0.03921904042363167, + 0.0379958339035511, + -0.013961748220026493, + -0.060625143349170685, + 0.01623614691197872, + -0.030580146238207817, + -0.02199859358370304, + -0.03447911515831947, + -0.022285282611846924, + -0.016627954319119453, + -0.009131040424108505, + -0.009976772591471672, + -0.026719404384493828, + -0.0057289996184408665, + 0.04759035259485245, + -0.004443677607923746, + 0.0195330698043108, + 0.0313064269721508, + 0.01050236914306879, + -0.0058054495602846146, + -0.04170367494225502, + 0.011983594857156277, + -0.04839308187365532, + 0.010970627889037132, + -0.03784293308854103, + 0.004713642876595259, + 0.009642302989959717, + 0.08684761822223663, + 0.00858155358582735, + 0.013579496182501316, + -0.025152171030640602, + -0.018338531255722046, + 0.0014310553669929504, + 0.039639513939619064, + 0.001280543627217412, + -0.006483946926891804, + -0.027980834245681763, + 0.03423065319657326, + 0.02402452751994133, + -0.013436151668429375, + 0.012728986330330372, + 0.002479858696460724, + 0.007344013545662165, + 0.010368580929934978, + 0.04288865625858307, + 0.019437506794929504, + -0.01985798217356205, + -0.0077071525156497955, + 0.0063883839175105095, + 0.027158992365002632, + -0.04973096400499344, + -0.02670029178261757, + -0.005404085386544466, + -0.0025730326306074858, + 0.012079157866537571, + 0.009030699729919434, + -0.033141233026981354, + -0.006144698243588209, + 0.035606760531663895, + -0.01627437211573124, + 0.029414279386401176, + -0.021291427314281464, + 0.06008999049663544, + 0.01673307456076145, + 0.011094859801232815, + -0.04437943920493126, + 0.046481821686029434, + -0.025782886892557144, + 0.03333235904574394, + 0.012050488963723183, + 0.014869596809148788, + -0.00605391338467598, + -0.0036743958480656147, + 0.036638837307691574, + -0.01310168206691742, + 0.02102385088801384, + -0.008906467817723751, + -0.026413602754473686, + -0.0005462020635604858, + -0.029605405405163765, + 0.04869888350367546, + -0.014439563266932964, + -0.05825518071651459, + 0.011534449644386768, + 0.00783616304397583, + -0.042621079832315445, + -0.02752213180065155, + -0.023737838491797447, + 0.05099239572882652, + -0.01640816032886505, + 0.013569939881563187, + 0.02966274321079254, + 0.00044526366400532424, + 0.04155077412724495, + -0.005060058552771807, + 0.006283264607191086, + -0.0550442636013031, + -0.05301833152770996, + -0.009116706438362598, + 0.025457972660660744, + 0.007090771570801735, + -0.020947400480508804, + -0.0045535750687122345, + 0.06299510598182678, + -0.012728986330330372, + 0.0005491884076036513, + -0.0010762778110802174, + 0.0018383924616500735, + 0.0007567391730844975, + -0.01826208084821701, + 0.007926947437226772, + 0.0005638214643113315, + 0.01685730554163456, + 0.014430006965994835, + 0.01418154314160347, + 0.006808860693126917, + 0.06310977786779404, + 0.01276721153408289, + -0.07067836821079254, + 0.011907144449651241, + -0.008261417970061302, + -0.025897562503814697, + 0.0397159643471241, + 0.06922581046819687, + -0.04235350340604782, + 0.00825663935393095, + 0.03268253058195114, + -0.029299603775143623, + 0.006130363792181015, + -0.0021167194936424494, + -0.019991770386695862, + 0.010282574221491814, + 0.01666617952287197, + -0.017812935635447502, + 0.00604435708373785, + 0.013942635618150234, + -0.0006456472328864038, + 0.010034110397100449, + 0.010387693531811237, + 0.015892120078206062, + 0.06039579212665558, + -0.024406779557466507, + 0.012146051973104477, + 0.029318716377019882, + 0.008715341798961163, + 0.005189068615436554, + 0.026623841375112534, + 0.015060722827911377, + 0.030561033636331558, + -0.03335147351026535, + -0.0005706900265067816, + -0.0024452172219753265, + -0.018118737265467644, + -0.042965106666088104, + 0.007907834835350513, + 0.009126262739300728, + 0.02117675170302391, + -0.025782886892557144, + -0.003000676864758134, + 0.004013644531369209, + 0.006431387271732092, + -0.007831384427845478, + -0.041971251368522644, + -0.022476408630609512, + 0.025725549086928368, + 0.012002707459032536, + -0.015634100884199142, + 0.02001088298857212, + -0.0011987178586423397, + -0.060434017330408096, + 0.0026924863923341036, + -0.03325590863823891, + 0.024253878742456436, + -0.019800644367933273, + -0.012786324135959148, + -0.018854571506381035, + -0.058790333569049835, + 0.02836308628320694, + 0.018214300274848938, + -0.02633715234696865, + -0.006708519533276558, + -0.012384959496557713, + -0.03121086210012436, + 0.029108477756381035, + 0.03990709036588669, + -0.03704020380973816, + 0.026948753744363785, + -0.06154254451394081, + 0.024445004761219025, + -0.007864831946790218, + -0.03516716882586479, + -0.01901702955365181, + -0.047819703817367554, + -0.008347424678504467, + -0.041971251368522644, + -0.01815696246922016, + 0.016847750172019005, + 0.02950984239578247, + -0.0013964137760922313, + 0.04613779857754707, + 0.02285866066813469, + -0.0012924890033900738, + -0.026241589337587357, + -0.05103062093257904, + 0.028095509856939316, + -0.0166183989495039, + -0.006058691535145044, + 0.04587022215127945, + 0.03241495415568352, + 0.009527627378702164, + -0.0016986315604299307, + 0.025305071845650673, + 0.0150033850222826, + -0.017497578635811806, + -0.037422455847263336, + 0.007506470661610365, + 0.01586345210671425, + 0.015681881457567215, + 0.027827933430671692, + -0.009823871776461601, + 0.0005109632038511336, + -0.015720106661319733, + -0.0019232045160606503, + 0.08149608969688416, + -0.0038846342358738184, + 0.009049812331795692, + -0.013044344261288643, + 0.001194537035189569, + -0.04552619531750679, + -0.011888031847774982, + -0.00012049891665810719, + 0.03551119565963745, + -0.02119586430490017, + -0.00508394930511713, + 0.01068393886089325, + 0.005318078678101301, + 0.025897562503814697, + 0.011830694042146206, + 0.020431360229849815, + -0.019934432581067085, + 0.05622924491763115, + -0.0021537502761930227, + 0.03291188180446625, + 0.029223153367638588, + 0.03675351291894913, + -0.010703051462769508, + -0.03767091780900955, + 0.012165164574980736, + -0.05607634410262108, + -0.03937193751335144, + -0.007133774925023317, + -0.05405040830373764, + -0.009011587128043175, + -0.08011998236179352, + 0.07312477380037308, + 0.015720106661319733, + -0.03673440217971802, + 0.050304342061281204, + 0.013311920687556267, + -0.17002561688423157, + 0.047628577798604965, + -0.0172682274132967, + 0.0423152782022953, + 0.004388729110360146, + 0.009002030827105045, + -0.04441766440868378, + 0.012002707459032536, + -0.02618425153195858, + -0.06731455028057098, + -0.010196567513048649, + -0.07480668276548386, + -0.01100885309278965, + 0.00558087695389986, + 0.03436443954706192, + -0.023737838491797447, + -0.04384428635239601, + 0.010473700240254402, + 0.016131026670336723, + -0.006445721723139286, + -0.04514394327998161, + -0.0035668874625116587, + 0.06880532950162888, + -0.008815683424472809, + -0.059287261217832565, + -0.03769003227353096, + -0.002988731488585472, + -0.018472319468855858, + 0.0013737175613641739, + -0.008481212891638279, + 0.01903614215552807, + 0.035262733697891235, + -0.006116029340773821, + 0.03501426801085472, + -0.019523512572050095, + -0.031134411692619324, + -0.015194510109722614, + 0.0024535791017115116, + -0.02501838281750679, + 0.03457468003034592, + 0.023088011890649796, + 0.029242265969514847, + 0.012872330844402313, + 0.03983063995838165, + -0.0057958937250077724, + -0.06681761890649796, + -0.012690761126577854, + -2.4189374016714282e-05, + -0.021922143176198006, + 0.0027713258750736713, + -0.03235761821269989, + 0.017564471811056137, + 0.023814288899302483, + 0.010550150647759438, + -0.028993802145123482, + -0.03069482184946537, + -0.014076423831284046, + 0.012298952788114548, + -0.009795203804969788, + 0.06402718275785446, + -0.05221560224890709, + -0.06085449084639549, + 0.011094859801232815, + -0.05825518071651459, + -0.05982241407036781, + -0.009083258919417858, + -0.01767914742231369, + -0.014439563266932964, + -0.009604077786207199, + -0.02434944175183773, + 0.003550163935869932, + -0.016589729115366936, + 0.018481876701116562, + -0.02283954806625843, + -0.027273667976260185, + 0.02203681878745556, + -0.0005255962605588138, + -0.013206801377236843, + -0.024559680372476578, + -0.12912467122077942, + -8.115385571727529e-05, + 0.01018701121211052, + 0.015519424341619015, + -0.07568586617708206, + -0.01485048420727253, + -0.02849687449634075, + 0.0035573311615735292, + 0.04353848472237587, + -0.022896885871887207, + 0.2353142350912094, + 0.005365860182791948, + 0.022247057408094406, + -0.002809551078826189, + 0.009350835345685482, + -0.002647093962877989, + -0.018099624663591385, + -0.03801494464278221, + 0.028917351737618446, + -0.029624518007040024, + 0.03681085258722305, + 0.014200655743479729, + 0.03833986073732376, + -0.018099624663591385, + 0.02704431675374508, + -0.0048832674510777, + -0.031153524294495583, + -0.005399307236075401, + 0.0951807051897049, + 0.005251184571534395, + -0.020565148442983627, + 0.006273708306252956, + -0.009976772591471672, + -0.00492149218916893, + -0.05255962908267975, + -0.06016644090414047, + -0.007678483612835407, + 0.039486613124608994, + -0.032606080174446106, + 0.03321768343448639, + -0.0229924488812685, + 0.029758306220173836, + 0.03881767392158508, + 0.010951515287160873, + -0.04793437942862511, + -0.006350158713757992, + -0.016656624153256416, + 0.011047078296542168, + 0.04701697453856468, + -0.002501360373571515, + -0.024272991344332695, + -0.02371872588992119, + 0.035109832882881165, + -0.024253878742456436, + -0.0020784942898899317, + -0.033427923917770386, + -0.006756301037967205, + 0.03830163553357124, + -0.025801999494433403, + -0.0012841272400692105, + -0.004845042247325182, + -0.010215680114924908, + -0.021463440731167793, + 0.02033579722046852, + -4.169680687482469e-05, + -0.038970574736595154, + -0.0308668352663517, + -0.04365316033363342, + 0.012346734292805195, + 0.04055691882967949, + 0.016914643347263336, + 0.009126262739300728, + -0.014057311229407787, + 0.011945369653403759, + -0.013149463571608067, + -0.015175397507846355, + -0.023565825074911118, + 0.03753713145852089, + -0.00937950424849987, + 0.0006253400933928788, + -0.024769918993115425, + -0.001720133237540722, + 0.02933782897889614, + 0.022763097658753395, + 0.005155621562153101, + -0.004978829994797707, + -0.019112592563033104, + 0.08294864743947983, + 0.00035656930413097143, + 0.01668529212474823, + -0.0669322982430458, + -0.0332367978990078, + -0.010387693531811237, + -0.022877773270010948, + 0.017631366848945618, + -0.025400634855031967, + -0.033083897083997726, + -0.03251051902770996, + 0.001341465045697987, + 0.004935826640576124, + -0.020641598850488663, + 0.01326413918286562, + -0.036447711288928986, + -0.040480468422174454, + -0.029643630608916283, + -0.049769189208745956, + -0.0062545957043766975, + -0.07140464335680008, + -0.02920404076576233, + 0.012050488963723183, + -0.0550442636013031, + -0.03918081521987915, + 0.0005411252495832741, + -0.0008959027472883463, + 0.03354259952902794, + 0.011907144449651241, + -0.02834397368133068, + 0.02484636940062046, + 0.0014895875938236713, + 0.0034330992493778467, + 0.011725574731826782, + 0.018835458904504776, + -0.03375283628702164, + -0.020622486248612404, + 0.05909613519906998, + -0.012642979621887207, + 0.04323268309235573, + 0.039486613124608994, + 0.002367572393268347, + 0.05355348438024521, + -0.022476408630609512, + 0.057299550622701645, + 0.029146702960133553, + -0.007090771570801735, + -0.02153989113867283, + -0.004694530274719, + -0.04759035259485245, + -0.05217737704515457, + -0.04265930503606796, + 0.050113216042518616, + -0.0020784942898899317, + -0.0248272567987442, + -0.013311920687556267, + -0.013187688775360584, + 0.04766680300235748, + 0.006479168776422739, + 0.025305071845650673, + -0.0005145468167029321, + 0.03084772266447544, + 0.03537740930914879, + -0.0334661491215229, + -0.024062752723693848, + -0.02404364012181759, + 0.00028295593801885843, + -0.007549474015831947, + -0.040786270052194595, + -0.03524361923336983, + -0.013015675358474255, + -0.009021143428981304, + 0.06207769736647606, + -0.010693495161831379, + 0.06448588520288467, + -0.02566821128129959, + -0.014477788470685482, + 0.01668529212474823, + -0.04636714980006218, + -0.018978804349899292, + -0.01750713400542736, + 0.004993164446204901, + -0.03767091780900955, + 0.023604050278663635, + 0.03071393445134163, + 0.004491459112614393, + 0.033294133841991425, + 0.08401895314455032, + 0.045449744910001755, + -0.007205447182059288, + 0.0051126182079315186, + 0.01383751630783081, + 0.01567232608795166, + 0.012528304010629654, + -0.0017918054945766926, + -0.0347466915845871, + 0.012642979621887207, + 0.048966459929943085, + -0.002410575747489929, + -0.04441766440868378, + 0.021081188693642616, + -0.03719310462474823, + 0.02618425153195858, + 0.018300306051969528, + 0.07927902787923813, + -0.0241774283349514, + -0.015720106661319733, + -0.031765129417181015, + 0.011897588148713112, + 0.02454056777060032, + -0.006942648906260729, + 0.010263461619615555, + 0.014764477498829365, + -0.05148932337760925, + 0.09915612637996674, + -0.06211592257022858, + -0.0047208103351294994, + -0.0039586955681443214, + 0.03423065319657326, + 0.08363670110702515, + -0.003060403745621443, + 0.02568732388317585, + -0.028477761894464493, + -0.033275023102760315, + 0.027426568791270256, + 0.027101654559373856, + 0.04418831318616867, + -0.013139907270669937, + -0.032128266990184784, + -0.04292688146233559, + 0.027311893180012703, + 0.003103407099843025, + 0.0009705612901598215, + -0.0119262570515275, + 0.03316034749150276, + -0.015548093244433403, + 0.020966513082385063, + 0.014821815304458141, + -0.014907822012901306, + 0.03598900884389877, + 0.06590021401643753, + 0.04067159444093704, + -0.035090718418359756, + 0.028324861079454422, + 0.012776767835021019, + 0.04220060259103775, + -0.008180188946425915, + -0.0023831012658774853, + 0.01886412873864174, + 0.001927982666529715, + -0.022591084241867065, + 0.00863411370664835, + -0.013875741511583328, + 0.017535803839564323, + 0.015624543651938438, + -0.033963076770305634, + -0.037919383496046066, + 0.03767091780900955, + 0.0016197921941056848, + 0.0021179141476750374, + 0.03681085258722305, + -0.018663445487618446, + 0.0317269042134285, + 0.04204770177602768, + -0.001027899095788598, + 0.050266116857528687, + 0.03591255843639374, + 0.004176101181656122, + 0.04858420789241791, + -0.09082303941249847, + 0.016006795689463615, + 0.01586345210671425, + 0.029987657442688942, + -0.031956255435943604, + 0.015079835429787636, + 0.05152754858136177, + 0.0014334444422274828, + 0.014554238878190517, + -0.02469346858561039, + -0.005389750935137272, + -0.0052129593677818775, + -0.005294187925755978, + -0.035625871270895004, + 0.02469346858561039, + 0.04636714980006218, + -0.023623162880539894, + -0.02152077853679657, + -0.008701007813215256, + 0.003454600926488638, + 0.030981510877609253, + 0.02132965251803398, + -0.02117675170302391, + -0.006359715014696121, + -0.0001563350233482197, + 0.002034296514466405, + -0.04522039368748665, + 0.004383950959891081, + 0.029318716377019882, + -0.008519438095390797, + -0.03071393445134163, + 0.012174720875918865, + -0.010884621180593967, + 0.04055691882967949, + 0.003901357762515545, + -0.0699520856142044, + -0.016656624153256416, + 0.0016400993335992098, + 0.00044048551353625953, + -0.036619726568460464, + 0.01634126529097557, + -0.005552208051085472, + -0.027923496440052986, + 0.00878701452165842, + 0.020297572016716003, + -0.013579496182501316, + -0.0610838420689106, + -0.012900999747216702, + -0.03132553771138191, + -0.009154931642115116, + -0.0019351498922333121, + -0.006851864047348499, + -0.01685730554163456, + 0.05091594532132149, + -0.0012518747244030237, + 0.05424153432250023, + -0.005867565516382456, + 0.00567166181281209, + 0.03205181658267975, + 0.0004849820106755942, + 0.012891443446278572, + -0.014143317937850952, + -0.001981736859306693, + 0.018137849867343903, + 0.031134411692619324, + -0.02884090133011341, + -0.028974689543247223, + 0.04999854043126106, + 0.03449822962284088, + 0.008610222488641739, + 0.02769414521753788, + -0.01774604246020317, + 0.0013390759704634547, + -0.0007215003715828061, + -0.014735808596014977, + -0.010454587638378143, + -0.01625525951385498, + 0.01940883696079254, + -0.0656326413154602, + 0.025610873475670815, + -0.04288865625858307, + 0.02585933730006218, + -0.024636130779981613, + -0.011305098421871662, + -0.025782886892557144, + 0.011601343750953674, + -0.015662768855690956, + 0.017717372626066208, + 0.027082541957497597, + 0.009919434785842896, + 0.017640922218561172, + -0.013818403705954552, + 0.0587138831615448, + -0.006168588995933533, + -0.02683407813310623, + -0.01677129976451397, + 0.03839719668030739, + 0.0026662065647542477, + 0.040136441588401794, + -0.019074367359280586, + -0.03952483832836151, + -0.02369961328804493, + 0.0015528980875387788, + -0.0011043495032936335, + -0.04789615422487259, + 0.003583610989153385, + 0.018883241340517998, + -0.05573231726884842, + -0.005920125171542168, + -0.011190422810614109, + 0.03684907779097557, + 0.003953917417675257, + 0.004622858017683029, + 0.0165132787078619, + -0.007821828126907349, + -0.03623747453093529, + -0.012728986330330372, + 0.044264763593673706, + -0.013139907270669937, + -0.010980184189975262, + -0.010301686823368073, + 0.00771193066611886, + 0.03769003227353096, + -0.00039658628520555794, + -0.039486613124608994, + 0.028936464339494705, + -0.0033781505189836025, + 0.008605444803833961, + -0.030274346470832825, + 0.03287365660071373, + -0.0403657928109169, + 0.016465498134493828, + 0.04392073675990105, + -0.030924173071980476, + -0.04724632576107979, + -0.03686818853020668, + -0.012146051973104477, + 0.0014334444422274828, + 0.00492149218916893, + 0.010110560804605484, + -0.05068659409880638, + -0.04116852208971977, + 0.06379783153533936, + 0.0440354123711586, + -0.030408132821321487, + 0.01787027344107628, + -0.02784704603254795, + 0.011047078296542168, + -0.1532829850912094, + 0.009928991086781025, + -0.012738542631268501, + -0.007587698753923178, + -0.04070981964468956, + -0.000787199882324785, + -0.019475731998682022, + -0.008227970451116562, + 0.004634803626686335, + 0.026413602754473686, + 0.04908113554120064, + 0.009111927822232246, + 0.05577054247260094, + -0.015089391730725765, + -0.006985652260482311, + 0.02704431675374508, + 0.0055617643520236015, + -0.012031376361846924, + -0.0008116879034787416, + 0.08111383765935898, + -0.028229298070073128, + 0.018233412876725197, + -0.036447711288928986, + 0.002534807426854968, + 0.018214300274848938, + -0.003048458369448781, + 0.0390661396086216, + 0.010062779299914837, + -0.010234792716801167, + -0.004510571714490652, + 0.010282574221491814, + -0.08157254010438919, + 0.04999854043126106, + 0.012203389778733253, + -0.009025921113789082, + 0.001862283213995397, + 0.003428321098908782, + 0.04587022215127945, + 0.025744661688804626, + 0.008973361924290657, + 0.014783590100705624, + -0.021769242361187935, + 0.006804082542657852, + 0.03174601495265961, + 0.008629335090517998, + 0.026929641142487526, + 0.008552884683012962, + 0.00397780817002058, + 0.00943206436932087, + 0.012279840186238289, + 0.012021820060908794, + 0.022954223677515984, + -0.05252140387892723, + 0.010425918735563755, + -0.0010750832734629512, + 0.027254555374383926, + -0.04915758594870567, + 0.013923523016273975, + -0.01793716661632061, + 0.0844012051820755, + -0.0593637116253376, + -0.0035907782148569822, + -0.0009711585589684546, + -0.03730778023600578, + -0.01778426766395569, + -0.0052464064210653305, + -0.020240234211087227, + 0.004211937543004751, + 0.025629986077547073, + -0.04323268309235573, + 0.018921466544270515, + -0.02620336413383484, + -0.020813612267374992, + -0.02337469905614853, + 0.02134876511991024, + -0.023967189714312553, + -0.01634126529097557, + -0.05401218309998512, + -0.011228648014366627, + 0.020087333396077156, + -0.017946723848581314, + 0.003521495033055544, + -0.00437678350135684, + 0.047131650149822235, + 0.01175424363464117, + 0.016293484717607498, + -0.01573921926319599, + -0.036294810473918915, + 0.006101694889366627, + 0.004849820397794247, + -0.02400541491806507, + -0.020890062674880028, + -0.007277119439095259, + -0.019991770386695862, + 0.011094859801232815, + 0.020431360229849815, + -0.03883678838610649, + -0.016647066920995712, + -0.01193581335246563, + -0.017640922218561172, + -0.010062779299914837, + -0.005098283756524324, + -0.0074634673073887825, + 0.0210429634898901, + -0.005896234419196844, + 0.05408863350749016, + 0.04135964810848236, + -0.015347410924732685, + 0.012442297302186489, + -0.0018264470854774117, + -0.021941255778074265, + 0.008409540168941021, + 0.009484623558819294, + -0.02587844990193844, + -0.06815550476312637, + 0.021291427314281464, + -0.009728309698402882, + -0.021406102925539017, + -0.029242265969514847, + -0.021214976906776428, + -0.004250162746757269, + 0.02700609154999256, + -0.04934871196746826, + -0.04070981964468956, + -0.0011933424975723028, + -0.02721633017063141, + 0.0030580146703869104, + 0.029758306220173836, + 0.003542996710166335, + 0.0470551997423172, + 0.015509868040680885, + -0.030312571674585342, + -0.019542625173926353, + 0.06976096332073212, + 0.022915998473763466, + -0.007735821418464184, + -0.07499781250953674, + 0.06490635871887207, + -0.009661415591835976, + -0.02970096841454506, + 0.02171190455555916, + 0.04353848472237587, + -0.0003120727778878063, + -0.0397159643471241, + 0.006292820908129215, + -0.0022935110609978437, + -0.021559003740549088, + -0.01275765523314476, + 0.0010446226224303246, + -0.004649138078093529, + 0.017306452617049217, + -0.0035668874625116587, + -0.0006122002378106117, + 0.0168381929397583, + 0.022075043991208076, + 0.020947400480508804, + 0.03340880945324898, + 0.007487358059734106, + -0.049119360744953156, + 0.008767901919782162, + 0.05527361482381821, + -0.03770914301276207, + -0.0030054550152271986, + 0.006063469685614109, + 0.007659371010959148, + 0.01501294132322073, + 0.022113269194960594, + 0.0020319074392318726, + -0.03296922147274017, + 0.00541841983795166, + -0.031421102583408356, + -0.008027289062738419, + 0.005327634979039431, + 0.0044866809621453285, + -0.0095515176653862, + -0.052444953471422195, + 0.013321476988494396, + -0.04334735870361328, + 0.07583876699209213, + -0.013302364386618137, + 0.015901677310466766, + 0.04357670992612839, + 0.030580146238207817, + 0.006789748091250658, + 0.026547390967607498, + 0.02270575985312462, + 0.0013999973889440298, + 0.01350304577499628, + -0.07033433765172958, + -0.001421499066054821, + 0.005017055198550224, + -0.025113945826888084, + -0.03933371230959892, + -0.007668927311897278, + 0.03197536617517471, + 0.03449822962284088, + 0.012375403195619583, + 0.0656326413154602, + 0.013187688775360584, + 0.054126858711242676, + -0.01612147130072117, + 0.019915319979190826, + -0.02803817205131054, + 0.015051166526973248, + 0.028764450922608376, + 0.010454587638378143, + 0.019217710942029953, + 0.006020466331392527, + -0.04866065829992294, + -0.021406102925539017, + 0.0020725217182189226, + -0.0023639886640012264, + -0.010693495161831379, + 0.012298952788114548, + 0.014410894364118576, + 0.016914643347263336, + -0.015729663893580437, + 0.029242265969514847, + -0.013875741511583328, + 0.008318755775690079, + 0.0028716670349240303, + 0.007410907652229071, + -0.002159722847864032, + -0.014611576683819294, + 0.07094594091176987, + -0.04086272045969963, + 0.008442987687885761, + -0.011782912537455559, + -0.027655920013785362, + -0.03386751189827919, + -0.006503059528768063, + 0.003182246582582593, + -0.017564471811056137, + 0.035415634512901306, + 0.03772825747728348, + -0.03482314199209213, + -0.017946723848581314, + -0.026891415938735008, + 0.00909759383648634, + 0.04556442052125931, + 0.091969795525074, + 0.010034110397100449, + -0.047475676983594894, + 0.034632015973329544 + ] + } + }, + { + "type": "维修工作", + "properties": { + "名称": "喷油嘴偶件的维修工作", + "embedding": [ + -0.05860413983464241, + 0.00684333173558116, + -0.037981417030096054, + 0.013538298197090626, + 0.0015613088617101312, + -0.052595362067222595, + 0.008827712386846542, + -0.005169590003788471, + -0.020418720319867134, + -0.013185931369662285, + -0.01932452991604805, + -0.011183004826307297, + 0.03173154592514038, + 0.04306291416287422, + 0.017961427569389343, + -0.021049272269010544, + -0.016320141032338142, + 0.01431721355766058, + 0.0035514850169420242, + -0.019658351317048073, + -0.03388283774256706, + 0.02900533936917782, + 0.011544644832611084, + -0.0066022383980453014, + -0.016830144450068474, + 0.004304900765419006, + -0.008234252221882343, + -0.009490718133747578, + 0.026093678548932076, + -0.017293784767389297, + -0.026279134675860405, + -0.01786869950592518, + -0.06420491635799408, + -0.019788170233368874, + -0.039873071014881134, + -0.04202435910701752, + -0.024535847827792168, + 0.009050259366631508, + -0.0329926460981369, + 0.042321089655160904, + -0.023942386731505394, + -0.022050734609365463, + 0.020808178931474686, + -0.005804777145385742, + -0.041950177401304245, + -0.017924334853887558, + -0.018239611759781837, + -0.02158709429204464, + 0.013389932923018932, + -0.012147377245128155, + -0.014122485183179379, + -0.0007823930936865509, + 0.009680810384452343, + -0.02933916077017784, + -0.007483155000954866, + 0.020808178931474686, + 0.031694453209638596, + 0.02392384223639965, + -0.024888213723897934, + 0.027206415310502052, + -0.0412825345993042, + 0.045659299939870834, + 0.0069777872413396835, + -0.007325517479330301, + 0.009931175969541073, + 0.0812297910451889, + -0.01007026806473732, + -0.001374693587422371, + -0.02216200903058052, + -0.019491439685225487, + -0.0034077565651386976, + 0.05827032029628754, + -0.005971687845885754, + 0.0045923576690256596, + -0.015828682109713554, + 0.009198624640703201, + 0.09436008334159851, + -0.01699705421924591, + -0.002028426621109247, + -0.016449959948658943, + 0.007140061352401972, + -0.007492428179830313, + 0.04710585996508598, + 0.04703167825937271, + -0.029060976579785347, + 0.038241054862737656, + -0.017673969268798828, + 0.0033753016032278538, + -0.009268170222640038, + -0.04940551519393921, + -0.004527448210865259, + -0.016255229711532593, + 0.027855511754751205, + 0.016347957774996758, + -0.03542212396860123, + -0.004314173478633165, + -0.013519752770662308, + 0.018350884318351746, + 0.03354901447892189, + -0.0013329660287126899, + 0.059420146048069, + -0.015133220702409744, + 0.007297698874026537, + -0.05137135088443756, + 0.04795895889401436, + -0.05218735709786415, + 0.04933133348822594, + 0.016023410484194756, + 0.020233264192938805, + -0.01950998604297638, + 0.009017804637551308, + 0.03362319618463516, + -0.022625649347901344, + 0.021512912586331367, + -0.01441921480000019, + -0.053596824407577515, + 0.02707659639418125, + -0.02355292998254299, + 0.05615611746907234, + 0.010051722638309002, + -0.02001071721315384, + -0.013556843623518944, + -0.006268417462706566, + 0.0005314477602951229, + 0.028411880135536194, + -0.0022799514699727297, + 0.04380473867058754, + -0.015170312486588955, + 0.010635909624397755, + 0.06999114900827408, + 0.02310783416032791, + 0.06294381618499756, + -0.022755468264222145, + 0.0391683354973793, + -0.04254363849759102, + -0.012889201752841473, + -0.011526099406182766, + 0.008841621689498425, + 0.016218138858675957, + -0.0562673918902874, + 0.013241568580269814, + 0.06813658773899078, + -0.028912611305713654, + 0.0005071066552773118, + 0.0035653943195939064, + -0.02032599225640297, + 0.02978425659239292, + -0.017952153459191322, + 0.023960933089256287, + 0.016570506617426872, + 0.01340847834944725, + -0.012203013524413109, + 0.02883842960000038, + -0.026093678548932076, + 0.05181644484400749, + -0.010051722638309002, + -0.08063632994890213, + 0.02881988324224949, + 0.024776939302682877, + -0.006565147079527378, + -0.017349421977996826, + 0.03857487812638283, + -0.01686723530292511, + -0.008433617651462555, + 0.007946795783936977, + -0.005651775747537613, + 0.012972656637430191, + -0.001759515143930912, + -0.01180428359657526, + -0.06657875329256058, + 0.02939479798078537, + 0.045177116990089417, + 0.012444106861948967, + 0.028541699051856995, + 0.011822829023003578, + -0.0028745702002197504, + 0.039947252720594406, + 0.03243627771735191, + -0.0031156630720943213, + -0.007956068031489849, + -0.0266871377825737, + 0.04462074860930443, + 0.004515856970101595, + -0.09154114872217178, + 0.041319627314805984, + 0.05808486416935921, + 0.032454825937747955, + -0.01545776892453432, + 0.019547076895833015, + 0.014882855117321014, + -0.02260710299015045, + -0.039057061076164246, + 0.0236642025411129, + 0.024406027048826218, + 0.007974614389240742, + -0.04183890298008919, + 0.0601990632712841, + 0.027095142751932144, + 0.013297204859554768, + -0.015114675275981426, + 0.028152242302894592, + -0.0044439928606152534, + 0.023015106096863747, + -0.03570030629634857, + -0.040058527141809464, + 0.020029263570904732, + 0.056675396859645844, + -0.025834040716290474, + 0.0266871377825737, + -0.05040697753429413, + 0.025073669850826263, + -0.00343789323233068, + -0.0028027058579027653, + -0.013436296954751015, + -0.06617075204849243, + 0.00542922830209136, + 0.03034062497317791, + -0.008517073467373848, + -0.015893591567873955, + -0.00013583213149104267, + -0.02145727537572384, + 0.03636794909834862, + 0.012694472447037697, + -0.00248511228710413, + 0.044212743639945984, + -0.009958994574844837, + 0.011813555844128132, + 0.001629695761948824, + -0.03204682096838951, + 0.00013496280007530004, + -0.027113687247037888, + 0.018925799056887627, + -0.0011880784295499325, + -0.02101217955350876, + 0.026779865846037865, + 0.006885059177875519, + 0.004562221001833677, + 0.002376156859099865, + 0.0014338077744469047, + 0.05763976648449898, + -0.02674277499318123, + -0.038982879370450974, + -0.017599787563085556, + 0.01782233454287052, + 0.008192525245249271, + 0.0351068452000618, + 0.043025825172662735, + 0.04146799072623253, + -0.02379402332007885, + 0.0064770556055009365, + -0.002909343224018812, + 0.0037068044766783714, + -0.0391683354973793, + -0.012360651977360249, + -0.014391396194696426, + -0.0016667870804667473, + 0.022143462672829628, + -0.00815543346107006, + 0.001596081885509193, + -0.043025825172662735, + -0.023144926875829697, + 0.08775784820318222, + -0.009662264958024025, + 0.006347236223518848, + -0.02069690451025963, + 0.004316491540521383, + -0.024758394807577133, + -0.01894434541463852, + -0.032899919897317886, + 0.05804777145385742, + -0.020937997847795486, + -0.030414806678891182, + 0.0016007182421162724, + -0.004826495889574289, + 0.036794498562812805, + -0.013009748421609402, + 0.010904820635914803, + 0.0013468752149492502, + 0.07114097476005554, + -0.06828495115041733, + 0.0630921795964241, + -0.013482660986483097, + 0.018054155632853508, + -0.04091162234544754, + -0.014085393399000168, + 0.0190648902207613, + -0.06728348881006241, + -0.044101469218730927, + -0.011971193365752697, + -0.06769149005413055, + 0.0205114483833313, + -0.019936535507440567, + 0.09324734658002853, + -0.007153970655053854, + -0.050258614122867584, + 0.05393064394593239, + -0.024183480069041252, + -0.14606525003910065, + 0.019287439063191414, + -0.04061489552259445, + 0.015198130160570145, + -0.005443137604743242, + 0.023182017728686333, + -0.05763976648449898, + 0.023645658046007156, + -0.03790723532438278, + -0.04432401806116104, + -0.0249809417873621, + -0.0762595608830452, + -0.03202827647328377, + -0.006115416064858437, + 0.01958416774868965, + -0.0014036711072549224, + -0.06194235011935234, + 0.03712831810116768, + 0.020177626982331276, + -0.023515839129686356, + -0.058196134865283966, + 0.004668858367949724, + 0.041764721274375916, + -0.004743040539324284, + -0.06160853058099747, + -0.05181644484400749, + 0.012045376002788544, + -0.03720249980688095, + -0.0452142059803009, + 0.0012564653297886252, + -0.010923366993665695, + -0.019027799367904663, + -0.004807950463145971, + 0.055859390646219254, + -0.04306291416287422, + -0.05281790718436241, + -0.03690577298402786, + -0.01743287779390812, + -0.038871604949235916, + -0.002756341826170683, + 0.04373055696487427, + 0.025407491251826286, + 0.022885287180542946, + 0.04551093652844429, + -0.015615406446158886, + -0.07603701949119568, + 9.881334699457511e-05, + -0.018962889909744263, + 0.020103445276618004, + 0.007404336240142584, + -0.03686868026852608, + -0.007807703223079443, + 0.026204952970147133, + -0.024313298985362053, + -0.03065590001642704, + 0.003906169906258583, + -0.031045356765389442, + 0.004200581461191177, + -0.019398711621761322, + 0.06746894121170044, + -0.052335720509290695, + -0.05122298374772072, + -0.006518783047795296, + -0.04187599569559097, + -0.014076121151447296, + 0.004042943939566612, + -0.019343074411153793, + -0.029413344338536263, + 0.03419811278581619, + -0.04792186617851257, + 0.001138816587626934, + -0.025908222422003746, + 0.025333307683467865, + 0.007065878715366125, + -0.02316347137093544, + 0.020363083109259605, + 0.034142475575208664, + -0.012156649492681026, + -0.040503621101379395, + -0.12863238155841827, + -0.03163881599903107, + 0.029747163876891136, + 0.023089289665222168, + -0.049887701869010925, + -0.019732533022761345, + -0.055748116225004196, + 0.002573203993961215, + 0.04662367329001427, + -0.006718148477375507, + 0.21498075127601624, + 0.017785243690013885, + -0.013121021911501884, + 0.021494366228580475, + 0.038871604949235916, + -0.022440193220973015, + 0.0030159803573042154, + -0.017395785078406334, + 0.026909684762358665, + -0.02687259390950203, + 0.024183480069041252, + -0.01255538035184145, + 0.021383093670010567, + -0.014029757119715214, + 0.018925799056887627, + -0.006653239019215107, + -0.02461002953350544, + -0.018137609586119652, + 0.08278761804103851, + -0.004562221001833677, + 0.00045871417387388647, + 0.022199099883437157, + -0.019713986665010452, + -0.017414331436157227, + -0.053411368280649185, + -0.05634157359600067, + -0.014864309690892696, + 0.026204952970147133, + -0.04165344685316086, + 0.051519714295864105, + -0.012351378798484802, + 0.03397556394338608, + 0.03328937664628029, + 0.004325764253735542, + -0.06327763199806213, + -0.01845288649201393, + -0.03319665044546127, + 0.0048218597657978535, + 0.06324054300785065, + -0.0066115111112594604, + -0.0446949303150177, + -0.032899919897317886, + 0.01539285946637392, + -0.02279255911707878, + -0.03097117505967617, + -0.029691528528928757, + 0.00307625369168818, + 0.005406046286225319, + -0.006922150496393442, + -0.0071122427470982075, + 0.012573925778269768, + -0.010775001719594002, + -0.0044718110002577305, + 0.01114591397345066, + -0.024572938680648804, + -0.04851532727479935, + 0.005387500859797001, + -0.047996047884225845, + 0.009365535341203213, + -0.013399206101894379, + 0.025259125977754593, + -0.01259247213602066, + -0.04065198451280594, + 0.034643206745386124, + 0.00579086784273386, + -0.0007395063294097781, + -0.04313709959387779, + 0.02423911727964878, + 0.00769642973318696, + 0.008832348510622978, + -0.012972656637430191, + 0.01693214476108551, + -0.006291599478572607, + 0.036423586308956146, + 0.0166910532861948, + -0.01623668521642685, + -0.008614437654614449, + 0.08241670578718185, + 0.017636878415942192, + 0.000580129970330745, + -0.07503555715084076, + -0.03525521233677864, + -0.025166397914290428, + -0.036479223519563675, + 0.041764721274375916, + -0.005837231874465942, + -0.026075132191181183, + -0.028597336262464523, + -0.007140061352401972, + 0.018981436267495155, + -0.014215213246643543, + -0.005294772796332836, + -0.020733995363116264, + 0.020808178931474686, + -0.011127368547022343, + -0.026279134675860405, + -0.026668593287467957, + -0.014215213246643543, + -0.01706196554005146, + 0.00792825035750866, + 0.028745701536536217, + -0.03631231188774109, + 0.019046345725655556, + -0.009977540001273155, + 0.06023615226149559, + 0.019120527431368828, + 0.021883824840188026, + 0.013185931369662285, + -0.005489501636475325, + -0.017534878104925156, + 0.012796473689377308, + 0.030859900638461113, + -0.010014631785452366, + -0.029635891318321228, + 0.011924829334020615, + -6.927438676029851e-07, + 0.024628575891256332, + 0.052409905940294266, + 0.006532692350447178, + 0.04413856193423271, + -0.03783305361866951, + 0.032825738191604614, + 0.009059532545506954, + -0.033085376024246216, + -0.01687650941312313, + -0.019398711621761322, + 0.02323765493929386, + -0.02499948814511299, + -0.01255538035184145, + 0.021160544827580452, + -0.018545614555478096, + -0.0034147112164646387, + 0.01356611680239439, + -0.00755270104855299, + 0.04254363849759102, + -0.013927755877375603, + 0.015355768613517284, + 0.01919471099972725, + 0.06943477690219879, + 0.04105998948216438, + -0.01255538035184145, + -0.04766222834587097, + -0.01643141359090805, + 0.02001071721315384, + -0.013362114317715168, + -0.01673741638660431, + -0.03722104802727699, + -0.01428939588367939, + -0.033901382237672806, + 0.06049579381942749, + -0.0032292550895363092, + 0.03738795593380928, + 0.012230832129716873, + -0.05226153880357742, + 0.021104909479618073, + -0.06424200534820557, + -0.009356262162327766, + -0.0037972144782543182, + 0.013417751528322697, + -0.028152242302894592, + 0.00017676288553047925, + 0.006171052809804678, + 0.004564539063721895, + 0.012425561435520649, + 0.05300336331129074, + 0.07499846071004868, + -0.023015106096863747, + 0.007038060575723648, + 0.005410682875663042, + 0.006936059799045324, + -0.019472895190119743, + -0.02461002953350544, + -0.04662367329001427, + 0.02550021931529045, + 0.0006902445456944406, + 0.011192278005182743, + -0.016041956841945648, + 0.0364050418138504, + -0.015096129849553108, + 0.02260710299015045, + -0.002088699722662568, + 0.05381936952471733, + -0.012342105619609356, + 0.006792331114411354, + 0.012954111211001873, + -0.008762802928686142, + -0.0266871377825737, + -0.01717323809862137, + 0.026019496843218803, + 0.0011405552504584193, + -0.045288387686014175, + 0.08041378110647202, + -0.02342311106622219, + -0.006147870793938637, + 0.024090752005577087, + 0.002721568802371621, + 0.0859774649143219, + 0.000937712611630559, + 0.008002432063221931, + -0.010302088223397732, + -0.009764265269041061, + 0.007650065701454878, + 0.03618249297142029, + 0.07444209605455399, + -0.0044602202251553535, + -0.019899442791938782, + -0.06557729095220566, + 0.009416535496711731, + -0.01774815283715725, + -0.021624185144901276, + 0.010311361402273178, + -0.013445570133626461, + 0.006198871415108442, + -0.004158854018896818, + 0.0057213217951357365, + -0.013185931369662285, + 0.038166873157024384, + 0.046920403838157654, + -0.01145191676914692, + -0.01309320330619812, + -0.003917761147022247, + 0.007765975780785084, + 0.07670465856790543, + -0.008350162766873837, + 0.04091162234544754, + 0.0034842572640627623, + -0.03071153722703457, + -0.020029263570904732, + -0.0021095636766403913, + -0.019157618284225464, + 0.015123948454856873, + 0.020029263570904732, + -0.006653239019215107, + -0.03388283774256706, + 0.03191700205206871, + 0.028856975957751274, + 0.03783305361866951, + 0.011183004826307297, + -0.042840369045734406, + -0.007900431752204895, + -0.021104909479618073, + -0.025166397914290428, + 0.027020959183573723, + 0.02750314585864544, + -0.020937997847795486, + 0.05203899368643761, + -0.07117806375026703, + 0.03493993729352951, + 0.020789632573723793, + 0.058826688677072525, + -0.017321603372693062, + 0.00752024631947279, + 0.053596824407577515, + -0.01868470571935177, + -0.004411537665873766, + -0.03835232928395271, + 0.023942386731505394, + -0.009921903721988201, + -0.0502215214073658, + -0.02574131265282631, + 0.013983393087983131, + 0.04198727011680603, + -0.01686723530292511, + -0.0011660554446280003, + -0.02216200903058052, + -0.01176719181239605, + 0.020752541720867157, + -0.002624204382300377, + -0.02881988324224949, + -0.0331224650144577, + -0.045548029243946075, + -0.018925799056887627, + -0.013176658190786839, + -0.022495830431580544, + 0.036034125834703445, + -0.018554886803030968, + -0.041764721274375916, + 0.035774488002061844, + 0.05381936952471733, + 0.028652973473072052, + 0.0016169457230716944, + -0.052224449813365936, + -0.017979972064495087, + -0.01205464918166399, + 0.028226424008607864, + -0.03132354095578194, + -0.002450339263305068, + -0.01368666347116232, + -0.01472521759569645, + -0.009435080923140049, + -0.026167860254645348, + -0.004863587208092213, + -0.03532939404249191, + 0.0324733704328537, + -0.014632489532232285, + 0.006198871415108442, + -0.019862351939082146, + 0.008660801686346531, + -0.0018615160370245576, + 0.006643966306000948, + 0.0030553899705410004, + 0.039873071014881134, + -0.027280598878860474, + -0.016718870028853416, + -0.01428939588367939, + 0.006815513130277395, + -0.001587968203239143, + -0.011433371342718601, + -0.014141030609607697, + 0.014335759915411472, + 0.014447033405303955, + 0.02316347137093544, + 0.03280718997120857, + 0.003175936406478286, + 0.019658351317048073, + 0.04209854453802109, + 0.005058316048234701, + -0.002559294691309333, + 0.025222035124897957, + 0.006917513906955719, + 0.021383093670010567, + -0.010988276451826096, + -0.03894579038023949, + 0.023627111688256264, + -0.06643038988113403, + -0.004149581305682659, + -0.016589051112532616, + 0.013825755566358566, + 0.009495354257524014, + -0.013148840516805649, + -0.0038528512232005596, + 0.015309404581785202, + -0.0035514850169420242, + -0.0205114483833313, + 0.02852315455675125, + 0.009578809142112732, + -0.002459611976519227, + -0.032770100980997086, + 0.04795895889401436, + -0.03551485016942024, + -0.02561149187386036, + -0.007056606002151966, + 0.04450947418808937, + 0.021754005923867226, + 0.04840405285358429, + -0.03883451595902443, + -0.05103752762079239, + -0.007877249270677567, + -0.005225226748734713, + 0.011229368858039379, + -0.04161635786294937, + -0.023330383002758026, + 0.025722766295075417, + -0.049071695655584335, + 0.00593459652736783, + 0.010153723880648613, + -0.02203219011425972, + -0.013241568580269814, + 0.003379938192665577, + 0.004555266350507736, + -0.022106371819972992, + 0.012397742830216885, + -0.01097900327295065, + 0.022625649347901344, + 0.014929219149053097, + -0.004807950463145971, + -0.0011289642425253987, + -0.0028328425250947475, + 0.054932110011577606, + 0.0005207260837778449, + -0.03620103746652603, + 0.02976571023464203, + -0.013797936961054802, + 0.00878134835511446, + -0.030433353036642075, + 0.006254508160054684, + -0.03482866287231445, + 0.01757196895778179, + 0.036534860730171204, + -0.011822829023003578, + -0.01950998604297638, + -0.01870325207710266, + -0.03319665044546127, + 0.02240310236811638, + -0.0013341250596567988, + 0.0015531951794400811, + -0.040318164974451065, + -0.01097900327295065, + 0.07648210972547531, + 0.06183107569813728, + -0.06617075204849243, + 0.019621258601546288, + -0.01428939588367939, + 0.02197655290365219, + -0.13812772929668427, + 0.010088813491165638, + -0.008656165562570095, + -0.05177935212850571, + -0.018462158739566803, + -0.024721303954720497, + 0.020882360637187958, + 0.0335119254887104, + -0.0020620403811335564, + 0.008994623087346554, + 0.0412825345993042, + 0.003315028501674533, + 0.04795895889401436, + -0.0015763771953061223, + -0.06290671974420547, + 0.036979954689741135, + -0.00862834695726633, + -0.02529621683061123, + 0.022421646863222122, + 0.045362573117017746, + 0.012583198957145214, + -0.024183480069041252, + 0.0024062932934612036, + -0.0005969369667582214, + 0.01557831559330225, + 0.007395063526928425, + -0.012601744383573532, + 0.027428962290287018, + -0.01825815625488758, + 0.04183890298008919, + 0.00874425657093525, + -0.055228836834430695, + 0.026112224906682968, + 0.0012367606395855546, + 0.014400669373571873, + 0.001422216766513884, + 0.022755468264222145, + 0.04558511823415756, + 0.02147582173347473, + -0.003502802923321724, + -0.0017061964608728886, + -0.0012344424612820148, + -0.012713017873466015, + 0.02040017582476139, + 0.03284428268671036, + 0.02297801524400711, + -0.04143090173602104, + 0.009411899372935295, + 0.0038945788983255625, + 0.02499948814511299, + 0.027855511754751205, + -0.017766697332262993, + 0.011553917080163956, + -0.001677218941040337, + 0.016264503821730614, + 0.01643141359090805, + -0.06012488156557083, + -0.017293784767389297, + -0.021383093670010567, + 0.09458263218402863, + -0.03158317878842354, + 0.02461002953350544, + -0.026668593287467957, + -0.02397947944700718, + -0.00593459652736783, + 0.02397947944700718, + -0.003127254080027342, + -0.007599065080285072, + 0.022866742685437202, + -0.03254755213856697, + 0.03701704367995262, + -0.026390409097075462, + -0.02976571023464203, + -0.022495830431580544, + 0.05767685920000076, + -0.021679822355508804, + 0.028430426493287086, + -0.0567866712808609, + -0.06056997552514076, + 0.012796473689377308, + -0.02920934185385704, + -0.012768655084073544, + -0.015912136062979698, + 0.013556843623518944, + 0.055414292961359024, + 0.0016969236312434077, + -0.027224961668252945, + -0.011934102512896061, + 0.03876033425331116, + 0.01526304055005312, + 0.009606627747416496, + -0.011665191501379013, + 0.004803313873708248, + -0.009958994574844837, + 0.028671519830822945, + 0.004643358290195465, + 0.00947217270731926, + -0.020363083109259605, + 0.009903357364237309, + -0.01958416774868965, + -0.04072616621851921, + -0.04558511823415756, + 0.007677884306758642, + 0.030118076130747795, + -0.038055598735809326, + 0.02216200903058052, + 0.01025572419166565, + -0.010496817529201508, + 0.01656123250722885, + -0.015819407999515533, + -0.0018197883618995547, + -0.011062459088861942, + -0.02084526978433132, + -0.025722766295075417, + -0.07685302197933197, + 0.0295802541077137, + 0.004645676352083683, + -0.0298398919403553, + -0.01599559187889099, + -0.01724742166697979, + 0.010246451944112778, + 0.014957037754356861, + -0.030822809785604477, + -0.03343774005770683, + -0.023070743307471275, + 0.0021756323985755444, + 0.025092216208577156, + 0.009439717046916485, + 0.007195698097348213, + 0.05029570311307907, + -0.006337963510304689, + -0.010172269307076931, + -0.01882379874587059, + 0.06490965187549591, + -0.0024897486437112093, + 0.006388964131474495, + -0.050703708082437515, + 0.06431619077920914, + -0.02329329028725624, + -0.02297801524400711, + 0.033586107194423676, + 0.014808672480285168, + -0.03267737105488777, + -0.02499948814511299, + -0.02342311106622219, + 0.016524141654372215, + -0.026112224906682968, + -0.006045870017260313, + 0.0031226177234202623, + 0.01151682622730732, + -0.003834305563941598, + -0.012638836167752743, + 0.005531229544430971, + 0.041319627314805984, + -0.026223497465252876, + 0.025945313274860382, + 0.015773044899106026, + -0.014094666577875614, + -0.02021471969783306, + 0.04981352016329765, + 0.015114675275981426, + -0.050889164209365845, + -0.00251756701618433, + -0.014688125811517239, + 0.007121515925973654, + -0.003528303001075983, + 0.02310783416032791, + 0.01874961517751217, + -0.028282061219215393, + 0.026538772508502007, + -0.009662264958024025, + -0.004571493715047836, + -0.01321374997496605, + 0.02084526978433132, + 0.008507800288498402, + -0.05619321018457413, + 0.0024062932934612036, + 0.00365116773173213, + 0.039947252720594406, + -0.03271446377038956, + -0.0043396735563874245, + 0.02227328158915043, + 0.004038307350128889, + -0.018332339823246002, + 0.03410538285970688, + 0.021550003439188004, + 0.02763296477496624, + 0.026297681033611298, + -0.017386512830853462, + -0.016032682731747627, + -0.025092216208577156, + -0.0027841601986438036, + -0.024202026426792145, + -0.01656123250722885, + 0.016412869095802307, + -0.011702282354235649, + 0.008906531147658825, + 0.06579983979463577, + 0.013046839274466038, + 0.07585155963897705, + 0.015420678071677685, + 0.0281336959451437, + -0.03047044388949871, + 0.004300264175981283, + -0.016598325222730637, + 0.005016588605940342, + 0.039131246507167816, + -0.0036650770343840122, + -0.045288387686014175, + -0.00445558363571763, + 0.010812092572450638, + -0.014586125500500202, + -0.025277672335505486, + 0.02976571023464203, + 0.0001254002272617072, + 0.031750090420246124, + -0.0014848081627860665, + -0.0043489462696015835, + -0.016153229400515556, + -0.01510540209710598, + -0.014827217906713486, + 0.00950462743639946, + 0.0072235167026519775, + -0.00621741684153676, + 0.059828151017427444, + -0.03518103063106537, + 0.015179584734141827, + -0.00712615204975009, + -0.02153145708143711, + -0.04703167825937271, + -0.006342600099742413, + 0.04310000687837601, + -0.01617177575826645, + 0.012833564542233944, + 0.046104397624731064, + -0.034272294491529465, + -0.04543675482273102, + 0.003419347573071718, + 0.01504049263894558, + 0.05463537946343422, + 0.032269369810819626, + 0.018666161224246025, + -0.012230832129716873, + 0.02744750864803791 + ] + } + }, + { + "type": "维修工作", + "properties": { + "名称": "柱塞偶件的维修工作", + "embedding": [ + 0.013178451918065548, + 0.012952696532011032, + -0.014081472530961037, + 0.02208637073636055, + 0.037362463772296906, + -0.036346565932035446, + 0.046768926084041595, + 0.015943951904773712, + -0.020882343873381615, + -0.01392156258225441, + 0.004014207515865564, + -0.003289909800514579, + 0.023723095655441284, + 0.0016284935409203172, + 0.036177247762680054, + -0.04846208915114403, + -0.020449645817279816, + 0.00015814612561371177, + 0.0023375055752694607, + -0.04120029881596565, + -0.01213433500379324, + 0.007332336623221636, + 0.004155304282903671, + 0.018239127472043037, + -0.002986551495268941, + 0.01673409342765808, + 0.010488203726708889, + 0.008630428463220596, + 0.04044778272509575, + -0.013676994480192661, + -0.026149962097406387, + 0.015483034774661064, + -0.041952814906835556, + -0.029103590175509453, + 0.0009300638339482248, + -0.0382842980325222, + -0.02558557502925396, + -0.03760703280568123, + -0.04402223974466324, + 0.010375326499342918, + -0.03613962233066559, + -0.025999458506703377, + 0.03796447813510895, + -0.00827768538147211, + 0.009942629374563694, + -0.0374753400683403, + -0.010563455522060394, + -0.023948850110173225, + -0.029931358993053436, + -0.02609352394938469, + -0.01607564277946949, + -0.019772380590438843, + 0.026864852756261826, + 0.005088895559310913, + -0.010253042913973331, + 0.035744551569223404, + 0.04029728099703789, + -0.017787618562579155, + -0.024362733587622643, + 0.025453884154558182, + -0.01151350885629654, + 0.04718280956149101, + 0.010977339930832386, + 0.03134232759475708, + 0.029987797141075134, + 0.053315822035074234, + 0.0013415964785963297, + -0.00014197877317201346, + -0.014627046883106232, + -0.010883275419473648, + -0.012077895924448967, + 0.03354344144463539, + 0.047935325652360916, + -0.013959188014268875, + -0.015652351081371307, + 0.04338259994983673, + 0.03557523712515831, + -0.046768926084041595, + -0.008263575844466686, + 0.007623936515301466, + -0.0014391886070370674, + 0.014768144115805626, + 0.007741517387330532, + 0.06057760864496231, + -0.03819023072719574, + 0.02455086261034012, + -0.015445409342646599, + 0.023158706724643707, + -0.04131317883729935, + -0.0275421179831028, + -0.01061048824340105, + -0.014890427701175213, + -0.02355377934873104, + 0.014373072423040867, + -0.07156435400247574, + 0.009942629374563694, + -0.0152290603145957, + 0.0009071356034837663, + 0.06964543461799622, + 0.004707933869212866, + 0.04834920912981033, + -0.01049761101603508, + 0.009053719229996204, + -0.035895057022571564, + 0.06291041523218155, + -0.022575506940484047, + 0.055949632078409195, + -0.00639639375731349, + -0.00030717975459992886, + 0.0049101728945970535, + 0.021032847464084625, + 0.027015356346964836, + -0.03681688755750656, + -0.006043651141226292, + -0.01610386185348034, + -0.07453680038452148, + 0.01553006749600172, + -0.027937188744544983, + 0.03017592802643776, + 0.0021822990383952856, + -0.051359277218580246, + -0.037362463772296906, + 0.009133674204349518, + -0.0575675405561924, + 0.019132742658257484, + -0.02193586714565754, + 0.0516226589679718, + -0.009524041786789894, + -0.003767287591472268, + 0.016649436205625534, + -0.027203485369682312, + 0.02135266736149788, + 0.011551134288311005, + 0.02573607675731182, + -0.03395732492208481, + -0.03111657314002514, + -0.012106114998459816, + 0.017693553119897842, + 0.022330937907099724, + -0.02492712251842022, + -0.007290007546544075, + 0.02011101320385933, + 0.013761652633547783, + 0.0039036814123392105, + 0.004703230690211058, + -0.019207993522286415, + 0.027203485369682312, + -0.019621876999735832, + 0.03512372449040413, + -0.04247957840561867, + 0.04315684363245964, + 0.008225950412452221, + 0.02142791822552681, + 0.005836708936840296, + 0.009302990511059761, + -0.021258601918816566, + -0.08668994903564453, + 0.026958918198943138, + 0.020374394953250885, + -0.017590083181858063, + -0.01458001509308815, + 0.03121063858270645, + -0.038246672600507736, + -0.044135116040706635, + 0.027937188744544983, + 0.00387311028316617, + 0.026996543630957603, + 0.011061998084187508, + -0.004752614535391331, + 0.015473628416657448, + 0.016564777120947838, + 0.004660901613533497, + 0.025265755131840706, + 0.007797956466674805, + 0.014457730576395988, + 0.006184748373925686, + 0.0022728361655026674, + 0.014815175905823708, + 0.022274499759078026, + -0.014297820627689362, + 0.021992305293679237, + 0.051058270037174225, + -0.0008019008091650903, + -0.04059828445315361, + 0.023741908371448517, + 0.04379648342728615, + 0.06385105848312378, + -0.020600149407982826, + 0.01676231436431408, + 0.013865123502910137, + -0.002404526574537158, + -0.006989000830799341, + 0.06129249930381775, + 0.027071794494986534, + 0.03696739301085472, + -0.032188910990953445, + 0.04221619665622711, + 0.05959933623671532, + 0.0171197596937418, + 0.004011855460703373, + -0.0100178811699152, + 0.0008459935779683292, + 0.020600149407982826, + -0.007191239390522242, + -0.03454052656888962, + 0.010855056345462799, + 0.02675197459757328, + -0.012369496747851372, + 0.027598556131124496, + -0.042968712747097015, + 0.0212774146348238, + -0.017279669642448425, + 0.028520390391349792, + -0.0374753400683403, + -0.037418901920318604, + 0.03143639490008354, + 0.006984297186136246, + -0.02470136620104313, + -0.010525830090045929, + 0.002836048137396574, + -0.03147402033209801, + 0.030721502378582954, + 0.021710112690925598, + -0.010779804550111294, + -0.008602208457887173, + -0.02041202038526535, + -0.01224721223115921, + -0.012717535719275475, + -0.007299413904547691, + -0.027090607210993767, + -0.04744619131088257, + -0.000576733669731766, + -0.004914876073598862, + 0.0011411212617531419, + 0.04951561242341995, + -0.009190112352371216, + -0.023158706724643707, + 0.030721502378582954, + 0.013733433559536934, + 0.02880258485674858, + -0.01734551414847374, + -0.019038677215576172, + 0.012614063918590546, + -0.03548116981983185, + 0.011325378902256489, + -0.004223500844091177, + 0.034879159182310104, + 0.059298329055309296, + -0.005563921760767698, + -0.010403545573353767, + 0.01129715982824564, + -0.0020576633978635073, + -0.0005261739133857191, + 0.0007531048031523824, + -0.015069150365889072, + 0.009345319122076035, + 0.010271855629980564, + 0.0007219458930194378, + 0.024005288258194923, + -0.0005870219902135432, + 0.006852606777101755, + 0.1000094935297966, + -0.005535702221095562, + 0.005107708275318146, + -0.0037461230531334877, + 0.02282007411122322, + -0.017401952296495438, + 0.012510593049228191, + -0.02865208126604557, + 0.032320600003004074, + -0.02076946571469307, + -0.0013909804401919246, + -0.020675402134656906, + 0.03121063858270645, + 0.026733161881566048, + 0.013959188014268875, + -0.00335340341553092, + -0.03154927119612694, + 0.050493884831666946, + -0.013018541969358921, + 0.02464492805302143, + 0.022914139553904533, + 0.01694103702902794, + -0.015765229240059853, + -0.012943290174007416, + 0.030514560639858246, + -0.044925257563591, + -0.015520661137998104, + -0.014175537042319775, + -0.06648486852645874, + 0.045301515609025955, + -0.025322193279862404, + 0.08879699558019638, + -0.0029983094427734613, + -0.04345785081386566, + 0.06915630400180817, + 0.002252847421914339, + -0.15802854299545288, + -0.04206569492816925, + -0.052600931376218796, + 0.027448054403066635, + -0.003884868463501334, + 0.019207993522286415, + -0.06227077171206474, + 0.01917036809027195, + -0.05752991512417793, + -0.021446730941534042, + -0.011504101566970348, + -0.07619233429431915, + -0.009792125783860683, + -0.002144673140719533, + -0.00025808977079577744, + -0.0026408638805150986, + -0.03002542443573475, + 0.013046761974692345, + 0.016141487285494804, + -0.015511254779994488, + -0.0416894368827343, + 0.0019506649114191532, + 0.030269991606473923, + -0.025115251541137695, + -0.041501305997371674, + -0.06272228062152863, + 0.04481238126754761, + 0.03719314560294151, + -0.03324243426322937, + -0.009933223016560078, + -0.015661757439374924, + 0.01111843716353178, + -0.003621487645432353, + 0.03800210356712341, + -0.017844056710600853, + -0.03390088677406311, + -0.0450381375849247, + 0.03126707673072815, + -0.0287837702780962, + 0.021747738122940063, + 0.04691942781209946, + 0.0626470297574997, + -0.0033698647748678923, + 0.05181078612804413, + 0.002831344725564122, + -0.03766347095370293, + 0.015812261030077934, + -0.021296227350831032, + 0.004385762382298708, + -0.01878470368683338, + -0.018145063892006874, + -0.01526668667793274, + 0.010977339930832386, + -0.030589811503887177, + -0.027861937880516052, + -0.005573328118771315, + -0.004120029974728823, + 0.009669842198491096, + -0.03781397268176079, + 0.06313616782426834, + -0.03659113496541977, + -0.033129554241895676, + -0.014881021343171597, + 0.029912546277046204, + -0.04985424503684044, + -0.023271584883332253, + -0.02011101320385933, + -0.049741365015506744, + 0.014777550473809242, + -0.05143452808260918, + -0.02966797910630703, + -0.028689706698060036, + 0.014946866780519485, + 0.017891088500618935, + -0.026281652972102165, + 0.005940180271863937, + 0.019339684396982193, + -0.01661181077361107, + -0.011908579617738724, + -0.14749331772327423, + -0.04823633283376694, + 0.05015525221824646, + 0.009302990511059761, + -0.025416258722543716, + -0.028558015823364258, + 0.021540796384215355, + 0.018530728295445442, + 0.030721502378582954, + 0.01848369650542736, + 0.20062100887298584, + -0.02530338056385517, + 0.01016838476061821, + -0.01028126198798418, + 0.05459510162472725, + -0.02995017170906067, + 0.008244763128459454, + 0.005441637709736824, + 0.03687332943081856, + -0.020299142226576805, + -0.006142419297248125, + -0.01863420009613037, + 0.028746144846081734, + -0.02464492805302143, + 0.02216162160038948, + 0.018671825528144836, + -0.03544354438781738, + 0.01392156258225441, + 0.06494221091270447, + -0.032696858048439026, + 0.011880360543727875, + 0.03205721825361252, + -0.027297550812363625, + -0.017053913325071335, + -0.036929767578840256, + -0.042178571224212646, + 0.008479924872517586, + 0.04910172522068024, + -0.030063049867749214, + 0.06050235778093338, + 0.015398376621305943, + 0.046693671494722366, + 0.03442764654755592, + -0.012915071099996567, + -0.09353785216808319, + 0.010507017374038696, + -0.011579353362321854, + -0.004867843817919493, + 0.04473713040351868, + -0.008569286204874516, + 0.02120216377079487, + -0.011569947004318237, + 0.033054303377866745, + 0.01851191557943821, + 0.0013815739657729864, + -0.06798990070819855, + -0.007294710725545883, + 0.005098301917314529, + 0.0029395190067589283, + 0.0015461870934814215, + 0.05263855680823326, + -0.016461307182908058, + -0.004924282431602478, + 0.0023680764716118574, + -0.002040026243776083, + -0.020449645817279816, + -0.029498662799596786, + -0.04059828445315361, + -0.012585844844579697, + -0.0024104055482894182, + 0.042592454701662064, + 0.012886852025985718, + -0.03566930070519447, + -0.005394605454057455, + 0.002565612317994237, + -0.005272321403026581, + -0.04932748153805733, + 0.03154927119612694, + 0.03324243426322937, + 0.0022152215242385864, + 0.02274482324719429, + 0.009176002815365791, + -0.03171858564019203, + 0.010648113675415516, + 0.015652351081371307, + -0.006974890828132629, + 0.027523305267095566, + 0.09594590216875076, + -0.0002428042789688334, + -0.00712539441883564, + -0.030589811503887177, + -0.027730247005820274, + -0.044210366904735565, + -0.011560540646314621, + 0.04176468774676323, + -0.03134232759475708, + -0.04263008013367653, + 0.0012957400176674128, + -0.03119182586669922, + -0.0016943388618528843, + -0.030081862583756447, + -0.023892411962151527, + -0.04037253186106682, + 0.028012441471219063, + -0.012745754793286324, + 0.0007689782069064677, + -0.012661096639931202, + -0.025096438825130463, + -0.031831465661525726, + 0.01779702492058277, + -0.06893054395914078, + -0.05007999762892723, + 0.013724027201533318, + -0.015501847490668297, + -0.016310803592205048, + -0.001630845246836543, + -0.007261788006871939, + 0.028012441471219063, + 0.011532321572303772, + -0.031022509559988976, + 0.008748008869588375, + 0.02362903021275997, + -0.03875461965799332, + -0.02951747551560402, + 0.013582929968833923, + 0.010958527214825153, + 0.0022740119602531195, + 0.058432936668395996, + 0.01389334350824356, + -0.0030429901089519262, + -0.021032847464084625, + 0.04214094579219818, + 0.005643876735121012, + 0.02193586714565754, + -0.01257643848657608, + -0.023309210315346718, + -0.035744551569223404, + 0.02063777483999729, + -0.01932087168097496, + 0.03905562683939934, + 0.0014509466709569097, + -0.005535702221095562, + 0.0008724492508918047, + -0.018323786556720734, + 0.047559067606925964, + 0.013930968940258026, + -0.020374394953250885, + 0.012802193872630596, + 0.012030864134430885, + 0.009359428659081459, + 0.028746144846081734, + -0.055799126625061035, + -0.012331870384514332, + 0.05143452808260918, + -0.016132080927491188, + -0.022801261395215988, + -0.033994950354099274, + -0.01475873775780201, + -0.01921739988029003, + 0.03271567076444626, + -0.00356269720941782, + 0.08646418899297714, + -0.039469510316848755, + -0.0390932522714138, + -0.02979966811835766, + -0.0241369791328907, + -0.016047421842813492, + -0.006824387703090906, + -0.008743305690586567, + -0.004002449102699757, + -0.0003512725234031677, + 0.007915536873042583, + -0.014062659814953804, + 0.0016567129641771317, + 0.055498119443655014, + 0.06972069293260574, + -0.01326311007142067, + -0.007205349393188953, + 0.03894275054335594, + 0.004787888843566179, + 0.042178571224212646, + -0.0001724027970340103, + -0.0524880513548851, + 0.029912546277046204, + -0.007078362163156271, + -0.00377199100330472, + -0.00038860441418364644, + 0.04131317883729935, + 0.03433358296751976, + 0.009096047841012478, + 0.02236856520175934, + 0.033411748707294464, + -0.021446730941534042, + 0.029216468334197998, + -0.02543507143855095, + -0.011419443413615227, + -0.013169045560061932, + -0.010657520033419132, + -0.0025750186759978533, + 0.009124266915023327, + -0.06497983634471893, + 0.09963323920965195, + -0.009044311940670013, + -0.003948362078517675, + 0.004472772125154734, + -0.007722704671323299, + 0.04992949590086937, + -0.008700976148247719, + 0.0021658376790583134, + -0.048725467175245285, + 0.01873767003417015, + -0.003934252541512251, + 0.011109030805528164, + 0.07686959952116013, + -0.010403545573353767, + -0.053391072899103165, + -0.04601640626788139, + -0.011024372652173042, + -0.02479543164372444, + -0.006278812885284424, + -0.011033779010176659, + -0.01090208813548088, + 0.033863261342048645, + 0.01337598729878664, + 0.000170639090356417, + -0.025999458506703377, + 0.0383407361805439, + 0.06099149212241173, + -0.011560540646314621, + -0.03440883383154869, + -0.00902549922466278, + 0.012012050487101078, + 0.07130097597837448, + -0.004014207515865564, + 0.019659504294395447, + 0.015294905751943588, + -0.00703603308647871, + -0.004613869357854128, + 0.001935379346832633, + -0.0015238466439768672, + 0.01643308810889721, + 0.035913869738578796, + -0.02959272637963295, + -0.040711164474487305, + 0.021409105509519577, + -0.027090607210993767, + 0.031680960208177567, + 0.02624402567744255, + -0.03773872181773186, + -0.0035885649267584085, + -0.027222298085689545, + 0.032847363501787186, + 0.04394698515534401, + 0.04357072710990906, + -0.023271584883332253, + 0.04364597797393799, + -0.06422732025384903, + 0.016771720722317696, + 0.008211840875446796, + 0.06355005502700806, + -0.01932087168097496, + 0.011946205981075764, + 0.04759669303894043, + 0.016451900824904442, + 0.016894003376364708, + -0.010516423732042313, + 0.006650368217378855, + 0.009632215835154057, + -0.07555269449949265, + -0.026563845574855804, + 0.020957594737410545, + 0.030006611719727516, + -0.008856182917952538, + -0.00499012740328908, + -0.014316634275019169, + 0.011870954185724258, + 0.000629645015578717, + 0.035086099058389664, + -0.015737010166049004, + -0.052600931376218796, + 0.004021262284368277, + -0.015445409342646599, + -0.035387106239795685, + -0.012830412946641445, + 0.0199793241918087, + -0.010808023624122143, + -0.03111657314002514, + 0.04270533472299576, + 0.00036508828634396195, + 0.04695705324411392, + 0.0035862133372575045, + -0.055498119443655014, + -0.015134995803236961, + -0.04029728099703789, + 0.01899164542555809, + -0.04458662495017052, + 0.03980814293026924, + -0.03602674603462219, + -0.042968712747097015, + -0.021446730941534042, + 0.00483021792024374, + -0.009782719425857067, + -0.036609947681427, + 0.02048727311193943, + -0.015520661137998104, + -0.023572592064738274, + -0.005907257553189993, + 0.007021923083811998, + -0.009970848448574543, + -0.006763245444744825, + 0.0003348112222738564, + 0.053917836397886276, + -0.011767483316361904, + -0.022255687043070793, + -0.027015356346964836, + 0.0017084485152736306, + -0.022838886827230453, + -0.025642013177275658, + -0.0020165101159363985, + 0.02485186979174614, + -0.0017155034001916647, + -0.030665062367916107, + -0.012726942077279091, + -0.00045356780174188316, + 0.0299689844250679, + 0.010356513783335686, + -0.02186061628162861, + -0.013620555400848389, + 0.021239789202809334, + 0.011250127106904984, + -0.038510050624608994, + -0.009542854502797127, + -0.049176979809999466, + -0.015831073746085167, + -0.016461307182908058, + 0.004117678385227919, + 0.042329076677560806, + 0.03980814293026924, + 0.002619699342176318, + -0.04127554967999458, + -0.021183351054787636, + -0.0025773702654987574, + -0.006565710064023733, + -0.024174604564905167, + 0.03004423715174198, + 0.01597217097878456, + -0.013441832736134529, + -0.0114758824929595, + 0.02165367268025875, + -0.04372123256325722, + -0.02135266736149788, + 0.005841412581503391, + 0.06084099039435387, + -0.019255025312304497, + 0.026187587529420853, + -0.014344853349030018, + -0.024738993495702744, + -0.030853193253278732, + 0.0015673516318202019, + -0.012623471207916737, + -0.00618004472926259, + 0.020129825919866562, + 0.0014215514529496431, + -0.06656011939048767, + -0.025378631427884102, + 0.019565438851714134, + 0.036045558750629425, + 0.023948850110173225, + -0.0035368294920772314, + 0.010949120856821537, + 0.0038895716425031424, + -0.0034992035944014788, + 0.0011358301853761077, + 0.0079249432310462, + 0.017956934869289398, + -0.01967831701040268, + 0.005112411454319954, + -0.01701628789305687, + 0.031530458480119705, + -0.019621876999735832, + -0.0304016824811697, + 0.00909134466201067, + -0.022481441497802734, + 0.014203756116330624, + -0.039469510316848755, + -0.011344192549586296, + -0.02317751944065094, + 0.027222298085689545, + 0.020355582237243652, + -0.005879038013517857, + -0.06377580761909485, + -0.05542286857962608, + -0.029103590175509453, + 0.015501847490668297, + -0.0021846506278961897, + 0.003367513185366988, + -0.028257008641958237, + -0.011494695208966732, + 0.07370902597904205, + 0.034954410046339035, + -0.03230178728699684, + -0.004216446075588465, + -0.02069421485066414, + 0.0191421490162611, + -0.14802007377147675, + -0.010836243629455566, + -0.022199248895049095, + 0.008461112156510353, + -0.051585033535957336, + -0.006735026370733976, + 0.02573607675731182, + 0.0024856573436409235, + 0.008592802099883556, + -0.001621438772417605, + 0.017759399488568306, + -0.00044651294592767954, + 0.018653012812137604, + -0.009876783937215805, + -0.04797295108437538, + 0.03905562683939934, + 0.002201111987233162, + -0.03294142708182335, + 0.010873869061470032, + 0.05775567144155502, + -0.021521983668208122, + -0.028388699516654015, + -0.004839624278247356, + 0.005041863303631544, + 0.03783278539776802, + -0.04266770929098129, + 0.016273178160190582, + 0.011428850702941418, + 0.0047949436120688915, + 0.021108098328113556, + -0.004611517768353224, + -0.06727501004934311, + 0.03450290113687515, + 0.016235552728176117, + 0.0258113294839859, + -0.005813193041831255, + -0.017514830455183983, + 0.026037083938717842, + 0.04263008013367653, + -0.020506085827946663, + 0.012143741361796856, + -0.016649436205625534, + 0.0050089405849576, + 0.03645944222807884, + -0.0016014500288292766, + 0.05015525221824646, + -0.0024903605226427317, + 0.011221908032894135, + 0.0032076032366603613, + 0.013441832736134529, + 0.027654996141791344, + 0.011259534396231174, + -0.046543169766664505, + -0.009138377383351326, + -0.00810366589576006, + 0.015784041956067085, + -0.028915461152791977, + -0.00376258441247046, + -0.04112504795193672, + 0.04819870740175247, + -0.02835107408463955, + -0.008061337284743786, + 0.010798617266118526, + -0.0649045780301094, + -0.01410028524696827, + -0.005512186326086521, + 0.012350683100521564, + -0.007840285077691078, + 0.03162452206015587, + -0.034220706671476364, + 0.03463459014892578, + -0.017580674961209297, + -0.007793252822011709, + -0.011221908032894135, + 0.03950713574886322, + -0.00911486055701971, + 0.02216162160038948, + -0.026281652972102165, + -0.0073699625208973885, + 0.019772380590438843, + 0.01888817362487316, + 0.02178536355495453, + -0.026733161881566048, + 0.03773872181773186, + 0.047784823924303055, + -0.019207993522286415, + -0.010986746288836002, + -0.04714518412947655, + 0.0070266262628138065, + 0.018474290147423744, + -0.013404207304120064, + -0.024945935234427452, + 0.016085049137473106, + 0.017439579591155052, + -0.01800396665930748, + 0.003200548468157649, + -0.010996152646839619, + -0.000628469162620604, + 0.009335912764072418, + -0.05056913569569588, + 0.001723733963444829, + -0.05015525221824646, + -0.001041177660226822, + 0.00909134466201067, + -0.007294710725545883, + -0.0016108565032482147, + 0.004849030636250973, + -0.012040270492434502, + -0.00957107450813055, + -0.005855522118508816, + -0.011579353362321854, + -0.0066221486777067184, + -0.017486611381173134, + -0.04910172522068024, + -0.060314226895570755, + 0.03630894050002098, + 0.00490076607093215, + -0.005530999042093754, + -0.030627436935901642, + -0.026846040040254593, + 0.007727407850325108, + 0.009105454199016094, + -0.09278533607721329, + -0.05557337403297424, + -0.0315868966281414, + -0.0017601840663701296, + 0.032264161854982376, + 0.04315684363245964, + 0.04970373958349228, + 0.055008985102176666, + 0.018248533830046654, + -0.01352649088948965, + -0.00020797098113689572, + 0.041501305997371674, + 0.0325087308883667, + 0.019621876999735832, + -0.04714518412947655, + 0.05241280049085617, + -0.045301515609025955, + -0.027673808857798576, + 0.01096793357282877, + 0.032696858048439026, + -0.023854784667491913, + -0.03433358296751976, + -0.0012722238898277283, + -0.01679053343832493, + -0.05990034341812134, + -0.034446459263563156, + 0.05357920378446579, + 0.019048083573579788, + 0.0047455597668886185, + -0.02791837602853775, + -0.004552727099508047, + 0.041012171655893326, + -0.007393478415906429, + 0.02046845853328705, + 0.04138842970132828, + 0.007285304367542267, + -0.06196976453065872, + 0.03139876574277878, + 0.053692080080509186, + -0.06355005502700806, + -0.021766550838947296, + 0.03309192880988121, + 0.027654996141791344, + 0.00710658123716712, + 0.01100555993616581, + 0.002417460549622774, + -0.0258677676320076, + 0.007877911441028118, + -0.004077700898051262, + 0.008987873792648315, + -0.009340615943074226, + -0.00719594256952405, + 0.005488669965416193, + -0.0651303380727768, + -0.007506356108933687, + -0.011315972544252872, + 0.10964170843362808, + -0.001927148667164147, + -0.01937730982899666, + 0.030420495197176933, + 0.0304581206291914, + 0.010648113675415516, + 0.01028126198798418, + -0.014786956831812859, + 0.002981848083436489, + -0.0036450037732720375, + -0.027297550812363625, + -0.013046761974692345, + -0.016263771802186966, + 0.002452734624966979, + -0.02995017170906067, + 0.011090218089520931, + 0.026582658290863037, + -0.01683756522834301, + -0.0010341227753087878, + 0.050983019173145294, + -0.0014368369011208415, + 0.07148910313844681, + -0.005060676019638777, + 0.003308722749352455, + -0.034653402864933014, + 0.01774999126791954, + -0.009726280346512794, + 0.04263008013367653, + 0.01615089364349842, + 0.01764652132987976, + -0.05824480578303337, + -0.0007166547584347427, + -0.02594302035868168, + -0.00013220487744547427, + -0.036835700273513794, + 0.024983560666441917, + 0.03425833210349083, + 0.012171960435807705, + -0.01878470368683338, + 0.04962848871946335, + -0.007534575182944536, + 0.020825905725359917, + 0.018314380198717117, + 0.011899173259735107, + 0.010177791118621826, + -0.060615234076976776, + 0.04936510697007179, + -0.037418901920318604, + 0.007788549643009901, + -0.016423681750893593, + -0.06321141868829727, + -0.01617911271750927, + -0.030307617038488388, + -0.011372411623597145, + -0.0004770839586853981, + 0.0441727414727211, + -0.019339684396982193, + -0.044925257563591, + -0.025830142199993134, + -0.04643029347062111, + 0.046618420630693436, + 0.04834920912981033, + 0.07337039709091187, + -0.008160104975104332, + -0.0035744551569223404, + 0.0631737932562828 + ] + } + }, + { + "type": "维修工作", + "properties": { + "名称": "轴承组件的维修工作", + "embedding": [ + -0.053925395011901855, + -0.0072501166723668575, + -0.03711380437016487, + 0.03951006755232811, + 0.009193544276058674, + -0.016622908413410187, + 0.024849455803632736, + -6.397508695954457e-05, + -0.025528712198138237, + -0.013887015171349049, + 0.009599210694432259, + 0.013075681403279305, + 0.020547499880194664, + 0.031660884618759155, + 0.011151122860610485, + -0.051774416118860245, + 0.012556805275380611, + -0.016217241063714027, + 0.0017288014059886336, + -0.042000673711299896, + -0.002712307730689645, + -0.001991777215152979, + -3.6833582271356136e-05, + 0.021792802959680557, + -0.003342034760862589, + -0.002983538433909416, + -0.0011120461858808994, + 0.003988271579146385, + 0.03475527465343475, + 0.004896305035799742, + -0.05486880615353584, + -0.018811622634530067, + -0.0047689443454146385, + -0.02683061920106411, + -0.04377428814768791, + -0.05151026323437691, + 0.02596268057823181, + -0.035264719277620316, + -0.052453674376010895, + 0.016330450773239136, + -0.04083084315061569, + -0.02762308530509472, + 0.025849472731351852, + -0.009566191583871841, + -0.011679433286190033, + -0.016547435894608498, + -0.03820816054940224, + -0.01415117084980011, + -0.0020672501996159554, + -0.02596268057823181, + -0.0037099653854966164, + -0.014575705863535404, + 0.027717426419258118, + -0.03667983412742615, + -0.025000400841236115, + 0.03935912251472473, + 0.019868243485689163, + -0.04113273695111275, + -0.038981758058071136, + 0.020434290170669556, + -0.019151251763105392, + 0.053170666098594666, + 0.012585108168423176, + 0.01930219680070877, + 0.06766146421432495, + 0.06985017657279968, + -0.02371736243367195, + -0.012434162199497223, + -0.013830411247909069, + -0.04924607276916504, + 0.014056829735636711, + 0.010273749940097332, + -0.004047235008329153, + -0.004629791248589754, + -0.030057087540626526, + 0.05501975119113922, + -0.008504853583872318, + -0.020962601527571678, + -0.00802371371537447, + 0.009934121742844582, + -0.014368155039846897, + 0.0011144046438857913, + 0.013490783050656319, + 0.024830587208271027, + -0.03634020686149597, + 0.02900046668946743, + -0.010358656756579876, + -0.022943764925003052, + -0.0503404326736927, + -0.026264572516083717, + 0.004577903542667627, + -0.02015126682817936, + 0.008198244497179985, + 0.009056749753654003, + -0.049472492188215256, + 0.004217049106955528, + -0.05294424667954445, + 0.012924736365675926, + 0.03279297798871994, + 0.008665233850479126, + 0.049510229378938675, + 0.00556140998378396, + 0.024755114689469337, + -0.06120853126049042, + 0.10626585781574249, + -0.017688963562250137, + 0.03196277841925621, + 0.03626473248004913, + -0.012122835963964462, + 0.0013632294721901417, + -0.0014151170616969466, + 0.025434371083974838, + -0.027906108647584915, + 0.012726619839668274, + -0.001877388684079051, + -0.03047218732535839, + -0.013283232226967812, + -0.034717537462711334, + 0.05868018791079521, + -0.022773951292037964, + -0.01009450200945139, + 0.008113337680697441, + -0.006948224734514952, + -0.027132511138916016, + 0.004313748329877853, + -0.025755131617188454, + 0.053812187165021896, + -0.010283184237778187, + -0.001949323806911707, + 0.033057134598493576, + 0.0020931940525770187, + 0.05717073008418083, + -0.008764292113482952, + 0.01529269851744175, + -0.04313276708126068, + -0.04018932580947876, + 0.02309470996260643, + -0.009905819781124592, + -0.0027571197133511305, + -0.026264572516083717, + -0.021717330440878868, + -0.01453796960413456, + -0.02750987559556961, + -0.01526439655572176, + -0.014934202656149864, + -0.02617023140192032, + -0.0029788215178996325, + -0.02301923744380474, + 0.004714698530733585, + 0.006438782904297113, + -0.0012052080128341913, + 0.003938742447644472, + 0.016217241063714027, + -0.013283232226967812, + 0.02081165462732315, + -0.017453109845519066, + -0.08641648292541504, + 0.02905707061290741, + -0.004891587886959314, + 0.0037736454978585243, + 0.0476234070956707, + 0.07592574506998062, + -0.033792994916439056, + -0.002326688263565302, + 0.03417035937309265, + -0.028849519789218903, + 0.005320840049535036, + 0.003992988727986813, + -0.012151138857007027, + -0.0040991222485899925, + -0.015028543770313263, + -0.0009333876660093665, + 0.014887032099068165, + 0.009542605839669704, + 0.04966117441654205, + 0.00044664632878266275, + 0.05128384381532669, + 0.02679288387298584, + 0.013254930265247822, + -0.027736295014619827, + 0.02673627808690071, + 0.04562337324023247, + 0.03218919783830643, + -0.01775500178337097, + 0.028585365042090416, + 0.057774513959884644, + 0.045812055468559265, + -0.007141624111682177, + 0.02454756386578083, + -0.006825581192970276, + -0.003176937811076641, + -0.028509892523288727, + 0.021849406883120537, + -0.026453254744410515, + 0.0060378327034413815, + -0.013000208884477615, + 0.03730248659849167, + 0.03143446892499924, + 0.04377428814768791, + -0.011698300950229168, + -0.009830346331000328, + -0.02539663389325142, + 0.02013239823281765, + -0.00877844262868166, + -0.04120820760726929, + 0.022623004391789436, + -0.01939653791487217, + -0.026981566101312637, + 0.025453239679336548, + -0.02975519560277462, + 0.030358977615833282, + -0.03643454611301422, + 0.01150961872190237, + -0.045132800936698914, + -0.04841587319970131, + 0.020472027361392975, + 0.004799605347216129, + -0.005174611229449511, + -0.01114168856292963, + -0.03720814362168312, + -0.0447176992893219, + 0.04969891160726547, + -0.005471786018460989, + -0.026340045034885406, + 0.03375525772571564, + -0.03711380437016487, + 0.039925169199705124, + 0.004804322496056557, + -0.006745391525328159, + -0.015302132815122604, + -0.005448200739920139, + 0.0017901230603456497, + -0.026585333049297333, + -0.012811526656150818, + 0.05890660732984543, + -0.003268920350819826, + 0.0024104160256683826, + 0.01451910100877285, + 0.0449063815176487, + 0.018151234835386276, + -0.03186843544244766, + 0.0009021371370181441, + 0.010339789092540741, + -0.036170393228530884, + -0.0024811718612909317, + 0.027396665886044502, + 0.026547595858573914, + 0.018943700939416885, + -0.03362318128347397, + -0.00708501972258091, + -0.0019021532498300076, + 0.005452917888760567, + -0.016151202842593193, + -0.012481332756578922, + 0.01630214788019657, + -0.0005268363165669143, + 0.01775500178337097, + -0.0327175073325634, + 0.0006662842934019864, + -0.017490847036242485, + -0.020698444917798042, + 0.10339789092540741, + -0.0002718204050324857, + 0.014415325596928596, + -0.011537921614944935, + 0.033208079636096954, + -0.040642160922288895, + 0.006476519163697958, + -0.0433591865003109, + 0.053812187165021896, + -0.03554774075746536, + 0.006537840701639652, + 0.0012063873000442982, + -0.0024505110923200846, + 0.02009466290473938, + 0.03800060972571373, + 0.0015070997178554535, + -0.009269016794860363, + 0.10083180665969849, + 0.0022476776503026485, + 0.02983066812157631, + 0.016905931755900383, + 0.02822686918079853, + -0.05864245072007179, + 0.015066280029714108, + 0.01885879412293434, + -0.08754857629537582, + -0.029943877831101418, + -0.016566304489970207, + -0.035981711000204086, + 0.013292666524648666, + -0.03215146064758301, + 0.08868066966533661, + -0.0034340175334364176, + -0.019660692662000656, + 0.06558595597743988, + -0.011462448164820671, + -0.15939879417419434, + 0.03181183338165283, + -0.0507177971303463, + 0.016000257804989815, + 0.005627449136227369, + 0.0017134709050878882, + -0.04188746586441994, + 0.01750028133392334, + -0.04713283106684685, + -0.002172204665839672, + -0.005094421561807394, + -0.09411472082138062, + -0.02526455745100975, + -0.01683989353477955, + 0.018038025125861168, + -0.011651130393147469, + -0.05060458555817604, + 0.0076982369646430016, + 0.029208015650510788, + -0.03920817747712135, + -0.03584963083267212, + -0.02162298932671547, + 0.014236077666282654, + -0.01683989353477955, + -0.027698557823896408, + -0.07856730371713638, + 0.022019222378730774, + -0.0033750543370842934, + -0.031717490404844284, + -0.0011102772550657392, + 0.006783127784729004, + 0.0290382020175457, + -0.003523641498759389, + 0.04932154715061188, + -0.01947201043367386, + -0.05705752223730087, + -0.022868292406201363, + -0.03713267296552658, + -0.018038025125861168, + 0.018575770780444145, + 0.014320984482765198, + 0.03492508828639984, + 0.02454756386578083, + 0.021207887679338455, + -0.020641840994358063, + -0.08890708535909653, + -0.035321321338415146, + -0.017160652205348015, + -0.001704036840237677, + -0.02009466290473938, + -0.014330418780446053, + -0.02605702169239521, + 0.005287820938974619, + -0.0052406503818929195, + -0.049472492188215256, + 0.0010442384518682957, + -0.02237771824002266, + 0.027094775810837746, + 0.009618079289793968, + 0.04615168645977974, + -0.022509796544909477, + -0.02007579430937767, + 0.004287804942578077, + -0.06011417508125305, + -0.017971986904740334, + -0.00032459248905070126, + 0.012217177078127861, + -0.04943475499749184, + 0.02754761278629303, + -0.053963132202625275, + -0.008745423518121243, + -0.004709981381893158, + 0.024811718612909317, + -0.030340110883116722, + -0.037604376673698425, + 0.007283135782927275, + -0.009877516888082027, + -0.017321033403277397, + -0.015405908226966858, + -0.11102065443992615, + 0.006018964573740959, + 0.032359011471271515, + 0.013415309600532055, + -0.053321611136198044, + -0.04366108030080795, + 0.008066167123615742, + 0.0010065020760521293, + 0.014509666711091995, + -0.0041863881051540375, + 0.22234319150447845, + -0.003582604695111513, + -0.0162644125521183, + -0.008537872694432735, + 0.06535954028367996, + -0.03145333379507065, + -0.009679400362074375, + -0.047208305448293686, + 0.03554774075746536, + -0.02832121029496193, + -0.05452917888760567, + -0.03475527465343475, + 0.03420809656381607, + -0.0020660709124058485, + 0.023415470495820045, + -0.021773934364318848, + -0.018745584413409233, + 0.02090599574148655, + 0.11449240893125534, + 0.00181724620051682, + 0.004242992494255304, + 0.039170440286397934, + -0.045698847621679306, + -0.026302309706807137, + -0.044264860451221466, + -0.05581221729516983, + -0.016547435894608498, + 0.024056989699602127, + -0.022887161001563072, + 0.03050992451608181, + -0.009467133320868015, + 0.038981758058071136, + 0.0402647964656353, + 0.02092486433684826, + -0.06773693859577179, + 0.0047430009581148624, + 0.01821727305650711, + 0.02522682026028633, + 0.06166136637330055, + 0.010839796625077724, + -0.00373826758004725, + -0.037623245269060135, + 0.006467084866017103, + -0.002009466290473938, + 0.005655751097947359, + -0.07788804173469543, + 0.01788708008825779, + -0.005476503167301416, + 0.001371484249830246, + 0.016811590641736984, + -0.005353859625756741, + -0.0133587047457695, + -0.028415551409125328, + 0.007264267653226852, + -0.019773902371525764, + -0.02449095994234085, + -0.014679481275379658, + -0.0416233092546463, + 0.024792851880192757, + -0.005669902544468641, + 0.02079278603196144, + -0.014717217534780502, + -0.02596268057823181, + 0.027755163609981537, + -0.00542461546137929, + -0.005127440672367811, + -0.014698348939418793, + -0.008283152244985104, + -0.00032813026336953044, + -0.00925486534833908, + 0.00817937683314085, + -0.002261828863993287, + -0.008169942535459995, + 0.009811478666961193, + 0.016915366053581238, + -0.001471721800044179, + 0.012245479971170425, + 0.06769920140504837, + -0.012953038327395916, + 0.006863317918032408, + -0.06037832796573639, + -0.04415165260434151, + -0.017179520800709724, + -0.026623068377375603, + 0.023264525458216667, + -0.04664225876331329, + -0.04324597865343094, + -0.00672180624678731, + -0.03722701221704483, + 0.013434178195893764, + -0.018094630911946297, + -0.00288212182931602, + -0.009981292299926281, + -0.0077123879455029964, + 0.0032193914521485567, + -0.0050614019855856895, + 0.008971842005848885, + -0.03134012594819069, + -0.031642016023397446, + 0.004037800710648298, + -0.023509811609983444, + -0.047246042639017105, + -0.018594637513160706, + -0.007297287229448557, + 0.014405892230570316, + 0.01573610119521618, + 0.005330274347215891, + 0.016254978254437447, + -0.006297270767390728, + -0.003195806173607707, + 0.01378324069082737, + 0.04320824146270752, + 0.0057312240824103355, + -0.02377396635711193, + 0.02011353150010109, + -0.006490670144557953, + 0.02915141172707081, + 0.08339756727218628, + 0.017971986904740334, + 0.015839876607060432, + -0.04086858034133911, + 0.05875566229224205, + -0.00015802140114828944, + 0.019905980676412582, + -0.03409488871693611, + -0.021736199036240578, + 0.004339692182838917, + -0.01906634494662285, + -0.018905963748693466, + 0.04215162247419357, + 0.01633988507091999, + -0.01759462244808674, + 0.01191528607159853, + -0.012905867770314217, + 0.04686867818236351, + -0.013858713209629059, + -0.02977406419813633, + 0.03515150770545006, + 0.0032642034348100424, + -0.02681175246834755, + -0.053812187165021896, + -0.06298214197158813, + -0.001136810751631856, + -0.0020955526269972324, + -0.0038609111215919256, + -0.05569900944828987, + -0.017321033403277397, + 0.0002656292635947466, + -0.05120836943387985, + 0.017707832157611847, + -0.02305697463452816, + 0.07098226994276047, + 0.007316155359148979, + -0.017821041867136955, + 0.02086826041340828, + -0.010905835777521133, + -0.0004949961439706385, + 0.013632294721901417, + 0.023339997977018356, + -0.0333024226129055, + 0.011660564690828323, + -0.0029764629434794188, + 0.014349287375807762, + 0.02001919038593769, + 0.07902013510465622, + 0.04758566990494728, + -0.00037883862387388945, + 0.07113321870565414, + 0.04852908104658127, + -0.0023573492653667927, + 0.025717394426465034, + 0.011537921614944935, + -0.039811961352825165, + 0.05415181443095207, + 0.03564208373427391, + 0.011245463974773884, + -0.042000673711299896, + 0.02617023140192032, + 0.003502414794638753, + 0.06588785350322723, + 0.010566207580268383, + 0.05713299289345741, + 0.005816131364554167, + -0.04196293652057648, + 0.00025973294395953417, + -0.018028590828180313, + 0.01759462244808674, + -0.011717169545590878, + 0.028453286737203598, + 0.01829274743795395, + -0.05509522557258606, + 0.0921524241566658, + -0.019604088738560677, + -0.009792610071599483, + 0.00667463568970561, + -0.0040778955444693565, + 0.05260461941361427, + -0.061472684144973755, + 0.02381170354783535, + -0.07030301541090012, + -0.03279297798871994, + -0.014868163503706455, + 0.019943716004490852, + 0.03769871965050697, + 0.006570860277861357, + -0.04562337324023247, + -0.024906059727072716, + 0.002580230124294758, + -0.02077391929924488, + 0.004766586236655712, + 0.0018526241183280945, + -0.004648659378290176, + 0.031547676771879196, + 0.012443596497178078, + -0.026509860530495644, + -0.00785861723124981, + 0.01676442101597786, + 0.06490670144557953, + -0.01945314183831215, + -0.016943668946623802, + 0.02441548742353916, + -0.009424679912626743, + 0.05486880615353584, + 0.007235965225845575, + 0.024170199409127235, + 0.005891603883355856, + 0.0005082628922536969, + -0.02454756386578083, + 0.0350382998585701, + 0.0013184173731133342, + 0.01531156711280346, + 0.024340013042092323, + -0.008802028372883797, + -0.029415566474199295, + 0.01928332820534706, + 0.014641745015978813, + -0.0004077306075487286, + 0.04147236421704292, + -0.032340142875909805, + 0.010537905618548393, + -0.013179456815123558, + -0.015632325783371925, + 0.04973664879798889, + -0.002150977961719036, + -0.016811590641736984, + 0.0298117995262146, + -0.06724636256694794, + 0.0017134709050878882, + 0.0002548684715293348, + 0.04969891160726547, + -0.024981534108519554, + 0.0012629920383915305, + 0.062076468020677567, + 0.00761332968249917, + -0.052529145032167435, + -0.029453303664922714, + -0.008971842005848885, + 0.004146292805671692, + -0.04551016539335251, + -0.029491038993000984, + 0.007905787788331509, + 0.034547723829746246, + -0.013622860424220562, + -0.013858713209629059, + -0.0072501166723668575, + 0.026453254744410515, + 0.0404534786939621, + 0.004823190625756979, + -0.03790627047419548, + -0.04637810215353966, + -0.012745487503707409, + 0.0042288415133953094, + -0.041321419179439545, + -0.04535922035574913, + 0.02075505070388317, + -0.008872783742845058, + -0.016887063160538673, + 0.027849504724144936, + 0.04441580921411514, + 0.03203824907541275, + -0.01419834140688181, + -0.0567178912460804, + 0.013971922919154167, + -0.02313244715332985, + 0.03635907545685768, + 0.009438831359148026, + -0.010736021213233471, + -0.005278386641293764, + -0.013594558462500572, + -0.026547595858573914, + -0.01866067759692669, + 0.007033132016658783, + -0.0400761142373085, + 0.05286877229809761, + -0.008528439328074455, + 0.0027901390567421913, + -0.01007563341408968, + 0.017679529264569283, + -0.013481348752975464, + 0.008471834473311901, + -0.014613442122936249, + 0.06335950642824173, + -0.014736086130142212, + -0.01121716108173132, + 0.01783047430217266, + -0.01608516462147236, + -0.009500152431428432, + -0.008292585611343384, + 0.03115144371986389, + 0.01374550350010395, + 0.03220806643366814, + -0.04932154715061188, + 0.01663234271109104, + 0.01371720153838396, + 0.003540151286870241, + 0.021151283755898476, + -0.015377605333924294, + -0.0017087538726627827, + -0.006985961459577084, + 0.021377701312303543, + -0.027075907215476036, + -0.015575721859931946, + -0.04196293652057648, + -0.00381845748052001, + -0.04713283106684685, + 0.011047347448766232, + 0.023396601900458336, + 0.028811784461140633, + -0.02754761278629303, + -0.02915141172707081, + -0.011613394133746624, + 0.0026651371736079454, + 0.008122771978378296, + -0.011132254265248775, + 0.033868469297885895, + -0.00019678971148096025, + 0.001371484249830246, + -0.00841051246970892, + 0.03284958377480507, + 0.03188730403780937, + -0.01943427510559559, + 0.0032028816640377045, + 0.026283441111445427, + -0.0012936528073623776, + 0.0356232151389122, + -0.024302277714014053, + -0.01449079904705286, + -0.015141752548515797, + 0.02375509776175022, + 0.0005082628922536969, + 0.002264187438413501, + -0.019509747624397278, + 0.012481332756578922, + -0.0625293031334877, + -0.00023644247266929597, + -0.009306753054261208, + -0.0282646045088768, + 0.009839780628681183, + 0.030736342072486877, + -0.021924881264567375, + 0.012849262915551662, + -0.0017170087667182088, + 0.012396425940096378, + 0.033057134598493576, + 0.020547499880194664, + -0.013754937797784805, + 0.00420525623485446, + -0.033057134598493576, + 0.025717394426465034, + 0.009679400362074375, + -0.028604233637452126, + 0.04528374597430229, + 0.013820976950228214, + 0.015773838385939598, + -0.036887384951114655, + 0.0016474321018904448, + -0.023547548800706863, + 0.012528503313660622, + 0.008386927656829357, + -0.005509522277861834, + -0.018453126773238182, + -0.038359105587005615, + -0.03709493577480316, + -0.025189083069562912, + -0.02377396635711193, + 0.011698300950229168, + -0.03558547794818878, + -0.04339692369103432, + 0.03647228330373764, + 0.044302597641944885, + -0.05905755236744881, + 0.01449079904705286, + -0.021132415160536766, + -0.020472027361392975, + -0.14883257448673248, + 0.004419882316142321, + -0.009698268957436085, + -0.0018514448311179876, + -0.040415745228528976, + -0.036151524633169174, + 0.01599082350730896, + 0.00913693942129612, + 0.01526439655572176, + 0.003875062335282564, + 0.03066086955368519, + -0.024000385776162148, + 0.05083100497722626, + -0.004556676838546991, + -0.014575705863535404, + 0.041359156370162964, + -0.010651114396750927, + -0.027000434696674347, + 0.02598154917359352, + 0.05890660732984543, + -0.016868196427822113, + -0.0066935038194060326, + 0.02458530105650425, + 0.0016816308489069343, + 0.058491505682468414, + 0.023490943014621735, + 0.039887432008981705, + 0.0025236255023628473, + -0.017085179686546326, + -0.01160395983606577, + 0.022830555215477943, + -0.056076373904943466, + 0.02834007889032364, + -0.002193431369960308, + 0.005877452902495861, + 0.001623846823349595, + -0.008655799552798271, + 0.003929308615624905, + 0.018745584413409233, + 0.01150961872190237, + 0.020339949056506157, + -0.0021816387306898832, + -0.00021713202295359224, + 0.03334015980362892, + 0.03728361800312996, + 0.08400134742259979, + -0.01897200383245945, + -0.006924639455974102, + -0.017736133188009262, + 0.02377396635711193, + 0.011547354981303215, + -0.019755033776164055, + 0.022000353783369064, + 0.028698574751615524, + 0.009849214926362038, + 0.006028398871421814, + -0.031038234010338783, + 0.006268968805670738, + -0.05068005993962288, + 0.10264316201210022, + -0.031566545367240906, + 0.004011856857687235, + -0.024358881637454033, + -0.01595308631658554, + -0.026453254744410515, + 0.017953118309378624, + 0.0026368347462266684, + -0.013726635836064816, + 0.04641583934426308, + -0.03951006755232811, + 0.02596268057823181, + -0.01187754888087511, + 0.015471946448087692, + -0.012773790396749973, + 0.024849455803632736, + 0.014462496154010296, + 0.00036498229019343853, + -0.02983066812157631, + -0.018377654254436493, + 0.012886999174952507, + 0.009075617417693138, + -0.003948176745325327, + -0.024962665513157845, + 0.038377974182367325, + 0.07985033839941025, + 0.001209925045259297, + -0.023660756647586823, + -0.033943939954042435, + 0.03130238875746727, + -0.001158037455752492, + -0.007575593423098326, + -0.012066232040524483, + 0.019811639562249184, + -0.012490767054259777, + 0.016547435894608498, + 0.00465101795271039, + -0.022811686620116234, + -0.03509490191936493, + -0.018377654254436493, + -0.02317018434405327, + -0.01794368401169777, + -0.028566496446728706, + 0.012971906922757626, + 0.05305745452642441, + -0.04852908104658127, + 0.008948257192969322, + 0.010566207580268383, + -0.02145317569375038, + -0.0014328060206025839, + -0.0402647964656353, + 0.0032618448603898287, + 0.013613426126539707, + 0.019924849271774292, + -0.03050992451608181, + -0.023264525458216667, + 0.020660709589719772, + -0.002202865667641163, + -0.027207983657717705, + -0.027094775810837746, + 0.0070425658486783504, + 0.012037929147481918, + 0.011773774400353432, + -0.05581221729516983, + -0.036132656037807465, + -0.028170263394713402, + 0.014188907109200954, + 0.013905883766710758, + 0.045736584812402725, + 0.009924687445163727, + 0.07147284597158432, + 0.01755688525736332, + -0.00023482099641114473, + -0.01268888358026743, + 0.038415711373090744, + 0.017349334433674812, + -0.0016710173804312944, + -0.044378072023391724, + 0.05230272561311722, + -0.056076373904943466, + -0.022887161001563072, + 0.033943939954042435, + 0.02022673934698105, + 0.0008585043833591044, + -0.04241577535867691, + -0.0013632294721901417, + 0.01904747635126114, + -0.028038186952471733, + -0.03277411311864853, + 0.013028510846197605, + 0.0046557351015508175, + 0.0001435754238627851, + -0.014679481275379658, + -0.0030189163517206907, + 0.05781225115060806, + -0.009396377019584179, + -0.0020141832064837217, + 0.03298166021704674, + -0.015358737669885159, + -0.04603847488760948, + 0.0141323022544384, + 0.03326468542218208, + -0.04034027084708214, + 0.0003924001648556441, + -0.02605702169239521, + 0.01821727305650711, + -0.0018349351594224572, + 0.013547387905418873, + 0.015443644486367702, + -0.021434307098388672, + 0.014594574458897114, + 0.007877484895288944, + 0.03262316435575485, + -0.01269831694662571, + 0.019792770966887474, + 0.011302068829536438, + -0.04400070756673813, + 0.009655815549194813, + -0.026226837188005447, + 0.050906479358673096, + -0.004653376527130604, + -0.0019740883726626635, + 0.05264235660433769, + 0.031698621809482574, + -0.0034882635809481144, + 0.014792690053582191, + 0.01569836586713791, + 0.03739682585000992, + 0.006528406869620085, + -0.03722701221704483, + -0.01492476835846901, + 0.004910456482321024, + 0.012934169732034206, + -0.024698510766029358, + 0.004625074099749327, + 0.03667983412742615, + -0.003551943926140666, + 0.002424567239359021, + 0.029321225360035896, + 0.012905867770314217, + 0.05147252604365349, + 0.007207662798464298, + 0.029415566474199295, + -0.028075922280550003, + 0.032321274280548096, + -0.006504821591079235, + 0.025490975007414818, + -0.012320952489972115, + -0.000669822096824646, + -0.05056684836745262, + -0.0156794972717762, + 0.012528503313660622, + 0.009212411940097809, + -0.01235868874937296, + 0.05856698006391525, + 0.01945314183831215, + 0.027415534481406212, + -0.0006362130516208708, + -0.013075681403279305, + -0.01599082350730896, + 0.011198293417692184, + -0.01371720153838396, + -0.008250132203102112, + -0.0034599611535668373, + 0.013311534188687801, + 0.05339708551764488, + -0.06192552298307419, + 0.00916524138301611, + -0.050868742167949677, + -0.03520811349153519, + -0.030943892896175385, + 0.000566341623198241, + -0.012717185541987419, + -0.006268968805670738, + 0.033830732107162476, + 0.03851005434989929, + -0.025057006627321243, + -0.03784966468811035, + -0.013905883766710758, + 5.759968553320505e-05, + 0.02447209134697914, + 0.08317114412784576, + 0.01935880072414875, + -0.015792706981301308, + 0.036755308508872986 + ] + } + }, + { + "type": "维修工作", + "properties": { + "名称": "管束芯体的维修工作", + "embedding": [ + -0.05324893817305565, + 0.02564760111272335, + -0.007221168838441372, + 0.013915594667196274, + 0.024498343467712402, + -0.021012261509895325, + -0.002827652730047703, + 0.03909391537308693, + -0.03357747942209244, + 0.0005629566730931401, + 0.0004932230804115534, + -0.0044509791769087315, + 0.013973058201372623, + 0.029880698770284653, + 0.013791091740131378, + -0.0620599128305912, + 0.015122315846383572, + 0.00609106570482254, + 0.003627344500273466, + -0.05803751200437546, + -0.011166953481733799, + 0.0008200432057492435, + 0.004204367753118277, + 0.005918676964938641, + -0.02024608850479126, + 0.03769565001130104, + -0.0017442379612475634, + -0.004850825294852257, + 0.017229288816452026, + -0.02398117631673813, + -0.06148528680205345, + -0.014720075763761997, + -0.0359526090323925, + -0.042560841888189316, + -0.02834835648536682, + -0.05995294079184532, + 0.018656283617019653, + -0.0304553285241127, + -0.03976431488990784, + 0.00966334156692028, + -0.009045615792274475, + -0.028118504211306572, + -0.0004025394737254828, + -0.0318344384431839, + 0.013704897835850716, + -0.023138387128710747, + -0.018608396872878075, + -0.028137657791376114, + -0.007484540808945894, + -0.022985152900218964, + -0.005937831476330757, + -0.007886780425906181, + -0.007302574813365936, + 0.017123939469456673, + 0.0019932438153773546, + 0.03794465586543083, + 0.02118464931845665, + -0.015438361093401909, + -0.022333906963467598, + 0.02187420427799225, + -0.02867397852241993, + 0.016999436542391777, + -0.003057504305616021, + 0.025072971358895302, + 0.020169472321867943, + 0.09377942234277725, + 0.015534132719039917, + 0.015495824627578259, + -0.00994107872247696, + -0.04731110855937004, + 0.018819093704223633, + 0.032600607722997665, + 0.015668213367462158, + -0.0005081873969174922, + -0.02528366819024086, + 0.056620094925165176, + 0.0031173613388091326, + -0.04999271035194397, + 0.05715641379356384, + 0.021050570532679558, + 0.019135139882564545, + -0.010400782339274883, + 0.04118173196911812, + 0.013388851657509804, + -0.000767368939705193, + -0.006613020319491625, + -0.013369697146117687, + 0.011224417015910149, + -0.01738252304494381, + -0.05010763555765152, + -0.0028851155657321215, + -0.06635047495365143, + -0.018081653863191605, + 0.001086407690308988, + -0.052367839962244034, + -0.0019130351720377803, + -0.02047594077885151, + -0.004685619380325079, + 0.026298847049474716, + 0.003284961450845003, + 0.05347878858447075, + 0.006589077413082123, + 0.011090336367487907, + -0.04072203114628792, + 0.08833960443735123, + -0.029057065024971962, + 0.0160321444272995, + 0.011368073523044586, + -0.019709769636392593, + 0.0156873669475317, + 0.03170035779476166, + 0.0400707833468914, + -0.035282209515571594, + -0.01557244174182415, + -0.029057065024971962, + -0.05608377605676651, + -0.031049111858010292, + -0.059416621923446655, + 0.07044949382543564, + -0.005181236658245325, + -0.027141636237502098, + -0.033175237476825714, + 0.00011028683366021141, + -0.03790634870529175, + 0.02446003444492817, + -0.03032124787569046, + 0.06489475071430206, + 0.0037350873462855816, + 0.0016544521786272526, + 0.040683720260858536, + -0.0010169732850044966, + 0.024517497047781944, + -0.004819699563086033, + 0.02949761413037777, + -0.03578022122383118, + -0.03338593617081642, + -0.025321977213025093, + 0.0013958691852167249, + -0.017028167843818665, + -0.023713016882538795, + 0.003124544396996498, + 0.04202452301979065, + -0.03041701950132847, + 0.00556432269513607, + -0.03078095056116581, + 0.009395181201398373, + -0.012842954136431217, + -0.026643624529242516, + 0.007613832131028175, + 0.046659860759973526, + 0.007680871989578009, + 0.038806602358818054, + 0.01375278364866972, + 0.007599466480314732, + 0.03478419780731201, + 0.006929066032171249, + -0.03861505910754204, + 0.018694590777158737, + -0.0416797436773777, + -0.020418478175997734, + 0.005492493975907564, + 0.03497574105858803, + -0.02775457315146923, + 0.014480646699666977, + 0.0200353916734457, + -0.02191251330077648, + 0.0007925089448690414, + 0.005047156475484371, + -0.03861505910754204, + 0.04577876254916191, + -0.006689637433737516, + 0.017593219876289368, + -0.04884345084428787, + 0.017114361748099327, + 0.01526597235351801, + 0.0044198534451425076, + 0.042675767093896866, + 0.02844412811100483, + 0.0311448834836483, + -0.01522766426205635, + 0.01393474917858839, + 0.04983947426080704, + 0.007063146214932203, + -0.02961253933608532, + 0.029114527627825737, + 0.047119565308094025, + 0.01563948206603527, + -0.021337883546948433, + -0.010228393599390984, + 0.0072403233498334885, + -0.01445191539824009, + -0.021720970049500465, + 0.041488200426101685, + 0.009289832785725594, + 0.010237970389425755, + -0.03533967211842537, + -0.01000811904668808, + -0.008734358474612236, + 0.05562407150864601, + 0.005085465032607317, + 0.056122083216905594, + 0.0006895546102896333, + 0.03338593617081642, + 0.019048945978283882, + -0.02281276509165764, + 0.02597322314977646, + 0.0050567337311804295, + -0.006689637433737516, + 0.008978575468063354, + -0.05704148858785629, + 0.006043179892003536, + -0.049916092306375504, + -0.003708750242367387, + -0.04424642026424408, + -0.024977199733257294, + 0.011799045838415623, + 0.029593385756015778, + -0.009524472989141941, + -0.006483728531748056, + -0.02997647039592266, + -0.024536650627851486, + 0.04731110855937004, + 0.030148860067129135, + -0.013791091740131378, + 0.015716098248958588, + -0.043288704007864, + 0.028041888028383255, + -0.0010672532953321934, + -0.02457495965063572, + -0.002997647039592266, + -0.07136890292167664, + 0.009452644735574722, + -0.03652723878622055, + 0.009366449899971485, + 0.05374694988131523, + 0.008662529289722443, + -0.023329930379986763, + 0.012411982752382755, + 0.054015111178159714, + -0.02832920104265213, + 0.0023260496091097593, + -0.03589514642953873, + -0.001483260653913021, + 0.005028002429753542, + -0.028118504211306572, + -0.021108033135533333, + 0.04386333376169205, + 0.0029880700167268515, + -0.011856508441269398, + -0.011703274212777615, + -0.0021464780438691378, + 0.0176315288990736, + -0.030608562752604485, + 0.0026456869672983885, + -0.008652952499687672, + 0.0004842445196118206, + 0.02503466233611107, + -0.024440879002213478, + 0.003998458851128817, + -0.0001640086411498487, + 0.01375278364866972, + 0.07163706421852112, + -0.00272230408154428, + 0.002827652730047703, + 0.0005177645361982286, + 0.028846368193626404, + -0.013312234543263912, + -0.020284397527575493, + -0.0035100243985652924, + 0.0304553285241127, + -0.04175636172294617, + -0.0035459387581795454, + -0.009265890344977379, + 0.043365322053432465, + 0.008174095302820206, + 0.027543876320123672, + 0.00028746406314894557, + 0.008810975588858128, + 0.042560841888189316, + -0.018579665571451187, + 0.002863567089661956, + 0.006742311641573906, + 0.018694590777158737, + -0.04623846709728241, + 0.02001623809337616, + 0.004022401757538319, + -0.0625196173787117, + -0.08810975402593613, + -0.024076947942376137, + -0.02365555427968502, + -0.024651577696204185, + -0.025590136647224426, + 0.08213361352682114, + -0.001715506543405354, + 0.0011127447942271829, + 0.08535153418779373, + -0.01685578003525734, + -0.1713160127401352, + 0.030646871775388718, + -0.032964542508125305, + 0.03643146902322769, + -0.0037973388098180294, + 0.019154295325279236, + -0.028118504211306572, + 0.042445916682481766, + -0.05593053996562958, + -0.01480626966804266, + -0.03591430187225342, + -0.0822102352976799, + -0.01019008457660675, + 0.0045539336279034615, + -0.01235452014952898, + -0.009462221525609493, + -0.07937539368867874, + 0.0017550121992826462, + 0.03591430187225342, + -0.033769022673368454, + -0.018349813297390938, + -0.013848555274307728, + 0.06148528680205345, + -0.061868369579315186, + -0.03679540008306503, + -0.04823051393032074, + 0.01369532011449337, + 0.00731694046407938, + -0.00843746680766344, + -0.005353625398129225, + -0.007676083594560623, + -0.02773541770875454, + -0.008111843839287758, + 0.06002955883741379, + -0.0031413042452186346, + -0.03495658561587334, + -0.04914991930127144, + 0.020169472321867943, + -0.0025044239591807127, + -0.018397700041532516, + 0.07332263886928558, + 0.05095042288303375, + 0.00675667729228735, + 0.044323038309812546, + 0.01298661157488823, + -0.028482435271143913, + 0.01843600906431675, + -0.015457515604794025, + -0.01944160833954811, + 0.012086359784007072, + -0.0316045843064785, + -0.007896358147263527, + -0.00048244878416880965, + -0.02070579305291176, + -0.027888651937246323, + -0.006857237312942743, + -0.0015945950290188193, + 0.03371156007051468, + -0.0005120781133882701, + 0.03286876901984215, + -0.04554891213774681, + -0.06742312014102936, + -0.02024608850479126, + -0.04405487701296806, + -0.0620599128305912, + -0.022104056552052498, + -0.012210862711071968, + -0.028252584859728813, + -0.003952967468649149, + -0.04175636172294617, + 0.006905123125761747, + -0.004618579056113958, + 0.006895545870065689, + -0.0025187898427248, + -0.02482396550476551, + -0.00670400308445096, + -0.016798315569758415, + -0.005602631252259016, + -0.03497574105858803, + -0.12932980060577393, + 0.003383127273991704, + 0.03514812886714935, + -0.003347212914377451, + -0.0648181289434433, + -0.04907330125570297, + 0.024651577696204185, + -0.0002918037062045187, + 0.020648328587412834, + -0.03327101096510887, + 0.22479480504989624, + -0.010410359129309654, + 0.004240281879901886, + 0.012660988606512547, + 0.04708125442266464, + -0.012967457063496113, + -0.00895463302731514, + -0.017468716949224472, + 0.032236676663160324, + -0.03784888610243797, + -0.0033927045296877623, + 0.010094312950968742, + 0.03719763830304146, + -0.014059252105653286, + 0.012957880273461342, + 0.027697110548615456, + -0.006598654668778181, + 0.01662592776119709, + 0.07899230718612671, + -0.016271572560071945, + -0.00037201232044026256, + -0.020744100213050842, + -0.03957277163863182, + -0.013273926451802254, + -0.0668867975473404, + -0.07041118294000626, + 0.01193312555551529, + 0.06608231365680695, + -0.014155023731291294, + 0.03758072480559349, + 0.013503777794539928, + 0.05033748596906662, + 0.046391699463129044, + -0.059301696717739105, + -0.06742312014102936, + 0.01777518540620804, + -0.032255832105875015, + 0.01879994012415409, + 0.041488200426101685, + -0.013733629137277603, + -0.03009139746427536, + -0.02903790958225727, + 0.027179943397641182, + 0.012823800556361675, + -0.007451020646840334, + -0.04141158610582352, + 0.011799045838415623, + 0.007647352293133736, + -0.022506296634674072, + -4.4818058086093515e-05, + -0.00023927903384901583, + 0.00842789001762867, + -0.0219891294836998, + -0.008365638554096222, + 0.006014448590576649, + -0.029210299253463745, + -0.03150881454348564, + -0.02120380476117134, + 0.02304261550307274, + -0.01071682758629322, + 0.04880514368414879, + -0.0038452246226370335, + -0.04554891213774681, + 0.01999708265066147, + -0.008499718271195889, + -0.00962024461477995, + -0.05217629671096802, + 0.030876722186803818, + -0.007623409386724234, + 0.00802564900368452, + 0.03181528300046921, + -0.024421725422143936, + -0.031336426734924316, + -0.011253148317337036, + 0.009122232906520367, + 0.013369697146117687, + 0.012565216980874538, + 0.060489263385534286, + -0.014317834749817848, + 0.01724844239652157, + -0.0611405074596405, + -0.06075742095708847, + -0.008504507131874561, + -0.045472294092178345, + 0.030053088441491127, + -0.010343318805098534, + -0.0010480990167707205, + -0.017411254346370697, + -0.04807727783918381, + 0.004941808059811592, + -0.01480626966804266, + 0.016597196459770203, + -0.0359526090323925, + 0.0016736064571887255, + 0.00823155790567398, + -0.01140638254582882, + -0.007101454772055149, + -0.04175636172294617, + -0.022736147046089172, + -0.009083923883736134, + -0.04884345084428787, + -0.04566383734345436, + -0.0024685095995664597, + -0.013704897835850716, + -0.014068828895688057, + -0.017966728657484055, + -0.016137493774294853, + 0.03217921406030655, + -0.0050375796854496, + 0.03139388933777809, + 0.0016221293481066823, + 0.024421725422143936, + -0.02225729078054428, + -0.04309716448187828, + 0.015524555929005146, + -0.0005204580957069993, + -0.07431866228580475, + 0.06723157316446304, + 0.03162373974919319, + 0.006196414120495319, + -0.024096103385090828, + 0.03468842804431915, + -0.018972327932715416, + 0.05301908776164055, + -0.024440879002213478, + -0.03742749243974686, + -0.015026544220745564, + -0.02880805917084217, + 0.000912821851670742, + 0.06512460112571716, + -0.008676895871758461, + -0.008341695182025433, + 0.024632422253489494, + -0.03185359016060829, + 0.024766502901911736, + 0.017028167843818665, + 0.018637128174304962, + 0.022889381274580956, + 0.023923713713884354, + -0.025896606966853142, + -0.035186439752578735, + -0.03750411048531532, + -0.018426431342959404, + 0.009749535471200943, + 0.0077670663595199585, + 0.010898793116211891, + -0.011741582304239273, + 0.029574230313301086, + -0.021625198423862457, + 0.04198621213436127, + -0.036010075360536575, + 0.040109094232320786, + 0.024766502901911736, + -0.02085902728140354, + 0.02961253933608532, + -0.11331680417060852, + -0.017487870529294014, + -0.02972746454179287, + -0.020207781344652176, + -0.030646871775388718, + 0.009682496078312397, + 0.0156873669475317, + 0.006416688673198223, + 0.024153565987944603, + 0.08757343143224716, + 0.034822508692741394, + -0.015313858166337013, + 0.02940184250473976, + 0.052865851670503616, + -0.008212403394281864, + -0.007178071886301041, + -0.00210098666138947, + -0.04754095897078514, + 0.03656554967164993, + 0.03698694333434105, + -0.021701816469430923, + -0.03210259601473808, + 0.025781679898500443, + -0.007168494630604982, + 0.02377047948539257, + 0.02390456013381481, + 0.031202346086502075, + 0.009988964535295963, + -0.01967146061360836, + -0.0200353916734457, + -0.007901146076619625, + 0.01708563044667244, + -0.006047968287020922, + 0.015926795080304146, + -0.0031796128023415804, + -0.03934292122721672, + 0.08044803887605667, + -0.039496153593063354, + 0.009931501932442188, + -0.00994107872247696, + 0.022755302488803864, + 0.03673793748021126, + -0.008858861401677132, + 0.011463845148682594, + -0.03744664415717125, + -0.0008487746817991138, + 0.008399157784879208, + 0.029344379901885986, + 0.031911056488752365, + -0.000900850398465991, + -0.028022732585668564, + 0.004489287734031677, + 0.015237241052091122, + -0.009045615792274475, + 0.0005812130984850228, + -0.010103890672326088, + 0.005947408266365528, + -0.00046329450560733676, + 0.0018280380172654986, + -0.011875662952661514, + -0.04413149505853653, + 0.024306800216436386, + 0.00825550127774477, + -0.01802419126033783, + -0.018005037680268288, + 0.07290124148130417, + -0.0022087295074015856, + 0.027333177626132965, + 0.018522202968597412, + 0.006402323022484779, + 0.009806999005377293, + -0.02926776185631752, + -0.028769750148057938, + 0.024134410545229912, + 0.0133409658446908, + 0.012756760232150555, + 0.0396110825240612, + 0.013609126210212708, + -0.022506296634674072, + 0.05899522826075554, + -0.02763964608311653, + 0.02095479890704155, + 0.0373317189514637, + -0.038691673427820206, + 0.025551829487085342, + -0.02493889071047306, + 0.013245194219052792, + 0.05232953280210495, + 0.042216066271066666, + -0.03520559147000313, + 0.03702525049448013, + -0.059646472334861755, + 0.02434510923922062, + 0.0014665006892755628, + 0.04508920758962631, + -0.005521225277334452, + 0.011176531203091145, + 0.06968332082033157, + 0.01930752955377102, + -0.01001769583672285, + 0.016472693532705307, + -0.014384875074028969, + -0.011569193564355373, + -0.018761631101369858, + -0.00934250745922327, + -0.0007218774990178645, + 0.00937602762132883, + 0.006220357026904821, + -0.020073700696229935, + -0.03520559147000313, + 0.010056004859507084, + 0.007805374916642904, + 0.06470320373773575, + -0.012957880273461342, + -0.04355686530470848, + -0.0037662130780518055, + -0.008557180874049664, + -0.03639315813779831, + -0.011368073523044586, + 0.020782409235835075, + -0.014538109302520752, + -0.010554016567766666, + 0.028501590713858604, + 0.008514083921909332, + 0.03895983472466469, + -0.006569922901690006, + -0.04482105001807213, + -0.007819741033017635, + -0.009912347421050072, + 0.04225437343120575, + 0.018215734511613846, + 0.032064288854599, + -0.01879994012415409, + -0.027103327214717865, + -0.025130433961749077, + 0.026892630383372307, + 0.004194790497422218, + -0.028827212750911713, + 0.010755136609077454, + -0.021108033135533333, + -0.007039203308522701, + -0.027467258274555206, + 0.03719763830304146, + -0.027352333068847656, + 0.016271572560071945, + -0.015486246906220913, + 0.057079799473285675, + -0.011109490878880024, + -0.00837042648345232, + 0.006943431682884693, + -0.01557244174182415, + -0.015773560851812363, + -0.012086359784007072, + -0.014001789502799511, + 0.011722427792847157, + 0.033194392919540405, + -0.06236638128757477, + -0.01605129800736904, + 0.013800669461488724, + 0.05627531558275223, + 0.00124263484030962, + 0.01152130775153637, + -0.013484623283147812, + -0.004065499175339937, + 0.00842789001762867, + -0.027888651937246323, + -0.018426431342959404, + -0.02390456013381481, + 0.0058468482457101345, + -0.03556952625513077, + 0.00843746680766344, + 0.001856769435107708, + 0.03187274560332298, + -0.051908139139413834, + -0.028750596567988396, + -0.029248608276247978, + 0.0035411501303315163, + 0.009462221525609493, + -0.001306083402596414, + 0.054359886795282364, + 0.009644187055528164, + -0.023732170462608337, + -0.027543876320123672, + 0.030857568606734276, + -0.02294684574007988, + -0.04926484450697899, + 0.006225145887583494, + 0.033998873084783554, + 4.0889928641263396e-05, + 0.03578022122383118, + -0.026854321360588074, + -0.04585538059473038, + -0.014767960645258427, + -1.511393566033803e-05, + 0.015438361093401909, + -0.021835895255208015, + -0.015878910198807716, + 0.0052961623296141624, + -0.05750119313597679, + -0.008672107011079788, + 0.04692802205681801, + 0.0018459950806573033, + 0.025149589404463768, + -0.0009074346744455397, + 0.01281422283500433, + 0.00497053936123848, + 0.022563759237527847, + -0.007714392151683569, + 0.031566277146339417, + 0.007393557578325272, + -0.016587618738412857, + 0.006119797006249428, + -0.01792841963469982, + 0.009720804169774055, + 0.004826882388442755, + -0.03495658561587334, + -0.011674542911350727, + 0.0025403383187949657, + 0.024057794362306595, + -0.006646540015935898, + 0.0135133545845747, + -0.016520578414201736, + 0.019163871183991432, + 0.05654347687959671, + -0.004122961778193712, + -0.02354062721133232, + -0.018005037680268288, + -0.02468988485634327, + -0.01252690888941288, + 0.027084171772003174, + -0.018148694187402725, + -0.031317271292209625, + -0.038327742367982864, + 0.03913222253322601, + 0.03566529601812363, + -0.011885239742696285, + -0.0010103890672326088, + -0.015064852312207222, + 0.005569111090153456, + -0.13476961851119995, + 0.018876556307077408, + 0.004312110599130392, + -0.0031915842555463314, + -0.023962022736668587, + -0.011732005514204502, + 0.006167682819068432, + 0.03712102398276329, + 0.004666464868932962, + 0.0005473938072100282, + 0.02938268706202507, + -0.003426224458962679, + 0.015380898490548134, + -0.01859881915152073, + -0.028999602422118187, + 3.2004882086766884e-05, + 0.026375463232398033, + 0.011607502587139606, + 0.010170930065214634, + 0.10956256091594696, + -0.03702525049448013, + -0.035990919917821884, + 0.02539859525859356, + 0.012948303483426571, + 0.04623846709728241, + -0.021165495738387108, + 0.025207052007317543, + 0.03277299925684929, + 0.009950656443834305, + 0.01767941378057003, + -0.007259477395564318, + -0.056351933628320694, + 0.050988733768463135, + -0.012977034784853458, + -0.016386499628424644, + 0.0003211337316315621, + -0.003505236003547907, + 0.028405819088220596, + 0.048038970679044724, + 0.015131892636418343, + 0.03053194470703602, + -0.003064687130972743, + 0.0014114320510998368, + 0.007848472334444523, + -0.02961253933608532, + 0.06014448404312134, + 0.00040613088640384376, + 0.00962982140481472, + -0.0405304878950119, + 0.005990505684167147, + 0.017210133373737335, + 0.032140906900167465, + 0.002266192575916648, + -0.00409901887178421, + -0.0013384063495323062, + 0.01692281849682331, + -0.050643954426050186, + 0.014949927106499672, + -0.03487997129559517, + 0.06060418859124184, + -0.023483164608478546, + 0.004278590437024832, + -0.009672918356955051, + -0.0430588535964489, + -0.01790926605463028, + 0.002387103857472539, + -0.019527804106473923, + -0.010439090430736542, + 0.008423101156949997, + -0.029095374047756195, + 0.028022732585668564, + 0.023119233548641205, + -0.006967374589294195, + -0.018646705895662308, + 0.027543876320123672, + 0.04681309685111046, + -0.003474110271781683, + -0.044552888721227646, + -0.007714392151683569, + -0.012105514295399189, + 0.00013572613534051925, + 0.019499070942401886, + 0.010688096284866333, + 0.03850013017654419, + 0.03300284966826439, + -0.004486893303692341, + -0.0050375796854496, + -0.01825404353439808, + 0.008485352620482445, + 0.03277299925684929, + -0.03742749243974686, + -0.008767878636717796, + 0.02212321013212204, + -0.00626345444470644, + -0.03509066626429558, + 0.012670565396547318, + -0.027716264128684998, + 0.007518060505390167, + 0.017066476866602898, + -0.03796381130814552, + -0.003960150294005871, + -0.037868041545152664, + 0.008399157784879208, + 0.025685908272862434, + -0.054972823709249496, + 0.010372050106525421, + 0.03430534154176712, + -0.024268491193652153, + 0.023578936234116554, + -0.03614415228366852, + 0.006742311641573906, + -0.004233099054545164, + 0.007565946318209171, + -0.023138387128710747, + -0.013494200073182583, + 0.0396110825240612, + 0.01680789329111576, + -0.049916092306375504, + -0.053325556218624115, + 0.004257041960954666, + -0.005324894096702337, + 0.014949927106499672, + -0.051908139139413834, + -0.04731110855937004, + -0.01795715093612671, + -0.030742643401026726, + 0.024498343467712402, + 0.05738626793026924, + 0.010984987951815128, + 0.0421394482254982, + 0.03861505910754204, + -0.023598091676831245, + -0.022525450214743614, + 0.05669671297073364, + 0.04428472742438316, + 0.024421725422143936, + -0.029670001938939095, + 0.058382291346788406, + -0.05206137150526047, + -0.04474443197250366, + -0.011329765431582928, + 0.013724052347242832, + 0.00910307839512825, + -0.03838520497083664, + -0.023578936234116554, + 0.0160321444272995, + -0.034228723496198654, + -0.019451186060905457, + -0.01194270234555006, + 0.024900583550333977, + 0.043595172464847565, + -0.0013898834586143494, + 0.03034040331840515, + 0.0026337155140936375, + -0.014940349385142326, + 0.005693614017218351, + 0.04903499409556389, + -0.01932668313384056, + -0.05194644629955292, + 0.0419095978140831, + 0.03750411048531532, + -0.050758879631757736, + -0.028520744293928146, + 0.0403006374835968, + 0.0018663465743884444, + 0.0019908493850380182, + 0.02635630965232849, + -0.0022470380645245314, + -0.017190979793667793, + 0.03273468837141991, + -0.011511730961501598, + 0.01767941378057003, + 0.002806104253977537, + 0.03147050738334656, + 0.008054381236433983, + -0.05072057247161865, + 0.007087089121341705, + -0.027333177626132965, + 0.038327742367982864, + 4.212448402540758e-05, + 0.0025714640505611897, + 0.032715536653995514, + 0.028942139819264412, + 0.0428290031850338, + 0.026605315506458282, + 0.014097561128437519, + 0.03357747942209244, + 0.01960442028939724, + -0.028252584859728813, + -0.009553204290568829, + 0.004999270662665367, + -0.010659364983439445, + -0.04788573458790779, + -0.001428192132152617, + 0.019345836713910103, + 0.0257625263184309, + 0.026011532172560692, + 0.057539500296115875, + -0.00517644826322794, + 0.0792221650481224, + 0.01873289979994297, + 0.00872478075325489, + -0.023598091676831245, + 0.00740313483402133, + 0.003016801318153739, + 0.002147675259038806, + -0.012402405962347984, + 0.011329765431582928, + -0.04405487701296806, + -0.0005482916603796184, + 0.00311496714130044, + 0.007934666238725185, + -0.024843119084835052, + -0.00920842681080103, + 0.0030144071206450462, + 0.01960442028939724, + -0.0011911577312275767, + 0.04528075084090233, + -0.023215005174279213, + -0.00822198111563921, + -0.0008822946692816913, + 0.009443067014217377, + -0.015783138573169708, + 0.015467092394828796, + 0.05206137150526047, + -0.04574045538902283, + 0.003945784643292427, + -0.0155149782076478, + -0.06868729740381241, + -0.015016966499388218, + 0.006277820095419884, + 0.02739064022898674, + -0.011799045838415623, + 0.024728193879127502, + 0.023962022736668587, + -0.04179466888308525, + -0.024498343467712402, + -0.03957277163863182, + 0.03807873651385307, + 0.02424933761358261, + 0.052865851670503616, + -0.0012486205669119954, + -0.019843848422169685, + 0.04367179051041603 + ] + } + }, + { + "type": "维修工作", + "properties": { + "名称": "喷油器组件的维修工作", + "knowledge_source": "[]", + "embedding": [ + -0.060798175632953644, + -0.011413577012717724, + -0.04502331465482712, + 0.026650238782167435, + 0.0024613426066935062, + -0.0460997149348259, + 0.02091561257839203, + -0.003922837320715189, + -0.019560828804969788, + 0.0031433734111487865, + -0.006017646286636591, + -0.006073322147130966, + 0.03618939220905304, + 0.033646855503320694, + 0.010513481684029102, + -0.025722306221723557, + 0.017667846754193306, + 0.02089705318212509, + 0.012044571340084076, + -0.03145693242549896, + 0.007943106815218925, + 0.026112036779522896, + 0.012842593714594841, + -0.000810781551990658, + -0.0023697090800851583, + 0.0015461684670299292, + -0.017825594171881676, + 0.005845978390425444, + 0.02418193593621254, + -0.006940939463675022, + -0.04706476628780365, + -0.02720699831843376, + -0.077278271317482, + -0.012536375783383846, + -0.050219740718603134, + -0.056306980550289154, + 0.010309336706995964, + 0.003628218313679099, + -0.03845354914665222, + 0.03852778300642967, + -0.007711124140769243, + -0.037377145141363144, + 0.006068682298064232, + -0.020099030807614326, + -0.024367522448301315, + -0.0013605818385258317, + -0.032273512333631516, + -0.04387267678976059, + 0.009265411645174026, + -0.012183761224150658, + -0.012953946366906166, + -0.016749192029237747, + 0.018521543592214584, + -0.01635018177330494, + -0.010355733335018158, + 0.04190545901656151, + 0.027262674644589424, + 0.036449212580919266, + -0.045208901166915894, + 0.0045886291190981865, + -0.04962586238980293, + 0.030974406749010086, + 0.022530214861035347, + -0.00333591946400702, + 0.017055410891771317, + 0.07156220078468323, + -0.017909109592437744, + -0.008462749421596527, + -0.00637026084586978, + -0.02113831602036953, + -0.006936300080269575, + 0.004572390113025904, + -0.0075951325707137585, + 0.010086632333695889, + -0.026817265897989273, + 0.0319208987057209, + 0.07033732533454895, + -0.03208792582154274, + -0.010216543450951576, + -0.006811028812080622, + -0.015162426978349686, + -0.0019811370875686407, + 0.02577798068523407, + 0.02418193593621254, + -0.020395969972014427, + 0.044058263301849365, + -0.0023615898098796606, + -0.023198327049613, + -0.01200745441019535, + -0.04691629856824875, + 0.0034658301156014204, + 0.0019034227589145303, + 0.014030348509550095, + 0.03312721103429794, + -0.045951247215270996, + -0.007590492721647024, + -0.016229549422860146, + -0.0013455030275508761, + 0.032421983778476715, + -0.014549991115927696, + 0.04988568276166916, + 0.006305305287241936, + 0.031048640608787537, + -0.04524601623415947, + 0.06521514058113098, + -0.03598524630069733, + 0.03735858574509621, + 0.029526831582188606, + 0.0064444951713085175, + -0.019282449036836624, + -0.015607834793627262, + 0.028227724134922028, + -0.006727514788508415, + 0.017064688727259636, + -0.005586157087236643, + -0.03255189210176468, + 0.006574405822902918, + -0.039121657609939575, + 0.05214983969926834, + -0.007418825291097164, + -0.006695037242025137, + -0.04539448767900467, + -0.01817820966243744, + -0.006036204751580954, + 0.015329455025494099, + 0.009613387286663055, + 0.05177866667509079, + -0.005794942378997803, + 0.03201369196176529, + 0.050145503133535385, + 0.006412017624825239, + 0.03093728981912136, + -0.010448526591062546, + 0.03990112245082855, + -0.05270659923553467, + -0.004140901379287243, + 0.012796197086572647, + -0.009715459309518337, + 0.016313062980771065, + -0.03359117731451988, + 0.004908766131848097, + 0.015412968583405018, + -0.021342461928725243, + 0.0008983552106656134, + -0.005460886284708977, + -0.004136261530220509, + 0.017194600775837898, + -0.023532383143901825, + 0.017918387427926064, + 0.009084464982151985, + 0.001953299157321453, + -0.01345502957701683, + 0.06261692196130753, + -0.00843491218984127, + 0.06759064644575119, + -0.003154972568154335, + -0.059202130883932114, + 0.04494908079504967, + 0.0097340177744627, + 0.007446662988513708, + 0.016712075099349022, + 0.047250352799892426, + -0.009529872797429562, + 0.0013733409577980638, + 0.02089705318212509, + -0.005303137470036745, + 0.029137099161744118, + -0.010235101915895939, + -0.01763072796165943, + -0.013816923834383488, + 0.010392850264906883, + 0.011330063454806805, + -0.0011697756126523018, + 0.008875680156052113, + -0.0006356341764330864, + -0.0011372979497537017, + 0.06959497928619385, + 0.015644952654838562, + -0.013427191413939, + 0.0033451986964792013, + -0.019505154341459274, + 0.036393534392118454, + 0.004303289577364922, + -0.04120022803544998, + 0.018994789570569992, + 0.036374978721141815, + 0.053411830216646194, + -0.020173264667391777, + 0.01596044935286045, + -0.0010224662255495787, + -0.016062522307038307, + -0.04038364812731743, + 0.009149420075118542, + 0.031586840748786926, + 0.018502986058592796, + -0.022697243839502335, + 0.06269115954637527, + 0.03071458451449871, + 0.01493972260504961, + -0.00022893848654348403, + 0.01171051524579525, + -0.012861153110861778, + 0.04350150376558304, + -0.022548774257302284, + -0.05229830741882324, + 0.02113831602036953, + 0.04190545901656151, + -0.029099982231855392, + 0.030918730422854424, + -0.04554295539855957, + 0.03930724412202835, + -0.03210648521780968, + -0.03255189210176468, + -0.02098984643816948, + -0.06209728121757507, + 0.01915253885090351, + 0.007168283220380545, + -0.02304985746741295, + -0.02325400337576866, + -0.015765583142638206, + -0.03594812750816345, + 0.025907892733812332, + 0.016749192029237747, + -0.010949610732495785, + 0.06476972997188568, + -0.021546605974435806, + 0.05073938146233559, + 0.011951778084039688, + -0.021732192486524582, + -0.016749192029237747, + 6.299795495579019e-05, + -0.005924852564930916, + -0.034185055643320084, + -0.020711466670036316, + 0.023513823747634888, + -0.0058877356350421906, + 0.03323856368660927, + 0.009641224518418312, + 0.00450511509552598, + 0.052261192351579666, + -0.03830507770180702, + -0.028450429439544678, + -0.010513481684029102, + 0.010105191729962826, + 0.023476706817746162, + 0.03262612596154213, + 0.04673071205615997, + 0.041460052132606506, + -0.03203225135803223, + 0.01854938268661499, + -0.01854010298848152, + 0.007887431420385838, + -0.039567068219184875, + -0.008574102073907852, + -0.007423464674502611, + -0.006866704672574997, + 0.01748226024210453, + -0.009808252565562725, + -0.011070242151618004, + -0.03270036354660988, + -0.0465451255440712, + 0.09643080830574036, + 0.0033660773187875748, + 0.01060627494007349, + -0.014494314789772034, + 0.011886822991073132, + -0.01861433871090412, + 0.016238829120993614, + -0.04157140105962753, + 0.06929804384708405, + -0.02980521135032177, + -0.025870773941278458, + 0.0004338087164796889, + -0.0023198327980935574, + 0.04264780506491661, + 0.027800874784588814, + 0.010745464824140072, + -0.012295113876461983, + 0.08893311023712158, + -0.04090328887104988, + 0.06335926800966263, + -0.028487546369433403, + 0.010968169197440147, + -0.04465214163064957, + -0.004210496321320534, + 0.011877543292939663, + -0.07531104981899261, + -0.0364677719771862, + -0.01785343326628208, + -0.0483267568051815, + 0.01345502957701683, + -0.03334991633892059, + 0.0950203463435173, + -0.015533600002527237, + -0.03184666484594345, + 0.06183746084570885, + -0.016025405377149582, + -0.1454256772994995, + 0.014652063138782978, + -0.051667314022779465, + 0.02523978054523468, + -0.004152500536292791, + -0.00011396178160794079, + -0.04791846498847008, + 0.03095584735274315, + -0.03708020597696304, + -0.0469905324280262, + -0.02501707524061203, + -0.08351397514343262, + -0.04331591725349426, + -0.023291120305657387, + 0.022233277559280396, + 0.0061057996936142445, + -0.03550272062420845, + 0.040717702358961105, + 0.00843955110758543, + -0.025276897475123405, + -0.03420361503958702, + 0.030974406749010086, + 0.024961400777101517, + -0.004964441992342472, + -0.0556388683617115, + -0.04880927875638008, + 0.014132420532405376, + -0.026446092873811722, + -0.04120022803544998, + -0.011886822991073132, + -0.02464590221643448, + 0.008801445364952087, + 0.007641529198735952, + 0.056158509105443954, + -0.04706476628780365, + -0.03808237239718437, + -0.0032199278939515352, + -0.05589868873357773, + -0.015375851653516293, + -0.016006845980882645, + 0.02791222743690014, + 0.03370252996683121, + 0.03990112245082855, + 0.0272255577147007, + -0.02030317671597004, + -0.09331294894218445, + 0.003549344139173627, + -0.02364373579621315, + 0.02698429487645626, + 0.020618673413991928, + -0.03216215968132019, + -0.008597300387918949, + 0.002695645671337843, + -0.0174173042178154, + -0.041088879108428955, + 0.014921164140105247, + -0.036690473556518555, + -0.0022513975854963064, + -0.01770496368408203, + 0.043761324137449265, + -0.0540057048201561, + -0.053486064076423645, + -0.005813500843942165, + -0.03032485395669937, + -0.03019494190812111, + 0.013482867740094662, + -0.013306560926139355, + -0.054562464356422424, + 0.04494908079504967, + -0.05883095785975456, + -0.005386651493608952, + -0.02234462834894657, + 0.022177601233124733, + -0.004727819003164768, + -0.00907982513308525, + 0.014466476626694202, + -0.0055768778547644615, + -0.017380187287926674, + -0.035539835691452026, + -0.12152212113142014, + -0.0064398557879030704, + 0.004287051036953926, + 0.019560828804969788, + -0.061243582516908646, + -0.030361970886588097, + -0.0714508444070816, + -0.015515041537582874, + 0.039047423750162125, + -0.007915269583463669, + 0.216913640499115, + -0.024998517706990242, + 0.0024242252111434937, + 0.023309679701924324, + 0.028803043067455292, + -0.040866173803806305, + 0.009223654866218567, + -0.025351131334900856, + 0.0392330102622509, + -0.008281802758574486, + -0.012267275713384151, + -0.009237573482096195, + 0.03140125423669815, + -0.012016733177006245, + 0.028301959857344627, + -0.009386043064296246, + -0.00575782498344779, + 0.004978361073881388, + 0.10103335231542587, + 0.013204487971961498, + -0.0024961400777101517, + 0.022177601233124733, + -0.02160228230059147, + -0.012063129805028439, + -0.03305297717452049, + -0.06877840310335159, + -0.02639041654765606, + 0.028951512649655342, + -0.02403346635401249, + 0.029860887676477432, + -0.02227039448916912, + 0.02705852873623371, + 0.04179410636425018, + -0.01075474452227354, + -0.06406450271606445, + -0.035873893648386, + -0.015570716932415962, + 0.026928618550300598, + 0.07163643836975098, + 0.003437992185354233, + -0.05322624370455742, + -0.0401238277554512, + 0.008787526749074459, + -0.004551511723548174, + 0.008332839235663414, + -0.04364997148513794, + 0.008448830805718899, + -0.003257045056670904, + 0.009919604286551476, + -0.01034645363688469, + 0.009808252565562725, + -0.0066115232184529305, + -0.010587716475129128, + -0.004871648736298084, + -0.036152273416519165, + -0.021026963368058205, + 0.0066068838350474834, + -0.04301897808909416, + 0.008838562294840813, + 0.0047834948636591434, + 0.03399946913123131, + -0.028877276927232742, + -0.03284883126616478, + 0.03255189210176468, + 0.010049515403807163, + 0.010782582685351372, + -0.05229830741882324, + -0.004964441992342472, + -0.008963833563029766, + 0.0031735312659293413, + -0.006203232798725367, + 0.023365356028079987, + 0.006045483984053135, + 0.03115999326109886, + 0.020488763228058815, + -0.016368739306926727, + 0.0033637573942542076, + 0.08804228901863098, + 0.0009998478926718235, + 0.025072751566767693, + -0.06610595434904099, + -0.04272203892469406, + -0.030825937166810036, + -0.028914395719766617, + 0.03496452048420906, + -0.02561095356941223, + -0.04532025381922722, + -0.030547557398676872, + -0.015041795559227467, + 0.00554903969168663, + -0.008193649351596832, + -0.0049273245967924595, + 0.0012492298847064376, + 0.009752577170729637, + -0.018762806430459023, + -0.029768094420433044, + -0.02312409318983555, + -0.011608443222939968, + -0.011664118617773056, + 0.01846586912870407, + 0.039344362914562225, + -0.047027647495269775, + -0.006982696708291769, + -0.00962266605347395, + 0.04513466730713844, + -0.007066210266202688, + 0.015542879700660706, + 0.013037459924817085, + -0.006091880612075329, + -0.017519377171993256, + 0.026019243523478508, + 0.049143336713314056, + 0.016832705587148666, + -0.040791939944028854, + 0.021193992346525192, + 0.007400266360491514, + 0.021880662068724632, + 0.06644000858068466, + 0.00629138620570302, + 0.029675301164388657, + -0.0616147555410862, + 0.0193195678293705, + 0.029619624838232994, + -0.023291120305657387, + -0.032663244754076004, + -0.030844496563076973, + -0.006337782833725214, + -0.028153490275144577, + 0.0012480700388550758, + 0.04576566070318222, + -0.006152196321636438, + -0.007970944978296757, + 0.018076136708259583, + -0.014132420532405376, + 0.0541541762650013, + -0.022233277559280396, + 0.010866096243262291, + 0.027114205062389374, + 0.07401194423437119, + 0.014086023904383183, + -0.01026294007897377, + -0.033108651638031006, + -0.010912492871284485, + -0.00314569310285151, + -0.0059341322630643845, + -0.012916828505694866, + -0.005637193564325571, + -0.010652671568095684, + -0.040866173803806305, + 0.04791846498847008, + -0.029749535024166107, + 0.06536360830068588, + 0.023291120305657387, + -0.046842060983181, + 0.017194600775837898, + -0.010949610732495785, + 0.0012353109195828438, + -0.00771576352417469, + 0.009418521076440811, + -0.021175432950258255, + 0.004370565060526133, + 0.02076714299619198, + 0.05081361532211304, + 0.018289560452103615, + 0.0729355439543724, + 0.061540521681308746, + -0.011849705129861832, + 0.01436440460383892, + 0.029526831582188606, + 0.0033660773187875748, + -0.028394753113389015, + -0.023513823747634888, + -0.03860201686620712, + 0.034556228667497635, + 0.007757520768791437, + 0.016897661611437798, + -0.03041764721274376, + 0.01930100843310356, + -0.007270355708897114, + 0.049143336713314056, + 0.01470773946493864, + 0.07453158497810364, + -0.0346861407160759, + -0.013742689043283463, + 0.005279939156025648, + -0.02980521135032177, + -0.003152652643620968, + -0.009761855937540531, + 0.016470812261104584, + 0.008550903759896755, + -0.060167182236909866, + 0.06707100570201874, + -0.024831488728523254, + -0.007613691035658121, + 0.01983920857310295, + 0.003083057701587677, + 0.06142916902899742, + -0.008147252723574638, + 0.023476706817746162, + -0.009061266668140888, + -0.01687910221517086, + 0.007210039999336004, + 0.0383421964943409, + 0.046804945915937424, + -0.010485643520951271, + -0.03238486498594284, + -0.022548774257302284, + -0.003034341149032116, + -0.01749153807759285, + -0.007966305129230022, + 0.0016030044062063098, + -0.010188705287873745, + -0.007994143292307854, + 0.014058186672627926, + 0.0015415288507938385, + -0.0038230842910706997, + 0.03134557977318764, + 0.03930724412202835, + -0.0052428217604756355, + -0.025258338078856468, + 0.02562951110303402, + 0.022771477699279785, + 0.05779167264699936, + -0.01557999663054943, + 0.0462481863796711, + -0.018809203058481216, + -0.02462734468281269, + -0.02180642820894718, + 0.005279939156025648, + -0.017445141449570656, + 0.014178818091750145, + 0.018577219918370247, + -0.024311846122145653, + -0.02629762329161167, + 0.05875672399997711, + 0.01854010298848152, + 0.009335006587207317, + 0.023383913561701775, + -0.026279065757989883, + -0.005785662680864334, + -0.001687678275629878, + -0.02312409318983555, + 0.04691629856824875, + 0.03717299923300743, + -0.025258338078856468, + 0.044429436326026917, + -0.07597915828227997, + 0.029471155256032944, + 0.015505761839449406, + 0.05935060232877731, + -0.02683582529425621, + 0.015635672956705093, + 0.045580074191093445, + -0.016442975029349327, + -0.02160228230059147, + -0.039047423750162125, + 0.001569366897456348, + 0.0006669519352726638, + -0.04290762543678284, + -0.0197649747133255, + 0.0008449991000816226, + 0.04780711233615875, + -0.004658224061131477, + -0.0008090416667982936, + -0.01517170574516058, + -0.0025170184671878815, + 0.012081689201295376, + 0.00016760791186243296, + -0.03474181517958641, + -0.03179098665714264, + -0.0392330102622509, + -0.03726579248905182, + -0.029155658558011055, + -0.014531432650983334, + 0.03815660998225212, + -0.021156873553991318, + -0.013974672183394432, + 0.029025746509432793, + 0.06766488403081894, + 0.014911884441971779, + -0.006718235556036234, + -0.05753185227513313, + -0.01686982437968254, + -0.019449478015303612, + 0.04008670896291733, + -0.039529949426651, + 0.010532040148973465, + -0.015904773026704788, + -0.005400570575147867, + -0.012415744364261627, + 0.01285187341272831, + 0.0033451986964792013, + -0.04235086590051651, + 0.03494596108794212, + -0.010661951266229153, + -0.019560828804969788, + -0.036319300532341, + 0.032570451498031616, + 0.002823236398398876, + 0.012898270040750504, + -0.00019936062744818628, + 0.03598524630069733, + -0.02258589118719101, + -0.024367522448301315, + 0.0020808898843824863, + -0.015227382071316242, + -0.003312721149995923, + -0.023550942540168762, + -0.007808556780219078, + 0.02607491984963417, + 0.014549991115927696, + 0.01326016429811716, + 0.021175432950258255, + 0.011422856710851192, + -0.004644304979592562, + 0.04257357120513916, + 0.012063129805028439, + -0.009520593099296093, + 0.03223639726638794, + 0.005827419925481081, + 0.0003166571550536901, + -0.014345845207571983, + -0.04476349055767059, + 0.011821867898106575, + -0.08529561012983322, + -0.007646168582141399, + 0.00988248735666275, + 0.01840091310441494, + -0.010717627592384815, + -0.022864270955324173, + -0.002037973143160343, + -0.0010549438884481788, + -0.01808541640639305, + -0.021268226206302643, + 0.028765926137566566, + -0.0118589848279953, + 0.004931964445859194, + -0.051518846303224564, + 0.05786590650677681, + -0.017046131193637848, + -0.02303129993379116, + -0.022752920165657997, + 0.023532383143901825, + 0.019894884899258614, + 0.04242509976029396, + -0.045728541910648346, + -0.03826795890927315, + -0.0010648032184690237, + -0.005604716017842293, + 0.022604450583457947, + -0.033034417778253555, + -0.04561718925833702, + 0.009631945751607418, + -0.05871960520744324, + 0.020507320761680603, + -0.007001255173236132, + -0.027355467900633812, + -0.010068073868751526, + -0.022623008117079735, + -0.017825594171881676, + -0.01557999663054943, + -0.008110134862363338, + -0.013445750810205936, + 0.030139267444610596, + 0.022530214861035347, + 0.009966001845896244, + 0.017083248123526573, + -0.01064339280128479, + 0.05831131711602211, + -0.03017638437449932, + -0.03520578145980835, + 0.01991344429552555, + -0.01520882360637188, + 0.00452367402613163, + -0.033572617918252945, + 0.0005640093586407602, + -0.02958250604569912, + 0.02867313288152218, + 0.031661078333854675, + -0.017296673730015755, + -0.00953915249556303, + -0.038750484585762024, + -0.035317134112119675, + 0.0019648983143270016, + 0.008922076784074306, + 0.009070546366274357, + -0.037748318165540695, + -0.01939380168914795, + 0.06480684876441956, + 0.05808861181139946, + -0.053263358771800995, + 0.021954897791147232, + -0.03240342438220978, + -0.008035901002585888, + -0.1294652223587036, + 0.004676782991737127, + -0.017445141449570656, + -0.048920631408691406, + -0.021565165370702744, + -0.019560828804969788, + 0.011868264526128769, + 0.0272255577147007, + 0.009265411645174026, + 0.0030088231433182955, + 0.0308073777705431, + -0.00331504107452929, + 0.041942574083805084, + 0.0027049249038100243, + -0.05214983969926834, + 0.04606259986758232, + -0.01022582221776247, + -0.011450693942606449, + 0.03670903295278549, + 0.06142916902899742, + 0.01877208612859249, + -0.012332230806350708, + -0.0017642327584326267, + -0.008077657781541348, + 0.028116373345255852, + -0.009478836320340633, + 0.01520882360637188, + 0.0025889333337545395, + -0.021231109276413918, + 0.024924281984567642, + 0.017370907589793205, + -0.03769264370203018, + 0.02180642820894718, + 0.009808252565562725, + 0.027708081528544426, + 0.004751017317175865, + 0.010327895171940327, + 0.031661078333854675, + 0.008272523060441017, + 0.01703685149550438, + 0.04235086590051651, + -0.007469861302524805, + 0.005442327354103327, + 0.013167370110750198, + 0.027689523994922638, + 0.01604396291077137, + -0.03359117731451988, + -0.003247765824198723, + -0.004581669811159372, + 0.01893911510705948, + 0.011432135477662086, + -0.044355202466249466, + 0.020804259926080704, + 0.02462734468281269, + 0.006365620996803045, + -0.008295721374452114, + -0.05148172751069069, + 0.028153490275144577, + -0.05842266604304314, + 0.09167978912591934, + -0.043538618832826614, + 0.026260506361722946, + -0.021769309416413307, + -0.013761247508227825, + 0.015013957396149635, + 0.014661342836916447, + -0.025184104219079018, + -0.03199513256549835, + 0.039270129054784775, + -0.03049188107252121, + 0.03915877640247345, + -0.04806693270802498, + -0.03290450572967529, + -0.03860201686620712, + 0.03867625072598457, + -0.004233694635331631, + 0.008727210573852062, + -0.050293974578380585, + -0.04992280155420303, + 0.025184104219079018, + -0.02273436076939106, + -0.002987944521009922, + -0.004583989270031452, + 0.025128427892923355, + 0.043538618832826614, + -0.010569158010184765, + -0.033962350338697433, + -0.02266012690961361, + 0.0475844107568264, + 0.023198327049613, + 0.01406746543943882, + -0.007859593257308006, + 0.009232934564352036, + -0.017380187287926674, + 0.008973113261163235, + -0.00429401034489274, + 0.022066248580813408, + -0.01308385655283928, + 0.00152992969378829, + -0.007339950650930405, + -0.04290762543678284, + -0.020544439554214478, + -0.0011071402113884687, + 0.03156828507781029, + -0.021954897791147232, + 0.012638448737561703, + 0.011060962453484535, + -0.021323902532458305, + 0.016303785145282745, + -0.03457478806376457, + -0.025722306221723557, + 0.009274691343307495, + -0.012109526433050632, + -0.017463700845837593, + -0.014893325977027416, + 0.03739570453763008, + -0.009910325519740582, + -0.02416337840259075, + -0.048549458384513855, + -0.01274052169173956, + 0.0064444951713085175, + 0.013427191413939, + -0.04517178237438202, + -0.029693858698010445, + -0.031289905309677124, + -0.002695645671337843, + 0.01985776796936989, + 0.025276897475123405, + -0.0004538172797765583, + 0.03711732476949692, + -0.0009418521076440811, + -0.0004816552682314068, + -0.0237179696559906, + 0.06243133917450905, + 0.0010358053259551525, + 0.003342879004776478, + -0.03583677485585213, + 0.07583069056272507, + -0.018048299476504326, + -0.0401238277554512, + 0.014373683370649815, + 0.018744248896837234, + -0.009232934564352036, + -0.031809546053409576, + -0.017584331333637238, + 0.0018500665901228786, + -0.033424150198698044, + -0.04138581454753876, + 0.005906294099986553, + 0.0024706218391656876, + -0.020284617319703102, + 0.00429401034489274, + 0.0058181406930089, + 0.06180034205317497, + -0.037451379001140594, + 0.01635945960879326, + 0.034389201551675797, + -0.0155521584674716, + -0.054488230496644974, + 0.03283027186989784, + 0.020971287041902542, + -0.049143336713314056, + -0.015218102373182774, + -0.0342407301068306, + 0.01686982437968254, + -0.003502947511151433, + 0.010040235705673695, + 0.015765583142638206, + -0.009826811030507088, + 0.02381076291203499, + -0.005845978390425444, + 0.011376460082828999, + -0.015858376398682594, + 0.0160346832126379, + 0.009910325519740582, + -0.054785169661045074, + 0.028914395719766617, + 0.0018837042152881622, + 0.03193945810198784, + -0.02707708813250065, + 0.007321392185986042, + 0.03260757029056549, + 0.03125278651714325, + -0.0074095455929636955, + 0.04944027587771416, + 0.03223639726638794, + 0.04472637549042702, + 0.023439589887857437, + 0.0009244533139280975, + -0.01770496368408203, + -0.001043924712575972, + 0.012898270040750504, + -0.02082281932234764, + -0.005702148657292128, + 0.023142650723457336, + 0.004774215631186962, + 0.011422856710851192, + 0.056900858879089355, + 0.008945275098085403, + 0.05838555097579956, + 0.04387267678976059, + 0.034092262387275696, + -0.009891767054796219, + 0.011886822991073132, + -0.011497090570628643, + -0.00556759862229228, + 0.012759080156683922, + 0.0035284655168652534, + -0.05259524658322334, + -0.00122139195445925, + 0.006908461917191744, + -0.0036258986219763756, + 0.005330975633114576, + 0.026947176083922386, + 0.0005535701056942344, + 0.031958017498254776, + 0.024608785286545753, + -0.016090359538793564, + 0.0022641567047685385, + -0.007748241536319256, + -0.019597947597503662, + 0.00562791433185339, + 0.002014774829149246, + -0.002360429847612977, + 0.05871960520744324, + -0.05511922389268875, + 0.023216886445879936, + -0.007451302837580442, + -0.030844496563076973, + -0.048920631408691406, + -0.011682678014039993, + 0.0017027572030201554, + -0.0027536414563655853, + 0.019356684759259224, + 0.03284883126616478, + -0.03407370299100876, + -0.048697929829359055, + 0.01433656644076109, + -0.005228903144598007, + 0.0480298176407814, + 0.04372420907020569, + 0.029526831582188606, + 0.006425936706364155, + 0.023012740537524223 + ] + } + }, + { + "type": "舰艇", + "properties": { + "名称": "jz坚", + "闲号": "777", + "embedding": [ + 0.0026330703403800726, + 0.04997743293642998, + -0.02321174181997776, + -0.03324424847960472, + 0.005150452256202698, + 0.005479007493704557, + 0.041018515825271606, + -0.05771468207240105, + -0.051680367439985275, + -0.01694605126976967, + 0.014447180554270744, + -0.0015016368124634027, + -0.020027993246912956, + 0.014058467000722885, + 0.028246505185961723, + -0.009019075892865658, + -0.005367946345359087, + 0.030430704355239868, + 0.004465576261281967, + -0.011291197501122952, + -0.01199458446353674, + -0.005687247030436993, + -0.02228623256087303, + 0.04349887743592262, + -0.0017688772641122341, + -0.008482281118631363, + 0.060713328421115875, + 0.04227720573544502, + 0.026858242228627205, + 0.012716480530798435, + 0.029671788215637207, + 0.048829805105924606, + 0.02567359246313572, + -0.0717453807592392, + 0.008829346857964993, + -0.008172235451638699, + 0.0023600454442203045, + -0.012744245119392872, + -0.058418065309524536, + 0.003762190230190754, + -0.010958014987409115, + -0.0045604407787323, + 0.0029778219759464264, + 0.008755305781960487, + -0.02474808506667614, + -0.0041185105219483376, + 0.003940350376069546, + -0.013669753447175026, + 0.017584651708602905, + 0.013244019821286201, + -0.0222121924161911, + 0.02199007011950016, + 0.04090745374560356, + -0.01632596179842949, + 0.0444243848323822, + -0.0005321670905686915, + -0.018223252147436142, + -0.019324608147144318, + -0.021120093762874603, + 0.0015085780760273337, + 0.031060049310326576, + 0.0739666000008583, + 0.04597923904657364, + 0.01662212423980236, + -0.05623386800289154, + 0.0888487696647644, + 0.0031073931604623795, + -0.007001468446105719, + 0.01314221415668726, + -0.013753049075603485, + -0.005779797676950693, + -0.02099052257835865, + 0.020324155688285828, + -0.01732551120221615, + -0.024174269288778305, + 0.0009145176154561341, + 0.0634528324007988, + -0.010930249467492104, + 0.017279235646128654, + 0.01180022768676281, + 0.09240271896123886, + 0.012003839015960693, + 0.005113431718200445, + -0.018065916374325752, + -0.0022339450661092997, + 0.044091202318668365, + -0.004056038800626993, + 0.08581310510635376, + -0.0008439476368948817, + 0.014576751738786697, + 0.020749889314174652, + -0.024618513882160187, + -0.005446614697575569, + -0.004111569374799728, + -0.009060723707079887, + 0.03235575929284096, + -0.0024664788506925106, + 0.024414902552962303, + 0.05775170028209686, + 0.05216163396835327, + -0.007242100313305855, + -0.01786230504512787, + -0.019509708508849144, + -0.06204605847597122, + -0.022878559306263924, + 0.03450293838977814, + 0.037723708897829056, + 0.01610383950173855, + -0.005307788494974375, + 0.01080067828297615, + 0.01984289288520813, + 0.021786458790302277, + 0.045868176966905594, + 0.04342483729124069, + -0.011772462166845798, + -0.018898874521255493, + -0.007019978482276201, + 0.03570609912276268, + 0.00335265276953578, + -0.03578013926744461, + -0.014623027294874191, + -0.08137066662311554, + -0.001684424583800137, + -0.03631693497300148, + 0.024729574099183083, + -0.07063477486371994, + -0.004914447665214539, + -0.00881083682179451, + -0.047163888812065125, + -0.004891309887170792, + 0.05438285320997238, + 0.107877217233181, + -0.019953953102231026, + 0.0008601440349593759, + -0.0068996623158454895, + -0.04620135948061943, + 0.010902484878897667, + -0.003533126786351204, + -0.008167608641088009, + -0.07218962907791138, + -0.001956292660906911, + 0.01092099491506815, + 0.042869530618190765, + -0.015141311101615429, + -0.023785555735230446, + -0.05256885662674904, + -0.025544021278619766, + -0.01053228136152029, + 0.013068173080682755, + -0.007098646368831396, + 8.770635031396523e-05, + -0.04801535606384277, + -0.013651243411004543, + 0.01156884990632534, + 0.05138420686125755, + 0.0027256212197244167, + 0.0036765807308256626, + 0.021083073690533638, + -0.009264335036277771, + -0.010162077844142914, + -0.005747404880821705, + -0.030911969020962715, + 0.03876027464866638, + -0.03241129219532013, + -0.03677969053387642, + 0.0092735905200243, + 0.08181490749120712, + 0.00214486476033926, + 0.0019667046144604683, + -0.006945937871932983, + 0.038575176149606705, + -0.020638829097151756, + -0.004222630523145199, + -0.00733927870169282, + 0.055197298526763916, + -0.01498397532850504, + 0.035280365496873856, + -0.005830700509250164, + -0.010911739431321621, + -0.018898874521255493, + 0.01908397488296032, + -0.023304292932152748, + 0.06985734403133392, + -0.008473025634884834, + -0.01799187622964382, + -0.02682122215628624, + 0.015400453470647335, + -0.004562754649668932, + 0.023174721747636795, + 0.011929798871278763, + -0.018806323409080505, + 0.01869526132941246, + 0.0964009165763855, + -0.00873216800391674, + 0.02460000291466713, + -0.01930609717965126, + 0.014243568293750286, + -0.027469078078866005, + -0.024692554026842117, + -0.01577065698802471, + 0.003875564783811569, + 0.03509526327252388, + 0.00777889508754015, + -0.01884334348142147, + -0.008056547492742538, + 0.003799210535362363, + -0.009227314963936806, + 0.011809482239186764, + 0.007658578921109438, + -0.0212311539798975, + -0.032522350549697876, + -0.017455080524086952, + 0.056418970227241516, + 0.04005598649382591, + -0.010374944657087326, + -0.002607618924230337, + -0.017038602381944656, + -0.03637246415019035, + 0.007524380460381508, + 0.017066368833184242, + -0.008329572156071663, + -0.009477201849222183, + 0.05423476919531822, + 0.02497020736336708, + -0.004386907909065485, + 0.0032207679469138384, + -0.02987539954483509, + 0.04483160749077797, + 0.0060713328421115875, + -0.029893908649683, + -0.014049211516976357, + -0.0036835218779742718, + 0.018584201112389565, + 0.002498871646821499, + -0.0008242806070484221, + 0.010078782215714455, + -0.04464650899171829, + 0.012022349052131176, + 0.04649752378463745, + 0.008297179825603962, + -0.008417495526373386, + -0.01753837801516056, + 0.016797970980405807, + -0.0012748873559758067, + 0.0047571114264428616, + 0.004097686614841223, + 0.0019296841928735375, + 0.0228230282664299, + 0.01730700023472309, + 0.022267723456025124, + -0.009745599702000618, + -0.02298961952328682, + -0.032226189970970154, + 0.00027360330568626523, + 0.04127765819430351, + 0.04771919548511505, + 0.05815892294049263, + -0.008385103195905685, + 0.020009484142065048, + -0.03118962049484253, + 0.034058693796396255, + -0.015890972688794136, + -0.037427544593811035, + 0.03702032193541527, + 0.0059186238795518875, + 0.007094019092619419, + -0.051606327295303345, + -0.014697067439556122, + -0.02887585014104843, + 0.002046529669314623, + -0.030708355829119682, + 0.012124154716730118, + -0.028098423033952713, + -0.026451019570231438, + -0.0473489910364151, + 0.020879460498690605, + 0.02435937151312828, + -0.06352686882019043, + 0.010273138992488384, + 0.027339506894350052, + -0.01607607491314411, + 0.05353138595819473, + 0.04634944349527359, + 0.0038177205715328455, + -0.005293905735015869, + 0.00193431181833148, + -0.0353914275765419, + 0.023730026558041573, + -0.007880700752139091, + -0.009042213670909405, + -0.05493815615773201, + 0.05971377715468407, + 0.058566149324178696, + -0.020472237840294838, + -0.03094898909330368, + 0.05219865217804909, + -0.02384108677506447, + -0.14319460093975067, + -0.02943115495145321, + 0.013355080969631672, + 0.046386461704969406, + -0.008709030225872993, + -0.006807111669331789, + -0.036890748888254166, + 0.004666874185204506, + -0.09181039780378342, + -0.040278110653162, + -0.0009764109854586422, + -0.019657790660858154, + -0.016964562237262726, + 0.029671788215637207, + -0.02635846845805645, + 0.020287135615944862, + -0.03118962049484253, + -0.06286050379276276, + -0.018436120823025703, + -0.045312874019145966, + 0.011670656502246857, + -0.020564788952469826, + 0.022637926042079926, + -0.07759459316730499, + -0.03217066079378128, + -0.003609481267631054, + -0.0036210501566529274, + -0.03326275944709778, + -0.026395488530397415, + -0.018269527703523636, + -0.03887133672833443, + 0.06885779649019241, + 0.0002413551410427317, + 0.019120994955301285, + 0.04242528975009918, + 0.014336119405925274, + 0.0054512424394488335, + 0.024729574099183083, + 0.0068765245378017426, + -0.022508354857563972, + 0.04472054913640022, + 0.0222121924161911, + -0.05342032387852669, + 0.03494718298316002, + -0.034447409212589264, + 0.02437788061797619, + 0.0067700911313295364, + -0.01862122118473053, + 0.00040490974788554013, + 0.023415353149175644, + 0.009477201849222183, + -0.013068173080682755, + 0.03109706938266754, + -0.0056085786782205105, + -0.011559595353901386, + 0.018954403698444366, + -0.017510611563920975, + 0.002984763355925679, + -0.0024687927216291428, + -0.03639097511768341, + 0.0068765245378017426, + 0.013595713302493095, + 0.013068173080682755, + 0.001223984407261014, + -0.031522803008556366, + 0.01608533039689064, + -0.013688263483345509, + -0.046312421560287476, + 0.05238375440239906, + -0.014382394962012768, + -0.000966577441431582, + 0.00175268086604774, + 0.00762618612498045, + -0.030819417908787727, + -0.002751072635874152, + 0.005839955527335405, + -0.04875576123595238, + -0.008764561265707016, + -0.0255070012062788, + -0.09958466142416, + 0.012855306267738342, + 0.045238833874464035, + -0.011365238577127457, + 0.04534989222884178, + -0.01607607491314411, + -0.05134718492627144, + 0.06604425609111786, + 0.03239278122782707, + 0.011355983093380928, + 0.2082022875547409, + 0.028838830068707466, + 0.053050119429826736, + 0.009810385294258595, + -0.02743205800652504, + -0.03801986947655678, + 0.02498871646821499, + -0.00366963935084641, + 0.008709030225872993, + -0.002975508337840438, + -0.03320722654461861, + 0.025488490238785744, + -0.00876918900758028, + -0.02006501331925392, + 0.02950519509613514, + 0.014650791883468628, + -0.03502122312784195, + 0.011254177428781986, + 0.06278646737337112, + -0.011781717650592327, + 0.0473489910364151, + 0.00877381581813097, + 0.005863093305379152, + 0.01609458401799202, + -0.0013130644802004099, + -0.02980135940015316, + -0.021416256204247475, + 0.04557201638817787, + 0.00934763066470623, + -0.021582847461104393, + 0.03041219338774681, + -0.007117156870663166, + 0.040722351521253586, + -0.01393815129995346, + 0.006941310130059719, + -0.017982620745897293, + -0.05249481648206711, + 0.00800564419478178, + -0.06219413876533508, + 0.0038015241734683514, + -0.01893589459359646, + -0.03938962146639824, + -0.032614901661872864, + -0.011911287903785706, + 0.021730927750468254, + -0.016353726387023926, + -0.03255937248468399, + -0.03439188003540039, + 0.09069978445768356, + 0.021249664947390556, + 0.0026145600713789463, + 0.010523025877773762, + -0.01352167222648859, + 0.006038940045982599, + -0.006177766248583794, + 0.002808916848152876, + -0.024044698104262352, + -0.05464199557900429, + -0.012707225047051907, + 0.03518781438469887, + -0.01428984384983778, + 0.04342483729124069, + -0.03672415763139725, + 0.0011545713059604168, + 0.032985106110572815, + 0.04549797624349594, + -0.06067630648612976, + 0.002333437092602253, + 0.02874627895653248, + 0.019676299765706062, + 0.0912921130657196, + -0.019324608147144318, + 0.018852598965168, + 0.013345825485885143, + 0.029764337465167046, + -0.0008653500117361546, + 0.008491536602377892, + 0.014993229880928993, + -0.017205193638801575, + 0.03518781438469887, + -0.014761853031814098, + 0.008792325854301453, + -0.02872776985168457, + -0.024951696395874023, + -0.001230925670824945, + -0.02528487890958786, + 0.0008462613914161921, + 0.017890069633722305, + -0.037131380289793015, + -0.001631207880564034, + 0.04242528975009918, + 0.0693020448088646, + -0.02680271305143833, + -0.013364335522055626, + -0.026395488530397415, + -0.004257336724549532, + 0.00028488293173722923, + -0.005904741119593382, + -0.030911969020962715, + -0.007445712108165026, + -0.04727495089173317, + -0.01993544213473797, + -0.026839733123779297, + -0.05693725496530533, + -0.03402167558670044, + 0.044017162173986435, + 0.02145327627658844, + -0.0013107507256790996, + -0.011476299725472927, + 0.012660949490964413, + -0.013438376598060131, + -0.007552145514637232, + -0.042647410184144974, + 0.011022800579667091, + 0.052457794547080994, + -0.009690068662166595, + -0.05308714136481285, + 0.014539730735123158, + 0.03624289482831955, + 0.032596394419670105, + -0.030541764572262764, + -0.008292552083730698, + -0.04642348363995552, + 0.035891201347112656, + 0.029394134879112244, + -0.015335667878389359, + -0.03379955142736435, + -0.0019759596325457096, + -0.051828447729349136, + 0.01838984526693821, + -0.0009492241661064327, + -0.01398442592471838, + 0.02443341165781021, + 0.020398197695612907, + 0.050606779754161835, + 0.012772010639309883, + 0.0407593734562397, + 0.021342214196920395, + -0.015465239062905312, + 0.02206411212682724, + -0.04242528975009918, + -0.05349436402320862, + -0.043165694922208786, + 0.03839007392525673, + 0.006918172352015972, + -0.01528013776987791, + -0.018806323409080505, + -0.03507675603032112, + 0.04068533331155777, + -0.0038616822566837072, + -0.0027672690339386463, + 0.020490746945142746, + -0.023045150563120842, + -0.027709709480404854, + -0.014141762629151344, + 0.000642071187030524, + 0.007181942462921143, + -0.02260090596973896, + -0.0047617387026548386, + -0.028838830068707466, + 0.0033202599734067917, + 0.027598649263381958, + 0.01478961855173111, + 0.028302036225795746, + -0.021323705092072487, + 0.060269083827733994, + -0.039500683546066284, + 0.02335982210934162, + 0.05256885662674904, + -0.06959820538759232, + 0.030671335756778717, + -0.038649216294288635, + -0.04920000582933426, + 0.007200452499091625, + 0.015594810247421265, + 0.02621038816869259, + -0.04579413682222366, + -0.007436457090079784, + 0.0012216706527397037, + 0.013530927710235119, + -0.005409594625234604, + -0.049459148198366165, + 0.003535440657287836, + -0.050606779754161835, + 0.02619187720119953, + 0.02987539954483509, + -0.0016566594131290913, + -0.006038940045982599, + -0.00804729200899601, + -0.019676299765706062, + -0.021101582795381546, + 0.050828900188207626, + 0.008861739188432693, + -0.03385508432984352, + 0.06389707326889038, + -0.04908894747495651, + -0.05453093349933624, + -0.017455080524086952, + -0.011476299725472927, + -0.00551602803170681, + -0.024766594171524048, + -0.02935711480677128, + -0.05708533525466919, + -0.04572009667754173, + -0.009106999263167381, + -0.02189752086997032, + -0.04135169833898544, + -0.06700678169727325, + 0.03487314283847809, + -0.005108804441988468, + -0.024803614243865013, + -0.013364335522055626, + -0.0026700906455516815, + 0.013669753447175026, + 0.005826073233038187, + -0.009588262997567654, + -0.043943122029304504, + -0.03424379602074623, + -0.022027090191841125, + 0.008894132450222969, + 0.021508807316422462, + 0.016205646097660065, + 0.05019955709576607, + -0.0024711063597351313, + 0.022860048338770866, + -0.03655756637454033, + 0.00850541889667511, + -0.012790520675480366, + 0.061860956251621246, + 0.02758014015853405, + 0.0057381498627364635, + -0.014835894107818604, + -0.0272099357098341, + 0.01103205606341362, + -0.012105644680559635, + 0.02948668599128723, + -0.034280817955732346, + 0.05682619288563728, + 0.045090749859809875, + -0.020786909386515617, + 0.016205646097660065, + -0.006085215136408806, + -0.031078560277819633, + 0.0378347672522068, + -0.014632281847298145, + 0.06097246706485748, + 0.039648763835430145, + -0.004257336724549532, + 0.013836344704031944, + -0.0035446956753730774, + 0.012614674866199493, + 0.014151018112897873, + 0.010680362582206726, + -0.02169390767812729, + 0.012003839015960693, + 0.04472054913640022, + 0.024544473737478256, + 0.014808128587901592, + -0.034817613661289215, + -0.017057113349437714, + -0.038427092134952545, + 0.00862110685557127, + -0.0717453807592392, + 0.0011950621847063303, + -0.007306885905563831, + -0.03609481453895569, + -0.031004518270492554, + -0.02384108677506447, + 0.005659481510519981, + -0.014521220698952675, + -0.028690749779343605, + 0.03813093155622482, + -0.005381829105317593, + -0.024840636178851128, + -0.02189752086997032, + -0.05493815615773201, + -0.06200903654098511, + 0.009287472814321518, + 0.026265917345881462, + 0.02152731642127037, + -0.021860498934984207, + 0.0432027131319046, + -0.028838830068707466, + 0.040944475680589676, + 0.01003250665962696, + 0.029782848432660103, + 0.005548420827835798, + -0.032448310405015945, + -0.00023137700918596238, + 0.02398916892707348, + -0.006788601167500019, + 0.02458149380981922, + -0.03975982591509819, + 0.032670434564352036, + 0.004148589912801981, + 0.021471785381436348, + -0.0035377545282244682, + 0.03363296017050743, + -0.016048308461904526, + 0.01570587046444416, + -0.009236570447683334, + 0.05986185744404793, + -0.03026411309838295, + -0.02711738459765911, + -0.0022559259086847305, + -0.012438828125596046, + -0.009430927224457264, + 0.051458247005939484, + 0.004534989129751921, + 0.029597746208310127, + -0.011281942948698997, + 0.007066253572702408, + -0.004414673428982496, + -0.04572009667754173, + 0.03679819777607918, + 0.012734990566968918, + -0.039352599531412125, + 0.015992779284715652, + 0.002417889656499028, + 0.010393454693257809, + 0.028024382889270782, + -0.035502489656209946, + -0.04090745374560356, + 0.00873216800391674, + -0.007269865367561579, + -0.012577653862535954, + 0.029838379472494125, + 0.008024154230952263, + -0.01876004785299301, + -0.032596394419670105, + 0.019509708508849144, + -0.019491199404001236, + -0.027931831777095795, + -0.04175892099738121, + -0.014197292737662792, + -0.04146276041865349, + 0.015030249953269958, + 0.012364787049591541, + 0.03533589467406273, + -0.0015247744740918279, + 0.004738600924611092, + -0.008796953596174717, + 0.03938962146639824, + -0.021879009902477264, + 0.0012529065134003758, + 0.002348476555198431, + 0.020805420354008675, + 0.0370943620800972, + 0.02406320907175541, + 0.033595941960811615, + 0.05371648445725441, + 0.04405418038368225, + -0.009412416256964207, + 0.008778443560004234, + -0.03975982591509819, + -0.012281491421163082, + -0.037112873047590256, + 0.03418826684355736, + -0.047608133405447006, + -0.015955759212374687, + -0.00776038458570838, + 7.234147051349282e-05, + -0.03485463187098503, + 0.02574763260781765, + -0.024692554026842117, + 0.0042411405593156815, + -0.022175172343850136, + 0.007556773256510496, + 0.007417947053909302, + -0.013965915888547897, + -0.021490296348929405, + -0.002242043148726225, + -0.005631716456264257, + -0.021323705092072487, + -0.016603613272309303, + -0.018732283264398575, + 0.013290295377373695, + -0.05071783810853958, + -0.007714109495282173, + 0.03004199080169201, + -0.004988488275557756, + 0.0017630928196012974, + -0.00029572873609140515, + -0.045238833874464035, + 0.04020407050848007, + -0.04183296114206314, + -0.007464222144335508, + -0.03533589467406273, + 0.06352686882019043, + 0.018797067925333977, + 0.0010105391265824437, + -0.013040408492088318, + 0.028320545330643654, + -0.018139956519007683, + -0.12024199962615967, + 0.002801975468173623, + -0.02643250860273838, + 0.010930249467492104, + -0.05238375440239906, + -0.03794582933187485, + 0.02428533136844635, + 0.005340181291103363, + 0.012846051715314388, + -0.008028781972825527, + -0.0722266435623169, + -0.01999097317457199, + 0.011846502311527729, + -0.05360542610287666, + -0.03226320818066597, + -0.002294102916494012, + 0.004537303000688553, + -0.005479007493704557, + -0.012716480530798435, + 0.028098423033952713, + -0.00977336522191763, + -0.036816708743572235, + -0.002755700144916773, + 0.03868623450398445, + -0.004454007372260094, + 0.002122884150594473, + -0.050828900188207626, + 0.023470884189009666, + -0.04879278317093849, + -0.08107450604438782, + 0.027154404670000076, + -0.0037506213411688805, + 0.03211512789130211, + 0.06497066468000412, + -0.05464199557900429, + 0.014567496255040169, + 0.010597066953778267, + -0.013549437746405602, + 0.010411965660750866, + -0.007922348566353321, + -0.040278110653162, + 0.02635846845805645, + -0.02169390767812729, + -0.010569301433861256, + -0.03494718298316002, + 0.03768668696284294, + -0.0027672690339386463, + -0.0006137274904176593, + -0.04657156392931938, + -0.006455418653786182, + 0.01823250763118267, + -0.03441038727760315, + 0.008334199897944927, + 0.018861854448914528, + 0.02008352428674698, + -0.0007004938670434058, + -0.023730026558041573, + -0.01816772297024727, + -0.040018968284130096, + 0.06038014218211174, + 0.013466142117977142, + -0.02904244139790535, + -0.05234673246741295, + -0.03901941701769829, + -0.04997743293642998, + 0.05823296681046486, + -0.03392912447452545, + 0.02252686582505703, + -0.0035840298514813185, + 0.0234338641166687, + -0.02298961952328682, + -0.017362531274557114, + 0.03655756637454033, + -0.04298059269785881, + 0.0005344809032976627, + 0.016659144312143326, + 0.06212009862065315, + -0.011976073496043682, + -0.07455892860889435, + -0.02367449551820755, + 0.03805689141154289, + 0.012605419382452965, + 0.02780226059257984, + 0.02458149380981922, + 0.020435217767953873, + 0.02460000291466713, + 0.017186684533953667, + 0.022508354857563972, + -0.05090294033288956, + 0.010356434620916843, + -0.006492438726127148, + -0.013836344704031944, + -0.03739052265882492, + 0.011439279653131962, + 0.005243002902716398, + -0.020638829097151756, + 0.020435217767953873, + 0.002811230719089508, + 0.013780814595520496, + -0.00853781122714281, + 0.0038385444786399603, + -0.034447409212589264, + 0.027006324380636215, + 0.05693725496530533, + -0.01876930333673954, + 0.02435937151312828, + 0.016039054840803146, + -0.0020951188635081053, + 0.0023022012319415808, + -0.0036927771288901567, + 0.03916750103235245, + 0.03592822328209877, + 0.02199007011950016, + 0.005812190473079681, + 0.008796953596174717, + -0.01938013732433319, + -0.0032300229649990797, + -0.007112529128789902, + 0.004618285223841667, + -0.03350339084863663, + 0.019713321700692177, + 0.028709258884191513, + 0.009056095965206623, + -0.034354858100414276, + 0.017066368833184242, + -0.0005761287757195532, + 0.02397065795958042, + 0.0412406362593174, + 0.008607224561274052, + -0.017131153494119644, + 0.013799324631690979, + -0.02559955231845379, + -0.02421128936111927, + 0.04757111147046089, + -0.04994041472673416, + 0.0033110049553215504, + -0.012151920236647129, + -0.009819639846682549, + -0.020398197695612907, + -0.00853781122714281, + 0.012309256941080093, + 0.02169390767812729, + -0.04568307474255562, + 0.014613771811127663, + 0.011485554277896881, + 0.009504967369139194, + 0.024562982842326164, + 0.007524380460381508, + -0.014382394962012768, + -0.06348985433578491, + 0.007681716699153185, + 0.04912596568465233, + 0.03476208075881004, + -0.027024835348129272, + 0.017575398087501526, + 0.0026724045164883137, + 0.010504515841603279, + -0.012799776159226894, + 0.04383205994963646, + 0.0028829574584960938, + 0.03170790523290634, + -0.07892732322216034, + -0.03194853663444519, + -0.035669080913066864, + 0.016612868756055832, + -0.012429572641849518, + -0.003732111072167754, + -0.028986912220716476, + -0.03457697853446007, + -0.03065282665193081, + 0.01954673044383526, + 0.04997743293642998, + -0.013577202335000038, + 0.044942669570446014, + -0.01747359149158001, + -0.027154404670000076, + 0.016834991052746773, + 0.025932734832167625, + 0.0678582489490509, + -0.023544924333691597, + 0.048459600657224655, + -0.03668713942170143, + -0.01325327530503273, + 0.0072374725714325905, + -0.026469528675079346, + 0.009116253815591335, + 0.010782168246805668, + -0.016029799357056618, + 0.006001919507980347, + 0.003375790547579527, + -0.032614901661872864, + -0.0024896166287362576, + -0.0346510224044323, + -0.03339232876896858, + -0.03470655158162117, + -0.04168488085269928, + -0.030837927013635635, + -0.027617160230875015, + -0.012411062605679035, + 0.0013952034059911966, + -0.021545827388763428, + -0.018676752224564552, + 0.013975171372294426, + 0.030171561986207962, + -0.010967270471155643, + 0.008838601410388947, + -0.04534989222884178, + -0.029764337465167046, + -0.03861219435930252, + 0.033521901816129684, + 0.001004176214337349, + 0.005381829105317593, + -0.042795490473508835, + 0.03694628179073334, + 0.017890069633722305, + 0.012198195792734623, + 0.048311520367860794, + 0.0065618520602583885, + -0.015733636915683746, + 0.036668628454208374, + 0.012994132936000824, + 0.01731625571846962, + -0.026543570682406425, + -0.012846051715314388, + 0.018334314227104187, + -0.056048765778541565, + -0.005307788494974375, + 0.04016704857349396, + -0.0063860053196549416, + -0.027006324380636215, + -0.011022800579667091, + -0.014623027294874191, + -0.05682619288563728, + 0.05286501720547676, + 0.027395037934184074, + 0.0014021446695551276, + 0.050828900188207626, + 0.017973365262150764, + 0.02128668501973152, + -0.02767268940806389, + 0.02713589556515217, + -0.006460045929998159, + 0.013077428564429283, + 0.039648763835430145 + ] + } + }, + { + "type": "系统", + "properties": { + "名称": "汽车配件", + "系统编码": "11", + "embedding": [ + -0.03733561187982559, + -0.011629125103354454, + -0.029108816757798195, + 0.0060980902053415775, + -0.0404319129884243, + 0.03166506439447403, + 0.07153892517089844, + -0.006471626460552216, + 0.014725425280630589, + -0.032421138137578964, + 0.019891925156116486, + 0.004354171454906464, + 0.0146084139123559, + 0.01834377460181713, + 0.015850534662604332, + -0.07042281329631805, + -0.029378842562437057, + -0.026786591857671738, + 0.025346452370285988, + -0.03855973109602928, + 0.01026099268347025, + -0.0073717134073376656, + -0.005436526145786047, + 0.050836920738220215, + 0.00755623122677207, + -0.027218634262681007, + -0.0005709927645511925, + -0.013627318665385246, + 0.012592218816280365, + -0.02014394849538803, + -0.029450850561261177, + -0.04122398793697357, + -0.009720941074192524, + -0.06837061792612076, + -0.057605575770139694, + -0.07992773503065109, + -0.004446430131793022, + -0.03762364014983177, + -0.08993670344352722, + 0.023060230538249016, + -0.017389683052897453, + -0.051052939146757126, + 0.03634551540017128, + -0.03697557747364044, + -0.05764157697558403, + -0.007542729843407869, + -0.0034630850423127413, + -0.024428363889455795, + 0.0035665950272232294, + -0.020035939291119576, + 0.01316827442497015, + 0.003908628132194281, + 0.05800161138176918, + -0.04021589085459709, + 0.015580507926642895, + 0.052061036229133606, + -0.029468851163983345, + -0.021314062178134918, + -0.10484214872121811, + -0.017011646181344986, + -0.043852243572473526, + 0.03236713260412216, + 0.017101654782891273, + 0.019009839743375778, + 0.018973836675286293, + 0.09447313845157623, + -0.011899151839315891, + -0.011098073795437813, + -0.0035598445683717728, + -0.03963983431458473, + -0.016237571835517883, + -0.0627540722489357, + 0.012529212050139904, + 0.0024752395693212748, + -0.027434654533863068, + 0.02972087636590004, + 0.046588506549596786, + 0.004293415229767561, + -0.005508533213287592, + -0.00676415441557765, + -0.0047749620862305164, + -0.01728167198598385, + 0.013069264590740204, + 0.011971157975494862, + -0.02136806771159172, + 0.009981965646147728, + -0.046660516411066055, + -0.02547246403992176, + -0.07157492637634277, + -0.011629125103354454, + 0.0004033515288028866, + -0.005220504943281412, + 0.046228472143411636, + -0.02943284809589386, + -0.03726360574364662, + 0.03679556027054787, + -0.0029365341179072857, + 0.03143104165792465, + 0.014230377040803432, + -0.009855953976511955, + -0.0015762775437906384, + 0.012907248921692371, + 0.03137703612446785, + -0.056813497096300125, + 0.05533735454082489, + -0.029450850561261177, + 0.04964880272746086, + -0.013213278725743294, + 0.0021872115321457386, + -0.0008067030576057732, + 0.006467125844210386, + 0.008613833226263523, + -0.0007425718358717859, + -0.012097170576453209, + -0.016057554632425308, + -0.030170919373631477, + -0.017947737127542496, + -0.029630867764353752, + 0.058973707258701324, + -0.01432038564234972, + 0.016525598242878914, + 0.016075555235147476, + 0.03137703612446785, + -0.014779429882764816, + 0.03906378149986267, + -0.021044036373496056, + 0.01632758043706417, + -0.00871284306049347, + -0.009288898669183254, + 0.0034495838917791843, + -0.010639029555022717, + 0.01435638964176178, + -0.05087292194366455, + 0.0015582757769152522, + -0.041259992867708206, + -0.06466225534677505, + 0.01788473129272461, + -0.01656160317361355, + -0.004747959319502115, + -0.027524663135409355, + -0.00019900362531188875, + -0.004491434432566166, + -0.029756879433989525, + -0.028478756546974182, + 0.022070135921239853, + 0.013807335868477821, + 0.027074620127677917, + 0.0015796528896316886, + 0.013429299928247929, + -0.08043178170919418, + 0.02266419306397438, + -0.011926153674721718, + 0.02086401917040348, + 0.0035440928768366575, + 0.033933281898498535, + -0.019009839743375778, + -0.0015436493558809161, + 0.06570635735988617, + 0.0030512951780110598, + -0.017389683052897453, + 0.013690324500203133, + 0.03913578763604164, + -0.0281367227435112, + -0.052925121039152145, + 0.011287092231214046, + 0.003861373756080866, + 0.054653286933898926, + -0.009828951209783554, + -0.03348324075341225, + -0.0004798589216079563, + 0.03411330282688141, + -0.009828951209783554, + 0.016363583505153656, + 0.007745249662548304, + 0.07985572516918182, + -0.02266419306397438, + 0.02914481982588768, + 0.005513033363968134, + 0.0048784720711410046, + -0.018685808405280113, + 0.02583250030875206, + -0.012862244620919228, + 0.027236634865403175, + -0.027002612128853798, + -0.021602090448141098, + 0.00946891587227583, + 0.04151201620697975, + -0.030602961778640747, + 0.01367232296615839, + 0.05116095021367073, + -0.03153905272483826, + -0.019819917157292366, + 0.026372551918029785, + -0.08914462476968765, + 0.054797302931547165, + -0.01884782314300537, + 0.04140400514006615, + -0.0032425636891275644, + 0.027092620730400085, + -0.03080097958445549, + -0.011062070727348328, + -0.013393295928835869, + 0.019243862479925156, + 0.0014063861453905702, + -0.02698461152613163, + -0.009963964112102985, + 0.021188050508499146, + -0.025346452370285988, + 0.0016347832279279828, + -0.04482433572411537, + 0.00508999265730381, + -0.009009871631860733, + 0.0024887407198548317, + 0.009774945676326752, + -0.009081878699362278, + -0.011035067960619926, + 0.0025809998624026775, + 0.008564328774809837, + -0.011359099298715591, + -0.023852307349443436, + -0.048748716711997986, + 0.028910797089338303, + -0.02504042349755764, + 0.06747052818536758, + 0.008307804353535175, + 0.008933364413678646, + 0.0005288011743687093, + 0.015103461220860481, + -0.04122398793697357, + -0.018091751262545586, + 0.02676858939230442, + 0.036723554134368896, + -0.03690357133746147, + -0.04518437385559082, + 0.009315901435911655, + 0.01848778873682022, + 0.0011554867960512638, + 0.036723554134368896, + 0.023582281544804573, + 0.027380649000406265, + 0.02187211625277996, + -0.0030310433357954025, + 0.003015291877090931, + -0.01893783174455166, + -0.02835274301469326, + -0.01848778873682022, + 0.030404942110180855, + 0.008033277466893196, + -0.045220375061035156, + -0.019261863082647324, + -0.03834370896220207, + 0.003809618530794978, + -0.012529212050139904, + -0.013519308529794216, + -0.001993692945688963, + 0.031269025057554245, + 0.020774010568857193, + -0.001958814449608326, + 0.008001774549484253, + -0.02129606157541275, + -0.02216014452278614, + 0.0641942098736763, + 0.0014851436717435718, + 0.024716392159461975, + 0.015859534963965416, + 0.011557118035852909, + -0.0013647570740431547, + 0.024770397692918777, + -0.041043970733881, + 0.019801916554570198, + -0.024086330085992813, + 0.0009175263112410903, + -0.0020589493215084076, + 0.015427492558956146, + 0.03497738391160965, + 0.03576946258544922, + 0.0013760081492364407, + -0.042916152626276016, + 0.07117889076471329, + -0.034149304032325745, + 0.05317714437842369, + 0.0008972743526101112, + 0.04230409488081932, + -0.03476136550307274, + 0.03992786258459091, + 0.034005291759967804, + -0.0440322607755661, + 0.026606574654579163, + -0.020323967561125755, + -0.05404122918844223, + -0.03301519528031349, + -0.007907264865934849, + 0.07733548432588577, + -0.017218666151165962, + -0.022250153124332428, + 0.03225912153720856, + -0.033951286226511, + -0.12003561854362488, + -0.038667742162942886, + -0.05116095021367073, + 0.009819949977099895, + 0.007128689903765917, + -0.0245363749563694, + -0.07711946219205856, + 0.01942387968301773, + -0.0389917716383934, + -0.00863183569163084, + 0.023222247138619423, + -0.06700248271226883, + -0.01618356630206108, + -0.0007296330877579749, + -0.0020589493215084076, + -0.005769558250904083, + -0.03612949699163437, + 0.035301417112350464, + -0.0014018856454640627, + -0.026426557451486588, + -0.030530953779816628, + -0.005387021228671074, + 0.020954027771949768, + -0.008541826158761978, + -0.03917178884148598, + -0.06721850484609604, + 0.04820866510272026, + 0.012970254756510258, + -0.0194958858191967, + 0.023510275408625603, + -0.004570192191749811, + 0.025724489241838455, + 0.010999063961207867, + 0.04662451148033142, + -0.005211504176259041, + -0.02117004804313183, + -0.01421237550675869, + -0.056525468826293945, + 0.005828063935041428, + 0.027362648397684097, + -0.018109751865267754, + 0.06369016319513321, + 0.006282608024775982, + 0.023402264341711998, + -0.024860406294465065, + -0.07733548432588577, + 0.019333871081471443, + 0.008645336143672466, + 0.0023627285845577717, + -0.024842403829097748, + -0.029630867764353752, + -0.033933281898498535, + 0.03891976550221443, + -0.016570603474974632, + -0.014077362604439259, + 0.014266380108892918, + -0.014707422815263271, + 0.044140271842479706, + 0.03193509206175804, + -0.018190760165452957, + -0.039315804839134216, + -0.07373513281345367, + 0.02489640936255455, + -0.006305110175162554, + -0.025220440700650215, + -0.0007076934562064707, + 0.017704714089632034, + -0.05375320091843605, + 0.010053972713649273, + -0.03423931449651718, + 0.0158415324985981, + -0.028532760217785835, + 0.03593147546052933, + -0.048676710575819016, + 0.01252021174877882, + 0.0013996354537084699, + -0.01942387968301773, + -0.00023528838937636465, + -0.017722714692354202, + -0.09332103282213211, + -0.016642609611153603, + 0.0052025034092366695, + -0.012367196381092072, + -0.009990966878831387, + -0.027452656999230385, + -0.036741554737091064, + -0.010360002517700195, + 0.015814529731869698, + 0.031701069325208664, + 0.2250937819480896, + 0.015958543866872787, + 0.013537310063838959, + 0.0021613340359181166, + 0.07380714267492294, + -0.023852307349443436, + 0.004711955785751343, + -0.07053082436323166, + 0.01612956076860428, + -0.04165603220462799, + -0.03359125182032585, + 0.02001793682575226, + 0.010486015118658543, + -0.005562538281083107, + 0.007497725542634726, + 0.014518405310809612, + 0.028460754081606865, + 0.002716012764722109, + 0.05951375886797905, + -0.04180004447698593, + -0.03260115534067154, + -0.01608455553650856, + -0.0034720860421657562, + -0.007686743978410959, + -0.029396845027804375, + -0.030746975913643837, + 0.016858631744980812, + -0.011458109132945538, + 0.0021365818101912737, + 0.0447523295879364, + -0.014194373972713947, + 0.00833030603826046, + 0.005589541047811508, + -0.031125010922551155, + -0.055733393877744675, + -0.0059765782207250595, + -0.005243007559329271, + 0.006701148580759764, + 0.03166506439447403, + 0.03283517807722092, + -0.03963983431458473, + -0.040179889649152756, + 0.04633648321032524, + 0.028100719675421715, + 0.03751562908291817, + -0.05886569619178772, + 0.01834377460181713, + -0.006683146581053734, + 0.04309616982936859, + 0.0035868471022695303, + -0.029990902170538902, + -0.028730779886245728, + -0.042628124356269836, + 0.02734464593231678, + -8.522699499735609e-05, + -0.016822628676891327, + 0.010594025254249573, + -0.047524597495794296, + 0.00665614427998662, + 0.044716328382492065, + 0.021206051111221313, + -0.004063893109560013, + 0.004837967921048403, + 0.0023964818101376295, + 0.035283412784338, + -0.006570635829120874, + 0.016363583505153656, + 0.037947673350572586, + 0.03195309266448021, + 0.043276187032461166, + 0.012358196079730988, + 0.045076362788677216, + 0.03503138944506645, + 0.01805574633181095, + 0.01992792822420597, + 0.0010997939389199018, + -0.033429235219955444, + 0.059405747801065445, + 0.018523791804909706, + -0.02167409658432007, + -0.06102590635418892, + -0.03567945212125778, + -0.019171854481101036, + 0.010909055359661579, + -0.025508468970656395, + -0.0404319129884243, + 0.007470722775906324, + 0.009603929705917835, + -0.012385198846459389, + -0.028910797089338303, + -0.010810046456754208, + -0.01496844831854105, + 0.029324837028980255, + -0.01843378320336342, + -0.03956782817840576, + -0.002358228201046586, + 0.0006525631179101765, + -0.02102603390812874, + -0.01922586001455784, + -0.021998127922415733, + -0.025364454835653305, + -0.028118720278143883, + -0.001778797130100429, + -0.022898215800523758, + 0.025598477572202682, + 0.0016764121828600764, + 0.01886582560837269, + -0.005936074536293745, + -0.025742491707205772, + -0.010891053825616837, + 0.025652483105659485, + 0.03051295317709446, + -0.005981078837066889, + -0.020557988435029984, + 0.019855922088027, + 0.024086330085992813, + 0.053933218121528625, + 0.044212277978658676, + -0.0019610647577792406, + 0.025238441303372383, + -0.061493951827287674, + -0.046876534819602966, + -0.02302422747015953, + -0.00974794290959835, + -0.011674129404127598, + -0.028820788487792015, + 0.0006249980069696903, + 0.023708295077085495, + -0.007880262099206448, + 0.02482440136373043, + -0.01511246245354414, + -0.027110623195767403, + -0.016966640949249268, + 0.024842403829097748, + 0.035067394375801086, + 0.009194389916956425, + -0.025670483708381653, + 0.05389721691608429, + 0.028982805088162422, + -0.07301506400108337, + 0.026498563587665558, + -0.019261863082647324, + 0.027506662532687187, + -0.026678580790758133, + 0.019747911021113396, + -0.025022421032190323, + 0.028514759615063667, + 0.016741620376706123, + -0.047956641763448715, + 0.043924249708652496, + 0.005540036130696535, + 0.03614749759435654, + 0.051989030092954636, + -0.05101693794131279, + -0.022826209664344788, + -0.03355524688959122, + 0.023348258808255196, + 0.020179953426122665, + -0.016048552468419075, + -0.003339323215186596, + -0.0040053874254226685, + 0.005909071769565344, + 0.049684807658195496, + -0.0024887407198548317, + 0.0005169875221326947, + 0.08813653141260147, + -0.023366261273622513, + 0.01601254940032959, + -0.012025163508951664, + -0.03440132737159729, + -0.00026960420655086637, + -0.043636221438646317, + -0.04633648321032524, + 0.021746104583144188, + 0.03294318914413452, + 0.03780365735292435, + 0.026138529181480408, + 0.016579603776335716, + -0.007439219858497381, + 0.03116101585328579, + 0.014671419747173786, + 0.028910797089338303, + -0.006975675001740456, + -0.060701873153448105, + -0.010026969946920872, + 5.53061327082105e-05, + -0.011341097764670849, + -0.022142142057418823, + 0.0064266216941177845, + 0.0099279610440135, + -0.05418524146080017, + 0.05720953643321991, + -0.03873974829912186, + -0.01870380900800228, + 0.045868437737226486, + 0.0026327548548579216, + 0.047524597495794296, + -0.03150304779410362, + -0.01277223601937294, + -0.047524597495794296, + -0.039963867515325546, + 0.004608445800840855, + 0.016696615144610405, + -0.01639958657324314, + -0.004462181590497494, + -0.0038208698388189077, + -0.012682227417826653, + -0.015499499626457691, + -0.023726295679807663, + 0.015202471055090427, + -0.006588637363165617, + -0.011251089163124561, + -0.007619237061589956, + 0.03483337163925171, + -0.006615640129894018, + 0.008586830459535122, + 0.059333741664886475, + 0.022862212732434273, + -0.05641745775938034, + -0.02820872887969017, + 0.0056030419655144215, + -0.012322192080318928, + 0.0698467567563057, + -0.01673261821269989, + 0.021602090448141098, + 0.0020870768930763006, + -0.005364519078284502, + 0.003757863538339734, + 0.03780365735292435, + 0.014230377040803432, + 0.006836161483079195, + -0.015589508228003979, + -0.029342839494347572, + 0.003296568989753723, + 0.001457015983760357, + -0.026804594323039055, + 0.004608445800840855, + 0.03650753200054169, + -0.011926153674721718, + -0.022718198597431183, + 0.021908119320869446, + -0.01457240991294384, + 0.025292446836829185, + 0.058109622448682785, + -0.030206922441720963, + -0.005432025529444218, + -0.049180757254362106, + -0.003456334350630641, + 0.017290672287344933, + 0.039675839245319366, + 0.021422073245048523, + 0.025706486776471138, + 0.020702002570033073, + -0.00636811600998044, + -0.041548021137714386, + -0.015274478122591972, + -0.01576952636241913, + 0.019189856946468353, + -0.045220375061035156, + -0.0169756431132555, + -0.021386070176959038, + 0.07927966862916946, + -0.00753822922706604, + -0.0014468900626525283, + 0.015661515295505524, + 0.02878478541970253, + 0.031629059463739395, + -0.05022485926747322, + -0.005125996191054583, + -0.01999993622303009, + -0.027398651465773582, + -0.011458109132945538, + 8.45941249281168e-05, + -0.04374423250555992, + 0.0779835432767868, + 0.00717819482088089, + -0.03935180604457855, + -0.0031165515538305044, + 0.027380649000406265, + 0.04576042667031288, + -0.064806267619133, + -0.012394199147820473, + -0.010720036923885345, + 0.009081878699362278, + 0.01068403385579586, + 0.012241184711456299, + 0.008550827391445637, + 0.030386939644813538, + 0.012466206215322018, + -0.03945981711149216, + -0.04986482486128807, + -0.005918072536587715, + -0.03956782817840576, + 0.03670555353164673, + -0.007439219858497381, + -0.013762331567704678, + -0.03279917314648628, + 0.025958511978387833, + -0.03747962787747383, + -0.019765913486480713, + -0.015499499626457691, + 0.07301506400108337, + -0.03175507113337517, + -0.021818110719323158, + 0.031197018921375275, + 0.014761428348720074, + 0.0023649788927286863, + -0.001104856957681477, + -0.0026395053137093782, + 0.03267316147685051, + 0.006696647964417934, + 0.0345633439719677, + 0.024644384160637856, + -0.013861341401934624, + -7.271015783771873e-05, + 0.030170919373631477, + 0.029972899705171585, + -0.0158415324985981, + 0.0032538147643208504, + 0.052925121039152145, + 0.008087283000349998, + -0.023636287078261375, + -0.03593147546052933, + -0.002398732118308544, + -0.06513030081987381, + 0.010873052291572094, + -0.015544503927230835, + 0.018667805939912796, + 0.011152079328894615, + 0.002911781659349799, + 0.015409491024911404, + 0.020107945427298546, + -0.016147563233971596, + -0.004198906477540731, + 0.07254701852798462, + 0.002053323667496443, + 0.02035997062921524, + 0.0205759909003973, + -0.010278994217514992, + 0.029756879433989525, + -0.006804658565670252, + 9.964245691662654e-05, + 0.08237597346305847, + 0.025508468970656395, + 0.017317675054073334, + -0.05152098461985588, + -0.03420330956578255, + 0.0041313995607197285, + 0.026156531646847725, + 0.03150304779410362, + -0.013195277191698551, + -0.016858631744980812, + -0.009396909736096859, + -0.03708358854055405, + 0.020539987832307816, + -0.07085485756397247, + -0.02288021333515644, + -0.041836049407720566, + -0.022862212732434273, + -0.018235765397548676, + -0.026966609060764313, + -0.010215988382697105, + -0.001597654540091753, + 0.043636221438646317, + 0.0043024164624512196, + 0.01658860594034195, + 0.03909978270530701, + -0.01622856967151165, + 0.015319482423365116, + 0.007974771782755852, + -0.012394199147820473, + -0.002493241336196661, + 0.04496835172176361, + 0.044788334518671036, + 0.02153008244931698, + 0.008879358880221844, + -0.0013793834950774908, + 0.017830725759267807, + 0.006413120776414871, + -0.012511210516095161, + 0.025166435167193413, + -0.04334819316864014, + -0.018253766000270844, + -0.043276187032461166, + 0.048316676169633865, + -0.01747969165444374, + 0.007871261797845364, + 0.021782107651233673, + 0.023348258808255196, + 0.07161092758178711, + 0.008771348744630814, + 0.03512139990925789, + 0.0024054828099906445, + -0.0024459867272526026, + -0.164175882935524, + 0.0029477851931005716, + -0.029090814292430878, + -0.017758717760443687, + -0.017416685819625854, + 0.02518443763256073, + 0.014392392709851265, + -0.018046746030449867, + 0.007871261797845364, + -0.04068393632769585, + 0.004351920913904905, + -0.013861341401934624, + 0.0735551193356514, + -0.009342904202640057, + 0.00046241976087912917, + 0.02547246403992176, + -0.012502210214734077, + -0.03549943491816521, + 0.04741659015417099, + 0.04594044387340546, + -0.010098977014422417, + -0.014491402544081211, + 0.037011582404375076, + -0.022646190598607063, + 0.026750588789582253, + -0.0036453527864068747, + 0.019531890749931335, + 0.004707455635070801, + -0.014383391477167606, + 0.012907248921692371, + -0.008829854428768158, + -0.032115109264850616, + 0.0374436229467392, + 0.06675045937299728, + -0.02892879955470562, + -0.017830725759267807, + 0.018793819472193718, + 0.01032399944961071, + 0.01920785941183567, + 0.016354583203792572, + 0.012331193313002586, + 0.007929767481982708, + 0.020053939893841743, + 0.00927989836782217, + 0.05497732013463974, + 0.060773879289627075, + -0.005481530446559191, + -0.00974794290959835, + -0.02964886836707592, + 0.008681340143084526, + 0.018298771232366562, + -0.0252564437687397, + 0.020197954028844833, + 0.012673226185142994, + 0.02001793682575226, + 0.0023852307349443436, + -0.03438332676887512, + 0.020738007500767708, + -0.012133173644542694, + 0.061565957963466644, + -0.07459922134876251, + 0.029162822291254997, + -0.013438300229609013, + 0.0004365422355476767, + 0.026714585721492767, + 0.01987392269074917, + -0.01828976906836033, + 0.023222247138619423, + 0.014500402845442295, + -0.007007177919149399, + -0.002772268373519182, + 0.0033550746738910675, + 0.018361777067184448, + -0.03175507113337517, + 0.02223215065896511, + -0.025652483105659485, + 0.07913565635681152, + -0.015778526663780212, + -0.01783972606062889, + -0.00240323250181973, + 0.008564328774809837, + 0.029234828427433968, + 0.001993692945688963, + 0.0374436229467392, + 0.001419887412339449, + -0.0025382456369698048, + -0.005931573919951916, + -0.029702873900532722, + -0.05792960524559021, + -0.015553505159914494, + -0.014734425581991673, + -0.042916152626276016, + 0.01834377460181713, + 0.012988257221877575, + -0.008573330007493496, + 0.0013490054989233613, + -0.0020668250508606434, + -0.044500306248664856, + -0.05454527959227562, + -0.027686679735779762, + -0.045436397194862366, + -0.028586765751242638, + 0.013501306064426899, + 0.020756008103489876, + -0.058613672852516174, + 0.010711036622524261, + 0.004277663771063089, + 0.010152982547879219, + 0.0022299657575786114, + -0.03497738391160965, + -0.028262734413146973, + 0.0035958478692919016, + -0.04532838612794876, + 0.004228159319609404, + 0.0040571424178779125, + -0.027434654533863068, + 0.02367229014635086, + -0.04194406047463417, + -0.01699364371597767, + -0.020954027771949768, + 0.0012713730102404952, + 0.057965610176324844, + 0.029594864696264267, + -0.044500306248664856, + -0.031053004786372185, + -0.00480646500363946, + 0.03945981711149216, + -0.008123286068439484, + -0.03686756640672684, + -0.007542729843407869, + 0.027614671736955643, + -0.0036566038616001606, + -0.011098073795437813, + -0.0037646142300218344, + -0.014932445250451565, + 0.006881165783852339, + -0.00753822922706604, + 0.056669484823942184, + -0.043276187032461166, + -0.023546278476715088, + 0.0025652481708675623, + 0.04302416369318962, + -0.01908184587955475, + -0.02727263979613781, + -0.005495031829923391, + 0.05778559297323227, + 0.016813626512885094, + -0.00429791584610939, + -0.0041268994100391865, + -0.006660644430667162, + 0.005859566852450371, + -0.008807351812720299, + -0.02201613038778305, + 0.05591341108083725, + -0.056525468826293945, + -0.008667838759720325, + 0.030350936576724052, + 0.003494588192552328, + -0.021836113184690475, + 0.017245668917894363, + -0.009324902668595314, + -0.05137697234749794, + 0.0111880823969841, + 0.0008010775200091302, + 0.008937864564359188, + 0.044212277978658676, + 0.008159289136528969, + 0.02835274301469326, + 0.006399619393050671, + -0.015886537730693817, + -0.0028037712909281254, + -0.019459882751107216, + -0.015391489490866661, + 0.0316830649971962, + -0.001397385261952877, + 0.003852372756227851, + 0.011035067960619926, + 0.0015312731266021729, + 0.021332064643502235, + -0.045796431601047516, + -0.001247745705768466, + 0.04705655202269554, + 0.022358164191246033, + -0.010495015420019627, + 0.03711959347128868, + 0.028406748548150063, + 0.02244817279279232, + 0.036363519728183746, + -0.004608445800840855, + -0.024734392762184143, + 0.014275381341576576, + -0.005567038897424936, + 0.007182694971561432, + -0.0417640395462513, + 0.025022421032190323, + -0.0007470722775906324, + -0.007155692204833031, + 0.0020060690585523844, + -0.0018249265849590302, + 0.0389917716383934, + 0.005409523379057646, + -0.005062989890575409, + -0.030980998650193214, + -0.012871245853602886, + -0.033573247492313385, + 0.00496398052200675, + 0.002235591411590576, + -0.006858663633465767, + 0.005499531980603933, + 0.012934251688420773, + 0.028694776818156242, + -0.014788431115448475, + 0.014383391477167606, + 0.029306836426258087, + 0.011467109434306622, + 0.005436526145786047, + 0.0008157039410434663, + -0.002008319366723299, + 0.002108454005792737, + 0.0360574908554554, + -0.00847432017326355, + 0.014194373972713947, + -0.019549891352653503, + -0.010711036622524261, + 0.027938703075051308, + -0.019801916554570198, + -0.011926153674721718, + -0.0019340621074661613, + 0.03382527455687523, + -0.03281717374920845, + 0.0016415338031947613, + 0.012385198846459389, + 0.0555533766746521, + 0.029630867764353752, + 0.02100803330540657, + -0.029270831495523453, + -0.00404589157551527, + 0.04432028904557228, + 0.006269106641411781, + -0.008370810188353062, + 0.07517527788877487, + 0.01935187168419361, + -0.0758233368396759, + 0.003330322215333581 + ] + } + }, + { + "type": "子系统", + "properties": { + "名称": "汽车主配件", + "子系统编码": "A1", + "embedding": [ + -0.023050755262374878, + -0.020414290949702263, + -0.04639444872736931, + 0.029220813885331154, + -0.03896108642220497, + 0.030740443617105484, + 0.06397087872028351, + -0.0001336684072157368, + -0.019388997927308083, + -0.012019714340567589, + 0.00395698519423604, + 0.002627310110256076, + 0.018519332632422447, + 0.02960529923439026, + -0.014619561843574047, + -0.06646087765693665, + 0.006362301297485828, + -0.016203271225094795, + 0.0067513627000153065, + -0.023435238748788834, + -0.03244315832853317, + 0.017677128314971924, + -0.014766031876206398, + 0.054596785455942154, + 0.019480543211102486, + -0.012349272146821022, + -0.025540748611092567, + 0.005419399123638868, + -0.007140424568206072, + 0.027957508340477943, + -0.053315170109272, + -0.058624714612960815, + -0.01583709567785263, + -0.027444861829280853, + -0.054120756685733795, + -0.08099804818630219, + -0.02308737300336361, + -0.044050928205251694, + -0.06609469652175903, + 0.02387464977800846, + -0.04170740395784378, + -0.043574899435043335, + 0.04240313544869423, + -0.00943817663937807, + -0.0507519394159317, + -0.03899770230054855, + 0.0017954048234969378, + -0.023654945194721222, + -0.009090309962630272, + -0.024405604228377342, + -0.004851826932281256, + 0.018784809857606888, + 0.03566550463438034, + -0.028030743822455406, + 0.02464361861348152, + 0.07806864380836487, + -0.03443881496787071, + -0.012605595402419567, + -0.052326496690511703, + -0.010490931570529938, + -0.02634633518755436, + 0.031527720391750336, + 0.03139955922961235, + 0.052399732172489166, + 0.03561057895421982, + 0.06422720104455948, + -0.002265711547806859, + -0.008705825544893742, + -0.003979871049523354, + -0.01331963762640953, + -0.020908627659082413, + -0.05064208805561066, + 0.012697139754891396, + -0.007241122890263796, + -0.005927467718720436, + 0.026913907378911972, + 0.036288004368543625, + 0.0061517502181231976, + 0.00247626262716949, + -0.008490697480738163, + 0.008994188159704208, + -0.013841438107192516, + 0.025467513129115105, + 0.012806992046535015, + -0.025998469442129135, + 0.042329899966716766, + -0.04134122654795647, + 0.04701694846153259, + -0.05679383873939514, + -0.006980222649872303, + -0.011845781467854977, + -0.00852273777127266, + 0.03509793430566788, + -0.01002405770123005, + -0.03648940101265907, + 0.025156265124678612, + 0.015013200230896473, + 0.006385187152773142, + 0.026181556284427643, + -0.002265711547806859, + -0.016990547999739647, + 0.025723837316036224, + 0.04038916900753975, + -0.03207698464393616, + 0.09029890596866608, + -0.023929577320814133, + 0.04903091490268707, + -0.030246105045080185, + -0.024222517386078835, + 0.00778123177587986, + 0.008582240901887417, + -0.014216768555343151, + -0.015397684648633003, + -0.04218342900276184, + -0.02387464977800846, + -0.03293749690055847, + -0.002620444167405367, + -0.056354425847530365, + 0.045332539826631546, + -0.01317316759377718, + 0.01533360406756401, + 0.046797242015600204, + 0.053095463663339615, + -0.014573789201676846, + 0.06334838271141052, + -0.01807076670229435, + 0.014116070233285427, + 0.01610257290303707, + 0.0101705277338624, + 0.002105509862303734, + -0.02532104402780533, + 0.025284426286816597, + -0.02460700087249279, + 0.012752065435051918, + -0.054853107780218124, + -0.04064549505710602, + 0.029696842655539513, + 0.010307843796908855, + -0.025998469442129135, + -0.021183259785175323, + 0.025247808545827866, + 0.04394107311964035, + -0.020212894305586815, + -0.02839691936969757, + 0.050861794501543045, + 0.019150985404849052, + 0.02231840416789055, + 0.01456463523209095, + 0.015708934515714645, + -0.05906412750482559, + 0.0325896292924881, + 0.004133207257837057, + 0.03588521108031273, + 0.00166609906591475, + 0.023416930809617043, + -0.04485651105642319, + 0.02306906320154667, + 0.06019927188754082, + 0.018729882314801216, + 0.007968896999955177, + 0.031546030193567276, + 0.04276931285858154, + 0.011305672116577625, + -0.053388405591249466, + -0.0013193765189498663, + -0.015754705294966698, + 0.03932726010680199, + -0.012202802114188671, + -0.021659286692738533, + 0.01190986204892397, + 0.029001109302043915, + -0.002659350400790572, + 0.008335072547197342, + -0.01880311779677868, + 0.042256664484739304, + -0.015617390163242817, + 0.024661928415298462, + -0.008838564157485962, + 0.019169293344020844, + -0.006417227443307638, + 0.024295752868056297, + 0.0019018246093764901, + 0.002709699561819434, + -0.0165419839322567, + -0.01232180930674076, + 0.02239163964986801, + 0.07301541417837143, + -0.0361415334045887, + 0.013475262559950352, + 0.05122796818614006, + -0.011241591535508633, + -0.02237332984805107, + 0.0057489569298923016, + -0.07924040406942368, + 0.02288597635924816, + -0.009374096058309078, + 0.010838798247277737, + -0.008110789582133293, + 0.018006686121225357, + -0.04287916421890259, + -0.0203410554677248, + -0.016505366191267967, + 0.047859154641628265, + -0.012596441432833672, + -0.021640978753566742, + -0.01305416040122509, + 0.005236311350017786, + -0.04602827504277229, + 0.004860981367528439, + -0.019388997927308083, + 0.03339521586894989, + -0.03885123133659363, + 0.012880227528512478, + -0.0025815381668508053, + -0.027682876214385033, + -0.0013914672890678048, + 0.05423060804605484, + -0.027280082926154137, + 0.01628565974533558, + -0.02131142094731331, + 0.006833752617239952, + 0.03421911224722862, + -0.01761304773390293, + 0.037038665264844894, + 0.004497094079852104, + -0.034823302179574966, + 0.009026228450238705, + 0.01506812684237957, + -0.053644727915525436, + -0.01753981225192547, + 0.011497913859784603, + 0.059100743383169174, + -0.036251384764909744, + -0.03495146334171295, + 0.01116835605353117, + 0.013493571430444717, + -0.033248744904994965, + 0.031253088265657425, + 0.008435770869255066, + 0.055365752428770065, + 0.05547560378909111, + 0.0036503132432699203, + -0.004993719980120659, + -0.01002405770123005, + -0.0336698479950428, + -0.030777059495449066, + 0.02107340656220913, + 0.011452142149209976, + -0.04478327929973602, + 0.007584412582218647, + -0.05379119887948036, + -0.020395981147885323, + -0.03335859999060631, + -0.0073555526323616505, + -0.008197756484150887, + 0.034530360251665115, + 0.010481776669621468, + -0.0070534576661884785, + 0.01755812019109726, + -0.018519332632422447, + 0.0056116413325071335, + 0.07404071092605591, + 0.01602933742105961, + 0.008824832737445831, + 0.011470451019704342, + 0.03191220387816429, + 0.0003121074987575412, + 0.012349272146821022, + -0.046284597367048264, + 0.04295239970088005, + -0.030447501689195633, + -0.00893468502908945, + 0.03009963594377041, + 0.011095121502876282, + 0.023545091971755028, + 0.049580179154872894, + -0.006934450473636389, + -0.03888785094022751, + 0.02689559943974018, + -0.04342842847108841, + 0.0381188802421093, + -0.006797134876251221, + 0.03837520256638527, + 0.011653538793325424, + 0.012779529206454754, + 0.03943711519241333, + -0.05415737256407738, + 0.01493996474891901, + -0.02911096066236496, + -0.053571492433547974, + -0.006517925765365362, + 0.0031948823016136885, + 0.08041216433048248, + -0.0034008559305220842, + -0.043281957507133484, + 0.020267819985747337, + -0.023691562935709953, + -0.13497233390808105, + -0.01529698632657528, + -0.03493315353989601, + -0.0094290217384696, + 0.014573789201676846, + -0.034512050449848175, + -0.059906329959630966, + -0.018180619925260544, + -0.008229796774685383, + 0.008824832737445831, + -0.01067401934415102, + -0.05979647859930992, + -0.0335783027112484, + -0.03932726010680199, + -0.030960148200392723, + -0.019462233409285545, + -0.036269694566726685, + 0.029037727043032646, + -0.009392404928803444, + -0.008481542579829693, + -0.03139955922961235, + -0.020762156695127487, + 0.030777059495449066, + -0.016880696639418602, + -0.034036021679639816, + -0.06441029161214828, + 0.03216852620244026, + 0.04771268367767334, + -0.016917312517762184, + 0.022666269913315773, + -0.004746551625430584, + 0.008065017871558666, + 0.012642213143408298, + 0.05020267516374588, + -0.013575960882008076, + -0.03888785094022751, + -0.012651367112994194, + -0.010353615507483482, + -0.015635699033737183, + 0.0007186196162365377, + -0.001145443064160645, + 0.06462999433279037, + 0.005167653318494558, + 0.004428436513990164, + -0.013026697561144829, + -0.0801924616098404, + -0.003181150648742914, + -0.0026067127473652363, + 0.006128864362835884, + -0.03193051367998123, + 0.003155976068228483, + -0.02208038978278637, + 0.04134122654795647, + -0.004227039869874716, + -0.043538279831409454, + 0.014811803586781025, + -0.0062524485401809216, + 0.009996593929827213, + 0.02482670731842518, + -0.010683173313736916, + -0.043318573385477066, + -0.047309890389442444, + 0.02583369053900242, + -0.0012232554145157337, + -0.03520778566598892, + -0.020633995532989502, + 0.04269607737660408, + -0.004920484963804483, + -0.0034672252368181944, + -0.027756111696362495, + -0.008943838998675346, + -0.045112837105989456, + 0.023508474230766296, + -0.024753471836447716, + 0.0035930981393903494, + 0.013283020816743374, + -0.010243763215839863, + 0.0013640042161569, + -0.01732926070690155, + -0.08693008869886398, + 0.019132675603032112, + 0.03639785572886467, + 0.026254791766405106, + -0.014573789201676846, + -0.008985034190118313, + -0.015269523486495018, + 0.00301408302038908, + -0.002257701475173235, + 0.024259135127067566, + 0.22087712585926056, + 0.010600783862173557, + -0.00639891903847456, + 0.0012667387491092086, + 0.07755599170923233, + -0.006920719053596258, + 0.02638295292854309, + -0.07330835610628128, + 0.021769139915704727, + -0.03147279471158981, + -0.02087200991809368, + 0.0501660592854023, + 0.015232905745506287, + 0.00103559042327106, + -0.000795859785284847, + 0.06840160489082336, + 0.01658775471150875, + -0.011113429442048073, + 0.04716341942548752, + -0.042293284088373184, + -0.025540748611092567, + -0.018244700506329536, + -0.008531891740858555, + -0.02330707758665085, + -0.031234780326485634, + -0.018766500055789948, + 0.028287066146731377, + 0.05104488134384155, + 0.010637401603162289, + 0.04914076626300812, + -0.014125224202871323, + 0.006078515201807022, + 0.021531125530600548, + -0.03542749211192131, + -0.07001277804374695, + -0.016633527353405952, + -0.010143064893782139, + -0.0031376671977341175, + 0.02685898169875145, + 0.06503278762102127, + -0.05906412750482559, + -0.03822873532772064, + 0.04485651105642319, + 0.018784809857606888, + 0.04335519298911095, + -0.07982628047466278, + 0.023691562935709953, + 0.0038951931055635214, + 0.08107127994298935, + -0.004114898387342691, + -0.04613812640309334, + -0.02660265751183033, + -0.040022995322942734, + 0.016166653484106064, + -0.013154858723282814, + -0.0025128801353275776, + 0.015525845810770988, + -0.027060378342866898, + -0.0012083795154467225, + 0.025449205189943314, + -0.0012953461846336722, + -0.0030026400927454233, + -0.028781402856111526, + -0.006037320476025343, + 0.027316700667142868, + -0.02059737779200077, + -0.004764860030263662, + 0.008449502289295197, + 0.03161926567554474, + 0.003041546093299985, + 0.008238951675593853, + 0.03546410799026489, + 0.024167589843273163, + 0.005222579929977655, + 0.04643106833100319, + 0.01432662084698677, + -0.008742442354559898, + 0.055622074753046036, + 0.009209317155182362, + -0.0115528404712677, + -0.05796559900045395, + -0.006234139669686556, + -0.030831987038254738, + -0.002314916579052806, + -0.016450438648462296, + -0.01685323193669319, + 0.023416930809617043, + 0.02958698943257332, + -0.018134847283363342, + -0.03548241779208183, + -0.021714214235544205, + -0.020414290949702263, + 0.0048060547560453415, + 0.01784190721809864, + -0.08092480897903442, + -0.009351209737360477, + 0.011497913859784603, + -0.01128736324608326, + -0.03163757175207138, + 0.01754896715283394, + -0.0063531468622386456, + -0.003508420195430517, + -0.0068520610220730305, + -0.006362301297485828, + 0.009223048575222492, + -0.005753534380346537, + 0.016468748450279236, + -0.005922890733927488, + -0.029294049367308617, + -0.0076072984375059605, + 0.01493996474891901, + 0.027774419635534286, + 0.006508771330118179, + -0.020780466496944427, + 0.016706762835383415, + 0.031509410589933395, + 0.045845188200473785, + 0.014134379103779793, + -0.009104041382670403, + 0.01730179786682129, + -0.05221664160490036, + -0.046797242015600204, + -0.02237332984805107, + -0.011104275472462177, + -0.031491104513406754, + -0.04665077477693558, + -0.017494039610028267, + 0.010564166121184826, + -0.014189304783940315, + 0.04320872202515602, + -0.01006067544221878, + -0.014921655878424644, + -0.03405433148145676, + 0.019755175337195396, + 0.04478327929973602, + 0.026419570669531822, + 0.01279783807694912, + 0.025449205189943314, + 0.03691050037741661, + -0.06148088723421097, + 0.0034489165991544724, + -0.03570212423801422, + 0.01937068998813629, + -0.01882142573595047, + 0.007511177100241184, + -0.045295923948287964, + 0.030978456139564514, + -0.02231840416789055, + -0.029495446011424065, + 0.03557395935058594, + -0.005378204397857189, + 0.020157966762781143, + 0.022446565330028534, + -0.03742314875125885, + -0.022757815197110176, + -0.02259303629398346, + 0.004389530047774315, + -0.018491867929697037, + -0.008632590062916279, + -0.004462765529751778, + -0.017741208896040916, + -0.01937068998813629, + 0.04800562188029289, + -0.011809163726866245, + -0.003114781342446804, + 0.07301541417837143, + -0.027426553890109062, + 0.014280849136412144, + -0.009200162254273891, + -0.017658818513154984, + 0.0011048205196857452, + -0.05488972365856171, + -0.013164013624191284, + -0.014601252973079681, + 0.04796900600194931, + 0.056867074221372604, + 0.012395044788718224, + 0.018931278958916664, + 0.027316700667142868, + 0.025925233960151672, + 0.018912971019744873, + 0.0432453416287899, + -0.022647961974143982, + -0.056610748171806335, + -0.012129567563533783, + -0.022940902039408684, + -0.018748192116618156, + -0.009776889346539974, + 0.015269523486495018, + -0.0015711222076788545, + -0.0657651424407959, + 0.07784893363714218, + -0.019279146566987038, + 0.0035999640822410583, + 0.03191220387816429, + 0.006668973248451948, + 0.043574899435043335, + -0.04844503477215767, + -0.02934897504746914, + -0.04687047749757767, + -0.014857575297355652, + -0.016697607934474945, + -0.002181033603847027, + -0.00584050128236413, + -0.031070001423358917, + -0.008014668710529804, + -0.01887635327875614, + 0.0022588458377867937, + -0.016130035743117332, + -0.01659690961241722, + -0.0023847187403589487, + -0.02991654723882675, + 0.012752065435051918, + 0.05305884778499603, + -0.0014887327561154962, + 0.0055612921714782715, + 0.04972665011882782, + 0.01905944012105465, + -0.05631780996918678, + -0.03991314023733139, + 0.014592098072171211, + 0.013896364718675613, + 0.054633401334285736, + -0.02760964073240757, + 0.017631355673074722, + -0.01517797913402319, + 0.006568274926394224, + 0.011232436634600163, + 0.028433537110686302, + 0.007378438487648964, + 0.012568977661430836, + 0.004172113258391619, + -0.020981863141059875, + -0.008820255286991596, + -0.011397216469049454, + -0.0562811903655529, + 0.008380844257771969, + 0.02859831601381302, + 0.04386783763766289, + -0.015388529747724533, + 0.021055098623037338, + 0.009621264412999153, + -0.007483714260160923, + 0.06389764696359634, + -0.023911267518997192, + 0.0050852638669312, + -0.029019417241215706, + 0.012742911465466022, + 0.012834454886615276, + 0.012523205950856209, + 0.021000171080231667, + 0.029513753950595856, + 0.005922890733927488, + -0.00877906009554863, + -0.05496295914053917, + -0.06360470503568649, + -0.01882142573595047, + 0.0034122990909963846, + -0.0833415687084198, + -0.02486332505941391, + -0.009021651931107044, + 0.0657651424407959, + -0.024204207584261894, + -0.015461765229701996, + -0.021476199850440025, + 0.021695904433727264, + 0.03511624038219452, + -0.03958358243107796, + -0.008742442354559898, + -0.04115813970565796, + -0.014875884167850018, + -0.0002657634031493217, + -0.02790258266031742, + -0.04449033737182617, + 0.0714774802327156, + 0.0002687671803869307, + -0.010921187698841095, + -0.009776889346539974, + 0.02762795053422451, + 0.0446368083357811, + -0.05305884778499603, + -0.03689219430088997, + -0.0007186196162365377, + 0.012742911465466022, + 0.01652367413043976, + -0.025925233960151672, + 0.009209317155182362, + 0.04298901557922363, + 0.019663630053400993, + -0.0061517502181231976, + -0.03236992284655571, + -0.006545389071106911, + -0.012999234721064568, + 0.0432453416287899, + -0.01379566639661789, + 0.0024373563937842846, + -0.025760455057024956, + 0.017494039610028267, + -0.011891553178429604, + -0.013484417460858822, + 0.00590915884822607, + 0.061883680522441864, + -0.02607170306146145, + -0.028030743822455406, + 0.02030443772673607, + 0.024478839710354805, + 0.00564368162304163, + 0.007584412582218647, + -0.00024716852931305766, + 0.038301970809698105, + 0.002785223303362727, + 0.031289707869291306, + 0.01887635327875614, + -0.020231202244758606, + 0.03863152861595154, + 0.03892446681857109, + 0.0320952944457531, + -0.033761393278837204, + -0.0067010135389864445, + 0.029495446011424065, + 0.02381972409784794, + -0.022428255528211594, + -0.033285364508628845, + 0.0017061495454981923, + -0.037258367985486984, + 0.028946181759238243, + -0.0014589809579774737, + 0.03458528593182564, + 0.016917312517762184, + -0.006627778522670269, + 0.009621264412999153, + 0.014463936910033226, + -0.006247871555387974, + 0.015864558517932892, + 0.07495614886283875, + -0.009584646672010422, + 0.028067361563444138, + -0.010390233248472214, + 0.0018263008678331971, + -2.2868096493766643e-05, + -0.0004854687722399831, + 0.007712573744356632, + 0.04588180407881737, + 0.0031285129953175783, + 0.01680746115744114, + -0.051740612834692, + -0.039034321904182434, + -0.014665333554148674, + 0.025174573063850403, + 0.02991654723882675, + -0.027920890599489212, + -0.020908627659082413, + -0.011195819824934006, + -0.052363112568855286, + 0.014235077425837517, + -0.05346164107322693, + 0.010573321022093296, + -0.03896108642220497, + 0.013759048655629158, + -0.020157966762781143, + -0.02934897504746914, + 0.007511177100241184, + -0.0035267288330942392, + 0.026511114090681076, + 0.014857575297355652, + 0.03460359573364258, + 0.049543559551239014, + -0.042036961764097214, + 0.01779613457620144, + 0.022776123136281967, + -0.020762156695127487, + 0.0018972473917528987, + 0.034274037927389145, + 0.05368134379386902, + 0.03396278992295265, + 0.008440348319709301, + -0.015223750844597816, + 0.010463467799127102, + 0.011882398277521133, + 0.014436474069952965, + 0.014317466877400875, + -0.07173380255699158, + -0.023783106356859207, + -0.03361492231488228, + 0.037276677787303925, + -6.254308391362429e-05, + 0.03991314023733139, + 0.004435302224010229, + 0.014528017491102219, + 0.03899770230054855, + 0.008449502289295197, + 0.012184493243694305, + -0.01632227748632431, + 0.004355201032012701, + -0.14859406650066376, + -0.01131482608616352, + -0.021549435332417488, + -0.00994166824966669, + -0.04020608216524124, + 0.01028953492641449, + 0.0063531468622386456, + -0.022647961974143982, + 0.023911267518997192, + -0.04042578861117363, + 0.008504428900778294, + 0.017201099544763565, + 0.08539215475320816, + -0.009740271605551243, + -0.010976114310324192, + 0.028799712657928467, + -0.011644384823739529, + -0.03262624889612198, + 0.032260071486234665, + 0.01580963283777237, + -0.01704547554254532, + -0.005694030784070492, + 0.01657860167324543, + -0.0381188802421093, + 0.02057906985282898, + -0.010216299444437027, + -0.006371455732733011, + 0.043831221759319305, + -0.018272163346409798, + 0.008225219324231148, + 0.010316997766494751, + -0.012395044788718224, + 0.04445371776819229, + 0.03994975984096527, + -0.031802352517843246, + -0.006934450473636389, + 0.01887635327875614, + 0.005753534380346537, + 0.008303032256662846, + 0.022995827719569206, + 0.021787449717521667, + 0.00943817663937807, + -0.0027989549562335014, + -0.032809335738420486, + 0.018620029091835022, + 0.05221664160490036, + 0.01959039457142353, + 0.02235502190887928, + -0.05291237682104111, + 0.0031102041248232126, + 0.028488462790846825, + -0.016422975808382034, + 0.034786682575941086, + 0.01959039457142353, + 0.018208082765340805, + 0.010573321022093296, + -0.060895003378391266, + 0.04101166874170303, + -0.014528017491102219, + 0.052399732172489166, + -0.06898748874664307, + 0.023929577320814133, + 0.0036663333885371685, + -0.026950525119900703, + 0.018894661217927933, + 0.017219407483935356, + -0.052619434893131256, + -0.007245699875056744, + 0.001590575324371457, + -0.012147876434028149, + 0.023014137521386147, + -0.0036342928651720285, + 0.015434302389621735, + -0.025412587448954582, + 0.03008132614195347, + 0.00018108528456650674, + 0.06400749832391739, + -0.0053598955273628235, + -0.01911436766386032, + -0.013475262559950352, + 0.010600783862173557, + 0.007978050969541073, + 0.00827099196612835, + 0.038558293133974075, + -0.0008931251941248775, + 0.013603423722088337, + -0.008650898933410645, + -0.04525930434465408, + -0.021164949983358383, + -0.014354083687067032, + -0.018134847283363342, + -0.0598330944776535, + 0.013731585815548897, + -0.03793579339981079, + -0.0011889263987541199, + -0.027206847444176674, + -0.0136766592040658, + -0.05001958832144737, + -0.032553013414144516, + -0.024442221969366074, + -0.043538279831409454, + -0.028818020597100258, + 0.0021936208941042423, + 0.008426615968346596, + -0.04243975505232811, + -0.02006642334163189, + -0.01355765201151371, + 0.010756408795714378, + -0.0010653422214090824, + -0.05291237682104111, + -0.019242528825998306, + 0.016679299995303154, + -0.02938559278845787, + 0.005195116624236107, + 0.00855020061135292, + -0.015699779614806175, + 0.011278209276497364, + -0.0336698479950428, + -0.02808566950261593, + -0.05514604598283768, + -0.03546410799026489, + 0.054084137082099915, + -0.0034878228325396776, + -0.05228987708687782, + -0.015644853934645653, + -0.005652836058288813, + 0.0325896292924881, + -0.000766680168453604, + -0.014491399750113487, + -0.020908627659082413, + 0.023911267518997192, + -0.04020608216524124, + -0.003863152815029025, + 0.010884569957852364, + -0.012779529206454754, + 0.008252683095633984, + -0.01532444916665554, + 0.05591501668095589, + -0.022666269913315773, + -0.025430897250771523, + -0.019279146566987038, + 0.02486332505941391, + -0.02585199847817421, + -0.02436898648738861, + 0.014692796394228935, + 0.05606148764491081, + -0.037294987589120865, + 6.336554361041635e-05, + 0.005954931024461985, + -0.0016214713687077165, + -0.00815198477357626, + 0.003268117317929864, + -0.02532104402780533, + 0.0391075573861599, + -0.016688453033566475, + 0.0018091363599523902, + 0.03323043882846832, + 0.017759516835212708, + -0.008225219324231148, + 0.04302563518285751, + -0.004774014465510845, + -0.05404752120375633, + 0.023270459845662117, + -0.03892446681857109, + 0.02938559278845787, + 0.034768372774124146, + 2.794592182908673e-05, + 0.025504130870103836, + 0.0024991484824568033, + -0.003764742985367775, + -0.017631355673074722, + 0.0006385187152773142, + 0.0007426498923450708, + 0.01190986204892397, + 0.0015859981067478657, + 0.011150047183036804, + 0.015489228069782257, + -0.008586818352341652, + 0.04112152010202408, + -0.020926935598254204, + -0.011882398277521133, + 0.05298561230301857, + 0.013310483656823635, + 0.00015076136332936585, + 0.04892106354236603, + 0.029477136209607124, + 0.031253088265657425, + 0.05803883448243141, + 0.0019922242499887943, + -0.03236992284655571, + -0.004243060015141964, + -0.018967896699905396, + 0.013209785334765911, + -0.04438048601150513, + 0.025540748611092567, + -0.016715917736291885, + 0.02257472649216652, + 0.01578216813504696, + -0.0054560168646276, + 0.01855594851076603, + -0.009465639479458332, + -0.02156774327158928, + -0.0501660592854023, + -0.037294987589120865, + -0.04639444872736931, + 0.005254620220512152, + 0.00395698519423604, + -0.011424679309129715, + -0.017375033348798752, + 0.03921740874648094, + 0.005382781382650137, + -0.018912971019744873, + 0.005076109431684017, + 0.02867155149579048, + 0.03396278992295265, + 0.0026982566341757774, + -0.004140072967857122, + 0.033505067229270935, + 0.001304500619880855, + 0.03116154484450817, + 0.013310483656823635, + 0.0023801415227353573, + -0.004998296964913607, + -0.053864434361457825, + 0.03509793430566788, + -0.00817944761365652, + 0.03335859999060631, + -0.04569871723651886, + 0.008985034190118313, + -0.03185727819800377, + 0.03009963594377041, + 0.0015756994253024459, + 0.05045900121331215, + 0.014866730198264122, + 0.006490462925285101, + -0.03619645908474922, + -0.03665417805314064, + 0.009094886481761932, + 0.04298901557922363, + -0.028232140466570854, + 0.0938141942024231, + 0.03940049558877945, + -0.0442340150475502, + -0.005053223576396704 + ] + } + }, + { + "type": "设备", + "properties": { + "名称": "发动机", + "设备编码": "B01001", + "embedding": [ + -0.001270790584385395, + 0.018019067123532295, + -0.011519914492964745, + -0.01709747314453125, + -0.027225399389863014, + -0.0074783447198569775, + 0.02113904431462288, + 0.016732675954699516, + 0.011020718142390251, + -0.02202223613858223, + -0.02862698771059513, + -0.01298870425671339, + 0.03488614037632942, + -0.001995585160329938, + -0.008371138013899326, + -0.04995803162455559, + -0.009599928744137287, + 0.009028732776641846, + -0.02181103825569153, + -0.016492677852511406, + 0.004048769827932119, + -0.015820682048797607, + 0.04308447986841202, + 0.011913511902093887, + -0.0058463565073907375, + 0.011260716244578362, + -0.018364664167165756, + -0.021119844168424606, + 0.023846223950386047, + 0.001947585609741509, + -0.009907126426696777, + -0.02699499949812889, + -0.047500450164079666, + -0.039398107677698135, + -0.02127344347536564, + -0.046002861112356186, + 0.0026303804479539394, + -0.011279916390776634, + -0.06312913447618484, + 0.02787819318473339, + -0.002747979713603854, + -0.04047330096364021, + 0.011260716244578362, + -0.04078049957752228, + -0.012355108745396137, + -0.036402929574251175, + -0.01792306825518608, + -0.03066217340528965, + -0.04631005600094795, + -0.033407751470804214, + -0.025785408914089203, + -0.03417574614286423, + 0.04162529110908508, + 0.002251183381304145, + -0.0012575907167047262, + 0.008347137831151485, + -0.057829972356557846, + 0.027091000229120255, + -0.10959278792142868, + 0.026822201907634735, + 0.01155831478536129, + 0.03916770964860916, + -0.04127969592809677, + -0.024710217490792274, + 0.00920153222978115, + 0.07265226542949677, + 0.008755135349929333, + -0.0005786957335658371, + -0.015129487961530685, + -0.08179139345884323, + 0.011855912394821644, + -0.02753259614109993, + 0.01846066303551197, + -0.00863033626228571, + -0.05314520746469498, + 0.01535988599061966, + 0.046002861112356186, + -0.009676728397607803, + -0.013775898143649101, + -0.00832313857972622, + 0.05433559790253639, + -0.020716646686196327, + 0.015638284385204315, + -0.011481515131890774, + -0.012220709584653378, + 0.03350375220179558, + -0.03930211067199707, + 0.010665521025657654, + -0.03671012818813324, + -0.02691820077598095, + -0.009196732193231583, + 0.0015299887163564563, + 0.0014411893207579851, + -0.021177442744374275, + -0.03031657636165619, + -0.03407974913716316, + -0.02081264555454254, + 0.06320593506097794, + -0.002966378116980195, + -0.007833542302250862, + 0.005399960093200207, + 0.04008930176496506, + 0.02820459194481373, + -0.046886052936315536, + 0.02686060033738613, + 0.0012971904361620545, + 0.031026970595121384, + -0.002249983372166753, + -0.028665388002991676, + 0.00040559700573794544, + 0.02461421862244606, + 0.04070369899272919, + 0.016233479604125023, + 0.00999352615326643, + -0.022387035191059113, + -0.0320061631500721, + 0.005231961142271757, + -0.03432934731245041, + 0.02603500708937645, + -0.005908756051212549, + 0.007723142858594656, + -0.004202369134873152, + 0.006484752055257559, + -0.03039337508380413, + -0.014428692869842052, + -0.025651009753346443, + 0.021907037124037743, + 0.017702268436551094, + -0.04581085965037346, + -0.03210216388106346, + 0.001558788469992578, + 0.017087873071432114, + -0.06328272819519043, + 0.026150206103920937, + 0.02303982898592949, + -0.050418827682733536, + -0.0009179931948892772, + -0.010492722503840923, + -0.009436730295419693, + -0.017865467816591263, + 0.0005201961612328887, + 0.010444723069667816, + 0.028588589280843735, + -0.02169583924114704, + 0.015878282487392426, + -0.022943830117583275, + 0.013420701026916504, + -0.02113904431462288, + -0.03073897212743759, + -0.03788131847977638, + 0.004399167373776436, + 0.02753259614109993, + 0.052031613886356354, + 0.029010985046625137, + -0.013123102486133575, + 0.0002555981045588851, + -0.05790677294135094, + 0.0498812310397625, + -0.041356492787599564, + 0.03515493869781494, + 0.06792909651994705, + 0.025535810738801956, + -0.02196463756263256, + -0.0015179887413978577, + 0.01661747694015503, + -0.0187582615762949, + 0.058981962502002716, + 0.0014339893823489547, + -0.02603500708937645, + -0.012575906701385975, + 0.026399804279208183, + 0.02726379781961441, + -0.03119977004826069, + -0.01627187989652157, + 0.023903822526335716, + -0.00271197990514338, + 0.04907483607530594, + 0.0273405984044075, + 0.020409448072314262, + -0.021196642890572548, + 0.007463944610208273, + 0.009868727065622807, + 0.014582292176783085, + 0.0022583832032978535, + -0.01012792531400919, + 0.04051170125603676, + 0.0361725315451622, + -0.03563493490219116, + 6.963698251638561e-05, + -0.02739819698035717, + -0.03133416920900345, + -0.027974193915724754, + 0.011087917722761631, + -0.02509421482682228, + 0.0428156815469265, + -0.028185391798615456, + 0.01778866909444332, + 0.00042119689169339836, + 0.00254158116877079, + -0.00450236676260829, + 0.012940703891217709, + -0.00975352805107832, + -0.00470876507461071, + -0.015609484165906906, + -0.01583988219499588, + 0.0198526531457901, + -0.02231023460626602, + -0.03465574234724045, + -0.02630380541086197, + -0.04673245549201965, + -0.036671727895736694, + -0.027091000229120255, + 0.00023264827905222774, + -0.018067065626382828, + -0.006019155494868755, + 0.021062243729829788, + -0.012691105715930462, + -0.03839971497654915, + 0.04223968833684921, + -0.04270048439502716, + -0.05195481702685356, + 0.06700750440359116, + 0.003986370284110308, + 0.020505448803305626, + 0.021983837708830833, + -0.047961246222257614, + 0.058290768414735794, + 0.02065904624760151, + 0.0031631765887141228, + -0.021196642890572548, + 0.011529514566063881, + 0.00021554841077886522, + -0.03010537661612034, + -0.003931170795112848, + -0.0006038955179974437, + 0.0030911772046238184, + -0.030278176069259644, + -0.008409537374973297, + 0.030412575230002403, + -0.0016655876534059644, + 0.033081356436014175, + -0.01843186281621456, + -0.04515806585550308, + -0.011740713380277157, + -0.030777372419834137, + 0.03446374461054802, + 0.0320061631500721, + 0.0011885912390425801, + -0.043199680745601654, + 0.028511788696050644, + 0.03882211446762085, + -0.009806327521800995, + -0.042393285781145096, + 0.011039918288588524, + 0.041433293372392654, + 0.02555501088500023, + 0.030604572966694832, + -0.00453596655279398, + 0.0031799764838069677, + -0.038092516362667084, + 0.02231023460626602, + 0.021523041650652885, + 0.037228524684906006, + 0.031583767384290695, + -0.006940748542547226, + 0.022406233474612236, + 0.004598366096615791, + 0.030642973259091377, + -0.018902260810136795, + 0.042316485196352005, + 0.00034499744651839137, + -0.0392829105257988, + 0.02705259993672371, + -0.003863971447572112, + 0.023404626175761223, + 0.04419807344675064, + 0.008087940514087677, + -0.01173111330717802, + 0.04700125381350517, + -0.039398107677698135, + 0.04711645096540451, + 0.01009912509471178, + 0.023078229278326035, + -0.021772637963294983, + 0.038783714175224304, + -0.04604125767946243, + -0.07468744367361069, + -0.005452759563922882, + -0.015081488527357578, + -0.04838364198803902, + -0.05637078359723091, + -0.0235966257750988, + 0.06474192440509796, + -0.019535856321454048, + -0.008371138013899326, + 0.023750225082039833, + 0.015772683545947075, + -0.1720307320356369, + 0.006225553806871176, + -0.03202536329627037, + 0.035730935633182526, + -0.01605108194053173, + -0.024998214095830917, + 0.004847964271903038, + 0.008985533379018307, + 0.016089480370283127, + 0.009811127558350563, + -0.03452134504914284, + -0.06677710264921188, + -0.013967896811664104, + -0.033830150961875916, + -0.011020718142390251, + -0.017798269167542458, + -0.0051263622008264065, + 0.004871963988989592, + -0.006868749391287565, + -0.027513395994901657, + 0.004178368952125311, + -0.021945437416434288, + 0.026534203439950943, + -0.026227006688714027, + -0.031775765120983124, + -0.038994912058115005, + -0.008476736955344677, + 0.027033399790525436, + -0.040204502642154694, + -0.021369442343711853, + 0.007891141809523106, + 0.00059129559667781, + -0.011990311555564404, + 0.058636367321014404, + -0.004082369618117809, + 0.020505448803305626, + 0.010070325806736946, + -0.022828631103038788, + 0.0018347863806411624, + -0.0013511900324374437, + 0.02495981566607952, + 0.05594838783144951, + -0.008284738287329674, + 0.032332561910152435, + -0.03135336935520172, + 0.006436752155423164, + 0.0005222961190156639, + -0.0012983904452994466, + -0.06362833082675934, + -0.025612611323595047, + 0.027225399389863014, + -0.022079836577177048, + -0.02712939865887165, + -0.003103177063167095, + -0.02937578223645687, + -0.0012623906368389726, + -0.008390338160097599, + 0.01298870425671339, + 0.006071954965591431, + -0.028319790959358215, + -0.053337205201387405, + -0.04588766023516655, + 0.04227808862924576, + -0.022252636030316353, + -0.038303717970848083, + 0.02127344347536564, + 0.032198160886764526, + -0.02332782745361328, + -0.017855867743492126, + -0.009427130222320557, + 0.02244463376700878, + -0.01254710741341114, + 0.039666905999183655, + 0.0016043881187215447, + 0.015743883326649666, + 0.014639891684055328, + -0.01074232067912817, + -0.04008930176496506, + -0.015206287615001202, + -0.10268083959817886, + -0.019439855590462685, + -0.002038785023614764, + -0.01733747124671936, + -0.032524559646844864, + 0.004807164426892996, + -0.018883060663938522, + -2.200765038651298e-06, + -0.029529381543397903, + 0.026764601469039917, + 0.27770674228668213, + -0.016175881028175354, + 0.03267815709114075, + 0.02509421482682228, + 0.058559566736221313, + -0.022521432489156723, + -0.048038043081760406, + -0.03889891132712364, + -0.011443115770816803, + -0.027494195848703384, + -0.01733747124671936, + 0.003554373746737838, + 0.033676549792289734, + 0.0205246489495039, + 0.008875134401023388, + -0.001100991852581501, + -0.00630715349689126, + -0.0004550966259557754, + 0.11158957332372665, + -0.017491070553660393, + -0.0010595921194180846, + 0.015542284585535526, + 0.014025496318936348, + -0.018019067123532295, + -0.044236473739147186, + -0.013574299402534962, + -0.022214235737919807, + 0.006667150650173426, + 0.015331086702644825, + -0.013660699129104614, + 0.004451966844499111, + 0.00274557969532907, + 0.011107117868959904, + -0.010089525021612644, + -0.053529202938079834, + 0.025439811870455742, + 0.008001540787518024, + -0.004737564828246832, + 0.018105465918779373, + 0.0014111895579844713, + -0.05091802403330803, + -0.03271655738353729, + -0.052454013377428055, + 0.016300680115818977, + -0.007915141060948372, + -0.030508574098348618, + 0.00801114086061716, + -0.019190257415175438, + 0.0031727764289826155, + 0.022175835445523262, + 0.023020628839731216, + 0.03417574614286423, + -0.045042864978313446, + 0.0009449929930269718, + 0.006278353743255138, + -0.03169896453619003, + 0.024287819862365723, + 0.008337538689374924, + 0.021427040919661522, + 0.03350375220179558, + 0.03488614037632942, + 0.0060335551388561726, + -0.009105532430112362, + 0.03989730402827263, + 0.04158689081668854, + -0.05663958191871643, + -0.027302198112010956, + -0.014659091830253601, + 0.031180569902062416, + 0.04208608716726303, + 0.056255582720041275, + 0.006844749208539724, + -0.02229103446006775, + 0.039666905999183655, + 0.016089480370283127, + 0.03425254672765732, + 0.02311662957072258, + 0.07987140864133835, + -0.0489596389234066, + -0.0014183894963935018, + -0.03455974534153938, + -0.021177442744374275, + -0.05214681476354599, + -0.015926282852888107, + 0.015859082341194153, + -0.019948652014136314, + -0.0044159675016999245, + 0.004919963423162699, + 0.022175835445523262, + -0.021100644022226334, + -0.006263953633606434, + -0.004699165001511574, + 0.05583318695425987, + 0.009259131737053394, + -0.014102295972406864, + -0.025343813002109528, + 0.014179094694554806, + -0.014572692103683949, + -0.005275161005556583, + 0.02223343588411808, + -0.024115022271871567, + -0.020908644422888756, + 0.0037655720952898264, + -0.02956778183579445, + -0.04838364198803902, + 0.02127344347536564, + 0.025113414973020554, + 0.03407974913716316, + -0.02705259993672371, + 0.052377212792634964, + 0.04757724702358246, + 0.015023889020085335, + -0.015772683545947075, + 0.0018899859860539436, + 0.008716735057532787, + -0.003955170512199402, + 0.020985445007681847, + 0.03978210687637329, + 0.02753259614109993, + 0.033887747675180435, + -0.07103947550058365, + -0.004665565676987171, + -0.020908644422888756, + -0.012134309858083725, + -0.004483166616410017, + -0.012019110843539238, + -0.01615668088197708, + -0.030297376215457916, + -0.010329523123800755, + 0.021119844168424606, + 0.03329255431890488, + -0.0057215578854084015, + -0.006724750157445669, + 0.015849482268095016, + 0.006470351945608854, + 0.006422352511435747, + -0.013180702924728394, + 0.029452582821249962, + 0.033484552055597305, + -0.0096431290730834, + -0.06389712542295456, + 0.007319945842027664, + 0.02373102493584156, + -0.017913468182086945, + 0.002185183810070157, + 0.004168769344687462, + 0.0244798194617033, + 0.009393530897796154, + -0.008577536791563034, + 0.014879889786243439, + 0.008635136298835278, + 0.02154223993420601, + 0.06731469929218292, + -0.06892748922109604, + -0.00048209642409347, + -0.03801571950316429, + -0.02046704851090908, + -0.02659180387854576, + -0.03079657256603241, + -0.023155028000473976, + 0.0022091837599873543, + 0.006551951635628939, + 0.04154849424958229, + 0.04335327818989754, + 0.014870289713144302, + 0.06044115126132965, + 0.010041525587439537, + 0.06597071141004562, + 0.011750313453376293, + -0.028338991105556488, + 0.02175343967974186, + -0.02140784077346325, + -0.0002573980891611427, + 0.03417574614286423, + 0.04181728884577751, + 0.007862341590225697, + 0.0065471515990793705, + -0.002572780940681696, + -0.04035810008645058, + 0.06232273951172829, + 0.028972584754228592, + 0.02739819698035717, + -0.02338542602956295, + 0.002932778326794505, + -0.03889891132712364, + 0.01122231688350439, + 0.027455797418951988, + -0.011750313453376293, + 0.0569467768073082, + 0.0025319813285022974, + -0.011404715478420258, + 0.07591623812913895, + -0.015254287049174309, + 0.0034247746225446463, + 0.033138953149318695, + -0.028262190520763397, + 0.0033983748871833086, + 0.02924138307571411, + 0.022060636430978775, + -0.022252636030316353, + 0.09277371317148209, + -0.05268441140651703, + 0.00044759668526239693, + -0.016031881794333458, + -0.007262346334755421, + -0.014649491757154465, + -0.001946385600604117, + -0.012643106281757355, + 0.0017987866885960102, + -0.010454322211444378, + -0.036076534539461136, + -0.050534024834632874, + -0.009907126426696777, + 0.023155028000473976, + -0.031583767384290695, + -0.002827179152518511, + 0.016031881794333458, + 0.08808894455432892, + 0.009278330951929092, + -0.011452714912593365, + -0.009983926080167294, + 0.007166347000747919, + 0.021638240665197372, + -0.04043490067124367, + -0.035865332931280136, + -0.05441239848732948, + -0.01197111140936613, + -0.04569566249847412, + 0.07829701900482178, + 0.0024143820628523827, + 0.00790554191917181, + -0.002045984845608473, + 0.007574344053864479, + 0.03515493869781494, + 0.07510984688997269, + -0.0103679234161973, + 0.0023279828019440174, + 0.024499019607901573, + 0.02488301508128643, + -0.020351849496364594, + 0.006575951352715492, + 0.012067110277712345, + 0.014092695899307728, + 0.012182310223579407, + -0.004756764974445105, + 0.016492677852511406, + -0.01104951836168766, + 0.02509421482682228, + 0.002978377975523472, + 0.05195481702685356, + -0.025171013548970222, + 0.013555099256336689, + 0.025401411578059196, + -0.021945437416434288, + -0.0017591869691386819, + 0.010723120532929897, + -0.015273487195372581, + -0.021849438548088074, + -0.022060636430978775, + 0.007473544683307409, + 0.0005819957004860044, + 0.029126184061169624, + -0.014035096392035484, + -0.002781579503789544, + -0.007963141426444054, + -0.025382211431860924, + 0.004550366196781397, + -0.011462314985692501, + -0.015513485297560692, + -0.06232273951172829, + -0.006671950686722994, + 0.001204791129566729, + -0.02951018139719963, + -0.04162529110908508, + 0.04008930176496506, + 0.007886341772973537, + -0.012124710716307163, + -0.023443026468157768, + 0.03085417114198208, + 0.02956778183579445, + -0.05283800885081291, + -0.008015940897166729, + 0.008183939382433891, + 0.0467708520591259, + 0.041164495050907135, + 0.017596669495105743, + 0.07775942236185074, + -0.01899825967848301, + 0.024115022271871567, + -0.02501741424202919, + -0.018451062962412834, + -0.03417574614286423, + -0.03780452162027359, + 0.04465886950492859, + -0.04181728884577751, + 0.03315815329551697, + -0.0015227887779474258, + 0.05260761082172394, + -0.00985912699252367, + -0.008966333232820034, + -0.005553558934479952, + 0.003928770776838064, + -0.02841578982770443, + -0.023078229278326035, + 0.004427967127412558, + 0.006710350513458252, + -0.019833452999591827, + -0.0080543402582407, + 0.03801571950316429, + -0.003919171169400215, + 0.028703788295388222, + -0.0069215488620102406, + 0.017529470846056938, + 0.017827067524194717, + 0.00045149665675126016, + 0.004355967976152897, + 0.027455797418951988, + -0.016223879531025887, + 0.0017531870398670435, + 0.03204456344246864, + 0.02079344540834427, + 0.0015275886980816722, + -0.016127880662679672, + 0.019324656575918198, + -0.039474908262491226, + 0.03336935490369797, + -0.028300590813159943, + 0.03962850570678711, + 0.005035162903368473, + -0.04296928271651268, + -0.02113904431462288, + 0.0075167445465922356, + -0.020716646686196327, + 0.029490981251001358, + 0.01795186661183834, + -0.013478300534188747, + 0.006100754719227552, + -0.009436730295419693, + 0.026668602600693703, + -0.01648307777941227, + 0.007319945842027664, + -0.010655920952558517, + 0.033350154757499695, + -0.0029591780621558428, + 0.030777372419834137, + -0.00521756149828434, + 0.017731068655848503, + -0.006585551425814629, + 0.061900343745946884, + -0.0032303761690855026, + -0.007895941846072674, + 0.02956778183579445, + -0.023078229278326035, + -0.05410519987344742, + -0.00900473352521658, + -0.02426861971616745, + -0.02977897971868515, + -0.014102295972406864, + 9.104932541958988e-05, + -0.007828742265701294, + -0.010147124528884888, + 0.020966244861483574, + -0.02494061551988125, + 0.015964681282639503, + 0.015407886356115341, + 0.026265405118465424, + -0.004348767921328545, + 0.007209546864032745, + 0.0344061441719532, + -0.013343901373445988, + -0.005750357639044523, + -0.02223343588411808, + 0.03521253913640976, + 0.017001474276185036, + -0.0178750678896904, + 0.031794965267181396, + -0.05049562454223633, + -0.011855912394821644, + -0.005548758897930384, + -0.01023352425545454, + 0.035865332931280136, + -0.08017860352993011, + -0.04488926753401756, + 0.002149184001609683, + 0.0692346841096878, + -0.036959726363420486, + -0.013708698563277721, + 0.02638060413300991, + 0.03373415023088455, + 0.008447937667369843, + -0.04312288016080856, + -0.0109151192009449, + -0.019363056868314743, + -0.015686284750699997, + -0.13969816267490387, + -0.03166056424379349, + -0.0207358468323946, + -0.03901411220431328, + -0.04669405519962311, + 0.000406496983487159, + -0.03071977198123932, + 0.018508663401007652, + 0.011462314985692501, + -0.048575639724731445, + 0.00845273770391941, + 0.02242543362081051, + 0.023001430556178093, + -0.01658867672085762, + -0.02522861398756504, + -0.003554373746737838, + -0.0039383708499372005, + -0.021062243729829788, + 0.022598233073949814, + 0.04922843724489212, + -0.033004555851221085, + -0.01816306635737419, + 0.035058941692113876, + 0.0058463565073907375, + 0.02699499949812889, + -0.03258216008543968, + 0.00448076706379652, + 0.04101089760661125, + -0.023231828585267067, + 0.024556618183851242, + 0.04492766782641411, + -0.029759779572486877, + 0.033215753734111786, + 0.09016253054141998, + 0.0017747868550941348, + -0.014707091264426708, + -0.008222338743507862, + -0.008769535459578037, + 0.03146856650710106, + 0.018815860152244568, + 0.06339792907238007, + 0.00525116128847003, + -0.004363167565315962, + -0.04343007877469063, + -0.006071954965591431, + 0.08724415302276611, + -0.026457404717803, + -0.01050232257694006, + -0.05567958950996399, + -0.003676772816106677, + -0.011779112741351128, + 0.01118391752243042, + 0.0626683384180069, + 0.00542395981028676, + 0.020620647817850113, + -0.00961912889033556, + -0.020083051174879074, + -0.00985912699252367, + -0.0020423848181962967, + 0.06585551053285599, + -0.06070994958281517, + -0.007454345002770424, + -0.03346535190939903, + -0.04780764505267143, + 0.0012239909265190363, + -0.006235153879970312, + -0.09914806485176086, + 0.031794965267181396, + 0.004363167565315962, + -0.011260716244578362, + -0.012662306427955627, + -0.027590196579694748, + 0.028722986578941345, + -0.02019825018942356, + 0.015004688873887062, + -0.013046303763985634, + 0.051148422062397, + 0.018134266138076782, + -0.04078049957752228, + -0.010310323908925056, + 0.006551951635628939, + 0.06512591987848282, + -0.0025127814151346684, + 0.041778892278671265, + -0.020025452598929405, + 0.006715150084346533, + -0.03509734198451042, + 0.022195035591721535, + -0.011990311555564404, + -0.047078050673007965, + -0.016915075480937958, + -0.023423826321959496, + -0.012604706920683384, + 0.01829746551811695, + -0.024979015812277794, + -0.018815860152244568, + -0.008678335696458817, + -0.0516476184129715, + -0.016435079276561737, + -0.05725397542119026, + -0.015417485497891903, + 0.005236761178821325, + 0.016147080808877945, + -0.02584300935268402, + -0.003621573094278574, + 0.012758305296301842, + 0.022079836577177048, + 0.01118391752243042, + 0.049458835273981094, + -0.02303982898592949, + 0.006907148752361536, + 0.012086310423910618, + -0.02319342829287052, + -0.001947585609741509, + -0.03093097172677517, + 0.029740579426288605, + -0.011001518927514553, + -0.050342027097940445, + -0.022079836577177048, + 0.0009545929497107863, + -0.0028751788195222616, + 0.055295590311288834, + 0.005793557036668062, + -0.02563180960714817, + -0.0031079770997166634, + 0.008409537374973297, + 0.032332561910152435, + 0.02378862351179123, + 0.004958363249897957, + 0.005255961325019598, + 0.030066978186368942, + -0.03204456344246864, + 0.0013355901464819908, + 0.01122231688350439, + 0.004079969599843025, + 0.02004465088248253, + 0.01104951836168766, + 0.04961243271827698, + -0.028031792491674423, + -0.07161547243595123, + 0.015321486629545689, + 0.02434542030096054, + -0.01937265694141388, + -0.04723165184259415, + -0.013545500114560127, + 0.023577425628900528, + 0.008918333798646927, + -0.014457493089139462, + 0.028127791360020638, + -0.03609573468565941, + 0.022809430956840515, + -0.00019304857414681464, + 0.007180746644735336, + 0.04216288775205612, + -0.016262279823422432, + 0.031583767384290695, + -0.02298223040997982, + 0.017289472743868828, + 0.011606314219534397, + -0.010454322211444378, + 0.021331042051315308, + -0.0312957689166069, + 0.010377523489296436, + -0.047154851257801056, + -0.006743950303643942, + 0.040818896144628525, + 0.0029855777975171804, + 0.003148776711896062, + -0.050073228776454926, + 0.0062543535605072975, + -0.015369486063718796, + 0.016099080443382263, + -0.0035327738150954247, + 0.024499019607901573, + 0.011577514000236988, + -0.041433293372392654, + 0.03432934731245041, + 0.014774290844798088, + 0.07130827009677887, + -0.01567668467760086, + 0.013305501081049442, + 0.015407886356115341, + 0.001642787829041481, + 0.01217271015048027, + -0.0030167775694280863, + 0.044697269797325134, + 0.04961243271827698, + 0.013343901373445988, + 0.025209413841366768, + 0.01902705989778042, + -0.022214235737919807, + 0.041510093957185745, + -0.03507814183831215, + -0.008327938616275787, + 0.027302198112010956, + -0.009287931025028229, + 0.011375916190445423, + 0.04926683381199837, + -0.01210551057010889, + 0.027724595740437508, + -0.014025496318936348, + 0.002932778326794505, + -0.015830282121896744, + -0.051916416734457016, + -0.014198294840753078, + 0.005961555987596512, + 0.007055947557091713, + -0.019391857087612152, + -0.05038042739033699, + 0.04174049198627472, + -0.009561529383063316, + -0.038726113736629486, + 0.018451062962412834, + 0.006283153314143419, + -0.02528621256351471, + 0.008116739802062511, + 0.019036659970879555, + -0.013478300534188747, + -0.0022991830483078957, + 0.041433293372392654, + -0.00017324871441815048, + -0.011097517795860767, + -0.003964770585298538, + -0.0064415521919727325, + 0.04869084060192108, + -0.026457404717803, + -0.055986784398555756, + -0.012422308325767517, + -0.020313449203968048, + -0.024307020008563995, + -0.06766030192375183, + -0.024902215227484703, + -0.004857563879340887, + 0.058098770678043365, + 0.00443516718223691, + -0.006969548296183348, + 0.0042311688885092735, + 0.013468700461089611, + -0.005788757000118494, + -0.022924629971385002, + 0.04581085965037346, + 0.06685390323400497, + 0.009230331517755985, + 0.017644669860601425 + ] + } + } + ], + "relationships": [ + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "发动机", + "to_entity": "发动机的维修工作" + }, + { + "type": "安全警告", + "from_entity": "发动机", + "to_entity": "发动机的安全警告" + }, + { + "type": "实现", + "from_entity": "发动机", + "to_entity": "发动机的功能" + }, + { + "type": "适用", + "from_entity": "发动机", + "to_entity": "发动机的环境条件" + }, + { + "type": "实现", + "from_entity": "发动机", + "to_entity": "发动机的基本情况" + }, + { + "type": "包括", + "from_entity": "发动机", + "to_entity": "发动机的组成" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的工作原理" + }, + { + "type": "具有", + "from_entity": "发动机", + "to_entity": "发动机的技术指标参数" + }, + { + "type": "配备", + "from_entity": "发动机", + "to_entity": "发动机的接口" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的布置情况" + }, + { + "type": "依赖", + "from_entity": "发动机", + "to_entity": "发动机的器材保障" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的维修安全防护及注意事项汇总表" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "修理", + "from_entity": "检测曲轴主轴颈跳动量", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "更换连杆大端轴承", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "拆检活塞头磨损情况", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "更换1号压缩环", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "更换2-4号活塞环", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "检测气缸套内径磨损量", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "更换气缸套", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "检查排气阀杆密封面磨损", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "更换排气阀座", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "更换喷油嘴偶件", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "更换高压油泵柱塞偶件", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "修理", + "from_entity": "更换涡轮增压器轴承组件", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "清洗空冷器管束芯体", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "修理", + "from_entity": "修复连杆大端轴承异常磨损", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "修复活塞头部烧蚀熔损", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "排除喷油器雾化不良故障", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "排除喷油器雾化不良故障", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "排除主机功率异常波动故障", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "排除主机功率异常波动故障", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "曲轴组件", + "to_entity": "曲轴组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "曲轴组件的维修工作", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "MT003", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "连杆大端轴承", + "to_entity": "连杆大端轴承的维修工作" + }, + { + "type": "包含故障", + "from_entity": "连杆大端轴承的维修工作", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "MT004", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "活塞头", + "to_entity": "活塞头的维修工作" + }, + { + "type": "包含故障", + "from_entity": "活塞头的维修工作", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT006", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "1号压缩环", + "to_entity": "1号压缩环的维修工作" + }, + { + "type": "包含故障", + "from_entity": "1号压缩环的维修工作", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "MT007", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "2-4号活塞环", + "to_entity": "2-4号活塞环的维修工作" + }, + { + "type": "包含故障", + "from_entity": "2-4号活塞环的维修工作", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "MT008", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "气缸套", + "to_entity": "气缸套的维修工作" + }, + { + "type": "包含故障", + "from_entity": "气缸套的维修工作", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT009", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT010", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "阀杆", + "to_entity": "阀杆的维修工作" + }, + { + "type": "包含故障", + "from_entity": "阀杆的维修工作", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "MT011", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "阀座", + "to_entity": "阀座的维修工作" + }, + { + "type": "包含故障", + "from_entity": "阀座的维修工作", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "MT012", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "喷油嘴偶件", + "to_entity": "喷油嘴偶件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "喷油嘴偶件的维修工作", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT013", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "柱塞偶件", + "to_entity": "柱塞偶件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "柱塞偶件的维修工作", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "修理", + "from_entity": "MT014", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "轴承组件", + "to_entity": "轴承组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "轴承组件的维修工作", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "MT015", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "管束芯体", + "to_entity": "管束芯体的维修工作" + }, + { + "type": "包含故障", + "from_entity": "管束芯体的维修工作", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "修理", + "from_entity": "MT016", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "修理", + "from_entity": "T017", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "MT018", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "喷油器组件", + "to_entity": "喷油器组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "喷油器组件的维修工作", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT019", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "包含故障", + "from_entity": "喷油器组件的维修工作", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "MT019", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "MT020", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + }, + { + "type": "修理", + "from_entity": "MT020", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + }, + { + "type": "包含", + "from_entity": "jz坚", + "to_entity": "汽车配件" + }, + { + "type": "包含", + "from_entity": "汽车配件", + "to_entity": "汽车主配件" + }, + { + "type": "包含", + "from_entity": "汽车主配件", + "to_entity": "发动机" + } + ] +} \ No newline at end of file diff --git a/kgbuild/entity_rela_reset.py b/kgbuild/entity_rela_reset.py new file mode 100644 index 0000000..0f9ec9c --- /dev/null +++ b/kgbuild/entity_rela_reset.py @@ -0,0 +1,467 @@ +from openai import OpenAI +from typing import List, Dict +import json +from langchain_text_splitters import MarkdownHeaderTextSplitter, CharacterTextSplitter +import requests +import json +from modelsAPI.model_api import OpenaiAPI + + + +Ontology = ["舰艇", "系统", "设备", "零部件", "故障", "修理", "维修项目","操作项目","保养"] +Relationships = ["包含", "组成", "解决", "用于", "使用","具有"] + +# 节点类型及其属性定义 + +NODE_TYPES = { + "舰艇": ["名称","型号", "弦号", "设计单位", "总装工厂", "所属部队"], + "系统": ["名称", "技术责任单位", "生产单位", "级别"], + "设备": ["名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间","运行时间","运行条件"], + "零部件": ["名称", "型号", "技术责任单位", "生产单位"], + "故障": ["故障现象名称", "故障原因", "故障影响", "故障类型", "发生时间", "处置情况", "修复情况"], + "修理": ["修理方案","修理人员", "修理时间", "修理工具", "备品备件", "修理类型", "维修项目"], + "维修项目": ["名称","维修项目编号", "组成编码", "维修设备名称", "维修间隔期", "维修级别", "页码", "安全防护要求", "安全注意事项","工具","备品备件","消耗材料","人力人员","修理步骤"], + "操作项目": ["名称", "操作项目编号", "安全防护", "注意事项","保障设施、保障设备(工具)", "人力人员", "操作步骤"], + "保养" : ["保养人员","保养时间","保养工具","保养频率"] +} + +Ontology_DESCRIPTION = { + "舰艇": ["代表一艘完整海上作战或保障平台的实体,是所有系统、设备和零部件的最高层级载体。区别于“系统”或“设备”,舰艇具有独立的型号、弦号和部队归属,不可作为其他舰艇的组成部分。"], + "系统": ["舰艇中实现某一类功能(如动力、导航、通信)的集成化功能单元,由多个设备协同组成。与“设备”不同,系统本身不直接对应物理装置,而是逻辑/功能层面的集合;与“舰艇”不同,系统不具备独立航行能力或部队归属。"], + "设备": ["安装在舰艇上、具有独立型号和运行状态的物理装置,可被启停、监控运行时间,并可能产生故障。区别于“零部件”,设备是可独立更换或维修的功能单元;区别于“系统”,设备是具体硬件而非功能集合。"], + "零部件": ["构成设备的不可再拆分的基础物理元件(如轴承、电路板、密封圈),通常无独立运行状态或启用时间。与“设备”关键区别在于:零部件不能单独运行,也不记录运行时间或技术状态变更。"], + "故障": ["设备或系统在运行中出现的异常状态或失效事件,必须包含具体现象(如“无法启动”)、原因(如“电源短路”)及影响。区别于“修理”或“保养”,故障是问题本身,而非应对措施;不包含操作步骤或人员信息。"], + "修理": ["针对已发生故障所执行的一次性修复行为,包含具体时间、人员、工具、方案和所关联的维修项目。区别于“保养”,修理是响应式、非周期性的;区别于“维修项目”,修理是实际发生的实例,而非标准化规程。"], + "维修项目": ["标准化、可重复执行的维修任务规程,规定了某类设备或系统在特定条件下应如何维修,包含编号、步骤、材料、安全要求等。区别于“修理”,维修项目是模板或规范,而非具体事件;不包含实际发生时间或人员。"], + "操作项目": ["舰艇正常运行中需执行的标准操作流程(如启动主机、校准雷达),强调操作步骤与安全保障。区别于“维修项目”,操作使用项目用于日常使用而非维护"], + "保养" : ["按计划周期性执行的预防性维护活动(如润滑、清洁、检测),目的是延缓性能退化。"] +} + +RELATIONSHIP_TYPES = { + "包含": ["舰艇包含系统", "系统包含设备","设备包含零部件","修理包含维修项目"], + "解决": ["修理解决故障", "维修项目解决故障"], + "使用": ["设备使用操作项目", "设备使用保养","设备使用维修项目"], + "具有": ["设备具有故障","零部件具有故障"] +} + +def create_extraction_prompt( + text: str, + ontology: List[str], + Ontology_DESCRIPTION: Dict[str, List[str]], + relationships: List[str], + node_types: Dict[str, List[str]], + relationship_types: Dict[str, List[str]] +) -> str: + # 构建已有本体的定义(用于上下文) + ontology_def_descriptions = [] + for etype in ontology: + clean_etype = etype.strip() + if clean_etype in Ontology_DESCRIPTION: + desc = ";".join(Ontology_DESCRIPTION[clean_etype]) + ontology_def_descriptions.append(f"- {clean_etype}:{desc}") + else: + ontology_def_descriptions.append(f"- {clean_etype}:无明确定义") + + # 构建关系示例 + rel_examples = [] + for rtype, examples in relationship_types.items(): + for ex in examples[:1]: + rel_examples.append(f" - {ex}") + + prompt = f"""你是一个专业的舰艇维修领域本体工程师。请基于以下文本片段,**识别潜在的、尚未定义的抽象概念类别(即本体类型)和语义关系类型**。 + +> ⚠️ 重要说明: +> - **本体(Ontology Class)是抽象概念类别**,是对特定领域中概念体系的形式化、结构化规范,用于明确定义该领域内的实体类型(类)。 +> - 请**不要推荐具体实体或实例名称**,只推荐**可作为一类事物统称的新概念**。 +> - 如果文本中的内容**可归入已有本体**(见下文列表),则**不要**将其视为新本体。 +> - 抽取本体在文本中应该具有代表性,而不是简单的一个名词,能够代表一类事物,抽取出很多实体和对应的属性 + +### 已有本体类型(禁止重复推荐): +{chr(10).join(ontology_def_descriptions)} + +### 已有关系类型(禁止重复推荐): +- {"、".join(relationships)} +典型用法示例: +{chr(10).join(rel_examples)} + +### 待分析文本: +{text.strip()} + +### 你的任务: +1. **推荐新的本体类型(抽象概念)** + 仅当文本中隐含一个**尚未被现有本体覆盖的通用类别**时才提出。例如: + - 文本存在"主要功能"这种章节,当前本体没有,可推荐"功能" + - 文本提到“子系统”,而当前本体已存在"系统",因此不合适。 + + 每个新本体需包含: + - `name`:中文名称(抽象名词,非专有名词); + - `definition`:清晰定义其内涵、作用及与已有本体的区别; + - `suggested_attributes`:建议的通用属性(如编号、时间、状态等,非具体值)。 + +2. **推荐新的关系类型** + 仅当存在**未被现有关系表达的语义连接**时提出。例如:“依赖于”“触发”“源自”等。 + 每个新关系需包含: + - `name`:动词性短语(如“依赖于”); + - `description`:语义解释; + - `example`:格式为 “[本体A] [关系] [本体B]”,如 “维修项目 依赖于 备品备件”。 + + +3. **推荐已有本体的属性**: + 如果文本中提及的属性适用于已有本体类型,请直接在已有本体的定义中补充建议属性,无需在新本体中重复。 + - `name`:属性名称; + - `applicable_to`:适用的已有本体类型列表。 + +4. **输出严格为 JSON 格式**,无任何额外文本: + +{{ + "new_entities": [ + {{ + "name": "新抽象本体名称", + "definition": "该本体在舰艇维修领域的定义与边界", + "suggested_attributes": ["属性1", "属性2"] + }} + ], + "new_relationships": [ + {{ + "name": "新关系名称", + "description": "关系语义说明", + "example": "X 关系名 Y" + }} + ], + "existing_entity_attributes": [ + {{ + "name": "属性名称", + "applicable_to": "已有本体"] + }} +] + +}} + +注意: +- 若无新概念,对应字段返回空列表 []。 +- 禁止输出具体实例(如“SC-887”“2024年检修”)。 +- 定义需体现**抽象性、通用性、可复用性**。 +- 不要生成一些实体,如果没有就不要推荐 + +示例1: +输入文本为: + +# 1.1 警告 + +【最高级别警告】情境意识:始终保持对船舶位置、周围交通、水文气象、船舶状态和仪器读数的全面了解。自满是最大的危险。 + +【最高级别警告】有效沟通:船-岸、驾驶台-机舱、驾驶台内部、舵手-引航员之间的沟通必须清晰、无误、复诵确认。语言障碍是重大事故根源。 + +【警告】严格遵守规则:必须严格遵守《国际海上避碰规则》、《国际海上人命安全公约》、《港口特殊规定》及公司安全管理体系。 + +【警告】疲劳管理:严禁在过度疲劳状态下值班或操作。合理安排休息,必要时立即报告。 + +思考过程: +首先,我需要仔细分析给定的文本片段,识别潜在的、尚未定义的抽象概念类别(本体类型)和语义关系类型。文本是关于舰艇操作中的警告和规则,内容涉及情境意识、有效沟通、遵守规则、疲劳管理等。 + +"情境意识":这是一个抽象概念,指操作人员对环境的全面了解。在已有本体中,没有直接对应的概念。舰艇、系统、设备等都是物理或功能实体,而"情境意识"是操作人员的认知状态。它不是故障、修理或维修项目;它更像是一个操作要求或状态。已有本体中,"操作项目"是标准操作流程,但"情境意识"不是流程,而是一种意识状态。所以,可能需要一个新的本体。 + +定义:情境意识应定义为一种认知状态,涉及操作人员对环境、船舶状态和相关因素的持续感知和理解。区别于已有本体:它不是实体(如设备),也不是事件(如故障),而是操作人员的心理状态。 + +属性:可能包括状态(如良好、中等、差)、时间(如更新时间)、影响因素(如天气条件)。 + +"严格遵守规则":提到规则如《国际海上避碰规则》。规则是具体的文档。已有本体中,没有"规则"作为类别。"维修项目"是维修规程,但这里是操作规则。 + +文本说"遵守《国际海上避碰规则》",所以"规则"是一个概念。但"规则"在本体中可能太泛;在舰艇领域,"规则"可以指安全规则或操作规则。 + +现有本体有"操作项目",是标准操作流程,但规则是更广泛的法规。所以,可能需要"规则"作为新本体。 + +定义:规则是强制性的操作规范,由国际公约或公司制定,用于指导船舶操作以确保安全。 + +情境意识:可能是一个新本体。 +规则:如《国际海上避碰规则》,可能需要"安全规则"。 +我需要确保这些是尚未定义的抽象概念。 + +检查已有本体: + +舰艇:不相关。 +系统:不相关。 +设备:不相关。 +零部件:不相关。 +故障:不相关。 +修理:不相关。 +维修项目:维修规程,不相关。 +操作项目:标准操作流程,如"启动主机",但"情境意识"不是流程,是状态。 +保养:预防性维护,不相关。 +所以,"情境意识"似乎是一个新本体。 + +类似地,"规则":已有"操作项目"是操作规程,但规则是法规,如避碰规则。 + +现在,定义新本体: + +情境意识: + +name: "情境意识" +definition: 操作人员对船舶环境、状态和相关因素的实时感知和理解能力,是确保安全操作的认知基础。区别于已有本体:它不是物理实体、事件或规程,而是操作人员的心理状态。 +suggested_attributes: ["状态", "更新时间", "影响因素"] +安全规则: + +name: "规则" +definition: 由国际公约或公司制定的强制性操作规范,用于指导船舶在特定情境下的安全行为,确保符合法规要求。区别于"操作项目":安全规则是外部约束,而操作项目是内部执行的流程。 +suggested_attributes: ["编号", "发布机构", "生效日期", "适用范围"] + + +列出潜在新本体: + +情境意识:文本直接使用,未在本体中。 +安全规则:文本提到具体规则,未被覆盖。 +现在,关于关系类型。 + +文本中,有"必须严格遵守规则",所以"遵守"可能是一个关系。 + +但已有关系有"用于"、"使用","遵守"可能是一个新关系。 + +已有关系:包含、组成、解决、用于、使用、具有。 + +"遵守"不在其中。 + +所以,可能需要新关系"遵守"。 + +例如,"操作项目 遵守 规则"。 + +但关系是语义连接。 + +检查是否有未被表达的关系。 + +例如: + +情境意识 影响 操作安全 +但"影响"可能不标准。 +文本中,"情境意识"是警告内容,所以它可能被"要求"或"强调"。 + +但关系类型需要是动词性。 + +可能的关系: + +"要求":如"警告 要求 情境意识" +但"警告"不是本体;文本中"警告"是类别。 +在文本中,有"【最高级别警告】",但"警告"本身可能不是本体;它是一个事件。 + +在已有本体,没有"警告"。但任务是基于文本,文本中"警告"是作为标签。 + +然而,在本体工程中,"警告"可能被视为一种事件或规则。 + +但已有本体有"故障",但警告不是故障。 + +或许"警告"可以是新本体,但文本中是"【最高级别警告】",是内容,不是类别。 + +文本是警告内容,所以"情境意识"是内容。 + +我认为"情境意识"、"安全规则"、"疲劳状态"是候选。 + +现在,精简。 + +情境意识:必须推荐,因为它直接出现。 +安全规则:规则如《国际海上避碰规则》,需要类别。 +疲劳状态:疲劳是状态。 +但"疲劳管理"是活动,不是状态。文本说"疲劳管理:严禁在过度疲劳状态下值班",所以"疲劳状态"是核心。 + +在本体中,状态可以是属性。 + +但"疲劳状态"作为本体。 + +现在,检查是否已有。 + +在已有列表,没有"状态"本体;"故障"有状态,但故障是事件。 + +"故障"有状态,但"疲劳状态"是人员状态。 + +所以,应该新。 + +类似地,"情境意识"是状态。 + +或许可以合并,但最好分开。 + +定义: + +情境意识: + +name: "情境意识" +definition: 操作人员对船舶环境、航行状态和相关因素的实时感知与理解能力,是安全操作的关键认知要素。区别于已有本体:它不是物理实体、功能单元或事件,而是操作人员的主观认知状态。 +suggested_attributes: ["认知等级", "更新时间", "环境因素"] +安全规则: + +name: "规则" +definition: 由国际组织或公司制定的强制性操作规范,规定船舶在特定情境下必须遵守的安全行为准则。区别于"操作项目":安全规则是外部法规约束,而操作项目是内部执行的标准化流程。 +suggested_attributes: ["规则编号", "发布机构", "生效日期", "适用场景"] +疲劳状态: + +现在,关系类型。 + +文本中,有"必须严格遵守规则",所以关系"遵守"。 + +已有关系中没有"遵守"。 + +所以,新关系"遵守"。 + +name: "遵守" +description: 操作或规程必须符合安全规则的要求,表示强制性遵循。 +example: "操作项目 遵守 安全规则" +其他可能关系:如"影响",但"情境意识"影响操作,但"影响"可能太泛。 + + +suggested_attributes: + +情境意识: ["认知等级", "更新时间", "环境因素"] +规则: ["规则编号", "发布机构", "生效日期", "适用范围"] +关系: + +name: "遵守" +description: 操作规程或行为必须符合安全规则的要求,体现强制性约束。 +example: "操作项目 遵守 规则" + +所以输出为: +example1 + +示例2: +输入为: +# 2 概述 + +本文档介绍了螺旋桨主要功能、组成、维修工作指导、器材保障等内容。 + +舰船螺旋桨(推进器)是将主机动力转化为推力的核心装置。它通常由多个(常见3-6叶)桨叶组成,叶片复杂的曲面设计能高效搅动水流。 + +主要分为两大类:固定螺距螺旋桨(FPP) 结构简单坚固;可调螺距螺旋桨(CPP)可通过转动桨叶改变螺距,无需改变主机转速即可调节推力大小和方向,机动性更优。 + +现代大型船舶螺旋桨多为特种铜合金铸造,直径可达 10 米以上。其设计、制造和安装精度要求极高,直接影响船舶的推进效率、振动和噪音水平。 + +思考过程: +首先,我需要仔细分析给定的文本片段,识别潜在的、尚未定义的抽象概念类别(本体类型)和语义关系类型。文本是螺旋桨主要功能、组成、维修工作指导、器材保障等内容。后面详细阐述舰船螺旋桨(推进器) + +的组成部分,以及主要分为两大类。结合已有的本体,该类内容主要属于系统、设备、零部件等本体,因此没有新本体衍生。 + +所以输出为: +[] + +""" + + return prompt +example1 = ''' +{ +"new_entities": [ +{ +"name": "情境意识", +"definition": "操作人员对船舶环境、航行状态、水文气象及仪器读数等要素的实时感知与综合理解能力,是保障安全操作的认知基础。区别于已有本体:它不是物理实体(如设备)、功能事件(如故障)或操作规程(如操作项目),而是操作人员的主观认知状态。", +"suggested_attributes": ["认知等级", "更新时间", "环境因素"] +}, +{ +"name": "规则", +"definition": "由国际公约(如《国际海上避碰规则》)或公司制定的强制性操作规范,规定船舶在特定情境下必须遵守的安全行为准则。区别于已有本体:它不是内部执行流程(如操作项目),而是外部法规约束,具有法律效力和强制性。", +"suggested_attributes": ["规则编号", "发布机构", "生效日期", "适用范围"] +}, +], +"new_relationships": [ +{ +"name": "遵守", +"description": "操作规程或行为必须符合规则的要求,体现强制性约束关系。区别于已有关系:它表示外部法规对内部操作的强制要求,而非功能关联或物理组成。", +"example": "操作项目 遵守 规则" +} +] +} +''' +def generate_Ontology_relationship( + text: List[str], + ontology: List[str], + Ontology_DESCRIPTION: Dict[str, List[str]], + relationships: List[str], + node_types: Dict[str, List[str]], + relationship_types: Dict[str, List[str]] +): + new_entities_result = [] + new_relationships_result = [] + + for ins in text: + final_prompt = create_extraction_prompt( + text=ins, + ontology=ontology, + Ontology_DESCRIPTION=Ontology_DESCRIPTION, + relationships=relationships, + relationship_types=relationship_types, + node_types=node_types + ) + final_prompt = final_prompt.replace("example1",example1) + res_str = OpenaiAPI.openai_chat(final_prompt) + + # 处理 API 调用失败 + if res_str is None: + print("⚠️ 跳过当前 chunk:API 调用失败") + continue + + # 尝试解析 JSON + try: + res = json.loads(res_str) + except json.JSONDecodeError as e: + print(f"❌ JSON 解析失败: {e}") + print(f"原始响应内容: {repr(res_str)}") + continue + + # 安全访问字段 + new_entities = res.get("new_entities", []) + new_relationships = res.get("new_relationships", []) + nwe_entity_attributes = res.get("existing_entity_attributes", []) + + print(f"推荐新本体:{new_entities}") + print(f"推荐新关系:{new_relationships}") + print(f"推荐新属性:{nwe_entity_attributes}") + + + new_entities_result.append(new_entities) + new_relationships_result.append(new_relationships) + + # 可选:最后汇总输出 + print("\n=== 最终结果 ===") + print("所有新本体:", new_entities_result) + print("所有新关系:", new_relationships_result) + print("所有新属性:", nwe_entity_attributes) + return new_entities_result,new_relationships_result,nwe_entity_attributes + + +# if __name__ == "__main__": +# text = """ +# # 1)螺旋桨本体 + +# 功能与特性:能量转换的核心。它将主机的旋转动能转化为水流的反作用力(推力)。其特性由材料(如镍铝青铜、锰青铜)、桨叶数(3-6叶)、盘面比、螺距比等决定,直接影响效率、空泡和振动性能。 + +# 相互关系:直接安装在尾轴(螺旋桨轴) 末端,其扭矩由尾轴传递,其推力通过推力轴承传递给船体。 + +# 2)轴系 + +# 功能与特性:动力传递的桥梁。包括: + +# 推力轴及推力轴承:承受螺旋桨产生的巨大轴向推力,并将其传递给船体结构,是决定船舶能否前进、后退的关键。 + +# 中间轴:连接主机输出端与推力轴/尾轴。 + +# 尾轴(螺旋桨轴):穿过尾轴管,末端安装螺旋桨,工作环境恶劣(浸没海水中),通常需包覆铜套防腐。 + +# 相互关系:将主机的旋转输出与螺旋桨本体刚性连接,形成一个完整的动力传递链。推力轴承是轴系与船体结构之间的关键受力界面。 + +# 3)尾轴管与密封系统功能与特性: + +# 尾轴管:固定于船体尾端,支撑尾轴并形成从船内(机舱)到船外(海水)的通道。 + +# 密封系统(首尾密封):绝对关键的安全设备。防止海水沿尾轴流入机舱(尾密封),同时防止润滑油泄漏(首尾密封均有此功能)。通常采用唇式密封或面式密封,材料耐磨、耐腐蚀。 + +# 相互关系:为尾轴提供支撑和润滑(油润滑或水润滑),其密封系统直接保护尾轴并确保机舱安全,与轴系和船体结构紧密集成。 + +# 4)毂帽与导流罩功能与特性: + +# 毂帽:安装在螺旋桨毂后端,呈流线型,用于减少桨毂后部产生的涡流阻力,提高效率。 + +# 导流罩(如桨毂涡流消除器):安装在桨毂前方,改善流入桨叶的水流状态,尤其适用于肥大船型,能提升效率、减少振动。 + +# 相互关系:直接安装在螺旋桨本体的毂上,是其水动力性能的优化附件。 + +# 系统相互关系总结: + +# 主机驱动轴系旋转,轴系末端的尾轴带动螺旋桨本体旋转。螺旋桨产生的推力通过尾轴传递至推力轴承,最终作用在船体上使其运动。尾轴管及密封系统为这一旋转运动提供支撑、润滑和至关重要的水密保障。毂帽和导流罩则作为螺旋桨本体的附件,优化其水动力性能。所有子设备协同工作的核心目标,是确保主机功率被高效、平稳、可靠地转化为推进船舶前进的有效推力。 任何一环失效(如密封泄漏、轴承损坏)都将导致整个推进系统瘫痪。 +# """ +# content = [] +# content.append(text) +# generate_Ontology_relationship(content,ontology=Ontology,Ontology_DESCRIPTION=Ontology_DESCRIPTION,relationships=Relationships,relationship_types=RELATIONSHIP_TYPES,node_types=NODE_TYPES) + diff --git a/kgbuild/entity_relation_text_extract.py b/kgbuild/entity_relation_text_extract.py new file mode 100644 index 0000000..2eeb936 --- /dev/null +++ b/kgbuild/entity_relation_text_extract.py @@ -0,0 +1,286 @@ +from openai import OpenAI +from typing import List, Dict +import json +from langchain_text_splitters import MarkdownHeaderTextSplitter, CharacterTextSplitter +import requests +import json +from modelsAPI.model_api import OpenaiAPI + + + +Ontology = ["舰艇", "系统", "设备", "零部件", "故障", "修理", "维修项目","操作项目","保养"] +Relationships = ["包含", "组成", "解决", "用于", "使用","具有"] + +# 节点类型及其属性定义 + +NODE_TYPES = { + "舰艇": ["名称","型号", "弦号", "设计单位", "总装工厂", "所属部队"], + "系统": ["名称", "技术责任单位", "生产单位", "级别"], + "设备": ["名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间","运行时间","运行条件"], + "零部件": ["名称", "型号", "技术责任单位", "生产单位"], + "故障": ["故障现象名称", "故障原因", "故障影响", "故障类型", "发生时间", "处置情况", "修复情况"], + "修理": ["修理方案","修理人员", "修理时间", "修理工具", "备品备件", "修理类型", "维修项目"], + "维修项目": ["名称","维修项目编号", "组成编码", "维修设备名称", "维修间隔期", "维修级别", "页码", "安全防护要求", "安全注意事项","工具","备品备件","消耗材料","人力人员","修理步骤"], + "操作项目": ["名称", "操作项目编号", "安全防护", "注意事项","保障设施、保障设备(工具)", "人力人员", "操作步骤"], + "保养" : ["保养人员","保养时间","保养工具","保养频率"] +} + +Ontology_DESCRIPTION = { + "舰艇": ["代表一艘完整海上作战或保障平台的实体,是所有系统、设备和零部件的最高层级载体。区别于“系统”或“设备”,舰艇具有独立的型号、弦号和部队归属,不可作为其他舰艇的组成部分。"], + "系统": ["舰艇中实现某一类功能(如动力、导航、通信)的集成化功能单元,由多个设备协同组成。与“设备”不同,系统本身不直接对应物理装置,而是逻辑/功能层面的集合;与“舰艇”不同,系统不具备独立航行能力或部队归属。"], + "设备": ["安装在舰艇上、具有独立型号和运行状态的物理装置,可被启停、监控运行时间,并可能产生故障。区别于“零部件”,设备是可独立更换或维修的功能单元;区别于“系统”,设备是具体硬件而非功能集合。"], + "零部件": ["构成设备的不可再拆分的基础物理元件(如轴承、电路板、密封圈),通常无独立运行状态或启用时间。与“设备”关键区别在于:零部件不能单独运行,也不记录运行时间或技术状态变更。"], + "故障": ["设备或系统在运行中出现的异常状态或失效事件,必须包含具体现象(如“无法启动”)、原因(如“电源短路”)及影响。区别于“修理”或“保养”,故障是问题本身,而非应对措施;不包含操作步骤或人员信息。"], + "修理": ["针对已发生故障所执行的一次性修复行为,包含具体时间、人员、工具、方案和所关联的维修项目。区别于“保养”,修理是响应式、非周期性的;区别于“维修项目”,修理是实际发生的实例,而非标准化规程。"], + "维修项目": ["标准化、可重复执行的维修任务规程,规定了某类设备或系统在特定条件下应如何维修,包含编号、步骤、材料、安全要求等。区别于“修理”,维修项目是模板或规范,而非具体事件;不包含实际发生时间或人员。"], + "操作项目": ["舰艇正常运行中需执行的标准操作流程(如启动主机、校准雷达),强调操作步骤与安全保障。区别于“维修项目”,操作使用项目用于日常使用而非维护"], + "保养" : ["按计划周期性执行的预防性维护活动(如润滑、清洁、检测),目的是延缓性能退化。"] +} + +RELATIONSHIP_TYPES = { + "包含": ["舰艇包含系统", "系统包含设备","设备包含零部件","修理包含维修项目"], + "解决": ["修理解决故障", "维修项目解决故障"], + "使用": ["设备使用操作项目", "设备使用保养","设备使用维修项目"], + "具有": ["设备具有故障","零部件具有故障"] +} + +def create_extraction_prompt( + text: str, + ontology: List[str], + Ontology_DESCRIPTION: Dict[str, List[str]], + relationships: List[str], + node_types: Dict[str, List[str]], + relationship_types: Dict[str, List[str]] +) -> str: + # 构建已有本体的定义(用于上下文) + ontology_def_descriptions = [] + for etype in ontology: + clean_etype = etype.strip() + if clean_etype in Ontology_DESCRIPTION: + desc = ";".join(Ontology_DESCRIPTION[clean_etype]) + ontology_def_descriptions.append(f"- {clean_etype}:{desc}") + else: + ontology_def_descriptions.append(f"- {clean_etype}:无明确定义") + + + prompt = f"""你是一个专业的舰艇维修领域实体抽取工程师。请基于以下文本片段,从对应本体之下抽取出实体、属性以及关系。 + +> ⚠️ 重要说明: +> - **本体(Ontology Class)是抽象概念类别**,是对特定领域中概念体系的形式化、结构化规范,用于明确定义该领域内的实体类型(类)。 +> - 请基于本体的概念和范围,抽取出具体的实例(实体)。 +> - 考虑当前本体已有的属性进行抽取,如果文本中出现该实体的属性,则进行抽取,如果没有则为“”。 +> - **关系(Relationship)是实体之间的语义连接**,用于描述不同实体类型之间的关联方式和语义含义。 +> - 请基于关系的定义,抽取出实体之间的具体关系实例。 + +### 已有本体类型(禁止重复推荐): +{chr(10).join(ontology_def_descriptions)} + +### 已有关系类型(禁止重复推荐): +- {"、".join(relationships)} + +### 每个本体已知属性: +{node_types} + +### 待分析文本: +{text.strip()} + + +3. 输出格式要求: + - 只输出纯JSON格式,不要有任何其他文本或解释。 + - 结构如下: +{{ + "entities": [ + {{ + "type": "实体类型", + "name": "实体名称", + "properties": {{ + "属性1": "值1或\"\"", + "属性2": "值2或\"\"" + }} + }} + ], + "relationships": [ + {{ + "type": "关系类型", + "from_entity": "起始实体名称", + "to_entity": "目标实体名称", + }} + ] +}} + +请确保: +- 实体类型来源本体其中一个,不要输出其他的实体类型 +- 只输出纯JSON,不要有其他内容 +- 实体名称保持一致性(完全匹配文本中的名称) +- 只抽取文本中明确提到的信息 +- 如果某个属性没有明确信息,属性值可以定义为"无",但不能没有该属性 +- 如果没有合适实体、关系,请不要进行抽取,直接返回[] + +现在请分析文本并输出JSON结果 + +""" + prompt_v2 = f""" +请从以下维修领域文本中抽取实体和关系信息以及对应的属性值: + +文本内容:"{text}" + +【重要规则】 +1. 实体识别: + - 必须识别以下类型的实体: + {', '.join(ontology)} + - 每个类型实体以及对应的描述如下: + {chr(10).join(ontology_def_descriptions)} + - 每个实体 **必须包含其类型对应的所有基础属性**(即使文本未提及,也需列出属性名,值可为"无")。 + - 基础属性定义如下: +{node_types} + +2. 关系识别: + - 必须识别以下类型的关系: + {', '.join(relationships)} + + +3. 输出格式要求: + - 只输出纯JSON格式,不要有任何其他文本或解释。 + - 结构如下: +{{ + "entities": [ + {{ + "type": "实体类型", + "name": "实体名称", + "properties": {{ + "属性1": "值1或\"\"", + "属性2": "值2或\"\"" + }} + }} + ], + "relationships": [ + {{ + "type": "关系类型", + "from_entity": "起始实体名称", + "to_entity": "目标实体名称", + }} + ] +}} + +请确保: +- 只输出纯JSON,不要有其他内容 +- 实体名称保持一致性(完全匹配文本中的名称) +- 只抽取文本中明确提到的信息 +- 属性值尽量从文本中提取,不要随意生成 +- 如果某个属性没有明确信息,属性值可以定义为"无",但不能没有该属性 + +现在请分析文本并输出JSON结果: +""" + return prompt + +example1 = ''' +{ +"new_entities": [ +{ +"name": "情境意识", +"definition": "操作人员对船舶环境、航行状态、水文气象及仪器读数等要素的实时感知与综合理解能力,是保障安全操作的认知基础。区别于已有本体:它不是物理实体(如设备)、功能事件(如故障)或操作规程(如操作项目),而是操作人员的主观认知状态。", +"suggested_attributes": ["认知等级", "更新时间", "环境因素"] +}, +{ +"name": "规则", +"definition": "由国际公约(如《国际海上避碰规则》)或公司制定的强制性操作规范,规定船舶在特定情境下必须遵守的安全行为准则。区别于已有本体:它不是内部执行流程(如操作项目),而是外部法规约束,具有法律效力和强制性。", +"suggested_attributes": ["规则编号", "发布机构", "生效日期", "适用范围"] +}, +], +"new_relationships": [ +{ +"name": "遵守", +"description": "操作规程或行为必须符合规则的要求,体现强制性约束关系。区别于已有关系:它表示外部法规对内部操作的强制要求,而非功能关联或物理组成。", +"example": "操作项目 遵守 规则" +} +] +} +''' +def extract_text_entity_relationship( + text: str, + ontology: List[str], + Ontology_DESCRIPTION: Dict[str, List[str]], + relationships: List[str], + node_types: Dict[str, List[str]], + relationship_types: Dict[str, List[str]] +): + new_entities_result = [] + new_relationships_result = [] + + for ins in text: + final_prompt = create_extraction_prompt( + text=ins, + ontology=ontology, + Ontology_DESCRIPTION=Ontology_DESCRIPTION, + relationships=relationships, + relationship_types=relationship_types, + node_types=node_types + ) + # final_prompt = final_prompt.replace("example1",example1) + res_str = OpenaiAPI.openai_chat(final_prompt,timeout=180) + + # 处理 API 调用失败 + if res_str is None: + print("⚠️ 跳过当前 chunk:API 调用失败") + continue + + # 尝试解析 JSON + try: + res = json.loads(res_str) + except json.JSONDecodeError as e: + print(f"❌ JSON 解析失败: {e}") + print(f"原始响应内容: {repr(res_str)}") + continue + + # 安全访问字段 + entities = res.get("new_entities", []) + relationships = res.get("new_relationships", []) + print(entities,relationships) + + return entities,relationships + + +if __name__ == "__main__": + text = """ + # 1)螺旋桨本体 + +功能与特性:能量转换的核心。它将主机的旋转动能转化为水流的反作用力(推力)。其特性由材料(如镍铝青铜、锰青铜)、桨叶数(3-6叶)、盘面比、螺距比等决定,直接影响效率、空泡和振动性能。 + +相互关系:直接安装在尾轴(螺旋桨轴) 末端,其扭矩由尾轴传递,其推力通过推力轴承传递给船体。 + +2)轴系 + +功能与特性:动力传递的桥梁。包括: + +推力轴及推力轴承:承受螺旋桨产生的巨大轴向推力,并将其传递给船体结构,是决定船舶能否前进、后退的关键。 + +中间轴:连接主机输出端与推力轴/尾轴。 + +尾轴(螺旋桨轴):穿过尾轴管,末端安装螺旋桨,工作环境恶劣(浸没海水中),通常需包覆铜套防腐。 + +相互关系:将主机的旋转输出与螺旋桨本体刚性连接,形成一个完整的动力传递链。推力轴承是轴系与船体结构之间的关键受力界面。 + +3)尾轴管与密封系统功能与特性: + +尾轴管:固定于船体尾端,支撑尾轴并形成从船内(机舱)到船外(海水)的通道。 + +密封系统(首尾密封):绝对关键的安全设备。防止海水沿尾轴流入机舱(尾密封),同时防止润滑油泄漏(首尾密封均有此功能)。通常采用唇式密封或面式密封,材料耐磨、耐腐蚀。 + +相互关系:为尾轴提供支撑和润滑(油润滑或水润滑),其密封系统直接保护尾轴并确保机舱安全,与轴系和船体结构紧密集成。 + +4)毂帽与导流罩功能与特性: + +毂帽:安装在螺旋桨毂后端,呈流线型,用于减少桨毂后部产生的涡流阻力,提高效率。 + +导流罩(如桨毂涡流消除器):安装在桨毂前方,改善流入桨叶的水流状态,尤其适用于肥大船型,能提升效率、减少振动。 + +相互关系:直接安装在螺旋桨本体的毂上,是其水动力性能的优化附件。 + +系统相互关系总结: + +主机驱动轴系旋转,轴系末端的尾轴带动螺旋桨本体旋转。螺旋桨产生的推力通过尾轴传递至推力轴承,最终作用在船体上使其运动。尾轴管及密封系统为这一旋转运动提供支撑、润滑和至关重要的水密保障。毂帽和导流罩则作为螺旋桨本体的附件,优化其水动力性能。所有子设备协同工作的核心目标,是确保主机功率被高效、平稳、可靠地转化为推进船舶前进的有效推力。 任何一环失效(如密封泄漏、轴承损坏)都将导致整个推进系统瘫痪。 +""" + + + extract_text_entity_relationship(text,ontology=Ontology,Ontology_DESCRIPTION=Ontology_DESCRIPTION,relationships=Relationships,relationship_types=RELATIONSHIP_TYPES,node_types=NODE_TYPES) + diff --git a/kgbuild/extract_text.py b/kgbuild/extract_text.py new file mode 100644 index 0000000..396d028 --- /dev/null +++ b/kgbuild/extract_text.py @@ -0,0 +1,258 @@ +import json +import fitz # PyMuPDF +import os +from collections import Counter +from Prompt import Prompt_guzhang +from openai import OpenAI +from extract_util import safe_json_loads, highlight_pdf_file, get_content_bbox,get_filter_content_bbox + + + + +def get_compose_chunk_bbox_and_removed_data(data): + """ + 返回: + - 符合条件的故障表分组(每组 [前前, 前, 当前]) + - 从原始 data 中移除了所有相关记录后的新 data 列表 + """ + title = "组成" + + # 支持多个 label 模式(可扩展) + labels = [ + '', + # 可在此添加更多变体,例如: + # '
序号组成部分功能数量
1
', + # '
序号故障现象故障原因维修项目
', + ] + + # 构建 id -> record 映射 + record_map = {item["id"]: item for item in data} + + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + # 检查 caption 是否包含 "故障表" + caption_has_title = any(title in caption for caption in ins.get("table_caption", [])) + + # 检查 body 是否匹配任意一个 label + body = ins.get("table_body", "") + body_matches_any_label = any(label in body for label in labels) + + if caption_has_title and body_matches_any_label: + current_id = ins["id"] + prev_ids = [current_id - 2, current_id - 1] + + # 收集要移除的 ID(前两条 + 当前) + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + + # 构建分组 + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + # 过滤原始 data + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + + return results, filtered_data + +def get_tujiecompose_chunk_bbox_and_removed_data(data): + """ + 返回: + - 符合条件的故障表分组(每组 [前前, 前, 当前]) + - 从原始 data 中移除了所有相关记录后的新 data 列表 + """ + title = "组成" + + # 支持多个 label 模式(可扩展) + labels = [ + '
序号故障现象故障原因维修项目
', + '
组成编码名称是否为关重件是否为寿命件
' + # 可在此添加更多变体,例如: + # '
序号组成部分功能数量
1
', + # '
序号故障现象故障原因维修项目
', + ] + + # 构建 id -> record 映射 + record_map = {item["id"]: item for item in data} + + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + # 检查 caption 是否包含 "故障表" + caption_has_title = any(title in caption for caption in ins.get("table_caption", [])) + + # 检查 body 是否匹配任意一个 label + body = ins.get("table_body", "") + body_matches_any_label = any(label in body for label in labels) + + if caption_has_title and body_matches_any_label: + current_id = ins["id"] + prev_ids = [current_id - 2, current_id - 1] + + # 收集要移除的 ID(前两条 + 当前) + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + + # 构建分组 + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + # 过滤原始 data + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + + return results, filtered_data + +def get_guzhang_chunk_bbox_and_removed_data(data): + title = "故障表" + label = "
序号故障现象故障原因维修项目
" + + record_map = {item["id"]: item for item in data} + results = [] + ids_to_remove = set() + + for ins in data: + if ins.get("type") == "table": + caption_has_title = any(title in caption for caption in ins.get("table_caption", [])) + body_has_label = label in ins.get("table_body", "") + if caption_has_title and body_has_label: + current_id = ins["id"] + prev_ids = [current_id - 2, current_id - 1] + group_ids = [pid for pid in prev_ids if pid >= 1] + [current_id] + ids_to_remove.update(group_ids) + group = [record_map.get(pid) for pid in prev_ids if pid >= 1] + [ins] + results.append(group) + + filtered_data = [item for item in data if item["id"] not in ids_to_remove] + return results, filtered_data + + +START_MARKERS = [ + # 标准格式(带 rowspan/colspan) + "
序号故障现象故障原因维修项目
", + + # 可在此添加其他格式,例如: + # "
维修项目编号组成编码名称维修项目维修间隔期
", +] + +def extract_maintenance_groups_and_remaining(records, markers=START_MARKERS, max_following_for_last=None): + """ + 普通起始标记:组 = [start, ..., next_start - 1] + 最后一个起始标记:组 = [start, ..., start + max_following_for_last] (若指定) + """ + groups = [] + current_group = None + used_ids = set() + + for record in records: + body = record.get("table_body", "") + is_start = (record.get("type") == "table" and + any(marker in body for marker in markers)) + + if is_start: + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + current_group = [record] + else: + if current_group is not None: + # 如果指定了 max_following_for_last,且这是最后一个组(暂时不知道是不是最后一个) + # 我们无法在遍历时知道“这是不是最后一个起始标记” + # 所以更好的办法是:先按原逻辑分组,再处理最后一个组 + current_group.append(record) + + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + # —————— 关键:后处理最后一个组 —————— + if groups and max_following_for_last is not None: + last_group = groups[-1] + if len(last_group) > max_following_for_last + 1: # +1 包含起始记录 + truncated = last_group[:max_following_for_last + 1] + # 更新 used_ids:移除被截掉的 ID + removed_ids = {r["id"] for r in last_group[max_following_for_last + 1:]} + used_ids -= removed_ids + groups[-1] = truncated + + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + + +START_MARKERS_ope = [ + '
维修项目编号组成编码名称维修项目维修间隔期
', + '
项目编号操作项目
', + '
项目编号操作项目
' +] + +def extract_operation_groups_and_remaining(records, markers=START_MARKERS_ope, max_following_for_last=None): + """ + 普通起始标记:组 = [start, ..., next_start - 1] + 最后一个起始标记:组 = [start, ..., start + max_following_for_last] (若指定) + """ + groups = [] + current_group = None + used_ids = set() + + for record in records: + body = record.get("table_body", "") + is_start = (record.get("type") == "table" and + any(marker in body for marker in markers)) + + if is_start: + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + current_group = [record] + else: + if current_group is not None: + # 如果指定了 max_following_for_last,且这是最后一个组(暂时不知道是不是最后一个) + # 我们无法在遍历时知道“这是不是最后一个起始标记” + # 所以更好的办法是:先按原逻辑分组,再处理最后一个组 + current_group.append(record) + + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + # —————— 关键:后处理最后一个组 —————— + if groups and max_following_for_last is not None: + last_group = groups[-1] + if len(last_group) > max_following_for_last + 1: # +1 包含起始记录 + truncated = last_group[:max_following_for_last + 1] + # 更新 used_ids:移除被截掉的 ID + removed_ids = {r["id"] for r in last_group[max_following_for_last + 1:]} + used_ids -= removed_ids + groups[-1] = truncated + + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + + + +def get_chunk_filter(data,max_length=7000): + for idx, item in enumerate(data, start=1): + item["id"] = idx + groups, remaining_records_repair = extract_maintenance_groups_and_remaining(data) + groups, remaining_records_operation = extract_operation_groups_and_remaining(remaining_records_repair) + groups, remaining_records_compose = get_compose_chunk_bbox_and_removed_data(remaining_records_operation) + groups, remaining_records_composetujie =get_tujiecompose_chunk_bbox_and_removed_data(remaining_records_compose) + results, filtered_data=get_guzhang_chunk_bbox_and_removed_data(remaining_records_composetujie) + res = get_filter_content_bbox(filtered_data,max_length=max_length) + return res + +# if __name__ == "__main__": +# file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/122-06A0014-B01001_发动机-维修手册_content_list.json' +# input_pdf_path = "/storage01/home/hdf/project/wxkgrag/kgextract/know/122-06A0014-B01001_发动机-维修手册_highlighted_fdb9e9db-98d2-4ef6-bc72-52f875453f85.pdf" +# try: +# with open(file_path, 'r', encoding='utf-8') as file: +# data = json.load(file) +# except Exception as e: +# print(f"读取 JSON 文件时出错:{e}") +# data = [] +# res = get_chunk_filter(data=data) +# print(res) + diff --git a/kgbuild/get_text_node_reala.py b/kgbuild/get_text_node_reala.py new file mode 100644 index 0000000..29ddc4f --- /dev/null +++ b/kgbuild/get_text_node_reala.py @@ -0,0 +1,320 @@ +from openai import OpenAI +from typing import List, Dict +import json +from langchain_text_splitters import MarkdownHeaderTextSplitter, CharacterTextSplitter +import requests +import json +from modelsAPI.model_api import OpenaiAPI + +def _split_markdown(text, chunk_size=2048, chunk_overlap=50): + """ + 根据 max_level 动态生成 headers_to_split_on 配置 + 规则: + - max_level=1 → 只按 # 分割 + - max_level=2 → 按 # 和 ## 分割 + - 以此类推 + """ + # 动态生成 headers_to_split_on 配置(目前固定为 Header_1) + headers_to_split_on = [("#", "Header_1")] + + # 初始化分割器 + splitter = MarkdownHeaderTextSplitter( + headers_to_split_on=headers_to_split_on, + strip_headers=True + ) + chunks = splitter.split_text(text) + + char_splitter = CharacterTextSplitter( + chunk_size=chunk_size, + chunk_overlap=chunk_overlap, + length_function=len, + separator="\n\n" # 更合理的分隔符 + ) + + final_chunks = [] + start_chars = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "第", "十", + "一", "二", "三", "四", "五", "六", "七", "八", "九"," 故障"] + new_header = [] + + # 提取所有 Header_1 并筛选出“有效标题” + for chunk in chunks: + header_1 = chunk.metadata.get('Header_1', '') + if header_1 and header_1[0] in start_chars: + new_header.append(header_1) + + new_header_set = set(new_header) + + # 构建带标题前缀的 final_chunks + for chunk in chunks: + header_1 = chunk.metadata.get('Header_1', '') + content = chunk.page_content + if len(content) <= 20000: + chunk_with_header = f"{header_1}\n{content}" if header_1 else content + final_chunks.append(chunk_with_header) + else: + split_texts = char_splitter.split_documents([chunk]) + for split_chunk in split_texts: + chunk_with_header = f"{header_1}\n{split_chunk.page_content}" if header_1 else split_chunk.page_content + final_chunks.append(chunk_with_header) + + # ===== 重新分组,并记录每个组的 header ===== + rechunked = [] + rechunked_headers = [] # 新增:每个 rechunked 块对应的 header + current = "" + current_header = "" # 当前正在构建的块所属的标题 + + for chunk in final_chunks: + is_new_section = False + matched_header = "" + + # 检查是否以某个 new_header 开头 + for h in new_header_set: + if chunk.startswith(h + "\n"): + is_new_section = True + matched_header = h + break + + if is_new_section: + # 保存上一段 + if current: + rechunked.append(current) + rechunked_headers.append(current_header) + # 开启新段 + current = chunk + current_header = matched_header + else: + # 合并到当前段 + if current: + current += "\n" + chunk + else: + current = chunk + current_header = "" # 如果开头无标题,则 header 为空 + + # 添加最后一段 + if current: + rechunked.append(current) + rechunked_headers.append(current_header) + + return rechunked, rechunked_headers + +Ontology = ["舰艇", "系统", "设备", "零部件", "故障", "修理", "维修项目","操作项目","保养"] +Relationships = ["包含", "组成", "解决", "用于", "使用","具有"] + +# 节点类型及其属性定义 + +NODE_TYPES = { + "舰艇": ["名称","型号", "弦号", "设计单位", "总装工厂", "所属部队"], + "系统": ["名称", "技术责任单位", "生产单位", "级别"], + "设备": ["名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间","运行时间","运行条件"], + "零部件": ["名称", "型号", "技术责任单位", "生产单位"], + "故障": ["故障现象名称", "故障原因", "故障影响", "故障类型", "发生时间", "处置情况", "修复情况"], + "修理": ["修理方案","修理人员", "修理时间", "修理工具", "备品备件", "修理类型", "维修项目"], + "维修项目": ["名称","维修项目编号", "组成编码", "维修设备名称", "维修间隔期", "维修级别", "页码", "安全防护要求", "安全注意事项","工具","备品备件","消耗材料","人力人员","修理步骤"], + "操作项目": ["名称", "操作项目编号", "安全防护", "注意事项","保障设施、保障设备(工具)", "人力人员", "操作步骤"], + "保养" : ["保养人员","保养时间","保养工具","保养频率"] +} + +Ontology_DESCRIPTION = { + "舰艇": ["代表一艘完整海上作战或保障平台的实体,是所有系统、设备和零部件的最高层级载体。区别于“系统”或“设备”,舰艇具有独立的型号、弦号和部队归属,不可作为其他舰艇的组成部分。"], + "系统": ["舰艇中实现某一类功能(如动力、导航、通信)的集成化功能单元,由多个设备协同组成。与“设备”不同,系统本身不直接对应物理装置,而是逻辑/功能层面的集合;与“舰艇”不同,系统不具备独立航行能力或部队归属。"], + "设备": ["安装在舰艇上、具有独立型号和运行状态的物理装置,可被启停、监控运行时间,并可能产生故障。区别于“零部件”,设备是可独立更换或维修的功能单元;区别于“系统”,设备是具体硬件而非功能集合。"], + "零部件": ["构成设备的不可再拆分的基础物理元件(如轴承、电路板、密封圈),通常无独立运行状态或启用时间。与“设备”关键区别在于:零部件不能单独运行,也不记录运行时间或技术状态变更。"], + "故障": ["设备或系统在运行中出现的异常状态或失效事件,必须包含具体现象(如“无法启动”)、原因(如“电源短路”)及影响。区别于“修理”或“保养”,故障是问题本身,而非应对措施;不包含操作步骤或人员信息。"], + "修理": ["针对已发生故障所执行的一次性修复行为,包含具体时间、人员、工具、方案和所关联的维修项目。区别于“保养”,修理是响应式、非周期性的;区别于“维修项目”,修理是实际发生的实例,而非标准化规程。"], + "维修项目": ["标准化、可重复执行的维修任务规程,规定了某类设备或系统在特定条件下应如何维修,包含编号、步骤、材料、安全要求等。区别于“修理”,维修项目是模板或规范,而非具体事件;不包含实际发生时间或人员。"], + "操作项目": ["舰艇正常运行中需执行的标准操作流程(如启动主机、校准雷达),强调操作步骤与安全保障。区别于“维修项目”,操作使用项目用于日常使用而非维护"], + "保养" : ["按计划周期性执行的预防性维护活动(如润滑、清洁、检测),目的是延缓性能退化。"] +} + +RELATIONSHIP_TYPES = { + "包含": ["舰艇包含系统", "系统包含设备","设备包含零部件","修理包含维修项目"], + "解决": ["修理解决故障", "维修项目解决故障"], + "使用": ["设备使用操作项目", "设备使用保养","设备使用维修项目"], + "具有": ["设备具有故障","零部件具有故障"] +} + +def create_extraction_prompt( + text: str, + ontology: List[str], + Ontology_DESCRIPTION: Dict[str, List[str]], + relationships: List[str], + node_types: Dict[str, List[str]], + relationship_types: Dict[str, List[str]] +) -> str: + # 构建已有本体的定义(用于上下文) + ontology_def_descriptions = [] + for etype in ontology: + clean_etype = etype.strip() + if clean_etype in Ontology_DESCRIPTION: + desc = ";".join(Ontology_DESCRIPTION[clean_etype]) + ontology_def_descriptions.append(f"- {clean_etype}:{desc}") + else: + ontology_def_descriptions.append(f"- {clean_etype}:无明确定义") + + # 构建关系示例 + rel_examples = [] + for rtype, examples in relationship_types.items(): + for ex in examples[:1]: + rel_examples.append(f" - {ex}") + + prompt = f"""你是一个专业的舰艇维修领域工程师。请基于给出的本体和属性等信息,抽取出实体、关系以及相关属性值。 + +> ⚠️ 重要说明: +> - **本体(Ontology Class)是抽象概念类别**,是对特定领域中概念体系的形式化、结构化规范,用于明确定义该领域内的实体类型(类)。 + + +### 已有本体类型: +{chr(10).join(ontology_def_descriptions)} + +### 已有关系类型: +- {"、".join(relationships)} +典型用法示例: +{chr(10).join(rel_examples)} + +### 待分析文本: +{text.strip()} + +### 你的任务: +1、根据给出的本体、关系以及相应的属性,从文本中抽取出所有可能的实体、关系以及相关属性值。 +2、不要随意添加无效属性,抽取的实体属于本体范围内,关系属于关系范围内。、 + +### 输出格式: +请输出json格式内容,不要输出其他格式和额外内容 +{{ + "entities": [ + {{ + "type": "设备", + "name": "1 号主机冷却系统", + "properties": {{ + "名称": "1 号主机冷却系统", + "型号": "", + "技术责任单位": "XX 舰艇保障大队", + "生产单位": "", + "技术状态": "", + "生产日期": "", + "启用时间": "", + "运行时间": "", + "运行条件": "" + }} + }}, + {{ + "type": "故障", + "name": "1 号主机冷却系统温度异常升高", + "properties": {{ + "故障现象": "1 号主机冷却系统温度异常升高", + "故障原因": "根据 A 设备发生的温度异常升高现象,结合相关技术手册与历史故障记录,分析如下: + (一)冷却液循环泵可能存在异常,导致流量不足; + (二)热交换器内部堵塞或外部散热片污损,影响散热效率; + (三)温度传感器或控制系统信号异常,导致误报警。 +", + "故障影响": "", + "故障类型": "", + "发生时间": "2013 年 05 月 7 日 9 时 23 分 37 秒", + "处置情况": " ", + "修复情况": "", + “” + }} + }} + ], + "relationships": [ + {{ + "type": "具有", + "from_entity": "1 号主机冷却系统", + "to_entity": "1 号主机冷却系统温度异常升高" + }} + ] +}} + +注意: +- 不要生成一些关系,如果没有就不要推荐 +- 如果文本没有符合的关系和实体,不要进行强行抽取 +""" + + return prompt + +async def extract_text_node_relationship( + text: str, + ontology: List[str], + Ontology_DESCRIPTION: Dict[str, List[str]], + relationships: List[str], + node_types: Dict[str, List[str]], + relationship_types: Dict[str, List[str]] +): + + + final_prompt = create_extraction_prompt( + text=text, + ontology=ontology, + Ontology_DESCRIPTION=Ontology_DESCRIPTION, + relationships=relationships, + relationship_types=relationship_types, + node_types=node_types + ) + res_str = await OpenaiAPI.openai_chat_aysnc(final_prompt,timeout=180) + + # 处理 API 调用失败 + if res_str is None: + print("⚠️ 跳过当前 chunk:API 调用失败") + + # 尝试解析 JSON + try: + res = json.loads(res_str) + except json.JSONDecodeError as e: + print(f"❌ JSON 解析失败: {e}") + print(f"原始响应内容: {repr(res_str)}") + + # 安全访问字段 + new_entities = res.get("entities", []) + new_relationships = res.get("relationships", []) + + # 可选:最后汇总输出 + # print("\n=== 最终结果 ===") + # print("生成文本本体:", new_entities_result) + # print("生成文本关系:", new_relationships_result) + return new_entities,new_relationships + + +# if __name__ == "__main__": +# text = """ +# # 1)螺旋桨本体 + +# 功能与特性:能量转换的核心。它将主机的旋转动能转化为水流的反作用力(推力)。其特性由材料(如镍铝青铜、锰青铜)、桨叶数(3-6叶)、盘面比、螺距比等决定,直接影响效率、空泡和振动性能。 + +# 相互关系:直接安装在尾轴(螺旋桨轴) 末端,其扭矩由尾轴传递,其推力通过推力轴承传递给船体。 + +# 2)轴系 + +# 功能与特性:动力传递的桥梁。包括: +# s +# 推力轴及推力轴承:承受螺旋桨产生的巨大轴向推力,并将其传递给船体结构,是决定船舶能否前进、后退的关键。 + +# 中间轴:连接主机输出端与推力轴/尾轴。 + +# 尾轴(螺旋桨轴):穿过尾轴管,末端安装螺旋桨,工作环境恶劣(浸没海水中),通常需包覆铜套防腐。 + +# 相互关系:将主机的旋转输出与螺旋桨本体刚性连接,形成一个完整的动力传递链。推力轴承是轴系与船体结构之间的关键受力界面。 + +# 3)尾轴管与密封系统功能与特性: + +# 尾轴管:固定于船体尾端,支撑尾轴并形成从船内(机舱)到船外(海水)的通道。 + +# 密封系统(首尾密封):绝对关键的安全设备。防止海水沿尾轴流入机舱(尾密封),同时防止润滑油泄漏(首尾密封均有此功能)。通常采用唇式密封或面式密封,材料耐磨、耐腐蚀。 + +# 相互关系:为尾轴提供支撑和润滑(油润滑或水润滑),其密封系统直接保护尾轴并确保机舱安全,与轴系和船体结构紧密集成。 + +# 4)毂帽与导流罩功能与特性: + +# 毂帽:安装在螺旋桨毂后端,呈流线型,用于减少桨毂后部产生的涡流阻力,提高效率。 + +# 导流罩(如桨毂涡流消除器):安装在桨毂前方,改善流入桨叶的水流状态,尤其适用于肥大船型,能提升效率、减少振动。 + +# 相互关系:直接安装在螺旋桨本体的毂上,是其水动力性能的优化附件。 + +# 系统相互关系总结: + +# 主机驱动轴系旋转,轴系末端的尾轴带动螺旋桨本体旋转。螺旋桨产生的推力通过尾轴传递至推力轴承,最终作用在船体上使其运动。尾轴管及密封系统为这一旋转运动提供支撑、润滑和至关重要的水密保障。毂帽和导流罩则作为螺旋桨本体的附件,优化其水动力性能。所有子设备协同工作的核心目标,是确保主机功率被高效、平稳、可靠地转化为推进船舶前进的有效推力。 任何一环失效(如密封泄漏、轴承损坏)都将导致整个推进系统瘫痪。 +# """ +# content = [] +# content.append(text) +# extract_text_node_relationship(content,ontology=Ontology,Ontology_DESCRIPTION=Ontology_DESCRIPTION,relationships=Relationships,relationship_types=RELATIONSHIP_TYPES,node_types=NODE_TYPES) + diff --git a/kgbuild/kg_save.py b/kgbuild/kg_save.py new file mode 100644 index 0000000..6504cd6 --- /dev/null +++ b/kgbuild/kg_save.py @@ -0,0 +1,408 @@ +import json +from datetime import datetime, timezone +from typing import Dict, List, Optional, Tuple, Union +from neo4j import GraphDatabase + + +class MilitaryKnowledgeGraph: + def __init__(self, uri: str, auth: Tuple[str, str], Ontology: List[str] = None): + """ + 初始化知识图谱 + + Args: + uri: Neo4j 数据库连接地址 + auth: 认证信息 (用户名, 密码) + Ontology: 节点类型列表,用于创建唯一性约束和类型校验 + """ + self.driver = GraphDatabase.driver(uri, auth=auth) + + # 默认节点类型 + self.Ontology = Ontology or [ + "舰艇", "系统", "设备", "零部件", + "故障", "修理", "维修项目", "操作项目", "保养","备品备件" + ] + + self._setup_constraints() + + def close(self): + """关闭数据库连接""" + self.driver.close() + + def _setup_constraints(self): + """为每个节点类型设置 名称 字段的唯一性约束""" + with self.driver.session() as session: + for node_type in self.Ontology: + try: + session.run(f"CREATE CONSTRAINT IF NOT EXISTS FOR (n:{node_type}) REQUIRE n.名称 IS UNIQUE") + except Exception as e: + print(f"创建约束失败 {node_type}: {e}") + + def construct_fact(self, from_name: str, to_name: str, rel_type: str, attributes: Dict) -> str: + """构造关系的自然语言描述(fact)""" + attr_str = ", ".join([f"{k}:{v}" for k, v in attributes.items() if v]) + if attr_str: + return f"{from_name} {rel_type} {to_name},{attr_str}" + else: + return f"{from_name} {rel_type} {to_name}" + + def _resolve_attribute_conflicts(self, existing_attrs: Dict, new_attrs: Dict) -> Dict: + """解决属性冲突(保留最新状态、最早开始时间、最晚结束时间等)""" + resolved = existing_attrs.copy() + current_time = datetime.now(timezone.utc).isoformat() + + for key, new_value in new_attrs.items(): + if new_value is None or new_value == "": + continue + + if key not in existing_attrs: + resolved[key] = new_value + elif existing_attrs[key] != new_value: + if key in ["当前状态", "执行状态", "完成状态"]: + resolved[key] = new_value + elif key in ["开始时间", "下达时间", "承担时间"]: + if new_value < existing_attrs[key]: + resolved[key] = new_value + elif key in ["结束时间", "执行时限"]: + if new_value > existing_attrs[key]: + resolved[key] = new_value + else: + resolved[key] = new_value + if f"{key}_history" not in resolved: + resolved[f"{key}_history"] = [] + resolved[f"{key}_history"].append({ + "previous_value": existing_attrs[key], + "new_value": new_value, + "update_time": current_time + }) + + return resolved + + def _create_relationship_with_timeline(self, tx, from_name: str, to_name: str, + rel_type: str, attributes: Dict) -> bool: + """创建或更新带有时间线的关系""" + current_time = datetime.now(timezone.utc).isoformat() + clean_attributes = {k: v for k, v in attributes.items() if v is not None and v != ""} + + fact = self.construct_fact(from_name, to_name, rel_type, attributes) + clean_attributes["fact"] = fact + + existing_rel = tx.run(""" + MATCH (a {名称: $from_name})-[r]->(b {名称: $to_name}) + WHERE type(r) = $rel_type + RETURN r, properties(r) as props + """, from_name=from_name, to_name=to_name, rel_type=rel_type).single() + + if existing_rel: + existing_props = existing_rel["props"] + updated_props = existing_props.copy() + + for key, new_value in clean_attributes.items(): + if key == "fact": + continue + if key not in existing_props or existing_props[key] != new_value: + timeline_key = f"{key}_timeline" + if timeline_key not in updated_props: + updated_props[timeline_key] = [] + + timeline_entry_dict = { + "value": new_value, + "timestamp": current_time, + "source": "text_extraction" + } + if key in existing_props: + timeline_entry_dict["previous_value"] = existing_props[key] + + timeline_entry_str = json.dumps(timeline_entry_dict, ensure_ascii=False) + updated_props[timeline_key].append(timeline_entry_str) + updated_props[key] = new_value + + if "fact" in clean_attributes: + fact_timeline_key = "fact_timeline" + if fact_timeline_key not in updated_props: + updated_props[fact_timeline_key] = [] + + fact_entry_str = json.dumps({ + "value": clean_attributes["fact"], + "timestamp": current_time, + "source": "text_extraction" + }, ensure_ascii=False) + updated_props[fact_timeline_key].append(fact_entry_str) + updated_props["fact"] = clean_attributes["fact"] + + updated_props["last_updated"] = current_time + + query = f""" + MATCH (a {{名称: $from_name}})-[r:{rel_type}]->(b {{名称: $to_name}}) + SET r = $properties + RETURN r + """ + tx.run(query, from_name=from_name, to_name=to_name, properties=updated_props) + print(f"更新关系: {from_name} -[{rel_type}]-> {to_name}") + + else: + relationship_props = clean_attributes.copy() + + for key, value in clean_attributes.items(): + timeline_key = f"{key}_timeline" + timeline_entry_dict = { + "value": value, + "timestamp": current_time, + "source": "text_extraction" + } + timeline_entry_str = json.dumps(timeline_entry_dict, ensure_ascii=False) + relationship_props[timeline_key] = [timeline_entry_str] + + relationship_props["created_at"] = current_time + relationship_props["last_updated"] = current_time + relationship_props["update_count"] = 1 + + query = f""" + MATCH (a {{名称: $from_name}}), (b {{名称: $to_name}}) + CREATE (a)-[r:{rel_type} $properties]->(b) + RETURN r + """ + tx.run(query, from_name=from_name, to_name=to_name, properties=relationship_props) + print(f"创建关系: {from_name} -[{rel_type}]-> {to_name}") + + return True + + def _create_or_update_node(self, tx, node_type: str, 名称: str, attributes: Dict) -> bool: + """ + 创建或更新节点,支持 knowledge_source 等复杂字段 + + Args: + tx: Neo4j 事务对象 + node_type: 节点类型 + 名称: 节点名称(唯一标识) + attributes: 节点属性字典 + """ + if not 名称 or not node_type: + return False + + # 安全校验:只允许预定义的节点类型 + if node_type not in self.Ontology: + print(f"跳过未知节点类型: {node_type}") + return False + + # 预处理 attributes:将 knowledge_source 转为 JSON 字符串 + clean_attributes = {"名称": 名称} # 确保名称字段存在 + for k, v in attributes.items(): + if v is None or v == "": + continue + if k == "knowledge_source" and isinstance(v, list): + clean_attributes[k] = json.dumps(v, ensure_ascii=False) + else: + clean_attributes[k] = v + + existing_node = tx.run( + f"MATCH (n:{node_type} {{名称: $名称}}) RETURN n, properties(n) as props", + 名称=名称 + ).single() + + current_time = datetime.now(timezone.utc).isoformat() + + if existing_node: + existing_props = existing_node["props"] + existing_attrs = {k: v for k, v in existing_props.items() + if not k.endswith('_timeline') and k not in ['created_at', 'last_updated']} + + resolved_attributes = self._resolve_attribute_conflicts(existing_attrs, clean_attributes) + + timeline_data = {k: v for k, v in existing_props.items() + if k.endswith('_timeline') or k in ['created_at', 'last_updated']} + + final_attributes = {**timeline_data, **resolved_attributes} + final_attributes["last_updated"] = current_time + + query = f""" + MATCH (n:{node_type} {{名称: $名称}}) + SET n = $attributes + RETURN n + """ + tx.run(query, 名称=名称, attributes=final_attributes) + print(f"更新节点: {node_type} - {名称}") + else: + clean_attributes["created_at"] = current_time + clean_attributes["last_updated"] = current_time + + query = f""" + CREATE (n:{node_type} $attributes) + RETURN n + """ + tx.run(query, attributes=clean_attributes) + print(f"创建节点: {node_type} - {名称}") + + return True + + def process_data(self, data: Dict) -> Tuple[int, int]: + """ + 处理字典数据并写入Neo4j + + Args: + data: 包含 entities 和 relationships 的字典 + + Returns: + Tuple[int, int]: (实体数量, 关系数量) + """ + if not data or not isinstance(data, dict): + print("无效的数据格式,需要字典类型") + return 0, 0 + + entity_count = 0 + relationship_count = 0 + + with self.driver.session() as session: + # 创建/更新实体节点 + for entity in data.get("entities", []): + try: + # 提取 properties,并注入 knowledge_source(如果存在) + props = entity.get("properties", {}).copy() + if "knowledge_source" in entity: + props["knowledge_source"] = entity["knowledge_source"] + + # 从 properties 中提取名称 + 名称 = props.pop("名称", None) + if not 名称: + print(f"跳过无名称节点: {entity}") + continue + + success = session.execute_write( + self._create_or_update_node, + entity["type"], + 名称, + props + ) + if success: + entity_count += 1 + except Exception as e: + print(f"处理节点失败: {entity}, 错误: {e}") + + # 创建/更新关系 + for relationship in data.get("relationships", []): + try: + success = session.execute_write( + self._create_relationship_with_timeline, + relationship["from_entity"], + relationship["to_entity"], + relationship["type"], + relationship.get("properties", {}) + ) + if success: + relationship_count += 1 + except Exception as e: + print(f"处理关系失败: {relationship}, 错误: {e}") + + print(f"成功处理 {entity_count} 个节点和 {relationship_count} 个关系") + return entity_count, relationship_count + + def get_relationship_history(self, from_name: str, to_name: str, rel_type: str) -> Optional[Dict]: + """获取关系的完整历史记录""" + with self.driver.session() as session: + result = session.run(""" + MATCH (a {名称: $from_name})-[r]->(b {名称: $to_name}) + WHERE type(r) = $rel_type + RETURN properties(r) as props + """, from_name=from_name, to_name=to_name, rel_type=rel_type) + + record = result.single() + return record["props"] if record else None + + def get_property_timeline(self, from_name: str, to_name: str, rel_type: str, + property_name: str) -> Optional[List]: + """获取特定属性的时间线(返回字符串列表,需 json.loads 解析)""" + history = self.get_relationship_history(from_name, to_name, rel_type) + if history: + return history.get(f"{property_name}_timeline", []) + return None + + def clear_database(self): + """清空数据库(谨慎使用)""" + with self.driver.session() as session: + session.run("MATCH (n) DETACH DELETE n") + print("数据库已清空") + + +# 测试数据 +# test_data = { +# "entities": [ +# { +# "type": "设备", +# "knowledge_source": [ +# { +# "filename": "122-06A0014-B01001_发动机-维修手册.pdf", +# "url": "http://192.168.0.111:8080/api/v1/files/9ac5c3a0-860c-4d30-a199-8daf51bf189b/content#page=5", +# "info": "主设备,维修对象" +# } +# ], +# "properties": { +# "名称": "发动机", +# "型号": "12V280ZJ", +# "技术责任单位": "中船动力研究院", +# "生产单位": "沪东重机", +# "运行条件": "适用于船舶推进系统,额定转速1000 rpm,最大持续功率5200 kW" +# } +# }, +# { +# "type": "设备", +# "knowledge_source": [ +# { +# "filename": "122-06A0014-B01001_发动机-维修手册.pdf", +# "url": "http://192.168.0.111:8080/api/v1/files/9ac5c3a0-860c-4d30-a199-8daf51bf189b/content#page=6", +# "info": "用于喷油器性能测试的专用设备" +# } +# ], +# "properties": { +# "名称": "喷油器测试台", +# "型号": "PTB-300", +# "生产单位": "沪东重机" +# } +# } +# ], +# "relationships": [ +# { +# "type": "包含", +# "from_entity": "发动机", +# "to_entity": "喷油器测试台" +# } +# ] +# } + +# if __name__ == "__main__": +# # 连接本地 Neo4j(请确保服务已启动) +# kg = MilitaryKnowledgeGraph( +# uri="bolt://localhost:7687", +# auth=("neo4j", "123456hdf"), +# Ontology=[ +# "舰艇", "系统", "设备", "零部件", +# "故障", "修理", "维修项目", "操作项目", "保养","备品备件" +# ] +# ) + +# try: +# print("开始写入知识图谱...") +# entity_count, rel_count = kg.process_data(test_data) +# print(f"✅ 写入完成:{entity_count} 个实体,{rel_count} 个关系") + +# # 验证读取 +# history = kg.get_relationship_history("发动机", "喷油器测试台", "包含") +# if history: +# print("\n🔍 关系 fact:", history.get("fact")) + +# # 检查节点属性 +# with kg.driver.session() as session: +# result = session.run(""" +# MATCH (e:设备 {名称: '发动机'}) +# RETURN e.名称 AS name, e.型号 AS model, e.knowledge_source AS ks +# """) +# record = result.single() +# if record: +# print(f"\n📌 节点验证:{record['name']}, 型号={record['model']}") +# if record['ks']: +# ks_data = json.loads(record['ks']) +# print(f"📄 来源文件: {ks_data[0]['filename']}") +# else: +# print("❌ 未找到节点!") + +# finally: +# # kg.clear_database() # 取消注释以清理测试数据 +# kg.close() diff --git a/kgbuild/table_html_extract.py b/kgbuild/table_html_extract.py new file mode 100644 index 0000000..db0acef --- /dev/null +++ b/kgbuild/table_html_extract.py @@ -0,0 +1,224 @@ +import re +from typing import List, Tuple +#from chunk_text import _split_markdown,read_markdown_file + +# def extract_tables(content: str) -> tuple[list[str], str]: +# """ +# 提取所有 HTML 表格,并从原文中移除它们。 + +# :param content: 原始 HTML/文本内容 +# :return: (tables: List[str], cleaned_content: str) +# """ +# pattern = r']*>.*?
项目编号操作项目
' + +# # 提取所有表格 +# tables = re.findall(pattern, content, flags=re.DOTALL | re.IGNORECASE) + +# # 删除所有表格(替换为空) +# cleaned_content = re.sub(pattern, '', content, flags=re.DOTALL | re.IGNORECASE) + +# return tables, cleaned_content + + + + +#提取常规表格内容 +def extract_tables(content: str, start_len: int = 300,end_len:int = 50) -> Tuple[List[str], List[str], str]: + """ + 提取所有 HTML 表格及其前后上下文(各最多 context_len 个字符),并从原文中移除表格及上下文。 + + :param content: 原始 HTML/文本内容 + :param context_len: 上下文长度(默认 100 字符) + :return: (tables: List[str], contexts: List[str], cleaned_content: str) + 其中 contexts[i] 是 tables[i] 对应的 "<前文> + ... + <后文>" 字符串 + """ + # 构造正则:捕获最多 context_len 个任意字符(非贪婪)+ table 标签 + 最多 context_len 个任意字符 + pattern = rf'(.{{0,{start_len}}}?)(]*>.*?
)(.{{0,{end_len}}})' + + matches = re.finditer(pattern, content, flags=re.DOTALL | re.IGNORECASE) + + tables = [] + contexts = [] + cleaned_content = content + + # 从后往前替换,避免位置偏移问题 + for match in reversed(list(matches)): + pre_context = match.group(1) + table = match.group(2) + post_context = match.group(3) + + full_context = pre_context + table + post_context + contexts.append(full_context) + tables.append(table) + + # 从原文中删除整个上下文片段(包括前后文和表格) + cleaned_content = cleaned_content[:match.start()] + cleaned_content[match.end():] + + # 因为是从后往前删的,所以 tables 和 contexts 顺序是反的,需要反转回来 + tables.reverse() + contexts.reverse() + + return tables, contexts, cleaned_content + + +#提取特殊维修项目表 +def extract_repair_tables_keep_first(content: str) -> tuple[list[str], str]: + """ + 提取所有维修表格,但只在原文中保留第一个,其余全部删除。 + + :param content: 原始 HTML/文本内容 + :return: (tables: List[str], cleaned_content: str) + - tables: 所有提取到的表格(包括第一个) + - cleaned_content: 原文中仅保留第一个表格,其余已删除 + """ + # 构建起始和结束模式 + start_literal = ( + '' + '' + '' + '' + '' + '' + ) + start_pattern = re.escape(start_literal) + end_pattern = r'
维修项目编号组成编码名称维修项目维修间隔期
页码:\d+/\d+版本号:\d+
' + + full_pattern = f'({start_pattern}.*?{end_pattern})' + + # 查找所有匹配(带位置信息) + matches = list(re.finditer(full_pattern, content, flags=re.DOTALL)) + + # 提取所有表格内容 + tables = [match.group(0) for match in matches] + + # 如果没有匹配或只有一个,直接返回 + if len(matches) <= 1: + return tables, content + + # 从后往前删除第2个及之后的表格(索引从1开始) + cleaned = content + # 注意:reversed(matches[1:]) 会按原始顺序的逆序删除,避免偏移 + for match in reversed(matches[1:]): + start, end = match.span() + cleaned = cleaned[:start] + cleaned[end:] + + return tables, cleaned + + + +# def extract_operation_tables(content: str) -> Tuple[List[str], str]: +# """ +# 提取所有以“项目编号 + 操作项目”为表头的操作表格(兼容多种HTML格式), +# 但只在原文中保留第一个,其余全部删除。 +# """ +# # 通用起始模式:匹配任意
标签,只要文本是“项目编号”和“操作项目” +# start_pattern = r''' +# ]*> \s* +# ]*> \s* +# \s* +# \s* +# \s* ]*> +# ''' + +# # 结尾模式:页码+版本号(动态数字) +# end_pattern = r'
]*> \s* 项目编号 \s* ]*> \s* 操作项目 \s*
]*> \s* ]*> \s* \s* \s* \s*
]*> 页码:\d+/\d+ ]*> 版本号:\d+
' + +# # 合并为完整非贪婪匹配 +# full_pattern = f'({start_pattern}.*?{end_pattern})' + +# # 使用 VERBOSE 忽略空格和注释,DOTALL 让 . 匹配换行符 +# matches = list(re.finditer(full_pattern, content, flags=re.DOTALL | re.VERBOSE)) + +# tables = [match.group(0) for match in matches] + +# if len(matches) <= 1: +# return tables, content + +# # 从后往前删除第2个及之后的表格 +# cleaned = content +# for match in reversed(matches[1:]): +# start, end = match.span() +# cleaned = cleaned[:start] + cleaned[end:] + +# return tables, cleaned + + +# +def extract_operation_tables(content: str) -> Tuple[List[str], str]: + """ + 提取所有以“项目编号 + 操作项目”为表头的操作表格。 + 每个表格的范围:从匹配的 start_pattern 开始,到下一个 start_pattern 之前(或文档结尾)。 + 同时生成切片:「前100字上下文 + 表格内容」。 + cleaned_content 中仅保留第一个表格(原始形式),其余删除。 + """ + # 起始模式(修复版) + start_pattern = r''' + ]*> \s* + ]*> \s* + ]*> \s* 项目编号 \s*
)作为字段名。 +# 2. 从第二行开始,每一行转为一个 JSON 对象,字段名对应表头,值为单元格文本。 +# 3. 所有文本需去除多余空白,保留原始语义。 +# 4. 额外添加两个字段: +# 已知表格类型有: +# - "table_type": 根据给出文本信息从以下已知类型中选择最匹配的一个: +# {', '.join(known_table_types)} +# 如果都不匹配,根据表格内容和上下文,用简洁中文概括该表格的类型或者表名(如“物理接口表”),或者输出无 +# - "related_entity": 仅根据【表格前的上下文文本】(不是表格内部!)判断该表格关联的设备、系统或对象名称(如“离心压缩机”、“润滑油系统”)。如果上下文未明确提及,则写“未明确”。 +# 5.- "sub_tables": 一个对象,可能包含多个子表(如果存在): +# "保障设备", "备品备件", "消耗材料", "人力人员" +# 每个子表的值为 { "rows": [ {...}, ... ] },按原表格结构解析 +# - 上下文(表格前的文本)和文本内容如下: +# text + +# 【输出格式】 +# 请严格输出一个 JSON 对象,格式如下: +# { +# "table_type": "字符串", +# "related_entity": "字符串", +# "标题" : "字符串" +# "rows": [ +# { "字段1": "值", "字段2": "值", ... }, +# ... +# ] +# } +# 不要输出任何其他解释、注释或 Markdown。 +# """ + +prompt = """ +你是一个专业的文档结构化助手。请根据以下输入,将内容转换为标准 JSON 格式。 +【要求】 +1. 如果输入是单一 HTML 表格,则按常规方式解析:表头为字段名,每行为一个对象。 +2. 如果输入是复合文档(含多个表格和标题段落),请将所有内容扁平化为一个 `rows` 列表,按文档出现顺序排列,行类型包括: + a) **主数据行**:来自表格的数据,字段名 = 表头 + b) **文本段落行**:当遇到类似 "# 标题"或者"标题\\n" 的 Markdown 标题及其后续段落时,生成一行: + {{ "标题名": "完整段落文本(保留换行)" }} + + c) **子表格行**:对每个非主表的 ,先解析为 rows,然后生成一行: + {{"表格类别名称": "[{{...}}, ...]" }} + 其中“表格类别名称”根据上下文判断,如“保障设备”、“备品备件”、“消耗材料”、“人力人员”等。 +3. 所有文本需去除首尾多余空白,但保留内部换行和语义。 +4. 输出必须包含: + - "table_type": 根据给出文本信息从以下已知类型中选择最匹配的一个,已知表格类型以及对应的表格描述有:: + {known_table_types_str} + 如果都不匹配,根据表格内容和上下文,用简洁中文概括该表格的类型或者表名(如“物理接口表”),或者输出无;若都不匹配,用简洁中文概括(如“物理接口表”),或输出“无”。 + "related_entity": 通过分析表格的上下文信息、表格题目以及表格内容,分析表格关联的实体 +5. 不要忽略页码表之前的内容(如
页码:4/4版本号:1
)。 +6. 表格之外的文本内容仅供上下文理解,不要对之外内容进行抽取 +7. 只识别完整的html源码,同时根据上下文内容找到相关实体 +8. 如果是空表,没有有效内容,请返回[],不需要进行抽取 + +【输入】 +{text} + +【输出格式,请严格输出json格式,不要输出任何其他解释、注释或 Markdown。】 +{{ + "table_type": "字符串", + "related_entity": "字符串", + "rows": [ + {{ ... }}, // 可能是数据行、section行、或sub_table行 + ] +}} + +示例1: +输入: +是此类船舶的核心动力源。
蒸汽参数:压力、温度、干度(饱和度)必须达到设计值,以保证轮机的输出功率和效率,并防止水击腐蚀叶片。
+ +# 2.2.2 非正常运行条件 + +本节对螺旋桨非正常运行条件进行说明。明确外部输入条件的变化可能对螺旋桨造成的故障。同时描述螺旋桨因故障会导致非正常输出条件可能会导致其他设备故障。 + +表 2.3 非正常输入条件及产生后果 + +
序号项目非正常输入条件可能产生后果
1.1 螺旋桨浸深不足1.2 水流中含有大量杂物、渔网、塑料等1.3 冷却水温度过高或流量不足1.4压载水调节不当,船舶纵倾/横倾过大1.1推进效率下降、空泡加剧、振动噪声增大1.2 桨叶缠绕、变形、崩边,导致动不平衡和轴系振动1.3 主机过热降功率运行,间接导致螺旋桨推力不足1.4 桨叶部分出水,主机负荷突变,可能引发“飞车”
22.1主推进电机(电力推进)供电电压/频率不稳定2.2控制系统断电或信号异常2.3 关键辅机泵(滑油泵、冷却水泵)电力中断2.1 输出扭矩波动,螺旋桨转速不稳定,引起轴系扭振2.2螺旋桨控制失灵(CPP无法调距)、监测报警失效,安全隐患增大2.3 主机或轴系润滑冷却失效,可能导致轴承烧损、主机停机
33.1 滑油(系统油、尾轴管油)污染、变质、含水3.2 滑油压力过低或断流3.3 燃油品质差、含水含杂质3.4 尾轴管密封漏油3.1 轴系、轴承磨损加速,尾轴承异常磨损会导致轴系下沉和振动3.2轴承油膜无法形成,引起干摩擦,短时间内导致轴承高温烧熔、轴颈损伤3.3主机燃烧不良,功率下降、部件磨损,间接影响螺旋桨出力3.4 润滑油泄漏污染水域,同时可能导致轴承润滑不足,并引发海水倒灌
44.1启动空气压力不足或含水4.2 CPP控制空气压力低、含杂质或泄漏4.3扫气/增压空气压力不足、温度过高4.1主机启动失败,螺旋桨无法投入运行4.2 桨叶螺距调节迟缓、卡滞或不准确,船舶机动性变差4.3主机功率下降,螺旋桨无法达到预定转速和推力
55.1 主蒸汽压力/温度低于设计值5.2蒸汽含水量高(干度低)5.3凝汽器真空度下降5.1蒸汽轮机输出功率降低,螺旋桨转速达不到要求5.2 蒸汽轮机低压段叶片发生水蚀,长期运行损坏叶片,效率下降5.3汽轮机效率降低,同样蒸汽耗量下输出功减少
6机械与外部环境6.1 螺旋桨桨叶受损(变形、裂缝、缺失)6.2 轴系对中不良6.3恶劣海况导致螺旋桨频繁出水6.4 船体尾部附件(如舵、导流罩)损坏或附着物过多6.1 动平衡破坏,导致轴系和船体尾部剧烈振动,加速轴承磨损6.2 轴承受力不均,引起异常磨损和振动,可能引发轴系疲劳断裂6.3 主机负荷剧烈波动,转速突变,对主机和齿轮箱造成冲击6.4尾部流场紊乱,螺旋桨进流不均,导致效率下降和振动加剧
+ +思考过程: +首先我需要阅读表格内容,是一个单一 HTML表格,其次,我需要判断表格的正确内容(即开始和结束部分),表 2.3 非正常输入条件及产生后果为表格的题目,"蒸汽参数:压力、温度、干度(饱和度)必须达到设计值,以保证轮机的输出功率和效率,并防止水击腐蚀叶片。 +"虽然也是表格内容,但是并不完整,因此完整的表格内容为"表 2.3 非正常输入条件及产生后果"之后的内容。接着,我需要找到表格关联的实体,从表格之前的内容可以找到"螺旋桨"是一个实体,因此表格的related_entity应该为"螺旋桨",表格类型并没有找到符合的表格类型,因此table_type为"其他",紧接着进行表格内容抽取,每一行为一个记录,根据字段和下面值构建json数据 + +输出为: +{{ + "table_type": "非正常运行条件表", + "related_entity": "螺旋桨", + "rows": [ + {{ + "序号": "", + "项目": "水", + "非正常输入条件": "1.1 螺旋桨浸深不足\\n1.2 水流中含有大量杂物、渔网、塑料等\\n1.3 冷却水温度过高或流量不足\\n1.4压载水调节不当,船舶纵倾/横倾过大", + "可能产生后果": "1.1推进效率下降、空泡加剧、振动噪声增大\\n1.2 桨叶缠绕、变形、崩边,导致动不平衡和轴系振动\\n1.3 主机过热降功率运行,间接导致螺旋桨推力不足\\n1.4 桨叶部分出水,主机负荷突变,可能引发“飞车”" + }}, + {{ + "序号": "2", + "项目": "电", + "非正常输入条件": "2.1主推进电机(电力推进)供电电压/频率不稳定\\n2.2控制系统断电或信号异常\\n2.3 关键辅机泵(滑油泵、冷却水泵)电力中断", + "可能产生后果": "2.1 输出扭矩波动,螺旋桨转速不稳定,引起轴系扭振\\n2.2螺旋桨控制失灵(CPP无法调距)、监测报警失效,安全隐患增大\\n2.3 主机或轴系润滑冷却失效,可能导致轴承烧损、主机停机" + }}, + {{ + "序号": "3", + "项目": "油", + "非正常输入条件": "3.1 滑油(系统油、尾轴管油)污染、变质、含水\\n3.2 滑油压力过低或断流\\n3.3 燃油品质差、含水含杂质\\n3.4 尾轴管密封漏油", + "可能产生后果": "3.1 轴系、轴承磨损加速,尾轴承异常磨损会导致轴系下沉和振动\\n3.2轴承油膜无法形成,引起干摩擦,短时间内导致轴承高温烧熔、轴颈损伤\\n3.3主机燃烧不良,功率下降、部件磨损,间接影响螺旋桨出力\\n3.4 润滑油泄漏污染水域,同时可能导致轴承润滑不足,并引发海水倒灌" + }}, + {{ + "序号": "4", + "项目": "气", + "非正常输入条件": "4.1启动空气压力不足或含水\\n4.2 CPP控制空气压力低、含杂质或泄漏\\n4.3扫气/增压空气压力不足、温度过高", + "可能产生后果": "4.1主机启动失败,螺旋桨无法投入运行\\n4.2 桨叶螺距调节迟缓、卡滞或不准确,船舶机动性变差\\n4.3主机功率下降,螺旋桨无法达到预定转速和推力" + }}, + {{ + "序号": "5", + "项目": "汽", + "非正常输入条件": "5.1 主蒸汽压力/温度低于设计值\\n5.2蒸汽含水量高(干度低)\\n5.3凝汽器真空度下降", + "可能产生后果": "5.1蒸汽轮机输出功率降低,螺旋桨转速达不到要求\\n5.2 蒸汽轮机低压段叶片发生水蚀,长期运行损坏叶片,效率下降\\n5.3汽轮机效率降低,同样蒸汽耗量下输出功减少" + }}, + {{ + "序号": "6", + "项目": "机械与外部环境", + "非正常输入条件": "6.1 螺旋桨桨叶受损(变形、裂缝、缺失)\\n6.2 轴系对中不良\\n6.3恶劣海况导致螺旋桨频繁出水\\n6.4 船体尾部附件(如舵、导流罩)损坏或附着物过多", + "可能产生后果": "6.1 动平衡破坏,导致轴系和船体尾部剧烈振动,加速轴承磨损\\n6.2 轴承受力不均,引起异常磨损和振动,可能引发轴系疲劳断裂\\n6.3 主机负荷剧烈波动,转速突变,对主机和齿轮箱造成冲击\\n6.4尾部流场紊乱,螺旋桨进流不均,导致效率下降和振动加剧" + }} + ] +}} + +示例2: +输入为: +6) 熟悉设备操作流程: + +[](https://cdn-mineru.openxlab.org.cn/result/2025-12-29/c866b1ca-780c-4f2c-b81e-ad22767b7b12/3f7d0c9690775e448a8cc595287ad07b0151f2decc08a3ff47e29f41afa51c0f.jpg) +图 001.1 设备操作流程图 + +
页码:1/1版本号:1
+ +表 4.5 FL-3.0 通信风冷设备开机前测试操作项目表 + +
项目编号操作项目
OT002开机前测试
+ +安全防护注意事项 + +1.设备开机前、维修后、长时间停用后均需测量绝缘电阻; + +2.将测量设备的电源和对外连线断开,并充分放电,确认所测对象未带电; + +3.将测量设备擦拭清扫干净,并保持清洁。 + +保障设施、保障设备(工具)、人力人员需求 + +1)保障设施、保障设备(工具) + +
序号名称规格/型号数量及单位备注
1兆欧表ZC25-3/500V1
+ +2)人力人员 + +
序号专业人数技能等级备注
1电气1士兵
+ +操作步骤.. + +1. 断开电源,确保电控箱无电; + +2. 合上电控箱断路器,兆欧表一端分别接在接线端子 L1、L2、L3 上,另一端接在机组外壳接地柱上,测量其绝缘电阻; + +3. 兆欧表一端分别接在接线端子 U1、V1、W1 (送风风机)、U2、V2、W2 (进风风机)、 + +U3、V3、W3 (海水泵)上、另一端接在机组外壳接地柱上,测量其绝缘电阻 。 + +4. 接通电源,合上电控箱空气开关,电源指示灯亮。 + +5. 按下试灯按钮,电控箱所有指示灯亮。 + +[](https://cdn-mineru.openxlab.org.cn/result/2025-12-29/c866b1ca-780c-4f2c-b81e-ad22767b7b12/f06f1ca5d5f784a551558c6bf3e57c4d2fe465178dcf2e018632e5c67fb707b2.jpg) +图 002.1 兆欧表 + +
页码:1/1版本号:1
+ +思考过程: +首先我需要阅读表格内容,是一个复杂HTML表格,其次,我需要判断表格的正确内容(即开始和结束部分),表 4.5 FL-3.0 通信风冷设备开机前测试操作项目表为表格的题目,"输入为: +6) 熟悉设备操作流程: + +[](https://cdn-mineru.openxlab.org.cn/result/2025-12-29/c866b1ca-780c-4f2c-b81e-ad22767b7b12/3f7d0c9690775e448a8cc595287ad07b0151f2decc08a3ff47e29f41afa51c0f.jpg) +图 001.1 设备操作流程图 + +
页码:1/1版本号:1
"为不完整的表格内容,因此忽略该内容。接着,我需要找到表格关联的实体,从表格之前的内容可以看到"通信风冷设备开机前测试操作项目表 "是表格标题名,因此"通信风冷设备"是关联实体(related_entity), + +从标题可以识别出表格为"操作使用项目表"。
项目编号操作项目
OT002开机前测试
,包含文本字段"项目编号"和"操作项目"字段,建立键值对{{ + "项目编号": "OT002", + "操作项目": "定距螺旋桨主机起动与转速控制(前进/倒车)操作" + }},"安全防护注意事项"后接着具体步骤,应该建立字段"安全防护注意事项",构建键值对"安全防护注意事项":"1.设备开机前、维修后、长时间停用后均需测量绝缘电阻; + +2.将测量设备的电源和对外连线断开,并充分放电,确认所测对象未带电; + +3.将测量设备擦拭清扫干净,并保持清洁。","保障设施、保障设备(工具)"和"人力人员"分别两个子表的表名称,应该建立字段"保障设施、保障设备(工具)"和"人力人员",构建键值对{{ + "保障设施、保障设备(工具)": "[{{ \"序号\": \"1\", \"名称\": \"主机控制操作台\", \"规格/型号\": \"含转速调节旋钮、换向手柄、紧急停机按钮,适配定距螺旋桨主机型号\", \"数量及单位\": \"1台\", \"备注\": \"需定期校验旋钮、手柄灵敏度,确保指令响应准确\" }}, {{ \"序号\": \"2\", \"名称\": \"转速监测仪表\", \"规格/型号\": \"量程0-1500r/min,精度±1r/min,支持实时显示与超限报警\", \"数量及单位\": \"1套\", \"备注\": \"安装于操作台显眼位置,便于操作人员实时盯控\" }}, {{ \"序号\": \"3\", \"名称\": \"通讯设备\", \"规格/型号\": \"防爆对讲机,有效通讯距离≥500 米,待」2部机时间≥24 小时\", \"数量及单位\": \"\", \"备注\": \"分别配备给主机操作手与驾驶室值守人员,保持联动\" }}, {{ \"序号\": \"4\", \"名称\": \"应急停机装置\", \"规格/型号\": \"瞬时动作型,额定电流≥主机控制回路电流,IP65 防护等级\", \"数量及单位\": \"2个\", \"备注\": \"1 个安装于操作台,1个安装于艉部应急位置\" }}, {{ \"序号\": \"5\", \"名称\": \"滑油/燃油参数检测仪\", \"规格/型号\": \"可检测油位、油温、油压,适配主机润滑/燃油系统\", \"数量及单位\": \"1套\", \"备注\": \"起动前快速校验系统参数是否达标\" }}, {{ \"序号\": \"6\", \"名称\": \"安全防护装备\", \"规格/型号\": \"防滑绝缘鞋、防机械伤害手套、护目镜\", \"数量及单位\": \"2套\", \"备注\": \"配备给主机操作手与辅助监测人员\" }}]" + }}, + {{ + "人力人员": "[{{ \"房号\": \"1\", \"专业\": \"船舶主机操作专业\", \"人数\": \"1人\", \"技能等级\": \"中级及以上\", \"备注\": \"精通定距螺旋桨主机起动、换向、调速流程,能处置常见运行故障\" }}, {{ \"房号\": \"2\", \"专业\": \"主机运行监测专业\", \"人数\": \"1人\", \"技能等级\": \"初级及以上\", \"备注\": \"负责实时记录主机运行参数,与驾驶室联动传递状态信息,协助应急处置\" }}]" + }},"操作步骤"后接着具体步骤,应该建立字段"操作步骤",构建键值对"操作步骤": "1. 断开电源,确保电控箱无电; + +2. 合上电控箱断路器,兆欧表一端分别接在接线端子 L1、L2、L3 上,另一端接在机组外壳接地柱上,测量其绝缘电阻; + +3. 兆欧表一端分别接在接线端子 U1、V1、W1 (送风风机)、U2、V2、W2 (进风风机)、 + +U3、V3、W3 (海水泵)上、另一端接在机组外壳接地柱上,测量其绝缘电阻 。 + +4. 接通电源,合上电控箱空气开关,电源指示灯亮。 + +5. 按下试灯按钮,电控箱所有指示灯亮。 + +[](https://cdn-mineru.openxlab.org.cn/result/2025-12-29/c866b1ca-780c-4f2c-b81e-ad22767b7b12/f06f1ca5d5f784a551558c6bf3e57c4d2fe465178dcf2e018632e5c67fb707b2.jpg) +图 002.1 兆欧表" + + +综上考虑,输出为: +{{ + "table_type": "操作使用项目表", + "related_entity": "FL-3.0 通信风冷设备", + "rows": [ + {{ + "项目编号": "OT002", + "操作项目": "开机前测试" + }}, + {{ + "安全防护注意事项": "1.设备开机前、维修后、长时间停用后均需测量绝缘电阻;\\n\\n2.将测量设备的电源和对外连线断开,并充分放电,确认所测对象未带电;\\n\\n3.将测量设备擦拭清扫干净,并保持清洁。" + }}, + {{ + "保障设施、保障设备(工具)": "[{{\\"序号\\":\\"1\\",\\"名称\\":\\"兆欧表\\",\\"规格/型号\\":\\"ZC25-3/500V\\",\\"数量及单位\\":\\"1\\",\\"备注\\":\\"\\"}}]" + }}, + {{ + "人力人员": "[{{\\"序号\\":\\"1\\",\\"专业\\":\\"电气\\",\\"人数\\":\\"1\\",\\"技能等级\\":\\"士兵\\",\\"备注\\":\\"\\"}}]" + }}, + {{ + "操作步骤": "1. 断开电源,确保电控箱无电;\\n\\n2. 合上电控箱断路器,兆欧表一端分别接在接线端子 L1、L2、L3 上,另一端接在机组外壳接地柱上,测量其绝缘电阻;\\n\\n3. 兆欧表一端分别接在接线端子 U1、V1、W1 (送风风机)、U2、V2、W2 (进风风机)、\\nU3、V3、W3 (海水泵)上、另一端接在机组外壳接地柱上,测量其绝缘电阻 。\\n\\n4. 接通电源,合上电控箱空气开关,电源指示灯亮。\\n\\n5. 按下试灯按钮,电控箱所有指示灯亮。\\n\\n[](https://cdn-mineru.openxlab.org.cn/result/2025-12-29/c866b1ca-780c-4f2c-b81e-ad22767b7b12/f06f1ca5d5f784a551558c6bf3e57c4d2fe465178dcf2e018632e5c67fb707b2.jpg) \\n图 002.1 兆欧表" + }} +] +}} +""" + + +# def extract_normaltable(chunks): +# known_table_types_str = ', '.join(table1) +# all_results = [] +# for idx, block in enumerate(chunks, 1): +# print(f"=== Repair Block {idx} ===") + +# final_prompt = prompt.format( +# known_table_types_str=known_table_types_str, +# text=block +# ) + +# raw_response = openai_chat(final_prompt) + +# # 尝试解析 JSON +# try: +# cleaned = raw_response.strip() +# if cleaned.startswith("```json"): +# cleaned = cleaned[7:].lstrip() +# if cleaned.endswith("```"): +# cleaned = cleaned[:-3].rstrip() + +# # ✅ 修复:移除 ensure_ascii 和 indent +# json_result = json.loads(cleaned) + +# # 可选:打印美化版(使用 dumps) +# print(json.dumps(json_result, ensure_ascii=False, indent=2)) + +# success = True +# except Exception as e: +# print(f" ⚠️ 第 {idx} 切片 JSON 解析失败: {e}") +# print(f" 原始响应: {repr(raw_response[:200])}") +# continue # 跳过保存失败项 + + +# all_results.append({ +# "chunk_index": idx, +# "input_snippet": block, +# "structured_result": json_result, +# "success": success +# }) + +# return all_results +def extract_normaltable(chunks): + known_table_types_str = ', '.join(table1) + all_results = [] + for idx, block in enumerate(chunks, 1): + print(f"=== 常规表格抽取: Repair Block {idx} ===") + print(block) + + final_prompt = prompt.format( + known_table_types_str=known_table_types_str, + text=block + ) + + raw_response = OpenaiAPI.openai_chat(final_prompt,timeout=240) + + # 新增:检查 API 是否返回 None(例如超时、网络错误等) + if raw_response is None: + print(f" ⚠️ 第 {idx} 切片 API 调用失败,跳过。") + # all_results.append({ + # "chunk_index": idx, + # "input_snippet": block, + # "structured_result": None, + # "success": False, + # "error": "API returned None (e.g., timeout)" + # }) + continue + + # 尝试解析 JSON + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + json_result = json.loads(cleaned) + print(json.dumps(json_result, ensure_ascii=False, indent=2)) + success = True + error = None + except Exception as e: + print(f" ⚠️ 第 {idx} 切片 JSON 解析失败: {e}") + print(f" 原始响应: {repr(raw_response[:200])}") + json_result = None + success = False + error = str(e) + + all_results.append({ + "chunk_index": idx, + "input_snippet": block, + "structured_result": json_result, + "success": success, + "error": error # 可选:记录错误信息 + }) + + return all_results + + +def safe_json_loads(s: str): + try: + return json.loads(s) + except json.JSONDecodeError as e: + # 尝试修复常见问题 + s = s.replace("\\n", "\\\n").replace("\r", "\\r").replace("\t", "\\t") + # 或者直接清理非法字符 + import re + s = re.sub(r'[\x00-\x1f\x7f]', '', s) # 移除控制字符 + try: + return json.loads(s) + except: + raise e +def extract_wxindextable(chunks): + """ + 批量处理一个文档的多个切片(chunks),每个切片调用大模型结构化,并返回全部结果。 + + :param chunks: List[str] - 同一文档的多个文本切片 + :return: List[Dict] - 结构化结果列表 + """ + known_table_types_str = ', '.join(table1) + all_results = [] + + + for idx, block in enumerate(chunks, 1): + print(f"=== 复杂表格抽取: Repair Block {idx} ===") + print(block) + + final_prompt = prompt.format( + known_table_types_str=known_table_types_str, + text=block + ) + + raw_response = OpenaiAPI.openai_chat(final_prompt,timeout=240) + + # 尝试解析 JSON + try: + cleaned = raw_response.strip() + if cleaned.startswith("```json"): + cleaned = cleaned[7:].lstrip() + if cleaned.endswith("```"): + cleaned = cleaned[:-3].rstrip() + + # ✅ 修复:移除 ensure_ascii 和 indent + json_result = safe_json_loads(cleaned) + + # 可选:打印美化版(使用 dumps) + print(json.dumps(json_result, ensure_ascii=False, indent=2)) + + success = True + except Exception as e: + print(f" ⚠️ 第 {idx} 切片 JSON 解析失败: {e}") + print(f" 原始响应: {repr(raw_response)}") + continue # 跳过保存失败项 + + + all_results.append({ + "chunk_index": idx, + "input_snippet": block, + "structured_result": json_result, + "success": success + }) + + return all_results + +# if __name__ == "__main__": + + +# text = """ + +# ![](http://localhost:8000/output/images/1c37b053197fbdaf14a53c5ac63e9ec99ed9ca02867a52f39a7f7ae2c36a45be.jpg) + +# 操作流程图 + +#
页码:3/3版本号:1
+ +# 表 4.3 定距螺旋 桨主机起动与转速控制(前进/倒车)操作 + +#
项目编号操作项目
OT002定距螺旋桨主机起动与转速控制(前进/倒车)操作
安全防护个人防护装备佩戴;检查区域内严禁明火、吸烟。
注意事项
备车状态下不得擅自离开操作岗位,应急停机按钮保持随时可操作状态。
保障设施、保障设备(工具)、人力人员需求
+ +# 1)保障设施、保障设备(工具) + +#
序号名称规格/型号数量及单位备注
1主机控制操作台含转速调节旋钮、换向手柄、紧急停机按钮,适配定距螺旋桨主机型号1台需定期校验旋钮、手柄灵敏度,确保指令响应准确
2转速监测仪表量程0-1500r/min,精度±1r/min,支持实时显示与超限报警1套安装于操作台显眼位置,便于操作人员实时盯控
3通讯设备防爆对讲机,有效通讯距离≥500 米,待」2部机时间≥24 小时分别配备给主机操作手与驾驶室值守人员,保持联动
4应急停机装置瞬时动作型,额定电流≥主机控制回路电流,IP65 防护等级2个1 个安装于操作台,1个安装于艉部应急位置
5滑油/燃油参数检测仪可检测油位、油温、油压,适配主机润滑/燃油系统1套起动前快速校验系统参数是否达标
6安全防护装备防滑绝缘鞋、防机械伤害手套、护目镜2套配备给主机操作手与辅助监测人员
+ +# 2)人力人员 + +#
房号专业人数技能等级备注
1船舶主机操作专业1人中级及以上精通定距螺旋桨主机起动、换向、调速流程,能处置常见运行故障
2主机运行监测专业1人初级及以上负责实时记录主机运行参数,与驾驶室联动传递状态信息,协助应急处置
+ +# 操作步骤.. + +# 1) 起动前确认油液、冷却水参数达标,螺旋桨无障碍物,与驾驶室联动通讯畅通。 +# 2) 将离合器置空挡,启动主机怠速预热 3-5 分钟,待参数稳定后平稳增速。 +# 3) 前进 / 倒车切换时,先降至怠速脱负荷,操作换向机构确认到位后,再逐步调节 +# 转速。 +# 4) 运转中实时监测参数与设备状态,异常立即降速或停机。 + +# ![](http://localhost:8000/output/images/3432346bd0129a1e19dbb1cea7f0fefe7965e755d06c80c55928699864556970.jpg) + +# 表 4.4 可调螺距螺旋桨(CPP)螺距与主机联合控制操作(含手柄操作) + +#
页码:3/3版本号:1
+# """ +# chunks =[] +# chunks.append(text) +# res = extract_normaltable(chunks) +# print(res) diff --git a/kgquerybin.py b/kgquerybin.py new file mode 100644 index 0000000..750f5c1 --- /dev/null +++ b/kgquerybin.py @@ -0,0 +1,443 @@ +class GraphQueryRequest(BaseModel): + queryview: Optional[str] = None + querylink: Optional[str] = None + head: Optional[str] = None + tail: Optional[str] = None + node: Optional[str] = None + # 在这里设置默认值为 3 + depth: Optional[int] = 3 + +@app.post("/api/v2/neo4j/query") +async def graph_query(request: GraphQueryRequest): + """ + 返回结构: + { + "message": str, + "simple_graphData": {...}, # 200节点采样(带 level 属性) + "graphData": {...}, # 查询结果图(头尾路径 / 节点展开等) + "short_routes": {...} # 最短路径(仅头尾模式有效) + } + """ + queryview = request.queryview + querylink= request.querylink + head = request.head + tail = request.tail + node = request.node + depth = request.depth + + # 1. 始终获取采样数据 + logger.info("Fetching graph sample | Limit: 200 nodes") + try: + simple_graphData = await run_in_threadpool(fetch_graph_sample, driver, 200) + except Exception as e: + logger.exception("Neo4j sample query error") + raise HTTPException(status_code=500, detail=f"Sample query failed: {str(e)}") + + def db_task(): + try: + with driver.session() as session: + # 默认返回值 + res = { + "graphData": {"nodes": [], "links": []}, + "short_routes": {"nodes": [], "links": []}, + "message": "" + } + + # =============================== + # 情况 1: 头尾节点都有 + # =============================== + if head and tail: + logger.info(f"Mode: HEAD + TAIL | {head} -> {tail}") + h_exists = session.run("MATCH (h {名称: $head}) RETURN h", head=head).single() + t_exists = session.run("MATCH (t {名称: $tail}) RETURN t", tail=tail).single() + + if h_exists and t_exists: + res["message"] = "头节点和尾节点展开成功" + if not h_exists and not t_exists: + res["message"] = "头节点和尾节点均不存在" + res["graphData"] = {"nodes": [], "links": []} + return res + elif not h_exists: + res["message"] = "头节点不存在" + # 返回存在的尾节点(如果存在) + nodes_list = [] + if t_exists: + nodes_list.append(node_to_json(t_exists["t"])) + res["graphData"] = {"nodes": nodes_list, "links": []} + return res + elif not t_exists: + res["message"] = "尾节点不存在" + nodes_list = [node_to_json(h_exists["h"])] + res["graphData"] = {"nodes": nodes_list, "links": []} + return res + + # 两者都存在,查路径 + sp_paths = list(session.run(""" + MATCH path = allShortestPaths((h {名称: $head})-[*..10]->(t {名称: $tail})) + RETURN path AS p + """, head=head, tail=tail)) + + all_paths = list(session.run(""" + MATCH path = (h {名称: $head})-[*1..10]->(t {名称: $tail}) + UNWIND nodes(path) AS x + WITH path, COUNT(DISTINCT x) AS nodeCount + WHERE nodeCount = LENGTH(path) + 1 + RETURN path AS p + """, head=head, tail=tail)) + + if not sp_paths and not all_paths: + # 无连接,返回两个孤立节点 + nodes_list = [ + node_to_json(h_exists["h"]), + node_to_json(t_exists["t"]) + ] + res["graphData"] = {"nodes": nodes_list, "links": []} + res["short_routes"] = {"nodes": [], "links": []} + else: + res["graphData"] = build_graph_from_paths(all_paths) + res["short_routes"] = build_graph_from_paths(sp_paths) + # === 新增:为 graphData 中每个节点计算 level(最大无向跳数,≤3)=== + nodes_list = res["graphData"]["nodes"] + if not nodes_list: + return res + + # 确保每个节点都有 "名称" + valid_nodes = [n for n in nodes_list if "name" in n and n["name"]] + node_names = [n["name"] for n in valid_nodes] + name_to_node = {n["name"]: n for n in valid_nodes} + for name in node_names: + try: + result = session.run(""" + MATCH (start {名称: $name}) + OPTIONAL MATCH path = (start)-[*1..3]-(end) + WHERE start <> end + RETURN coalesce(max(length(path)), 0) AS max_level + """, name=name).single() + + if result: + level = min(result["max_level"], 3) + name_to_node[name]["level"] = level + else: + name_to_node[name]["level"] = 0 + except Exception as e: + logger.warning(f"Failed to compute level for {name}: {e}") + name_to_node[name]["level"] = 0 + return res + + # =============================== + # 情况 2: 指定节点 + 深度 + # =============================== + elif node and depth is not None: + logger.info(f"Mode: NODE + DEPTH | {node} depth={depth}") + # # 校验节点是否存在 + # n_exists = session.run("MATCH (n {名称: $node}) RETURN n", node=node).single() + # if not n_exists: + # res["message"] = "指定节点不存在" + # return res + + # 有向:从 node 向外走 depth 跳 + paths = session.run(f""" + MATCH path = (n {{名称: $node}})-[*1..{depth}]-(m) + UNWIND nodes(path) AS x + WITH path, COUNT(DISTINCT x) AS nodeCount + WHERE nodeCount = LENGTH(path) + 1 + RETURN path AS p + """, node=node) + res["graphData"] = build_graph_from_paths(paths) + # === 新增:为 graphData 中每个节点计算 level(最大无向跳数,≤3)=== + nodes_list = res["graphData"]["nodes"] + if not nodes_list: + return res + + # 确保每个节点都有 "名称" + valid_nodes = [n for n in nodes_list if "name" in n and n["name"]] + node_names = [n["name"] for n in valid_nodes] + name_to_node = {n["name"]: n for n in valid_nodes} + + for name in node_names: + try: + result = session.run(""" + MATCH (start {名称: $name}) + OPTIONAL MATCH path = (start)-[*1..3]-(end) + WHERE start <> end + RETURN coalesce(max(length(path)), 0) AS max_level + """, name=name).single() + + if result: + level = min(result["max_level"], 3) + name_to_node[name]["level"] = level + else: + name_to_node[name]["level"] = 0 + except Exception as e: + logger.warning(f"Failed to compute level for {name}: {e}") + name_to_node[name]["level"] = 0 + res["message"] = f"{depth}节点展开成功" + return res + + # =============================== + # 情况 3: 只有头节点(有向,最多3跳) + # =============================== + elif head: + logger.info(f"Mode: HEAD ONLY | {head}") + h_exists = session.run("MATCH (h {名称: $head}) RETURN h", head=head).single() + if not h_exists: + res["message"] = "头节点不存在" + return res + + paths = session.run(""" + MATCH path = (h {名称: $head})-[*1..3]->(n) + UNWIND nodes(path) AS x + WITH path, COUNT(DISTINCT x) AS nodeCount + WHERE nodeCount = LENGTH(path) + 1 + RETURN path AS p + """, head=head) + paths = list(paths) + if not paths: + # 3. 如果没有有向路径,返回单个节点信息 + res["graphData"] = { + "nodes": [node_to_json(h_exists["h"])], + "links": [] + } + else: + res["graphData"] = build_graph_from_paths(paths) + # === 新增:为 graphData 中每个节点计算 level(最大无向跳数,≤3)=== + nodes_list = res["graphData"]["nodes"] + if not nodes_list: + return res + + # 确保每个节点都有 "名称" + valid_nodes = [n for n in nodes_list if "name" in n and n["name"]] + node_names = [n["name"] for n in valid_nodes] + name_to_node = {n["name"]: n for n in valid_nodes} + + for name in node_names: + try: + result = session.run(""" + MATCH (start {名称: $name}) + OPTIONAL MATCH path = (start)-[*1..3]-(end) + WHERE start <> end + RETURN coalesce(max(length(path)), 0) AS max_level + """, name=name).single() + + if result: + level = min(result["max_level"], 3) + name_to_node[name]["level"] = level + else: + name_to_node[name]["level"] = 0 + except Exception as e: + logger.warning(f"Failed to compute level for {name}: {e}") + name_to_node[name]["level"] = 0 + res["message"] = "头节点展开成功" + return res + + # =============================== + # 情况 4: 只有尾节点(应查入边!即 ←) + # =============================== + elif tail: + logger.info(f"Mode: TAIL ONLY | {tail}") + t_exists = session.run("MATCH (t {名称: $tail}) RETURN t", tail=tail).single() + if not t_exists: + res["message"] = "尾节点不存在" + return res + + # 注意:尾节点作为终点,应查找指向它的路径(←) + paths = session.run(""" + MATCH path = (n)-[*1..3]->(t {名称: $tail}) + UNWIND nodes(path) AS x + WITH path, COUNT(DISTINCT x) AS nodeCount + WHERE nodeCount = LENGTH(path) + 1 + RETURN path AS p + """, tail=tail) + paths = list(paths) + if not paths: + # 3. 如果没有有向路径,返回单个节点信息 + res["graphData"] = { + "nodes": [node_to_json(t_exists["t"])], + "links": [] + } + else: + res["graphData"] = build_graph_from_paths(paths) + # === 新增:为 graphData 中每个节点计算 level(最大无向跳数,≤3)=== + nodes_list = res["graphData"]["nodes"] + if not nodes_list: + return res + + # 确保每个节点都有 "名称" + valid_nodes = [n for n in nodes_list if "name" in n and n["name"]] + node_names = [n["name"] for n in valid_nodes] + name_to_node = {n["name"]: n for n in valid_nodes} + + for name in node_names: + try: + result = session.run(""" + MATCH (start {名称: $name}) + OPTIONAL MATCH path = (start)-[*1..3]-(end) + WHERE start <> end + RETURN coalesce(max(length(path)), 0) AS max_level + """, name=name).single() + + if result: + level = min(result["max_level"], 3) + name_to_node[name]["level"] = level + else: + name_to_node[name]["level"] = 0 + except Exception as e: + logger.warning(f"Failed to compute level for {name}: {e}") + name_to_node[name]["level"] = 0 + res["message"] = "尾节点展开成功" + return res + # =============================== + # 情况 5: 查询节点展开 + # =============================== + elif queryview and querylink: + logger.info(f"Mode: QUERYVIEW + QUERYLINK | nodes={queryview}, links={querylink}") + + # 解析节点 ID + node_ids = [x.strip() for x in queryview.split(",") if x.strip()] + link_ids = [x.strip() for x in querylink.split(",") if x.strip()] + + if not node_ids and not link_ids: + res["message"] = "queryview 和 querylink 均为空" + return res + + # === Step 1: 获取 queryview 节点的 3 跳子图(graphData)=== + graph_data_nodes = {} + graph_data_links = {} + + if node_ids: + nodes_result = session.run( + "MATCH (n) WHERE elementId(n) IN $ids RETURN n", + ids=node_ids + ) + seed_nodes = [rec["n"] for rec in nodes_result] + + if seed_nodes: + paths = session.run( + """ + MATCH (seed) + WHERE elementId(seed) IN $ids + WITH collect(seed) AS seeds + UNWIND seeds AS s + MATCH path = (s)-[*0..3]-(m) + RETURN path + """, + ids=node_ids + ) + + for p_rec in paths: + path = p_rec["path"] + for node_1 in path.nodes: + nid = node_1.element_id + if nid not in graph_data_nodes: + graph_data_nodes[nid] = node_to_json(node_1) + for rel in path.relationships: + rid = rel.element_id + if rid not in graph_data_links: + graph_data_links[rid] = rel_to_json(rel) + + # === Step 2: 获取 querylink 指定的边(用于 short_routes)=== + short_links = {} + node_ids_from_links = set() + + if link_ids: + # 先查边,并收集两端节点的 elementId + rels_result = session.run( + """ + MATCH ()-[r]->() + WHERE elementId(r) IN $link_ids + RETURN r, elementId(startNode(r)) AS start_id, elementId(endNode(r)) AS end_id + """, + link_ids=link_ids + ) + + rel_records = [] + for record in rels_result: + rel = record["r"] + rid = rel.element_id + short_links[rid] = rel_to_json(rel) + node_ids_from_links.add(record["start_id"]) + node_ids_from_links.add(record["end_id"]) + rel_records.append(record) + + # === 关键:用 node_ids_from_links 查询完整节点信息 === + if node_ids_from_links: + nodes_full_result = session.run( + "MATCH (n) WHERE elementId(n) IN $node_ids RETURN n", + node_ids=list(node_ids_from_links) + ) + short_nodes = { + node.element_id: node_to_json(node) + for record in nodes_full_result + for node in [record["n"]] + } + else: + short_nodes = {} + else: + short_nodes = {} + short_links = {} + + # === Step 3: 合并逻辑(可选:确保 short_routes 节点也在 graphData 中?不强制)=== + + graph_data = { + "nodes": list(graph_data_nodes.values()), + "links": list(graph_data_links.values()) + } + + short_routes = { + "nodes": list(short_nodes.values()), + "links": list(short_links.values()) + } + + # === Step 4: 为 graphData 中的节点计算 level(保持不变)=== + valid_nodes = [n for n in graph_data["nodes"] if n.get("name")] + name_to_node = {n["name"]: n for n in valid_nodes if n.get("name")} + for name in name_to_node: + try: + result = session.run(""" + MATCH (start {名称: $name}) + OPTIONAL MATCH path = (start)-[*1..3]-(end) + WHERE start <> end + RETURN coalesce(max(length(path)), 0) AS max_level + """, name=name).single() + level = min(result["max_level"], 3) if result else 0 + name_to_node[name]["level"] = level + except Exception as e: + logger.warning(f"Failed to compute level for {name}: {e}") + name_to_node[name]["level"] = 0 + + res["graphData"] = graph_data + res["short_routes"] = short_routes + res["message"] = f"查询拓展加载成功!" + return res + + # =============================== + # 兜底:无任何输入 + # =============================== + else: + res["message"] = "查询成功!" + return res + + except Exception as e: + logger.exception("Internal db_task error") + return { + "graphData": {"nodes": [], "links": []}, + "short_routes": {"nodes": [], "links": []}, + "message": f"数据库查询异常: {str(e)}" + } + + # 执行数据库任务 + query_result = await run_in_threadpool(db_task) + + # 组装最终响应 + if head or tail: + simple_graphData=query_result["graphData"] + if node and depth: + simple_graphData=query_result["graphData"] + if queryview and querylink: + simple_graphData=query_result["graphData"] + return { + "message": query_result["message"], + "simple_graphData": simple_graphData, + "graphData": query_result["graphData"], + "short_routes": query_result.get("short_routes", {"nodes": [], "links": []}) + } \ No newline at end of file diff --git a/kgrag_migration/01_copy_files.sh b/kgrag_migration/01_copy_files.sh new file mode 100644 index 0000000..ae858bb --- /dev/null +++ b/kgrag_migration/01_copy_files.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# ============================================================================= +# 步骤 1:从原数据机拉取数据文件到迁移目标机(全量版) +# 仅传输数据:files/ kg_output/ kg_snapshot.json +# 在【迁移目标机】上执行本脚本 +# 配置项请修改 migration_config.sh +# ============================================================================= + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" + +set -e + +echo "==========================================" +echo " kgrag 数据迁移脚本 - 步骤 1(全量)" +echo " 原数据机: ${SRC_SERVER}:${SRC_APP_DIR}" +echo " 目标代码目录: ${DST_CODE_DIR}" +echo " 目标文件目录: ${DST_FILES_DIR}" +echo "==========================================" + +mkdir -p "${DST_FILES_DIR}" +mkdir -p "${DST_CODE_DIR}/kg_output" + +echo "" +echo "[1/3] 原始文档 → ${DST_FILES_DIR}/ ..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/files/" \ + "${DST_FILES_DIR}/" + +echo "" +echo "[2/3] kg_output → ${DST_CODE_DIR}/kg_output/ ..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/kg_output/" \ + "${DST_CODE_DIR}/kg_output/" + +echo "" +echo "[3/3] kg_snapshot.json → ${DST_CODE_DIR}/ ..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/kg_snapshot.json" \ + "${DST_CODE_DIR}/kg_snapshot.json" + +echo "" +echo "==========================================" +echo " 数据迁移完成!" +echo " 下一步:执行 bash 02_load_neo4j.sh" +echo "==========================================" diff --git a/kgrag_migration/01_copy_files_by_ship.sh b/kgrag_migration/01_copy_files_by_ship.sh new file mode 100644 index 0000000..4139b60 --- /dev/null +++ b/kgrag_migration/01_copy_files_by_ship.sh @@ -0,0 +1,100 @@ +#!/bin/bash +# ============================================================================= +# 步骤 1:从原数据机拉取指定舰船号的文件到迁移目标机(按舰版) +# 在【迁移目标机】上执行本脚本 +# 配置项(TARGET_SHIPS 等)请修改 migration_config.sh +# ============================================================================= + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" + +set -e + +if [ -z "$TARGET_SHIPS" ]; then + echo "错误:migration_config.sh 中 TARGET_SHIPS 未设置。" + echo "如需拉取全部文件,请使用 01_copy_files.sh。" + exit 1 +fi + +# 构造 rsync 舰船过滤参数 +SHIP_FILTERS=() +for ship in $TARGET_SHIPS; do + SHIP_FILTERS+=("--include=${ship}-*") +done +SHIP_FILTERS+=("--exclude=*") + +echo "==========================================" +echo " kgrag 文件迁移脚本 - 步骤 1(按舰版)" +echo " 原数据机: ${SRC_SERVER}:${SRC_APP_DIR}" +echo " 目标代码目录: ${DST_CODE_DIR}" +echo " 目标文件目录: ${DST_FILES_DIR}" +echo " 目标舰船号: ${TARGET_SHIPS}" +echo "==========================================" + +mkdir -p "${DST_CODE_DIR}" +mkdir -p "${DST_FILES_DIR}/uploads_v1" +mkdir -p "${DST_CODE_DIR}/kg_output" +mkdir -p "${DST_CODE_DIR}/fault_wenjian" + +echo "" +echo "[1/6] 迁移原始文档 → ${DST_FILES_DIR}/ (仅 ${TARGET_SHIPS})..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + --exclude="uploads_v1/" \ + "${SHIP_FILTERS[@]}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/files/" \ + "${DST_FILES_DIR}/" + +echo "" +echo "[2/6] 迁移高亮注释 PDF → ${DST_FILES_DIR}/uploads_v1/ (全量)..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/files/uploads_v1/" \ + "${DST_FILES_DIR}/uploads_v1/" + +echo "" +echo "[3/6] 迁移抽取结果 JSON → ${DST_CODE_DIR}/kg_output/ (仅 ${TARGET_SHIPS})..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + "${SHIP_FILTERS[@]}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/kg_output/" \ + "${DST_CODE_DIR}/kg_output/" + +echo "" +echo "[4/6] 迁移 kg_snapshot.json → ${DST_CODE_DIR}/ (全量)..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/kg_snapshot.json" \ + "${DST_CODE_DIR}/kg_snapshot.json" + +echo "" +echo "[5/6] 迁移 fault_wenjian/ → ${DST_CODE_DIR}/fault_wenjian/ (仅 ${TARGET_SHIPS})..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + "${SHIP_FILTERS[@]}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/fault_wenjian/" \ + "${DST_CODE_DIR}/fault_wenjian/" + +echo "" +echo "[6/6] 迁移代码文件 → ${DST_CODE_DIR}/ ..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + --exclude="__pycache__/" \ + --exclude="*.pyc" \ + --exclude="*.log" \ + --exclude="files/" \ + --exclude="kg_output/" \ + --exclude="kg_snapshot.json" \ + --exclude="fault_wenjian/" \ + --exclude="mineru_output/" \ + "${SRC_SERVER}:${SRC_APP_DIR}/" \ + "${DST_CODE_DIR}/" + +echo "" +echo "==========================================" +echo " 文件迁移完成!已拉取舰船号: ${TARGET_SHIPS}" +echo "" +echo " 下一步:" +echo " 1. python split_by_ship.py" +echo " 2. bash 02_load_neo4j_by_ship.sh" +echo "==========================================" diff --git a/kgrag_migration/02_load_neo4j.sh b/kgrag_migration/02_load_neo4j.sh new file mode 100644 index 0000000..e8b7e34 --- /dev/null +++ b/kgrag_migration/02_load_neo4j.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# ============================================================================= +# 步骤 2:将全量 kg_snapshot.json 导入迁移目标机的 Neo4j +# 在【迁移目标机】上执行本脚本 +# 配置项请修改 migration_config.sh +# ============================================================================= + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" + +SNAPSHOT_PATH="${DST_CODE_DIR}/kg_snapshot.json" +PYTHON="docker exec ${KGRAG_CONTAINER} python3" + +set -e + +echo "==========================================" +echo " kgrag Neo4j 导入脚本 - 步骤 2(全量)" +echo " 快照文件: ${SNAPSHOT_PATH}" +echo "==========================================" + +if [ ! -f "${SNAPSHOT_PATH}" ]; then + echo "错误:快照文件不存在: ${SNAPSHOT_PATH}" + echo "请先执行步骤 1 迁移文件。" + exit 1 +fi + +echo "" +echo "快照文件大小: $(du -sh ${SNAPSHOT_PATH} | cut -f1)" +echo "" + +cd "${DST_CODE_DIR}" +${PYTHON} ${CONTAINER_APP_DIR}/batch_kg_build.py \ + --phase load_snapshot \ + --snapshot_path "${CONTAINER_APP_DIR}/kg_snapshot.json" + +echo "" +echo "==========================================" +echo " Neo4j 导入完成!" +echo " 下一步:执行 bash 02b_rebuild_index.sh" +echo "==========================================" diff --git a/kgrag_migration/02_load_neo4j_by_ship.sh b/kgrag_migration/02_load_neo4j_by_ship.sh new file mode 100644 index 0000000..dc1c486 --- /dev/null +++ b/kgrag_migration/02_load_neo4j_by_ship.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# ============================================================================= +# 步骤 2:将指定舰船的 kg_snapshot.json 导入迁移目标机的 Neo4j(按舰版) +# 在【迁移目标机】上执行本脚本 +# 配置项(IMPORT_SHIP 等)请修改 migration_config.sh +# ============================================================================= + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" + +PYTHON="python3" + +set -e + +if [ -z "$IMPORT_SHIP" ]; then + echo "错误:migration_config.sh 中 IMPORT_SHIP 未设置。" + echo "如需导入全量快照,请使用 02_load_neo4j.sh。" + exit 1 +fi + +SNAPSHOT_PATH="${DST_CODE_DIR}/migration_split/${IMPORT_SHIP}/kg_snapshot.json" + +echo "==========================================" +echo " kgrag Neo4j 导入脚本 - 步骤 2(按舰版)" +echo " 导入舰船: ${IMPORT_SHIP}" +echo " 快照文件: ${SNAPSHOT_PATH}" +echo "==========================================" + +if [ ! -f "${SNAPSHOT_PATH}" ]; then + echo "错误:快照文件不存在: ${SNAPSHOT_PATH}" + echo "请先运行 split_by_ship.py 生成按舰快照。" + exit 1 +fi + +echo "" +echo "快照文件大小: $(du -sh ${SNAPSHOT_PATH} | cut -f1)" +echo "" + +cd "${DST_CODE_DIR}" +${PYTHON} batch_kg_build.py \ + --phase load_snapshot \ + --snapshot_path "${SNAPSHOT_PATH}" + +echo "" +echo "==========================================" +echo " Neo4j 导入完成!已导入: ${IMPORT_SHIP}" +echo " 下一步:执行 bash 02b_rebuild_index.sh" +echo "==========================================" diff --git a/kgrag_migration/02b_rebuild_index.sh b/kgrag_migration/02b_rebuild_index.sh new file mode 100644 index 0000000..33dfa1d --- /dev/null +++ b/kgrag_migration/02b_rebuild_index.sh @@ -0,0 +1,89 @@ +#!/bin/bash +# ============================================================================= +# 步骤 2b:迁移后重建 Neo4j 索引(向量索引 + 全文索引 + 混合索引) +# 在【迁移目标机】上执行本脚本 +# 必须在 02_load_neo4j.sh 或 02_load_neo4j_by_ship.sh 之后执行 +# 配置项请修改 migration_config.sh +# ============================================================================= + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" + +set -e + +INDEXING_URL="http://localhost:${DST_KGRAG_PORT}/neo4j_indexing" + +echo "==========================================" +echo " kgrag 索引重建脚本 - 步骤 2b" +echo " 接口地址: ${INDEXING_URL}" +echo " Neo4j: ${NEO4J_URI}" +echo "==========================================" +echo "" +echo "正在调用索引重建接口(可能需要几分钟)..." +echo "" + +RESPONSE=$(curl -s -w "\n%{http_code}" -X POST "${INDEXING_URL}" \ + -H "Content-Type: application/json" \ + -d "{ + \"neo4j_uri\": \"${NEO4J_URI}\", + \"neo4j_username\": \"${NEO4J_USER}\", + \"neo4j_password\": \"${NEO4J_PASSWORD}\", + \"force_refresh\": true + }" \ + --max-time 300) + +HTTP_CODE=$(echo "$RESPONSE" | tail -n1) +BODY=$(echo "$RESPONSE" | sed '$d') + +echo "HTTP 状态码: ${HTTP_CODE}" +echo "返回内容: ${BODY}" + +if [ "$HTTP_CODE" = "409" ]; then + echo " [WARN] 已有索引任务在执行(409),跳过接口调用,直接走兜底 cypher" +elif [ "$HTTP_CODE" != "200" ]; then + echo "" + echo " [ERROR] 接口调用失败,HTTP ${HTTP_CODE}" + echo " 请确认 kgrag 容器已启动,端口 ${DST_KGRAG_PORT} 可访问" + exit 1 +fi + +# 检查 hybrid_index_status(HTTP 200 但混合索引可能静默失败返回 207) +HYBRID_STATUS=$(echo "$BODY" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('data',{}).get('hybrid_index_status','unknown'))" 2>/dev/null || echo "unknown") +if [ "$HYBRID_STATUS" != "success" ]; then + echo " [WARN] hybrid_index_status=${HYBRID_STATUS},混合索引未由接口建立,将由下方兜底命令补建" +else + echo " [OK] /neo4j_indexing 全部成功(含混合索引)" +fi + +# ---------------------------------------------------------- +# 补建混合索引(build_hybrid_indexes 可能静默失败,在此兜底) +# 对应 neo4j_indexing.py 中 VECTOR_INDEX_NAME / FULLTEXT_INDEX_NAME / +# FULLTEXT_FIELD_INDEX_NAME 三个常量 +# ---------------------------------------------------------- +echo "" +echo "补建混合索引(global_searchable_* 系列)..." + +NEO4J_CONTAINER="neo4j" +NEO4J_PASS="${NEO4J_PASSWORD}" + +docker exec "${NEO4J_CONTAINER}" cypher-shell \ + -u "${NEO4J_USER}" -p "${NEO4J_PASS}" \ + "CREATE VECTOR INDEX global_searchable_embedding IF NOT EXISTS + FOR (n:Searchable) ON (n.embedding) + OPTIONS {indexConfig: {\`vector.dimensions\`: 1024, \`vector.similarity_function\`: 'cosine'}}" + +docker exec "${NEO4J_CONTAINER}" cypher-shell \ + -u "${NEO4J_USER}" -p "${NEO4J_PASS}" \ + "CREATE FULLTEXT INDEX global_searchable_content_search IF NOT EXISTS + FOR (n:Searchable) ON EACH [n.\`名称\`]" + +docker exec "${NEO4J_CONTAINER}" cypher-shell \ + -u "${NEO4J_USER}" -p "${NEO4J_PASS}" \ + "CREATE FULLTEXT INDEX global_searchable_fulltext_search IF NOT EXISTS + FOR (n:Searchable) ON EACH [n.fulltext]" + +echo "" +echo "==========================================" +echo " 索引重建完成(含混合索引兜底)!" +echo " 下一步:执行 python 03_update_neo4j_urls.py" +echo "==========================================" diff --git a/kgrag_migration/03_run_in_container.sh b/kgrag_migration/03_run_in_container.sh new file mode 100644 index 0000000..aebcb45 --- /dev/null +++ b/kgrag_migration/03_run_in_container.sh @@ -0,0 +1,7 @@ +#!/bin/bash +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" +echo "==========================================" +echo " 步骤 3:在 ${KGRAG_CONTAINER} 容器内更新 Neo4j URL" +echo "==========================================" +docker exec ${KGRAG_CONTAINER} python3 ${CONTAINER_APP_DIR}/kgrag_migration/03_update_neo4j_urls.py diff --git a/kgrag_migration/03_update_neo4j_urls.py b/kgrag_migration/03_update_neo4j_urls.py new file mode 100644 index 0000000..c5d3f5c --- /dev/null +++ b/kgrag_migration/03_update_neo4j_urls.py @@ -0,0 +1,99 @@ +#!/usr/bin/env python3 +""" +步骤 3:批量更新 Neo4j 中所有节点 knowledge_source 字段里的旧服务 URL +在【迁移目标机】上执行本脚本 +配置项请修改 migration_config.py +""" + +import json +import sys +import os + +sys.path.insert(0, os.path.dirname(__file__)) +from migration_config import OLD_BASE_URL, NEW_BASE_URL, NEO4J_URI, NEO4J_USER, NEO4J_PASSWORD + +from neo4j import GraphDatabase + + +def update_urls(driver, old_url: str, new_url: str): + updated = 0 + skipped = 0 + errors = 0 + + with driver.session() as session: + result = session.run( + "MATCH (n) WHERE n.knowledge_source IS NOT NULL " + "RETURN id(n) AS node_id, n.名称 AS name, n.knowledge_source AS ks" + ) + records = list(result) + + print(f"共找到 {len(records)} 个含 knowledge_source 的节点") + + for record in records: + node_id = record["node_id"] + name = record["name"] + ks_raw = record["ks"] + + try: + if isinstance(ks_raw, str): + ks_list = json.loads(ks_raw) + elif isinstance(ks_raw, list): + ks_list = ks_raw + else: + skipped += 1 + continue + except json.JSONDecodeError as e: + print(f" [WARN] 节点 {name}(id={node_id}) JSON 解析失败: {e}") + errors += 1 + continue + + has_old_url = any( + isinstance(item, dict) and old_url in item.get("url", "") + for item in ks_list + ) + if not has_old_url: + skipped += 1 + continue + + for item in ks_list: + if isinstance(item, dict) and "url" in item: + item["url"] = item["url"].replace(old_url, new_url) + + new_ks_str = json.dumps(ks_list, ensure_ascii=False) + + with driver.session() as session: + session.run( + "MATCH (n) WHERE id(n) = $node_id SET n.knowledge_source = $ks", + node_id=node_id, + ks=new_ks_str, + ) + + print(f" [OK] 更新节点: {name}") + updated += 1 + + return updated, skipped, errors + + +def main(): + print("==========================================") + print(" kgrag Neo4j URL 批量更新脚本 - 步骤 3") + print(f" 旧 URL 前缀: {OLD_BASE_URL}") + print(f" 新 URL 前缀: {NEW_BASE_URL}") + print(f" Neo4j: {NEO4J_URI}") + print("==========================================") + + driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASSWORD)) + try: + updated, skipped, errors = update_urls(driver, OLD_BASE_URL, NEW_BASE_URL) + finally: + driver.close() + + print("") + print("==========================================") + print(f" 完成!更新: {updated} 跳过: {skipped} 失败: {errors}") + print(" 下一步:执行 bash 04_update_config.sh") + print("==========================================") + + +if __name__ == "__main__": + main() diff --git a/kgrag_migration/04_update_config.sh b/kgrag_migration/04_update_config.sh new file mode 100644 index 0000000..708ef73 --- /dev/null +++ b/kgrag_migration/04_update_config.sh @@ -0,0 +1,56 @@ +#!/bin/bash +# ============================================================================= +# 步骤 4:更新迁移目标机代码中的硬编码 IP/端口 +# 在【迁移目标机】上执行本脚本 +# 配置项请修改 migration_config.sh +# ============================================================================= + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" + +set -e + +echo "==========================================" +echo " kgrag 配置更新脚本 - 步骤 4" +echo " 代码目录: ${DST_CODE_DIR}" +echo " 替换: ${SRC_HOST} → ${DST_HOST}" +echo "==========================================" + +cd "${DST_CODE_DIR}" + +TARGET_FILES=( + "config.py" + "batch_kg_build.py" + "batch_kg_build_timeout.py" + "app.py" +) + +echo "" +echo "开始替换配置..." + +for FILE in "${TARGET_FILES[@]}"; do + if [ ! -f "${FILE}" ]; then + echo " [SKIP] 文件不存在: ${FILE}" + continue + fi + + cp "${FILE}" "${FILE}.bak_migration" + + sed -i "s|${OLD_NEO4J_URI}|${NEO4J_URI}|g" "${FILE}" + sed -i "s|${OLD_BASE_URL}|${NEW_BASE_URL}|g" "${FILE}" + sed -i "s|${OLD_MINERU_URL}|${NEW_MINERU_URL}|g" "${FILE}" + sed -i "s|${OLD_EMBED_URL}|${NEW_EMBED_URL}|g" "${FILE}" + sed -i "s|${OLD_LLM_URL}|${NEW_LLM_URL}|g" "${FILE}" + + echo " [OK] 已更新: ${FILE} (备份:${FILE}.bak_migration)" +done + +echo "" +echo "==========================================" +echo " 配置更新完成!" +echo " 下一步:执行 python 05_verify_migration.py" +echo "==========================================" + +echo "" +echo "以下是各文件中仍包含旧 IP(${SRC_HOST})的位置(供人工核查):" +grep -rn "${SRC_HOST}" "${TARGET_FILES[@]}" 2>/dev/null || echo " (未发现残留旧 IP,配置替换完整)" diff --git a/kgrag_migration/05_run_in_container.sh b/kgrag_migration/05_run_in_container.sh new file mode 100644 index 0000000..05e3178 --- /dev/null +++ b/kgrag_migration/05_run_in_container.sh @@ -0,0 +1,7 @@ +#!/bin/bash +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" +echo "==========================================" +echo " 步骤 5:在 ${KGRAG_CONTAINER} 容器内验证迁移结果" +echo "==========================================" +docker exec ${KGRAG_CONTAINER} python3 ${CONTAINER_APP_DIR}/kgrag_migration/05_verify_migration.py diff --git a/kgrag_migration/05_verify_migration.py b/kgrag_migration/05_verify_migration.py new file mode 100644 index 0000000..f15aa03 --- /dev/null +++ b/kgrag_migration/05_verify_migration.py @@ -0,0 +1,171 @@ +#!/usr/bin/env python3 +""" +步骤 5:验证迁移结果 +在【迁移目标机】上执行本脚本 +配置项请修改 migration_config.py +""" + +import os +import json +import sys + +sys.path.insert(0, os.path.dirname(__file__)) +from migration_config import ( + OLD_IP, DST_CODE_DIR, DST_FILES_DIR, NEW_BASE_URL, + NEO4J_URI, NEO4J_USER, NEO4J_PASSWORD +) + +from neo4j import GraphDatabase + +URL_CHECK_SAMPLE = 5 + +PASS = "\033[92m[PASS]\033[0m" +FAIL = "\033[91m[FAIL]\033[0m" +WARN = "\033[93m[WARN]\033[0m" + + +def check_files(): + print("\n--- 1. 关键文件检查 ---") + checks = [ + (DST_FILES_DIR, "原始文档目录"), + (f"{DST_FILES_DIR}/uploads_v1", "高亮 PDF 目录"), + (f"{DST_CODE_DIR}/kg_output", "抽取结果 JSON 目录"), + (f"{DST_CODE_DIR}/kg_snapshot.json", "全量快照 kg_snapshot.json"), + (f"{DST_CODE_DIR}/entity_registry.json", "实体注册表"), + (f"{DST_CODE_DIR}/app.py", "主程序 app.py"), + (f"{DST_CODE_DIR}/config.py", "配置文件 config.py"), + ] + all_ok = True + for path, desc in checks: + if os.path.exists(path): + if os.path.isdir(path): + count = len(os.listdir(path)) + print(f" {PASS} {desc}: {path} ({count} 个文件)") + else: + size = os.path.getsize(path) / 1024 / 1024 + print(f" {PASS} {desc}: {path} ({size:.1f} MB)") + else: + print(f" {FAIL} 缺失: {desc}: {path}") + all_ok = False + return all_ok + + +def check_neo4j(): + print("\n--- 2. Neo4j 图谱检查 ---") + try: + driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASSWORD)) + with driver.session() as session: + node_count = session.run("MATCH (n) RETURN count(n) AS c").single()["c"] + rel_count = session.run("MATCH ()-[r]->() RETURN count(r) AS c").single()["c"] + ks_count = session.run( + "MATCH (n) WHERE n.knowledge_source IS NOT NULL RETURN count(n) AS c" + ).single()["c"] + driver.close() + print(f" {PASS} Neo4j 连接正常") + print(f" {PASS} 节点数: {node_count} 关系数: {rel_count} 含溯源节点: {ks_count}") + return True, ks_count + except Exception as e: + print(f" {FAIL} Neo4j 连接失败: {e}") + return False, 0 + + +def check_old_ip(neo4j_ok, ks_count): + print(f"\n--- 3. 旧 IP 残留检查({OLD_IP})---") + + config_files = ["config.py", "batch_kg_build.py", "app.py"] + residual_found = False + for fname in config_files: + fpath = os.path.join(DST_CODE_DIR, fname) + if not os.path.exists(fpath): + continue + with open(fpath, "r", encoding="utf-8", errors="ignore") as f: + content = f.read() + lines = [i+1 for i, l in enumerate(content.splitlines()) if OLD_IP in l] + if lines: + print(f" {WARN} {fname} 第 {lines} 行仍含旧 IP") + residual_found = True + + if neo4j_ok and ks_count > 0: + try: + driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASSWORD)) + with driver.session() as session: + result = session.run( + f"MATCH (n) WHERE n.knowledge_source CONTAINS '{OLD_IP}' " + "RETURN count(n) AS c" + ) + old_url_count = result.single()["c"] + driver.close() + if old_url_count > 0: + print(f" {WARN} Neo4j 中仍有 {old_url_count} 个节点含旧 URL,请重新执行步骤 3") + residual_found = True + else: + print(f" {PASS} Neo4j 中无旧 IP 残留") + except Exception as e: + print(f" {WARN} 无法检查 Neo4j 中的旧 URL: {e}") + + if not residual_found: + print(f" {PASS} 配置文件中无旧 IP 残留") + + +def check_urls(ks_count): + print(f"\n--- 4. 溯源 URL 可访问性抽查(抽查 {URL_CHECK_SAMPLE} 个)---") + + if ks_count == 0: + print(f" {WARN} Neo4j 不可用,跳过 URL 检查") + return + + try: + driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASSWORD)) + with driver.session() as session: + result = session.run( + "MATCH (n) WHERE n.knowledge_source IS NOT NULL " + f"RETURN n.名称 AS name, n.knowledge_source AS ks LIMIT {URL_CHECK_SAMPLE}" + ) + records = list(result) + driver.close() + except Exception as e: + print(f" {WARN} 无法读取 Neo4j 节点: {e}") + return + + for record in records: + name = record["name"] + ks_raw = record["ks"] + try: + ks_list = json.loads(ks_raw) if isinstance(ks_raw, str) else ks_raw + url = ks_list[0].get("url", "") if ks_list else "" + if not url: + print(f" {WARN} 节点 {name}: knowledge_source 无 url 字段") + continue + filename = url.split("/upload/")[-1].split("#")[0] + local_path = os.path.join(DST_FILES_DIR, "uploads_v1", filename) + if os.path.exists(local_path): + print(f" {PASS} {name}: 高亮 PDF 存在 → {filename}") + else: + print(f" {FAIL} {name}: 高亮 PDF 缺失 → {local_path}") + except Exception as e: + print(f" {WARN} 节点 {name} 检查失败: {e}") + + +def main(): + print("==========================================") + print(" kgrag 迁移验证脚本 - 步骤 5") + print(f" 代码目录: {DST_CODE_DIR}") + print(f" 文件目录: {DST_FILES_DIR}") + print(f" 新服务地址: {NEW_BASE_URL}") + print("==========================================") + + files_ok = check_files() + neo4j_ok, ks_cnt = check_neo4j() + check_old_ip(neo4j_ok, ks_cnt) + check_urls(ks_cnt) + + print("\n==========================================") + if files_ok and neo4j_ok: + print(" 总体结果:迁移基本完成,请检查上方 WARN/FAIL 项") + else: + print(" 总体结果:存在关键问题,请修复 FAIL 项后重新验证") + print("==========================================") + + +if __name__ == "__main__": + main() diff --git a/kgrag_migration/migration_config.py b/kgrag_migration/migration_config.py new file mode 100644 index 0000000..c8f6a43 --- /dev/null +++ b/kgrag_migration/migration_config.py @@ -0,0 +1,42 @@ +# ============================================================================= +# kgrag 迁移统一配置文件(Python 版) +# 所有 Python 脚本从这里读取配置,只需修改此文件 +# ============================================================================= + +# ─────────────────────────────────────────────── +# 原数据机(源服务器) +# ─────────────────────────────────────────────── +SRC_HOST = "192.168.0.164" +SRC_KGRAG_PORT = 9085 +SRC_NEO4J_PORT = 7687 + +# ─────────────────────────────────────────────── +# 迁移目标机(新服务器) +# ─────────────────────────────────────────────── +DST_HOST = "192.168.1.108" +DST_KGRAG_PORT = 9085 +DST_NEO4J_PORT = 7687 + +# ─────────────────────────────────────────────── +# Neo4j 连接(目标机本地) +# ─────────────────────────────────────────────── +NEO4J_URI = f"bolt://neo4j:{DST_NEO4J_PORT}" +NEO4J_USER = "neo4j" +NEO4J_PASSWORD = "zdht123@" + +# ─────────────────────────────────────────────── +# 目标机部署目录 +# ─────────────────────────────────────────────── +# kgrag 代码目录(容器挂载的宿主机路径,对应容器内 /app) +DST_CODE_DIR = "/app" + +# 文件目录(原始文档+高亮PDF,对应容器内 /app/files 的挂载路径) +# 若与代码目录相同,填 DST_CODE_DIR + "/files" +DST_FILES_DIR = "/app/files" + +# ============================================================================= +# 以下为派生变量,无需修改 +# ============================================================================= +OLD_BASE_URL = f"http://{SRC_HOST}:{SRC_KGRAG_PORT}" +NEW_BASE_URL = f"http://{DST_HOST}:{DST_KGRAG_PORT}" +OLD_IP = SRC_HOST diff --git a/kgrag_migration/migration_config.sh b/kgrag_migration/migration_config.sh new file mode 100644 index 0000000..ce3a78c --- /dev/null +++ b/kgrag_migration/migration_config.sh @@ -0,0 +1,77 @@ +#!/bin/bash +# ============================================================================= +# kgrag 迁移统一配置文件 +# 所有脚本从这里读取配置,只需修改此文件 +# ============================================================================= + +# ─────────────────────────────────────────────── +# 原数据机(源服务器) +# ─────────────────────────────────────────────── +SRC_HOST="192.168.0.164" +SRC_USER="root" +SRC_SSH_PORT=22 +SRC_APP_DIR="/home/workspace/kgrag" + +# 源服务器各服务端口 +SRC_KGRAG_PORT=9085 +SRC_NEO4J_PORT=7687 +SRC_MINERU_PORT=9988 +SRC_EMBED_PORT=9700 +SRC_LLM_PORT=9800 + +# ─────────────────────────────────────────────── +# 迁移目标机(新服务器) +# ─────────────────────────────────────────────── +DST_HOST="192.168.1.108" +KGRAG_CONTAINER="kgrag" +CONTAINER_APP_DIR="/app" + +# kgrag 代码目录(容器挂载的宿主机路径,对应容器内 /app) +# 示例:/home/workspace/kgrag +DST_CODE_DIR="/home/workspace/kgrag" + +# 文件目录(原始文档+高亮PDF,对应容器内 /app/files 的挂载路径) +# 若与代码目录相同(即没有单独挂载 /app/files),填与 DST_CODE_DIR/files 相同 +# 示例:/home/zdht/wx/data/an-webui/uploads +DST_FILES_DIR="/home/workspace/kgrag/files" + +# 目标服务器各服务端口 +DST_KGRAG_PORT=9085 +DST_NEO4J_PORT=7687 +DST_MINERU_PORT=9988 +DST_EMBED_PORT=9700 +DST_LLM_PORT=9800 + +# ─────────────────────────────────────────────── +# Neo4j 连接(目标机) +# ─────────────────────────────────────────────── +NEO4J_URI="bolt://localhost:${DST_NEO4J_PORT}" +NEO4J_USER="neo4j" +NEO4J_PASSWORD="zdht123@" + +# ─────────────────────────────────────────────── +# 按舰迁移配置 +# 留空则全量迁移,多个用空格分隔 +# 已知舰船号:101 122 163 +# ─────────────────────────────────────────────── +TARGET_SHIPS="163" # 01_copy_files_by_ship.sh 使用(拉哪些舰的文件) +IMPORT_SHIP="163舰" # 02_load_neo4j_by_ship.sh 使用(导入哪艘舰的快照) + +# ─────────────────────────────────────────────── +# rsync 额外选项(如限速:--bwlimit=50000) +# ─────────────────────────────────────────────── +RSYNC_EXTRA="" + +# ============================================================================= +# 以下为派生变量,无需修改 +# ============================================================================= +SRC_SERVER="${SRC_USER}@${SRC_HOST}" +OLD_BASE_URL="http://${SRC_HOST}:${SRC_KGRAG_PORT}" +NEW_BASE_URL="http://${DST_HOST}:${DST_KGRAG_PORT}" +OLD_NEO4J_URI="bolt://${SRC_HOST}:${SRC_NEO4J_PORT}" +OLD_MINERU_URL="http://${SRC_HOST}:${SRC_MINERU_PORT}" +OLD_EMBED_URL="http://${SRC_HOST}:${SRC_EMBED_PORT}" +OLD_LLM_URL="http://${SRC_HOST}:${SRC_LLM_PORT}" +NEW_MINERU_URL="http://${DST_HOST}:${DST_MINERU_PORT}" +NEW_EMBED_URL="http://${DST_HOST}:${DST_EMBED_PORT}" +NEW_LLM_URL="http://${DST_HOST}:${DST_LLM_PORT}" diff --git a/kgrag_migration/migration_guide.md b/kgrag_migration/migration_guide.md new file mode 100644 index 0000000..1c8f483 --- /dev/null +++ b/kgrag_migration/migration_guide.md @@ -0,0 +1,123 @@ +# kgrag 迁移指南 + +## 概述 + +本目录包含将 kgrag 图谱系统从旧服务器完整迁移到新服务器的脚本。 +迁移采用**方案A**:迁移高亮PDF文件 + 批量更新 Neo4j 中的溯源 URL。 + +## 迁移前准备 + +在执行任何脚本前,先修改各脚本顶部的变量配置区。 + +### 需要确认的信息 + +| 信息 | 说明 | 示例 | +|------|------|------| +| 旧服务器 SSH 地址 | 用于 rsync 拉取文件 | `root@192.168.0.46` | +| 旧服务器 APP 目录 | kgrag 部署根目录 | `/app` | +| 新服务器 APP 目录 | 目标部署根目录 | `/app` | +| 旧服务 BASE URL | 写入 Neo4j 的 URL 前缀 | `http://192.168.0.46:59085` | +| 新服务 BASE URL | 迁移后对外服务的 URL 前缀 | `http://192.168.1.100:59085` | +| 旧 Neo4j 连接地址 | 用于导出快照(可选) | `bolt://192.168.0.46:57687` | +| 新 Neo4j 连接地址 | 用于导入和更新 URL | `bolt://localhost:7687` | + +--- + +## 执行步骤 + +### 步骤 1:迁移文件 + +在**新服务器**上执行: + +```bash +bash 01_copy_files.sh +``` + +该脚本通过 rsync 从旧服务器拉取: +- `/app/files/`(原始文档) +- `/app/files/uploads_v1/`(高亮注释 PDF,溯源链接的实际目标) +- `/app/kg_output/`(实体关系抽取 JSON) +- `kg_snapshot.json`(全量快照,含 Embedding) +- 所有代码文件 + +### 步骤 2:重建 Neo4j 图谱 + +在**新服务器**上执行: + +```bash +bash 02_load_neo4j.sh +``` + +该脚本调用 `batch_kg_build.py --phase load_snapshot` 将 `kg_snapshot.json` 导入新 Neo4j。 + +> 注意:此方式不保留节点的 `*_timeline` 历史字段。 +> 如需完整历史,改用 `neo4j-admin database dump/load` 做数据库级备份(需停服)。 + +### 步骤 3:批量更新溯源 URL + +在**新服务器**上执行: + +```bash +python 03_update_neo4j_urls.py +``` + +该脚本将 Neo4j 中所有节点 `knowledge_source` 字段里的旧服务器地址替换为新地址。 + +### 步骤 4:更新配置文件 + +在**新服务器**上执行: + +```bash +bash 04_update_config.sh +``` + +该脚本更新 `config.py`、`batch_kg_build.py`、`app.py` 中的硬编码 IP 地址。 + +### 步骤 5:验证迁移结果 + +在**新服务器**上执行: + +```bash +python 05_verify_migration.py +``` + +该脚本检查文件完整性、Neo4j 节点数量、溯源 URL 可访问性。 + +--- + +## 目录结构说明 + +迁移完成后,新服务器上的文件布局应与旧服务器一致: + +``` +/app/ +├── files/ # 原始文档(PDF/DOCX/XLSX等) +│ └── uploads_v1/ # 高亮注释 PDF(溯源跳转目标) +├── kg_output/ # 每个文档的实体关系 JSON(断点续跑用) +├── kg_snapshot.json # 全量图谱快照(重建 Neo4j 的输入) +├── fault_wenjian/ # 超时/失败文件记录 +├── entity_registry.json # 动态实体类型注册表 +├── tree_data.json # 树状结构数据 +├── config.py # 模型/服务地址配置(迁移后需修改) +├── app.py # FastAPI 主程序 +├── batch_kg_build.py # 批量图谱构建脚本 +├── graph_search/ # 图检索模块 +├── kg_build/ # 图谱构建模块 +└── ... # 其他代码模块 +``` + +--- + +## 常见问题 + +**Q:迁移后溯源点击没有跳转到正确页面?** +A:检查步骤3是否执行成功,确认新服务的 `PREFIX_URL` 与 `NEW_BASE_URL` 一致。 + +**Q:`01_copy_files.sh` 报 Permission denied?** +A:确保新服务器已添加旧服务器的 SSH 公钥,或改用密码认证(rsync 会提示输入)。 + +**Q:`02_load_neo4j.sh` 报模块找不到?** +A:先在新服务器上安装依赖:`pip install -r requirements.txt`。 + +**Q:高亮 PDF 文件很多,rsync 很慢?** +A:可加 `--bwlimit=50000`(限速 50MB/s)避免占满带宽,或分批执行。 diff --git a/kgrag_migration/split_by_ship.py b/kgrag_migration/split_by_ship.py new file mode 100644 index 0000000..069e938 --- /dev/null +++ b/kgrag_migration/split_by_ship.py @@ -0,0 +1,331 @@ +#!/usr/bin/env python3 +""" +按舰船号拆分 kg_snapshot.json、kg_output/、files/ 等目录 +输出结果放在 OUTPUT_BASE_DIR 下,每艘舰一个子目录 + +文件名规则与舰船的对应关系只需修改下方「变量配置区」,逻辑不用动。 +""" + +import json +import os +import re +import shutil +import sys +from collections import defaultdict +from typing import Dict, List, Optional, Set + +# 从统一配置文件读取路径 +sys.path.insert(0, os.path.dirname(__file__)) +from migration_config import DST_CODE_DIR, DST_FILES_DIR + +# ===================== 变量配置区(路径已从 migration_config.py 读取) ======================== + +# 输入路径 +SNAPSHOT_PATH = os.path.join(DST_CODE_DIR, "kg_snapshot.json") # 全量快照 +KG_OUTPUT_DIR = os.path.join(DST_CODE_DIR, "kg_output") # 抽取结果 JSON 目录 +FILES_DIR = DST_FILES_DIR # 原始文档目录 +UPLOADS_V1_DIR = os.path.join(DST_FILES_DIR, "uploads_v1") # 高亮 PDF 目录 + +# 输出根目录(每艘舰一个子目录) +OUTPUT_BASE_DIR = os.path.join(DST_CODE_DIR, "migration_split") + +# -------------------------------------------------------------------------- +# 舰船规则表:定义「哪些文件名属于哪艘舰」 +# +# 每条规则是一个 dict,支持以下匹配方式(可以组合,任意一条命中即匹配): +# prefix : 文件名以此开头(不含路径) +# suffix : 文件名以此结尾(含扩展名) +# contains : 文件名包含此字符串 +# regex : 正则表达式,匹配整个文件名(不含路径) +# +# 示例: +# {"prefix": "122-"} → 以 "122-" 开头 +# {"prefix": "163-"} → 以 "163-" 开头 +# {"contains": "发动机"} → 包含"发动机" +# {"regex": r"^JZ\d+_.+"} → 正则匹配 +# -------------------------------------------------------------------------- +SHIP_RULES: Dict[str, List[Dict]] = { + "101舰": [ + {"prefix": "101-"}, + ], + "122舰": [ + {"prefix": "122-"}, + ], + "163舰": [ + {"prefix": "163-"}, + ], + # 新增舰船示例(取消注释并修改): + # "200舰": [ + # {"prefix": "200-"}, + # {"contains": "某特殊前缀"}, + # ], +} + +# 共享节点(同时属于多艘舰)的处理策略: +# "all" : 每艘涉及的舰都保留这个节点(knowledge_source 保持完整) +# "majority" : 归属来源文件更多的那艘舰,其他舰不保留 +SHARED_NODE_POLICY = "all" + +# ========================================================================== + + +def match_ship(filename: str) -> Optional[str]: + """ + 根据 SHIP_RULES 判断文件名属于哪艘舰。 + 返回舰船名,或 None(没有匹配)。 + 第一条命中的规则生效(规则之间互斥时注意顺序)。 + """ + bare = os.path.basename(filename) + for ship, rules in SHIP_RULES.items(): + for rule in rules: + if "prefix" in rule and bare.startswith(rule["prefix"]): + return ship + if "suffix" in rule and bare.endswith(rule["suffix"]): + return ship + if "contains" in rule and rule["contains"] in bare: + return ship + if "regex" in rule and re.match(rule["regex"], bare): + return ship + return None + + +# -------------------------------------------------------------------------- +# 快照拆分 +# -------------------------------------------------------------------------- + +def _get_node_ships(entities: List[Dict]) -> Dict[str, Set[str]]: + """返回 {节点名: {归属舰集合}}""" + node_ships: Dict[str, Set[str]] = defaultdict(set) + for e in entities: + name = e.get("properties", {}).get("名称", "") + if not name: + continue + ks_raw = e.get("properties", {}).get("knowledge_source", "") + try: + ks_list = json.loads(ks_raw) if isinstance(ks_raw, str) else (ks_raw or []) + except Exception: + ks_list = [] + for ks in ks_list: + ship = match_ship(ks.get("filename", "")) + if ship: + node_ships[name].add(ship) + return node_ships + + +def split_snapshot(snapshot_path: str, output_base: str): + print(f"\n[快照拆分] 读取 {snapshot_path} ...") + with open(snapshot_path, "r", encoding="utf-8") as f: + data = json.load(f) + + entities = data.get("entities", []) + relationships = data.get("relationships", []) + print(f" 总节点: {len(entities)} 总关系: {len(relationships)}") + + node_ships = _get_node_ships(entities) + + # 统计共享情况 + all_ships = set(SHIP_RULES.keys()) + stats = defaultdict(int) + for name, ships in node_ships.items(): + if len(ships) == 0: + stats["无来源"] += 1 + elif len(ships) == 1: + stats[next(iter(ships))] += 1 + else: + stats["共享"] += 1 + print(f" 节点归属统计: { dict(stats) }") + + # 为每艘舰生成节点/关系子集 + for ship in SHIP_RULES: + ship_entities = [] + for e in entities: + name = e.get("properties", {}).get("名称", "") + ships = node_ships.get(name, set()) + + if ship in ships: + ship_entities.append(e) + elif not ships and SHARED_NODE_POLICY == "all": + # 无来源文件的节点(如顶层舰艇/系统节点)每艘舰都保留 + ship_entities.append(e) + + # 只保留两端节点都在本舰集合里的关系 + ship_node_names = {e.get("properties", {}).get("名称", "") for e in ship_entities} + ship_rels = [ + r for r in relationships + if r.get("from_entity") in ship_node_names + and r.get("to_entity") in ship_node_names + ] + + out_dir = os.path.join(output_base, ship) + os.makedirs(out_dir, exist_ok=True) + out_path = os.path.join(out_dir, "kg_snapshot.json") + with open(out_path, "w", encoding="utf-8") as f: + json.dump({"entities": ship_entities, "relationships": ship_rels}, + f, ensure_ascii=False, indent=2) + print(f" [{ship}] 节点:{len(ship_entities)} 关系:{len(ship_rels)} → {out_path}") + + +# -------------------------------------------------------------------------- +# kg_output 拆分(每个 .json 文件对应一个原始文档) +# -------------------------------------------------------------------------- + +def split_kg_output(kg_output_dir: str, output_base: str): + if not os.path.isdir(kg_output_dir): + print(f"\n[kg_output 拆分] 目录不存在,跳过: {kg_output_dir}") + return + + print(f"\n[kg_output 拆分] 扫描 {kg_output_dir} ...") + files = [f for f in os.listdir(kg_output_dir) if f.endswith(".json")] + print(f" 共 {len(files)} 个文件") + + counts = defaultdict(int) + unmatched = [] + + for fname in files: + # kg_output 文件名格式:原始文件名.json(含扩展名,如 122-xxx.pdf.json) + # 去掉最后的 .json 拿到原始文件名 + original = fname[:-5] if fname.endswith(".json") else fname + ship = match_ship(original) + + if ship: + dst_dir = os.path.join(output_base, ship, "kg_output") + os.makedirs(dst_dir, exist_ok=True) + shutil.copy2(os.path.join(kg_output_dir, fname), + os.path.join(dst_dir, fname)) + counts[ship] += 1 + else: + unmatched.append(fname) + + for ship, cnt in counts.items(): + print(f" [{ship}] {cnt} 个 JSON") + if unmatched: + print(f" [未匹配] {len(unmatched)} 个文件: {unmatched[:5]}") + + +# -------------------------------------------------------------------------- +# files/ 原始文档拆分 +# -------------------------------------------------------------------------- + +def split_files(files_dir: str, output_base: str): + if not os.path.isdir(files_dir): + print(f"\n[files 拆分] 目录不存在,跳过: {files_dir}") + return + + print(f"\n[files 拆分] 扫描 {files_dir} ...") + all_files = [f for f in os.listdir(files_dir) if os.path.isfile(os.path.join(files_dir, f))] + print(f" 共 {len(all_files)} 个文件") + + counts = defaultdict(int) + unmatched = [] + + for fname in all_files: + # files/ 里有两种格式: + # UUID_原文件名.pdf → 去掉 UUID 前缀再匹配 + # 原文件名.pdf → 直接匹配 + bare = fname + # 尝试去掉 UUID 前缀(格式:8-4-4-4-12 字符的十六进制) + uuid_pattern = r'^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}_(.+)$' + m = re.match(uuid_pattern, fname, re.IGNORECASE) + if m: + bare = m.group(1) + + ship = match_ship(bare) + if ship: + dst_dir = os.path.join(output_base, ship, "files") + os.makedirs(dst_dir, exist_ok=True) + shutil.copy2(os.path.join(files_dir, fname), + os.path.join(dst_dir, fname)) + counts[ship] += 1 + else: + unmatched.append(fname) + + for ship, cnt in counts.items(): + print(f" [{ship}] {cnt} 个文件") + if unmatched: + print(f" [未匹配] {len(unmatched)} 个: {unmatched[:5]}") + + +# -------------------------------------------------------------------------- +# uploads_v1/ 高亮 PDF 拆分(通过快照里的 knowledge_source 反查归属) +# -------------------------------------------------------------------------- + +def split_uploads(snapshot_path: str, uploads_dir: str, output_base: str): + if not os.path.isdir(uploads_dir): + print(f"\n[uploads 拆分] 目录不存在,跳过: {uploads_dir}") + return + + print(f"\n[uploads 拆分] 通过快照反查高亮 PDF 归属 ...") + + with open(snapshot_path, "r", encoding="utf-8") as f: + data = json.load(f) + + # 从快照里收集:高亮PDF文件名 → 归属舰船 + highlight_ship: Dict[str, str] = {} + for e in data.get("entities", []): + ks_raw = e.get("properties", {}).get("knowledge_source", "") + try: + ks_list = json.loads(ks_raw) if isinstance(ks_raw, str) else (ks_raw or []) + except Exception: + continue + for ks in ks_list: + url = ks.get("url", "") + src_file = ks.get("filename", "") + ship = match_ship(src_file) + if not ship or not url: + continue + # URL 格式:http://host/upload/#page=N + if "/upload/" in url: + highlight_fname = url.split("/upload/")[-1].split("#")[0] + # 共享节点下同一个高亮文件只记录第一个匹配舰船 + if highlight_fname not in highlight_ship: + highlight_ship[highlight_fname] = ship + + counts = defaultdict(int) + missing = [] + + for fname, ship in highlight_ship.items(): + src = os.path.join(uploads_dir, fname) + if os.path.exists(src): + dst_dir = os.path.join(output_base, ship, "files", "uploads_v1") + os.makedirs(dst_dir, exist_ok=True) + shutil.copy2(src, os.path.join(dst_dir, fname)) + counts[ship] += 1 + else: + missing.append(fname) + + for ship, cnt in counts.items(): + print(f" [{ship}] {cnt} 个高亮 PDF") + if missing: + print(f" [本地缺失] {len(missing)} 个(需从服务器 uploads_v1 补全): {missing[:3]}") + + +# -------------------------------------------------------------------------- +# 入口 +# -------------------------------------------------------------------------- + +def main(): + print("=" * 50) + print(" kgrag 按舰船号拆分工具") + print(f" 舰船规则: { {k: v for k, v in SHIP_RULES.items()} }") + print(f" 共享节点策略: {SHARED_NODE_POLICY}") + print("=" * 50) + + os.makedirs(OUTPUT_BASE_DIR, exist_ok=True) + + split_snapshot(SNAPSHOT_PATH, OUTPUT_BASE_DIR) + split_kg_output(KG_OUTPUT_DIR, OUTPUT_BASE_DIR) + split_files(FILES_DIR, OUTPUT_BASE_DIR) + split_uploads(SNAPSHOT_PATH, UPLOADS_V1_DIR, OUTPUT_BASE_DIR) + + print("\n" + "=" * 50) + print(f" 完成!输出目录: {OUTPUT_BASE_DIR}") + print(" 每艘舰的子目录结构:") + print(" <舰名>/kg_snapshot.json ← 导入新 Neo4j 用") + print(" <舰名>/kg_output/ ← 抽取结果 JSON") + print(" <舰名>/files/ ← 原始文档") + print(" <舰名>/files/uploads_v1/ ← 高亮 PDF") + print("=" * 50) + + +if __name__ == "__main__": + main() diff --git a/log_config.json b/log_config.json new file mode 100644 index 0000000..91f1597 --- /dev/null +++ b/log_config.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "disable_existing_loggers": false, + "formatters": { + "default": { + "format": "%(asctime)s - %(levelname)s - %(name)s - %(message)s" + } + }, + "handlers": { + "console": { + "class": "logging.StreamHandler", + "formatter": "default", + "stream": "ext://sys.stdout" + }, + "file": { + "class": "logging.FileHandler", + "formatter": "default", + "filename": "app.log", + "encoding": "utf-8" + } + }, + "root": { + "level": "INFO", + "handlers": ["console", "file"] + }, + "loggers": { + "uvicorn": { "handlers": ["console", "file"], "level": "INFO", "propagate": false }, + "uvicorn.error": { "handlers": ["console", "file"], "level": "INFO", "propagate": false }, + "uvicorn.access": { "handlers": ["console", "file"], "level": "INFO", "propagate": false } + } +} + diff --git a/modelsAPI/__init__.py b/modelsAPI/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/modelsAPI/model_api.py b/modelsAPI/model_api.py new file mode 100644 index 0000000..10bd67e --- /dev/null +++ b/modelsAPI/model_api.py @@ -0,0 +1,599 @@ +import httpx +from openai import OpenAI +import os +import requests +import json +import asyncio +import aiohttp +from typing import List, Dict, Any,Optional +from tqdm import tqdm # 进度条支持(可选) +from openai import AsyncOpenAI +from neo4j_graphrag.embeddings.base import Embedder + +#now_model = "Qwen3.5-35B-A3B" +#now_model = "Qwen3-32B" + +from config import LLM_CONFIG, EMBEDDING_CONFIG + +# 模块级单例客户端,避免每次调用都创建新连接 +_async_client: AsyncOpenAI = None + + +def _get_async_client() -> AsyncOpenAI: + """获取或创建 AsyncOpenAI 单例客户端""" + global _async_client + if _async_client is None: + _async_client = AsyncOpenAI( + api_key=LLM_CONFIG["api_key"], + base_url=LLM_CONFIG["base_url"], + ) + return _async_client +class OpenaiAPI: + + @staticmethod + def get_embeddings(embedding_texts: List[str]): + # ✅ 2. 使用 EMBEDDING_CONFIG + base_url = EMBEDDING_CONFIG.get("base_url_v2", EMBEDDING_CONFIG["base_url"].replace("/embeddings", "")) + embedding_base_url = os.path.join(base_url, "embeddings") + + with httpx.Client(timeout=60) as client: + response = client.post( + embedding_base_url, + json={"model": EMBEDDING_CONFIG["model"], "input": embedding_texts}, + headers={"Authorization": f"Bearer {EMBEDDING_CONFIG['api_key']}"}, + ) + # 注意:batch_embeddings 返回的是列表,get_embeddings 原代码只取了第一个元素的 embedding + # 这里保持原逻辑,如果输入是列表,通常期望返回所有 embedding,原代码可能有误,此处仅替换配置源 + data = response.json()["data"] + if isinstance(data, list) and len(data) > 0: + return data[0]["embedding"] + return [] + + @staticmethod + def batch_embeddings(embedding_texts: List[str]): + # ✅ 3. 使用 EMBEDDING_CONFIG + base_url = EMBEDDING_CONFIG.get("base_url_v2", EMBEDDING_CONFIG["base_url"].replace("/embeddings", "")) + embedding_base_url = os.path.join(base_url, "embeddings") + + with httpx.Client(timeout=60) as client: + response = client.post( + embedding_base_url, + json={"model": EMBEDDING_CONFIG["model"], "input": embedding_texts}, + headers={"Authorization": f"Bearer {EMBEDDING_CONFIG['api_key']}"}, + ) + embedding_list = response.json()["data"] + return embedding_list + + @staticmethod + def rerank_query(query: str, documents: List[str], top_n: str = 3): + headers = { + 'Content-Type': 'application/json', + 'Authorization': f'Bearer {EMBEDDING_CONFIG["api_key"]}' # 假设 Rerank 也使用相同的 Key 或在此处扩展配置 + } + + data = { + "model": os.getenv("OPENAI_RERANKER_MODEL", "bge-reranker-v2-m3"), # Rerank 模型未在 config.py 定义,暂保留环境变量或可添加到 config + "query": query, + "top_n": top_n, + "documents": documents + } + + # 假设 Rerank 地址与 Embedding 地址相近,或者需要单独配置。此处暂用环境变量或默认逻辑 + rerank_base = os.getenv("OPENAI_API_RERANKER_BASE", EMBEDDING_CONFIG["base_url_v2"]) + response = requests.post(f"{rerank_base}/rerank", headers=headers, data=json.dumps(data)) + + results_list = [] + if response.status_code == 200: + result_json = response.json() + for result in result_json["results"]: + results_list.append({ + "index": result["index"], + "text": result["document"]["text"], + "scores": result["relevance_score"] + }) + return results_list + else: + raise Exception(f"Error: {response.status_code}\n{response.text}") + + @staticmethod + def embedding_cosine_similarity(text_1, text_2): + headers = { + 'Content-Type': 'application/json', + 'Authorization': f'Bearer {EMBEDDING_CONFIG["api_key"]}' + } + data = { + "text_1": text_1, + "text_2": text_2, + "model": "bge-rerank" + } + rerank_base = os.getenv("OPENAI_API_RERANKER_BASE", EMBEDDING_CONFIG["base_url_v2"]) + response = requests.post(f"{rerank_base}/score", headers=headers, data=json.dumps(data)) + + if response.status_code == 200: + result_json = response.json() + score = result_json["data"][0]["score"] + return score + else: + raise Exception(f"Error: {response.status_code}\n{response.text}") + + @staticmethod + def open_api_chat(query: str, model: str = None): + # ✅ 4. 使用 LLM_CONFIG + if model is None: + model = LLM_CONFIG["model"] + + response = OpenAI( + api_key=LLM_CONFIG["api_key"], + base_url=LLM_CONFIG["base_url"], + ).chat.completions.create( + model=model, + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": query}, + ], + temperature=LLM_CONFIG["temperature"], + stream=False + ) + return response.choices[0].message.content + + @staticmethod + async def open_api_chat_async(query: str, model: str = None, temperature: float = None) -> str: + if model is None: + model = LLM_CONFIG["model"] + if temperature is None: + temperature = LLM_CONFIG["temperature"] + + client = AsyncOpenAI( + api_key=LLM_CONFIG["api_key"], + base_url=LLM_CONFIG["base_url"] + ) + + response = await client.chat.completions.create( + model=model, + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": query} + ], + max_tokens=LLM_CONFIG["max_tokens"], + temperature=temperature, + stream=False, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + @staticmethod + async def open_api_vl_without_thinking( + image_url: str + ) -> str: + """ + 专门用于从图片中提取【设备名称】和【故障现象】。 + 自动过滤思考过程,仅返回核心结果。 + + 参数: + image_url: Base64 格式的图片数据 (data:image/...;base64,...) + model: 模型名称,默认为配置中的模型 + custom_instruction: 额外的特定指令 (可选) + """ + + # 1. 确定模型名称 + model = LLM_CONFIG.get("model") + + # 2. 构建强约束的 System Prompt + # 核心目标:禁止思考标签,禁止废话,只给结果 + system_prompt = ( + "你是一个视觉分析专家。你的任务是从图片中识别内容并进行描述。\n" + "【严格约束】\n" + "1. 绝对禁止输出 , , 等任何思考过程标签。\n" + "2. 绝对禁止输出'好的'、'根据图片'、'分析如下'等开场白或结束语。\n" + "3. 直接输出最终结论,格式必须严格遵守下面的模板。" + ) + + # 3. 构建针对性的 User Prompt + default_task = ( + "请分析这张图片,描述图片内容,重点关注以下信息\n" + "1. 图片整体阐述了什么主题,描述了哪些内容\n" + "请用专业、客观、简短的语言描述。" + ) + + final_user_prompt = default_task + + # 4. 初始化客户端 + client = _get_async_client() + + # 5. 构建请求参数 + kwargs = { + "model": model, + "messages": [ + {"role": "system", "content": system_prompt}, + { + "role": "user", + "content": [ + {"type": "text", "text": final_user_prompt}, + {"type": "image_url", "image_url": {"url": image_url}} + ] + } + ], + "temperature": 0.1, # 低温度以保证事实准确性 + "stream": False, + "max_tokens": LLM_CONFIG.get("max_tokens"), + } + + # 尝试通过参数关闭思考 (取决于后端支持情况) + kwargs["extra_body"] = {"chat_template_kwargs": {"enable_thinking": False}} + + try: + print(f"🚀 正在调用 {model} 进行图片内容分析...") + response = await client.chat.completions.create(**kwargs) + raw_content = response.choices[0].message.content or "" + + print(f"✅ 分析完成:\n{raw_content}") + return raw_content + + except Exception as e: + import traceback + error_msg = f"❌ 图片内容分析失败:{str(e)}\n{traceback.format_exc()}" + print(error_msg) + return f"Error: {str(e)}" + @staticmethod + async def open_api_chat_async_json(query: str, model: str = None, temperature: float = None) -> str: + if model is None: + model = LLM_CONFIG["model"] + if temperature is None: + temperature = LLM_CONFIG["temperature"] + + client = AsyncOpenAI( + api_key=LLM_CONFIG["api_key"], + base_url=LLM_CONFIG["base_url"] + ) + + response = await client.chat.completions.create( + model=model, + messages=[ + {"role": "system", "content": "You are a helpful assistant that outputs only valid JSON."}, + {"role": "user", "content": query} + ], + temperature=temperature, + stream=False, + max_tokens=LLM_CONFIG["max_tokens"], + response_format={"type": "json_object"}, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + + @staticmethod + def open_api_caht_without_thinking(query: str, model: str = None): + if model is None: + model = LLM_CONFIG["model"] + + response = OpenAI( + api_key=LLM_CONFIG["api_key"], + base_url=LLM_CONFIG["base_url"], + ).chat.completions.create( + model=model, + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": query}, + ], + temperature=LLM_CONFIG["temperature"], + stream=False, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + + @staticmethod + def open_api_chat_stream(query: str, model: str = None): + if model is None: + model = LLM_CONFIG["model"] + + response = OpenAI( + api_key=LLM_CONFIG["api_key"], + base_url=LLM_CONFIG["base_url"], + ).chat.completions.create( + model=model, + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": query}, + ], + temperature=LLM_CONFIG["temperature"], + stream=True + ) + for chunk in response: + content = chunk.choices[0].delta.content + if content: + yield content.encode('utf-8') + + @staticmethod + def openai_chat(query: str, timeout: int = None): + if timeout is None: + timeout = LLM_CONFIG["timeout"] + + try: + client = OpenAI( + api_key=LLM_CONFIG["api_key"], + base_url=LLM_CONFIG["base_url"], + timeout=timeout + ) + + response = client.chat.completions.create( + model=LLM_CONFIG["model"], + messages=[ + {"role": "user", "content": query}, + ], + temperature=LLM_CONFIG["temperature"], + stream=False, + response_format={"type": "json_object"}, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + except Exception as e: + print(f"调用OpenAI API时出错: {e}") + return None + + @staticmethod + async def openai_chat_aysnc(query: str, timeout: int = None) -> str | None: + if timeout is None: + timeout = LLM_CONFIG["timeout"] + + try: + client = AsyncOpenAI( + api_key=LLM_CONFIG["api_key"], + base_url=LLM_CONFIG["base_url"], + timeout=timeout + ) + + response = await client.chat.completions.create( + model=LLM_CONFIG["model"], + messages=[ + {"role": "user", "content": query}, + ], + temperature=LLM_CONFIG["temperature"], + stream=False, + response_format={"type": "json_object"}, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + except Exception as e: + print(f"调用 OpenAI API 时出错: {e}") + return None + finally: + await client.close() + + @staticmethod + async def openai_chat_aysnc_nothink(query: str, timeout: int = None) -> str | None: + if timeout is None: + timeout = LLM_CONFIG["timeout"] + + try: + client = AsyncOpenAI( + api_key=LLM_CONFIG["api_key"], + base_url=LLM_CONFIG["base_url"], + timeout=timeout + ) + + # 注意:原代码中此方法使用了不同的模型 "46-qwen3.6-35B" + # 如果需要统一,请使用 LLM_CONFIG["model"],否则需单独配置 + model_to_use = LLM_CONFIG["model"] + + response = await client.chat.completions.create( + model=model_to_use, + messages=[ + {"role": "user", "content": query}, + ], + temperature=LLM_CONFIG["temperature"], + stream=False, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} + ) + return response.choices[0].message.content + except Exception as e: + print(f"调用 OpenAI API 时出错: {e}") + return None + finally: + await client.close() + + @staticmethod + def generate_embedding(text: str) -> Optional[List[float]]: + try: + client = OpenAI( + api_key=EMBEDDING_CONFIG["api_key"], + base_url=EMBEDDING_CONFIG.get("base_url_v2", EMBEDDING_CONFIG["base_url"].replace("/embeddings", "")), + ) + response = client.embeddings.create( + model=EMBEDDING_CONFIG["model"], + input=text + ) + return response.data[0].embedding + except Exception as e: + print(f"生成embedding失败: {e}") + return None + +async def batch_chunk_process( + markdown_context: str, + chunks: List[Dict[str, Any]], + batch_size: int = 5, + timeout: int = 30 + ) -> List[Dict[str, Any]]: + """ + 批量处理文档块(异步并发) + + Args: + markdown_context: 完整文档内容 + chunks: 文档块列表,每个块需包含"text"键 + batch_size: 并发请求数 (默认5) + timeout: 单个请求超时时间(秒) + + Returns: + 处理后的文档块列表 + """ + # 初始化参数 + api_key = os.getenv("OPENAI_API_KEY") + base_url = os.getenv("OPENAI_API_BASE") + model = os.getenv("OPENAI_MODEL", "qwen3.5-35b") + + if not api_key or not base_url: + raise ValueError("Missing OpenAI API configuration") + + async def process_single_chunk( + session: aiohttp.ClientSession, + chunk: Dict[str, Any], + semaphore: asyncio.Semaphore + ) -> Dict[str, Any]: + """处理单个chunk的异步函数""" + async with semaphore: + text = chunk.get("text", "").strip() + if not text: + return chunk + + prompt = f""" + {markdown_context} + {text} + Please provide a succinct context for this chunk within the document. + Respond ONLY with the context text, no additional commentary. + """ + chinese_prompt = f""" + <文档> + {markdown_context} + + 以下是需要定位到整体文档中的片段 + <片段> + {text} + + 请简要说明该片段在整体文档中的上下文关系,以提升片段搜索效果。只需给出简洁的上下文说明,无需其他内容。 + """ + + try: + async with session.post( + f"{base_url}/chat/completions", + headers={"Authorization": f"Bearer {api_key}"}, + json={ + "model": model, + "messages": [ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": chinese_prompt} + ], + "temperature": 0.1, + "extra_body": {"chat_template_kwargs": {"enable_thinking": False}} + }, + timeout=timeout + ) as response: + if response.status == 200: + data = await response.json() + if data.get("choices"): + chunk["text"] = data["choices"][0]["message"]["content"].strip() + else: + print(f"API error for chunk: {await response.text()}") + except Exception as e: + print(f"Error processing chunk: {e}") + + return chunk + + # 创建信号量控制并发数 + semaphore = asyncio.Semaphore(batch_size) + + # 异步处理所有chunks + async with aiohttp.ClientSession() as session: + tasks = [ + process_single_chunk(session, chunk, semaphore) + for chunk in chunks + ] + + # 使用tqdm显示进度(可选) + processed_chunks = [] + for future in tqdm(asyncio.as_completed(tasks), total=len(tasks)): + processed_chunks.append(await future) + + return processed_chunks + +def prepare_rag_prompt(query, documents): + docs = "" + for i, doc in enumerate(documents): + docs += f"文本信息{i+1}:{doc}\n" + return f"""你作为一个文档检索问答专家,请你从以下文本信息中选取有用的内容作为参考,仔细思考后用中文回答用户的问题,如果文本中没有关于问题的答案,则回答不知道: + ----- + {docs} + ----- + 用户提问:{query} + 你的回答:""" + +def query_rewrite(query): + prompt = f""" + 你是一个专业的搜索查询优化助手。你的任务是根据用户输入的原始查询,生成更清晰、更易被搜索引擎理解的改写版本。请遵循以下规则: + + 1. **保持原意**:改写后的查询必须与用户意图一致,不能曲解原意。 + 2. **简洁清晰**:去掉冗余词,优化表达,但不要过度缩写。 + 3. **结构化**:如果查询适合拆解,可以适当结构化(如添加隐含的限定条件)。 + 4. **自然语言**:确保改写后的查询仍然符合自然语言习惯。 + 5. **多语言支持**:如果查询是中文,优先用中文改写;如果是英文,用英文优化。 + + 请改写以下查询,直接返回优化后的内容,不要额外解释: + 【用户查询开始】 + {query} + 【用户查询结束】 + """ + return OpenaiAPI.open_api_chat(prompt) + + +def RAG_PROMPT(QUERY,CONTEXT): + PROMPT = f""" +### Task: +Respond to the user query using the provided context, incorporating inline citations in the format [source_id] **only when the tag is explicitly provided** in the context. + +### Guidelines: +- If you don't know the answer, clearly state that. +- If uncertain, ask the user for clarification. +- Respond in the same language as the user's query. +- If the context is unreadable or of poor quality, inform the user and provide the best possible answer. +- If the answer isn't present in the context but you possess the knowledge, explain this to the user and provide the answer using your own understanding. +- When you find corresponding content in the provided sources, try to quote it verbatim as much as possible. +- When quoting from sources, reproduce the original text verbatim—do not omit, paraphrase, or add content. +- **Only include inline citations using [source_id] (e.g., [1], [2]) when a `` tag is explicitly provided in the context.** +- If the source file has a .glb extension, directly mark the corresponding content with the source_id in the relevant position. +- Do not cite if the or tag is not provided in the context. +- Do not use XML tags in your response. +- **If none of the provided sources contain relevant information to answer the question, respond only with: "没有找到相关来源" (No relevant sources found). Do not add any other content. +- Ensure citations are concise and directly related to the information provided. + +### Example of Citation: +If the user asks about a specific topic and the information is found in "whitepaper.pdf" with a provided , the response should include the citation like so: +* "According to the study, the proposed method increases efficiency by 20% [whitepaper.pdf]." +If no is present, the response should omit the citation. + +### Output: +Provide a clear and direct response to the user's query, including inline citations in the format [source_id] only when the tag is present in the context. + + +{CONTEXT} + + + +{QUERY} + +""" + return PROMPT + +# for chunk in response: +# content = chunk.choices[0].delta.content +# if content: +# print(content, end='', flush=True) +# print('\n') + # return response +class LocalBgeM3Embeddings(Embedder): + def __init__(self, base_url: str, api_key: str, model_name: str = "bge-m3"): + self.base_url = base_url.rstrip("/") + self.api_key = api_key + self.model_name = model_name + + def embed_query(self, text: str) -> List[float]: + return self.embed_documents([text])[0] + + def embed_documents(self, texts: List[str]) -> List[List[float]]: + embedding_base_url = os.path.join(self.base_url, "embeddings") + with httpx.Client(timeout=60) as client: + response = client.post( + embedding_base_url, + json={"model": self.model_name, "input": texts}, + headers={"Authorization": f"Bearer {self.api_key}"}, + ) + embedding_list = [item["embedding"] for item in response.json()["data"]] + return embedding_list + + + diff --git a/mulfilesparse.py b/mulfilesparse.py new file mode 100644 index 0000000..acebcb1 --- /dev/null +++ b/mulfilesparse.py @@ -0,0 +1,180 @@ +#!/usr/bin/env python3 +""" +批量 OCR 解析工具 +- 扫描输入目录下所有 PDF / DOCX / DOC / PPTX / PPT +- DOCX / DOC / PPTX / PPT 先用 LibreOffice 转换为 PDF,再上传解析 +- 结果 content_list 以 JSON 格式保存到输出目录 +- 已处理的文件自动跳过,支持多线程并发 +""" +import json +import os +import shutil +import sys +import subprocess +import tempfile +from concurrent.futures import ThreadPoolExecutor, as_completed +from pathlib import Path + +import requests + +# ============ 配置(按需修改)============ +API_URL = "http://192.168.0.46:59988/analyze-pdf" +INPUT_DIR = "/app/testfiles/input" # 输入文件夹 +OUTPUT_DIR = "/app/testfiles/output" # 输出文件夹 +MAX_WORKERS = 3 # 并发请求数(避免打垮 API 服务) +API_TIMEOUT = 300 # API 请求超时(秒) +CONV_TIMEOUT = 120 # LibreOffice 转换超时(秒) +SKIP_EXISTING = True # 跳过已存在的输出文件 + +# Updated SUPPORTED extensions to include ppt and pptx +SUPPORTED = {".pdf", ".docx", ".doc", ".pptx", ".ppt"} + + +# ============ DOCX/DOC/PPTX/PPT → PDF 转换 ============ +def convert_to_pdf(input_path: str, output_dir: str) -> str: + """使用 LibreOffice 将 DOCX/DOC/PPTX/PPT 转换为 PDF,返回生成的 PDF 路径。 + + 每次调用使用独立的 profile 目录,避免多线程并发时 LibreOffice 互相抢锁导致静默失败。 + """ + profile_dir = tempfile.mkdtemp(prefix="lo_profile_") + try: + cmd = [ + "libreoffice", + f"-env:UserInstallation=file://{profile_dir}", + "--headless", "--convert-to", "pdf", + "--outdir", output_dir, input_path, + ] + result = subprocess.run(cmd, capture_output=True, text=True, timeout=CONV_TIMEOUT) + if result.returncode != 0: + detail = result.stderr.strip() or result.stdout.strip() or f"退出码 {result.returncode}" + raise RuntimeError(f"LibreOffice 转换失败: {detail}") + finally: + shutil.rmtree(profile_dir, ignore_errors=True) + + stem = Path(input_path).stem + pdf_path = os.path.join(output_dir, f"{stem}.pdf") + if not os.path.exists(pdf_path): + raise RuntimeError(f"转换后找不到 PDF: {pdf_path}") + return pdf_path + + +# ============ API 调用 ============ +def analyze_pdf(pdf_path: str) -> list: + """上传 PDF 到 OCR API,返回 content_list。""" + with open(pdf_path, "rb") as f: + files = {"file": (os.path.basename(pdf_path), f, "application/pdf")} + resp = requests.post(API_URL, files=files, timeout=API_TIMEOUT) + + if resp.status_code != 200: + try: + detail = resp.json() + except Exception: + detail = resp.text[:300] + raise RuntimeError(f"HTTP {resp.status_code}: {detail}") + + try: + result = resp.json() + except Exception: + raise RuntimeError(f"响应非 JSON: {resp.text[:300]}") + + return result.get("data", {}).get("content_list", []) + + +# ============ 单文件处理 ============ +def process_file(input_path: str, output_dir: str, temp_dir: str) -> dict: + """ + 处理单个文件,返回状态字典。 + status: "success" | "skipped" | "empty" | "error" + """ + stem = Path(input_path).stem + ext = Path(input_path).suffix.lower() + output_path = os.path.join(output_dir, f"{stem}_content_list.json") + + if SKIP_EXISTING and os.path.exists(output_path): + return {"file": stem, "status": "skipped"} + + pdf_path = input_path + converted = False + try: + # DOCX / DOC / PPTX / PPT 先转 PDF + # Updated condition to include ppt and pptx + if ext in (".docx", ".doc", ".pptx", ".ppt"): + pdf_path = convert_to_pdf(input_path, temp_dir) + converted = True + + content_list = analyze_pdf(pdf_path) + + if not content_list: + return {"file": stem, "status": "empty"} + + with open(output_path, "w", encoding="utf-8") as f: + json.dump(content_list, f, ensure_ascii=False, indent=2) + + return {"file": stem, "status": "success", "items": len(content_list)} + + except Exception as e: + return {"file": stem, "status": "error", "reason": str(e)} + + finally: + if converted and os.path.exists(pdf_path): + os.remove(pdf_path) + + +# ============ 主程序 ============ +def main(): + input_dir = sys.argv[1] if len(sys.argv) > 1 else INPUT_DIR + output_dir = sys.argv[2] if len(sys.argv) > 2 else OUTPUT_DIR + + if not os.path.isdir(input_dir): + print(f"❌ 输入目录不存在: {input_dir}") + sys.exit(1) + + os.makedirs(output_dir, exist_ok=True) + + # 收集并分类文件 + all_files = [p for p in Path(input_dir).iterdir() if p.is_file()] + files = [str(p) for p in all_files if p.suffix.lower() in SUPPORTED] + skipped = [p.name for p in all_files if p.suffix.lower() not in SUPPORTED] + + if skipped: + print(f"⏭️ 跳过 {len(skipped)} 个不支持的文件:") + for name in skipped: + print(f" · {name}") + print() + + if not files: + print(f"⚠️ 目录下没有 PDF/DOCX/DOC/PPTX/PPT 文件: {input_dir}") + return + + print(f"📂 输入目录: {input_dir}") + print(f"💾 输出目录: {output_dir}") + print(f"📄 共 {len(files)} 个文件,并发数 {MAX_WORKERS}\n") + + stats = {"success": 0, "skipped": 0, "empty": 0, "error": 0} + + with tempfile.TemporaryDirectory() as temp_dir: + with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor: + futures = { + executor.submit(process_file, fp, output_dir, temp_dir): fp + for fp in files + } + for i, future in enumerate(as_completed(futures), 1): + res = future.result() + status = res["status"] + stats[status] += 1 + + icon = {"success": "✅", "skipped": "⏭️", "empty": "⚠️", "error": "❌"}[status] + detail = "" + if status == "success": + detail = f"({res['items']} items)" + elif status == "error": + detail = f"- {res['reason']}" + + print(f"[{i:>3}/{len(files)}] {icon} {res['file']} {detail}") + + print(f"\n🎉 完成!成功 {stats['success']} | 跳过 {stats['skipped']} " + f"| 空结果 {stats['empty']} | 失败 {stats['error']}") + + +if __name__ == "__main__": + main() diff --git a/mulparseocr.py b/mulparseocr.py new file mode 100644 index 0000000..255d4da --- /dev/null +++ b/mulparseocr.py @@ -0,0 +1,179 @@ +#!/usr/bin/env python3 +""" +批量 OCR 解析工具 +- 扫描输入目录下所有 PDF / DOCX / DOC +- DOCX / DOC 先用 LibreOffice 转换为 PDF,再上传解析 +- 结果 content_list 以 JSON 格式保存到输出目录 +- 已处理的文件自动跳过,支持多线程并发 +""" +import json +import os +import shutil +import sys +import subprocess +import tempfile +from concurrent.futures import ThreadPoolExecutor, as_completed +from pathlib import Path + +import requests + +# ============ 配置(按需修改)============ +API_URL = "http://192.168.0.46:59988/analyze-pdf" +INPUT_DIR = "/app/testfiles/input" # 输入文件夹 +OUTPUT_DIR = "/app/testfiles/output" # 输出文件夹 +MAX_WORKERS = 3 # 并发请求数(避免打垮 API 服务) +API_TIMEOUT = 300 # API 请求超时(秒) +CONV_TIMEOUT = 120 # LibreOffice 转换超时(秒) +SKIP_EXISTING = True # 跳过已存在的输出文件 + +SUPPORTED = {".pdf", ".docx", ".doc"} + + +# ============ DOCX/DOC → PDF 转换 ============ +def convert_to_pdf(input_path: str, output_dir: str) -> str: + """使用 LibreOffice 将 DOCX/DOC 转换为 PDF,返回生成的 PDF 路径。 + + 每次调用使用独立的 profile 目录,避免多线程并发时 LibreOffice 互相抢锁导致静默失败。 + """ + profile_dir = tempfile.mkdtemp(prefix="lo_profile_") + try: + cmd = [ + "libreoffice", + f"-env:UserInstallation=file://{profile_dir}", + "--headless", "--convert-to", "pdf", + "--outdir", output_dir, input_path, + ] + result = subprocess.run(cmd, capture_output=True, text=True, timeout=CONV_TIMEOUT) + if result.returncode != 0: + detail = result.stderr.strip() or result.stdout.strip() or f"退出码 {result.returncode}" + raise RuntimeError(f"LibreOffice 转换失败: {detail}") + finally: + shutil.rmtree(profile_dir, ignore_errors=True) + + stem = Path(input_path).stem + pdf_path = os.path.join(output_dir, f"{stem}.pdf") + if not os.path.exists(pdf_path): + raise RuntimeError(f"转换后找不到 PDF: {pdf_path}") + return pdf_path + + +# ============ API 调用 ============ +def analyze_pdf(pdf_path: str) -> list: + """上传 PDF 到 OCR API,返回 content_list。""" + with open(pdf_path, "rb") as f: + files = {"file": (os.path.basename(pdf_path), f, "application/pdf")} + resp = requests.post(API_URL, files=files, timeout=API_TIMEOUT) + + if resp.status_code != 200: + try: + detail = resp.json() + except Exception: + detail = resp.text[:300] + raise RuntimeError(f"HTTP {resp.status_code}: {detail}") + + try: + result = resp.json() + except Exception: + raise RuntimeError(f"响应非 JSON: {resp.text[:300]}") + + return result.get("data", {}).get("content_list", []) + + +# ============ 单文件处理 ============ +def process_file(input_path: str, output_dir: str, temp_dir: str) -> dict: + """ + 处理单个文件,返回状态字典。 + status: "success" | "skipped" | "empty" | "error" + """ + stem = Path(input_path).stem + ext = Path(input_path).suffix.lower() + output_path = os.path.join(output_dir, f"{stem}_content_list.json") + + if SKIP_EXISTING and os.path.exists(output_path): + return {"file": stem, "status": "skipped"} + + pdf_path = input_path + converted = False + try: + # DOCX / DOC 先转 PDF + if ext in (".docx", ".doc"): + pdf_path = convert_to_pdf(input_path, temp_dir) + converted = True + + content_list = analyze_pdf(pdf_path) + + if not content_list: + return {"file": stem, "status": "empty"} + + with open(output_path, "w", encoding="utf-8") as f: + json.dump(content_list, f, ensure_ascii=False, indent=2) + + return {"file": stem, "status": "success", "items": len(content_list)} + + except Exception as e: + return {"file": stem, "status": "error", "reason": str(e)} + + finally: + if converted and os.path.exists(pdf_path): + os.remove(pdf_path) + + +# ============ 主程序 ============ +def main(): + input_dir = sys.argv[1] if len(sys.argv) > 1 else INPUT_DIR + output_dir = sys.argv[2] if len(sys.argv) > 2 else OUTPUT_DIR + + if not os.path.isdir(input_dir): + print(f"❌ 输入目录不存在: {input_dir}") + sys.exit(1) + + os.makedirs(output_dir, exist_ok=True) + + # 收集并分类文件 + all_files = [p for p in Path(input_dir).iterdir() if p.is_file()] + files = [str(p) for p in all_files if p.suffix.lower() in SUPPORTED] + skipped = [p.name for p in all_files if p.suffix.lower() not in SUPPORTED] + + if skipped: + print(f"⏭️ 跳过 {len(skipped)} 个不支持的文件:") + for name in skipped: + print(f" · {name}") + print() + + if not files: + print(f"⚠️ 目录下没有 PDF/DOCX/DOC 文件: {input_dir}") + return + + print(f"📂 输入目录: {input_dir}") + print(f"💾 输出目录: {output_dir}") + print(f"📄 共 {len(files)} 个文件,并发数 {MAX_WORKERS}\n") + + stats = {"success": 0, "skipped": 0, "empty": 0, "error": 0} + + with tempfile.TemporaryDirectory() as temp_dir: + with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor: + futures = { + executor.submit(process_file, fp, output_dir, temp_dir): fp + for fp in files + } + for i, future in enumerate(as_completed(futures), 1): + res = future.result() + status = res["status"] + stats[status] += 1 + + icon = {"success": "✅", "skipped": "⏭️", "empty": "⚠️", "error": "❌"}[status] + detail = "" + if status == "success": + detail = f"({res['items']} items)" + elif status == "error": + detail = f"- {res['reason']}" + + print(f"[{i:>3}/{len(files)}] {icon} {res['file']} {detail}") + + print(f"\n🎉 完成!成功 {stats['success']} | 跳过 {stats['skipped']} " + f"| 空结果 {stats['empty']} | 失败 {stats['error']}") + + +if __name__ == "__main__": + main() + diff --git a/neo4j_indexing.py b/neo4j_indexing.py new file mode 100644 index 0000000..c490788 --- /dev/null +++ b/neo4j_indexing.py @@ -0,0 +1,807 @@ +# neo4j-admin database load --from-path="neo4j.dump文件所在目录" --overwrite-destination=true neo4j --verbose +import os +import re +import jieba +import logging +import numpy as np +from concurrent.futures import ThreadPoolExecutor +from neo4j import GraphDatabase +from neo4j_graphrag.indexes import ( + create_vector_index, + upsert_vectors, + create_fulltext_index, +) +from modelsAPI.model_api import OpenaiAPI +from dotenv import load_dotenv +from typing import List, Set, Tuple, Dict, Optional +from config import LLM_CONFIG, EMBEDDING_CONFIG, NEO4J_CONFIG, SEARCH_CONFIG + +# 加载 .env 文件中的环境变量 +load_dotenv() + +# 配置控制台日志 +logger = logging.getLogger("indexing") +logger.setLevel(logging.INFO) +if not logger.handlers: + formatter = logging.Formatter("[%(levelname)s]%(asctime)s: %(message)s") + handler = logging.StreamHandler() + handler.setFormatter(formatter) + logger.addHandler(handler) + +VECTOR_DIMENSION = SEARCH_CONFIG["vector_dimension"] +vector_dim = SEARCH_CONFIG["vector_dimension"] # OpenAI bge-m3 模型的嵌入向量维度 +embed_batch_size = SEARCH_CONFIG["embed_batch_size"] # 嵌入向量计算批次大小 +EMBED_MAX_WORKERS = SEARCH_CONFIG["embed_thread_num"] # embedding 批次并行线程数(受下游 OpenaiAPI 限流约束,勿过大) +NODE_FETCH_PAGE = SEARCH_CONFIG["node_fetch_page"] # 单次拉取待生成 embedding 节点的分页大小 + +# 全局索引名称(覆盖所有节点标签) +GLOBAL_VECTOR_INDEX_NAME = SEARCH_CONFIG["global_entity_embedding"] +GLOBAL_FULLTEXT_INDEX_NAME = SEARCH_CONFIG["global_entity_content_search"] +DEFAULT_URI = NEO4J_CONFIG["uri"] +DEFAULT_AUTH = ( + NEO4J_CONFIG["username"], + NEO4J_CONFIG["password"], +) + +NAME_PROPERTY = SEARCH_CONFIG["name_property"] +FULLTEXT_PROPERTY = SEARCH_CONFIG["fulltext_property"] +EMBEDDING_PROPERTY = SEARCH_CONFIG["embedding_property"] +SEARCH_LABEL = SEARCH_CONFIG["search_label"] + +VECTOR_INDEX_NAME = SEARCH_CONFIG["vector_index_name"] +FULLTEXT_INDEX_NAME = SEARCH_CONFIG["fulltext_index_name"] +FULLTEXT_FIELD_INDEX_NAME = SEARCH_CONFIG["fulltext_field_index_name"] + +EXCLUDED_BUSINESS_LABELS: Set[str] = set(SEARCH_CONFIG["excluded_business_labels"]) +OLD_INDEX_NAMES: List[str] = [ + VECTOR_INDEX_NAME, + FULLTEXT_INDEX_NAME, + FULLTEXT_FIELD_INDEX_NAME, + GLOBAL_VECTOR_INDEX_NAME, + GLOBAL_FULLTEXT_INDEX_NAME, +] + + +def get_all_labels(driver): + """ + 获取知识图谱中所有的节点标签 + + Args: + driver: Neo4j driver + + Returns: + list: 所有节点标签列表 + """ + query = "CALL db.labels()" + result = driver.execute_query(query) + labels = [record["label"] for record in result.records] + return labels + + +def get_label_properties(driver, label): + """ + 获取指定标签的所有属性键(通过采样多个节点获取所有可能的属性) + + Args: + driver: Neo4j driver + label: 节点标签 + + Returns: + list: 属性键列表(排除内部属性如 embedding, fulltext) + """ + # 采样多个节点来获取所有可能的属性(因为不同节点可能有不同的属性集) + query = f""" + MATCH (n:{label}) + WITH n LIMIT 100 + UNWIND keys(n) AS prop + RETURN DISTINCT prop AS properties + ORDER BY properties + """ + result = driver.execute_query(query) + + if result.records: + properties = [record["properties"] for record in result.records] + # 排除内部索引属性 + excluded_props = {"embedding", "fulltext", "elementId", "id"} + properties = [prop for prop in properties if prop not in excluded_props] + return properties + else: + logger.warning(f"标签 {label} 没有节点,无法获取属性列表") + return [] + + +def build_text_from_all_properties(record_dict): + """ + 从节点的所有属性构建文本(用于全文索引) + + Args: + record_dict: 节点属性字典(已排除 id) + + Returns: + str: 构建的文本字符串 + """ + text_parts = [] + for key, value in record_dict.items(): + if value is not None: + # 将值转换为字符串 + if isinstance(value, (list, dict)): + value_str = str(value) + else: + value_str = str(value).strip() + + if value_str: + text_parts.append(f"{key}:{value_str}") + + return " ".join(text_parts) if text_parts else None + + +def _compute_embeddings_parallel(names: List[str]) -> List[list]: + """ + 并行计算一批名称的 embedding。 + + 将 names 切成多个 batch,用线程池并发调用 OpenaiAPI.batch_embeddings, + 再按原始顺序拼回。相比串行可显著缩短大批量节点的 embedding 耗时。 + + Args: + names: 待计算 embedding 的文本列表 + + Returns: + list: 与 names 等长、顺序一致的 embedding 向量列表 + + Raises: + 任一 batch 计算失败时向上抛出异常 + """ + # 切分批次,保留批次索引以便按序拼回 + batches = [ + (idx, names[i:i + embed_batch_size]) + for idx, i in enumerate(range(0, len(names), embed_batch_size)) + ] + + results: Dict[int, list] = {} + + def _run_batch(item): + idx, batch_names = item + batch_result = OpenaiAPI.batch_embeddings(batch_names) + # batch_result 返回的是字典列表,每个字典包含 'embedding' 字段 + return idx, [row["embedding"] for row in batch_result] + + workers = min(EMBED_MAX_WORKERS, len(batches)) or 1 + with ThreadPoolExecutor(max_workers=workers) as executor: + for idx, batch_embeddings in executor.map(_run_batch, batches): + results[idx] = batch_embeddings + + # 按批次顺序拼回,保证与输入 names 对齐 + all_embeddings: List[list] = [] + for idx in range(len(batches)): + all_embeddings.extend(results[idx]) + return all_embeddings + + +def drop_constraint(driver): + """删除所有约束""" + records = driver.execute_query("show constraints").records + for record in records: + driver.execute_query(f"drop constraint {record['name']} if exists") + + +def drop_index_without_constraint(driver): + """删除所有没有约束的索引""" + records = driver.execute_query("show index").records + for record in records: + if not record["owningConstraint"]: + driver.execute_query(f"drop index {record['name']} if exists") + + +# --------- 创建全局混合索引(覆盖所有节点标签) --------- +def create_global_indexes(driver, force_refresh=False): + """ + 创建覆盖所有节点标签的全局向量索引和全文索引。 + 与按标签创建的索引互补,支持跨标签统一检索。 + + Args: + driver: Neo4j driver + force_refresh: True=先删除旧索引再重建,False=IF NOT EXISTS 跳过已有索引 + """ + if force_refresh: + for index_name in (GLOBAL_VECTOR_INDEX_NAME, GLOBAL_FULLTEXT_INDEX_NAME): + try: + driver.execute_query(f"DROP INDEX {index_name} IF EXISTS") + logger.info(f"强制刷新:已删除全局索引 {index_name}") + except Exception as e: + logger.warning(f"删除全局索引 {index_name} 时出错(可能不存在): {e}") + + # 全局向量索引(作用于所有节点的 embedding 属性) + try: + driver.execute_query(f""" + CREATE VECTOR INDEX {GLOBAL_VECTOR_INDEX_NAME} IF NOT EXISTS + FOR (n) ON n.embedding + OPTIONS {{indexConfig: {{ + `vector.dimensions`: {vector_dim}, + `vector.similarity_function`: 'cosine' + }}}} + """) + logger.info(f"全局向量索引 '{GLOBAL_VECTOR_INDEX_NAME}' 已就绪") + except Exception as e: + logger.error(f"创建全局向量索引失败: {e}") + raise + + # 全局全文索引(作用于所有节点的 名称 和 内容 属性) + try: + driver.execute_query(f""" + CREATE FULLTEXT INDEX {GLOBAL_FULLTEXT_INDEX_NAME} IF NOT EXISTS + FOR (n) ON EACH [n.名称, n.内容] + """) + logger.info(f"全局全文索引 '{GLOBAL_FULLTEXT_INDEX_NAME}' 已就绪") + except Exception as e: + logger.error(f"创建全局全文索引失败: {e}") + raise + + +# --------- 创建向量索引 --------- +def vector_indexing(driver, label, force_refresh=False): + """ + 创建向量索引(如果节点没有 embedding,使用"名称"属性生成 embedding) + + 说明: + - 待生成 embedding 的节点通过分页循环全部处理,不再受单次 LIMIT 限制, + 避免节点数超过一万时被静默丢弃。 + - embedding 计算采用并行批次以缩短耗时。 + + Args: + driver: Neo4j driver + label: 节点标签 + force_refresh: 是否强制刷新(如果索引已存在,force_refresh=False 时会跳过,True 时会先删除再创建) + """ + + # === 分页处理所有缺失 embedding 的节点 === + # 每轮取一页未生成 embedding 的节点并写回,直到没有剩余节点为止。 + # 这样即使待处理节点远超一万也能全部覆盖。 + total_generated = 0 + while True: + query_no_embedding = f""" + MATCH (n:{label}) + WHERE n.embedding IS NULL + AND n.名称 IS NOT NULL + RETURN elementId(n) AS id, n.名称 AS 名称 + LIMIT {NODE_FETCH_PAGE} + """ + result_no_embedding = driver.execute_query(query_no_embedding) + nodes_to_process = [ + (record["id"], record["名称"]) for record in result_no_embedding.records + ] + + if not nodes_to_process: + break + + logger.info(f"标签 {label} 本轮发现 {len(nodes_to_process)} 个节点需要生成 embedding") + + ids, names = zip(*nodes_to_process) + ids = list(ids) + names = list(names) + + # 并行计算 embedding + logger.info(f"开始为 {len(names)} 个节点计算 embedding(并行批次)...") + try: + all_embeddings = _compute_embeddings_parallel(names) + except Exception as e: + logger.error(f"批量嵌入向量计算失败: {e}") + raise + + # 转换为 numpy 数组并做 L2 归一化 + embeddings = np.array(all_embeddings) + norms = np.linalg.norm(embeddings, axis=1, keepdims=True) + norms = np.where(norms == 0, 1, norms) # 避免除零 + embeddings = embeddings / norms + + # 保存 embedding 到节点 + logger.info(f"写入 {len(ids)} 个节点的 embedding...") + upsert_vectors( + driver, + ids=ids, + embedding_property="embedding", + embeddings=embeddings, + ) + total_generated += len(ids) + logger.info(f"本轮成功为 {len(ids)} 个节点生成并保存 embedding") + + # 不足一页说明已处理完,提前结束 + if len(nodes_to_process) < NODE_FETCH_PAGE: + break + + if total_generated: + logger.info(f"标签 {label} 共生成 {total_generated} 个节点的 embedding") + + # 检查是否有节点存在 embedding(包括刚生成的) + check_query = f"MATCH (n:{label}) WHERE n.embedding IS NOT NULL RETURN count(n) AS count" + result = driver.execute_query(check_query) + node_count = result.records[0]["count"] if result.records else 0 + + if node_count == 0: + logger.warning(f"标签 {label} 没有节点包含 embedding 属性,跳过向量索引创建") + return + + # 创建向量索引 + index_name = f"{label.lower()}_vector" + + # 如果强制刷新且索引已存在,先删除它 + if force_refresh: + try: + driver.execute_query(f"DROP INDEX {index_name} IF EXISTS") + logger.info(f"强制刷新模式:已删除旧索引 {index_name}") + except Exception as e: + logger.warning(f"删除索引 {index_name} 时出错(可能不存在): {e}") + + try: + create_vector_index( + driver, + name=index_name, # 索引的唯一名称 + label=label, # 要索引的节点标签 + embedding_property="embedding", # 包含嵌入向量值的节点属性键 + dimensions=vector_dim, # 向量嵌入维度,1024与使用的 bge-m3 嵌入模型一致 + similarity_fn="cosine", # 向量相似度函数,可选 "euclidean" 或 "cosine" + ) + logger.info(f"成功为标签 {label} 创建向量索引(共 {node_count} 个节点)") + except Exception as e: + # 如果是增量更新模式且索引已存在,这是正常的,只记录警告 + if not force_refresh and "already exists" in str(e).lower(): + logger.info(f"标签 {label} 的向量索引已存在,跳过创建") + else: + logger.error(f"为标签 {label} 创建向量索引失败: {e}") + raise + + +# --------- 创建全文索引 --------- +def fulltext_indexing(driver, label, force_refresh=False): + """ + 创建全文索引,并添加节点属性(自动获取所有属性) + + 全文索引:词 ---》 id + 后续检索,分词后,根据词反向找到节点 + + Args: + driver: Neo4j driver + label: 节点标签 + force_refresh: 是否强制刷新所有节点的全文索引(True=清空后重新生成,False=只处理缺失的节点) + """ + # 排除内部属性 + excluded_props = {"embedding", "fulltext", "elementId", "id"} + + # 根据 force_refresh 决定查询条件 + if force_refresh: + # 强制刷新:处理所有节点(包括已有 fulltext 的节点) + query = f"""MATCH (n:{label}) + WITH n, elementId(n) AS id, properties(n) AS props + RETURN id, props""" + else: + # 增量更新:只处理没有 fulltext 的节点 + query = f"""MATCH (n:{label}) + WHERE n.fulltext IS NULL + WITH n, elementId(n) AS id, properties(n) AS props + RETURN id, props""" + + # 执行查询 + records = driver.execute_query(query).records + + if not records: + if force_refresh: + logger.info(f"{label} 没有节点需要处理") + else: + logger.info(f"{label} 所有节点皆存在全文索引属性") + return + + # 构建文本描述(使用所有属性) + record_list = [] + for r in records: + node_id = r["id"] + props = r["props"] + # 过滤掉内部属性 + filtered_props = {k: v for k, v in props.items() if k not in excluded_props} + # 使用所有属性构建文本 + text = build_text_from_all_properties(filtered_props) + if text: + record_list.append({"id": node_id, "text": text}) + + if not record_list: + logger.info(f"{label} 没有可索引的文本内容") + return + + # 创建全文索引(在写入数据之前创建索引) + try: + create_fulltext_index( + driver, + name=f"{label.lower()}_fulltext", # 索引的唯一名称 + label=label, # 要创建索引的节点标签 + node_properties=["fulltext"], # 要创建全文索引的节点属性列表 + ) + except Exception as e: + logger.warning(f"创建全文索引可能已存在(继续处理): {e}") + + # 文本分词,作为全文索引属性 + logger.info(f"计算 {label} ({len(record_list)}) 的全文索引") + pattern = re.compile(r"[a-zA-Z0-9\u4e00-\u9fa5]+") # 匹配英文字母、数字和中文字符 + fulltext_tuple_list = [] + for id_, text in [(r["id"], r["text"]) for r in record_list]: + # 使用 jieba 分词 + words = jieba.lcut(text) + # 过滤并连接 + filtered_words = [ + word.strip() + for word in words + if word.strip() and pattern.fullmatch(word.strip()) + ] + fulltext_value = " ".join(filtered_words) + if fulltext_value: + fulltext_tuple_list.append((id_, fulltext_value)) + + if not fulltext_tuple_list: + logger.warning(f"{label} 分词后没有有效内容") + return + + ids, fulltexts = zip(*fulltext_tuple_list) + ids = list(ids) + fulltexts = list(fulltexts) + + # 按 elementId 添加全文索引属性 + logger.info(f"写入 {label} ({len(fulltexts)}) 的全文索引") + insert_batch_size = 1000 + for i in range(0, len(fulltext_tuple_list), insert_batch_size): + batch_rows = [ + {"id": id_, "fulltext": ft} + for id_, ft in zip( + ids[i: i + insert_batch_size], + fulltexts[i: i + insert_batch_size], + ) + ] + + # UNWIND:将列表数据展开为多行记录 + driver.execute_query( + "UNWIND $rows AS row " # 将传入的 rows 列表展开,每项作为一行数据,命名为 row + "MATCH (n) " + "WHERE elementId(n) = row.id " + "SET n.fulltext = row.fulltext ", + {"rows": batch_rows}, + ) + + +def create_all_indexes(neo4j_uri=None, neo4j_username=None, neo4j_password=None, force_refresh=False, driver=None): + """ + 创建所有索引的主函数(可被外部调用) + + 注意:Neo4j 连接配置优先从 .env 文件中读取(NEO4J_URI, NEO4J_USERNAME, NEO4J_PASSWORD) + 如果 .env 文件中没有配置,则使用参数中的值(如果提供)或默认值 + + Args: + neo4j_uri: Neo4j URI(可选,优先级低于 .env,提供 driver 时忽略) + neo4j_username: Neo4j 用户名(可选,优先级低于 .env,提供 driver 时忽略) + neo4j_password: Neo4j 密码(可选,优先级低于 .env,提供 driver 时忽略) + force_refresh: 是否强制刷新所有索引(True=清空重建,False=增量更新) + driver: 可选的 Neo4j driver 实例,提供则复用外部 driver + + Returns: + dict: 包含执行结果的字典 + """ + use_external_driver = driver is not None + + if not use_external_driver: + # 优先从 .env 文件读取配置,如果 .env 中没有则使用参数或默认值 + neo4j_uri = os.getenv("NEO4J_URI") or neo4j_uri or "bolt://192.168.0.46:57687" + neo4j_username = os.getenv("NEO4J_USERNAME") or neo4j_username or "neo4j" + neo4j_password = os.getenv("NEO4J_PASSWORD") or neo4j_password or "zdht123@" + logger.info(f"连接到 Neo4j: {neo4j_uri}") + else: + logger.info("使用外部提供的 Neo4j driver") + + # 定义内部函数来执行索引创建逻辑(避免代码重复) + def _execute_indexing(driver): + # 1、根据 force_refresh 决定是否清空索引和约束 + if force_refresh: + logger.info("强制刷新模式:清空所有约束...") + drop_constraint(driver) + logger.info("强制刷新模式:清空所有索引...") + drop_index_without_constraint(driver) + logger.info("强制刷新模式:清空所有节点的 fulltext 属性...") + driver.execute_query("MATCH (n) WHERE n.fulltext IS NOT NULL REMOVE n.fulltext") + else: + logger.info("增量更新模式:保留现有索引和约束") + + # 2、自动获取所有节点标签并创建向量索引 + logger.info("=" * 50) + logger.info("开始创建向量索引...") + logger.info("=" * 50) + + all_labels = get_all_labels(driver) + logger.info(f"发现 {len(all_labels)} 个节点标签: {all_labels}") + + vector_index_errors = [] + for label in all_labels: + logger.info(f"处理标签: {label}") + try: + vector_indexing(driver, label, force_refresh=force_refresh) + except Exception as e: + error_msg = f"为标签 {label} 创建向量索引时出错: {e}" + logger.error(error_msg) + vector_index_errors.append(error_msg) + continue + + # 3、创建全文索引(自动获取所有属性) + logger.info("=" * 50) + logger.info("开始创建全文索引...") + logger.info("=" * 50) + + fulltext_index_errors = [] + for label in all_labels: + logger.info(f"处理标签: {label}") + try: + fulltext_indexing(driver, label, force_refresh=force_refresh) + except Exception as e: + error_msg = f"为标签 {label} 创建全文索引时出错: {e}" + logger.error(error_msg) + fulltext_index_errors.append(error_msg) + continue + + logger.info("=" * 50) + logger.info("所有索引创建完成!") + logger.info("=" * 50) + + has_errors = len(vector_index_errors) > 0 or len(fulltext_index_errors) > 0 + mode_text = "强制刷新" if force_refresh else "增量更新" + return { + "success": not has_errors, + "message": f"{mode_text}模式:索引创建完成" if not has_errors + else f"{mode_text}模式:索引创建完成,但部分标签出现错误", + "mode": "force_refresh" if force_refresh else "incremental", + "labels": all_labels, + "vector_index_errors": vector_index_errors, + "fulltext_index_errors": fulltext_index_errors, + } + + try: + if use_external_driver: + # 使用外部 driver,直接执行,不关闭 driver + return _execute_indexing(driver) + else: + # 使用内部 driver,使用上下文管理器自动关闭 + with GraphDatabase.driver(neo4j_uri, auth=(neo4j_username, neo4j_password)) as driver: + return _execute_indexing(driver) + except Exception as e: + error_msg = f"创建索引过程中发生错误: {e}" + logger.error(error_msg, exc_info=True) + return { + "success": False, + "message": error_msg, + "mode": "error", + "labels": [], + "vector_index_errors": [], + "fulltext_index_errors": [], + } + + +def print_neo4j_version(driver) -> None: + """打印当前 Neo4j 实例的版本和版本类型。""" + with driver.session() as session: + rec = session.run( + "CALL dbms.components() YIELD name, versions, edition " + "WHERE name='Neo4j Kernel' RETURN versions[0] AS v, edition" + ).single() + if rec: + logger.info(f"Neo4j 版本: {rec['v']} ({rec['edition']})") + + +def migrate_remove_entity_label(driver, dry_run: bool = False) -> None: + """ + 从所有节点上移除 :Entity 标签。 + + Parameters + ---------- + driver : Neo4j GraphDatabase driver + dry_run : 若为 True,只统计数量,不执行移除 + """ + with driver.session() as session: + cnt = session.run("MATCH (n:Entity) RETURN count(n) AS c").single()["c"] + logger.info(f"当前带 :Entity 标签的节点数: {cnt}") + if cnt == 0: + return + if dry_run: + logger.info("[dry_run] 未执行移除") + return + session.run("MATCH (n:Entity) REMOVE n:Entity") + logger.info(f"已从 {cnt} 个节点上移除 :Entity") + + +def tag_searchable_nodes(driver, excluded: Set[str]) -> int: + """ + 为满足以下条件的节点打上 :Searchable 标签: + - 拥有 `名称` 属性 + - 拥有 `embedding` 属性 + - 尚未持有 :Searchable 标签 + - 至少有一个非排除业务标签 + + 注意:排除标签列表通过查询参数传入,避免 Cypher 字符串注入。 + + Returns + ------- + int : 本次新打标签的节点数 + """ + # 标签名无法参数化,但排除标签集合的“值”可以参数化,避免拼接注入 + query = f""" + MATCH (n) + WHERE n.`{NAME_PROPERTY}` IS NOT NULL + AND n.{EMBEDDING_PROPERTY} IS NOT NULL + AND NOT n:{SEARCH_LABEL} + AND any(lbl IN labels(n) WHERE NOT lbl IN $excluded) + SET n:{SEARCH_LABEL} + RETURN count(n) AS added + """ + excluded_list = list(excluded) + with driver.session() as session: + added = session.run(query, excluded=excluded_list).single()["added"] + logger.info(f"本次新打上 :{SEARCH_LABEL} 的节点数: {added}") + + with driver.session() as session: + total = session.run( + f"MATCH (n:{SEARCH_LABEL}) RETURN count(n) AS c" + ).single()["c"] + logger.info(f"当前带 :{SEARCH_LABEL} 标签的节点总数: {total}") + return added + + +def drop_old_indexes(driver, names: List[str]) -> None: + """删除指定名称的索引(不存在时忽略)。""" + with driver.session() as session: + for name in names: + try: + session.run(f"DROP INDEX {name} IF EXISTS") + logger.info(f"已删除旧索引: {name}") + except Exception as e: + logger.warning(f"删除索引 {name} 失败(可忽略): {e}") + + +def create_indexes(driver) -> None: + """ + 创建三个索引: + 1. 向量索引 —— 用于语义相似度检索 + 2. 名称全文索引 —— 用于节点名称关键词检索 + 3. fulltext 字段全文索引 —— 用于节点 fulltext 属性关键词检索 + """ + with driver.session() as session: + + # 1. 向量索引 + session.run(f""" + CREATE VECTOR INDEX {VECTOR_INDEX_NAME} IF NOT EXISTS + FOR (n:{SEARCH_LABEL}) ON (n.{EMBEDDING_PROPERTY}) + OPTIONS {{ + indexConfig: {{ + `vector.dimensions`: {VECTOR_DIMENSION}, + `vector.similarity_function`: 'cosine' + }} + }} + """) + logger.info(f"向量索引 '{VECTOR_INDEX_NAME}' 已就绪") + + # 2. 名称全文索引 + session.run(f""" + CREATE FULLTEXT INDEX {FULLTEXT_INDEX_NAME} IF NOT EXISTS + FOR (n:{SEARCH_LABEL}) ON EACH [n.`{NAME_PROPERTY}`] + """) + logger.info(f"全文索引(名称) '{FULLTEXT_INDEX_NAME}' 已就绪") + + # 3. fulltext 字段全文索引 + session.run(f""" + CREATE FULLTEXT INDEX {FULLTEXT_FIELD_INDEX_NAME} IF NOT EXISTS + FOR (n:{SEARCH_LABEL}) ON EACH [n.`{FULLTEXT_PROPERTY}`] + """) + logger.info(f"全文索引(fulltext 字段) '{FULLTEXT_FIELD_INDEX_NAME}' 已就绪") + + +# ================== 连接解析工具 ================== + +def _resolve_connection( + uri: Optional[str], + user: Optional[str], + password: Optional[str], +) -> Tuple[str, Tuple[str, str]]: + """ + 按优先级解析连接参数:传参 > 环境变量 > 默认常量。 + + Returns + ------- + (uri, (user, password)) + """ + resolved_uri = uri or os.getenv("NEO4J_URI", DEFAULT_URI) + resolved_user = user or os.getenv("NEO4J_USER", DEFAULT_AUTH[0]) + resolved_pw = password or os.getenv("NEO4J_PASSWORD", DEFAULT_AUTH[1]) + return resolved_uri, (resolved_user, resolved_pw) + + +# ================== 主入口函数 ================== + +def build_hybrid_indexes( + driver=None, + *, + uri: Optional[str] = None, + user: Optional[str] = None, + password: Optional[str] = None, + remove_entity_label: bool = False, + dry_run_entity: bool = False, + drop_old: bool = True, +) -> dict: + """ + 完整的混合索引构建流程。 + + 连接参数优先级:传参 > 环境变量(NEO4J_URI/NEO4J_USER/NEO4J_PASSWORD) > 默认常量 + + Parameters + ---------- + driver : 已有的 Neo4j driver(传入则直接使用,不再创建新连接) + uri : Neo4j 连接地址,如 "bolt://host:7687" + user : 数据库用户名 + password : 数据库密码 + remove_entity_label : 是否执行移除 :Entity 标签的迁移步骤 + dry_run_entity : remove_entity_label=True 时,是否仅统计而不实际移除 + drop_old : 是否在创建前先删除旧索引(建议保持 True) + + Returns + ------- + dict : {"success": bool, "message": str, "searchable_added": int} + 失败时 success=False 且 message 含错误信息 + """ + # 若未传入 driver,则根据参数/环境变量/默认值自动创建 + _owns_driver = driver is None + if _owns_driver: + resolved_uri, resolved_auth = _resolve_connection(uri, user, password) + logger.info(f"连接 Neo4j: {resolved_uri} 用户: {resolved_auth[0]}") + driver = GraphDatabase.driver(resolved_uri, auth=resolved_auth) + + try: + logger.info("=" * 60) + logger.info("开始构建混合索引") + logger.info("=" * 60) + + print_neo4j_version(driver) + + if remove_entity_label: + migrate_remove_entity_label(driver, dry_run=dry_run_entity) + + searchable_added = tag_searchable_nodes(driver, EXCLUDED_BUSINESS_LABELS) + + if drop_old: + drop_old_indexes(driver, OLD_INDEX_NAMES) + + create_indexes(driver) + + return { + "success": True, + "message": "混合索引构建完成", + "searchable_added": searchable_added, + } + + except Exception as e: + error_msg = f"构建混合索引过程中发生错误: {e}" + logger.error(error_msg, exc_info=True) + return { + "success": False, + "message": error_msg, + "searchable_added": 0, + } + + finally: + # 仅关闭由本函数自己创建的 driver + if _owns_driver: + driver.close() + + +# 向后兼容别名:保留旧拼写,避免其他模块仍引用 build_hyrid_indexes 时报错 +build_hyrid_indexes = build_hybrid_indexes + + +if __name__ == "__main__": + # 可以通过命令行参数或环境变量控制是否强制刷新 + import sys + + force_refresh = "--force" in sys.argv or os.getenv("FORCE_REFRESH", "false").lower() == "true" + + result = create_all_indexes(force_refresh=force_refresh) + if result["success"]: + logger.info(f"索引创建成功完成(模式: {result['mode']})") + else: + logger.error(f"索引创建完成但有错误: {result['message']}") diff --git a/offline_pkgs/aiofiles-25.1.0-py3-none-any.whl b/offline_pkgs/aiofiles-25.1.0-py3-none-any.whl new file mode 100644 index 0000000..e0d06a8 Binary files /dev/null and b/offline_pkgs/aiofiles-25.1.0-py3-none-any.whl differ diff --git a/registry/entity_registry.json b/registry/entity_registry.json new file mode 100644 index 0000000..356bd76 --- /dev/null +++ b/registry/entity_registry.json @@ -0,0 +1,280 @@ +{ + "安全警告": { + "description": "", + "properties": [ + "名称", + "概述", + "警告", + "注意", + "内容", + "knowledge_source" + ] + }, + "功能": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "环境条件": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "基本情况": { + "description": "", + "properties": [ + "名称", + "主要功能", + "工作条件", + "内容", + "knowledge_source" + ] + }, + "组成": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "工作原理": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "技术指标参数": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "接口": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "布置情况": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "维修工作": { + "description": "", + "properties": [ + "名称", + "维修项目索引表", + "内容", + "knowledge_source" + ] + }, + "器材保障": { + "description": "", + "properties": [ + "名称", + "保障设施、保障设备(工具)信息汇总表", + "消耗材料信息汇总表", + "内容", + "knowledge_source" + ] + }, + "维修安全防护及注意事项汇总表": { + "description": "", + "properties": [ + "名称", + "概述", + "安全防护", + "注意事项", + "内容", + "knowledge_source" + ] + }, + "图册": { + "description": "", + "properties": [ + "名称", + "原理图", + "knowledge_source" + ] + }, + "接口情况": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "操作使用": { + "description": "", + "properties": [ + "名称", + "操作使用项目索引表", + "战位操作表", + "内容", + "knowledge_source" + ] + }, + "使用期间安全防护及注意事项": { + "description": "", + "properties": [ + "名称", + "安全防护", + "注意事项", + "内容", + "knowledge_source" + ] + }, + "技术参数": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "结构特点": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "主要附件仪表的规格型号及性能参数": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "操作员与设备之间操作员与其他设备或系统设备员之间关系": { + "description": "", + "properties": [ + "名称", + "内容", + "knowledge_source" + ] + }, + "维护保养": { + "description": "", + "properties": [ + "名称", + "概述", + "运行时的维护保养", + "日常维护保养工作和计划", + "注意事项", + "内容", + "knowledge_source" + ] + }, + "调试": { + "description": "", + "properties": [ + "名称", + "概述", + "安装方法及程序", + "调试方法及步骤", + "安装调试注意事项", + "内容", + "knowledge_source" + ] + }, + "安全保护措施及故障处理": { + "description": "", + "properties": [ + "名称", + "概述", + "保护措施及注意事项", + "故障处理程序和方法", + "内容", + "knowledge_source" + ] + }, + "测试一": { + "description": "", + "properties": [ + "名称", + "概述", + "测试子一", + "测试子二", + "内容", + "knowledge_source" + ] + }, + "测试二": { + "description": "", + "properties": [ + "名称", + "概述", + "测试子一", + "测试子二", + "内容", + "knowledge_source" + ] + }, + "测试三": { + "description": "", + "properties": [ + "名称", + "概述", + "测试子一", + "测试子二", + "测试子三", + "测试子四", + "测试子五", + "内容", + "knowledge_source" + ] + }, + "测试四": { + "description": "", + "properties": [ + "名称", + "测试子一", + "测试子二", + "测试子三", + "内容", + "knowledge_source" + ] + }, + "测试五": { + "description": "", + "properties": [ + "名称", + "测试子一", + "测试子二", + "内容", + "knowledge_source" + ] + }, + "测试六": { + "description": "", + "properties": [ + "名称", + "概述", + "测试子一", + "测试子二", + "内容", + "knowledge_source" + ] + } +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..77c0e14 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,21 @@ +openai +fastapi +aiohttp +uvicorn +python-multipart +langchain +httpx +pymilvus +pypinyin +python-dotenv +tiktoken +pdfplumber +python-docx +markitdown[all] +markdown-it-py +fuzzywuzzy +python-Levenshtein +neo4j +langchain-community +neo4j-graphrag +jieba diff --git a/reset_textlevel.py b/reset_textlevel.py new file mode 100644 index 0000000..e69de29 diff --git a/resetlevel.py b/resetlevel.py new file mode 100644 index 0000000..cae52e7 --- /dev/null +++ b/resetlevel.py @@ -0,0 +1,184 @@ +import copy +import json +import re +import sys +from typing import Any + + +CN_NUM = "\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d\u5341\u767e\u5343\u4e07\u3007\u96f6\u4e24" + +CHAPTER_PATTERN = re.compile(rf"^\s*\u7b2c\s*([{CN_NUM}\d]+)\s*\u7ae0") +CN_LEVEL1_PATTERN = re.compile(rf"^\s*([{CN_NUM}]+)(?=\s|[\u3001\u3002\uff0e.])") + +CASE_LIKE_PATTERN = re.compile(r"^\s*\d+(?:\.|\uff0e)(?!\d|\s|$)") +ARABIC_PATTERN = re.compile( + r"^\s*(\d+(?:\.\d+)*)(?=\s|[\u4e00-\u9fff\u3001\u3002\uff0e]|$|\.(?:\s|$))" +) + + +def has_valid_text_level(item: dict) -> bool: + return "text_level" in item and item.get("text_level") not in (None, "") + + +def parse_heading(text: str): + text = text.strip() + if not text: + return None, None + + if CASE_LIKE_PATTERN.match(text): + return "case_like", None + + if CHAPTER_PATTERN.match(text): + return "level1", None + + if CN_LEVEL1_PATTERN.match(text): + return "level1", None + + match = ARABIC_PATTERN.match(text) + if match: + return "arabic", match.group(1) + + return None, None + + +def arabic_depth(number: str) -> int: + return number.count(".") + 1 + + +def parent_number(number: str) -> str | None: + parts = number.split(".") + if len(parts) <= 1: + return None + return ".".join(parts[:-1]) + + +def collect_headings(data: list) -> list: + headings = [] + + for item in data: + if not isinstance(item, dict): + continue + if item.get("type") != "text": + continue + if not has_valid_text_level(item): + continue + + kind, number = parse_heading(item.get("text", "")) + if kind in {"level1", "arabic", "case_like"}: + headings.append({"kind": kind, "number": number}) + + return headings + + +def is_valid_arabic_hierarchy(numbers: list[str], allow_missing_depth1_parent: bool) -> bool: + seen = set() + has_depth2 = False + has_depth3 = False + + for number in numbers: + depth = arabic_depth(number) + if depth >= 2: + has_depth2 = True + if depth >= 3: + has_depth3 = True + + parent = parent_number(number) + if parent is not None: + parent_depth = arabic_depth(parent) + parent_is_missing_depth1 = allow_missing_depth1_parent and parent_depth == 1 + if parent not in seen and not parent_is_missing_depth1: + return False + + seen.add(number) + + return has_depth2 and has_depth3 + + +def detect_valid_mode(headings: list): + if not headings: + return None + + if any(heading["kind"] == "case_like" for heading in headings): + return None + + first = headings[0] + + if first["kind"] == "arabic": + numbers = [heading["number"] for heading in headings if heading["kind"] == "arabic"] + if numbers and arabic_depth(numbers[0]) == 1: + if is_valid_arabic_hierarchy(numbers, allow_missing_depth1_parent=False): + return "A" + return None + + if first["kind"] == "level1": + numbers = [heading["number"] for heading in headings[1:] if heading["kind"] == "arabic"] + if not numbers: + return None + + first_depth = arabic_depth(numbers[0]) + if first_depth == 2 and is_valid_arabic_hierarchy(numbers, allow_missing_depth1_parent=True): + return "B" + + if first_depth == 1 and is_valid_arabic_hierarchy(numbers, allow_missing_depth1_parent=False): + return "C" + + return None + + +JsonContent = Any + + +def reset_textlevel(json_content: JsonContent) -> JsonContent: + """ + 输入 JSON 内容,返回更新 text_level 后的新 JSON 内容。 + + json_content 可以是已经 json.load/json.loads 后的 Python 对象, + 也可以是 JSON 字符串。函数不会修改原始入参。 + """ + if isinstance(json_content, str): + data = json.loads(json_content) + else: + data = copy.deepcopy(json_content) + + if not isinstance(data, list): + return data + + headings = collect_headings(data) + mode = detect_valid_mode(headings) + + if mode is None: + return data + + for item in data: + if not isinstance(item, dict): + continue + if item.get("type") != "text": + continue + if not has_valid_text_level(item): + continue + + kind, number = parse_heading(item.get("text", "")) + if kind == "level1": + item["text_level"] = 1 + continue + if kind != "arabic": + continue + + depth = arabic_depth(number) + item["text_level"] = depth if mode in {"A", "B"} else depth + 1 + + return data + + + + + +if __name__ == "__main__": + json_file_path = r'E:\ZKYNLP\Hjunproject\project0506\kgrag\163-06A0014-B01001_发动机-维修手册_content_list.json' + with open(json_file_path, "r", encoding="utf-8") as f: + json_content = json.load(f) + result= reset_textlevel(json_content) + + for ins in result[:30]: + print(ins) + # print(json.dumps(result, ensure_ascii=False, indent=2)) diff --git a/result.json b/result.json new file mode 100644 index 0000000..0340b98 --- /dev/null +++ b/result.json @@ -0,0 +1,799 @@ +{ +"163": { + "code": "163", + "name": "JZ贱", + "level": 0, + "children":{ + "00": { + "code": "00", + "name": "总体及综合保障", + "level": 1, + "children":{}}, + "01": { + "code": "01", + "name": "船体结构", + "level": 1, + "children": { + "00":{ + "code": "00", + "name": "船体结构总论", + "level": 2, + "children":{} + }, + "10":{ + "code": "10", + "name": "主船体壳体结构", + "level": 2, + "children":{} + }, + "20":{ + "code": "20", + "name": "船体舱壁结构", + "level": 2, + "children":{} + }, + "30":{ + "code": "30", + "name": "船体甲板及平台结构", + "level": 2, + "children":{} + }, + "40":{ + "code": "40", + "name": "上层建筑(或甲板室)结构", + "level": 2, + "children":{} + }, + "50":{ + "code": "50", + "name": "舷台结构", + "level": 2, + "children":{} + }, + "60":{ + "code": "60", + "name": "专用结构", + "level": 2, + "children":{} + }, + "70":{ + "code": "70", + "name": "复合材料结构", + "level": 2, + "children":{} + }, + "80":{ + "code": "80", + "name": "基座结构", + "level": 2, + "children":{} + } + } + }, + "02": { + "code": "02", + "name": "推进系统", + "level": 1, + "children": { + "00":{ + "code": "00", + "name": "推进系统总论", + "level": 2, + "children":{ + "000":{ + "code": "000", + "name": "动力系统", + "level": 3, + "children":{}} + }}, + "10":{ + "code": "10", + "name": "H能源发生系统", + "level": 2, + "children":{} + }, + "20":{ + "code": "20", + "name": "非H能源发生系统", + "level": 2, + "children":{} + }, + "30":{ + "code": "30", + "name": "动力机组及推进装置", + "level": 2, + "children":{ + } + }, + "40":{ + "code": "40", + "name": "功率传递系统和推进器", + "level": 2, + "children":{ + } + }, + "50":{ + "code": "50", + "name": "推进保障系统", + "level": 2, + "children":{ + "006":{ + "code": "006", + "name": "电动高压空气缩机组", + "level": 3, + "children":{}}, + "007":{ + "code": "007", + "name": "电动中压空气压缩机组", + "level": 3, + "children":{}}, + "008":{ + "code": "008", + "name": "956柴油机排气消音器", + "level": 3, + "children":{}}, + "009":{ + "code": "009", + "name": "956柴油机进气消音器", + "level": 3, + "children":{}}, + "010":{ + "code": "010", + "name": "燃气轮机燃油增压泵组", + "level": 3, + "children":{}} + + } + }, + "60":{ + "code": "60", + "name": "推进监测和控制系统", + "level": 2, + "children":{ + } + } + } + }, + "03": { + "code": "03", + "name": "电力系统", + "level": 1, + "children": { + "00":{ + "code": "00", + "name": "电力系统总论", + "level": 2, + "children":{ + "000":{ + "code": "000", + "name": "电力系统", + "level": 3, + "children":{}} + } + }, + "10":{ + "code": "10", + "name": "供电系统", + "level": 2, + "children":{ + "003":{ + "code": "003", + "name": "发电机", + "level": 3, + "children":{}}, + "004":{ + "code": "004", + "name": "柴油机", + "level": 3, + "children":{}}, + "038":{ + "code": "038", + "name": "1250kw柴油发电机组箱装体", + "level": 3, + "children":{}}, + "052":{ + "code": "052", + "name": "三相无刷同步发电机", + "level": 3, + "children":{}}, + "053":{ + "code": "053", + "name": "电站分系统", + "level": 3, + "children":{}} + } + }, + "20":{ + "code": "20", + "name": "配电系统", + "level": 2, + "children":{ + "005":{ + "code": "005", + "name": "主配电板", + "level": 3, + "children":{}}, + "010":{ + "code": "010", + "name": "配电中心", + "level": 3, + "children":{}}, + "011":{ + "code": "011", + "name": "武器配电板", + "level": 3, + "children":{}}, + "012":{ + "code": "012", + "name": "两舷电源转换控制箱", + "level": 3, + "children":{}}, + "015":{ + "code": "015", + "name": "事故电力网设备", + "level": 3, + "children":{}}, + "022":{ + "code": "022", + "name": "JPD1、JPD6型贱用分配电箱", + "level": 3, + "children":{}}, + "023":{ + "code": "023", + "name": "分配电箱(JDP3)", + "level": 3, + "children":{}}, + "025":{ + "code": "025", + "name": "轻型变压器", + "level": 3, + "children":{}}, + "032":{ + "code": "032", + "name": "组合起动器", + "level": 3, + "children":{}}, + "033":{ + "code": "033", + "name": "两舷电源转换配电装置", + "level": 3, + "children":{}}, + "034":{ + "code": "034", + "name": "岸电联接箱", + "level": 3, + "children":{}}, + "039":{ + "code": "039", + "name": "磁力起动器", + "level": 3, + "children":{}}, + "047":{ + "code": "047", + "name": "磁力起动器(20A)", + "level": 3, + "children":{}}, + "054":{ + "code": "054", + "name": "配电系统", + "level": 3, + "children":{}}, + "055":{ + "code": "055", + "name": "岸电箱", + "level": 3, + "children":{}}, + "057":{ + "code": "057", + "name": "电力接触器箱", + "level": 3, + "children":{}} + } + }, + "30":{ + "code": "30", + "name": "照明系统", + "level": 2, + "children":{ + "030":{ + "code": "030", + "name": "灯光管制设备", + "level": 3, + "children":{}}, + "031":{ + "code": "031", + "name": "低照度照明转换装置", + "level": 3, + "children":{}}, + "040":{ + "code": "040", + "name": "独立式应急灯集中放电装置", + "level": 3, + "children":{}}, + "046":{ + "code": "046", + "name": "机库照明开关箱", + "level": 3, + "children":{}}, + "049":{ + "code": "049", + "name": "彩灯系统", + "level": 3, + "children":{}}, + "051":{ + "code": "051", + "name": "通道角灯控制装置", + "level": 3, + "children":{}}, + "059":{ + "code": "059", + "name": "照明系统", + "level": 3, + "children":{}}, + "060":{ + "code": "060", + "name": "照明变压器", + "level": 3, + "children":{}}, + "061":{ + "code": "061", + "name": "区域照明接触器箱", + "level": 3, + "children":{}}, + "062":{ + "code": "062", + "name": "独立式应急灯维护管理装置", + "level": 3, + "children":{}}, + "063":{ + "code": "063", + "name": "外部照明控制装置", + "level": 3, + "children":{}} + } + }, + "40":{ + "code": "40", + "name": "电气监测和控制系统", + "level": 2, + "children":{ + "002":{ + "code": "002", + "name": "电力监控分系统", + "level": 3, + "children":{}}, + "017":{ + "code": "017", + "name": "电网检测装置", + "level": 3, + "children":{}}, + "018":{ + "code": "018", + "name": "直流绝缘检测装置", + "level": 3, + "children":{}}, + "019":{ + "code": "019", + "name": "交流绝缘检测装置", + "level": 3, + "children":{}}, + "020":{ + "code": "020", + "name": "电网绝缘状态综合显控仪", + "level": 3, + "children":{}}, + "045":{ + "code": "045", + "name": "电网监测接线箱", + "level": 3, + "children":{}} + } + }, + "50":{ + "code": "50", + "name": "发电机组保障系统", + "level": 2, + "children":{} + }, + "60":{ + "code": "60", + "name": "电缆敷设", + "level": 2, + "children":{} + }, + "70":{ + "code": "70", + "name": "综合电缆系统", + "level": 2, + "children":{ + } + }, + "80":{ + "code": "80", + "name": "电场、磁场防护系统", + "level": 2, + "children":{ + "016":{ + "code": "016", + "name": "消磁系统", + "level": 3, + "children":{ + "0161":{ + "code": "0161", + "name": "消磁变流装置", + "level": 4, + "children":{}}, + "0162":{ + "code": "0162", + "name": "消磁接线箱", + "level": 4, + "children":{}}, + "0163":{ + "code": "0163", + "name": "消磁配电板", + "level": 4, + "children":{}}, + "0164":{ + "code": "0164", + "name": "其他", + "level": 4, + "children":{}} + }} + } + }, + "90":{ + "code": "90", + "name": "专用项目03", + "level": 2, + "children":{ + "013":{ + "code": "013", + "name": "操舵仪", + "level": 3, + "children":{}}, + "014":{ + "code": "014", + "name": "舵传令钟", + "level": 3, + "children":{}}, + "029":{ + "code": "029", + "name": "阴极保护装置", + "level": 3, + "children":{}}, + "036":{ + "code": "036", + "name": "电工试验板", + "level": 3, + "children":{}} + } + } + } + }, + "04": { + "code": "04", + "name": "作战系统", + "level": 1, + "children": { + "00":{ + "code": "00", + "name": "作战系统总论", + "level": 2, + "children":{ + "000":{ + "code": "000", + "name": "作战系统", + "level": 3, + "children":{}} + } + }, + "10":{ + "code": "10", + "name": "信息感知", + "level": 2, + "children":{ + }, + "20":{ + "code": "20", + "name": "本贱作战指挥控制", + "level": 2, + "children":{ + } + }, + "30":{ + "code": "30", + "name": "编队作战指挥", + "level": 2, + "children":{ + "001":{ + "code": "001", + "name": "编队作战指挥系统", + "level": 3, + "children":{}}, + "002":{ + "code": "002", + "name": "HZBJ-2B编队指控设备", + "level": 3, + "children":{}}, + "003":{ + "code": "003", + "name": "编队模拟训练设备", + "level": 3, + "children":{}}, + "004":{ + "code": "004", + "name": "编队记录设备", + "level": 3, + "children":{}} + } + }, + "40":{ + "code": "40", + "name": "武器控制及保障", + "level": 2, + "children":{ + } + }, + "50":{ + "code": "50", + "name": "综合通信", + "level": 2, + "children":{ + } + } + } + }, + "05": { + "code": "05", + "name": "船舶保障系统", + "level": 1, + "children": {} + }, + "06": { + "code": "06", + "name": "航空保障系统", + "level": 1, + "children": {} + }, + "07": { + "code": "07", + "name": "特种保障系统", + "level": 1, + "children": {} + }, + "08": { + "code": "08", + "name": "船舶装置", + "level": 1, + "children": {} + }, + "09": { + "code": "09", + "name": "专用装备/系统", + "level": 1, + "children": {} + }, + "10": { + "code": "10", + "name": "训练系统", + "level": 1, + "children": {} + }, + "11": { + "code": "11", + "name": "测试、维修试和保障系统", + "level": 1, + "children": {} + } + }, + "06": { + "code": "06", + "name": "汽车配件", + "level": 1, + "children":{ + "A0":{ + "code": "A0", + "name": "汽车主配件", + "level": 2, + "children":{ + "B01001":{ + "code": "B01001", + "name": "发动机", + "level": 3, + "children":{}}, + "B01002":{ + "code": "B01002", + "name": "螺旋桨", + "level": 3, + "children":{}}, + "B01003":{ + "code": "B01003", + "name": "雷达", + "level": 3, + "children":{}}, + "B01005":{ + "code": "B01005", + "name": "声呐", + "level": 3, + "children":{}}, + "014":{ + "code": "014", + "name": "螺旋桨", + "level": 3, + "children":{}}, + "015":{ + "code": "015", + "name": "船舶主发动机", + "level": 3, + "children":{}}, + "B01006":{ + "code": "B01006", + "name": "马达", + "level": 3, + "children":{}}, + "B01007":{ + "code": "B01007", + "name": "泵", + "level": 3, + "children":{}}, + "B01008":{ + "code": "B01008", + "name": "阀门", + "level": 3, + "children":{}}, + "B01009":{ + "code": "B01009", + "name": "变速箱", + "level": 3, + "children":{}}, + "B01010":{ + "code": "B01010", + "name": "液压系统", + "level": 3, + "children":{}}, + "B01011":{ + "code": "B01011", + "name": "发电机", + "level": 3, + "children":{}}, + "B01012":{ + "code": "B01012", + "name": "空压机", + "level": 3, + "children":{}}, + "B01013":{ + "code": "B01013", + "name": "冷却系统", + "level": 3, + "children":{}}, + "B01014":{ + "code": "B01014", + "name": "传动轴", + "level": 3, + "children":{}}, + "B01015":{ + "code": "B01015", + "name": "制动器", + "level": 3, + "children":{}} + }} +} +} +} +}, +"101":{ + "code":"101", + "name":"nc贱", + "level":0, + "children":{ + "04": { + "code": "04", + "name": "作战系统", + "level": 1, + "children":{ + "40":{"code": "40", + "name": "武器控制及保障", + "level": 2, + "children":{ + "011":{"code": "011", + "name": "AAAzzz型跟踪雷达", + "level": 3, + "children":{}}} + } + }} + } +}, +"122":{ + "code": "122", + "name": "122舰", + "level": 0, + "children":{ + "06":{ + "code": "06", + "name": "设备手册", + "level": 1, + "children":{ + "A0014":{ + "code": "A0014", + "name": "06A0014", + "level": 2, + "children":{ + "B01001":{ + "code": "B01001", + "name": "发动机", + "level": 3, + "children":{}}, + "B01002":{ + "code": "B01002", + "name": "螺旋桨", + "level": 3, + "children":{}}, + "B01003":{ + "code": "B01003", + "name": "雷达", + "level": 3, + "children":{}}, + "B01005":{ + "code": "B01005", + "name": "声呐", + "level": 3, + "children":{}}, + "B01006":{ + "code": "B01006", + "name": "马达", + "level": 3, + "children":{}}, + "B01007":{ + "code": "B01007", + "name": "泵", + "level": 3, + "children":{}}, + "B01008":{ + "code": "B01008", + "name": "阀门", + "level": 3, + "children":{}}, + "B01009":{ + "code": "B01009", + "name": "变速箱", + "level": 3, + "children":{}}, + "B01010":{ + "code": "B01010", + "name": "液压系统", + "level": 3, + "children":{}}, + "B01011":{ + "code": "B01011", + "name": "发电机", + "level": 3, + "children":{}}, + "B01012":{ + "code": "B01012", + "name": "空压机", + "level": 3, + "children":{}}, + "B01013":{ + "code": "B01013", + "name": "冷却系统", + "level": 3, + "children":{}}, + "B01014":{ + "code": "B01014", + "name": "传动轴", + "level": 3, + "children":{}}, + "B01015":{ + "code": "B01015", + "name": "制动器", + "level": 3, + "children":{}} + } + } + } + } + } +} +} + + diff --git a/ship_xinghao.json b/ship_xinghao.json new file mode 100644 index 0000000..bb16ca8 --- /dev/null +++ b/ship_xinghao.json @@ -0,0 +1,104 @@ +[ + { + "id": 1, + "model_name": "055型驱逐舰", + "hull_number": 102, + "ship_name": "拉萨舰" + }, + { + "id": 2, + "model_name": "055型驱逐舰", + "hull_number": 103, + "ship_name": "鞍山舰" + }, + { + "id": 3, + "model_name": "055型驱逐舰", + "hull_number": 104, + "ship_name": "无锡舰" + }, + { + "id": 4, + "model_name": "055型驱逐舰", + "hull_number": 105, + "ship_name": "大连舰" + }, + { + "id": 5, + "model_name": "055型驱逐舰", + "hull_number": 106, + "ship_name": "延安舰" + }, + { + "id": 6, + "model_name": "055型驱逐舰", + "hull_number": 107, + "ship_name": "遵义舰" + }, + { + "id": 7, + "model_name": "055型驱逐舰", + "hull_number": 108, + "ship_name": "咸阳舰" + }, + { + "id": 8, + "model_name": "052D型驱逐舰", + "hull_number": 172, + "ship_name": "昆明舰" + }, + { + "id": 9, + "model_name": "052D型驱逐舰", + "hull_number": 173, + "ship_name": "长沙舰" + }, + { + "id": 10, + "model_name": "052D型驱逐舰", + "hull_number": 174, + "ship_name": "合肥舰" + }, + { + "id": 11, + "model_name": "052D型驱逐舰", + "hull_number": 175, + "ship_name": "银川舰" + }, + { + "id": 12, + "model_name": "052D型驱逐舰", + "hull_number": 163, + "ship_name": "南昌舰" + }, + { + "id": 13, + "model_name": "054A型护卫舰", + "hull_number": 529, + "ship_name": "舟山舰" + }, + { + "id": 14, + "model_name": "054A型护卫舰", + "hull_number": 530, + "ship_name": "徐州舰" + }, + { + "id": 15, + "model_name": "054A型护卫舰", + "hull_number": 547, + "ship_name": "临沂舰" + }, + { + "id": 16, + "model_name": "054A型护卫舰", + "hull_number": 568, + "ship_name": "衡阳舰" + }, + { + "id": 17, + "model_name": "054A型护卫舰", + "hull_number": 570, + "ship_name": "黄山舰" + } +] \ No newline at end of file diff --git a/simsun.ttf b/simsun.ttf new file mode 100644 index 0000000..e0115ab Binary files /dev/null and b/simsun.ttf differ diff --git a/start.sh b/start.sh new file mode 100644 index 0000000..2ba6d08 --- /dev/null +++ b/start.sh @@ -0,0 +1,3 @@ +# start.sh +#!/bin/bash +uvicorn app:app --host 0.0.0.0 --port 9085 --workers 4 2>&1 | tee /var/log/app.log diff --git a/stop.sh b/stop.sh new file mode 100644 index 0000000..37d9c70 --- /dev/null +++ b/stop.sh @@ -0,0 +1,3 @@ +#!/bin/bash +pkill -f "uvicorn app:app" +echo "服务已停止" diff --git a/suzhu-kgrag_migration/00_export_from_source_container.sh b/suzhu-kgrag_migration/00_export_from_source_container.sh new file mode 100644 index 0000000..ad318e8 --- /dev/null +++ b/suzhu-kgrag_migration/00_export_from_source_container.sh @@ -0,0 +1,92 @@ +#!/bin/bash +# ============================================================================= +# Step 0: Export kgrag migration data from the SOURCE host's kgrag container. +# Run this script on the SOURCE host, for example 192.168.0.164. +# It only creates a tar.gz package and copies it out of the container. +# It does not modify Neo4j, files, or application data. +# ============================================================================= + +set -euo pipefail + +KGRAG_CONTAINER="${KGRAG_CONTAINER:-kgrag}" +CONTAINER_APP_DIR="${CONTAINER_APP_DIR:-/app}" +CONTAINER_EXPORT_DIR="${CONTAINER_EXPORT_DIR:-/tmp/kgrag_export}" +HOST_EXPORT_DIR="${HOST_EXPORT_DIR:-/home/workspace/kgrag_export}" +EXPORT_NAME="${EXPORT_NAME:-kgrag_data_$(date +%Y%m%d%H%M%S).tar.gz}" + +ITEMS=( + files + kg_output + kg_snapshot.json + fault_wenjian + entity_registry.json + tree_data.json +) + +echo "==========================================" +echo " kgrag source export" +echo " container: ${KGRAG_CONTAINER}" +echo " app dir: ${CONTAINER_APP_DIR}" +echo " host out: ${HOST_EXPORT_DIR}" +echo " package: ${EXPORT_NAME}" +echo "==========================================" + +if ! docker inspect "${KGRAG_CONTAINER}" >/dev/null 2>&1; then + echo "ERROR: container not found: ${KGRAG_CONTAINER}" >&2 + echo "Run: docker ps | grep kgrag" >&2 + exit 1 +fi + +mkdir -p "${HOST_EXPORT_DIR}" + +echo "[1/4] Checking source items inside container..." +docker exec "${KGRAG_CONTAINER}" bash -lc " +set -e +cd '${CONTAINER_APP_DIR}' +for item in ${ITEMS[*]}; do + if [ -e \"\$item\" ]; then + du -sh \"\$item\" 2>/dev/null || ls -ld \"\$item\" + else + echo \"WARN missing: \$item\" + fi +done +" + +echo "[2/4] Creating tar.gz inside container..." +docker exec "${KGRAG_CONTAINER}" bash -lc " +set -euo pipefail +mkdir -p '${CONTAINER_EXPORT_DIR}' +cd '${CONTAINER_APP_DIR}' +rm -f '${CONTAINER_EXPORT_DIR}/${EXPORT_NAME}' '${CONTAINER_EXPORT_DIR}/tar_error.log' +EXISTING=() +for item in ${ITEMS[*]}; do + if [ -e \"\$item\" ]; then + EXISTING+=(\"\$item\") + else + echo \"WARN missing: \$item\" >> '${CONTAINER_EXPORT_DIR}/tar_error.log' + fi +done +if [ \"\${#EXISTING[@]}\" -eq 0 ]; then + echo 'ERROR: no export items found' >&2 + exit 1 +fi +tar -czf '${CONTAINER_EXPORT_DIR}/${EXPORT_NAME}' \"\${EXISTING[@]}\" 2>>'${CONTAINER_EXPORT_DIR}/tar_error.log' +ls -lh '${CONTAINER_EXPORT_DIR}/${EXPORT_NAME}' +" + +echo "[3/4] docker cp package to host..." +docker cp "${KGRAG_CONTAINER}:${CONTAINER_EXPORT_DIR}/${EXPORT_NAME}" "${HOST_EXPORT_DIR}/${EXPORT_NAME}" +docker cp "${KGRAG_CONTAINER}:${CONTAINER_EXPORT_DIR}/tar_error.log" "${HOST_EXPORT_DIR}/tar_error_${EXPORT_NAME%.tar.gz}.log" 2>/dev/null || true + +echo "[4/4] Verifying package on host..." +ls -lh "${HOST_EXPORT_DIR}/${EXPORT_NAME}" +tar -tzf "${HOST_EXPORT_DIR}/${EXPORT_NAME}" | sed -n '1,30p' +COUNT=$(tar -tzf "${HOST_EXPORT_DIR}/${EXPORT_NAME}" | wc -l) +echo "archive entries: ${COUNT}" + +echo "" +echo "DONE. Next copy this file to target host, for example:" +echo "scp ${HOST_EXPORT_DIR}/${EXPORT_NAME} root@192.168.1.108:/home/workspace/kgrag_import/" +echo "" +echo "If tar_error log exists, inspect it:" +echo "ls -lh ${HOST_EXPORT_DIR}/tar_error_${EXPORT_NAME%.tar.gz}.log 2>/dev/null || true" diff --git a/suzhu-kgrag_migration/01_copy_files.sh b/suzhu-kgrag_migration/01_copy_files.sh new file mode 100644 index 0000000..0312a1f --- /dev/null +++ b/suzhu-kgrag_migration/01_copy_files.sh @@ -0,0 +1,80 @@ +#!/bin/bash +# ============================================================================= +# 步骤 1:从原数据机拉取所有文件到迁移目标机(全量版) +# 在【迁移目标机】上执行本脚本 +# 配置项请修改 migration_config.sh +# ============================================================================= + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" + +set -e + +echo "==========================================" +echo " kgrag 文件迁移脚本 - 步骤 1(全量)" +echo " 原数据机: ${SRC_SERVER}:${SRC_APP_DIR}" +echo " 目标代码目录: ${DST_CODE_DIR}" +echo " 目标文件目录: ${DST_FILES_DIR}" +echo "==========================================" + +mkdir -p "${DST_CODE_DIR}" +mkdir -p "${DST_FILES_DIR}/uploads_v1" +mkdir -p "${DST_CODE_DIR}/kg_output" +mkdir -p "${DST_CODE_DIR}/fault_wenjian" + +echo "" +echo "[1/6] 迁移原始文档目录 → ${DST_FILES_DIR}/ ..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + --exclude="uploads_v1/" \ + "${SRC_SERVER}:${SRC_APP_DIR}/files/" \ + "${DST_FILES_DIR}/" + +echo "" +echo "[2/6] 迁移高亮注释 PDF → ${DST_FILES_DIR}/uploads_v1/ ..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/files/uploads_v1/" \ + "${DST_FILES_DIR}/uploads_v1/" + +echo "" +echo "[3/6] 迁移抽取结果 JSON → ${DST_CODE_DIR}/kg_output/ ..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/kg_output/" \ + "${DST_CODE_DIR}/kg_output/" + +echo "" +echo "[4/6] 迁移 kg_snapshot.json → ${DST_CODE_DIR}/ ..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/kg_snapshot.json" \ + "${DST_CODE_DIR}/kg_snapshot.json" + +echo "" +echo "[5/6] 迁移 fault_wenjian/ → ${DST_CODE_DIR}/fault_wenjian/ ..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/fault_wenjian/" \ + "${DST_CODE_DIR}/fault_wenjian/" + +echo "" +echo "[6/6] 迁移代码文件 → ${DST_CODE_DIR}/ ..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + --exclude="__pycache__/" \ + --exclude="*.pyc" \ + --exclude="*.log" \ + --exclude="files/" \ + --exclude="kg_output/" \ + --exclude="kg_snapshot.json" \ + --exclude="fault_wenjian/" \ + --exclude="mineru_output/" \ + "${SRC_SERVER}:${SRC_APP_DIR}/" \ + "${DST_CODE_DIR}/" + +echo "" +echo "==========================================" +echo " 文件迁移完成!" +echo " 下一步:执行 bash 02_load_neo4j.sh" +echo "==========================================" diff --git a/suzhu-kgrag_migration/01_copy_files_by_ship.sh b/suzhu-kgrag_migration/01_copy_files_by_ship.sh new file mode 100644 index 0000000..4139b60 --- /dev/null +++ b/suzhu-kgrag_migration/01_copy_files_by_ship.sh @@ -0,0 +1,100 @@ +#!/bin/bash +# ============================================================================= +# 步骤 1:从原数据机拉取指定舰船号的文件到迁移目标机(按舰版) +# 在【迁移目标机】上执行本脚本 +# 配置项(TARGET_SHIPS 等)请修改 migration_config.sh +# ============================================================================= + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" + +set -e + +if [ -z "$TARGET_SHIPS" ]; then + echo "错误:migration_config.sh 中 TARGET_SHIPS 未设置。" + echo "如需拉取全部文件,请使用 01_copy_files.sh。" + exit 1 +fi + +# 构造 rsync 舰船过滤参数 +SHIP_FILTERS=() +for ship in $TARGET_SHIPS; do + SHIP_FILTERS+=("--include=${ship}-*") +done +SHIP_FILTERS+=("--exclude=*") + +echo "==========================================" +echo " kgrag 文件迁移脚本 - 步骤 1(按舰版)" +echo " 原数据机: ${SRC_SERVER}:${SRC_APP_DIR}" +echo " 目标代码目录: ${DST_CODE_DIR}" +echo " 目标文件目录: ${DST_FILES_DIR}" +echo " 目标舰船号: ${TARGET_SHIPS}" +echo "==========================================" + +mkdir -p "${DST_CODE_DIR}" +mkdir -p "${DST_FILES_DIR}/uploads_v1" +mkdir -p "${DST_CODE_DIR}/kg_output" +mkdir -p "${DST_CODE_DIR}/fault_wenjian" + +echo "" +echo "[1/6] 迁移原始文档 → ${DST_FILES_DIR}/ (仅 ${TARGET_SHIPS})..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + --exclude="uploads_v1/" \ + "${SHIP_FILTERS[@]}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/files/" \ + "${DST_FILES_DIR}/" + +echo "" +echo "[2/6] 迁移高亮注释 PDF → ${DST_FILES_DIR}/uploads_v1/ (全量)..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/files/uploads_v1/" \ + "${DST_FILES_DIR}/uploads_v1/" + +echo "" +echo "[3/6] 迁移抽取结果 JSON → ${DST_CODE_DIR}/kg_output/ (仅 ${TARGET_SHIPS})..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + "${SHIP_FILTERS[@]}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/kg_output/" \ + "${DST_CODE_DIR}/kg_output/" + +echo "" +echo "[4/6] 迁移 kg_snapshot.json → ${DST_CODE_DIR}/ (全量)..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/kg_snapshot.json" \ + "${DST_CODE_DIR}/kg_snapshot.json" + +echo "" +echo "[5/6] 迁移 fault_wenjian/ → ${DST_CODE_DIR}/fault_wenjian/ (仅 ${TARGET_SHIPS})..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + "${SHIP_FILTERS[@]}" \ + "${SRC_SERVER}:${SRC_APP_DIR}/fault_wenjian/" \ + "${DST_CODE_DIR}/fault_wenjian/" + +echo "" +echo "[6/6] 迁移代码文件 → ${DST_CODE_DIR}/ ..." +rsync -avz --progress ${RSYNC_EXTRA} \ + -e "ssh -p ${SRC_SSH_PORT}" \ + --exclude="__pycache__/" \ + --exclude="*.pyc" \ + --exclude="*.log" \ + --exclude="files/" \ + --exclude="kg_output/" \ + --exclude="kg_snapshot.json" \ + --exclude="fault_wenjian/" \ + --exclude="mineru_output/" \ + "${SRC_SERVER}:${SRC_APP_DIR}/" \ + "${DST_CODE_DIR}/" + +echo "" +echo "==========================================" +echo " 文件迁移完成!已拉取舰船号: ${TARGET_SHIPS}" +echo "" +echo " 下一步:" +echo " 1. python split_by_ship.py" +echo " 2. bash 02_load_neo4j_by_ship.sh" +echo "==========================================" diff --git a/suzhu-kgrag_migration/02_load_neo4j.sh b/suzhu-kgrag_migration/02_load_neo4j.sh new file mode 100644 index 0000000..e8b7e34 --- /dev/null +++ b/suzhu-kgrag_migration/02_load_neo4j.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# ============================================================================= +# 步骤 2:将全量 kg_snapshot.json 导入迁移目标机的 Neo4j +# 在【迁移目标机】上执行本脚本 +# 配置项请修改 migration_config.sh +# ============================================================================= + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" + +SNAPSHOT_PATH="${DST_CODE_DIR}/kg_snapshot.json" +PYTHON="docker exec ${KGRAG_CONTAINER} python3" + +set -e + +echo "==========================================" +echo " kgrag Neo4j 导入脚本 - 步骤 2(全量)" +echo " 快照文件: ${SNAPSHOT_PATH}" +echo "==========================================" + +if [ ! -f "${SNAPSHOT_PATH}" ]; then + echo "错误:快照文件不存在: ${SNAPSHOT_PATH}" + echo "请先执行步骤 1 迁移文件。" + exit 1 +fi + +echo "" +echo "快照文件大小: $(du -sh ${SNAPSHOT_PATH} | cut -f1)" +echo "" + +cd "${DST_CODE_DIR}" +${PYTHON} ${CONTAINER_APP_DIR}/batch_kg_build.py \ + --phase load_snapshot \ + --snapshot_path "${CONTAINER_APP_DIR}/kg_snapshot.json" + +echo "" +echo "==========================================" +echo " Neo4j 导入完成!" +echo " 下一步:执行 bash 02b_rebuild_index.sh" +echo "==========================================" diff --git a/suzhu-kgrag_migration/02_load_neo4j_by_ship.sh b/suzhu-kgrag_migration/02_load_neo4j_by_ship.sh new file mode 100644 index 0000000..dc1c486 --- /dev/null +++ b/suzhu-kgrag_migration/02_load_neo4j_by_ship.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# ============================================================================= +# 步骤 2:将指定舰船的 kg_snapshot.json 导入迁移目标机的 Neo4j(按舰版) +# 在【迁移目标机】上执行本脚本 +# 配置项(IMPORT_SHIP 等)请修改 migration_config.sh +# ============================================================================= + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" + +PYTHON="python3" + +set -e + +if [ -z "$IMPORT_SHIP" ]; then + echo "错误:migration_config.sh 中 IMPORT_SHIP 未设置。" + echo "如需导入全量快照,请使用 02_load_neo4j.sh。" + exit 1 +fi + +SNAPSHOT_PATH="${DST_CODE_DIR}/migration_split/${IMPORT_SHIP}/kg_snapshot.json" + +echo "==========================================" +echo " kgrag Neo4j 导入脚本 - 步骤 2(按舰版)" +echo " 导入舰船: ${IMPORT_SHIP}" +echo " 快照文件: ${SNAPSHOT_PATH}" +echo "==========================================" + +if [ ! -f "${SNAPSHOT_PATH}" ]; then + echo "错误:快照文件不存在: ${SNAPSHOT_PATH}" + echo "请先运行 split_by_ship.py 生成按舰快照。" + exit 1 +fi + +echo "" +echo "快照文件大小: $(du -sh ${SNAPSHOT_PATH} | cut -f1)" +echo "" + +cd "${DST_CODE_DIR}" +${PYTHON} batch_kg_build.py \ + --phase load_snapshot \ + --snapshot_path "${SNAPSHOT_PATH}" + +echo "" +echo "==========================================" +echo " Neo4j 导入完成!已导入: ${IMPORT_SHIP}" +echo " 下一步:执行 bash 02b_rebuild_index.sh" +echo "==========================================" diff --git a/suzhu-kgrag_migration/02b_rebuild_index.sh b/suzhu-kgrag_migration/02b_rebuild_index.sh new file mode 100644 index 0000000..bfd0d28 --- /dev/null +++ b/suzhu-kgrag_migration/02b_rebuild_index.sh @@ -0,0 +1,87 @@ +#!/bin/bash +# ============================================================================= +# 步骤 2b:迁移后重建 Neo4j 索引(向量索引 + 全文索引 + 混合索引) +# 在【迁移目标机】上执行本脚本 +# 必须在 02_load_neo4j.sh 或 02_load_neo4j_by_ship.sh 之后执行 +# 配置项请修改 migration_config.sh +# ============================================================================= + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" + +set -e + +INDEXING_URL="http://localhost:${DST_KGRAG_PORT}/neo4j_indexing" + +echo "==========================================" +echo " kgrag 索引重建脚本 - 步骤 2b" +echo " 接口地址: ${INDEXING_URL}" +echo " Neo4j: ${NEO4J_URI}" +echo "==========================================" +echo "" +echo "正在调用索引重建接口(可能需要几分钟)..." +echo "" + +RESPONSE=$(curl -s -w "\n%{http_code}" -X POST "${INDEXING_URL}" \ + -H "Content-Type: application/json" \ + -d "{ + \"neo4j_uri\": \"${NEO4J_URI}\", + \"neo4j_username\": \"${NEO4J_USER}\", + \"neo4j_password\": \"${NEO4J_PASSWORD}\", + \"force_refresh\": true + }" \ + --max-time 300) + +HTTP_CODE=$(echo "$RESPONSE" | tail -n1) +BODY=$(echo "$RESPONSE" | sed '$d') + +echo "HTTP 状态码: ${HTTP_CODE}" +echo "返回内容: ${BODY}" + +if [ "$HTTP_CODE" != "200" ]; then + echo "" + echo " [ERROR] 接口调用失败,HTTP ${HTTP_CODE}" + echo " 请确认 kgrag 容器已启动,端口 ${DST_KGRAG_PORT} 可访问" + exit 1 +fi + +# 检查 hybrid_index_status(HTTP 200 但混合索引可能静默失败返回 207) +HYBRID_STATUS=$(echo "$BODY" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('data',{}).get('hybrid_index_status','unknown'))" 2>/dev/null || echo "unknown") +if [ "$HYBRID_STATUS" != "success" ]; then + echo " [WARN] hybrid_index_status=${HYBRID_STATUS},混合索引未由接口建立,将由下方兜底命令补建" +else + echo " [OK] /neo4j_indexing 全部成功(含混合索引)" +fi + +# ---------------------------------------------------------- +# 补建混合索引(build_hybrid_indexes 可能静默失败,在此兜底) +# 对应 neo4j_indexing.py 中 VECTOR_INDEX_NAME / FULLTEXT_INDEX_NAME / +# FULLTEXT_FIELD_INDEX_NAME 三个常量 +# ---------------------------------------------------------- +echo "" +echo "补建混合索引(global_searchable_* 系列)..." + +NEO4J_CONTAINER="neo4j" +NEO4J_PASS="${NEO4J_PASSWORD}" + +docker exec "${NEO4J_CONTAINER}" cypher-shell \ + -u "${NEO4J_USER}" -p "${NEO4J_PASS}" \ + "CREATE VECTOR INDEX global_searchable_embedding IF NOT EXISTS + FOR (n:Searchable) ON (n.embedding) + OPTIONS {indexConfig: {\`vector.dimensions\`: 1024, \`vector.similarity_function\`: 'cosine'}}" + +docker exec "${NEO4J_CONTAINER}" cypher-shell \ + -u "${NEO4J_USER}" -p "${NEO4J_PASS}" \ + "CREATE FULLTEXT INDEX global_searchable_content_search IF NOT EXISTS + FOR (n:Searchable) ON EACH [n.\`名称\`]" + +docker exec "${NEO4J_CONTAINER}" cypher-shell \ + -u "${NEO4J_USER}" -p "${NEO4J_PASS}" \ + "CREATE FULLTEXT INDEX global_searchable_fulltext_search IF NOT EXISTS + FOR (n:Searchable) ON EACH [n.fulltext]" + +echo "" +echo "==========================================" +echo " 索引重建完成(含混合索引兜底)!" +echo " 下一步:执行 python 03_update_neo4j_urls.py" +echo "==========================================" diff --git a/suzhu-kgrag_migration/03_run_in_container.sh b/suzhu-kgrag_migration/03_run_in_container.sh new file mode 100644 index 0000000..f52d397 --- /dev/null +++ b/suzhu-kgrag_migration/03_run_in_container.sh @@ -0,0 +1,7 @@ +#!/bin/bash +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" +echo "==========================================" +echo " 步骤 3:在 ${KGRAG_CONTAINER} 容器内更新 Neo4j URL" +echo "==========================================" +docker exec ${KGRAG_CONTAINER} python3 ${CONTAINER_APP_DIR}/suzhu-kgrag_migration/03_update_neo4j_urls.py diff --git a/suzhu-kgrag_migration/03_update_neo4j_urls.py b/suzhu-kgrag_migration/03_update_neo4j_urls.py new file mode 100644 index 0000000..c5d3f5c --- /dev/null +++ b/suzhu-kgrag_migration/03_update_neo4j_urls.py @@ -0,0 +1,99 @@ +#!/usr/bin/env python3 +""" +步骤 3:批量更新 Neo4j 中所有节点 knowledge_source 字段里的旧服务 URL +在【迁移目标机】上执行本脚本 +配置项请修改 migration_config.py +""" + +import json +import sys +import os + +sys.path.insert(0, os.path.dirname(__file__)) +from migration_config import OLD_BASE_URL, NEW_BASE_URL, NEO4J_URI, NEO4J_USER, NEO4J_PASSWORD + +from neo4j import GraphDatabase + + +def update_urls(driver, old_url: str, new_url: str): + updated = 0 + skipped = 0 + errors = 0 + + with driver.session() as session: + result = session.run( + "MATCH (n) WHERE n.knowledge_source IS NOT NULL " + "RETURN id(n) AS node_id, n.名称 AS name, n.knowledge_source AS ks" + ) + records = list(result) + + print(f"共找到 {len(records)} 个含 knowledge_source 的节点") + + for record in records: + node_id = record["node_id"] + name = record["name"] + ks_raw = record["ks"] + + try: + if isinstance(ks_raw, str): + ks_list = json.loads(ks_raw) + elif isinstance(ks_raw, list): + ks_list = ks_raw + else: + skipped += 1 + continue + except json.JSONDecodeError as e: + print(f" [WARN] 节点 {name}(id={node_id}) JSON 解析失败: {e}") + errors += 1 + continue + + has_old_url = any( + isinstance(item, dict) and old_url in item.get("url", "") + for item in ks_list + ) + if not has_old_url: + skipped += 1 + continue + + for item in ks_list: + if isinstance(item, dict) and "url" in item: + item["url"] = item["url"].replace(old_url, new_url) + + new_ks_str = json.dumps(ks_list, ensure_ascii=False) + + with driver.session() as session: + session.run( + "MATCH (n) WHERE id(n) = $node_id SET n.knowledge_source = $ks", + node_id=node_id, + ks=new_ks_str, + ) + + print(f" [OK] 更新节点: {name}") + updated += 1 + + return updated, skipped, errors + + +def main(): + print("==========================================") + print(" kgrag Neo4j URL 批量更新脚本 - 步骤 3") + print(f" 旧 URL 前缀: {OLD_BASE_URL}") + print(f" 新 URL 前缀: {NEW_BASE_URL}") + print(f" Neo4j: {NEO4J_URI}") + print("==========================================") + + driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASSWORD)) + try: + updated, skipped, errors = update_urls(driver, OLD_BASE_URL, NEW_BASE_URL) + finally: + driver.close() + + print("") + print("==========================================") + print(f" 完成!更新: {updated} 跳过: {skipped} 失败: {errors}") + print(" 下一步:执行 bash 04_update_config.sh") + print("==========================================") + + +if __name__ == "__main__": + main() diff --git a/suzhu-kgrag_migration/04_update_config.sh b/suzhu-kgrag_migration/04_update_config.sh new file mode 100644 index 0000000..708ef73 --- /dev/null +++ b/suzhu-kgrag_migration/04_update_config.sh @@ -0,0 +1,56 @@ +#!/bin/bash +# ============================================================================= +# 步骤 4:更新迁移目标机代码中的硬编码 IP/端口 +# 在【迁移目标机】上执行本脚本 +# 配置项请修改 migration_config.sh +# ============================================================================= + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" + +set -e + +echo "==========================================" +echo " kgrag 配置更新脚本 - 步骤 4" +echo " 代码目录: ${DST_CODE_DIR}" +echo " 替换: ${SRC_HOST} → ${DST_HOST}" +echo "==========================================" + +cd "${DST_CODE_DIR}" + +TARGET_FILES=( + "config.py" + "batch_kg_build.py" + "batch_kg_build_timeout.py" + "app.py" +) + +echo "" +echo "开始替换配置..." + +for FILE in "${TARGET_FILES[@]}"; do + if [ ! -f "${FILE}" ]; then + echo " [SKIP] 文件不存在: ${FILE}" + continue + fi + + cp "${FILE}" "${FILE}.bak_migration" + + sed -i "s|${OLD_NEO4J_URI}|${NEO4J_URI}|g" "${FILE}" + sed -i "s|${OLD_BASE_URL}|${NEW_BASE_URL}|g" "${FILE}" + sed -i "s|${OLD_MINERU_URL}|${NEW_MINERU_URL}|g" "${FILE}" + sed -i "s|${OLD_EMBED_URL}|${NEW_EMBED_URL}|g" "${FILE}" + sed -i "s|${OLD_LLM_URL}|${NEW_LLM_URL}|g" "${FILE}" + + echo " [OK] 已更新: ${FILE} (备份:${FILE}.bak_migration)" +done + +echo "" +echo "==========================================" +echo " 配置更新完成!" +echo " 下一步:执行 python 05_verify_migration.py" +echo "==========================================" + +echo "" +echo "以下是各文件中仍包含旧 IP(${SRC_HOST})的位置(供人工核查):" +grep -rn "${SRC_HOST}" "${TARGET_FILES[@]}" 2>/dev/null || echo " (未发现残留旧 IP,配置替换完整)" diff --git a/suzhu-kgrag_migration/05_run_in_container.sh b/suzhu-kgrag_migration/05_run_in_container.sh new file mode 100644 index 0000000..d61bf2e --- /dev/null +++ b/suzhu-kgrag_migration/05_run_in_container.sh @@ -0,0 +1,7 @@ +#!/bin/bash +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/migration_config.sh" +echo "==========================================" +echo " 步骤 5:在 ${KGRAG_CONTAINER} 容器内验证迁移结果" +echo "==========================================" +docker exec ${KGRAG_CONTAINER} python3 ${CONTAINER_APP_DIR}/suzhu-kgrag_migration/05_verify_migration.py diff --git a/suzhu-kgrag_migration/05_verify_migration.py b/suzhu-kgrag_migration/05_verify_migration.py new file mode 100644 index 0000000..f15aa03 --- /dev/null +++ b/suzhu-kgrag_migration/05_verify_migration.py @@ -0,0 +1,171 @@ +#!/usr/bin/env python3 +""" +步骤 5:验证迁移结果 +在【迁移目标机】上执行本脚本 +配置项请修改 migration_config.py +""" + +import os +import json +import sys + +sys.path.insert(0, os.path.dirname(__file__)) +from migration_config import ( + OLD_IP, DST_CODE_DIR, DST_FILES_DIR, NEW_BASE_URL, + NEO4J_URI, NEO4J_USER, NEO4J_PASSWORD +) + +from neo4j import GraphDatabase + +URL_CHECK_SAMPLE = 5 + +PASS = "\033[92m[PASS]\033[0m" +FAIL = "\033[91m[FAIL]\033[0m" +WARN = "\033[93m[WARN]\033[0m" + + +def check_files(): + print("\n--- 1. 关键文件检查 ---") + checks = [ + (DST_FILES_DIR, "原始文档目录"), + (f"{DST_FILES_DIR}/uploads_v1", "高亮 PDF 目录"), + (f"{DST_CODE_DIR}/kg_output", "抽取结果 JSON 目录"), + (f"{DST_CODE_DIR}/kg_snapshot.json", "全量快照 kg_snapshot.json"), + (f"{DST_CODE_DIR}/entity_registry.json", "实体注册表"), + (f"{DST_CODE_DIR}/app.py", "主程序 app.py"), + (f"{DST_CODE_DIR}/config.py", "配置文件 config.py"), + ] + all_ok = True + for path, desc in checks: + if os.path.exists(path): + if os.path.isdir(path): + count = len(os.listdir(path)) + print(f" {PASS} {desc}: {path} ({count} 个文件)") + else: + size = os.path.getsize(path) / 1024 / 1024 + print(f" {PASS} {desc}: {path} ({size:.1f} MB)") + else: + print(f" {FAIL} 缺失: {desc}: {path}") + all_ok = False + return all_ok + + +def check_neo4j(): + print("\n--- 2. Neo4j 图谱检查 ---") + try: + driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASSWORD)) + with driver.session() as session: + node_count = session.run("MATCH (n) RETURN count(n) AS c").single()["c"] + rel_count = session.run("MATCH ()-[r]->() RETURN count(r) AS c").single()["c"] + ks_count = session.run( + "MATCH (n) WHERE n.knowledge_source IS NOT NULL RETURN count(n) AS c" + ).single()["c"] + driver.close() + print(f" {PASS} Neo4j 连接正常") + print(f" {PASS} 节点数: {node_count} 关系数: {rel_count} 含溯源节点: {ks_count}") + return True, ks_count + except Exception as e: + print(f" {FAIL} Neo4j 连接失败: {e}") + return False, 0 + + +def check_old_ip(neo4j_ok, ks_count): + print(f"\n--- 3. 旧 IP 残留检查({OLD_IP})---") + + config_files = ["config.py", "batch_kg_build.py", "app.py"] + residual_found = False + for fname in config_files: + fpath = os.path.join(DST_CODE_DIR, fname) + if not os.path.exists(fpath): + continue + with open(fpath, "r", encoding="utf-8", errors="ignore") as f: + content = f.read() + lines = [i+1 for i, l in enumerate(content.splitlines()) if OLD_IP in l] + if lines: + print(f" {WARN} {fname} 第 {lines} 行仍含旧 IP") + residual_found = True + + if neo4j_ok and ks_count > 0: + try: + driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASSWORD)) + with driver.session() as session: + result = session.run( + f"MATCH (n) WHERE n.knowledge_source CONTAINS '{OLD_IP}' " + "RETURN count(n) AS c" + ) + old_url_count = result.single()["c"] + driver.close() + if old_url_count > 0: + print(f" {WARN} Neo4j 中仍有 {old_url_count} 个节点含旧 URL,请重新执行步骤 3") + residual_found = True + else: + print(f" {PASS} Neo4j 中无旧 IP 残留") + except Exception as e: + print(f" {WARN} 无法检查 Neo4j 中的旧 URL: {e}") + + if not residual_found: + print(f" {PASS} 配置文件中无旧 IP 残留") + + +def check_urls(ks_count): + print(f"\n--- 4. 溯源 URL 可访问性抽查(抽查 {URL_CHECK_SAMPLE} 个)---") + + if ks_count == 0: + print(f" {WARN} Neo4j 不可用,跳过 URL 检查") + return + + try: + driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASSWORD)) + with driver.session() as session: + result = session.run( + "MATCH (n) WHERE n.knowledge_source IS NOT NULL " + f"RETURN n.名称 AS name, n.knowledge_source AS ks LIMIT {URL_CHECK_SAMPLE}" + ) + records = list(result) + driver.close() + except Exception as e: + print(f" {WARN} 无法读取 Neo4j 节点: {e}") + return + + for record in records: + name = record["name"] + ks_raw = record["ks"] + try: + ks_list = json.loads(ks_raw) if isinstance(ks_raw, str) else ks_raw + url = ks_list[0].get("url", "") if ks_list else "" + if not url: + print(f" {WARN} 节点 {name}: knowledge_source 无 url 字段") + continue + filename = url.split("/upload/")[-1].split("#")[0] + local_path = os.path.join(DST_FILES_DIR, "uploads_v1", filename) + if os.path.exists(local_path): + print(f" {PASS} {name}: 高亮 PDF 存在 → {filename}") + else: + print(f" {FAIL} {name}: 高亮 PDF 缺失 → {local_path}") + except Exception as e: + print(f" {WARN} 节点 {name} 检查失败: {e}") + + +def main(): + print("==========================================") + print(" kgrag 迁移验证脚本 - 步骤 5") + print(f" 代码目录: {DST_CODE_DIR}") + print(f" 文件目录: {DST_FILES_DIR}") + print(f" 新服务地址: {NEW_BASE_URL}") + print("==========================================") + + files_ok = check_files() + neo4j_ok, ks_cnt = check_neo4j() + check_old_ip(neo4j_ok, ks_cnt) + check_urls(ks_cnt) + + print("\n==========================================") + if files_ok and neo4j_ok: + print(" 总体结果:迁移基本完成,请检查上方 WARN/FAIL 项") + else: + print(" 总体结果:存在关键问题,请修复 FAIL 项后重新验证") + print("==========================================") + + +if __name__ == "__main__": + main() diff --git a/suzhu-kgrag_migration/migration_config.py b/suzhu-kgrag_migration/migration_config.py new file mode 100644 index 0000000..c8f6a43 --- /dev/null +++ b/suzhu-kgrag_migration/migration_config.py @@ -0,0 +1,42 @@ +# ============================================================================= +# kgrag 迁移统一配置文件(Python 版) +# 所有 Python 脚本从这里读取配置,只需修改此文件 +# ============================================================================= + +# ─────────────────────────────────────────────── +# 原数据机(源服务器) +# ─────────────────────────────────────────────── +SRC_HOST = "192.168.0.164" +SRC_KGRAG_PORT = 9085 +SRC_NEO4J_PORT = 7687 + +# ─────────────────────────────────────────────── +# 迁移目标机(新服务器) +# ─────────────────────────────────────────────── +DST_HOST = "192.168.1.108" +DST_KGRAG_PORT = 9085 +DST_NEO4J_PORT = 7687 + +# ─────────────────────────────────────────────── +# Neo4j 连接(目标机本地) +# ─────────────────────────────────────────────── +NEO4J_URI = f"bolt://neo4j:{DST_NEO4J_PORT}" +NEO4J_USER = "neo4j" +NEO4J_PASSWORD = "zdht123@" + +# ─────────────────────────────────────────────── +# 目标机部署目录 +# ─────────────────────────────────────────────── +# kgrag 代码目录(容器挂载的宿主机路径,对应容器内 /app) +DST_CODE_DIR = "/app" + +# 文件目录(原始文档+高亮PDF,对应容器内 /app/files 的挂载路径) +# 若与代码目录相同,填 DST_CODE_DIR + "/files" +DST_FILES_DIR = "/app/files" + +# ============================================================================= +# 以下为派生变量,无需修改 +# ============================================================================= +OLD_BASE_URL = f"http://{SRC_HOST}:{SRC_KGRAG_PORT}" +NEW_BASE_URL = f"http://{DST_HOST}:{DST_KGRAG_PORT}" +OLD_IP = SRC_HOST diff --git a/suzhu-kgrag_migration/migration_config.sh b/suzhu-kgrag_migration/migration_config.sh new file mode 100644 index 0000000..ce3a78c --- /dev/null +++ b/suzhu-kgrag_migration/migration_config.sh @@ -0,0 +1,77 @@ +#!/bin/bash +# ============================================================================= +# kgrag 迁移统一配置文件 +# 所有脚本从这里读取配置,只需修改此文件 +# ============================================================================= + +# ─────────────────────────────────────────────── +# 原数据机(源服务器) +# ─────────────────────────────────────────────── +SRC_HOST="192.168.0.164" +SRC_USER="root" +SRC_SSH_PORT=22 +SRC_APP_DIR="/home/workspace/kgrag" + +# 源服务器各服务端口 +SRC_KGRAG_PORT=9085 +SRC_NEO4J_PORT=7687 +SRC_MINERU_PORT=9988 +SRC_EMBED_PORT=9700 +SRC_LLM_PORT=9800 + +# ─────────────────────────────────────────────── +# 迁移目标机(新服务器) +# ─────────────────────────────────────────────── +DST_HOST="192.168.1.108" +KGRAG_CONTAINER="kgrag" +CONTAINER_APP_DIR="/app" + +# kgrag 代码目录(容器挂载的宿主机路径,对应容器内 /app) +# 示例:/home/workspace/kgrag +DST_CODE_DIR="/home/workspace/kgrag" + +# 文件目录(原始文档+高亮PDF,对应容器内 /app/files 的挂载路径) +# 若与代码目录相同(即没有单独挂载 /app/files),填与 DST_CODE_DIR/files 相同 +# 示例:/home/zdht/wx/data/an-webui/uploads +DST_FILES_DIR="/home/workspace/kgrag/files" + +# 目标服务器各服务端口 +DST_KGRAG_PORT=9085 +DST_NEO4J_PORT=7687 +DST_MINERU_PORT=9988 +DST_EMBED_PORT=9700 +DST_LLM_PORT=9800 + +# ─────────────────────────────────────────────── +# Neo4j 连接(目标机) +# ─────────────────────────────────────────────── +NEO4J_URI="bolt://localhost:${DST_NEO4J_PORT}" +NEO4J_USER="neo4j" +NEO4J_PASSWORD="zdht123@" + +# ─────────────────────────────────────────────── +# 按舰迁移配置 +# 留空则全量迁移,多个用空格分隔 +# 已知舰船号:101 122 163 +# ─────────────────────────────────────────────── +TARGET_SHIPS="163" # 01_copy_files_by_ship.sh 使用(拉哪些舰的文件) +IMPORT_SHIP="163舰" # 02_load_neo4j_by_ship.sh 使用(导入哪艘舰的快照) + +# ─────────────────────────────────────────────── +# rsync 额外选项(如限速:--bwlimit=50000) +# ─────────────────────────────────────────────── +RSYNC_EXTRA="" + +# ============================================================================= +# 以下为派生变量,无需修改 +# ============================================================================= +SRC_SERVER="${SRC_USER}@${SRC_HOST}" +OLD_BASE_URL="http://${SRC_HOST}:${SRC_KGRAG_PORT}" +NEW_BASE_URL="http://${DST_HOST}:${DST_KGRAG_PORT}" +OLD_NEO4J_URI="bolt://${SRC_HOST}:${SRC_NEO4J_PORT}" +OLD_MINERU_URL="http://${SRC_HOST}:${SRC_MINERU_PORT}" +OLD_EMBED_URL="http://${SRC_HOST}:${SRC_EMBED_PORT}" +OLD_LLM_URL="http://${SRC_HOST}:${SRC_LLM_PORT}" +NEW_MINERU_URL="http://${DST_HOST}:${DST_MINERU_PORT}" +NEW_EMBED_URL="http://${DST_HOST}:${DST_EMBED_PORT}" +NEW_LLM_URL="http://${DST_HOST}:${DST_LLM_PORT}" diff --git a/suzhu-kgrag_migration/migration_guide.md b/suzhu-kgrag_migration/migration_guide.md new file mode 100644 index 0000000..1c8f483 --- /dev/null +++ b/suzhu-kgrag_migration/migration_guide.md @@ -0,0 +1,123 @@ +# kgrag 迁移指南 + +## 概述 + +本目录包含将 kgrag 图谱系统从旧服务器完整迁移到新服务器的脚本。 +迁移采用**方案A**:迁移高亮PDF文件 + 批量更新 Neo4j 中的溯源 URL。 + +## 迁移前准备 + +在执行任何脚本前,先修改各脚本顶部的变量配置区。 + +### 需要确认的信息 + +| 信息 | 说明 | 示例 | +|------|------|------| +| 旧服务器 SSH 地址 | 用于 rsync 拉取文件 | `root@192.168.0.46` | +| 旧服务器 APP 目录 | kgrag 部署根目录 | `/app` | +| 新服务器 APP 目录 | 目标部署根目录 | `/app` | +| 旧服务 BASE URL | 写入 Neo4j 的 URL 前缀 | `http://192.168.0.46:59085` | +| 新服务 BASE URL | 迁移后对外服务的 URL 前缀 | `http://192.168.1.100:59085` | +| 旧 Neo4j 连接地址 | 用于导出快照(可选) | `bolt://192.168.0.46:57687` | +| 新 Neo4j 连接地址 | 用于导入和更新 URL | `bolt://localhost:7687` | + +--- + +## 执行步骤 + +### 步骤 1:迁移文件 + +在**新服务器**上执行: + +```bash +bash 01_copy_files.sh +``` + +该脚本通过 rsync 从旧服务器拉取: +- `/app/files/`(原始文档) +- `/app/files/uploads_v1/`(高亮注释 PDF,溯源链接的实际目标) +- `/app/kg_output/`(实体关系抽取 JSON) +- `kg_snapshot.json`(全量快照,含 Embedding) +- 所有代码文件 + +### 步骤 2:重建 Neo4j 图谱 + +在**新服务器**上执行: + +```bash +bash 02_load_neo4j.sh +``` + +该脚本调用 `batch_kg_build.py --phase load_snapshot` 将 `kg_snapshot.json` 导入新 Neo4j。 + +> 注意:此方式不保留节点的 `*_timeline` 历史字段。 +> 如需完整历史,改用 `neo4j-admin database dump/load` 做数据库级备份(需停服)。 + +### 步骤 3:批量更新溯源 URL + +在**新服务器**上执行: + +```bash +python 03_update_neo4j_urls.py +``` + +该脚本将 Neo4j 中所有节点 `knowledge_source` 字段里的旧服务器地址替换为新地址。 + +### 步骤 4:更新配置文件 + +在**新服务器**上执行: + +```bash +bash 04_update_config.sh +``` + +该脚本更新 `config.py`、`batch_kg_build.py`、`app.py` 中的硬编码 IP 地址。 + +### 步骤 5:验证迁移结果 + +在**新服务器**上执行: + +```bash +python 05_verify_migration.py +``` + +该脚本检查文件完整性、Neo4j 节点数量、溯源 URL 可访问性。 + +--- + +## 目录结构说明 + +迁移完成后,新服务器上的文件布局应与旧服务器一致: + +``` +/app/ +├── files/ # 原始文档(PDF/DOCX/XLSX等) +│ └── uploads_v1/ # 高亮注释 PDF(溯源跳转目标) +├── kg_output/ # 每个文档的实体关系 JSON(断点续跑用) +├── kg_snapshot.json # 全量图谱快照(重建 Neo4j 的输入) +├── fault_wenjian/ # 超时/失败文件记录 +├── entity_registry.json # 动态实体类型注册表 +├── tree_data.json # 树状结构数据 +├── config.py # 模型/服务地址配置(迁移后需修改) +├── app.py # FastAPI 主程序 +├── batch_kg_build.py # 批量图谱构建脚本 +├── graph_search/ # 图检索模块 +├── kg_build/ # 图谱构建模块 +└── ... # 其他代码模块 +``` + +--- + +## 常见问题 + +**Q:迁移后溯源点击没有跳转到正确页面?** +A:检查步骤3是否执行成功,确认新服务的 `PREFIX_URL` 与 `NEW_BASE_URL` 一致。 + +**Q:`01_copy_files.sh` 报 Permission denied?** +A:确保新服务器已添加旧服务器的 SSH 公钥,或改用密码认证(rsync 会提示输入)。 + +**Q:`02_load_neo4j.sh` 报模块找不到?** +A:先在新服务器上安装依赖:`pip install -r requirements.txt`。 + +**Q:高亮 PDF 文件很多,rsync 很慢?** +A:可加 `--bwlimit=50000`(限速 50MB/s)避免占满带宽,或分批执行。 diff --git a/suzhu-kgrag_migration/split_by_ship.py b/suzhu-kgrag_migration/split_by_ship.py new file mode 100644 index 0000000..069e938 --- /dev/null +++ b/suzhu-kgrag_migration/split_by_ship.py @@ -0,0 +1,331 @@ +#!/usr/bin/env python3 +""" +按舰船号拆分 kg_snapshot.json、kg_output/、files/ 等目录 +输出结果放在 OUTPUT_BASE_DIR 下,每艘舰一个子目录 + +文件名规则与舰船的对应关系只需修改下方「变量配置区」,逻辑不用动。 +""" + +import json +import os +import re +import shutil +import sys +from collections import defaultdict +from typing import Dict, List, Optional, Set + +# 从统一配置文件读取路径 +sys.path.insert(0, os.path.dirname(__file__)) +from migration_config import DST_CODE_DIR, DST_FILES_DIR + +# ===================== 变量配置区(路径已从 migration_config.py 读取) ======================== + +# 输入路径 +SNAPSHOT_PATH = os.path.join(DST_CODE_DIR, "kg_snapshot.json") # 全量快照 +KG_OUTPUT_DIR = os.path.join(DST_CODE_DIR, "kg_output") # 抽取结果 JSON 目录 +FILES_DIR = DST_FILES_DIR # 原始文档目录 +UPLOADS_V1_DIR = os.path.join(DST_FILES_DIR, "uploads_v1") # 高亮 PDF 目录 + +# 输出根目录(每艘舰一个子目录) +OUTPUT_BASE_DIR = os.path.join(DST_CODE_DIR, "migration_split") + +# -------------------------------------------------------------------------- +# 舰船规则表:定义「哪些文件名属于哪艘舰」 +# +# 每条规则是一个 dict,支持以下匹配方式(可以组合,任意一条命中即匹配): +# prefix : 文件名以此开头(不含路径) +# suffix : 文件名以此结尾(含扩展名) +# contains : 文件名包含此字符串 +# regex : 正则表达式,匹配整个文件名(不含路径) +# +# 示例: +# {"prefix": "122-"} → 以 "122-" 开头 +# {"prefix": "163-"} → 以 "163-" 开头 +# {"contains": "发动机"} → 包含"发动机" +# {"regex": r"^JZ\d+_.+"} → 正则匹配 +# -------------------------------------------------------------------------- +SHIP_RULES: Dict[str, List[Dict]] = { + "101舰": [ + {"prefix": "101-"}, + ], + "122舰": [ + {"prefix": "122-"}, + ], + "163舰": [ + {"prefix": "163-"}, + ], + # 新增舰船示例(取消注释并修改): + # "200舰": [ + # {"prefix": "200-"}, + # {"contains": "某特殊前缀"}, + # ], +} + +# 共享节点(同时属于多艘舰)的处理策略: +# "all" : 每艘涉及的舰都保留这个节点(knowledge_source 保持完整) +# "majority" : 归属来源文件更多的那艘舰,其他舰不保留 +SHARED_NODE_POLICY = "all" + +# ========================================================================== + + +def match_ship(filename: str) -> Optional[str]: + """ + 根据 SHIP_RULES 判断文件名属于哪艘舰。 + 返回舰船名,或 None(没有匹配)。 + 第一条命中的规则生效(规则之间互斥时注意顺序)。 + """ + bare = os.path.basename(filename) + for ship, rules in SHIP_RULES.items(): + for rule in rules: + if "prefix" in rule and bare.startswith(rule["prefix"]): + return ship + if "suffix" in rule and bare.endswith(rule["suffix"]): + return ship + if "contains" in rule and rule["contains"] in bare: + return ship + if "regex" in rule and re.match(rule["regex"], bare): + return ship + return None + + +# -------------------------------------------------------------------------- +# 快照拆分 +# -------------------------------------------------------------------------- + +def _get_node_ships(entities: List[Dict]) -> Dict[str, Set[str]]: + """返回 {节点名: {归属舰集合}}""" + node_ships: Dict[str, Set[str]] = defaultdict(set) + for e in entities: + name = e.get("properties", {}).get("名称", "") + if not name: + continue + ks_raw = e.get("properties", {}).get("knowledge_source", "") + try: + ks_list = json.loads(ks_raw) if isinstance(ks_raw, str) else (ks_raw or []) + except Exception: + ks_list = [] + for ks in ks_list: + ship = match_ship(ks.get("filename", "")) + if ship: + node_ships[name].add(ship) + return node_ships + + +def split_snapshot(snapshot_path: str, output_base: str): + print(f"\n[快照拆分] 读取 {snapshot_path} ...") + with open(snapshot_path, "r", encoding="utf-8") as f: + data = json.load(f) + + entities = data.get("entities", []) + relationships = data.get("relationships", []) + print(f" 总节点: {len(entities)} 总关系: {len(relationships)}") + + node_ships = _get_node_ships(entities) + + # 统计共享情况 + all_ships = set(SHIP_RULES.keys()) + stats = defaultdict(int) + for name, ships in node_ships.items(): + if len(ships) == 0: + stats["无来源"] += 1 + elif len(ships) == 1: + stats[next(iter(ships))] += 1 + else: + stats["共享"] += 1 + print(f" 节点归属统计: { dict(stats) }") + + # 为每艘舰生成节点/关系子集 + for ship in SHIP_RULES: + ship_entities = [] + for e in entities: + name = e.get("properties", {}).get("名称", "") + ships = node_ships.get(name, set()) + + if ship in ships: + ship_entities.append(e) + elif not ships and SHARED_NODE_POLICY == "all": + # 无来源文件的节点(如顶层舰艇/系统节点)每艘舰都保留 + ship_entities.append(e) + + # 只保留两端节点都在本舰集合里的关系 + ship_node_names = {e.get("properties", {}).get("名称", "") for e in ship_entities} + ship_rels = [ + r for r in relationships + if r.get("from_entity") in ship_node_names + and r.get("to_entity") in ship_node_names + ] + + out_dir = os.path.join(output_base, ship) + os.makedirs(out_dir, exist_ok=True) + out_path = os.path.join(out_dir, "kg_snapshot.json") + with open(out_path, "w", encoding="utf-8") as f: + json.dump({"entities": ship_entities, "relationships": ship_rels}, + f, ensure_ascii=False, indent=2) + print(f" [{ship}] 节点:{len(ship_entities)} 关系:{len(ship_rels)} → {out_path}") + + +# -------------------------------------------------------------------------- +# kg_output 拆分(每个 .json 文件对应一个原始文档) +# -------------------------------------------------------------------------- + +def split_kg_output(kg_output_dir: str, output_base: str): + if not os.path.isdir(kg_output_dir): + print(f"\n[kg_output 拆分] 目录不存在,跳过: {kg_output_dir}") + return + + print(f"\n[kg_output 拆分] 扫描 {kg_output_dir} ...") + files = [f for f in os.listdir(kg_output_dir) if f.endswith(".json")] + print(f" 共 {len(files)} 个文件") + + counts = defaultdict(int) + unmatched = [] + + for fname in files: + # kg_output 文件名格式:原始文件名.json(含扩展名,如 122-xxx.pdf.json) + # 去掉最后的 .json 拿到原始文件名 + original = fname[:-5] if fname.endswith(".json") else fname + ship = match_ship(original) + + if ship: + dst_dir = os.path.join(output_base, ship, "kg_output") + os.makedirs(dst_dir, exist_ok=True) + shutil.copy2(os.path.join(kg_output_dir, fname), + os.path.join(dst_dir, fname)) + counts[ship] += 1 + else: + unmatched.append(fname) + + for ship, cnt in counts.items(): + print(f" [{ship}] {cnt} 个 JSON") + if unmatched: + print(f" [未匹配] {len(unmatched)} 个文件: {unmatched[:5]}") + + +# -------------------------------------------------------------------------- +# files/ 原始文档拆分 +# -------------------------------------------------------------------------- + +def split_files(files_dir: str, output_base: str): + if not os.path.isdir(files_dir): + print(f"\n[files 拆分] 目录不存在,跳过: {files_dir}") + return + + print(f"\n[files 拆分] 扫描 {files_dir} ...") + all_files = [f for f in os.listdir(files_dir) if os.path.isfile(os.path.join(files_dir, f))] + print(f" 共 {len(all_files)} 个文件") + + counts = defaultdict(int) + unmatched = [] + + for fname in all_files: + # files/ 里有两种格式: + # UUID_原文件名.pdf → 去掉 UUID 前缀再匹配 + # 原文件名.pdf → 直接匹配 + bare = fname + # 尝试去掉 UUID 前缀(格式:8-4-4-4-12 字符的十六进制) + uuid_pattern = r'^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}_(.+)$' + m = re.match(uuid_pattern, fname, re.IGNORECASE) + if m: + bare = m.group(1) + + ship = match_ship(bare) + if ship: + dst_dir = os.path.join(output_base, ship, "files") + os.makedirs(dst_dir, exist_ok=True) + shutil.copy2(os.path.join(files_dir, fname), + os.path.join(dst_dir, fname)) + counts[ship] += 1 + else: + unmatched.append(fname) + + for ship, cnt in counts.items(): + print(f" [{ship}] {cnt} 个文件") + if unmatched: + print(f" [未匹配] {len(unmatched)} 个: {unmatched[:5]}") + + +# -------------------------------------------------------------------------- +# uploads_v1/ 高亮 PDF 拆分(通过快照里的 knowledge_source 反查归属) +# -------------------------------------------------------------------------- + +def split_uploads(snapshot_path: str, uploads_dir: str, output_base: str): + if not os.path.isdir(uploads_dir): + print(f"\n[uploads 拆分] 目录不存在,跳过: {uploads_dir}") + return + + print(f"\n[uploads 拆分] 通过快照反查高亮 PDF 归属 ...") + + with open(snapshot_path, "r", encoding="utf-8") as f: + data = json.load(f) + + # 从快照里收集:高亮PDF文件名 → 归属舰船 + highlight_ship: Dict[str, str] = {} + for e in data.get("entities", []): + ks_raw = e.get("properties", {}).get("knowledge_source", "") + try: + ks_list = json.loads(ks_raw) if isinstance(ks_raw, str) else (ks_raw or []) + except Exception: + continue + for ks in ks_list: + url = ks.get("url", "") + src_file = ks.get("filename", "") + ship = match_ship(src_file) + if not ship or not url: + continue + # URL 格式:http://host/upload/#page=N + if "/upload/" in url: + highlight_fname = url.split("/upload/")[-1].split("#")[0] + # 共享节点下同一个高亮文件只记录第一个匹配舰船 + if highlight_fname not in highlight_ship: + highlight_ship[highlight_fname] = ship + + counts = defaultdict(int) + missing = [] + + for fname, ship in highlight_ship.items(): + src = os.path.join(uploads_dir, fname) + if os.path.exists(src): + dst_dir = os.path.join(output_base, ship, "files", "uploads_v1") + os.makedirs(dst_dir, exist_ok=True) + shutil.copy2(src, os.path.join(dst_dir, fname)) + counts[ship] += 1 + else: + missing.append(fname) + + for ship, cnt in counts.items(): + print(f" [{ship}] {cnt} 个高亮 PDF") + if missing: + print(f" [本地缺失] {len(missing)} 个(需从服务器 uploads_v1 补全): {missing[:3]}") + + +# -------------------------------------------------------------------------- +# 入口 +# -------------------------------------------------------------------------- + +def main(): + print("=" * 50) + print(" kgrag 按舰船号拆分工具") + print(f" 舰船规则: { {k: v for k, v in SHIP_RULES.items()} }") + print(f" 共享节点策略: {SHARED_NODE_POLICY}") + print("=" * 50) + + os.makedirs(OUTPUT_BASE_DIR, exist_ok=True) + + split_snapshot(SNAPSHOT_PATH, OUTPUT_BASE_DIR) + split_kg_output(KG_OUTPUT_DIR, OUTPUT_BASE_DIR) + split_files(FILES_DIR, OUTPUT_BASE_DIR) + split_uploads(SNAPSHOT_PATH, UPLOADS_V1_DIR, OUTPUT_BASE_DIR) + + print("\n" + "=" * 50) + print(f" 完成!输出目录: {OUTPUT_BASE_DIR}") + print(" 每艘舰的子目录结构:") + print(" <舰名>/kg_snapshot.json ← 导入新 Neo4j 用") + print(" <舰名>/kg_output/ ← 抽取结果 JSON") + print(" <舰名>/files/ ← 原始文档") + print(" <舰名>/files/uploads_v1/ ← 高亮 PDF") + print("=" * 50) + + +if __name__ == "__main__": + main() diff --git a/suzhu-kgrag_migration/suzhu_migration_steps.md b/suzhu-kgrag_migration/suzhu_migration_steps.md new file mode 100644 index 0000000..743ae52 --- /dev/null +++ b/suzhu-kgrag_migration/suzhu_migration_steps.md @@ -0,0 +1,227 @@ +# suzhu kgrag migration steps + +This flow is the safer staged migration path: + +1. export data inside the source `kgrag` container +2. `docker cp` the archive to the source host +3. `scp` the archive to `192.168.1.108` +4. extract it under `/home/workspace/kgrag` +5. import Neo4j snapshot, rebuild indexes, update URLs, verify + +It avoids directly running cross-host rsync against the live target directory. + +## Hosts + +Source host: + +```text +192.168.0.164 root Echo@456 +``` + +Target host: + +```text +192.168.1.108 root zdht123@ +``` + +Target migration directory: + +```text +/home/workspace/suzhu-kgrag_migration +``` + +Target kgrag app directory: + +```text +/home/workspace/kgrag +``` + +Inside the target `kgrag` container, the mounted script directory is: + +```text +/app/suzhu-kgrag_migration +``` + +## 1. Copy export script from target to source + +Run on `192.168.1.108`: + +```bash +scp /home/workspace/suzhu-kgrag_migration/00_export_from_source_container.sh \ + root@192.168.0.164:/home/workspace/ +``` + +## 2. Export data on source host + +Run on `192.168.0.164`: + +```bash +bash /home/workspace/00_export_from_source_container.sh +``` + +By default it exports from: + +```text +container: kgrag +container dir: /app +``` + +It packages these items if they exist: + +```text +files +kg_output +kg_snapshot.json +fault_wenjian +entity_registry.json +tree_data.json +``` + +The archive will be created on the source host under: + +```text +/home/workspace/kgrag_export/kgrag_data_YYYYmmddHHMMSS.tar.gz +``` + +If the source container name is not `kgrag`, run: + +```bash +KGRAG_CONTAINER=your_container_name bash /home/workspace/00_export_from_source_container.sh +``` + +## 3. Copy archive back to target + +Run on `192.168.1.108`: + +```bash +mkdir -p /home/workspace/kgrag_import +scp root@192.168.0.164:/home/workspace/kgrag_export/kgrag_data_*.tar.gz \ + /home/workspace/kgrag_import/ +``` + +Check the archive: + +```bash +ls -lh /home/workspace/kgrag_import/kgrag_data_*.tar.gz +tar -tzf /home/workspace/kgrag_import/kgrag_data_*.tar.gz | sed -n '1,40p' +``` + +## 4. Extract archive into target kgrag directory + +Run on `192.168.1.108`: + +```bash +cd /home/workspace/kgrag +tar -xzf /home/workspace/kgrag_import/kgrag_data_*.tar.gz +``` + +Check expected files: + +```bash +ls -ld /home/workspace/kgrag/files \ + /home/workspace/kgrag/kg_output \ + /home/workspace/kgrag/fault_wenjian 2>/dev/null || true +ls -lh /home/workspace/kgrag/kg_snapshot.json \ + /home/workspace/kgrag/entity_registry.json \ + /home/workspace/kgrag/tree_data.json 2>/dev/null || true +``` + +## 5. Import Neo4j snapshot + +Run on `192.168.1.108`: + +```bash +cd /home/workspace/suzhu-kgrag_migration +bash 02_load_neo4j.sh +``` + +This reads: + +```text +/home/workspace/kgrag/kg_snapshot.json +``` + +and imports it inside the target `kgrag` container through: + +```text +/app/kg_snapshot.json +``` + +## 6. Rebuild Neo4j indexes + +Run on `192.168.1.108`: + +```bash +cd /home/workspace/suzhu-kgrag_migration +bash 02b_rebuild_index.sh +``` + +## 7. Update old source URLs in Neo4j + +Run on `192.168.1.108`: + +```bash +cd /home/workspace/suzhu-kgrag_migration +bash 03_run_in_container.sh +``` + +This executes inside the target container: + +```text +/app/suzhu-kgrag_migration/03_update_neo4j_urls.py +``` + +It replaces URLs like: + +```text +http://192.168.0.164:9085 +``` + +with: + +```text +http://192.168.1.108:9085 +``` + +## 8. Verify migration + +Run on `192.168.1.108`: + +```bash +cd /home/workspace/suzhu-kgrag_migration +bash 05_run_in_container.sh +``` + +This executes inside the target container: + +```text +/app/suzhu-kgrag_migration/05_verify_migration.py +``` + +## Full command sequence + +```bash +# On 192.168.1.108 +scp /home/workspace/suzhu-kgrag_migration/00_export_from_source_container.sh root@192.168.0.164:/home/workspace/ + +# On 192.168.0.164 +bash /home/workspace/00_export_from_source_container.sh + +# On 192.168.1.108 +mkdir -p /home/workspace/kgrag_import +scp root@192.168.0.164:/home/workspace/kgrag_export/kgrag_data_*.tar.gz /home/workspace/kgrag_import/ +cd /home/workspace/kgrag +tar -xzf /home/workspace/kgrag_import/kgrag_data_*.tar.gz + +cd /home/workspace/suzhu-kgrag_migration +bash 02_load_neo4j.sh +bash 02b_rebuild_index.sh +bash 03_run_in_container.sh +bash 05_run_in_container.sh +``` + +## Notes + +- Do not run `01_copy_files.sh` for this staged flow. That script directly pulls files with `rsync` from the source host. +- `02_load_neo4j.sh`, `02b_rebuild_index.sh`, and `03_run_in_container.sh` modify the target Neo4j data/indexes. +- Keep the archive under `/home/workspace/kgrag_import` until verification passes. diff --git a/test_timeout.py b/test_timeout.py new file mode 100644 index 0000000..8665b62 --- /dev/null +++ b/test_timeout.py @@ -0,0 +1,58 @@ +""" +模拟超时跳过逻辑 +文件列表:file_A 正常(2s),file_B 超时(20s),file_C 正常(2s) +期望结果:B 超时后直接跳到 C,总耗时约 TIMEOUT+2s 而不是 20+2+2s +""" + +import time +import threading +import concurrent.futures +from concurrent.futures import ThreadPoolExecutor + +EXTRACT_TIMEOUT = 5 # 测试用 5 秒超时 + + +def fake_extract(file_name, cancel_event): + """模拟抽取:file_B 故意睡 20 秒""" + sleep_time = 20 if file_name == "file_B" else 2 + print(f" [{file_name}] 开始抽取,预计耗时 {sleep_time}s") + for _ in range(sleep_time * 10): + time.sleep(0.1) + if cancel_event.is_set(): + print(f" [{file_name}] 收到取消信号,退出不写 JSON") + return {"file": file_name, "status": "timeout"} + print(f" [{file_name}] 抽取完成,写 JSON") + return {"file": file_name, "status": "ok"} + + +def run(): + files = ["file_A", "file_B", "file_C"] + results = [] + t_start = time.time() + + with ThreadPoolExecutor(max_workers=2) as pool: + future_meta = [] + for f in files: + evt = threading.Event() + fut = pool.submit(fake_extract, f, evt) + future_meta.append((fut, f, evt)) + + for fut, f, evt in future_meta: + try: + result = fut.result(timeout=EXTRACT_TIMEOUT) + results.append(result) + except concurrent.futures.TimeoutError: + evt.set() + print(f" [{f}] 超时,跳过,记录 fault 文件") + results.append({"file": f, "status": "timeout"}) + + total = time.time() - t_start + print(f"\n总耗时: {total:.1f}s") + print("结果汇总:") + for r in results: + print(f" {r}") + + +if __name__ == "__main__": + run() + diff --git a/testchunk.py b/testchunk.py new file mode 100644 index 0000000..9145cf8 --- /dev/null +++ b/testchunk.py @@ -0,0 +1,1181 @@ +import json +import fitz # PyMuPDF +import os +from collections import Counter +import uuid +from openai import OpenAI +import re +from typing import List, Dict, Optional, Union, Any, Tuple +# 指定 JSON 文件路径 +# file_path = '/storage01/home/hdf/project/wxkgrag/kgextract/output/122-06A0014-B01001_发动机-维修手册_content_list.json' +from filename_proceess_and_kgquery import get_entity +from pathlib import PurePath, Path as PathLib +from fastapi import FastAPI, File, Path, UploadFile, HTTPException, Form, Request, Header, Body +from fileparse_util import process_document +import threading +import aiofiles +import httpx +import logging +logger = logging.getLogger(__name__) + +API_URLS = [ + "http://192.168.0.46:59988/analyze-pdf", + # "http://192.168.0.111:9977/analyze-pdf", + # "http://192.168.0.111:9978/analyze-pdf", + #"http://192.168.0.111:9979/analyze-pdf", + #"http://192.168.0.111:9980/analyze-pdf", + # "http://192.168.0.111:9975/analyze-pdf", +] +API_other_URLS = [ + "http://192.168.0.46:59988/analyze-otherfile", + # "http://192.168.0.111:9977/analyze-otherfile", + # "http://192.168.0.111:9978/analyze-otherfile", + #"http://192.168.0.111:9979/analyze-otherfile", + #"http://192.168.0.111:9980/analyze-otherfile", + # "http://192.168.0.111:9975/analyze-otherfile", +] +_api_url_inflight = [0] * len(API_URLS) +_api_url_lock = threading.Lock() + +def format_entity_text(data): + # 1. 定义实体类型与属性的映射关系 + # 格式: '实体类型': [ ('前缀1', '属性1'), ('前缀2', '属性2') ] + type_mapping = { + '舰艇': [('舰艇为', '名称'), (',舷号', '舷号')], + '系统': [(',系统:', '名称')], + '子系统': [(',子系统:', '名称')], + '设备': [(',设备:', '名称')] + } + + text_parts = [] + + # 2. 遍历 entities 列表 + for entity in data.get('entities', []): + entity_type = entity.get('type') + properties = entity.get('properties', {}) + + # 3. 如果当前实体类型在映射表中,则进行拼接 + if entity_type in type_mapping: + entity_str = "" + # 遍历该实体需要提取的所有属性 + for prefix, attr_key in type_mapping[entity_type]: + value = str(properties.get(attr_key, '')) + entity_str += f"{prefix}{value}" + text_parts.append(entity_str) + + # 4. 将所有部分拼接成一段完整的文本 + # 注意:因为前缀中已经包含了逗号,这里直接拼接即可 + return ''.join(text_parts) + +def get_api_url(task_id: str = "") -> tuple: + """返回 (analyze_url, contentlist_url),选当前 inflight 最少的实例。""" + with _api_url_lock: + idx = _api_url_inflight.index(min(_api_url_inflight)) + _api_url_inflight[idx] += 1 + base = API_URLS[idx] + return base, base.replace("/analyze-pdf", "/analyze-otherfile") + + +def release_api_url(url: str): + with _api_url_lock: + if url in API_URLS: + idx = API_URLS.index(url) + _api_url_inflight[idx] = max(0, _api_url_inflight[idx] - 1) +def extract_text_from_first_tr(html: str) -> str: + """提取 HTML 表格中第一个 内的文本(去除标签)""" + if not isinstance(html, str): + return "" + match = re.search(r']*>(.*?)', html, re.IGNORECASE | re.DOTALL) + if not match: + return "" + first_tr_content = match.group(1) + # 去除所有 HTML 标签 + text = re.sub(r'<[^>]+>', '', first_tr_content) + return text.strip() + + +def matches_any_pattern(text: str, patterns: List[List[str]]) -> bool: + """检查文本是否包含任意一组关键词(全部命中)""" + if not text: + return False + text_lower = text.lower() + for pattern in patterns: + if all(keyword in text_lower for keyword in pattern): + return True + return False + + +def is_maintenance_table(table_body: str, patterns: List[List[str]]) -> bool: + """判断是否为维修项目表格:仅检查第一个 是否匹配任一模式""" + first_tr_text = extract_text_from_first_tr(table_body) + return matches_any_pattern(first_tr_text, patterns) + + +# ============================== +# 维修项目表格的关键词模式(可按需扩展) +# ============================== + +MAINTENANCE_TABLE_PATTERNS: List[List[str]] = [ + ["维修项目编号", "组成编码", "名称", "维修项目", "维修间隔期"], + ["维修项目编号", "维修级别", "名称"], + ["项目编号", "编码", "维修内容", "周期"], + ["序号", "维修项", "标准", "频次"], # 示例:可继续添加业务变体 +] + + +# ============================== +# 主函数:提取维修项目表格及其后续内容组 +# ============================== + +def extract_maintenance_groups_and_remaining( + records: List[Dict[str, Any]], + patterns: List[List[str]] = MAINTENANCE_TABLE_PATTERNS, + max_following_for_last: int | None = None +) -> Tuple[List[List[Dict]], List[Dict]]: + groups = [] + current_group = None + used_ids = set() + + # 标记是否已经遇到第一个维修表格(用于跳过) + skipped_first = False + + for record in records: + is_start = ( + record.get("type") == "table" and + is_maintenance_table(record.get("table_body", ""), patterns) + ) + + if is_start: + # 如果是第一个维修表,跳过(不加入 groups,也不标记 used_ids) + if not skipped_first: + skipped_first = True + # 注意:这里不清空 current_group,因为前面不可能有 group(第一个 start) + current_group = None # 确保不会把之前的非 start 内容误加 + continue # 跳过这个 record,不加入任何 group + + # 从第二个维修表开始,才正常分组 + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + current_group = [record] + else: + if current_group is not None: + current_group.append(record) + + # 处理最后一个 group(仅当有有效 group 时) + if current_group is not None: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + # 限制最后一个 group 长度 + if groups and max_following_for_last is not None: + last_group = groups[-1] + max_len = max_following_for_last + 1 + if len(last_group) > max_len: + truncated = last_group[:max_len] + removed_ids = {r["id"] for r in last_group[max_len:]} + used_ids -= removed_ids + groups[-1] = truncated + + # remaining_records 包含所有未被 used_ids 标记的记录 + # 由于第一个 group 没有加入 used_ids,所以会保留在 remaining_records 中 + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + + +def is_operation_table_by_first_tr(table_body: str) -> bool: + """ + 判断 table_body 是否为操作项目表,依据是第一行 中是否包含 '项目编号' 和 '操作项目' + """ + if not isinstance(table_body, str): + return False + + # 非贪婪匹配第一个 ... + match = re.search(r']*>(.*?)', table_body, re.IGNORECASE | re.DOTALL) + if not match: + return False + + first_tr_html = match.group(1) + + # 去除所有 HTML 标签,提取纯文本 + text_in_first_tr = re.sub(r'<[^>]+>', '', first_tr_html) + + # 转为小写(中文无所谓大小写,但统一处理更安全) + text_clean = text_in_first_tr.strip() + + # 检查是否同时包含两个关键词 + has_code = "项目编号" in text_clean + has_item = "操作项目" in text_clean + return has_code and has_item + +def extract_operation_groups_and_remaining(records, max_following_for_last=23): + """ + 通过语义判断表格是否为操作项目表(基于第一行内容),并分组。 + 注意:第一个识别到的操作项目表及其后续记录组成的 group 会被跳过(不加入 groups), + 但这些记录仍保留在 remaining_records 中。 + + 普通起始标记:组 = [start, ..., next_start - 1] + 最后一个起始标记:组 = [start, ..., start + max_following_for_last] (若指定) + """ + groups = [] + current_group = None + used_ids = set() + first_group_skipped = False # 标记是否已跳过第一个 group + + for record in records: + is_start = ( + record.get("type") == "table" + and is_operation_table_by_first_tr(record.get("table_body", "")) + ) + + if is_start: + if current_group is not None: + # 决定是否保留当前积累的 group + if not first_group_skipped: + # 跳过第一个 group:不清空 current_group,也不加入 groups 或 used_ids + first_group_skipped = True + # 注意:这里不把 current_group 加入 groups,也不更新 used_ids + else: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + # 开启新 group + current_group = [record] + else: + # 第一个起始点 + current_group = [record] + else: + if current_group is not None: + current_group.append(record) + + # 处理最后一个 group(如果存在) + if current_group is not None: + if not first_group_skipped: + # 整个数据中只有一个 group,且是第一个 → 跳过它 + pass # 不加入 groups,也不加 id 到 used_ids + else: + groups.append(current_group) + used_ids.update(r["id"] for r in current_group) + + # —————— 后处理:截断最后一个 group(如果需要) —————— + if groups and max_following_for_last is not None: + last_group = groups[-1] + if len(last_group) > max_following_for_last + 1: # +1 是起始记录本身 + truncated = last_group[:max_following_for_last + 1] + removed_ids = {r["id"] for r in last_group[max_following_for_last + 1:]} + used_ids -= removed_ids + groups[-1] = truncated + + remaining_records = [r for r in records if r["id"] not in used_ids] + return groups, remaining_records + + +# def extract_wxanli(records): +# # 主触发词:表示一个全新故障案例的开始 + +# # 所有触发词(用于识别是否属于元信息或段落标题,但不用于切片起点) +# all_keywords = ["一、故障现象", "单位:", "故障名称:", "一、基本情况", "单位:", "故障现象及原因:"] + +# def is_main_trigger(record): +# text = record.get("text", "") +# return any(trigger in text for trigger in all_keywords) + +# extracted_slices = [] +# remaining_records = [] +# i = 0 +# n = len(records) + +# while i < n: +# record = records[i] +# if is_main_trigger(record): +# # 开始一个新的故障案例 slice +# current_slice = [record] +# i += 1 +# # 继续收集,直到遇到下一个主触发词 或 结束 +# while i < n and not is_main_trigger(records[i]): +# current_slice.append(records[i]) +# i += 1 +# extracted_slices.append(current_slice) +# else: +# # 不是以主触发词开头的记录,保留在 remaining +# remaining_records.append(record) +# i += 1 + +# # ✨ 优化:将每一组(除了最后一组)的最后一个记录移到下一组的开头 +# for i in range(len(extracted_slices) - 1): # 遍历到倒数第二组 +# if len(extracted_slices[i]) > 1: # 确保当前组至少有2条记录 +# last_record = extracted_slices[i].pop() # 移除当前组的最后一条 +# extracted_slices[i + 1].insert(0, last_record) # 插入到下一组的开头 + +# return extracted_slices, remaining_records +def extract_wxanli(records): + keywords = [ + "一、故障现象", + "单位:", + "故障名称:", + "一、基本情况", + "故障现象及原因:", + "故障名称:", + "实例故障" + ] + + # 存储切片 + slices = [] + # 标记已处理的记录索引 + processed_indices = set() + + # 查找所有包含关键词的记录位置 + keyword_positions = [] + for i, record in enumerate(records): + if record.get("type") == "text": + text = record.get("text", "") + # 检查是否包含任一关键词 + if any(keyword in text for keyword in keywords): + keyword_positions.append(i) + + # 为每个关键词位置创建切片 + for idx, start_pos in enumerate(keyword_positions): + # 确定切片结束位置 + if idx + 1 < len(keyword_positions): + end_pos = keyword_positions[idx + 1] + else: + end_pos = len(records) + + # 收集当前切片 + slice_records = [] + + # 添加前2个记录(如果存在且未超出边界) + for offset in [2, 1]: + prev_idx = start_pos - offset + if prev_idx >= 0: + slice_records.append(records[prev_idx]) + processed_indices.add(prev_idx) + + # 添加从关键词位置到下一个关键词位置的所有记录 + for i in range(start_pos, end_pos): + slice_records.append(records[i]) + processed_indices.add(i) + + slices.append(slice_records) + + # 收集未处理的剩余记录 + remaining_records = [ + records[i] for i in range(len(records)) + if i not in processed_indices + ] + + return slices, remaining_records + +def split_content_bbox(data, max_length=8000): + contents = [] + highlight_lists = [] + + current_content = "" + current_highlights = [] + + for ins in data: + if "type" not in ins: + continue + if not ins.get("bbox"): + continue + # 提取通用字段 + bbox = ins.get("bbox") + page_idx = ins.get("page_idx", -1) + + new_text = "" + should_record_highlight = False # 标记是否需要记录 highlight(即使 new_text 为空) + + if ins["type"] == "text": + text = ins.get("text", "") + level = ins.get("text_level") + if level is not None and isinstance(level, int) and level > 0: + text = "#" * min(level, 6) + " " + text # 安全限制标题级别 + new_text = text + "\n" + should_record_highlight = True + + elif ins["type"] == "table": + table_caption = ins.get("table_caption") + table_body = ins.get("table_body", "") + + # 清理冗余属性 + for pattern in [' colspan="1"', ' rowspan="1"', " colspan='1'", " rowspan='1'", " colspan=1", " rowspan=1"]: + table_body = table_body.replace(pattern, "") + + caption_str = "" + if table_caption: + if isinstance(table_caption, list): + caption_str = "\n".join(str(c) for c in table_caption) + else: + caption_str = str(table_caption) + + # 判断是否有实质内容 + has_caption = bool(caption_str.strip()) + has_body = bool(table_body.strip()) + + if has_caption or has_body: + new_text = caption_str + ("\n" if has_caption else "") + table_body + "\n" + else: + new_text = "" # 空内容,不拼接 + + # 即使内容为空,只要是 table 类型,就记录 highlight(满足你的需求) + should_record_highlight = True + + elif ins["type"] == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + + if isinstance(image_caption, list): + image_caption = "\n".join(str(item) for item in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + + if image_caption.strip() or img_path.strip(): + new_text = image_caption + "\n" + img_path + "\n" + else: + new_text = "" + + should_record_highlight = True + + elif ins["type"] == "discarded": + text = ins.get("text", "") + if text.strip(): + new_text = text + "\n" + else: + new_text = "" + should_record_highlight = True + + else: + continue # 不支持的 type,跳过且不记录 highlight + + # --- 关键:即使 new_text 为空,只要 should_record_highlight 为 True,就要处理 chunk 切分和 highlight 记录 --- + + # 构造 highlight 项(即使 new_text 为空) + highlight_item = {"page_idx": page_idx, "bbox": bbox} + + if not new_text.strip() and not should_record_highlight: + continue # 完全跳过 + + # 检查是否需要切分(仅当 new_text 非空时才影响长度) + would_exceed = len(current_content) + len(new_text) > max_length + + # 如果 new_text 非空 且 会导致超长,则先保存当前 chunk + if new_text.strip() and would_exceed: + if current_content or current_highlights: + contents.append(current_content.rstrip('\n')) + highlight_lists.append(current_highlights) + current_content = new_text + current_highlights = [highlight_item] + else: + # 追加内容(如果 new_text 非空) + if new_text.strip(): + current_content += new_text + # 无论如何,只要 should_record_highlight,就加 highlight + if should_record_highlight: + current_highlights.append(highlight_item) + + # 保存最后一段 + if current_content or current_highlights: + contents.append(current_content.rstrip('\n')) + highlight_lists.append(current_highlights) + + return contents, highlight_lists + +# def extract_wxanli(records): +# # 主触发词:表示一个全新故障案例的开始 + +# # 所有触发词(用于识别是否属于元信息或段落标题,但不用于切片起点) +# all_keywords = ["一、故障现象", "单位:", "故障名称:", "一、基本情况", "单位:", "故障现象及原因:"] + +# def is_main_trigger(record): +# text = record.get("text", "") +# return any(trigger in text for trigger in all_keywords) + +# extracted_slices = [] +# remaining_records = [] +# i = 0 +# n = len(records) + +# while i < n: +# record = records[i] +# if is_main_trigger(record): +# # 开始一个新的故障案例 slice +# current_slice = [record] +# i += 1 +# # 继续收集,直到遇到下一个主触发词 或 结束 +# while i < n and not is_main_trigger(records[i]): +# current_slice.append(records[i]) +# i += 1 +# extracted_slices.append(current_slice) +# else: +# # 不是以主触发词开头的记录,保留在 remaining +# remaining_records.append(record) +# i += 1 + +# # ✨ 优化:将每一组(除了最后一组)的最后一个记录移到下一组的开头 +# for i in range(len(extracted_slices) - 1): # 遍历到倒数第二组 +# if len(extracted_slices[i]) > 1: # 确保当前组至少有2条记录 +# last_record = extracted_slices[i].pop() # 移除当前组的最后一条 +# extracted_slices[i + 1].insert(0, last_record) # 插入到下一组的开头 + +# return extracted_slices, remaining_records + + +def group_records(records): + result = [] + current_group = [] + + for i, ins in enumerate(records): + if 'text_level' in ins and ins['text_level']: + # 当遇到新的text_level时,如果current_group非空,则先将其添加到结果中 + if current_group: + result.append(current_group) + current_group = [] # 开始新一组 + current_group.append(ins) + else: + # 如果当前记录没有text_level或其值为空,则继续添加到当前组 + current_group.append(ins) + + # 别忘了将最后一个组添加到结果中 + if current_group: + result.append(current_group) + + return result + +def get_chunk_bbox_otherfile(data, max_length=8000): + """ + 处理没有 bbox 信息的文件数据(主要面向纯表格类内容)。 + 每个 table 作为一个独立切片,不与其他记录拼接。 + + - 单个 table 内容超过 max_length 时,调用 chunk_reset 在 处安全切分, + 切分后的多个 chunk 共享同一组 positions + - 清理冗余 colspan="1" / rowspan="1" 属性 + - bbox 缺失时填充空列表 [] + + 返回结构与 get_chunk_bbox 一致:[{"content": str, "positions": [...]}] + """ + slices = [] + + for ins in data: + if ins.get("type") != "table": + continue + + page_idx = ins.get("page_idx", -1) + bbox = ins.get("bbox", []) + + table_caption = ins.get("table_caption") + table_body = ins.get("table_body", "") or "" + + # 清理冗余属性 + for pattern in [ + ' colspan="1"', ' rowspan="1"', + " colspan='1'", " rowspan='1'", + " colspan=1", " rowspan=1", + ]: + table_body = table_body.replace(pattern, "") + + # 拼接 caption + caption_str = "" + if table_caption: + if isinstance(table_caption, list): + caption_str = "\n".join(str(c) for c in table_caption) + else: + caption_str = str(table_caption) + + has_caption = bool(caption_str.strip()) + has_body = bool(table_body.strip()) + + if not (has_caption or has_body): + continue # 空表格跳过 + + content = caption_str + ("\n" if has_caption else "") + table_body + positions = [{"page_idx": page_idx, "bbox": bbox}] + + # 单表超长 → 在 处切分,多个 chunk 共享 positions + if len(content) > max_length: + sub_chunks = chunk_reset(content, max_length) + for sub in sub_chunks: + slices.append({ + "content": sub.rstrip('\n'), + "positions": positions + }) + else: + slices.append({ + "content": content.rstrip('\n'), + "positions": positions + }) + + # 按 page_idx 排序,与 get_chunk_bbox 风格一致 + valid_slices = [ + item for item in slices + if item.get("positions") + and isinstance(item["positions"], list) + and len(item["positions"]) > 0 + and "page_idx" in item["positions"][0] + ] + valid_slices.sort(key=lambda item: item["positions"][-1]["page_idx"]) + + return valid_slices + +def get_chunk_bbox(data): + for idx, item in enumerate(data, start=1): + item["id"] = idx + repair_data, clean_repair_records = extract_maintenance_groups_and_remaining(data,max_following_for_last=23) + operation_data, clean_operation_records = extract_operation_groups_and_remaining(data,max_following_for_last=23) + wxanli_data, clean_wxanli_data = extract_wxanli(data) + slices = [] + if len(repair_data) > 0 : + for ins in repair_data: + content, highlight_list = split_content_bbox(ins) + for i, (content, h_list) in enumerate(zip(content, highlight_list)): + slices.append({ + "content" : content, + "positions":h_list + }) + groups = group_records(clean_repair_records) + for ins in groups: + content, highlight_list = split_content_bbox(ins) + for i, (content, h_list) in enumerate(zip(content, highlight_list)): + slices.append({ + "content" : content, + "positions":h_list + }) + + valid_slices = [ + item for item in slices + if item.get('positions') + and isinstance(item['positions'], list) + and len(item['positions']) > 0 + and 'page_idx' in item['positions'][0] + ] + slices = sorted(valid_slices, key=lambda item: item['positions'][-1]['page_idx']) + elif len(operation_data) > 0: + for ins in operation_data: + content, highlight_list = split_content_bbox(ins) + for i, (content, h_list) in enumerate(zip(content, highlight_list)): + slices.append({ + "content" : content, + "positions":h_list + }) + groups = group_records(clean_operation_records) + for ins in groups: + content, highlight_list = split_content_bbox(ins) + for i, (content, h_list) in enumerate(zip(content, highlight_list)): + slices.append({ + "content" : content, + "positions":h_list + }) + valid_slices = [ + item for item in slices + if item.get('positions') + and isinstance(item['positions'], list) + and len(item['positions']) > 0 + and 'page_idx' in item['positions'][0] + ] + slices = sorted(valid_slices, key=lambda item: item['positions'][-1]['page_idx']) + + elif len(wxanli_data) > 0: + for ins in wxanli_data: + content, highlight_list = split_content_bbox(ins) + for i, (content, h_list) in enumerate(zip(content, highlight_list)): + slices.append({ + "content" : content, + "positions":h_list + }) + for ins in clean_wxanli_data: + if not ins.get("bbox"): + continue + page_idx = ins.get("page_idx", 0) + bbox = ins["bbox"] + positions = [{"page_idx": page_idx, "bbox": bbox}] + + if ins["type"] == "text": + if ins.get("text_level"): + text = ins.get("text", "") + level = ins.get("text_level") + content = "#" * level + text + else: + content = ins.get("text", "") + elif ins["type"] == "table": + content = (ins.get("table_caption") or "") + "\n" + (ins.get("table_body") or "") + elif ins["type"] == "image": + image_caption = ins.get("image_caption", []) + img_path = ins.get("img_path", []) + + # 如果 image_caption 是列表,则将其转换为字符串 + if isinstance(image_caption, list): + image_caption = "\n".join(str(item) for item in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + + # 如果 img_path 是列表,则将其转换为字符串 + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + + if image_caption.strip() or img_path.strip(): + content = (image_caption or "") + "\n" + (img_path or "") + else: + continue # 跳过空图像项 + elif ins["type"] == "discarded": + content = ins.get("text", "") + else: + continue + + slices.append({"content": content, "positions": positions}) + + + valid_slices = [ + item for item in slices + if item.get('positions') + and isinstance(item['positions'], list) + and len(item['positions']) > 0 + and 'page_idx' in item['positions'][0] + ] + slices = sorted(valid_slices, key=lambda item: item['positions'][-1]['page_idx']) + else: + groups = group_records(data) + for ins in groups: + content, highlight_list = split_content_bbox(ins) + for i, (content, h_list) in enumerate(zip(content, highlight_list)): + slices.append({ + "content" : content, + "positions":h_list + }) + valid_slices = [ + item for item in slices + if item.get('positions') + and isinstance(item['positions'], list) + and len(item['positions']) > 0 + and 'page_idx' in item['positions'][0] + ] + valid_slices = [ + item for item in slices + if item.get('positions') + and isinstance(item['positions'], list) + and len(item['positions']) > 0 + and 'page_idx' in item['positions'][0] + ] + slices = sorted(valid_slices, key=lambda item: item['positions'][-1]['page_idx']) + return slices + +def split_text_preserve_sentences(text, max_length=7500): + if len(text) <= max_length: + return [text] + + # 按句子分割,保留标点 + parts = re.split(r'([。!?;!?])', text) + sentences = [] + for i in range(0, len(parts), 2): + s = parts[i] + (parts[i+1] if i+1 < len(parts) else '') + sentences.append(s) + + chunks = [] + current = "" + + for sent in sentences: + if len(current) + len(sent) <= max_length: + current += sent + else: + if current: + chunks.append(current) + else: + # 单句超长,硬切(极端情况) + chunks.append(sent[:max_length]) + sent = sent[max_length:] + current = sent + + if current: + chunks.append(current) + + return chunks + +def data_replace(data, prefix): + """ + 遍历 data 列表,若元素包含 'img_path' 字段,则移除前缀 'images/' 并拼接新前缀。 + 使用 pathlib 安全处理路径。 + """ + from pathlib import PurePosixPath + for ins in data: + if isinstance(ins, dict) and "img_path" in ins: + img_path = ins["img_path"] + p = PurePosixPath(img_path) + # 如果以 images/ 开头,去掉第一级目录 + if p.parts and p.parts[0] == "images": + relative_path = str(PurePosixPath(*p.parts[1:])) + ins["img_path"] = f"![图片]({prefix}{relative_path})" + else: + # 否则保留原路径(或按需处理) + ins["img_path"] = f"![图片]({prefix}{img_path})" + return data + +def filter_content_bbox(data, max_length=3000): + """ + 将 data 中的 text/table/image 内容按字符长度分块(每块不超过 max_length), + 返回 [{"content": str, "highlight_list": list}, ...] + """ + chunks = [] + current_content = "" + current_highlight_list = [] + + def _flush_chunk(): + """内部函数:将当前内容打包进 chunks,并重置""" + if current_content or current_highlight_list: + chunks.append({ + "content": current_content, + "highlight_list": current_highlight_list.copy() + }) + + for ins in data: + if "type" not in ins: + continue + + added_content = "" + bbox = ins.get("bbox", []) + page_idx = ins.get("page_idx", -1) + + if ins["type"] == "text": + text_content = ins.get("text", "") + added_content = text_content + "\n" + + elif ins["type"] == "table": + table_caption = ins.get("table_caption") + table_body = ins.get("table_body") + + caption_str = "" + if table_caption: + if isinstance(table_caption, list): + caption_str = "\n".join(str(c) for c in table_caption) + else: + caption_str = str(table_caption) + + added_content = caption_str + "\n" + (table_body or "") + "\n" + + elif ins["type"] == "image": + image_caption = ins.get("image_caption", "") + img_path = ins.get("img_path", "") + + if isinstance(image_caption, list): + image_caption = "\n".join(str(item) for item in image_caption) + elif not isinstance(image_caption, str): + image_caption = str(image_caption) + + if isinstance(img_path, list): + img_path = "\n".join(str(p) for p in img_path) + elif not isinstance(img_path, str): + img_path = str(img_path) + + if image_caption or img_path: + added_content = image_caption + "\n" + img_path + "\n" + else: + continue # 跳过空图像项 + else: + continue + + # 检查加上 added_content 后是否超限 + if len(current_content) + len(added_content) > max_length: + # 如果当前块非空,先 flush + if current_content: + _flush_chunk() + current_content = "" + current_highlight_list = [] + + # 如果单个 added_content 超过 max_length,仍需保留(避免丢弃) + if len(added_content) > max_length: + # 强制截断或直接放入(这里选择直接放入,避免信息丢失) + current_content = added_content[:max_length] + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + _flush_chunk() + # 剩余部分?此处简化处理:忽略超长部分(或可递归拆分,但复杂) + continue + else: + current_content = added_content + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + else: + current_content += added_content + current_highlight_list.append({"page_idx": page_idx, "bbox": bbox}) + + # 处理最后一块 + if current_content or current_highlight_list: + chunks.append({ + "content": current_content, + "highlight_list": current_highlight_list + }) + + return chunks + +def chunk_reset(content,MAX_length=8000): + chunks = [] + start = 0 + while start < len(content): + end = start + MAX_length + if end >= len(content): + chunks.append(content[start:]) + break + # 尽量在 后面切分 + snippet = content[start:end] + last_tr_end = snippet.rfind("") + if last_tr_end != -1: + end = start + last_tr_end + len("") + else: + # 如果找不到 ,退回到最近的换行或空白 + last_newline = snippet.rfind("\n") + if last_newline != -1: + end = start + last_newline + else: + # 实在不行就硬切 + pass + chunks.append(content[start:end]) + start = end + return chunks +def chunk_check(data,MAX_length=8000): + slice_reset = [] + for ins in data: + content = ins["content"] + positions = ins["positions"] + if len(content) <= 8000: + slice_reset.append(ins) + else: + # 使用你的 chunk_reset 函数切分 content + chunks = chunk_reset(content, MAX_length) + for chunk in chunks: + slice_reset.append({ + "content": chunk, + "positions": positions # 共享原始位置信息 + }) + return slice_reset +def merge_short_slices(slices, min_length=30,filename=""): + """ + 合并过短的切片: + - 如果某切片 content 长度 <= min_length,则将其合并到下一个切片的开头 + - 若处于末尾无下一个切片,则反向合并到上一个切片末尾 + - content 用换行拼接,positions 顺序拼接 + + Args: + slices: [{"content": str, "positions": [...]}] + min_length: 短切片的字符长度阈值(含) + Returns: + 合并后的 slices 列表 + """ + if not slices: + return slices + + result = [] + pending_contents = [] # 缓存等待合并到"下一个"的短切片 content + pending_positions = [] # 缓存对应的 positions + + for ins in slices: + content = ins.get("content", "") or "" + positions = ins.get("positions", []) or [] + + if len(content) <= min_length: + # 暂存,等到下一个正常长度的切片再合并 + pending_contents.append(content) + pending_positions.extend(positions) + else: + # 正常切片:把暂存的短切片合并到它的开头 + if pending_contents: + merged_prefix = "\n".join(pending_contents) + content = merged_prefix + ("\n" if merged_prefix else "") + content + positions = pending_positions + positions + pending_contents = [] + pending_positions = [] + result.append({ + "content": content, + "positions": positions + }) + + # 收尾:如果末尾还有未合并的短切片(后面没有正常切片可合并) + # 则反向合并到上一个切片末尾 + if pending_contents: + merged_suffix = "\n".join(pending_contents) + if result: + last = result[-1] + last["content"] = (last["content"] or "") + ("\n" if last["content"] else "") + merged_suffix + last["positions"] = (last["positions"] or []) + pending_positions + else: + # 极端情况:所有切片都很短,整体作为一个切片返回 + result.append({ + "content": merged_suffix, + "positions": pending_positions + }) + try: + final_result = get_entity(filename) + # lower_entity = final_result.get("low_level") + otehr_data = format_entity_text(final_result) + logger.info(f"文件名实体提取成功: {otehr_data}") + logger.info("11111111111111111111111111111111111111111") + except Exception as e: + logger.warning(f"文件名实体提取失败: {e}") + otehr_data = "" # 建议加个兜底,避免后面 NameError + + for ins in result: + content = ins['content'] + if not otehr_data: + continue + newline_idx = content.find('\n') + if newline_idx == -1: + # 没有换行符,整个 content 就是第一行,直接追加 + ins['content'] = content + f'({otehr_data})' + else: + # 在第一个换行符之前插入 (lower_entity) + ins['content'] = content[:newline_idx] + f'({otehr_data})' + content[newline_idx:] + return result +def find_and_read_content_list(directory, original_filename, encoding='utf-8'): + """ + 根据原始文件名,在指定目录及其子目录下查找对应的 _content_list.json 文件并返回内容。 + """ + # 1. 去除原始文件的后缀,并拼接新的后缀 + # 加上 只获取不带后缀的文件名部分 + base_name = os.path.splitext(original_filename) + file_name = base_name[0] + target_filename = f"{file_name}_content_list.json" + + print(f"正在查找文件: {target_filename}") + + # 2. 使用 os.walk 递归遍历目录 + for root, dirs, files in os.walk(directory): + if target_filename in files: + file_path = os.path.join(root, target_filename) + + try: + with open(file_path, 'r', encoding=encoding) as f: + json_data = json.load(f) + return json_data + except json.JSONDecodeError: + print(f"文件 {file_path} 不是有效的 JSON 格式。") + return None + except Exception as e: + print(f"读取文件 {file_path} 时发生错误: {e}") + return None + + return None + +async def process_pdf_file(pdf_path: Path, image_prefix: str,filename:str) -> Optional[Dict[str, Any]]: + """异步调用 PDF 分析服务并处理响应""" + doc_result = await process_document(filename) + if doc_result is not None: + content_list, images = doc_result + if content_list and images: + replaced_content_list = data_replace(content_list, image_prefix) + slices = get_chunk_bbox(replaced_content_list) + slices_check = chunk_check(slices, 8000) + slices_check = merge_short_slices(slices_check, min_length=30,filename=filename) + return {"slices": slices_check, "images": images} + + api_url, _ = get_api_url() + try: + async with aiofiles.open(pdf_path, "rb") as f: + file_content = await f.read() + files = {"file": (filename, file_content, "application/pdf")} + + async with httpx.AsyncClient(timeout=60 * 20) as client: + response = await client.post(api_url, files=files) + + if response.status_code != 200: + logger.error(f"❌ API 请求失败,状态码: {response.status_code}, 响应: {response.text}") + return None + + result = response.json() + data = result.get("data", {}) + content_list = data.get("content_list", []) + images = data.get("images", {}) + replaced_content_list = data_replace(content_list, image_prefix) + slices = get_chunk_bbox(replaced_content_list) + slices_check = chunk_check(slices, 8000) + slices_check = merge_short_slices(slices_check, min_length=30,filename=filename) + + return {"slices": slices_check, "images": images} + + except json.JSONDecodeError: + logger.error("❌ 响应不是有效的 JSON 格式") + logger.debug(response.text) + return {"slices": [], "images": {}} + except Exception as e: + logger.error(f"处理 PDF 文件时出错: {e}", exc_info=True) + return None + finally: + release_api_url(api_url) + +async def process_other_file(pdf_path: Path, image_prefix: str, filename: str) -> Optional[Dict[str, Any]]: + """异步调用 Office 文件分析服务并处理响应""" + # 优先尝试走本地/缓存处理(保持与你原逻辑一致) + doc_result = await process_document(filename) + if doc_result is not None: + content_list, images = doc_result + if content_list and images: + replaced_content_list = data_replace(content_list, image_prefix) + slices = get_chunk_bbox(replaced_content_list) + slices_check = chunk_check(slices, 8000) + return {"slices": slices_check, "images": images} + + api_url, _ = get_api_url() + analyze_other_url = api_url.replace("/analyze-pdf", "/analyze-otherfile") + + mime_type, _ = mimetypes.guess_type(pdf_path.name) + content_type = mime_type or "application/octet-stream" + + try: + async with aiofiles.open(pdf_path, "rb") as f: + file_content = await f.read() + + files = {"file": (pdf_path.name, file_content, content_type)} + + async with httpx.AsyncClient(timeout=60 * 20) as client: + response = await client.post(analyze_other_url, files=files) + + if response.status_code != 200: + logger.error(f"❌ Office 文件 API 请求失败,状态码: {response.status_code}, 响应: {response.text}") + return None + + result = response.json() + data = result.get("data", {}) + content_list = data.get("content_list", []) + images = data.get("images", {}) + + # 后续的数据替换与切片处理逻辑 + replaced_content_list = data_replace(content_list, image_prefix) + slices = get_chunk_bbox(replaced_content_list) + slices_check = chunk_check(slices, 8000) + + return {"slices": slices_check, "images": images} + + except json.JSONDecodeError: + error_text = response.text if 'response' in locals() else "请求未到达服务器" + logger.error(f"❌ 响应不是有效的 JSON 格式: {error_text}") + return {"slices": [], "images": {}} + except Exception as e: + logger.error(f"处理 Office 文件时出错: {e}", exc_info=True) + return None + finally: + release_api_url(api_url) +if __name__ == "__main__": + + filepath = "/app/122-06A0014-B01001_发动机-维修手册_content_list.json" + try: + with open(filepath, 'r', encoding='utf-8') as file: + data = json.load(file) + except Exception as e: + print(f"读取 JSON 文件时出错:{e}") + data = [] + # print(len(data)) + start_chars = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "第", "十", + "一", "二", "三", "四", "五", "六", "七", "八", "九"] + + data = data_replace(data=data,prefix="/api/v1/knowledge/files/images/") + slices = get_chunk_bbox(data=data) + slices_1 =chunk_check(slices, 8000) + slices_2 = merge_short_slices(slices_1, min_length=30) # ← 新增这一行 + + + # for ins in slices_2: + # print(ins) + + + + + diff --git a/tree_data.json b/tree_data.json new file mode 100644 index 0000000..f777758 --- /dev/null +++ b/tree_data.json @@ -0,0 +1,799 @@ +{ +"777": { + "code": "777", + "name": "jz坚", + "level": 0, + "children":{ + "00": { + "code": "00", + "name": "总体及综合保障", + "level": 1, + "children":{}}, + "01": { + "code": "01", + "name": "船体结构", + "level": 1, + "children": { + "00":{ + "code": "00", + "name": "船体结构总论", + "level": 2, + "children":{} + }, + "10":{ + "code": "10", + "name": "主船体壳体结构", + "level": 2, + "children":{} + }, + "20":{ + "code": "20", + "name": "船体舱壁结构", + "level": 2, + "children":{} + }, + "30":{ + "code": "30", + "name": "船体甲板及平台结构", + "level": 2, + "children":{} + }, + "40":{ + "code": "40", + "name": "上层建筑(或甲板室)结构", + "level": 2, + "children":{} + }, + "50":{ + "code": "50", + "name": "舷台结构", + "level": 2, + "children":{} + }, + "60":{ + "code": "60", + "name": "专用结构", + "level": 2, + "children":{} + }, + "70":{ + "code": "70", + "name": "复合材料结构", + "level": 2, + "children":{} + }, + "80":{ + "code": "80", + "name": "基座结构", + "level": 2, + "children":{} + } + } + }, + "02": { + "code": "02", + "name": "推进系统", + "level": 1, + "children": { + "00":{ + "code": "00", + "name": "推进系统总论", + "level": 2, + "children":{ + "000":{ + "code": "000", + "name": "动力系统", + "level": 3, + "children":{}} + }}, + "10":{ + "code": "10", + "name": "H能源发生系统", + "level": 2, + "children":{} + }, + "20":{ + "code": "20", + "name": "非H能源发生系统", + "level": 2, + "children":{} + }, + "30":{ + "code": "30", + "name": "动力机组及推进装置", + "level": 2, + "children":{ + } + }, + "40":{ + "code": "40", + "name": "功率传递系统和推进器", + "level": 2, + "children":{ + } + }, + "50":{ + "code": "50", + "name": "推进保障系统", + "level": 2, + "children":{ + "006":{ + "code": "006", + "name": "电动高压空气缩机组", + "level": 3, + "children":{}}, + "007":{ + "code": "007", + "name": "电动中压空气压缩机组", + "level": 3, + "children":{}}, + "008":{ + "code": "008", + "name": "956柴油机排气消音器", + "level": 3, + "children":{}}, + "009":{ + "code": "009", + "name": "956柴油机进气消音器", + "level": 3, + "children":{}}, + "010":{ + "code": "010", + "name": "燃气轮机燃油增压泵组", + "level": 3, + "children":{}} + + } + }, + "60":{ + "code": "60", + "name": "推进监测和控制系统", + "level": 2, + "children":{ + } + } + } + }, + "03": { + "code": "03", + "name": "电力系统", + "level": 1, + "children": { + "00":{ + "code": "00", + "name": "电力系统总论", + "level": 2, + "children":{ + "000":{ + "code": "000", + "name": "电力系统", + "level": 3, + "children":{}} + } + }, + "10":{ + "code": "10", + "name": "供电系统", + "level": 2, + "children":{ + "003":{ + "code": "003", + "name": "发电机", + "level": 3, + "children":{}}, + "004":{ + "code": "004", + "name": "柴油机", + "level": 3, + "children":{}}, + "038":{ + "code": "038", + "name": "1250kw柴油发电机组箱装体", + "level": 3, + "children":{}}, + "052":{ + "code": "052", + "name": "三相无刷同步发电机", + "level": 3, + "children":{}}, + "053":{ + "code": "053", + "name": "电站分系统", + "level": 3, + "children":{}} + } + }, + "20":{ + "code": "20", + "name": "配电系统", + "level": 2, + "children":{ + "005":{ + "code": "005", + "name": "主配电板", + "level": 3, + "children":{}}, + "010":{ + "code": "010", + "name": "配电中心", + "level": 3, + "children":{}}, + "011":{ + "code": "011", + "name": "武器配电板", + "level": 3, + "children":{}}, + "012":{ + "code": "012", + "name": "两舷电源转换控制箱", + "level": 3, + "children":{}}, + "015":{ + "code": "015", + "name": "事故电力网设备", + "level": 3, + "children":{}}, + "022":{ + "code": "022", + "name": "JPD1、JPD6型贱用分配电箱", + "level": 3, + "children":{}}, + "023":{ + "code": "023", + "name": "分配电箱(JDP3)", + "level": 3, + "children":{}}, + "025":{ + "code": "025", + "name": "轻型变压器", + "level": 3, + "children":{}}, + "032":{ + "code": "032", + "name": "组合起动器", + "level": 3, + "children":{}}, + "033":{ + "code": "033", + "name": "两舷电源转换配电装置", + "level": 3, + "children":{}}, + "034":{ + "code": "034", + "name": "岸电联接箱", + "level": 3, + "children":{}}, + "039":{ + "code": "039", + "name": "磁力起动器", + "level": 3, + "children":{}}, + "047":{ + "code": "047", + "name": "磁力起动器(20A)", + "level": 3, + "children":{}}, + "054":{ + "code": "054", + "name": "配电系统", + "level": 3, + "children":{}}, + "055":{ + "code": "055", + "name": "岸电箱", + "level": 3, + "children":{}}, + "057":{ + "code": "057", + "name": "电力接触器箱", + "level": 3, + "children":{}} + } + }, + "30":{ + "code": "30", + "name": "照明系统", + "level": 2, + "children":{ + "030":{ + "code": "030", + "name": "灯光管制设备", + "level": 3, + "children":{}}, + "031":{ + "code": "031", + "name": "低照度照明转换装置", + "level": 3, + "children":{}}, + "040":{ + "code": "040", + "name": "独立式应急灯集中放电装置", + "level": 3, + "children":{}}, + "046":{ + "code": "046", + "name": "机库照明开关箱", + "level": 3, + "children":{}}, + "049":{ + "code": "049", + "name": "彩灯系统", + "level": 3, + "children":{}}, + "051":{ + "code": "051", + "name": "通道角灯控制装置", + "level": 3, + "children":{}}, + "059":{ + "code": "059", + "name": "照明系统", + "level": 3, + "children":{}}, + "060":{ + "code": "060", + "name": "照明变压器", + "level": 3, + "children":{}}, + "061":{ + "code": "061", + "name": "区域照明接触器箱", + "level": 3, + "children":{}}, + "062":{ + "code": "062", + "name": "独立式应急灯维护管理装置", + "level": 3, + "children":{}}, + "063":{ + "code": "063", + "name": "外部照明控制装置", + "level": 3, + "children":{}} + } + }, + "40":{ + "code": "40", + "name": "电气监测和控制系统", + "level": 2, + "children":{ + "002":{ + "code": "002", + "name": "电力监控分系统", + "level": 3, + "children":{}}, + "017":{ + "code": "017", + "name": "电网检测装置", + "level": 3, + "children":{}}, + "018":{ + "code": "018", + "name": "直流绝缘检测装置", + "level": 3, + "children":{}}, + "019":{ + "code": "019", + "name": "交流绝缘检测装置", + "level": 3, + "children":{}}, + "020":{ + "code": "020", + "name": "电网绝缘状态综合显控仪", + "level": 3, + "children":{}}, + "045":{ + "code": "045", + "name": "电网监测接线箱", + "level": 3, + "children":{}} + } + }, + "50":{ + "code": "50", + "name": "发电机组保障系统", + "level": 2, + "children":{} + }, + "60":{ + "code": "60", + "name": "电缆敷设", + "level": 2, + "children":{} + }, + "70":{ + "code": "70", + "name": "综合电缆系统", + "level": 2, + "children":{ + } + }, + "80":{ + "code": "80", + "name": "电场、磁场防护系统", + "level": 2, + "children":{ + "016":{ + "code": "016", + "name": "消磁系统", + "level": 3, + "children":{ + "0161":{ + "code": "0161", + "name": "消磁变流装置", + "level": 4, + "children":{}}, + "0162":{ + "code": "0162", + "name": "消磁接线箱", + "level": 4, + "children":{}}, + "0163":{ + "code": "0163", + "name": "消磁配电板", + "level": 4, + "children":{}}, + "0164":{ + "code": "0164", + "name": "其他", + "level": 4, + "children":{}} + }} + } + }, + "90":{ + "code": "90", + "name": "专用项目03", + "level": 2, + "children":{ + "013":{ + "code": "013", + "name": "操舵仪", + "level": 3, + "children":{}}, + "014":{ + "code": "014", + "name": "舵传令钟", + "level": 3, + "children":{}}, + "029":{ + "code": "029", + "name": "阴极保护装置", + "level": 3, + "children":{}}, + "036":{ + "code": "036", + "name": "电工试验板", + "level": 3, + "children":{}} + } + } + } + }, + "04": { + "code": "04", + "name": "作战系统", + "level": 1, + "children": { + "00":{ + "code": "00", + "name": "作战系统总论", + "level": 2, + "children":{ + "000":{ + "code": "000", + "name": "作战系统", + "level": 3, + "children":{}} + } + }, + "10":{ + "code": "10", + "name": "信息感知", + "level": 2, + "children":{ + }, + "20":{ + "code": "20", + "name": "本贱作战指挥控制", + "level": 2, + "children":{ + } + }, + "30":{ + "code": "30", + "name": "编队作战指挥", + "level": 2, + "children":{ + "001":{ + "code": "001", + "name": "编队作战指挥系统", + "level": 3, + "children":{}}, + "002":{ + "code": "002", + "name": "HZBJ-2B编队指控设备", + "level": 3, + "children":{}}, + "003":{ + "code": "003", + "name": "编队模拟训练设备", + "level": 3, + "children":{}}, + "004":{ + "code": "004", + "name": "编队记录设备", + "level": 3, + "children":{}} + } + }, + "40":{ + "code": "40", + "name": "武器控制及保障", + "level": 2, + "children":{ + } + }, + "50":{ + "code": "50", + "name": "综合通信", + "level": 2, + "children":{ + } + } + } + }, + "05": { + "code": "05", + "name": "船舶保障系统", + "level": 1, + "children": {} + }, + "06": { + "code": "06", + "name": "航空保障系统", + "level": 1, + "children": {} + }, + "07": { + "code": "07", + "name": "特种保障系统", + "level": 1, + "children": {} + }, + "08": { + "code": "08", + "name": "船舶装置", + "level": 1, + "children": {} + }, + "09": { + "code": "09", + "name": "专用装备/系统", + "level": 1, + "children": {} + }, + "10": { + "code": "10", + "name": "训练系统", + "level": 1, + "children": {} + }, + "12": { + "code": "12", + "name": "测试、维修试和保障系统", + "level": 1, + "children": {} + } + }, + "11": { + "code": "11", + "name": "汽车配件", + "level": 1, + "children":{ + "A1":{ + "code": "A1", + "name": "汽车主配件", + "level": 2, + "children":{ + "B01001":{ + "code": "B01001", + "name": "发动机", + "level": 3, + "children":{}}, + "B01002":{ + "code": "B01002", + "name": "螺旋桨", + "level": 3, + "children":{}}, + "B01003":{ + "code": "B01003", + "name": "雷达", + "level": 3, + "children":{}}, + "B01005":{ + "code": "B01005", + "name": "声呐", + "level": 3, + "children":{}}, + "014":{ + "code": "014", + "name": "螺旋桨", + "level": 3, + "children":{}}, + "015":{ + "code": "015", + "name": "船舶主发动机", + "level": 3, + "children":{}}, + "B01006":{ + "code": "B01006", + "name": "马达", + "level": 3, + "children":{}}, + "B01007":{ + "code": "B01007", + "name": "泵", + "level": 3, + "children":{}}, + "B01008":{ + "code": "B01008", + "name": "阀门", + "level": 3, + "children":{}}, + "B01009":{ + "code": "B01009", + "name": "变速箱", + "level": 3, + "children":{}}, + "B01010":{ + "code": "B01010", + "name": "液压系统", + "level": 3, + "children":{}}, + "B01011":{ + "code": "B01011", + "name": "发电机", + "level": 3, + "children":{}}, + "B01012":{ + "code": "B01012", + "name": "空压机", + "level": 3, + "children":{}}, + "B01013":{ + "code": "B01013", + "name": "冷却系统", + "level": 3, + "children":{}}, + "B01014":{ + "code": "B01014", + "name": "传动轴", + "level": 3, + "children":{}}, + "B01015":{ + "code": "B01015", + "name": "制动器", + "level": 3, + "children":{}} + }} +} +} +} +}, +"101":{ + "code":"101", + "name":"nc贱", + "level":0, + "children":{ + "04": { + "code": "04", + "name": "作战系统", + "level": 1, + "children":{ + "40":{"code": "40", + "name": "武器控制及保障", + "level": 2, + "children":{ + "011":{"code": "011", + "name": "AAAzzz型跟踪雷达", + "level": 3, + "children":{}}} + } + }} + } +}, +"122":{ + "code": "122", + "name": "122舰", + "level": 0, + "children":{ + "06":{ + "code": "06", + "name": "设备手册", + "level": 1, + "children":{ + "A0":{ + "code": "A0", + "name": "06A0014", + "level": 2, + "children":{ + "B01001":{ + "code": "B01001", + "name": "发动机", + "level": 3, + "children":{}}, + "B01002":{ + "code": "B01002", + "name": "螺旋桨", + "level": 3, + "children":{}}, + "B01003":{ + "code": "B01003", + "name": "雷达", + "level": 3, + "children":{}}, + "B01005":{ + "code": "B01005", + "name": "声呐", + "level": 3, + "children":{}}, + "B01006":{ + "code": "B01006", + "name": "马达", + "level": 3, + "children":{}}, + "B01007":{ + "code": "B01007", + "name": "泵", + "level": 3, + "children":{}}, + "B01008":{ + "code": "B01008", + "name": "阀门", + "level": 3, + "children":{}}, + "B01009":{ + "code": "B01009", + "name": "变速箱", + "level": 3, + "children":{}}, + "B01010":{ + "code": "B01010", + "name": "液压系统", + "level": 3, + "children":{}}, + "B01011":{ + "code": "B01011", + "name": "发电机", + "level": 3, + "children":{}}, + "B01012":{ + "code": "B01012", + "name": "空压机", + "level": 3, + "children":{}}, + "B01013":{ + "code": "B01013", + "name": "冷却系统", + "level": 3, + "children":{}}, + "B01014":{ + "code": "B01014", + "name": "传动轴", + "level": 3, + "children":{}}, + "B01015":{ + "code": "B01015", + "name": "制动器", + "level": 3, + "children":{}} + } + } + } + } + } +} +} + + diff --git a/wxproject.json b/wxproject.json new file mode 100644 index 0000000..b6f49d8 --- /dev/null +++ b/wxproject.json @@ -0,0 +1,1417 @@ +{ + "entities": [ + { + "type": "故障模式", + "properties": { + "名称": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大", + "故障现象": "主机运行中振动异常增大", + "故障原因": "主轴承或连杆大端轴承磨损", + "维修方案": "执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "曲轴主轴颈跳动超差导致主机运行中振动异常增大", + "故障现象": "主机运行中振动异常增大", + "故障原因": "曲轴主轴颈跳动超差", + "维修方案": "执行以下维修项目:MTO03 检测曲轴主轴颈跳动量", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低", + "故障现象": "单缸功率下降、排温偏低", + "故障原因": "活塞头烧蚀或活塞环断裂", + "维修方案": "执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "气缸套严重磨损导致单缸功率下降、排温偏低", + "故障现象": "单缸功率下降、排温偏低", + "故障原因": "气缸套严重磨损", + "维修方案": "执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低", + "故障现象": "单缸功率下降、排温偏低", + "故障原因": "喷油嘴偶件雾化不良", + "维修方案": "执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高", + "故障现象": "排气温度异常升高", + "故障原因": "排气阀密封面磨损或阀座烧蚀", + "维修方案": "执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "涡轮增压器轴承损坏导致排气温度异常升高", + "故障现象": "排气温度异常升高", + "故障原因": "涡轮增压器轴承损坏", + "维修方案": "执行以下维修项目:MT015 更换涡轮增压器轴承组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏", + "故障现象": "扫气箱内发现润滑油泄漏", + "故障原因": "活塞杆填料函密封失效", + "维修方案": "执行以下维修项目:MTO01保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "缸盖密封环老化失效导致主机启动困难或压缩压力不足", + "故障现象": "主机启动困难或压缩压力不足", + "故障原因": "缸盖密封环老化失效", + "维修方案": "执行以下维修项目:MT001保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "喷油器工作不一致导致主机功率输出不稳定", + "故障现象": "主机功率输出不稳定", + "故障原因": "喷油器工作不一致", + "维修方案": "执行以下维修项目:MT019 排除喷油器雾化不良故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "调速系统响应异常导致主机功率输出不稳定", + "故障现象": "主机功率输出不稳定", + "故障原因": "调速系统响应异常", + "维修方案": "执行以下维修项目:MT020 排除主机功率异常波动故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高", + "故障现象": "空冷器后扫气温度持续偏高", + "故障原因": "空冷器管束芯体结垢或堵塞", + "维修方案": "执行以下维修项目:MT016 清洗空冷器管束芯体", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞环磨损或断裂导致主机润滑油消耗异常增加", + "故障现象": "主机润滑油消耗异常增加", + "故障原因": "活塞环磨损或断裂", + "维修方案": "执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "活塞杆填料函磨损导致", + "故障现象": "", + "故障原因": "活塞杆填料函磨损", + "维修方案": "执行以下维修项目:MT001保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "高压油管接头密封失效导致高压燃油管路附近有油渍", + "故障现象": "高压燃油管路附近有油渍", + "故障原因": "高压油管接头密封失效", + "维修方案": "执行以下维修项目:MT014 更换高压油泵柱塞偶件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "润滑油压力骤降导致主机紧急停机", + "故障现象": "主机紧急停机", + "故障原因": "润滑油压力骤降", + "维修方案": "执行以下维修项目:MT001保养机座与机架组件", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "故障模式", + "properties": { + "名称": "多缸燃烧严重失衡导致主机紧急停机", + "故障现象": "主机紧急停机", + "故障原因": "多缸燃烧严重失衡", + "维修方案": "执行以下维修项目:MT020 排除主机功率异常波动故障", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n
序号故障现象故障原因维修项目
1主机运行中振动异常增大主轴承或连杆大端轴承磨损执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损
曲轴主轴颈跳动超差执行以下维修项目:MTO03 检测曲轴主轴颈跳动量
2单缸功率下降、排温偏低活塞头烧蚀或活塞环断裂执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀
气缸套严重磨损执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套
喷油嘴偶件雾化不良执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障
3排气温度异常升高排气阀密封面磨损或阀座烧蚀执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座
涡轮增压器轴承损坏执行以下维修项目:MT015 更换涡轮增压器轴承组件
4扫气箱内发现润滑油泄漏活塞杆填料函密封失效执行以下维修项目:MTO01保养机座与机架组件
5主机启动困难或压缩压力不足缸盖密封环老化失效执行以下维修项目:MT001保养机座与机架组件
6主机功率输出不稳定喷油器工作不一致执行以下维修项目:MT019 排除喷油器雾化不良故障
调速系统响应异常执行以下维修项目:MT020 排除主机功率异常波动故障
7空冷器后扫气温度持续偏高空冷器管束芯体结垢或堵塞执行以下维修项目:MT016 清洗空冷器管束芯体
8主机润滑油消耗异常增加活塞环磨损或断裂执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环
活塞杆填料函磨损执行以下维修项目:MT001保养机座与机架组件
9高压燃油管路附近有油渍高压油管接头密封失效执行以下维修项目:MT014 更换高压油泵柱塞偶件
10主机紧急停机润滑油压力骤降执行以下维修项目:MT001保养机座与机架组件
多缸燃烧严重失衡执行以下维修项目:MT020 排除主机功率异常波动故障
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_49dd7ae4-b823-4ee0-941d-97b7afb1fb34.pdf#page=15\", \"bbox\": [{\"page_idx\": 15, \"bbox\": [146, 210, 354, 233]}, {\"page_idx\": 15, \"bbox\": [137, 272, 858, 901]}]}]" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "发动机的维修工作" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "保养机座与机架组件", + "编号": "MT001", + "内容": "表 4.3 MT001 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT00101机座与机架组件保养机座与机架组件1MJY级
安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。
安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。
序号名称规格/型号数量及单位备注
1液压升降平台HLP-30001台用于接近主机上部
2扭矩扳手TB-200N·m1把精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FIT1套厂家配套
4工业吸油泵VAC-0IL501台防爆型
2)备品备件
名称规格/型号消耗数量备注
1高压燃油泵HD-45A2个原厂件
2涡轮增压器TC-80B1个耐高温氟橡胶
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1柴油机专用润滑油Shell Mysella S5N8050L符合MAN 97101标准
2无纺布抹布Industrial Grade5张不掉屑
3清洗剂CRC Brakleen1罐用于清洁滤座
\n\n
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师主导保养流程
2电气专业1技师监控主机ECU状 态
修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识;
3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油;
图 MT001.1旋松螺塞
(2)检查排出机油中是否有金属屑,若有则记录并上报异常。
图MT001.2检查
2)更换机油滤芯
\n图 MT001.3 拆卸\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\n图 MT001.4 滤芯安装扭矩示意图\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\n图 MT001.5 滤芯安装扭矩示意图\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\n(2)静置 10 分钟后复查油位,补充至标准范围。\n图 MT001.6 油位检查\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\n图 MT001.7 安装放油螺塞\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\n\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\n图 MT001.8 油污清理\n
3)拆除“禁止启动”牌,通知集控室保养完成。
验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下);
2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。
页码:2/2版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.3 MT001 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT00101机座与机架组件保养机座与机架组件1MJY级
安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。
安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。
序号名称规格/型号数量及单位备注
1液压升降平台HLP-30001台用于接近主机上部
2扭矩扳手TB-200N·m1把精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FIT1套厂家配套
4工业吸油泵VAC-0IL501台防爆型
2)备品备件
名称规格/型号消耗数量备注
1高压燃油泵HD-45A2个原厂件
2涡轮增压器TC-80B1个耐高温氟橡胶
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1柴油机专用润滑油Shell Mysella S5N8050L符合MAN 97101标准
2无纺布抹布Industrial Grade5张不掉屑
3清洗剂CRC Brakleen1罐用于清洁滤座
\\n\\n
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师主导保养流程
2电气专业1技师监控主机ECU状 态
修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识;
3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油;
图 MT001.1旋松螺塞
(2)检查排出机油中是否有金属屑,若有则记录并上报异常。
图MT001.2检查
2)更换机油滤芯
\\n图 MT001.3 拆卸\\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\\n图 MT001.4 滤芯安装扭矩示意图\\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\\n图 MT001.5 滤芯安装扭矩示意图\\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\\n(2)静置 10 分钟后复查油位,补充至标准范围。\\n图 MT001.6 油位检查\\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\\n图 MT001.7 安装放油螺塞\\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\\n\\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\\n图 MT001.8 油污清理\\n
3)拆除“禁止启动”牌,通知集控室保养完成。
验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下);
2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。
页码:2/2版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3e87ad34-4dc0-427a-b3a2-364164392059.pdf#page=20\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "机座与机架组件", + "组成编码": "01", + "维修项目名称": "保养机座与机架组件", + "维修项目编号": "MT001", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.3 MT001 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT00101机座与机架组件保养机座与机架组件1MJY级
安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。
安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。
序号名称规格/型号数量及单位备注
1液压升降平台HLP-30001台用于接近主机上部
2扭矩扳手TB-200N·m1把精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FIT1套厂家配套
4工业吸油泵VAC-0IL501台防爆型
2)备品备件
名称规格/型号消耗数量备注
1高压燃油泵HD-45A2个原厂件
2涡轮增压器TC-80B1个耐高温氟橡胶
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1柴油机专用润滑油Shell Mysella S5N8050L符合MAN 97101标准
2无纺布抹布Industrial Grade5张不掉屑
3清洗剂CRC Brakleen1罐用于清洁滤座
\\n\\n
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师主导保养流程
2电气专业1技师监控主机ECU状 态
修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识;
3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油;
图 MT001.1旋松螺塞
(2)检查排出机油中是否有金属屑,若有则记录并上报异常。
图MT001.2检查
2)更换机油滤芯
\\n图 MT001.3 拆卸\\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\\n图 MT001.4 滤芯安装扭矩示意图\\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\\n图 MT001.5 滤芯安装扭矩示意图\\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\\n(2)静置 10 分钟后复查油位,补充至标准范围。\\n图 MT001.6 油位检查\\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\\n图 MT001.7 安装放油螺塞\\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\\n\\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\\n图 MT001.8 油污清理\\n
3)拆除“禁止启动”牌,通知集控室保养完成。
验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下);
2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。
页码:2/2版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3e87ad34-4dc0-427a-b3a2-364164392059.pdf#page=20\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检查主轴承座安装状态", + "编号": "MT002", + "内容": "表 4.4 MT002 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0020101焊接机座组件检查主轴承座安装状态6M/200hJY级
安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。
安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。
序号名称规格/型号数量及单位备注
1激光对中仪SKF TKSA 711套用于轴承同轴度检测
2塞尺组0.02 -1.00 mm1套精度±0.005mm
3液压拉伸器HYTORC AVANTI-101台用于地脚螺栓预紧
4内径千分尺200-300mm1把校验有效期内
2)备品备件
名称规格/型号消耗数量备注
1排气阀PV-1001
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁酒精AR Grade100mL
2防锈纸VCI-2002张
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师
修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;
\n图 MT002.1 换油前清洗\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\n图 MT002.2 检查\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\n图 MT002.3 塞尺测量\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\n图 MT002.4 激光对中仪\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\n图 MT002.5 测量轴线偏移量\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\n\n
判定与处理
1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。
验收标准
1.主轴承座与机座结合面间隙≤0.05mm(全周);
2.相邻主轴承同轴度偏差≤0.08 mm/m;
3.地脚螺栓预紧力在设计值 ±5% 范围内。
页码:1/1版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.4 MT002 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0020101焊接机座组件检查主轴承座安装状态6M/200hJY级
安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。
安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。
序号名称规格/型号数量及单位备注
1激光对中仪SKF TKSA 711套用于轴承同轴度检测
2塞尺组0.02 -1.00 mm1套精度±0.005mm
3液压拉伸器HYTORC AVANTI-101台用于地脚螺栓预紧
4内径千分尺200-300mm1把校验有效期内
2)备品备件
名称规格/型号消耗数量备注
1排气阀PV-1001
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁酒精AR Grade100mL
2防锈纸VCI-2002张
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师
修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;
\\n图 MT002.1 换油前清洗\\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\\n图 MT002.2 检查\\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\\n图 MT002.3 塞尺测量\\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\\n图 MT002.4 激光对中仪\\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\\n图 MT002.5 测量轴线偏移量\\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\\n\\n
判定与处理
1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。
验收标准
1.主轴承座与机座结合面间隙≤0.05mm(全周);
2.相邻主轴承同轴度偏差≤0.08 mm/m;
3.地脚螺栓预紧力在设计值 ±5% 范围内。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1416a6cb-7b91-466b-9287-ff15f275e8c7.pdf#page=23\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "焊接机座组件", + "组成编码": "0101", + "维修项目名称": "检查主轴承座安装状态", + "维修项目编号": "MT002", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.4 MT002 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0020101焊接机座组件检查主轴承座安装状态6M/200hJY级
安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。
安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。
序号名称规格/型号数量及单位备注
1激光对中仪SKF TKSA 711套用于轴承同轴度检测
2塞尺组0.02 -1.00 mm1套精度±0.005mm
3液压拉伸器HYTORC AVANTI-101台用于地脚螺栓预紧
4内径千分尺200-300mm1把校验有效期内
2)备品备件
名称规格/型号消耗数量备注
1排气阀PV-1001
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁酒精AR Grade100mL
2防锈纸VCI-2002张
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师
修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;
\\n图 MT002.1 换油前清洗\\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\\n图 MT002.2 检查\\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\\n图 MT002.3 塞尺测量\\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\\n图 MT002.4 激光对中仪\\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\\n图 MT002.5 测量轴线偏移量\\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\\n\\n
判定与处理
1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。
验收标准
1.主轴承座与机座结合面间隙≤0.05mm(全周);
2.相邻主轴承同轴度偏差≤0.08 mm/m;
3.地脚螺栓预紧力在设计值 ±5% 范围内。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1416a6cb-7b91-466b-9287-ff15f275e8c7.pdf#page=23\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检测曲轴主轴颈跳动量", + "编号": "MT003", + "内容": "表 4.5 MT003 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0030201曲轴组件检测曲轴主轴颈跳动量1A/8000hJY级
安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。
安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg
序号名称规格/型号数量及单位备注
1精密千分表Mitutoyo 543-791D1套分辨率0.001 mm
2磁力表座Starrett 16B1个带万向关节
3V型支撑架Custom-Crank-V3002组承重≥500kg
\n\n
4盘车手轮OEM-MAN-BW-PCW1个原厂配套
\n\n
名称规格/型号消耗数量备注
1排气阀PV-1001
\n\n
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%50mL清洁轴颈表面
2无绒擦拭布Kimwipe EX-L3张防刮伤轴面
\n\n
序号专业人数技能等级备注
1机械专业2总工+工程师总工复刻数据
\n图 MT003.1 清洁\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\n图 MT003.2 标记测量基准点\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\n2)安装千分表\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\n图 MT003.3 千分尺\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\n(2)预压千分表 0.3 mm,归零。\n3)盘车测量\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\n(2)跳动量 = 最大值 - 最小值;\n(3)重复上述步骤,依次测量其余主轴颈。\n数据判定\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\n\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.5 MT003 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0030201曲轴组件检测曲轴主轴颈跳动量1A/8000hJY级
安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。
安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg
序号名称规格/型号数量及单位备注
1精密千分表Mitutoyo 543-791D1套分辨率0.001 mm
2磁力表座Starrett 16B1个带万向关节
3V型支撑架Custom-Crank-V3002组承重≥500kg
\\n\\n
4盘车手轮OEM-MAN-BW-PCW1个原厂配套
\\n\\n
名称规格/型号消耗数量备注
1排气阀PV-1001
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%50mL清洁轴颈表面
2无绒擦拭布Kimwipe EX-L3张防刮伤轴面
\\n\\n
序号专业人数技能等级备注
1机械专业2总工+工程师总工复刻数据
\\n图 MT003.1 清洁\\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\\n图 MT003.2 标记测量基准点\\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\\n2)安装千分表\\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\\n图 MT003.3 千分尺\\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\\n(2)预压千分表 0.3 mm,归零。\\n3)盘车测量\\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\\n(2)跳动量 = 最大值 - 最小值;\\n(3)重复上述步骤,依次测量其余主轴颈。\\n数据判定\\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\\n\\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8e20bf10-c161-4a3f-89fc-2cd7afd91b16.pdf#page=27\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "曲轴组件", + "组成编码": "0201", + "维修项目名称": "检测曲轴主轴颈跳动量", + "维修项目编号": "MT003", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.5 MT003 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0030201曲轴组件检测曲轴主轴颈跳动量1A/8000hJY级
安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。
安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg
序号名称规格/型号数量及单位备注
1精密千分表Mitutoyo 543-791D1套分辨率0.001 mm
2磁力表座Starrett 16B1个带万向关节
3V型支撑架Custom-Crank-V3002组承重≥500kg
\\n\\n
4盘车手轮OEM-MAN-BW-PCW1个原厂配套
\\n\\n
名称规格/型号消耗数量备注
1排气阀PV-1001
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%50mL清洁轴颈表面
2无绒擦拭布Kimwipe EX-L3张防刮伤轴面
\\n\\n
序号专业人数技能等级备注
1机械专业2总工+工程师总工复刻数据
\\n图 MT003.1 清洁\\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\\n图 MT003.2 标记测量基准点\\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\\n2)安装千分表\\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\\n图 MT003.3 千分尺\\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\\n(2)预压千分表 0.3 mm,归零。\\n3)盘车测量\\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\\n(2)跳动量 = 最大值 - 最小值;\\n(3)重复上述步骤,依次测量其余主轴颈。\\n数据判定\\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\\n\\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8e20bf10-c161-4a3f-89fc-2cd7afd91b16.pdf#page=27\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换连杆大端轴承", + "编号": "MT004", + "内容": "表 4.6 MT004 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT004020201连杆大端轴承更换连杆大端轴承2A/12000hJT级
安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。
安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。
序号名称规格/型号数量及单位备注
1液压拉伸器HYTORC RS-201套
2扭矩扳手Norbar 1500N·m1把精度±2%
3轴承安装导向套OEM-MAN-BW-BG-041个
4内窥镜GE Mentor Visual iQ1台
2)备品备件
名称规格/型号消耗数量备注
1连杆大端轴承上瓦MAN 5L35MC-BRG-UP1副原厂高锡合金
2连杆大端轴承下瓦MAN 5L35MC-BRG-DN1副
3连杆螺栓M30 ×2.0 Grade 12.92根次性使用,强制更换
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\n\n
1轴承装配润滑脂Kluber Isoflex LDS18 Special A10g仅涂瓦背
2螺纹锁固胶Loctite 2701少量用于螺栓螺纹(如适用)
3清洗剂Brulin 815GD200mL清洁连杆结合面
\n4)人力人员\n\n
序号专业人数技能等级备注
1机械专业3总工+2x工程师总工监督关键步骤
\n修理步骤及工艺\n更换前提确认\n1)主机已完成停机冷却,滑油系统泄压;\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\n拆卸旧轴承\n1)拆连杆盖\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\n(2)取下螺栓及连杆大端盖,放置于专用托架。\n2)取出旧轴承\n(1)轻敲连杆体侧面,使下瓦自然脱落;\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\n安装新轴承\n1)清洁与检查\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\n(2)目视检查新瓦背面涂层均匀,无裂纹。\n2)装配\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\n(2)将下瓦装入连杆盖,同样对准定位;\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\n3)紧固螺栓\n(1)安装新连杆螺栓,手工旋入到底;\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\n(3)最终用角度法复核(如适用)。\n图 MT004.1 连杆大端轴承结构分解图\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.6 MT004 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT004020201连杆大端轴承更换连杆大端轴承2A/12000hJT级
安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。
安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。
序号名称规格/型号数量及单位备注
1液压拉伸器HYTORC RS-201套
2扭矩扳手Norbar 1500N·m1把精度±2%
3轴承安装导向套OEM-MAN-BW-BG-041个
4内窥镜GE Mentor Visual iQ1台
2)备品备件
名称规格/型号消耗数量备注
1连杆大端轴承上瓦MAN 5L35MC-BRG-UP1副原厂高锡合金
2连杆大端轴承下瓦MAN 5L35MC-BRG-DN1副
3连杆螺栓M30 ×2.0 Grade 12.92根次性使用,强制更换
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1轴承装配润滑脂Kluber Isoflex LDS18 Special A10g仅涂瓦背
2螺纹锁固胶Loctite 2701少量用于螺栓螺纹(如适用)
3清洗剂Brulin 815GD200mL清洁连杆结合面
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业3总工+2x工程师总工监督关键步骤
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成停机冷却,滑油系统泄压;\\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\\n拆卸旧轴承\\n1)拆连杆盖\\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\\n(2)取下螺栓及连杆大端盖,放置于专用托架。\\n2)取出旧轴承\\n(1)轻敲连杆体侧面,使下瓦自然脱落;\\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\\n安装新轴承\\n1)清洁与检查\\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\\n(2)目视检查新瓦背面涂层均匀,无裂纹。\\n2)装配\\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\\n(2)将下瓦装入连杆盖,同样对准定位;\\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\\n3)紧固螺栓\\n(1)安装新连杆螺栓,手工旋入到底;\\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\\n(3)最终用角度法复核(如适用)。\\n图 MT004.1 连杆大端轴承结构分解图\\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3c8cb01b-bfd0-4e6d-9fd7-d7490b0cc28f.pdf#page=29\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "连杆大端轴承", + "组成编码": "020201", + "维修项目名称": "更换连杆大端轴承", + "维修项目编号": "MT004", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.6 MT004 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT004020201连杆大端轴承更换连杆大端轴承2A/12000hJT级
安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。
安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。
序号名称规格/型号数量及单位备注
1液压拉伸器HYTORC RS-201套
2扭矩扳手Norbar 1500N·m1把精度±2%
3轴承安装导向套OEM-MAN-BW-BG-041个
4内窥镜GE Mentor Visual iQ1台
2)备品备件
名称规格/型号消耗数量备注
1连杆大端轴承上瓦MAN 5L35MC-BRG-UP1副原厂高锡合金
2连杆大端轴承下瓦MAN 5L35MC-BRG-DN1副
3连杆螺栓M30 ×2.0 Grade 12.92根次性使用,强制更换
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1轴承装配润滑脂Kluber Isoflex LDS18 Special A10g仅涂瓦背
2螺纹锁固胶Loctite 2701少量用于螺栓螺纹(如适用)
3清洗剂Brulin 815GD200mL清洁连杆结合面
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业3总工+2x工程师总工监督关键步骤
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成停机冷却,滑油系统泄压;\\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\\n拆卸旧轴承\\n1)拆连杆盖\\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\\n(2)取下螺栓及连杆大端盖,放置于专用托架。\\n2)取出旧轴承\\n(1)轻敲连杆体侧面,使下瓦自然脱落;\\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\\n安装新轴承\\n1)清洁与检查\\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\\n(2)目视检查新瓦背面涂层均匀,无裂纹。\\n2)装配\\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\\n(2)将下瓦装入连杆盖,同样对准定位;\\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\\n3)紧固螺栓\\n(1)安装新连杆螺栓,手工旋入到底;\\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\\n(3)最终用角度法复核(如适用)。\\n图 MT004.1 连杆大端轴承结构分解图\\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3c8cb01b-bfd0-4e6d-9fd7-d7490b0cc28f.pdf#page=29\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换连杆小段轴承", + "编号": "MT005", + "内容": "表 4.7 MT005 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT005020203连杆小段轴承更换连杆小段轴承2A/12000hJY级
安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。
安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。
序号名称规格/型号数量及单位备注
1活塞吊装专用吊具OEM-MAN-BW-PST-051套带缓冲橡胶夹头
2感应加热器EFD Induction Minac161台温控精度±5℃
3内径千分尺40 - 50 mm1把校验有效期内
4铜棒与塑料锤Φ20×300 mm各1把
2)备品备件
名称规格/型号消耗数量备注
1连杆小端衬套(上)MAN 5L35MC-BUSH-UP1件锡青铜基
2连杆小端衬套(下)MAN 5L35MC-BUSH-DN1件
3活塞销卡簧Φ50×2.5 mm2个不锈钢,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\n\n
1高温装配润滑脂Molycote G-10525g
2清洗剂Brulin 815GD150mL
3耐高温标记笔Markal 900°F1支
\n4)人力人员\n\n
序号专业人数技能等级备注
1机械专业2工程师+技师工程师主导热装
\n修理步骤及工艺\n更换前提确认\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\n拆卸旧衬套\n1)抽出活塞-连杆总成\n(1)拆除缸头、喷油器及冷却水管路;\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\n2)压出旧衬套\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\n安装新衬套\n1)清洁与预装检查\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\n(2)测量座孔内径,记录作为过盈量计算依据。\n2)热装新衬套\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\n(2)迅速将热衬套套入连杆小端,确保完全到位;\n(3)自然冷却至室温,禁止强制冷却。\n3)精铰与研配(如需要)\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\n组装活塞销与卡簧\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\n\n
验收标准
1.衬套与座孔过盈配合牢固,无松动或轴向位移;
2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。
页码:1/1版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.7 MT005 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT005020203连杆小段轴承更换连杆小段轴承2A/12000hJY级
安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。
安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。
序号名称规格/型号数量及单位备注
1活塞吊装专用吊具OEM-MAN-BW-PST-051套带缓冲橡胶夹头
2感应加热器EFD Induction Minac161台温控精度±5℃
3内径千分尺40 - 50 mm1把校验有效期内
4铜棒与塑料锤Φ20×300 mm各1把
2)备品备件
名称规格/型号消耗数量备注
1连杆小端衬套(上)MAN 5L35MC-BUSH-UP1件锡青铜基
2连杆小端衬套(下)MAN 5L35MC-BUSH-DN1件
3活塞销卡簧Φ50×2.5 mm2个不锈钢,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1高温装配润滑脂Molycote G-10525g
2清洗剂Brulin 815GD150mL
3耐高温标记笔Markal 900°F1支
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业2工程师+技师工程师主导热装
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\\n拆卸旧衬套\\n1)抽出活塞-连杆总成\\n(1)拆除缸头、喷油器及冷却水管路;\\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\\n2)压出旧衬套\\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\\n安装新衬套\\n1)清洁与预装检查\\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\\n(2)测量座孔内径,记录作为过盈量计算依据。\\n2)热装新衬套\\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\\n(2)迅速将热衬套套入连杆小端,确保完全到位;\\n(3)自然冷却至室温,禁止强制冷却。\\n3)精铰与研配(如需要)\\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\\n组装活塞销与卡簧\\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\\n\\n
验收标准
1.衬套与座孔过盈配合牢固,无松动或轴向位移;
2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_989f92a1-7f51-4cdf-8bbb-2aeba9ccac07.pdf#page=31\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "连杆小段轴承", + "组成编码": "020203", + "维修项目名称": "更换连杆小段轴承", + "维修项目编号": "MT005", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.7 MT005 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT005020203连杆小段轴承更换连杆小段轴承2A/12000hJY级
安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。
安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。
序号名称规格/型号数量及单位备注
1活塞吊装专用吊具OEM-MAN-BW-PST-051套带缓冲橡胶夹头
2感应加热器EFD Induction Minac161台温控精度±5℃
3内径千分尺40 - 50 mm1把校验有效期内
4铜棒与塑料锤Φ20×300 mm各1把
2)备品备件
名称规格/型号消耗数量备注
1连杆小端衬套(上)MAN 5L35MC-BUSH-UP1件锡青铜基
2连杆小端衬套(下)MAN 5L35MC-BUSH-DN1件
3活塞销卡簧Φ50×2.5 mm2个不锈钢,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
\\n\\n
1高温装配润滑脂Molycote G-10525g
2清洗剂Brulin 815GD150mL
3耐高温标记笔Markal 900°F1支
\\n4)人力人员\\n\\n
序号专业人数技能等级备注
1机械专业2工程师+技师工程师主导热装
\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\\n拆卸旧衬套\\n1)抽出活塞-连杆总成\\n(1)拆除缸头、喷油器及冷却水管路;\\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\\n2)压出旧衬套\\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\\n安装新衬套\\n1)清洁与预装检查\\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\\n(2)测量座孔内径,记录作为过盈量计算依据。\\n2)热装新衬套\\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\\n(2)迅速将热衬套套入连杆小端,确保完全到位;\\n(3)自然冷却至室温,禁止强制冷却。\\n3)精铰与研配(如需要)\\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\\n组装活塞销与卡簧\\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\\n\\n
验收标准
1.衬套与座孔过盈配合牢固,无松动或轴向位移;
2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_989f92a1-7f51-4cdf-8bbb-2aeba9ccac07.pdf#page=31\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "拆检活塞头磨损情况", + "编号": "MT006", + "内容": "表 4.8 MT006 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT006030201活塞头拆检活塞头磨损情况1A/8000hJY级
安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。
安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配350mm活塞
2内窥镜GE Mentor Visual iQ1台
3深度规0-150mm1把
4放大镜10× with scale1个
2)备品备件
名称规格/型号消耗数量备注
11本项目为检查类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1积碳清洗剂CRC Carbon CleanPro200mL环保型
2无纺布Industrial Grade5张
3防锈油CRC 3-3650mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。
抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态
1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查
(1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。
判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008;
3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.8 MT006 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT006030201活塞头拆检活塞头磨损情况1A/8000hJY级
安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。
安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配350mm活塞
2内窥镜GE Mentor Visual iQ1台
3深度规0-150mm1把
4放大镜10× with scale1个
2)备品备件
名称规格/型号消耗数量备注
11本项目为检查类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1积碳清洗剂CRC Carbon CleanPro200mL环保型
2无纺布Industrial Grade5张
3防锈油CRC 3-3650mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。
抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态
1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查
(1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。
判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008;
3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_5617ece6-b596-47da-a2c7-4218c18390b7.pdf#page=32\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "活塞头", + "组成编码": "030201", + "维修项目名称": "拆检活塞头磨损情况", + "维修项目编号": "MT006", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.8 MT006 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT006030201活塞头拆检活塞头磨损情况1A/8000hJY级
安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。
安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配350mm活塞
2内窥镜GE Mentor Visual iQ1台
3深度规0-150mm1把
4放大镜10× with scale1个
2)备品备件
名称规格/型号消耗数量备注
11本项目为检查类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1积碳清洗剂CRC Carbon CleanPro200mL环保型
2无纺布Industrial Grade5张
3防锈油CRC 3-3650mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。
抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态
1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查
(1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。
判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008;
3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_5617ece6-b596-47da-a2c7-4218c18390b7.pdf#page=32\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换1号压缩环", + "编号": "MT007", + "内容": "表 4.9 MT007 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0070302031号压缩环更换1号压缩环1A/8000hJY级
安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。
安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。
\n\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配Φ350 mm活塞
2环口间隙测量规Feeler Gauge Set1套0.05-1.00mm
3环槽清洁刮刀Custom-Piston-Groove-Scraper1把铜质刃口
4扭矩扳手20-100 N·m1把
2)备品备件
名称规格/型号消耗数量备注
1第一道压缩环MAN 5L35MC-RING-11件梯形截面,表面镀铬
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus5g
2无绒布Kimwipe EX-L3张
3清洗剂Brulin 815GD100mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师复刻还口间隙
修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。
验收标准
1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内;
页码:1/13.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.9 MT007 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0070302031号压缩环更换1号压缩环1A/8000hJY级
安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。
安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配Φ350 mm活塞
2环口间隙测量规Feeler Gauge Set1套0.05-1.00mm
3环槽清洁刮刀Custom-Piston-Groove-Scraper1把铜质刃口
4扭矩扳手20-100 N·m1把
2)备品备件
名称规格/型号消耗数量备注
1第一道压缩环MAN 5L35MC-RING-11件梯形截面,表面镀铬
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus5g
2无绒布Kimwipe EX-L3张
3清洗剂Brulin 815GD100mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师复刻还口间隙
修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。
验收标准
1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内;
页码:1/13.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_11764560-e529-4268-a045-e036ba8ba667.pdf#page=33\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "1号压缩环", + "组成编码": "030203", + "维修项目名称": "更换1号压缩环", + "维修项目编号": "MT007", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.9 MT007 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0070302031号压缩环更换1号压缩环1A/8000hJY级
安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。
安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个适配Φ350 mm活塞
2环口间隙测量规Feeler Gauge Set1套0.05-1.00mm
3环槽清洁刮刀Custom-Piston-Groove-Scraper1把铜质刃口
4扭矩扳手20-100 N·m1把
2)备品备件
名称规格/型号消耗数量备注
1第一道压缩环MAN 5L35MC-RING-11件梯形截面,表面镀铬
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus5g
2无绒布Kimwipe EX-L3张
3清洗剂Brulin 815GD100mL
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师复刻还口间隙
修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。
验收标准
1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内;
页码:1/13.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_11764560-e529-4268-a045-e036ba8ba667.pdf#page=33\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换2-4号活塞环", + "编号": "MT008", + "内容": "表 4.10 MT008 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0080302042-4号活塞环更换2-4号活塞环1A/8000hJY级
安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。
安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个同MT007
2环口定位夹具Custom-Ring-Aligner1套控制各环开口相位
3放大镜(带LED)5X with light1个检查环体缺陷
2)备品备件
名称规格/型号消耗数量备注
1第二道压缩环MAN 5L35MC-RING-21件锥面环
2第三道刮油环(组合式)MAN 5L35MC-RING-31套含轨环+弹簧胀圈
3第四道刮油环(组合式)MAN 5L35MC-RING-41套同上
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus10g涂所有环外圆
2缸套润滑机油Shell Mysella S5N8050mL涂缸壁
3标记笔(耐油)Marka1Oil-Resistant1支标记环开口位置
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+ 技师工程师监督相位布置
修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。
拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。
差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120°
(1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证
1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.10 MT008 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0080302042-4号活塞环更换2-4号活塞环1A/8000hJY级
安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。
安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个同MT007
2环口定位夹具Custom-Ring-Aligner1套控制各环开口相位
3放大镜(带LED)5X with light1个检查环体缺陷
2)备品备件
名称规格/型号消耗数量备注
1第二道压缩环MAN 5L35MC-RING-21件锥面环
2第三道刮油环(组合式)MAN 5L35MC-RING-31套含轨环+弹簧胀圈
3第四道刮油环(组合式)MAN 5L35MC-RING-41套同上
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus10g涂所有环外圆
2缸套润滑机油Shell Mysella S5N8050mL涂缸壁
3标记笔(耐油)Marka1Oil-Resistant1支标记环开口位置
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+ 技师工程师监督相位布置
修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。
拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。
差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120°
(1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证
1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_c8dc7bf9-e9b4-4423-91ad-4afb1911fadd.pdf#page=35\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "2-4号活塞环", + "组成编码": "030204", + "维修项目名称": "更换2-4号活塞环", + "维修项目编号": "MT008", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.10 MT008 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0080302042-4号活塞环更换2-4号活塞环1A/8000hJY级
安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。
安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1活塞环压缩器OEM-MAN-BW-RCC-061个同MT007
2环口定位夹具Custom-Ring-Aligner1套控制各环开口相位
3放大镜(带LED)5X with light1个检查环体缺陷
2)备品备件
名称规格/型号消耗数量备注
1第二道压缩环MAN 5L35MC-RING-21件锥面环
2第三道刮油环(组合式)MAN 5L35MC-RING-31套含轨环+弹簧胀圈
3第四道刮油环(组合式)MAN 5L35MC-RING-41套同上
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1二硫化钼润滑膏Molycote BR2 Plus10g涂所有环外圆
2缸套润滑机油Shell Mysella S5N8050mL涂缸壁
3标记笔(耐油)Marka1Oil-Resistant1支标记环开口位置
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+ 技师工程师监督相位布置
修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。
拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。
差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120°
(1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证
1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_c8dc7bf9-e9b4-4423-91ad-4afb1911fadd.pdf#page=35\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检测气缸套内径磨损量", + "编号": "MT009", + "内容": "表 4.11 MT009 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT009030301气缸套检测气缸套内径磨损量1A/8000hJY级
安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。
安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1内径千分尺(三点式) Mitutoyo 204-304 mm1套分辨率0.001mm
2缸套磨损测量记录仪Custom-Bore-Wear-Log1台自动生成磨损曲线
3防爆LED手电Streamlight 880401个24V安全电压
4清洁气枪Industrial Air BlowGun1把压力≤0.5 MPa
2)备品
名称规格/型号消耗数量备注
11本项目为检测类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%100mL清洁测量接触面
2无绒布Kimwipe EX-L5张防刮伤缸壁
3防锈纸VCI-2002张测量后临时覆盖
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工审核磨损趋势
\n\n\n\n
3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略)
验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。
页码:1/1版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.11 MT009 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT009030301气缸套检测气缸套内径磨损量1A/8000hJY级
安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。
安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1内径千分尺(三点式) Mitutoyo 204-304 mm1套分辨率0.001mm
2缸套磨损测量记录仪Custom-Bore-Wear-Log1台自动生成磨损曲线
3防爆LED手电Streamlight 880401个24V安全电压
4清洁气枪Industrial Air BlowGun1把压力≤0.5 MPa
2)备品
名称规格/型号消耗数量备注
11本项目为检测类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%100mL清洁测量接触面
2无绒布Kimwipe EX-L5张防刮伤缸壁
3防锈纸VCI-2002张测量后临时覆盖
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工审核磨损趋势
\\n\\n\\n\\n
3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略)
验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1352eb4a-1f16-4fb9-b64d-4c5786cb8e8d.pdf#page=36\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "气缸套", + "组成编码": "030301", + "维修项目名称": "检测气缸套内径磨损量", + "维修项目编号": "MT009", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.11 MT009 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT009030301气缸套检测气缸套内径磨损量1A/8000hJY级
安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。
安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1内径千分尺(三点式) Mitutoyo 204-304 mm1套分辨率0.001mm
2缸套磨损测量记录仪Custom-Bore-Wear-Log1台自动生成磨损曲线
3防爆LED手电Streamlight 880401个24V安全电压
4清洁气枪Industrial Air BlowGun1把压力≤0.5 MPa
2)备品
名称规格/型号消耗数量备注
11本项目为检测类,无备件消耗
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1工业酒精≥99.5%100mL清洁测量接触面
2无绒布Kimwipe EX-L5张防刮伤缸壁
3防锈纸VCI-2002张测量后临时覆盖
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工审核磨损趋势
\\n\\n\\n\\n
3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略)
验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。
页码:1/1版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1352eb4a-1f16-4fb9-b64d-4c5786cb8e8d.pdf#page=36\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换气缸套", + "编号": "MT010", + "内容": "表 4.12 MT010 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT010030301气缸套更换气缸套4A/32000hJY级
安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。
安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。
序号名称规格/型号数量及单位备注
1液压压装机HYDRA-PRESS-50T1台带压力与位移监控
2缸套拔出器OEM-MAN-BW-LINER-PULL1套螺纹顶压式
3冷却水腔密封测试仪LeakTest-CT3001台0.3 MPa保压
4深度规0- 300 mm1把测量缸套凸肩高度
2)备品备件
名称规格/型号消耗数量备注
1气缸套总成MAN5L35MC-LINER-ASSY1件含0形圈、定位销
2缸套水封0形圈Viton Φ380×5.02个耐高温氟橡胶
3缸套油封环NBR Φ352×3.01个下部密封
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1装配润滑脂Kluber Isoflex LDS18 Special A20g涂缸套外壁
2密封胶Loctite 518少量水腔法兰面(如适用)
3清洗剂Brulin 815GD300mL清洁缸体座孔
4)人力人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工监督压装对中
\n\n
修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。
3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm;
2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.12 MT010 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT010030301气缸套更换气缸套4A/32000hJY级
安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。
安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。
序号名称规格/型号数量及单位备注
1液压压装机HYDRA-PRESS-50T1台带压力与位移监控
2缸套拔出器OEM-MAN-BW-LINER-PULL1套螺纹顶压式
3冷却水腔密封测试仪LeakTest-CT3001台0.3 MPa保压
4深度规0- 300 mm1把测量缸套凸肩高度
2)备品备件
名称规格/型号消耗数量备注
1气缸套总成MAN5L35MC-LINER-ASSY1件含0形圈、定位销
2缸套水封0形圈Viton Φ380×5.02个耐高温氟橡胶
3缸套油封环NBR Φ352×3.01个下部密封
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1装配润滑脂Kluber Isoflex LDS18 Special A20g涂缸套外壁
2密封胶Loctite 518少量水腔法兰面(如适用)
3清洗剂Brulin 815GD300mL清洁缸体座孔
4)人力人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工监督压装对中
\\n\\n
修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。
3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm;
2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1b7daafc-9c60-4d7d-acbf-581d29ddb984.pdf#page=38\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "气缸套", + "组成编码": "030301", + "维修项目名称": "更换气缸套", + "维修项目编号": "MT010", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.12 MT010 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT010030301气缸套更换气缸套4A/32000hJY级
安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。
安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。
序号名称规格/型号数量及单位备注
1液压压装机HYDRA-PRESS-50T1台带压力与位移监控
2缸套拔出器OEM-MAN-BW-LINER-PULL1套螺纹顶压式
3冷却水腔密封测试仪LeakTest-CT3001台0.3 MPa保压
4深度规0- 300 mm1把测量缸套凸肩高度
2)备品备件
名称规格/型号消耗数量备注
1气缸套总成MAN5L35MC-LINER-ASSY1件含0形圈、定位销
2缸套水封0形圈Viton Φ380×5.02个耐高温氟橡胶
3缸套油封环NBR Φ352×3.01个下部密封
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1装配润滑脂Kluber Isoflex LDS18 Special A20g涂缸套外壁
2密封胶Loctite 518少量水腔法兰面(如适用)
3清洗剂Brulin 815GD300mL清洁缸体座孔
4)人力人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工监督压装对中
\\n\\n
修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。
3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm;
2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_1b7daafc-9c60-4d7d-acbf-581d29ddb984.pdf#page=38\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "检查排气阀杆密封面磨损", + "编号": "MT011", + "内容": "表 4.13 MT011 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT011040102阀杆检查排气阀杆密封面磨损6M/4000hJY级
安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。
安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。
\n\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1排气阀专用吊具OEM-MAN-BW-VALVE-HOOK1套带隔热手柄
2红外测温仪Fluke 62 Max+1台测量阀杆温度
3密封面检测平板Optical Flat λ/101块用于着色法检查
4着色剂套装Dykem Steel Blue +Developer1套检查接触印痕
2)备品备件
名称规格/型号消耗数量备注
本项目为检查类,无备件消耗(但可能触发MT012)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温清洁剂CRC Brakleen HT100mL清除积碳
2无绒布Kimwipe EX-L5张防刮伤密封面
3防锈油CRC 3-3630mL检查后临时防护
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座);
3)记录检查结果于《排气阀状态档案》。
验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm;
2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。
页码:1/1版本号:1
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.13 MT011 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT011040102阀杆检查排气阀杆密封面磨损6M/4000hJY级
安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。
安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1排气阀专用吊具OEM-MAN-BW-VALVE-HOOK1套带隔热手柄
2红外测温仪Fluke 62 Max+1台测量阀杆温度
3密封面检测平板Optical Flat λ/101块用于着色法检查
4着色剂套装Dykem Steel Blue +Developer1套检查接触印痕
2)备品备件
名称规格/型号消耗数量备注
本项目为检查类,无备件消耗(但可能触发MT012)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温清洁剂CRC Brakleen HT100mL清除积碳
2无绒布Kimwipe EX-L5张防刮伤密封面
3防锈油CRC 3-3630mL检查后临时防护
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座);
3)记录检查结果于《排气阀状态档案》。
验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm;
2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。
页码:1/1版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_934fd518-5e85-488e-be09-aa2728a92334.pdf#page=39\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "阀杆", + "组成编码": "040102", + "维修项目名称": "检查排气阀杆密封面磨损", + "维修项目编号": "MT011", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.13 MT011 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT011040102阀杆检查排气阀杆密封面磨损6M/4000hJY级
安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。
安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。
\\n\\n
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)
序号名称规格/型号数量及单位备注
1排气阀专用吊具OEM-MAN-BW-VALVE-HOOK1套带隔热手柄
2红外测温仪Fluke 62 Max+1台测量阀杆温度
3密封面检测平板Optical Flat λ/101块用于着色法检查
4着色剂套装Dykem Steel Blue +Developer1套检查接触印痕
2)备品备件
名称规格/型号消耗数量备注
本项目为检查类,无备件消耗(但可能触发MT012)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温清洁剂CRC Brakleen HT100mL清除积碳
2无绒布Kimwipe EX-L5张防刮伤密封面
3防锈油CRC 3-3630mL检查后临时防护
4)人力人员
序号专业人数技能等级备注
1机械专业2工程师+技师工程师判定磨损等级
修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座);
3)记录检查结果于《排气阀状态档案》。
验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm;
2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。
页码:1/1版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_934fd518-5e85-488e-be09-aa2728a92334.pdf#page=39\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换排气阀座", + "编号": "MT012", + "内容": "表 4.14 MT012 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT012040103阀座更换排气阀座2A/16000hJY级
安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。
安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。
序号名称规格/型号数量及单位备注
1便携式阀座镗床SUNNEN SV-201台带角度调节
2液压阀座压装机HYDRA-SEAT-PRESS1台用于过盈配合座
3渗透探伤套装Magnaflux ZL-27A1套PT检测裂纹
4角度规0-90°Protractor1把检查密封锥角
2)备品备件
名称规格/型号消耗数量备注
1排气阀座MAN5L35MC-EXH-SEAT1件Stellite合金堆焊
2定位销(如适用)Φ8×20 mm1个不锈钢
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温镍基焊条ENiCrFe-31根用于焊接固定(如需要)
2清洗剂Brulin 815GD150mL清洁阀座孔
3研磨膏(细)Clover Leaf Green20g配合研磨
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工批准焊接/压装方案
修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座
1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。
2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座);
3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。
页码:1/1 版本号:1
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.14 MT012 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT012040103阀座更换排气阀座2A/16000hJY级
安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。
安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。
序号名称规格/型号数量及单位备注
1便携式阀座镗床SUNNEN SV-201台带角度调节
2液压阀座压装机HYDRA-SEAT-PRESS1台用于过盈配合座
3渗透探伤套装Magnaflux ZL-27A1套PT检测裂纹
4角度规0-90°Protractor1把检查密封锥角
2)备品备件
名称规格/型号消耗数量备注
1排气阀座MAN5L35MC-EXH-SEAT1件Stellite合金堆焊
2定位销(如适用)Φ8×20 mm1个不锈钢
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温镍基焊条ENiCrFe-31根用于焊接固定(如需要)
2清洗剂Brulin 815GD150mL清洁阀座孔
3研磨膏(细)Clover Leaf Green20g配合研磨
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工批准焊接/压装方案
修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座
1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。
2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座);
3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。
页码:1/1 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_a654d966-cd48-4143-b1db-32286e025f22.pdf#page=41\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "阀座", + "组成编码": "040103", + "维修项目名称": "更换排气阀座", + "维修项目编号": "MT012", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.14 MT012 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT012040103阀座更换排气阀座2A/16000hJY级
安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。
安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。
序号名称规格/型号数量及单位备注
1便携式阀座镗床SUNNEN SV-201台带角度调节
2液压阀座压装机HYDRA-SEAT-PRESS1台用于过盈配合座
3渗透探伤套装Magnaflux ZL-27A1套PT检测裂纹
4角度规0-90°Protractor1把检查密封锥角
2)备品备件
名称规格/型号消耗数量备注
1排气阀座MAN5L35MC-EXH-SEAT1件Stellite合金堆焊
2定位销(如适用)Φ8×20 mm1个不锈钢
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温镍基焊条ENiCrFe-31根用于焊接固定(如需要)
2清洗剂Brulin 815GD150mL清洁阀座孔
3研磨膏(细)Clover Leaf Green20g配合研磨
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工批准焊接/压装方案
修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座
1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。
2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座);
3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。
页码:1/1 版本号:1
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_a654d966-cd48-4143-b1db-32286e025f22.pdf#page=41\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换喷油嘴偶件", + "编号": "MT013", + "内容": "表 4.15 MT013 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT013050201喷油嘴偶件更换喷油嘴偶件6M/4000hJY级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火
安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2高压燃油压力表0-20 MPa1个校验有效期内
3喷油雾化测试台Bosch EPS 8151台可测开启压力与雾化角
4扭矩扳手40 -200 N·m1把用于喷油器压紧螺母
名称规格/型号消耗数量备注
1喷油嘴偶件(针阀+阀体)MAN5L35MC-INJ-NOZZLE-KIT1套原厂高精度配对
2喷油器铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
\n\n
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200 mL用于冲洗油道
2 3无绒布 高温润滑脂Kimwipe EX-L5张 少量擦拭偶件表面
4)人力人员Molycote G-1052涂压紧螺纹
序号专业人数技能等级备注
修理步骤及工艺1机械专业2工程师+技师工程师操作测试 台
更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件
(1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5°
无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa;
2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.15 MT013 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT013050201喷油嘴偶件更换喷油嘴偶件6M/4000hJY级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火
安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2高压燃油压力表0-20 MPa1个校验有效期内
3喷油雾化测试台Bosch EPS 8151台可测开启压力与雾化角
4扭矩扳手40 -200 N·m1把用于喷油器压紧螺母
名称规格/型号消耗数量备注
1喷油嘴偶件(针阀+阀体)MAN5L35MC-INJ-NOZZLE-KIT1套原厂高精度配对
2喷油器铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
\\n\\n
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200 mL用于冲洗油道
2 3无绒布 高温润滑脂Kimwipe EX-L5张 少量擦拭偶件表面
4)人力人员Molycote G-1052涂压紧螺纹
序号专业人数技能等级备注
修理步骤及工艺1机械专业2工程师+技师工程师操作测试 台
更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件
(1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5°
无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa;
2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_b333c56d-9e77-429b-88f9-9329465ba601.pdf#page=42\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "喷油嘴偶件", + "组成编码": "050201", + "维修项目名称": "更换喷油嘴偶件", + "维修项目编号": "MT013", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.15 MT013 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT013050201喷油嘴偶件更换喷油嘴偶件6M/4000hJY级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火
安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2高压燃油压力表0-20 MPa1个校验有效期内
3喷油雾化测试台Bosch EPS 8151台可测开启压力与雾化角
4扭矩扳手40 -200 N·m1把用于喷油器压紧螺母
名称规格/型号消耗数量备注
1喷油嘴偶件(针阀+阀体)MAN5L35MC-INJ-NOZZLE-KIT1套原厂高精度配对
2喷油器铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
\\n\\n
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200 mL用于冲洗油道
2 3无绒布 高温润滑脂Kimwipe EX-L5张 少量擦拭偶件表面
4)人力人员Molycote G-1052涂压紧螺纹
序号专业人数技能等级备注
修理步骤及工艺1机械专业2工程师+技师工程师操作测试 台
更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件
(1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5°
无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa;
2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_b333c56d-9e77-429b-88f9-9329465ba601.pdf#page=42\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换高压油泵柱塞偶件", + "编号": "MT014", + "内容": "表 4.16 MT014 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT014050301柱塞偶件更换高压油泵柱塞偶件1A/8000hJY级
安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。
安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖
序号名称规格/型号数量及单位备注
1柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDE1个防止划伤
2供油定时检测仪AVL 5451台测量喷油始点
3精密塞尺0.02-1.00mm1套检查齿条间隙
4扭矩扳手30-150 N·m1把用于泵体检修盖
2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用)
名称规格/型号消耗数量备注
1柱塞+套筒偶件MAN5L35MC-PLUNGER-KIT1套配对编号一致
2出油阀组件MAN 5L35MC-DV-ASSY1套含弹簧、阀座
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高压泵专用润滑油Shell Tellus S4 VX32100mL用于偶件润滑
2密封胶Loctite 577少量泵体结合面(如适用)
3清洗柴油ISO 4020 Grade A300mL冲洗油道
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工确认供油定时
修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m;
(2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA;
验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA;
3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1
\n\n\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.16 MT014 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT014050301柱塞偶件更换高压油泵柱塞偶件1A/8000hJY级
安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。
安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖
序号名称规格/型号数量及单位备注
1柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDE1个防止划伤
2供油定时检测仪AVL 5451台测量喷油始点
3精密塞尺0.02-1.00mm1套检查齿条间隙
4扭矩扳手30-150 N·m1把用于泵体检修盖
2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用)
名称规格/型号消耗数量备注
1柱塞+套筒偶件MAN5L35MC-PLUNGER-KIT1套配对编号一致
2出油阀组件MAN 5L35MC-DV-ASSY1套含弹簧、阀座
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高压泵专用润滑油Shell Tellus S4 VX32100mL用于偶件润滑
2密封胶Loctite 577少量泵体结合面(如适用)
3清洗柴油ISO 4020 Grade A300mL冲洗油道
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工确认供油定时
修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m;
(2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA;
验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA;
3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_e4164aa5-a4e0-42da-8ce9-84075ff9b2f6.pdf#page=43\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "柱塞偶件", + "组成编码": "050301", + "维修项目名称": "更换高压油泵柱塞偶件", + "维修项目编号": "MT014", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.16 MT014 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT014050301柱塞偶件更换高压油泵柱塞偶件1A/8000hJY级
安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。
安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖
序号名称规格/型号数量及单位备注
1柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDE1个防止划伤
2供油定时检测仪AVL 5451台测量喷油始点
3精密塞尺0.02-1.00mm1套检查齿条间隙
4扭矩扳手30-150 N·m1把用于泵体检修盖
2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用)
名称规格/型号消耗数量备注
1柱塞+套筒偶件MAN5L35MC-PLUNGER-KIT1套配对编号一致
2出油阀组件MAN 5L35MC-DV-ASSY1套含弹簧、阀座
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高压泵专用润滑油Shell Tellus S4 VX32100mL用于偶件润滑
2密封胶Loctite 577少量泵体结合面(如适用)
3清洗柴油ISO 4020 Grade A300mL冲洗油道
4)人力人员人员
序号专业人数技能等级备注
1机械专业2总工+工程师总工确认供油定时
修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m;
(2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA;
验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA;
3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_e4164aa5-a4e0-42da-8ce9-84075ff9b2f6.pdf#page=43\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "更换涡轮增压器轴承组件", + "编号": "MT015", + "内容": "表 4.17 MT015 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT015060103轴承组件更换涡轮增压器轴承组件2A/16000hZJ级
安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。
安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。
序号名称规格/型号数量及单位备注
1涡轮增压器专用拆装台Custom-Turbo-Bench1台带V型支撑
2感应加热器EFD Minac 101台温控±5℃
3动平衡检测仪Schenck BALANCER V1台G2.5级精度
4扭矩扳手10-80 N·m1把用于壳体螺栓
2)备品备件
名称规格/型号消耗数量备注
1径向轴承(主轴)MAN TCA77-BRG-RAD1套铜铅合金
2止推轴承组件MANTCA77-BRG-THRUST1套含瓦片+垫片组
3轴封环Carbon Seal Φ60X32个石墨基
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温润滑脂Kluber Isoflex LDS18 Special A15g仅涂轴承外圈
2清洗剂Brulin 815GD200mL清洁轴承座
3密封胶Loctite 518少量壳体结合面
4)人力人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导装配
2电子专业1中级监测振动传感器
\n\n
(如适用)
修理步骤及工艺
更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换;
拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃;
2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.17 MT015 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT015060103轴承组件更换涡轮增压器轴承组件2A/16000hZJ级
安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。
安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。
序号名称规格/型号数量及单位备注
1涡轮增压器专用拆装台Custom-Turbo-Bench1台带V型支撑
2感应加热器EFD Minac 101台温控±5℃
3动平衡检测仪Schenck BALANCER V1台G2.5级精度
4扭矩扳手10-80 N·m1把用于壳体螺栓
2)备品备件
名称规格/型号消耗数量备注
1径向轴承(主轴)MAN TCA77-BRG-RAD1套铜铅合金
2止推轴承组件MANTCA77-BRG-THRUST1套含瓦片+垫片组
3轴封环Carbon Seal Φ60X32个石墨基
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温润滑脂Kluber Isoflex LDS18 Special A15g仅涂轴承外圈
2清洗剂Brulin 815GD200mL清洁轴承座
3密封胶Loctite 518少量壳体结合面
4)人力人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导装配
2电子专业1中级监测振动传感器
\\n\\n
(如适用)
修理步骤及工艺
更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换;
拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃;
2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_409e2d92-62f0-4056-b862-0aa45116ad9d.pdf#page=45\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "轴承组件", + "组成编码": "060103", + "维修项目名称": "更换涡轮增压器轴承组件", + "维修项目编号": "MT015", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.17 MT015 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT015060103轴承组件更换涡轮增压器轴承组件2A/16000hZJ级
安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。
安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。
序号名称规格/型号数量及单位备注
1涡轮增压器专用拆装台Custom-Turbo-Bench1台带V型支撑
2感应加热器EFD Minac 101台温控±5℃
3动平衡检测仪Schenck BALANCER V1台G2.5级精度
4扭矩扳手10-80 N·m1把用于壳体螺栓
2)备品备件
名称规格/型号消耗数量备注
1径向轴承(主轴)MAN TCA77-BRG-RAD1套铜铅合金
2止推轴承组件MANTCA77-BRG-THRUST1套含瓦片+垫片组
3轴封环Carbon Seal Φ60X32个石墨基
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1高温润滑脂Kluber Isoflex LDS18 Special A15g仅涂轴承外圈
2清洗剂Brulin 815GD200mL清洁轴承座
3密封胶Loctite 518少量壳体结合面
4)人力人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导装配
2电子专业1中级监测振动传感器
\\n\\n
(如适用)
修理步骤及工艺
更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换;
拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃;
2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_409e2d92-62f0-4056-b862-0aa45116ad9d.pdf#page=45\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "清洗空冷器管束芯体", + "编号": "MT016", + "内容": "表 4.18 MT016 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT016060201管束芯体清洗空冷器管束芯体3MZJ级
安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。
安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。
\n\n
序号名称规格/型号数量及单位备注
1高压清洗机Kärcher HD 7/15-41台压力0-5MPa可调
2管束专用清洗喷头Rotating Nozzle 3mm2个自旋式
3风压干燥机Industrial AirDryer1台0.6 MPa
4泄漏测试装置Air/Water LeakTester1套0.4 MPa 保压
\n\n
名称规格/型号消耗数量备注
本项目为清洗 类,无备件消耗 (但可能触发堵 管修复
\n\n
序号名称牌号/品级/规格消耗数量备注
1中性清洗剂Alconox Detojet2kgpH=9.5,环保型
2软化水Deionized Water200L配制清洗液
3防锈剂CRC 3-36100mL清洗后喷涂
\n\n
序号专业人数技能等级备注
1机械专业2中级+初级中级操作高压设备
\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\n\n
1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥
(1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准
1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.18 MT016 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT016060201管束芯体清洗空冷器管束芯体3MZJ级
安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。
安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。
\\n\\n
序号名称规格/型号数量及单位备注
1高压清洗机Kärcher HD 7/15-41台压力0-5MPa可调
2管束专用清洗喷头Rotating Nozzle 3mm2个自旋式
3风压干燥机Industrial AirDryer1台0.6 MPa
4泄漏测试装置Air/Water LeakTester1套0.4 MPa 保压
\\n\\n
名称规格/型号消耗数量备注
本项目为清洗 类,无备件消耗 (但可能触发堵 管修复
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1中性清洗剂Alconox Detojet2kgpH=9.5,环保型
2软化水Deionized Water200L配制清洗液
3防锈剂CRC 3-36100mL清洗后喷涂
\\n\\n
序号专业人数技能等级备注
1机械专业2中级+初级中级操作高压设备
\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\\n\\n
1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥
(1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准
1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_35c6181a-f8c1-4baa-9e11-c605d980ad41.pdf#page=47\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "管束芯体", + "组成编码": "060201", + "维修项目名称": "清洗空冷器管束芯体", + "维修项目编号": "MT016", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.18 MT016 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT016060201管束芯体清洗空冷器管束芯体3MZJ级
安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。
安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。
\\n\\n
序号名称规格/型号数量及单位备注
1高压清洗机Kärcher HD 7/15-41台压力0-5MPa可调
2管束专用清洗喷头Rotating Nozzle 3mm2个自旋式
3风压干燥机Industrial AirDryer1台0.6 MPa
4泄漏测试装置Air/Water LeakTester1套0.4 MPa 保压
\\n\\n
名称规格/型号消耗数量备注
本项目为清洗 类,无备件消耗 (但可能触发堵 管修复
\\n\\n
序号名称牌号/品级/规格消耗数量备注
1中性清洗剂Alconox Detojet2kgpH=9.5,环保型
2软化水Deionized Water200L配制清洗液
3防锈剂CRC 3-36100mL清洗后喷涂
\\n\\n
序号专业人数技能等级备注
1机械专业2中级+初级中级操作高压设备
\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\\n\\n
1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥
(1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准
1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_35c6181a-f8c1-4baa-9e11-c605d980ad41.pdf#page=47\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "修复连杆大端轴承异常磨损", + "编号": "T017", + "内容": "表 4.19 MT017 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
T017030200连杆大端轴承修复连杆大端轴承异常磨损故障触发ZJ级
安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。
安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。
序号名称规格/型号数量及单位备注
1防爆型扫气箱清洗机器人SCB-CLEANBOT-X11台自动高压水射流
2内窥镜(防爆)GE Mentor VisualiQ-Ex1台检查缸套下部
3红外热像仪FLIR T8601台检测局部热点
4可燃气体检测仪MSA Altair 5X1台多气体复合
2)备品备件
名称规格/型号消耗数量备注
1全套活塞环组MAN5L35MC-RING-SET1套含1-4号环
2活塞头(如需更换)MAN5L35MC-PISTON-HEAD1件铸钢整体式
3扫气口密封条Viton Strip 5×10mm若干更换烧损件
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1生物降解清洗剂Envirox SC-905L清除碳化油泥
2耐高温防火毯Fiberglass Mat1200°C2m局部隔热防护
3防锈剂CRC 3-36200mL修复后防护
4)人力人员人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工主导故障分析
2安全监督1高级安全员全程监护受限空间作业
修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头;
2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。
验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。
页码:1/1版本号:1
\n\n\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.19 MT017 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
T017030200连杆大端轴承修复连杆大端轴承异常磨损故障触发ZJ级
安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。
安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。
序号名称规格/型号数量及单位备注
1防爆型扫气箱清洗机器人SCB-CLEANBOT-X11台自动高压水射流
2内窥镜(防爆)GE Mentor VisualiQ-Ex1台检查缸套下部
3红外热像仪FLIR T8601台检测局部热点
4可燃气体检测仪MSA Altair 5X1台多气体复合
2)备品备件
名称规格/型号消耗数量备注
1全套活塞环组MAN5L35MC-RING-SET1套含1-4号环
2活塞头(如需更换)MAN5L35MC-PISTON-HEAD1件铸钢整体式
3扫气口密封条Viton Strip 5×10mm若干更换烧损件
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1生物降解清洗剂Envirox SC-905L清除碳化油泥
2耐高温防火毯Fiberglass Mat1200°C2m局部隔热防护
3防锈剂CRC 3-36200mL修复后防护
4)人力人员人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工主导故障分析
2安全监督1高级安全员全程监护受限空间作业
修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头;
2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。
验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_6daa944c-849a-4f46-8a4a-342424b06d3b.pdf#page=48\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "连杆大端轴承", + "组成编码": "030200", + "维修项目名称": "修复连杆大端轴承异常磨损", + "维修项目编号": "T017", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.19 MT017 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
T017030200连杆大端轴承修复连杆大端轴承异常磨损故障触发ZJ级
安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。
安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。
序号名称规格/型号数量及单位备注
1防爆型扫气箱清洗机器人SCB-CLEANBOT-X11台自动高压水射流
2内窥镜(防爆)GE Mentor VisualiQ-Ex1台检查缸套下部
3红外热像仪FLIR T8601台检测局部热点
4可燃气体检测仪MSA Altair 5X1台多气体复合
2)备品备件
名称规格/型号消耗数量备注
1全套活塞环组MAN5L35MC-RING-SET1套含1-4号环
2活塞头(如需更换)MAN5L35MC-PISTON-HEAD1件铸钢整体式
3扫气口密封条Viton Strip 5×10mm若干更换烧损件
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1生物降解清洗剂Envirox SC-905L清除碳化油泥
2耐高温防火毯Fiberglass Mat1200°C2m局部隔热防护
3防锈剂CRC 3-36200mL修复后防护
4)人力人员人员
序号专业人数技能等级备注
1机械专业3总工+2×工程师总工主导故障分析
2安全监督1高级安全员全程监护受限空间作业
修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头;
2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。
验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_6daa944c-849a-4f46-8a4a-342424b06d3b.pdf#page=48\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "修复活塞头部烧蚀熔损", + "编号": "MT018", + "内容": "表 4.20 MT018 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT018030201活塞头修复活塞头部烧蚀熔损故障触发ZJ级
安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。
安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。
序号名称规格/型号数量及单位备注
1等离子堆焊机PLASMAD 50001台自动送粉
2热处理炉Box Furnace 800° C1台控温±10℃
3超声波探伤仪Olympus Epoch 6501台检测内部缺陷
4三维扫描仪FARO Arm Quantum1台修复前后形貌比对
2)备品备件
名称规格/型号消耗数量备注
1本项目为修复类,通常不消耗新活塞(除非报废)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1镍基合金焊粉INCONEL 625300g耐高温抗烧蚀
2渗透探伤剂Magnaflux ZL-27A1套PT检测裂纹
3保温棉Ceramic FiberBlanket2 kg焊后包裹缓冷
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+高级技师总工批准修复方案
2焊接专业1高级焊工(ASMEIX认证)执行堆焊
\n\n
修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理
3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证
2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm);
3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1
\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.20 MT018 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT018030201活塞头修复活塞头部烧蚀熔损故障触发ZJ级
安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。
安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。
序号名称规格/型号数量及单位备注
1等离子堆焊机PLASMAD 50001台自动送粉
2热处理炉Box Furnace 800° C1台控温±10℃
3超声波探伤仪Olympus Epoch 6501台检测内部缺陷
4三维扫描仪FARO Arm Quantum1台修复前后形貌比对
2)备品备件
名称规格/型号消耗数量备注
1本项目为修复类,通常不消耗新活塞(除非报废)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1镍基合金焊粉INCONEL 625300g耐高温抗烧蚀
2渗透探伤剂Magnaflux ZL-27A1套PT检测裂纹
3保温棉Ceramic FiberBlanket2 kg焊后包裹缓冷
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+高级技师总工批准修复方案
2焊接专业1高级焊工(ASMEIX认证)执行堆焊
\\n\\n
修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理
3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证
2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm);
3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_ce42d490-31ba-4c97-afad-26cf5192f901.pdf#page=50\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "活塞头", + "组成编码": "030201", + "维修项目名称": "修复活塞头部烧蚀熔损", + "维修项目编号": "MT018", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.20 MT018 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT018030201活塞头修复活塞头部烧蚀熔损故障触发ZJ级
安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。
安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。
序号名称规格/型号数量及单位备注
1等离子堆焊机PLASMAD 50001台自动送粉
2热处理炉Box Furnace 800° C1台控温±10℃
3超声波探伤仪Olympus Epoch 6501台检测内部缺陷
4三维扫描仪FARO Arm Quantum1台修复前后形貌比对
2)备品备件
名称规格/型号消耗数量备注
1本项目为修复类,通常不消耗新活塞(除非报废)
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1镍基合金焊粉INCONEL 625300g耐高温抗烧蚀
2渗透探伤剂Magnaflux ZL-27A1套PT检测裂纹
3保温棉Ceramic FiberBlanket2 kg焊后包裹缓冷
4)人力人员
序号专业人数技能等级备注
1机械专业2总工+高级技师总工批准修复方案
2焊接专业1高级焊工(ASMEIX认证)执行堆焊
\\n\\n
修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理
3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证
2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm);
3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1
\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_ce42d490-31ba-4c97-afad-26cf5192f901.pdf#page=50\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "排除喷油器雾化不良故障", + "编号": "MT019", + "内容": "表 4.21 MT019 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0190502喷油器组件排除喷油器雾化不良故障1UZJ级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2喷油雾化测试台Bosch EPS815或等效1台可调压、可视窗
3扭矩扳手40-200 N·m1把用于压紧螺母回装
名称规格/型号消耗数量备注
1喷油嘴偶件MAN5L35MC-INJ-NOZZLE-KIT1套原厂配对
2铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200mL冲洗油道
2无绒布Kimwipe EX-L5张
3高温润滑脂Molycote G-1052少量
4)人力人员
序号专业人数技能等级
1机械专业2高级+中级
修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m;
2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。
验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。
页码:1/1版本号:1
\n\n\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.21 MT019 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0190502喷油器组件排除喷油器雾化不良故障1UZJ级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2喷油雾化测试台Bosch EPS815或等效1台可调压、可视窗
3扭矩扳手40-200 N·m1把用于压紧螺母回装
名称规格/型号消耗数量备注
1喷油嘴偶件MAN5L35MC-INJ-NOZZLE-KIT1套原厂配对
2铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200mL冲洗油道
2无绒布Kimwipe EX-L5张
3高温润滑脂Molycote G-1052少量
4)人力人员
序号专业人数技能等级
1机械专业2高级+中级
修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m;
2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。
验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3f9bb979-7000-46a7-bdb1-01ff0824fd89.pdf#page=51\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "喷油器组件", + "组成编码": "0502", + "维修项目名称": "排除喷油器雾化不良故障", + "维修项目编号": "MT019", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.21 MT019 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT0190502喷油器组件排除喷油器雾化不良故障1UZJ级
安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。
保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定
序号名称规格/型号数量及单位备注
1喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCH1把防滑齿设计
2喷油雾化测试台Bosch EPS815或等效1台可调压、可视窗
3扭矩扳手40-200 N·m1把用于压紧螺母回装
名称规格/型号消耗数量备注
1喷油嘴偶件MAN5L35MC-INJ-NOZZLE-KIT1套原厂配对
2铜密封垫Φ18×2.0 mm1个退火紫铜,一次性
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1清洁柴油ISO 4020 Grade A200mL冲洗油道
2无绒布Kimwipe EX-L5张
3高温润滑脂Molycote G-1052少量
4)人力人员
序号专业人数技能等级
1机械专业2高级+中级
修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m;
2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。
验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。
页码:1/1版本号:1
\\n\\n\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_3f9bb979-7000-46a7-bdb1-01ff0824fd89.pdf#page=51\"}]" + } + }, + { + "type": "维修项目", + "properties": { + "名称": "排除主机功率异常波动故障", + "编号": "MT020", + "内容": "表 4.22 MT020 维修项目\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT02001机座与机架组件排除主机功率异常波动故障1UZJ级
安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。
安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。
序号名称规格/型号数量及单位备注
1主机监控系统(PMS)Integrated BridgeSystem1套读取实时功率曲线
2调速器性能测试仪 Woodward Test Bench1台检测响应滞后
3燃油黏度计MarconiViscotester1台测 HFO黏度
4多通道数据记录仪DataTaker DT801套同步录负荷/转速
2)备品
名称规格/型号消耗数量备注
1调速器伺服阀滤芯OEM-GOV-FILTER1个如堵塞
2燃油温度传感器PT100,0-200°C1个如漂移
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1标准测试燃油ISO 8217 RMG380300L用于稳定测试
2密封胶Loctite 577少量传感器安装
4)人力人员人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导系统分析
2自动化专业1中级负责调速器信号检测
修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。
分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。
针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟;
验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下);
3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1
\n\n\n5器材保障\n5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n
序号名称规格/型号生产单位通用/专用体积山重量8)参考价(元)存放位置备注
1液压升降平台HLP-3000OEM 或市场品专用120045085,000主机车间东侧工具架A区用于接近主机上部
2扭矩扳手TB-200N·mOEM 或市场品通用32.51,200工具柜 B-02精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FITOEM专用53.82,500主机备件柜M-07厂家配套
4工业吸油泵VAC-0IL50OEM 或市场品专用25186,800油料间防爆柜防爆型
5激光对SKF TKSA 71SKF专用84.298,000精密仪器室轴承
中仪C-01同轴度检测
6塞尺组0.02 - 1.00 mm市品通用0.80.6180量具盒D-05精度土0.005m
7液压拉伸器HYTORCAVANTI-10 /RS-20HYTORC专用302242,000螺栓工具架E区用于地脚螺栓/连杆螺栓
8内径千分尺200-300mm /40-50mmMitutoyo 等通用21.43,600量具柜F-03校验有效期内
9精密千分表 Mitutoyo543-791DMitutoyo专用1.20.94,200精密仪器室C-02分辨率0.001mm
10磁力表座Starrett 16BStarrett通用1.51.81,500量具柜F-04带万向关节
11V型支撑架Custom-Crank-V300OEM专用8012018,000曲轴检修平台旁承重≥500kg
12盘车手轮OEM-MAN-BW-PCWOEM专用15125,500主机附件箱G-01原厂配套
13内窥镜GE MentorVisual iQ /iQ-ExGE专用63.575,000探伤设备柜H-02防爆型用于故障排查
14轴承安装导向套OEM-MAN-BW-BG-04OEM专用45.23,800轴承装配区I-03防止瓦片移位
15活塞吊装专用吊具 OEM-MAN-BW-PST-05OEM专用202812,000吊具架J-01带缓冲橡胶夹头
16感应加热器EFD InductionMinac 16 /EFD专用453568,000热装工具区K-02温控精度
序号名称规格/型号生产单位通用/专用体积U重量(kg)参考价(元)存放位置备注
Minac 10±5℃
17铜棒与塑料锤Φ20×300 mm市品通用22.1150普通工具箱L-05用于轻敲装配
18活塞环压缩器OEM-MAN-BW-RCC-06OEM专用86.54,200活塞维修台M-03适配350活塞
19环槽清洁刮刀Custom-Piston-Groove-ScraperOEM专用0.50.4320活塞工具盒N-01铜质加
20环口定位夹具Custom-Ring-AlignerOEM专用32.31,800活塞维修台M-04控制环开□相位
21缸套拔出器OEM-MAN-BW-LINER-PULLOEM专用25329,500缸体检修区0-02螺纹顶压式
22液压压装机HYDRA-PRESS-50TOEM或市品专用600800180,000压装工位P区带压力与位移监控
23冷却水腔密封测试仪LeakTest-CT300OEM专用181528,000密封测试台Q-010.3MPa保压
24深度规0-150mm/0-300mm市品通用10.7600量具柜F-05
25放大镜(带LED)5×/10×withscale/light市品通用0.60.3220检验工具盒R-01检查裂纹/印痕
26防爆LED手电Streamlight88040Streamlight专用0.40.51,100防爆工具柜S-0124V安全电压
27清洁气枪Industrial AirBlow Gun市品通用1.20.9180气动工具架T-02压力≤0.5MPa
28排气阀专用吊具OEM-MAN-BW-VALVE-HOOKOEM专用12166,200阀件吊装区U-01带隔热手柄
29红外测温仪Fluke 62 Max+Fluke通用0.80.352,400电子仪表柜V-03测量高温
序号名称规格/型号生产单位通用/专用体积山重量(kg)参考价(元)存放位置备注
部件
30密封面检测平板Optical Flat/10市品专用10815,000精密测量台W-01着色法检查
31便携式阀座镗床SUNNEN SV-20SUNNEN专用9075130,000阀维修区X-01带角度调节
32液压阀座压装机 HYDRA-SEAT-PRESSOEM专用12018078,000阀维修区X-02过盈配合
33角度规0-90°Protractor市品通用1.51.2300量具柜F-06检查锥角
34喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCHOEM专用43.62,800喷油器工具箱Y-01防滑齿设计
35高压燃油压力表0-20 MPa市品通用0.90.8950仪表校验柜Z-02校验有效期内
36喷油雾化测试台Bosch EPS 815Bosch专用200220220,000喷油器测试室AA-01测开启压力与雾化角
37柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDEOEM专用21.71,600喷油泵维修台AB-02防划伤
38供油定时检测仪AVL 545AVL专用151285,000燃油系统测试区AC-01测喷油始点
39涡轮增压器专用拆装台Custom-Turbo-BenchOEM专用30040095,000增压器维修区AD-01带V型支撑
40动平衡检测仪SchenckBALANCER VSchenck专用500600680,000平衡实验室AE-01G2.5级精度
41高压清洗机Kärcher HD7/15-4Karcher通用806532,000清洗站 AF-01压力0-5MPa可调
42管束专RotatingOEM专用0.30.2800清洗配件柜自旋
序号名称规格/型号生产单位通用/专用体积U重量8)参考价(元)存放位置备注
用清洗喷头Nozzle 3mm5AG-01
43风压干燥机Industrial AirDryer市品通用1209025,000空压站 AH-010.6MPa
44泄漏测试装置Air/Water LeakTesterOEM专用252036,000密封测试台Q-020.4MPa保压
45防爆型扫气箱清洗机器人SCB-CLEANBOT-X1OEM专用150130420,000机器人存放区AI-01自动高压水射流
46红外热像仪FLIR T860FLIR专用52.1120,000电气检测室AJ-01检测热点
47可燃气体检测仪MSA Altair 5XMSA专用10.78,500安全设备柜AK-01多气体复合
48等离子堆焊机PLASMAD 5000OEM专用400350580,000焊接修复区AL-01自动送粉
49热处理炉Box Furnace800°COEM专用10001200320,000热处理间AM-01控温土10℃
50超声波探伤仪Olympus Epoch650Olympus专用63.295,000探伤设备柜H-03检测内部缺陷
51三维扫描仪FARO ArmQuantumFARO专用3025750,000测绘室AN-01修复形貌比对
52主机监控系统(PMS)IntegratedBridge System船厂集成专用1,200,000集控室A0-01读取功率曲线
53调速器性能测试仪Woodward TestBenchWoodward专用180200480,000调速器测试间AP-01检测响应滞后
54燃油黏度计MarconiViscotesterMarconi专用12942,000燃油化验室AQ-01测HFO黏度
55多通道数据记录仪DataTaker DT80DataTaker通用32.418,000数据采集柜AR-01同步录负荷/转速
\n\n\n\n\n\n\n\n\n5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n
序号名称牌号/品级/规格生产单位备注
1柴油机专用润滑油 Shell Mysella S5 N80Shell符合MAN 97101标准
2无纺布抹布Industrial Grade市场品不掉屑
3清洗剂CRC Brakleen /Brulin 815GD/ CRC Carbon Clean ProCRC /Brulin多用途清洁
4主机油滤芯MAN B&W 5L35MC-FIL-01MAN原厂件
5机油放油螺塞密封圈Viton Φ22×2.5市场品耐高温氟橡胶
6清洁酒精AR Grade / ≥99.5%市场品
7防锈纸VCI-200市场品
8无绒擦拭布Kimwipe EX-LKimberly-Clark防刮伤
9轴承装配润滑脂 Kluber Isoflex LDS 18Special AKluber仅涂瓦背
10螺纹锁固胶Loctite 2701Henke1用于螺栓(如适用)
11高温装配润滑脂Molycote G-1052Dow Corning活塞销/螺纹
12积碳清洗剂CRC Carbon Clean ProCRC环保型
13防锈油CRC 3-36CRC临时防护
14二硫化钼润滑膏 Molycote BR2 PlusDow Corning涂活塞环外圆
15缸套润滑机油Shell Mysella S5 N80Shell同主滑油
16耐油标记笔Markal Oil-ResistantMarkal标记环开口
17耐高温标记笔Markal 900° FMarkal高温环境
18装配润滑脂 Kluber Isoflex LDS 18Special AKluber缸套外壁
19密封胶Loctite 518 / 577Henke1水腔/泵体法兰
20高温镍基焊条ENiCrFe-3市场品阀座焊接
21研磨膏(细)Clover Leaf GreenClover阀座研配
22清洁柴油ISO 4020 Grade A市场品冲洗油道
23高压泵专用润滑油 Shell Tellus S4 VX 32Shell偶件润滑
24中性清洗剂Alconox DetojetAlconoxpH=9.5,环保
25软化水Deionized Water市场品配清洗液
26生物降解清洗剂Envirox SC-90Envirox清除碳化油泥
27耐高温防火毯Fiberglass Mat 1200°C市场品局部隔热
28镍基合金焊粉INCONEL 625Special Metals堆焊修复
29渗透探伤剂Magnaflux ZL-27AMagnafluxPT检测裂纹
30保温棉Ceramic Fiber Blanket市场品焊后缓冷
31标准测试燃油ISO 8217 RMG380市场品稳定测试用
\n\n\n6 维修安全防护及注意事项汇总表\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\n6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n
序号维修项目安全防护要求备注
1MT001保养机座与机架组件1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡防止误启与油污扩散
2MT002检查主轴承座1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区防止转动伤人
3MT003检测曲轴跳动1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固防止测量中曲轴转动
4MT004更换连杆大端轴承1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区防止异物落入/坠落
5MT005更换连杆小端轴承1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫防止活塞坠落损坏
6MT006 拆检活塞头1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁防爆防误启
2.缸内作业使用≤24V防爆照明
7MT007/008更换活塞环1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩防止工具/异物落入
8MT009 检测缸套磨损1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳高空/旋转风险
9MT010 更换气缸套1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布防水防砸
10MT011 检查排气阀杆1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识防高温/误动作
11MT012 更换排气阀座1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线防金属屑/电击
12MT013/019 更换/排除喷油器1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火防燃防爆
13MT014 更换柱塞偶件隔离燃油系统,LOTO 挂牌上锁防燃油泄漏
14MT015 更换增压器轴承1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫防气体倒流/坠落
15MT016 清洗空冷器1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服防高压水伤人
16MT017 修复连杆异常磨损1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体防复燃/室息
17MT018修复活塞烧蚀1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证防火灾
18MT020 排除功率波动1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范防飞车/电火花
\n\n\n6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n
序号维修项目注意事项备注
1MT0011.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜防烫伤
2MT0021.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间防夹伤
3MT0031.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油防滑脱
4MT0041.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整防损伤
5MT0051.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套防烫/变形
6MT0061.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩防吸入积碳
7MT007/0081.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180°防划伤/装反
8MT0091.冷却水未排空不得测量2.手不得置于千分尺与缸壁间防夹伤
9MT0101.禁用火焰加热缸体2.压装时人员不得站压机正下方防裂纹/砸伤
10MT0111.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜防碎屑/热辐射
11MT0121.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测防热应力/裂纹
12MT013/0191.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装防卡死/污染
13MT0141.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确防相位错误
14MT0151.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形防误判/失效
15MT0161.禁用酸性清洗剂2.清洗压力≤5 MPa防腐蚀/翅片倒伏
16MT0171.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温防自燃
17MT0181.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷防二次裂纹
18MT0201.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认防飞车
\n\n\n", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.22 MT020 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT02001机座与机架组件排除主机功率异常波动故障1UZJ级
安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。
安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。
序号名称规格/型号数量及单位备注
1主机监控系统(PMS)Integrated BridgeSystem1套读取实时功率曲线
2调速器性能测试仪 Woodward Test Bench1台检测响应滞后
3燃油黏度计MarconiViscotester1台测 HFO黏度
4多通道数据记录仪DataTaker DT801套同步录负荷/转速
2)备品
名称规格/型号消耗数量备注
1调速器伺服阀滤芯OEM-GOV-FILTER1个如堵塞
2燃油温度传感器PT100,0-200°C1个如漂移
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1标准测试燃油ISO 8217 RMG380300L用于稳定测试
2密封胶Loctite 577少量传感器安装
4)人力人员人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导系统分析
2自动化专业1中级负责调速器信号检测
修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。
分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。
针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟;
验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下);
3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1
\\n\\n\\n5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n
序号名称规格/型号生产单位通用/专用体积山重量8)参考价(元)存放位置备注
1液压升降平台HLP-3000OEM 或市场品专用120045085,000主机车间东侧工具架A区用于接近主机上部
2扭矩扳手TB-200N·mOEM 或市场品通用32.51,200工具柜 B-02精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FITOEM专用53.82,500主机备件柜M-07厂家配套
4工业吸油泵VAC-0IL50OEM 或市场品专用25186,800油料间防爆柜防爆型
5激光对SKF TKSA 71SKF专用84.298,000精密仪器室轴承
中仪C-01同轴度检测
6塞尺组0.02 - 1.00 mm市品通用0.80.6180量具盒D-05精度土0.005m
7液压拉伸器HYTORCAVANTI-10 /RS-20HYTORC专用302242,000螺栓工具架E区用于地脚螺栓/连杆螺栓
8内径千分尺200-300mm /40-50mmMitutoyo 等通用21.43,600量具柜F-03校验有效期内
9精密千分表 Mitutoyo543-791DMitutoyo专用1.20.94,200精密仪器室C-02分辨率0.001mm
10磁力表座Starrett 16BStarrett通用1.51.81,500量具柜F-04带万向关节
11V型支撑架Custom-Crank-V300OEM专用8012018,000曲轴检修平台旁承重≥500kg
12盘车手轮OEM-MAN-BW-PCWOEM专用15125,500主机附件箱G-01原厂配套
13内窥镜GE MentorVisual iQ /iQ-ExGE专用63.575,000探伤设备柜H-02防爆型用于故障排查
14轴承安装导向套OEM-MAN-BW-BG-04OEM专用45.23,800轴承装配区I-03防止瓦片移位
15活塞吊装专用吊具 OEM-MAN-BW-PST-05OEM专用202812,000吊具架J-01带缓冲橡胶夹头
16感应加热器EFD InductionMinac 16 /EFD专用453568,000热装工具区K-02温控精度
序号名称规格/型号生产单位通用/专用体积U重量(kg)参考价(元)存放位置备注
Minac 10±5℃
17铜棒与塑料锤Φ20×300 mm市品通用22.1150普通工具箱L-05用于轻敲装配
18活塞环压缩器OEM-MAN-BW-RCC-06OEM专用86.54,200活塞维修台M-03适配350活塞
19环槽清洁刮刀Custom-Piston-Groove-ScraperOEM专用0.50.4320活塞工具盒N-01铜质加
20环口定位夹具Custom-Ring-AlignerOEM专用32.31,800活塞维修台M-04控制环开□相位
21缸套拔出器OEM-MAN-BW-LINER-PULLOEM专用25329,500缸体检修区0-02螺纹顶压式
22液压压装机HYDRA-PRESS-50TOEM或市品专用600800180,000压装工位P区带压力与位移监控
23冷却水腔密封测试仪LeakTest-CT300OEM专用181528,000密封测试台Q-010.3MPa保压
24深度规0-150mm/0-300mm市品通用10.7600量具柜F-05
25放大镜(带LED)5×/10×withscale/light市品通用0.60.3220检验工具盒R-01检查裂纹/印痕
26防爆LED手电Streamlight88040Streamlight专用0.40.51,100防爆工具柜S-0124V安全电压
27清洁气枪Industrial AirBlow Gun市品通用1.20.9180气动工具架T-02压力≤0.5MPa
28排气阀专用吊具OEM-MAN-BW-VALVE-HOOKOEM专用12166,200阀件吊装区U-01带隔热手柄
29红外测温仪Fluke 62 Max+Fluke通用0.80.352,400电子仪表柜V-03测量高温
序号名称规格/型号生产单位通用/专用体积山重量(kg)参考价(元)存放位置备注
部件
30密封面检测平板Optical Flat/10市品专用10815,000精密测量台W-01着色法检查
31便携式阀座镗床SUNNEN SV-20SUNNEN专用9075130,000阀维修区X-01带角度调节
32液压阀座压装机 HYDRA-SEAT-PRESSOEM专用12018078,000阀维修区X-02过盈配合
33角度规0-90°Protractor市品通用1.51.2300量具柜F-06检查锥角
34喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCHOEM专用43.62,800喷油器工具箱Y-01防滑齿设计
35高压燃油压力表0-20 MPa市品通用0.90.8950仪表校验柜Z-02校验有效期内
36喷油雾化测试台Bosch EPS 815Bosch专用200220220,000喷油器测试室AA-01测开启压力与雾化角
37柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDEOEM专用21.71,600喷油泵维修台AB-02防划伤
38供油定时检测仪AVL 545AVL专用151285,000燃油系统测试区AC-01测喷油始点
39涡轮增压器专用拆装台Custom-Turbo-BenchOEM专用30040095,000增压器维修区AD-01带V型支撑
40动平衡检测仪SchenckBALANCER VSchenck专用500600680,000平衡实验室AE-01G2.5级精度
41高压清洗机Kärcher HD7/15-4Karcher通用806532,000清洗站 AF-01压力0-5MPa可调
42管束专RotatingOEM专用0.30.2800清洗配件柜自旋
序号名称规格/型号生产单位通用/专用体积U重量8)参考价(元)存放位置备注
用清洗喷头Nozzle 3mm5AG-01
43风压干燥机Industrial AirDryer市品通用1209025,000空压站 AH-010.6MPa
44泄漏测试装置Air/Water LeakTesterOEM专用252036,000密封测试台Q-020.4MPa保压
45防爆型扫气箱清洗机器人SCB-CLEANBOT-X1OEM专用150130420,000机器人存放区AI-01自动高压水射流
46红外热像仪FLIR T860FLIR专用52.1120,000电气检测室AJ-01检测热点
47可燃气体检测仪MSA Altair 5XMSA专用10.78,500安全设备柜AK-01多气体复合
48等离子堆焊机PLASMAD 5000OEM专用400350580,000焊接修复区AL-01自动送粉
49热处理炉Box Furnace800°COEM专用10001200320,000热处理间AM-01控温土10℃
50超声波探伤仪Olympus Epoch650Olympus专用63.295,000探伤设备柜H-03检测内部缺陷
51三维扫描仪FARO ArmQuantumFARO专用3025750,000测绘室AN-01修复形貌比对
52主机监控系统(PMS)IntegratedBridge System船厂集成专用1,200,000集控室A0-01读取功率曲线
53调速器性能测试仪Woodward TestBenchWoodward专用180200480,000调速器测试间AP-01检测响应滞后
54燃油黏度计MarconiViscotesterMarconi专用12942,000燃油化验室AQ-01测HFO黏度
55多通道数据记录仪DataTaker DT80DataTaker通用32.418,000数据采集柜AR-01同步录负荷/转速
\\n\\n\\n\\n\\n\\n\\n\\n\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n
序号名称牌号/品级/规格生产单位备注
1柴油机专用润滑油 Shell Mysella S5 N80Shell符合MAN 97101标准
2无纺布抹布Industrial Grade市场品不掉屑
3清洗剂CRC Brakleen /Brulin 815GD/ CRC Carbon Clean ProCRC /Brulin多用途清洁
4主机油滤芯MAN B&W 5L35MC-FIL-01MAN原厂件
5机油放油螺塞密封圈Viton Φ22×2.5市场品耐高温氟橡胶
6清洁酒精AR Grade / ≥99.5%市场品
7防锈纸VCI-200市场品
8无绒擦拭布Kimwipe EX-LKimberly-Clark防刮伤
9轴承装配润滑脂 Kluber Isoflex LDS 18Special AKluber仅涂瓦背
10螺纹锁固胶Loctite 2701Henke1用于螺栓(如适用)
11高温装配润滑脂Molycote G-1052Dow Corning活塞销/螺纹
12积碳清洗剂CRC Carbon Clean ProCRC环保型
13防锈油CRC 3-36CRC临时防护
14二硫化钼润滑膏 Molycote BR2 PlusDow Corning涂活塞环外圆
15缸套润滑机油Shell Mysella S5 N80Shell同主滑油
16耐油标记笔Markal Oil-ResistantMarkal标记环开口
17耐高温标记笔Markal 900° FMarkal高温环境
18装配润滑脂 Kluber Isoflex LDS 18Special AKluber缸套外壁
19密封胶Loctite 518 / 577Henke1水腔/泵体法兰
20高温镍基焊条ENiCrFe-3市场品阀座焊接
21研磨膏(细)Clover Leaf GreenClover阀座研配
22清洁柴油ISO 4020 Grade A市场品冲洗油道
23高压泵专用润滑油 Shell Tellus S4 VX 32Shell偶件润滑
24中性清洗剂Alconox DetojetAlconoxpH=9.5,环保
25软化水Deionized Water市场品配清洗液
26生物降解清洗剂Envirox SC-90Envirox清除碳化油泥
27耐高温防火毯Fiberglass Mat 1200°C市场品局部隔热
28镍基合金焊粉INCONEL 625Special Metals堆焊修复
29渗透探伤剂Magnaflux ZL-27AMagnafluxPT检测裂纹
30保温棉Ceramic Fiber Blanket市场品焊后缓冷
31标准测试燃油ISO 8217 RMG380市场品稳定测试用
\\n\\n\\n6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n
序号维修项目安全防护要求备注
1MT001保养机座与机架组件1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡防止误启与油污扩散
2MT002检查主轴承座1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区防止转动伤人
3MT003检测曲轴跳动1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固防止测量中曲轴转动
4MT004更换连杆大端轴承1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区防止异物落入/坠落
5MT005更换连杆小端轴承1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫防止活塞坠落损坏
6MT006 拆检活塞头1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁防爆防误启
2.缸内作业使用≤24V防爆照明
7MT007/008更换活塞环1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩防止工具/异物落入
8MT009 检测缸套磨损1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳高空/旋转风险
9MT010 更换气缸套1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布防水防砸
10MT011 检查排气阀杆1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识防高温/误动作
11MT012 更换排气阀座1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线防金属屑/电击
12MT013/019 更换/排除喷油器1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火防燃防爆
13MT014 更换柱塞偶件隔离燃油系统,LOTO 挂牌上锁防燃油泄漏
14MT015 更换增压器轴承1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫防气体倒流/坠落
15MT016 清洗空冷器1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服防高压水伤人
16MT017 修复连杆异常磨损1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体防复燃/室息
17MT018修复活塞烧蚀1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证防火灾
18MT020 排除功率波动1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范防飞车/电火花
\\n\\n\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n
序号维修项目注意事项备注
1MT0011.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜防烫伤
2MT0021.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间防夹伤
3MT0031.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油防滑脱
4MT0041.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整防损伤
5MT0051.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套防烫/变形
6MT0061.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩防吸入积碳
7MT007/0081.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180°防划伤/装反
8MT0091.冷却水未排空不得测量2.手不得置于千分尺与缸壁间防夹伤
9MT0101.禁用火焰加热缸体2.压装时人员不得站压机正下方防裂纹/砸伤
10MT0111.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜防碎屑/热辐射
11MT0121.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测防热应力/裂纹
12MT013/0191.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装防卡死/污染
13MT0141.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确防相位错误
14MT0151.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形防误判/失效
15MT0161.禁用酸性清洗剂2.清洗压力≤5 MPa防腐蚀/翅片倒伏
16MT0171.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温防自燃
17MT0181.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷防二次裂纹
18MT0201.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认防飞车
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_bfa2402a-7784-4dcf-a836-3569e52ccafc.pdf#page=60\"}]" + } + }, + { + "type": "设备", + "properties": { + "名称": "机座与机架组件", + "组成编码": "01", + "维修项目名称": "排除主机功率异常波动故障", + "维修项目编号": "MT020", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"表 4.22 MT020 维修项目\\n
维修项目编号组成编码名称维修项目维修间隔期维修级别
MT02001机座与机架组件排除主机功率异常波动故障1UZJ级
安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。
安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。
序号名称规格/型号数量及单位备注
1主机监控系统(PMS)Integrated BridgeSystem1套读取实时功率曲线
2调速器性能测试仪 Woodward Test Bench1台检测响应滞后
3燃油黏度计MarconiViscotester1台测 HFO黏度
4多通道数据记录仪DataTaker DT801套同步录负荷/转速
2)备品
名称规格/型号消耗数量备注
1调速器伺服阀滤芯OEM-GOV-FILTER1个如堵塞
2燃油温度传感器PT100,0-200°C1个如漂移
3)消耗材料
序号名称牌号/品级/规格消耗数量备注
1标准测试燃油ISO 8217 RMG380300L用于稳定测试
2密封胶Loctite 577少量传感器安装
4)人力人员人员
序号专业人数技能等级备注
1机械专业2高级+中级高级主导系统分析
2自动化专业1中级负责调速器信号检测
修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。
分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。
针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟;
验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下);
3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1
\\n\\n\\n5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n
序号名称规格/型号生产单位通用/专用体积山重量8)参考价(元)存放位置备注
1液压升降平台HLP-3000OEM 或市场品专用120045085,000主机车间东侧工具架A区用于接近主机上部
2扭矩扳手TB-200N·mOEM 或市场品通用32.51,200工具柜 B-02精度±3%
3机油滤清器专用拆装工具OEM-DIESEL-FITOEM专用53.82,500主机备件柜M-07厂家配套
4工业吸油泵VAC-0IL50OEM 或市场品专用25186,800油料间防爆柜防爆型
5激光对SKF TKSA 71SKF专用84.298,000精密仪器室轴承
中仪C-01同轴度检测
6塞尺组0.02 - 1.00 mm市品通用0.80.6180量具盒D-05精度土0.005m
7液压拉伸器HYTORCAVANTI-10 /RS-20HYTORC专用302242,000螺栓工具架E区用于地脚螺栓/连杆螺栓
8内径千分尺200-300mm /40-50mmMitutoyo 等通用21.43,600量具柜F-03校验有效期内
9精密千分表 Mitutoyo543-791DMitutoyo专用1.20.94,200精密仪器室C-02分辨率0.001mm
10磁力表座Starrett 16BStarrett通用1.51.81,500量具柜F-04带万向关节
11V型支撑架Custom-Crank-V300OEM专用8012018,000曲轴检修平台旁承重≥500kg
12盘车手轮OEM-MAN-BW-PCWOEM专用15125,500主机附件箱G-01原厂配套
13内窥镜GE MentorVisual iQ /iQ-ExGE专用63.575,000探伤设备柜H-02防爆型用于故障排查
14轴承安装导向套OEM-MAN-BW-BG-04OEM专用45.23,800轴承装配区I-03防止瓦片移位
15活塞吊装专用吊具 OEM-MAN-BW-PST-05OEM专用202812,000吊具架J-01带缓冲橡胶夹头
16感应加热器EFD InductionMinac 16 /EFD专用453568,000热装工具区K-02温控精度
序号名称规格/型号生产单位通用/专用体积U重量(kg)参考价(元)存放位置备注
Minac 10±5℃
17铜棒与塑料锤Φ20×300 mm市品通用22.1150普通工具箱L-05用于轻敲装配
18活塞环压缩器OEM-MAN-BW-RCC-06OEM专用86.54,200活塞维修台M-03适配350活塞
19环槽清洁刮刀Custom-Piston-Groove-ScraperOEM专用0.50.4320活塞工具盒N-01铜质加
20环口定位夹具Custom-Ring-AlignerOEM专用32.31,800活塞维修台M-04控制环开□相位
21缸套拔出器OEM-MAN-BW-LINER-PULLOEM专用25329,500缸体检修区0-02螺纹顶压式
22液压压装机HYDRA-PRESS-50TOEM或市品专用600800180,000压装工位P区带压力与位移监控
23冷却水腔密封测试仪LeakTest-CT300OEM专用181528,000密封测试台Q-010.3MPa保压
24深度规0-150mm/0-300mm市品通用10.7600量具柜F-05
25放大镜(带LED)5×/10×withscale/light市品通用0.60.3220检验工具盒R-01检查裂纹/印痕
26防爆LED手电Streamlight88040Streamlight专用0.40.51,100防爆工具柜S-0124V安全电压
27清洁气枪Industrial AirBlow Gun市品通用1.20.9180气动工具架T-02压力≤0.5MPa
28排气阀专用吊具OEM-MAN-BW-VALVE-HOOKOEM专用12166,200阀件吊装区U-01带隔热手柄
29红外测温仪Fluke 62 Max+Fluke通用0.80.352,400电子仪表柜V-03测量高温
序号名称规格/型号生产单位通用/专用体积山重量(kg)参考价(元)存放位置备注
部件
30密封面检测平板Optical Flat/10市品专用10815,000精密测量台W-01着色法检查
31便携式阀座镗床SUNNEN SV-20SUNNEN专用9075130,000阀维修区X-01带角度调节
32液压阀座压装机 HYDRA-SEAT-PRESSOEM专用12018078,000阀维修区X-02过盈配合
33角度规0-90°Protractor市品通用1.51.2300量具柜F-06检查锥角
34喷油器专用拆装扳手OEM-MAN-BW-INJ-WRENCHOEM专用43.62,800喷油器工具箱Y-01防滑齿设计
35高压燃油压力表0-20 MPa市品通用0.90.8950仪表校验柜Z-02校验有效期内
36喷油雾化测试台Bosch EPS 815Bosch专用200220220,000喷油器测试室AA-01测开启压力与雾化角
37柱塞偶件安装导向套OEM-MAN-BW-PLUNGER-GUIDEOEM专用21.71,600喷油泵维修台AB-02防划伤
38供油定时检测仪AVL 545AVL专用151285,000燃油系统测试区AC-01测喷油始点
39涡轮增压器专用拆装台Custom-Turbo-BenchOEM专用30040095,000增压器维修区AD-01带V型支撑
40动平衡检测仪SchenckBALANCER VSchenck专用500600680,000平衡实验室AE-01G2.5级精度
41高压清洗机Kärcher HD7/15-4Karcher通用806532,000清洗站 AF-01压力0-5MPa可调
42管束专RotatingOEM专用0.30.2800清洗配件柜自旋
序号名称规格/型号生产单位通用/专用体积U重量8)参考价(元)存放位置备注
用清洗喷头Nozzle 3mm5AG-01
43风压干燥机Industrial AirDryer市品通用1209025,000空压站 AH-010.6MPa
44泄漏测试装置Air/Water LeakTesterOEM专用252036,000密封测试台Q-020.4MPa保压
45防爆型扫气箱清洗机器人SCB-CLEANBOT-X1OEM专用150130420,000机器人存放区AI-01自动高压水射流
46红外热像仪FLIR T860FLIR专用52.1120,000电气检测室AJ-01检测热点
47可燃气体检测仪MSA Altair 5XMSA专用10.78,500安全设备柜AK-01多气体复合
48等离子堆焊机PLASMAD 5000OEM专用400350580,000焊接修复区AL-01自动送粉
49热处理炉Box Furnace800°COEM专用10001200320,000热处理间AM-01控温土10℃
50超声波探伤仪Olympus Epoch650Olympus专用63.295,000探伤设备柜H-03检测内部缺陷
51三维扫描仪FARO ArmQuantumFARO专用3025750,000测绘室AN-01修复形貌比对
52主机监控系统(PMS)IntegratedBridge System船厂集成专用1,200,000集控室A0-01读取功率曲线
53调速器性能测试仪Woodward TestBenchWoodward专用180200480,000调速器测试间AP-01检测响应滞后
54燃油黏度计MarconiViscotesterMarconi专用12942,000燃油化验室AQ-01测HFO黏度
55多通道数据记录仪DataTaker DT80DataTaker通用32.418,000数据采集柜AR-01同步录负荷/转速
\\n\\n\\n\\n\\n\\n\\n\\n\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n
序号名称牌号/品级/规格生产单位备注
1柴油机专用润滑油 Shell Mysella S5 N80Shell符合MAN 97101标准
2无纺布抹布Industrial Grade市场品不掉屑
3清洗剂CRC Brakleen /Brulin 815GD/ CRC Carbon Clean ProCRC /Brulin多用途清洁
4主机油滤芯MAN B&W 5L35MC-FIL-01MAN原厂件
5机油放油螺塞密封圈Viton Φ22×2.5市场品耐高温氟橡胶
6清洁酒精AR Grade / ≥99.5%市场品
7防锈纸VCI-200市场品
8无绒擦拭布Kimwipe EX-LKimberly-Clark防刮伤
9轴承装配润滑脂 Kluber Isoflex LDS 18Special AKluber仅涂瓦背
10螺纹锁固胶Loctite 2701Henke1用于螺栓(如适用)
11高温装配润滑脂Molycote G-1052Dow Corning活塞销/螺纹
12积碳清洗剂CRC Carbon Clean ProCRC环保型
13防锈油CRC 3-36CRC临时防护
14二硫化钼润滑膏 Molycote BR2 PlusDow Corning涂活塞环外圆
15缸套润滑机油Shell Mysella S5 N80Shell同主滑油
16耐油标记笔Markal Oil-ResistantMarkal标记环开口
17耐高温标记笔Markal 900° FMarkal高温环境
18装配润滑脂 Kluber Isoflex LDS 18Special AKluber缸套外壁
19密封胶Loctite 518 / 577Henke1水腔/泵体法兰
20高温镍基焊条ENiCrFe-3市场品阀座焊接
21研磨膏(细)Clover Leaf GreenClover阀座研配
22清洁柴油ISO 4020 Grade A市场品冲洗油道
23高压泵专用润滑油 Shell Tellus S4 VX 32Shell偶件润滑
24中性清洗剂Alconox DetojetAlconoxpH=9.5,环保
25软化水Deionized Water市场品配清洗液
26生物降解清洗剂Envirox SC-90Envirox清除碳化油泥
27耐高温防火毯Fiberglass Mat 1200°C市场品局部隔热
28镍基合金焊粉INCONEL 625Special Metals堆焊修复
29渗透探伤剂Magnaflux ZL-27AMagnafluxPT检测裂纹
30保温棉Ceramic Fiber Blanket市场品焊后缓冷
31标准测试燃油ISO 8217 RMG380市场品稳定测试用
\\n\\n\\n6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n
序号维修项目安全防护要求备注
1MT001保养机座与机架组件1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡防止误启与油污扩散
2MT002检查主轴承座1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区防止转动伤人
3MT003检测曲轴跳动1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固防止测量中曲轴转动
4MT004更换连杆大端轴承1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区防止异物落入/坠落
5MT005更换连杆小端轴承1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫防止活塞坠落损坏
6MT006 拆检活塞头1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁防爆防误启
2.缸内作业使用≤24V防爆照明
7MT007/008更换活塞环1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩防止工具/异物落入
8MT009 检测缸套磨损1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳高空/旋转风险
9MT010 更换气缸套1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布防水防砸
10MT011 检查排气阀杆1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识防高温/误动作
11MT012 更换排气阀座1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线防金属屑/电击
12MT013/019 更换/排除喷油器1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火防燃防爆
13MT014 更换柱塞偶件隔离燃油系统,LOTO 挂牌上锁防燃油泄漏
14MT015 更换增压器轴承1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫防气体倒流/坠落
15MT016 清洗空冷器1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服防高压水伤人
16MT017 修复连杆异常磨损1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体防复燃/室息
17MT018修复活塞烧蚀1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证防火灾
18MT020 排除功率波动1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范防飞车/电火花
\\n\\n\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n
序号维修项目注意事项备注
1MT0011.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜防烫伤
2MT0021.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间防夹伤
3MT0031.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油防滑脱
4MT0041.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整防损伤
5MT0051.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套防烫/变形
6MT0061.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩防吸入积碳
7MT007/0081.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180°防划伤/装反
8MT0091.冷却水未排空不得测量2.手不得置于千分尺与缸壁间防夹伤
9MT0101.禁用火焰加热缸体2.压装时人员不得站压机正下方防裂纹/砸伤
10MT0111.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜防碎屑/热辐射
11MT0121.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测防热应力/裂纹
12MT013/0191.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装防卡死/污染
13MT0141.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确防相位错误
14MT0151.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形防误判/失效
15MT0161.禁用酸性清洗剂2.清洗压力≤5 MPa防腐蚀/翅片倒伏
16MT0171.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温防自燃
17MT0181.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷防二次裂纹
18MT0201.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认防飞车
\\n\\n\\n\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_bfa2402a-7784-4dcf-a836-3569e52ccafc.pdf#page=60\"}]" + } + }, + { + "type": "安全警告", + "properties": { + "名称": "发动机的安全警告", + "概述": "本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。", + "警告": "1.1 警告\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。", + "注意": "1.2 注意\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "内容": "1 安全警告\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\n1.1 警告\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\n1.2 注意\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\n6) 所有密封件(O形圈、金属密封环)拆装必换。\n7) 紧固件必须按规定力矩和顺序紧固。\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"1 安全警告\\n本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素,明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。\\n1.1 警告\\n1) 主发动机属于高温、高压、高转动惯量设备,维修作业前必须完全停车、盘车确认、挂牌隔离。\\n2) 严禁在主机带压、带温、带电状态下进行任何拆卸作业,否则可能造成人员伤亡。\\n3) 燃油系统、高压油泵及喷油器为高压精密部件,误操作可能导致高压喷射伤害。\\n4) 吊装曲轴、活塞、气缸盖等重件时,必须使用额定载荷合格的吊具并设置专人指挥。\\n1.2 注意\\n1) 所有更换件必须使用原厂或等同技术条件的认可备件。\\n2) 防冻液含碱。请避免接触皮肤和眼睛,以免造成 人身伤害。\\n3) 为自身安全考虑,请佩带防护设备:头盔、面罩、安全靴、防护镜、厚手套、护耳等。\\n4) 如果发动机周围环境中存在疑似燃烧介质(如燃油、润滑油或液化石油汽)泄漏或排放,请不要启动或继续运行发动机。\\n5) 拆装过程中严禁敲击精密偶件(如喷油嘴、柱塞偶件)。\\n6) 所有密封件(O形圈、金属密封环)拆装必换。\\n7) 紧固件必须按规定力矩和顺序紧固。\\n8) 起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力(发动机以及安装的各种附件的重量)。为安全起见,应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此,为了保持平衡和确保安全起见,可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项!发动机只能水平起吊。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_4fcabb82-02ab-49a9-8a9a-16af0fb6477e.pdf#page=3\"}]" + } + }, + { + "type": "功能", + "properties": { + "名称": "发动机的功能", + "内容": "2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑;\n2) 曲柄连杆机构:实现往复—旋转运动转换;\n3) 燃烧室部件:完成燃烧做功;\n4) 排气阀驱动系统:控制废气排放;\n5) 燃油喷射系统:完成燃油定时、定量喷射;\n6) 扫气与增压系统:提高换气效率与功率密度。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"2.1 主要功能\\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\\n发动机主要由以下子系统组成:\\n1) 机座与机架组件:承载与结构支撑;\\n2) 曲柄连杆机构:实现往复—旋转运动转换;\\n3) 燃烧室部件:完成燃烧做功;\\n4) 排气阀驱动系统:控制废气排放;\\n5) 燃油喷射系统:完成燃油定时、定量喷射;\\n6) 扫气与增压系统:提高换气效率与功率密度。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_d9af3a31-8ac8-4a27-a14a-a5650442afca.pdf#page=4\"}]" + } + }, + { + "type": "环境条件", + "properties": { + "名称": "发动机的环境条件", + "内容": "2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件\n长期纵倾:±5°;横倾:±15°;\n短期纵摇: $\\pm 1 0 ^ { \\circ } \\mathrm { ~ ~ { ~ ( ~ 5 \\sim 8 ~ \\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\pm 4 5 ^ { \\circ } \\mathrm { ~ ~ { ~ ( 8 \\sim 1 3 ~ s ) } ~ }$\n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$\n相对湿度:≤93%(40 ℃)。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"2.2 工作条件\\n2.2.1 正常运行条件\\n1)环境条件\\n长期纵倾:±5°;横倾:±15°;\\n短期纵摇: $\\\\pm 1 0 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( ~ 5 \\\\sim 8 ~ \\\\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\\\pm 4 5 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( 8 \\\\sim 1 3 ~ s ) } ~ }$\\n环境温度: $+ 5 \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } \\\\sim \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ + 5 5 ~ \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } ~ }$\\n相对湿度:≤93%(40 ℃)。\\n2)能源条件\\n表 2.1 冷水机组正常使用时的能源条件\\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\\n2.2.2 非正常运行条件\\n表 2.2 非正常输入条件及产生后果\\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\\n表 2.3 设备故障非正常输出条件及可能产生后果\\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_cb835a58-a43b-49ba-b0e9-b129bda925ad.pdf#page=4\"}]" + } + }, + { + "type": "基本情况", + "properties": { + "名称": "发动机的基本情况", + "主要功能": "2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑;\n2) 曲柄连杆机构:实现往复—旋转运动转换;\n3) 燃烧室部件:完成燃烧做功;\n4) 排气阀驱动系统:控制废气排放;\n5) 燃油喷射系统:完成燃油定时、定量喷射;\n6) 扫气与增压系统:提高换气效率与功率密度。", + "工作条件": "2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件\n长期纵倾:±5°;横倾:±15°;\n短期纵摇: $\\pm 1 0 ^ { \\circ } \\mathrm { ~ ~ { ~ ( ~ 5 \\sim 8 ~ \\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\pm 4 5 ^ { \\circ } \\mathrm { ~ ~ { ~ ( 8 \\sim 1 3 ~ s ) } ~ }$\n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$\n相对湿度:≤93%(40 ℃)。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "内容": "2 概述\n2.1 主要功能\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\n发动机主要由以下子系统组成:\n1) 机座与机架组件:承载与结构支撑;\n2) 曲柄连杆机构:实现往复—旋转运动转换;\n3) 燃烧室部件:完成燃烧做功;\n4) 排气阀驱动系统:控制废气排放;\n5) 燃油喷射系统:完成燃油定时、定量喷射;\n6) 扫气与增压系统:提高换气效率与功率密度。\n2.2 工作条件\n2.2.1 正常运行条件\n1)环境条件\n长期纵倾:±5°;横倾:±15°;\n短期纵摇: $\\pm 1 0 ^ { \\circ } \\mathrm { ~ ~ { ~ ( ~ 5 \\sim 8 ~ \\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\pm 4 5 ^ { \\circ } \\mathrm { ~ ~ { ~ ( 8 \\sim 1 3 ~ s ) } ~ }$\n环境温度: $+ 5 \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } \\sim \\mathrm { ~ \\small ~ \\displaystyle ~ + 5 5 ~ \\mathrm { ~ \\small ~ \\displaystyle ~ \\int ~ } ~ }$\n相对湿度:≤93%(40 ℃)。\n2)能源条件\n表 2.1 冷水机组正常使用时的能源条件\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\n2.2.2 非正常运行条件\n表 2.2 非正常输入条件及产生后果\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\n表 2.3 设备故障非正常输出条件及可能产生后果\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"2 概述\\n2.1 主要功能\\n船舶主发动机为低速二冲程船用推进柴油机,是船舶推进系统的核心动力装置,其主要功能是将燃油化学能转化为机械能,通过曲轴输出转矩,驱动推进轴系和螺旋桨,实现船舶航行。\\n发动机主要由以下子系统组成:\\n1) 机座与机架组件:承载与结构支撑;\\n2) 曲柄连杆机构:实现往复—旋转运动转换;\\n3) 燃烧室部件:完成燃烧做功;\\n4) 排气阀驱动系统:控制废气排放;\\n5) 燃油喷射系统:完成燃油定时、定量喷射;\\n6) 扫气与增压系统:提高换气效率与功率密度。\\n2.2 工作条件\\n2.2.1 正常运行条件\\n1)环境条件\\n长期纵倾:±5°;横倾:±15°;\\n短期纵摇: $\\\\pm 1 0 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( ~ 5 \\\\sim 8 ~ \\\\mathrm { ~ s ~ } ) ~ } ~ }$ ;横摇: $\\\\pm 4 5 ^ { \\\\circ } \\\\mathrm { ~ ~ { ~ ( 8 \\\\sim 1 3 ~ s ) } ~ }$\\n环境温度: $+ 5 \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } \\\\sim \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ + 5 5 ~ \\\\mathrm { ~ \\\\small ~ \\\\displaystyle ~ \\\\int ~ } ~ }$\\n相对湿度:≤93%(40 ℃)。\\n2)能源条件\\n表 2.1 冷水机组正常使用时的能源条件\\n序号 项目 船舶主发动机 1. 燃油 船用重油/轻柴油(符合ISO 标准) 2. 润滑油 主机系统油(厂家指定牌号) 3. 冷却介质 淡水/海水冷却系统 4. 控制电源 AC 380 V/ 50 Hz\\n2.2.2 非正常运行条件\\n表 2.2 非正常输入条件及产生后果\\n序号 项目 非正常输入条件 可能产生后果 1. 润滑油系统 润滑油压力过低 主轴承、连杆轴承润滑失效,导致轴承烧损,严重时引发曲轴抱死 2. 冷却系统 冷却水中断或流量不足 气缸套、活塞、气缸盖温度急剧升高,发生热变形或热咬死 3. 燃油系统 燃油污染(水分、杂质超标) 喷油器偶件、高压油泵柱塞偶件异常磨损,喷油雾化恶化 4. 扫气系统 扫气压力不足 气缸换气不良,燃烧恶化,排气温度升高 5. 增压系统 涡轮增压器效率下降或失效 主机功率下降,燃油消耗率上升 6. 电控系统 控制信号异常或供电不稳 启停、保护、报警功能异常,存在误操作风险\\n表 2.3 设备故障非正常输出条件及可能产生后果\\n序号 故障 非正常输出条件 可能产生后果 1. 主轴承或连杆轴承损坏 曲轴输出扭矩不稳定,振动和噪声显著增大 推进轴系振动加剧,可能引发轴系对中破坏,影响推进系统安全 2. 气缸套或活塞严重磨损 单缸功率下降,缸间功率不均 主机运行不平稳,长期运行可能导致曲轴疲劳损伤 3. 排气阀密封失效 排气温度异常升高,排气背压增大 涡轮增压器过热,降低增压系统使用寿命 4. 喷油器雾化不良 燃烧延迟,燃烧不完全,排烟恶化 排气系统积碳增加,空冷器、涡轮效率下降 5. 冷却系统效率降低 主机整体热负荷增大,温度报警频繁 附属设备(冷却泵、换热器)超负荷运行,可靠性下降 6. 润滑油系统故障 润滑油温度升高、油质劣化加快 加速各运动副磨损,缩短主发动机大修周期 7. 主发动机功率异常波动 推进功率输出不稳定 船舶航速控制困难,影响操纵性能和航行安全 8. 主机紧急停机 推进动力瞬间中断 对船舶航行安全造成直接影响,可能引发次生事故\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8f1569bb-15ae-48a7-b876-5f88ce2a265c.pdf#page=4\"}]" + } + }, + { + "type": "组成", + "properties": { + "名称": "发动机的组成", + "内容": "3.1 组成\n船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\n图 3.1 船舶主发动机组成图\nimages/fdb1588e2f75e0e8a15a765fd0e2c1e3b5a3cc0a623d68df5ab0f4230839e240.jpg\n表 3.1 船舶主发动机组成部分\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.1 组成\\n船舶主发动机主要由机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀\\n驱动系统、燃油喷射系统、扫气与增压系统等组成,设备组成图见图3.1,各组成部分的功能及数量见表3.1。\\n图 3.1 船舶主发动机组成图\\nimages/fdb1588e2f75e0e8a15a765fd0e2c1e3b5a3cc0a623d68df5ab0f4230839e240.jpg\\n表 3.1 船舶主发动机组成部分\\n序号 组成部分 功能 数量 1 机座与机架组件 承重与结构支撑 1 2 曲柄连杆机构 动力转换 1 3 燃烧室部件 燃烧做功 1 4 排气阀驱动系统 排气控制 1 5 燃油喷射系统 喷油控制 1 6 扫气与增压系统 换气增压 1\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_987bb73e-0a19-4804-bd8b-740633a1004c.pdf#page=5\"}]" + } + }, + { + "type": "工作原理", + "properties": { + "名称": "发动机的工作原理", + "内容": "3.2 工作原理\n主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\n船舶主发动机工作原理\n图 3.2 船舶主发动机组成图\nimages/ae9bcbc029d318bd8189bbb9c67cd730ea4c950b1e383ed8454834040d7d16ae.jpg\n图 3.3 机座与机架组件整体图\nimages/8adac92aca5096dde35f5be2420796b45d0e94ca723aae8ba857624de66aa758.jpg\n图 3.4 曲柄连杆机构工作原理图\nimages/23fa41fea5e5b5458d6f7df3f8e7e8033b6665bd23203946646651c3e56c2da7.jpg\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\n图 3.5 燃烧室部件工作原理图\nimages/ebfc008f330e9041518542ffd9cde5df5143a441eaada1b7e225cef8063aa904.jpg\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\n图 3.6 排气阀驱动系统工作原理图\nimages/bd853c17f04663c1afbaa7935da38fddd1bc94764f23539c044fdf3fc0ca42ed.jpg\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\n核心原理与步骤\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\n图 3.7 燃油喷射系统工作原理图\nimages/141c6a9ab46f9b8b4bd5ee3355ab569bbd8c17f0436343e32bf4429a742c40d9.jpg\n如图3.7中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\n图 3.8 扫气与增压系统工作原理图\nimages/d21cb32df23febcd28812d8e8d1a0fbfff2bc35be920932d6cd4a166663f1de4.jpg\n用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 700-900°C 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.2 工作原理\\n主发动机为低速二冲程柴油机。燃油经燃油供给单元加压后,由高压油泵按曲轴角度控制,通过喷油器喷入气缸内,与压缩空气混合燃烧。燃烧产生的高温高压推动活塞下行,经活塞杆、连杆带动曲轴旋转输出功率。废气经排气阀排出,扫气系统向气缸内补充新鲜空气,完成工作循环。\\n船舶主发动机工作原理\\n图 3.2 船舶主发动机组成图\\nimages/ae9bcbc029d318bd8189bbb9c67cd730ea4c950b1e383ed8454834040d7d16ae.jpg\\n图 3.3 机座与机架组件整体图\\nimages/8adac92aca5096dde35f5be2420796b45d0e94ca723aae8ba857624de66aa758.jpg\\n图 3.4 曲柄连杆机构工作原理图\\nimages/23fa41fea5e5b5458d6f7df3f8e7e8033b6665bd23203946646651c3e56c2da7.jpg\\n曲柄连杆机构的作用是提供燃烧场所,把燃料燃烧后产生的气体作用在活塞顶上的膨胀压力转变为曲轴旋转的转矩,不断输出动力。将气体的压力变为曲轴的转矩,将活塞的往复运动变为曲轴的旋转运动,把燃烧作用在活塞顶上的力转变为曲轴的转矩,以向工作机械输出机械能。\\n图 3.5 燃烧室部件工作原理图\\nimages/ebfc008f330e9041518542ffd9cde5df5143a441eaada1b7e225cef8063aa904.jpg\\n图3.5是燃烧室部件的工作原理图,燃烧过程组成部分主要有:初始段、燃烧段、稀释段。在初始段,燃料喷射到回流区,混合比接近化学当量比,要求确保火焰稳定。在燃烧段,加入二次空气,促进燃料完全燃烧。在稀释段,加入空气与废气混合,降低温度,使燃烧室排气管温度分布,与汽轮机、喷口导向叶片相适应。\\n图 3.6 排气阀驱动系统工作原理图\\nimages/bd853c17f04663c1afbaa7935da38fddd1bc94764f23539c044fdf3fc0ca42ed.jpg\\n船舶柴油机排气阀驱动系统原理主要是利用 机械连杆、凸轮轴和液压/气动装置,结合发动机的转速和气缸压力信号,通过精确的凸轮机构控制排气阀的开启时机与开启度,将燃烧后的废气顺畅排出,以实现高效换气,其核心是カム(凸轮)与挺杆/摇臂的配合动作,实现气门与气缸盖的精确密封与打开。\\n核心原理与步骤\\n动力源:曲轴通过正时齿轮(或链条)带动凸轮轴旋转,提供驱动动力。\\n凸轮驱动:凸轮轴上特定的凸轮轮廓,在旋转时顶起与其配合的挺杆或摇臂。\\n传递运动:挺杆/摇臂将凸轮的旋转运动转化为直线往复运动,传递给排气阀。\\n阀门启闭:排气阀在弹簧(或液压)的弹力作用下,由凸轮顶开,并在凸轮离开后关闭,完成排气过程。\\n精确控制:凸轮的形状和位置是经过精心设计,确保排气阀在活塞到达排气行程末端时准时开启,并在进入压缩行程前完全关闭,实现高效换气。\\n图 3.7 燃油喷射系统工作原理图\\nimages/141c6a9ab46f9b8b4bd5ee3355ab569bbd8c17f0436343e32bf4429a742c40d9.jpg\\n如图3.7中船舶柴油机燃油喷射系统原理,核心在于高压将柴油雾化喷入高温高压的压燃气缸中,利用压强和温度自燃,无需火花塞点火,主要包括供油、增压、喷射、点火燃烧几个环节,系统通常由低压供油(油箱->低压油泵->滤清器),高压输送(高压油泵->油轨/柱塞),精密喷射(喷油器->气缸),以及电子控制单元(ECU)组成,实现精确控制燃油量、喷油正时和压力,满足不同工况下的动力和排放要求。\\n图 3.8 扫气与增压系统工作原理图\\nimages/d21cb32df23febcd28812d8e8d1a0fbfff2bc35be920932d6cd4a166663f1de4.jpg\\n用发动机排出的高温高压废气驱动涡轮,带动同轴压气机将新鲜空气高压送入气缸,增加空气密度,允许喷入更多燃油,从而大幅提高功率,而扫气过程则负责用压缩空气将气缸内的余热废气排出,实现进排气的高效混合与置换。\\n增压系统原理(废气涡轮增压)能量回收:柴油机排出的约 700-900°C 的高温废气进入增压器的涡轮端,驱动涡轮高速旋转。空气压缩:涡轮通过主轴带动同轴的压气机(离心式)高速旋转,将新鲜空气吸入并压缩,压力升高(2-3个大气压)。进气增密:增压后的高密度、高压力空气被送入气缸,填满气缸,为喷入更多燃油创造条件。功率提升:更多的燃油在更多空气中燃烧,产生更大的热能和压力,有效提高柴油机功率。\\n扫气系统原理(二冲程柴油机常见)扫气方式:在二冲程柴油机中,活塞下行至排气口打开后,气缸内的废气依靠自身压力排出,同时扫气箱(或增压箱)中的新鲜空气通过扫气口进入气缸,将剩余废气“扫”出。扫气作用:将气缸内的废气排出,为下一次进气做准备。利用扫气空气的压力,提高气缸内的初始空气密度,提升换气效率。增压器与扫气结合:增压器压气机提供的增压空气,直接送入扫气箱,再由扫气口进入气缸,实现增压与扫气的联动,形成高效的进排气过程。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_e3899eeb-febe-4f34-b93e-152cd28a3fe9.pdf#page=9\"}]" + } + }, + { + "type": "技术指标参数", + "properties": { + "名称": "发动机的技术指标参数", + "内容": "3.3 技术指标\n船舶主发动机的基本指标参见表3.2。\n表 3.2 船舶主发动机基本参数\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度≤700cSt@ 50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径 ×行程 500 mm × 2200 mm 平均有效压力(BMEP) ~ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50 ℃ 冷却水进口温度 ≤ 36 ℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25 年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.3 技术指标\\n船舶主发动机的基本指标参见表3.2。\\n表 3.2 船舶主发动机基本参数\\n指标名称 参数值 1、功能特性 类型 低速、二冲程、直列六缸、涡轮增压、不可逆转式船用柴油机 燃油类型 重质燃料油(HFO),黏度≤700cSt@ 50°C 启动方式 压缩空气启动(3.0MPa) 额定转速 127 r/min 气缸数 6 缸径 ×行程 500 mm × 2200 mm 平均有效压力(BMEP) ~ 1.85 MPa 2、能力限制 最大持续功率(MCR) 8,520 kW (@ 127 r/min) 指标名称 参数值 最小稳定运行转速 20% MCR(约 25 r/min) 排气温度(正常工况) ≤ 420℃ 扫气压力 0.32 MPa 3、额定输出 输出功率 8,520 kW(≈ 11,580 HP) 输出扭矩 ≈ 640kN·m 燃油消耗率(ISO条件) ≤ 172 g/kWh 滑油消耗率 ≤ 0.6 g/kWh 4、环境特性 工作环境温度 -25℃~+50 ℃ 冷却水进口温度 ≤ 36 ℃ 相对湿度 ≤95%(无凝露) 单位散热量(总) ≈ 1,800 kW(含缸套水、活塞冷却、润滑油等) 外形尺寸与重量 整机外形尺寸(L×WXH) ≈ 11,200 mm × 4,500 mm × 6,800 mm 总干重(不含滑油、冷却水) ≈ 210,000 kg 5、外形尺寸、重量 重量 焊接机座组件(0101) 18,500 kg A型机架组件(0102) 12,400 kg 曲轴组件(0201) 28,000 kg 飞轮(020103) 3,500 kg 涡轮增压器(0601) 2,100 kg 空冷器(0602) 850kg 辅助鼓风机(0603,单台) 120 kg(共2台) 6、其它指标 设计寿命 ≥ 25 年(或 200,000小时) 关键寿命件更换周期 气缸套:30,000~40,000 h;活塞环:15,000~25,000 h;排气阀:20,000 h 控制系统 电子控制燃油喷射(ME-C 系统) 安全保护 超速、滑油低压、冷却水高温、曲轴箱油雾浓度等自动停机保护\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_fe841c75-4516-4760-97f9-564b9eefb74e.pdf#page=11\"}]" + } + }, + { + "type": "接口", + "properties": { + "名称": "发动机的接口", + "内容": "3.4 接口关系\n船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\n1) 安装接口\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48×320 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\n2) 能源接口\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管(040202 / 0503 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\n3) 信息与监测接口\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.4 接口关系\\n船舶主推进柴油机作为全船核心动力装置,通过多种能源、信息及机械接口与船平台(JC)及其他子系统实现集成。其主要接口包括安装接口、能源供给/排出接口(燃油、滑油、冷却水、扫气空气、排气)、以及监测与控制信息接口。\\n1) 安装接口\\n主发动机通过 焊接机座组件(0101) 安装于船体基座上,由 48 根 M48×320 地脚螺栓(010103) 固定,确保运行中承受交变载荷与振动。推力由 推力轴承座(010102) 传递至船体结构,实现轴系推力的有效支撑。\\n2) 能源接口\\n燃油系统:由 燃油供给单元(0501) 接收来自日用油柜的低压燃油,经 高压油泵(0503) 加压后通过 高压油管(040202 / 0503 高压油路) 输送至 喷油器组件(0502),实现缸内定时定量喷射。\\n滑油系统:外部滑油泵提供压力滑油,经机座内部油道分配至 主轴承(010101)、曲轴主轴颈(020102)、连杆大端轴承(020201) 等关键摩擦副,并润滑 涡轮增压器轴承组件(060103)。\\n冷却水系统:高温淡水回路流经 气缸套冷却水套(030303) 和 气缸盖,低温海水通过 空冷器(0602) 对增压扫气空气进行冷却。\\n扫气与排气系统:扫气空气由 辅助鼓风机(0603) 或 涡轮增压器(0601)提供,经 空冷器(0602) 冷却后进入 气缸套扫气口;\\n燃烧废气驱动 涡轮增压器涡轮转子轴(060101) 后,经排气管排至烟囱。\\n启动与安全系统:启动阀(030102) 接入压缩空气启动管路,用于主机启动;安全阀(030103) 与 示功阀(030104) 分别用于超压保护与燃烧状态检测。\\n3) 信息与监测接口\\n各缸配置 示功阀(030104),支持机械式或电子式示功仪接入,用于燃烧分析;注油器接头(030302) 可连接智能注油监控系统,实现气缸油按需供给;主轴承、增压器等关键部位预留温度、振动传感器安装孔位,支持状态监测系统(CMS)数据采集;控制系统通过 CAN 或 Modbus 通信接口与主机遥控系统、机舱自动化系统交互,传输转速、负荷、故障代码等信息。\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_0a6e660d-c85d-4ca9-aa75-9f41252a8086.pdf#page=13\"}]" + } + }, + { + "type": "布置情况", + "properties": { + "名称": "发动机的布置情况", + "内容": "3.5 布置情况\n全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\n船舶主发动机布置情况见表 3.3。\n表 3.3 船舶主发动机布置情况\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵触线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"3.5 布置情况\\n全船共配置 1 台 船舶主推进柴油机,配套系统按功能分区布置如下:\\n船舶主推进柴油机整体布置于主机舱中部偏后位置,沿船体纵向中心线安装,输出端通过推力轴承与中间轴相连,最终驱动螺旋桨。该布置确保轴系对中良好、重心居中,有利于船舶稳性与振动控制。\\n船舶主发动机布置情况见表 3.3。\\n表 3.3 船舶主发动机布置情况\\n序号 设备名称 位置信息 1 船舶主推进柴油机(整机) 主机舱中部,沿船体纵触线安装 2 焊接机座组件(0101) 固定于主机舱船体基座上 3 A型机架组件(0102) 安装于焊接机座上方 4 曲轴组件(0201) 位于机座主轴承座内,纵向贯穿主机 5 连杆组件(0202) 连接曲轴与活塞,每缸1套,共6套 6 气缸盖组件(0301) 安装于气缸套顶部,共6个 7 活塞与活塞杆组件(0302) 位于气缸套内,每缸1套,共6套 8 气缸套组件(0303) 嵌入机架水腔中,共6套 9 排气阀组件(0401) 安装于气缸盖顶部,每缸1套 10 液压驱动器(0402) 布置于气缸盖侧上方,与排气阀联动 11 燃油供给单元(0501) 主机前端右侧平台 12 高压油泵(0503) 安装于凸轮轴箱体上,每缸1台 13 喷油器组件(0502) 插入气缸盖中心孔,每缸3支(共18支) 14 涡轮增压器(0601) 主机排气总管上方,垂直安装 15 空冷器(0602) 增压器下游,固定于机架顶部 16 辅助鼓风机(0603) 机舱两侧应急风机平台,共2台 17 启动阀(030102) 集成于气缸盖,连接启动空气管路 18 安全阀(030103) 安装于气缸盖测压口 19 示功阀(030104) 位于气缸盖示功通道接口处 20 活塞杆填料函(030206) 安装于十字头导板下方密封区域\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8f08d8fa-0421-4cc0-bc63-4e520a59ff83.pdf#page=14\"}]" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "发动机的维修工作", + "维修项目索引表": "4.1 维修项目索引表\n表 4.1 船舶主发动机维修项目索引表\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 页码 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 20 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/2000h JY级 22 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 24 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JY级 26 MT005 020203 连杆小端轴承 更换连杆小端轴承 2A/12000h JY级 29 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 31 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 33 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 35 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 37 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 40 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 43 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 45 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 47 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 49 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 52 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 54 MT017 020201 连杆大端轴承 修复连杆大端轴承异常磨损 1U ZJ级 57 MT018 030201 活塞头 修复活塞头部烧蚀 1U ZJ级 59 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 61 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 63", + "内容": "4维修工作指导\n4.1 维修项目索引表\n表 4.1 船舶主发动机维修项目索引表\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 页码 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 20 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/2000h JY级 22 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 24 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JY级 26 MT005 020203 连杆小端轴承 更换连杆小端轴承 2A/12000h JY级 29 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 31 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 33 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 35 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 37 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 40 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 43 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 45 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 47 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 49 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 52 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 54 MT017 020201 连杆大端轴承 修复连杆大端轴承异常磨损 1U ZJ级 57 MT018 030201 活塞头 修复活塞头部烧蚀 1U ZJ级 59 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 61 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 63\n4.2 常见故障表\n表 4.2 船舶主发动机常见故障表\n序号 故障现象 故障原因 维修项目 1 主机运行中振动异常增大 主轴承或连杆大端轴承磨损 执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损 曲轴主轴颈跳动超差 执行以下维修项目:MTO03 检测曲轴主轴颈跳动量 2 单缸功率下降、排温偏低 活塞头烧蚀或活塞环断裂 执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀 气缸套严重磨损 执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套 喷油嘴偶件雾化不良 执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障 3 排气温度异常升高 排气阀密封面磨损或阀座烧蚀 执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座 涡轮增压器轴承损坏 执行以下维修项目:MT015 更换涡轮增压器轴承组件 4 扫气箱内发现润滑油泄漏 活塞杆填料函密封失效 执行以下维修项目:MTO01保养机座与机架组件 5 主机启动困难或压缩压力不足 缸盖密封环老化失效 执行以下维修项目:MT001保养机座与机架组件 6 主机功率输出不稳定 喷油器工作不一致 执行以下维修项目:MT019 排除喷油器雾化不良故障 调速系统响应异常 执行以下维修项目:MT020 排除主机功率异常波动故障 7 空冷器后扫气温度持续偏高 空冷器管束芯体结垢或堵塞 执行以下维修项目:MT016 清洗空冷器管束芯体 8 主机润滑油消耗异常增加 活塞环磨损或断裂 执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环 活塞杆填料函磨损 执行以下维修项目:MT001保养机座与机架组件 9 高压燃油管路附近有油渍 高压油管接头密封失效 执行以下维修项目:MT014 更换高压油泵柱塞偶件 10 主机紧急停机 润滑油压力骤降 执行以下维修项目:MT001保养机座与机架组件 多缸燃烧严重失衡 执行以下维修项目:MT020 排除主机功率异常波动故障\n4.3 维修项目表\n本节主要填写各维修项目的修理表,包括预防性、恢复性维修、故障排查项目。\n表 4.3 MT001 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。 安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。 序号 名称 规格/型号 数量及单位 备注 1 液压升降平台 HLP-3000 1台 用于接近主机上部 2 扭矩扳手 TB-200N·m 1把 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT 1套 厂家配套 4 工业吸油泵 VAC-0IL50 1台 防爆型 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 高压燃油泵 HD-45A 2个 原厂件 2 涡轮增压器 TC-80B 1个 耐高温氟橡胶 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 柴油机专用润滑油 Shell Mysella S5N80 50L 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 5张 不掉屑 3 清洗剂 CRC Brakleen 1罐 用于清洁滤座\n4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师 主导保养流程 2 电气专业 1 技师 监控主机ECU状 态 修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识; 3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油; 图 MT001.1旋松螺塞 (2)检查排出机油中是否有金属屑,若有则记录并上报异常。 图MT001.2检查 2)更换机油滤芯\n图 MT001.3 拆卸\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\n图 MT001.4 滤芯安装扭矩示意图\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\n图 MT001.5 滤芯安装扭矩示意图\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\n(2)静置 10 分钟后复查油位,补充至标准范围。\n图 MT001.6 油位检查\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\n图 MT001.7 安装放油螺塞\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\n图 MT001.8 油污清理\n3)拆除“禁止启动”牌,通知集控室保养完成。 验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下); 2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。 页码:2/2 版本号:1\n表 4.4 MT002 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/200h JY级 安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。 安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。 序号 名称 规格/型号 数量及单位 备注 1 激光对中仪 SKF TKSA 71 1套 用于轴承同轴度检测 2 塞尺组 0.02 -1.00 mm 1套 精度±0.005mm 3 液压拉伸器 HYTORC AVANTI-10 1台 用于地脚螺栓预紧 4 内径千分尺 200-300mm 1把 校验有效期内 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁酒精 AR Grade 100mL 2 防锈纸 VCI-200 2张 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;\n图 MT002.1 换油前清洗\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\n图 MT002.2 检查\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\n图 MT002.3 塞尺测量\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\n图 MT002.4 激光对中仪\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\n图 MT002.5 测量轴线偏移量\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\n判定与处理 1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。 验收标准 1.主轴承座与机座结合面间隙≤0.05mm(全周); 2.相邻主轴承同轴度偏差≤0.08 mm/m; 3.地脚螺栓预紧力在设计值 ±5% 范围内。 页码:1/1 版本号:1\n表 4.5 MT003 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。 安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg 序号 名称 规格/型号 数量及单位 备注 1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm 2 磁力表座 Starrett 16B 1个 带万向关节 3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg\n4 盘车手轮 OEM-MAN-BW-PCW 1个 原厂配套\n序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1\n序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 50mL 清洁轴颈表面 2 无绒擦拭布 Kimwipe EX-L 3张 防刮伤轴面\n序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工复刻数据\n图 MT003.1 清洁\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\n图 MT003.2 标记测量基准点\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\n2)安装千分表\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\n图 MT003.3 千分尺\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\n(2)预压千分表 0.3 mm,归零。\n3)盘车测量\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\n(2)跳动量 = 最大值 - 最小值;\n(3)重复上述步骤,依次测量其余主轴颈。\n数据判定\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\n表 4.6 MT004 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JT级 安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。 安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。 序号 名称 规格/型号 数量及单位 备注 1 液压拉伸器 HYTORC RS-20 1套 2 扭矩扳手 Norbar 1500N·m 1把 精度±2% 3 轴承安装导向套 OEM-MAN-BW-BG-04 1个 4 内窥镜 GE Mentor Visual iQ 1台 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆大端轴承上瓦 MAN 5L35MC-BRG-UP 1副 原厂高锡合金 2 连杆大端轴承下瓦 MAN 5L35MC-BRG-DN 1副 3 连杆螺栓 M30 ×2.0 Grade 12.9 2根 次性使用,强制更换 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\n1 轴承装配润滑脂 Kluber Isoflex LDS18 Special A 10g 仅涂瓦背 2 螺纹锁固胶 Loctite 2701 少量 用于螺栓螺纹(如适用) 3 清洗剂 Brulin 815GD 200mL 清洁连杆结合面\n4)人力人员\n序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2x工程师 总工监督关键步骤\n修理步骤及工艺\n更换前提确认\n1)主机已完成停机冷却,滑油系统泄压;\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\n拆卸旧轴承\n1)拆连杆盖\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\n(2)取下螺栓及连杆大端盖,放置于专用托架。\n2)取出旧轴承\n(1)轻敲连杆体侧面,使下瓦自然脱落;\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\n安装新轴承\n1)清洁与检查\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\n(2)目视检查新瓦背面涂层均匀,无裂纹。\n2)装配\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\n(2)将下瓦装入连杆盖,同样对准定位;\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\n3)紧固螺栓\n(1)安装新连杆螺栓,手工旋入到底;\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\n(3)最终用角度法复核(如适用)。\n图 MT004.1 连杆大端轴承结构分解图\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\n表 4.7 MT005 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT005 020203 连杆小段轴承 更换连杆小段轴承 2A/12000h JY级 安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。 安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。 序号 名称 规格/型号 数量及单位 备注 1 活塞吊装专用吊具 OEM-MAN-BW-PST-05 1套 带缓冲橡胶夹头 2 感应加热器 EFD Induction Minac16 1台 温控精度±5℃ 3 内径千分尺 40 - 50 mm 1把 校验有效期内 4 铜棒与塑料锤 Φ20×300 mm 各1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆小端衬套(上) MAN 5L35MC-BUSH-UP 1件 锡青铜基 2 连杆小端衬套(下) MAN 5L35MC-BUSH-DN 1件 3 活塞销卡簧 Φ50×2.5 mm 2个 不锈钢,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\n1 高温装配润滑脂 Molycote G-1052 5g 2 清洗剂 Brulin 815GD 150mL 3 耐高温标记笔 Markal 900°F 1支\n4)人力人员\n序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师主导热装\n修理步骤及工艺\n更换前提确认\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\n拆卸旧衬套\n1)抽出活塞-连杆总成\n(1)拆除缸头、喷油器及冷却水管路;\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\n2)压出旧衬套\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\n安装新衬套\n1)清洁与预装检查\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\n(2)测量座孔内径,记录作为过盈量计算依据。\n2)热装新衬套\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\n(2)迅速将热衬套套入连杆小端,确保完全到位;\n(3)自然冷却至室温,禁止强制冷却。\n3)精铰与研配(如需要)\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\n组装活塞销与卡簧\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\n验收标准 1.衬套与座孔过盈配合牢固,无松动或轴向位移; 2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。 页码:1/1 版本号:1\n表 4.8 MT006 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。 安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配350mm活塞 2 内窥镜 GE Mentor Visual iQ 1台 3 深度规 0-150mm 1把 4 放大镜 10× with scale 1个 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检查类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 积碳清洗剂 CRC Carbon CleanPro 200mL 环保型 2 无纺布 Industrial Grade 5张 3 防锈油 CRC 3-36 50mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。 抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态 1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查 (1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。 判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008; 3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。\n表 4.9 MT007 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。 安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配Φ350 mm活塞 2 环口间隙测量规 Feeler Gauge Set 1套 0.05-1.00mm 3 环槽清洁刮刀 Custom-Piston-Groove-Scraper 1把 铜质刃口 4 扭矩扳手 20-100 N·m 1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第一道压缩环 MAN 5L35MC-RING-1 1件 梯形截面,表面镀铬 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 5g 2 无绒布 Kimwipe EX-L 3张 3 清洗剂 Brulin 815GD 100mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师复刻还口间隙 修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。 验收标准 1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内; 页码:1/1 3.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1\n表 4.10 MT008 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。 安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 同MT007 2 环口定位夹具 Custom-Ring-Aligner 1套 控制各环开口相位 3 放大镜(带LED) 5X with light 1个 检查环体缺陷 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第二道压缩环 MAN 5L35MC-RING-2 1件 锥面环 2 第三道刮油环(组合式) MAN 5L35MC-RING-3 1套 含轨环+弹簧胀圈 3 第四道刮油环(组合式) MAN 5L35MC-RING-4 1套 同上 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 10g 涂所有环外圆 2 缸套润滑机油 Shell Mysella S5N80 50mL 涂缸壁 3 标记笔(耐油) Marka1Oil-Resistant 1支 标记环开口位置 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+ 技师 工程师监督相位布置 修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。 拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。 差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120° (1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证 1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;\n表 4.11 MT009 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。 安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 内径千分尺(三点式) Mitutoyo 204-304 mm 1套 分辨率0.001mm 2 缸套磨损测量记录仪 Custom-Bore-Wear-Log 1台 自动生成磨损曲线 3 防爆LED手电 Streamlight 88040 1个 24V安全电压 4 清洁气枪 Industrial Air BlowGun 1把 压力≤0.5 MPa 2)备品 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检测类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 100mL 清洁测量接触面 2 无绒布 Kimwipe EX-L 5张 防刮伤缸壁 3 防锈纸 VCI-200 2张 测量后临时覆盖 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工审核磨损趋势\n3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略) 验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。 页码:1/1 版本号:1\n表 4.12 MT010 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。 安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。 序号 名称 规格/型号 数量及单位 备注 1 液压压装机 HYDRA-PRESS-50T 1台 带压力与位移监控 2 缸套拔出器 OEM-MAN-BW-LINER-PULL 1套 螺纹顶压式 3 冷却水腔密封测试仪 LeakTest-CT300 1台 0.3 MPa保压 4 深度规 0- 300 mm 1把 测量缸套凸肩高度 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 气缸套总成 MAN5L35MC-LINER-ASSY 1件 含0形圈、定位销 2 缸套水封0形圈 Viton Φ380×5.0 2个 耐高温氟橡胶 3 缸套油封环 NBR Φ352×3.0 1个 下部密封 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 装配润滑脂 Kluber Isoflex LDS18 Special A 20g 涂缸套外壁 2 密封胶 Loctite 518 少量 水腔法兰面(如适用) 3 清洗剂 Brulin 815GD 300mL 清洁缸体座孔 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工监督压装对中\n修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。 3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm; 2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1\n表 4.13 MT011 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。 安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK 1套 带隔热手柄 2 红外测温仪 Fluke 62 Max+ 1台 测量阀杆温度 3 密封面检测平板 Optical Flat λ/10 1块 用于着色法检查 4 着色剂套装 Dykem Steel Blue +Developer 1套 检查接触印痕 2)备品备件 序 名称 规格/型号 消耗数量 备注 一 本项目为检查类,无备件消耗(但可能触发MT012) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温清洁剂 CRC Brakleen HT 100mL 清除积碳 2 无绒布 Kimwipe EX-L 5张 防刮伤密封面 3 防锈油 CRC 3-36 30mL 检查后临时防护 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座); 3)记录检查结果于《排气阀状态档案》。 验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm; 2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。 页码:1/1 版本号:1\n表 4.14 MT012 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。 安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。 序号 名称 规格/型号 数量及单位 备注 1 便携式阀座镗床 SUNNEN SV-20 1台 带角度调节 2 液压阀座压装机 HYDRA-SEAT-PRESS 1台 用于过盈配合座 3 渗透探伤套装 Magnaflux ZL-27A 1套 PT检测裂纹 4 角度规 0-90°Protractor 1把 检查密封锥角 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀座 MAN5L35MC-EXH-SEAT 1件 Stellite合金堆焊 2 定位销(如适用) Φ8×20 mm 1个 不锈钢 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温镍基焊条 ENiCrFe-3 1根 用于焊接固定(如需要) 2 清洗剂 Brulin 815GD 150mL 清洁阀座孔 3 研磨膏(细) Clover Leaf Green 20g 配合研磨 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工批准焊接/压装方案 修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座 1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。 2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座); 3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。 页码:1/1 版本号:1\n表 4.15 MT013 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火 安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 高压燃油压力表 0-20 MPa 1个 校验有效期内 3 喷油雾化测试台 Bosch EPS 815 1台 可测开启压力与雾化角 4 扭矩扳手 40 -200 N·m 1把 用于喷油器压紧螺母 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件(针阀+阀体) MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂高精度配对 2 喷油器铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性\n3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200 mL 用于冲洗油道 2 3 无绒布 高温润滑脂 Kimwipe EX-L 5张 少量 擦拭偶件表面 4)人力人员 Molycote G-1052 涂压紧螺纹 序号 专业 人数 技能等级 备注 修理步骤及工艺 1 机械专业 2 工程师+技师 工程师操作测试 台 更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件 (1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5° 无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa; 2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。\n表 4.16 MT014 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。 安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖 序号 名称 规格/型号 数量及单位 备注 1 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤 2 供油定时检测仪 AVL 545 1台 测量喷油始点 3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙 4 扭矩扳手 30-150 N·m 1把 用于泵体检修盖 2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用) 序 名称 规格/型号 消耗数量 备注 1 柱塞+套筒偶件 MAN5L35MC-PLUNGER-KIT 1套 配对编号一致 2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高压泵专用润滑油 Shell Tellus S4 VX32 100mL 用于偶件润滑 2 密封胶 Loctite 577 少量 泵体结合面(如适用) 3 清洗柴油 ISO 4020 Grade A 300mL 冲洗油道 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工确认供油定时 修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m; (2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA; 验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA; 3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1\n表 4.17 MT015 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。 安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。 序号 名称 规格/型号 数量及单位 备注 1 涡轮增压器专用拆装台 Custom-Turbo-Bench 1台 带V型支撑 2 感应加热器 EFD Minac 10 1台 温控±5℃ 3 动平衡检测仪 Schenck BALANCER V 1台 G2.5级精度 4 扭矩扳手 10-80 N·m 1把 用于壳体螺栓 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 径向轴承(主轴) MAN TCA77-BRG-RAD 1套 铜铅合金 2 止推轴承组件 MANTCA77-BRG-THRUST 1套 含瓦片+垫片组 3 轴封环 Carbon Seal Φ60X3 2个 石墨基 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温润滑脂 Kluber Isoflex LDS18 Special A 15g 仅涂轴承外圈 2 清洗剂 Brulin 815GD 200mL 清洁轴承座 3 密封胶 Loctite 518 少量 壳体结合面 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导装配 2 电子专业 1 中级 监测振动传感器\n(如适用) 修理步骤及工艺 更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换; 拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃; 2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。\n表 4.18 MT016 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。 安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。\n序号 名称 规格/型号 数量及单位 备注 1 高压清洗机 Kärcher HD 7/15-4 1台 压力0-5MPa可调 2 管束专用清洗喷头 Rotating Nozzle 3mm 2个 自旋式 3 风压干燥机 Industrial AirDryer 1台 0.6 MPa 4 泄漏测试装置 Air/Water LeakTester 1套 0.4 MPa 保压\n序 名称 规格/型号 消耗数量 备注 本项目为清洗 类,无备件消耗 (但可能触发堵 管修复\n序号 名称 牌号/品级/规格 消耗数量 备注 1 中性清洗剂 Alconox Detojet 2kg pH=9.5,环保型 2 软化水 Deionized Water 200L 配制清洗液 3 防锈剂 CRC 3-36 100mL 清洗后喷涂\n序号 专业 人数 技能等级 备注 1 机械专业 2 中级+初级 中级操作高压设备\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\n1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥 (1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准 1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1\n表 4.19 MT017 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 T017 030200 连杆大端轴承 修复连杆大端轴承异常磨损 故障触发 ZJ级 安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。 安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。 序号 名称 规格/型号 数量及单位 备注 1 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 1台 自动高压水射流 2 内窥镜(防爆) GE Mentor VisualiQ-Ex 1台 检查缸套下部 3 红外热像仪 FLIR T860 1台 检测局部热点 4 可燃气体检测仪 MSA Altair 5X 1台 多气体复合 2)备品 备件 序 名称 规格/型号 消耗数量 备注 1 全套活塞环组 MAN5L35MC-RING-SET 1套 含1-4号环 2 活塞头(如需更换) MAN5L35MC-PISTON-HEAD 1件 铸钢整体式 3 扫气口密封条 Viton Strip 5×10mm 若干 更换烧损件 3)消耗 材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 生物降解清洗剂 Envirox SC-90 5L 清除碳化油泥 2 耐高温防火毯 Fiberglass Mat1200°C 2m 局部隔热防护 3 防锈剂 CRC 3-36 200mL 修复后防护 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工主导故障分析 2 安全监督 1 高级安全员 全程监护受限空间作业 修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头; 2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。 验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。 页码:1/1 版本号:1\n表 4.20 MT018 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT018 030201 活塞头 修复活塞头部烧蚀熔损 故障触发 ZJ级 安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。 安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。 序号 名称 规格/型号 数量及单位 备注 1 等离子堆焊机 PLASMAD 5000 1台 自动送粉 2 热处理炉 Box Furnace 800° C 1台 控温±10℃ 3 超声波探伤仪 Olympus Epoch 650 1台 检测内部缺陷 4 三维扫描仪 FARO Arm Quantum 1台 修复前后形貌比对 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 本项目为修复类,通常不消耗新活塞(除非报废) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 镍基合金焊粉 INCONEL 625 300g 耐高温抗烧蚀 2 渗透探伤剂 Magnaflux ZL-27A 1套 PT检测裂纹 3 保温棉 Ceramic FiberBlanket 2 kg 焊后包裹缓冷 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+高级技师 总工批准修复方案 2 焊接专业 1 高级焊工(ASMEIX认证) 执行堆焊\n修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理 3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证 2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm); 3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1\n表 4.21 MT019 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗 3 扭矩扳手 40-200 N·m 1把 用于压紧螺母回装 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件 MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂配对 2 铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道 2 无绒布 Kimwipe EX-L 5张 3 高温润滑脂 Molycote G-1052 少量 4)人力人员 序号 专业 人数 技能等级 1 机械专业 2 高级+中级 修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m; 2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。 验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。 页码:1/1 版本号:1\n表 4.22 MT020 维修项目\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。 安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。 序号 名称 规格/型号 数量及单位 备注 1 主机监控系统(PMS) Integrated BridgeSystem 1套 读取实时功率曲线 2 调速器性能测试仪 Woodward Test Bench 1台 检测响应滞后 3 燃油黏度计 MarconiViscotester 1台 测 HFO黏度 4 多通道数据记录仪 DataTaker DT80 1套 同步录负荷/转速 2)备品 序 名称 规格/型号 消耗数量 备注 1 调速器伺服阀滤芯 OEM-GOV-FILTER 1个 如堵塞 2 燃油温度传感器 PT100,0-200°C 1个 如漂移 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 标准测试燃油 ISO 8217 RMG380 300L 用于稳定测试 2 密封胶 Loctite 577 少量 传感器安装 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导系统分析 2 自动化专业 1 中级 负责调速器信号检测 修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。 分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。 针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟; 验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下); 3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"4维修工作指导\\n4.1 维修项目索引表\\n表 4.1 船舶主发动机维修项目索引表\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 页码 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 20 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/2000h JY级 22 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 24 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JY级 26 MT005 020203 连杆小端轴承 更换连杆小端轴承 2A/12000h JY级 29 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 31 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 33 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 35 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 37 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 40 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 43 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 45 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 47 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 49 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 52 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 54 MT017 020201 连杆大端轴承 修复连杆大端轴承异常磨损 1U ZJ级 57 MT018 030201 活塞头 修复活塞头部烧蚀 1U ZJ级 59 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 61 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 63\\n4.2 常见故障表\\n表 4.2 船舶主发动机常见故障表\\n序号 故障现象 故障原因 维修项目 1 主机运行中振动异常增大 主轴承或连杆大端轴承磨损 执行以下维修项目:MTO04 更换连杆大端轴承MT017 修复连杆大端轴承异常磨损 曲轴主轴颈跳动超差 执行以下维修项目:MTO03 检测曲轴主轴颈跳动量 2 单缸功率下降、排温偏低 活塞头烧蚀或活塞环断裂 执行以下维修项目:MTO06 拆检活塞头磨损情况MT018 修复活塞头部烧蚀 气缸套严重磨损 执行以下维修项目:MT009 检测气缸套内径磨损量MT010 更换气缸套 喷油嘴偶件雾化不良 执行以下维修项目:MT013 更换喷油嘴偶件MT019 排除喷油器雾化不良故障 3 排气温度异常升高 排气阀密封面磨损或阀座烧蚀 执行以下维修项目:MT011 检查排气阀杆密封面磨损MT012 更换排气阀座 涡轮增压器轴承损坏 执行以下维修项目:MT015 更换涡轮增压器轴承组件 4 扫气箱内发现润滑油泄漏 活塞杆填料函密封失效 执行以下维修项目:MTO01保养机座与机架组件 5 主机启动困难或压缩压力不足 缸盖密封环老化失效 执行以下维修项目:MT001保养机座与机架组件 6 主机功率输出不稳定 喷油器工作不一致 执行以下维修项目:MT019 排除喷油器雾化不良故障 调速系统响应异常 执行以下维修项目:MT020 排除主机功率异常波动故障 7 空冷器后扫气温度持续偏高 空冷器管束芯体结垢或堵塞 执行以下维修项目:MT016 清洗空冷器管束芯体 8 主机润滑油消耗异常增加 活塞环磨损或断裂 执行以下维修项目:MTO07更换1号压缩环MT008更换2-4号活塞环 活塞杆填料函磨损 执行以下维修项目:MT001保养机座与机架组件 9 高压燃油管路附近有油渍 高压油管接头密封失效 执行以下维修项目:MT014 更换高压油泵柱塞偶件 10 主机紧急停机 润滑油压力骤降 执行以下维修项目:MT001保养机座与机架组件 多缸燃烧严重失衡 执行以下维修项目:MT020 排除主机功率异常波动故障\\n4.3 维修项目表\\n本节主要填写各维修项目的修理表,包括预防性、恢复性维修、故障排查项目。\\n表 4.3 MT001 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT001 01 机座与机架组件 保养机座与机架组件 1M JY级 安全防护要求1.保养作业前,必须在主机控制面板悬挂“禁止启动”红色警示牌;2.机油排放区域应铺设防滑吸油垫,并设置围挡防止油液外溢。 安全注意事项1.保养前确认主机已停机至少2小时,确保系统无残余压力与高温;2.排放热机油时佩戴耐高温手套及护目镜,防止烫伤。 序号 名称 规格/型号 数量及单位 备注 1 液压升降平台 HLP-3000 1台 用于接近主机上部 2 扭矩扳手 TB-200N·m 1把 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT 1套 厂家配套 4 工业吸油泵 VAC-0IL50 1台 防爆型 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 高压燃油泵 HD-45A 2个 原厂件 2 涡轮增压器 TC-80B 1个 耐高温氟橡胶 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 柴油机专用润滑油 Shell Mysella S5N80 50L 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 5张 不掉屑 3 清洗剂 CRC Brakleen 1罐 用于清洁滤座\\n4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师 主导保养流程 2 电气专业 1 技师 监控主机ECU状 态 修理步骤及工艺 保养前检查与准备 1)确认主机已停机冷却,滑油温度≤50℃; 2)断开主机启动电源,并在集控室操作屏挂“保养中”标识; 3)准备接油盘置于主机油底壳下方,容量 ≥60 L。 执行保养作业 1)排放旧机油 (1)旋松油底壳放油螺塞(扭矩释放后手动旋出),完全排空旧油; 图 MT001.1旋松螺塞 (2)检查排出机油中是否有金属屑,若有则记录并上报异常。 图MT001.2检查 2)更换机油滤芯\\n图 MT001.3 拆卸\\nimages/634a9bafc8670aaaee381f576c05c5e4939c0224ee2d1e44c60b987979dac4e7.jpg\\n图 MT001.4 滤芯安装扭矩示意图\\nimages/ae6ad4e0b94a7c29af41d789daed769a8ad02a40d2fe0abdb1272ec45351c0d7.jpg\\n图 MT001.5 滤芯安装扭矩示意图\\nimages/76a30aee98554415c96b512f7654b33f4887ba57e194eefff14ad7ece01a04f7.jpg\\n(2)静置 10 分钟后复查油位,补充至标准范围。\\n图 MT001.6 油位检查\\nimages/87663e5c6b09d63e2cbbc4edd5b1acd308972c51ab23d7e8dccc632edd0dbb33.jpg\\n1)安装放油螺塞(新密封圈),扭矩:45 N·m;\\n图 MT001.7 安装放油螺塞\\nimages/c29a66ac5502fa68a60936a9bd4c95b8b2d7fe3dc33a02f795394ae214b36d90.jpg\\nimages/403ef11b648c8d26bed00741dc3769654228443f4488bdbd7125c492d26f53ee.jpg\\n图 MT001.8 油污清理\\n3)拆除“禁止启动”牌,通知集控室保养完成。 验收标准 1.启动主机后运行10分钟,滑油压力稳定在0.45~0.60MPa(额定转速下); 2.滤芯座及放油口无渗漏,目视检查无油迹; 3.滑油取样检测粘度变化率≤5%,无水分及金属颗粒超标。 页码:2/2 版本号:1\\n表 4.4 MT002 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT002 0101 焊接机座组件 检查主轴承座安装状态 6M/200h JY级 安全防护要求1.检查前必须锁定曲轴转动机构,并在飞轮处加装机械止动销;2.作业区域设置激光对中仪警戒区,非相关人员禁止入内。 安全注意事项1.禁止在主机运转或盘车未锁定状态下进行测量;2.使用塞尺或千分表时,手指不得置于轴承盖与机座结合面之间。 序号 名称 规格/型号 数量及单位 备注 1 激光对中仪 SKF TKSA 71 1套 用于轴承同轴度检测 2 塞尺组 0.02 -1.00 mm 1套 精度±0.005mm 3 液压拉伸器 HYTORC AVANTI-10 1台 用于地脚螺栓预紧 4 内径千分尺 200-300mm 1把 校验有效期内 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁酒精 AR Grade 100mL 2 防锈纸 VCI-200 2张 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 修理步骤及工艺前提条件确认1)主机停机≥4 小时,环境温度 15-35℃;2)所有主轴承盖地脚螺栓处于规定预紧力(参考值:850 kN)。检查主轴承座安装状态1)清洁与目视检查(1)清除轴承座与机座结合面油污、锈迹;\\n图 MT002.1 换油前清洗\\nimages/6e07f4ed4eff524fcf27b46da35e8d8e26ce386f5dc2d0b9ce6fbe980421b65f.jpg\\n图 MT002.2 检查\\nimages/83f3fec20a9a08aa580099d3be001ed742e363e0aa80739cc41588f8c3e63eff.jpg\\n图 MT002.3 塞尺测量\\nimages/053bd05e6e9bf48958a4a384d688bbb605792dabeb0d47bb30197baa03f837e1.jpg\\n图 MT002.4 激光对中仪\\nimages/0e9230aad70dcda667a669ad93d4bbe1a5278b2b002597f595fd5b6e9e1e54b5.jpg\\n图 MT002.5 测量轴线偏移量\\nimages/3ed99175d8648182157398340c0e1b42a3f9889da55ed14f9a451c78f449e4a9.jpg\\n判定与处理 1)若所有测量值合格,则记录数据并结束检查; 2)若任一指标超差,标记异常轴承座编号,进入MTxxx(修复程序)。 验收标准 1.主轴承座与机座结合面间隙≤0.05mm(全周); 2.相邻主轴承同轴度偏差≤0.08 mm/m; 3.地脚螺栓预紧力在设计值 ±5% 范围内。 页码:1/1 版本号:1\\n表 4.5 MT003 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT003 0201 曲轴组件 检测曲轴主轴颈跳动量 1A/8000h JY级 安全防护要求1.曲轴检测前必须在盘车机构处加装机械锁止装置,并悬挂“禁止盘车”警示牌;2.检测区域设置防滑平台,千分表支架须稳固固定,防止倾倒伤人。 安全注意事项1.禁止在曲轴未完全支撑状态下进行测量操作;2.使用磁力表座时,确认其吸附面清洁无油,防止滑脱。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序号 名称 规格/型号 数量及单位 备注1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm2 磁力表座 Starrett 16B 1个 带万向关节3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg 序号 名称 规格/型号 数量及单位 备注 1 精密千分表 Mitutoyo 543-791D 1套 分辨率0.001 mm 2 磁力表座 Starrett 16B 1个 带万向关节 3 V型支撑架 Custom-Crank-V300 2组 承重≥500kg\\n4 盘车手轮 OEM-MAN-BW-PCW 1个 原厂配套\\n序 名称 规格/型号 消耗数量 备注 1 排气阀 PV-100 1\\n序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 50mL 清洁轴颈表面 2 无绒擦拭布 Kimwipe EX-L 3张 防刮伤轴面\\n序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工复刻数据\\n图 MT003.1 清洁\\n(3)在每道主轴颈圆周标记 0°、90°、180°、270°四个测量基准点。\\nimages/44fc6cdd0519c65181dd8fc837d781af4150971e7c19e433095226c9e0bdb9e0.jpg\\n图 MT003.2 标记测量基准点\\nimages/3a2eb34aa844f551f7d75b5b1780809b7b98f8c83af384901a8e5d26f37acda9.jpg\\n2)安装千分表\\n(1)将磁力表座固定于稳固基座,千分表测头垂直抵住第一道主轴颈最高点;\\n图 MT003.3 千分尺\\nimages/58241755a2325bc1f92c4f14ad13fee81b20df1bf41cf265ea41bd756863d8da.jpg\\n(2)预压千分表 0.3 mm,归零。\\n3)盘车测量\\n(1)缓慢盘动曲轴一周(360°),记录千分表最大与最小读数;\\n(2)跳动量 = 最大值 - 最小值;\\n(3)重复上述步骤,依次测量其余主轴颈。\\n数据判定\\n1)若任一主轴颈跳动量 ≤0.05 mm,则判定合格;\\nimages/a1beca1300ccae48d6fcd2765937fc19a33262dc9461b3164ee5e1b34e002c4c.jpg\\n表 4.6 MT004 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT004 020201 连杆大端轴承 更换连杆大端轴承 2A/12000h JT级 安全防护要求1.拆装连杆前必须锁定曲轴位置,并在气缸顶部加盖防异物落入盖板;2.吊装连杆组件时使用专用吊具,下方设置警戒区。 安全注意事项1.禁止使用锤击方式拆卸轴承盖,防止损伤连杆体;2.新轴承安装前确认瓦背无毛刺、涂层完整。 序号 名称 规格/型号 数量及单位 备注 1 液压拉伸器 HYTORC RS-20 1套 2 扭矩扳手 Norbar 1500N·m 1把 精度±2% 3 轴承安装导向套 OEM-MAN-BW-BG-04 1个 4 内窥镜 GE Mentor Visual iQ 1台 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆大端轴承上瓦 MAN 5L35MC-BRG-UP 1副 原厂高锡合金 2 连杆大端轴承下瓦 MAN 5L35MC-BRG-DN 1副 3 连杆螺栓 M30 ×2.0 Grade 12.9 2根 次性使用,强制更换 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\\n1 轴承装配润滑脂 Kluber Isoflex LDS18 Special A 10g 仅涂瓦背 2 螺纹锁固胶 Loctite 2701 少量 用于螺栓螺纹(如适用) 3 清洗剂 Brulin 815GD 200mL 清洁连杆结合面\\n4)人力人员\\n序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2x工程师 总工监督关键步骤\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成停机冷却,滑油系统泄压;\\n2)确认本次为计划性更换(运行时间 ≥12000 h 或 2A 级检修);\\n3)新轴承与螺栓已核对型号、批次,无运输损伤。\\n拆卸旧轴承\\n1)拆连杆盖\\n(1)使用液压拉伸器逐步释放连杆螺栓预紧力(分三次卸载);\\n(2)取下螺栓及连杆大端盖,放置于专用托架。\\n2)取出旧轴承\\n(1)轻敲连杆体侧面,使下瓦自然脱落;\\n(2)用塑料撬棒取出上瓦,禁止使用金属工具接触轴颈。\\n安装新轴承\\n1)清洁与检查\\n(1)用清洗剂彻底清洁连杆体与盖的瓦槽,无油污、毛刺;\\n(2)目视检查新瓦背面涂层均匀,无裂纹。\\n2)装配\\n(1)在瓦背薄涂 Klüber润滑脂,将上瓦嵌入连杆体,定位唇对准槽口;\\n(2)将下瓦装入连杆盖,同样对准定位;\\n(3)使用导向套引导连杆盖就位,避免瓦片移位。\\n3)紧固螺栓\\n(1)安装新连杆螺栓,手工旋入到底;\\n(2)按三阶段拧紧:① 300 N·m → ② 600 N·m → ③ 拉伸至 1200 N·m(参考值);\\n(3)最终用角度法复核(如适用)。\\n图 MT004.1 连杆大端轴承结构分解图\\nimages/aea39e53db39486ebc6ca48ee941f63e8aad0606e7a9c27461c3cce4a44a5244.jpg\\n表 4.7 MT005 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT005 020203 连杆小段轴承 更换连杆小段轴承 2A/12000h JY级 安全防护要求1.拆装活塞连杆组件前,必须在曲轴输出端加装机械止动装置;2.吊装活塞-连杆总成时使用专用吊环,下方设置软质承接垫。 安全注意事项1.禁止在未拆除缸头及缸套冷却水的情况下强行抽出活塞;2.加热连杆小端进行热装时,操作人员须佩戴隔热面罩及手套。 序号 名称 规格/型号 数量及单位 备注 1 活塞吊装专用吊具 OEM-MAN-BW-PST-05 1套 带缓冲橡胶夹头 2 感应加热器 EFD Induction Minac16 1台 温控精度±5℃ 3 内径千分尺 40 - 50 mm 1把 校验有效期内 4 铜棒与塑料锤 Φ20×300 mm 各1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 连杆小端衬套(上) MAN 5L35MC-BUSH-UP 1件 锡青铜基 2 连杆小端衬套(下) MAN 5L35MC-BUSH-DN 1件 3 活塞销卡簧 Φ50×2.5 mm 2个 不锈钢,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注\\n1 高温装配润滑脂 Molycote G-1052 5g 2 清洗剂 Brulin 815GD 150mL 3 耐高温标记笔 Markal 900°F 1支\\n4)人力人员\\n序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师主导热装\\n修理步骤及工艺\\n更换前提确认\\n1)主机已完成 2A 级检修停机程序,气缸已冷却至 ≤50℃;\\n2)确认运行时间 ≥12000 h 或上次更换后已超周期;\\n3)新衬套尺寸经复测符合图纸公差(过盈量:0.03~0.06 mm)。\\n拆卸旧衬套\\n1)抽出活塞-连杆总成\\n(1)拆除缸头、喷油器及冷却水管路;\\n(2)使用吊具将活塞缓慢抽出,避免刮伤缸套。\\n2)压出旧衬套\\n(1)用专用液压压床或铜棒轻敲,从连杆小端一侧推出旧衬套;\\n(2)检查座孔有无拉伤、变形,若有则需镗孔修复(参见 MTxxx)。\\n安装新衬套\\n1)清洁与预装检查\\n(1)用清洗剂彻底清洁连杆小端座孔,吹干;\\n(2)测量座孔内径,记录作为过盈量计算依据。\\n2)热装新衬套\\n(1)将新衬套放入感应加热器,加热至 180±10℃(用红外测温仪监控);\\n(2)迅速将热衬套套入连杆小端,确保完全到位;\\n(3)自然冷却至室温,禁止强制冷却。\\n3)精铰与研配(如需要)\\n(1)若图纸要求配合间隙为 0.04~0.08 mm,则进行精铰;\\n(2)使用研磨膏手工研配活塞销,接触面积 ≥70%。\\n组装活塞销与卡簧\\n1)在衬套内孔涂 Molycote G-1052 润滑脂;\\n2)将活塞销推入衬套,两端装入新卡簧,确认完全嵌入槽内。\\n验收标准 1.衬套与座孔过盈配合牢固,无松动或轴向位移; 2.活塞销转动灵活,轴向窜动量 ≤0.15 mm; 3.卡簧两端完全嵌入槽内,无翘起或断裂。 页码:1/1 版本号:1\\n表 4.8 MT006 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT006 030201 活塞头 拆检活塞头磨损情况 1A/8000h JY级 安全防护要求1.拆检前必须隔离燃油、滑油及冷却水系统,并挂牌上锁(LOTO);2.缸内作业时使用防爆照明灯,电压≤24V。 安全注意事项1.抽出活塞时防止活塞环弹出伤人,应使用环压缩器;2.检查燃烧面时佩戴防颗粒物口罩,避免吸入积碳粉尘。 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配350mm活塞 2 内窥镜 GE Mentor Visual iQ 1台 3 深度规 0-150mm 1把 4 放大镜 10× with scale 1个 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检查类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 积碳清洗剂 CRC Carbon CleanPro 200mL 环保型 2 无纺布 Industrial Grade 5张 3 防锈油 CRC 3-36 50mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺拆检前提确认1)主机已完成1A级停机程序,缸内温度≤60℃;2)已通过内窥镜初步确认无严重烧蚀或裂纹。 抽出活塞组件 1)拆除缸头、喷油器、排气阀等上部附件; 2)使用活塞环压缩器收紧活塞环,缓慢将活塞从缸套底部抽出; 3)放置于专用支架,避免活塞裙部磕碰。 全面检查活塞头状态 1)清洁 (1)用积碳清洗剂软化燃烧面及环槽积碳; (2)用铜刷清除残留物,禁用钢丝刷。 2)目视与测量检查 (1)检查活塞顶有无烧蚀、熔坑、裂纹(重点:火力岸与环槽过渡区); (2)用深度规测量第一道环槽深度,标准值:10.2±0.1 mm; (3)用塞尺测量环槽侧隙,允许值:0.15~0.35 mm; (4)检查活塞销孔有无椭圆变形,直径变化≤0.05mm。 判定与处置 1)若所有指标合格,清洁后涂防锈油,准备回装; 2)若环槽侧隙>0.35mm,启动MT007(更换1号压缩环)或MT008; 3)若发现裂纹或烧穿,立即隔离该活塞,启动MT018(修复活塞头部烧蚀)。 验收标准 1.活塞顶无可见裂纹、烧蚀孔洞或局部熔融; 2.第一道环槽侧隙在 0.15~0.35 mm 范围内; 3.活塞销孔圆度误差≤0.03 mm。\\n表 4.9 MT007 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT007 030203 1号压缩环 更换1号压缩环 1A/8000h JY级 安全防护要求1.活塞组件拆卸与装配区域应铺设防滑垫,并设置工具防坠落网;2.更换活塞环时,气缸口必须加盖防护罩,防止异物落入曲轴箱。 安全注意事项1.禁止使用螺丝刀等尖锐工具撬装活塞环,防止划伤活塞环槽或缸套;2.新活塞环安装前须确认开口方向(标记“TOP”朝上)。\\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 适配Φ350 mm活塞 2 环口间隙测量规 Feeler Gauge Set 1套 0.05-1.00mm 3 环槽清洁刮刀 Custom-Piston-Groove-Scraper 1把 铜质刃口 4 扭矩扳手 20-100 N·m 1把 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第一道压缩环 MAN 5L35MC-RING-1 1件 梯形截面,表面镀铬 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 5g 2 无绒布 Kimwipe EX-L 3张 3 清洗剂 Brulin 815GD 100mL 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师复刻还口间隙 修理步骤及工艺更换前提确认1)活塞已按 MT006 完成拆检,确认第一道环槽侧隙 >0.35 mm 或环断裂;2)新压缩环型号、批次与主机匹配,且在有效储存期内。拆卸旧1号压缩环1)用铜质刮刀清除环槽内积碳,避免损伤槽底;2)用手轻扩环口,将旧环从活塞顶部取出,禁止强行拉扯。安装新1号压缩环1)预处理(1)用无绒布清洁新环内外表面及活塞环槽;(2)在环外圆薄涂 Molycote BR2 Plus 润滑膏。2)装配(1)确认环上有“TOP”标记,安装时朝向活塞顶;(2)将环放入环槽,用手压平,确保无翘曲;(3)用活塞环压缩器收紧所有环,缓慢将活塞推入缸套。环口间隙检查 (关键步骤)1)将新环平放于缸套下部未磨损区域;2)用塞尺测量环口间隙,标准值:0.60~0.80 mm;3)若间隙<0.60 mm,修锉环口端面;若 >0.80 mm,更换新环。 验收标准 1.1号压缩环正确安装,“TOP”标记朝上,无反装; 2.环口间隙在0.60~0.80 mm 范围内; 页码:1/1 3.环在槽内转动灵活,无卡滞,侧隙0.15~0.35 mm。 版本号:1\\n表 4.10 MT008 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT008 030204 2-4号活塞环 更换2-4号活塞环 1A/8000h JY级 安全防护要求1.多环同时更换时,应按顺序摆放旧环,防止混淆安装位置;2.缸套内壁涂抹润滑油前,确认无砂粒或金属屑残留。 安全注意事项1.不同环型(刮油环、锥面环)不得互换位置;2.安装刮油环时,确保弹簧胀圈接口与环体开口错开180°。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 活塞环压缩器 OEM-MAN-BW-RCC-06 1个 同MT007 2 环口定位夹具 Custom-Ring-Aligner 1套 控制各环开口相位 3 放大镜(带LED) 5X with light 1个 检查环体缺陷 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 第二道压缩环 MAN 5L35MC-RING-2 1件 锥面环 2 第三道刮油环(组合式) MAN 5L35MC-RING-3 1套 含轨环+弹簧胀圈 3 第四道刮油环(组合式) MAN 5L35MC-RING-4 1套 同上 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 二硫化钼润滑膏 Molycote BR2 Plus 10g 涂所有环外圆 2 缸套润滑机油 Shell Mysella S5N80 50mL 涂缸壁 3 标记笔(耐油) Marka1Oil-Resistant 1支 标记环开口位置 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+ 技师 工程师监督相位布置 修理步骤及工艺更换前提确认1)已完成 MTO06 活塞拆检,确认 2-4号环磨损超限或断裂;2)新环套装齐全,各环类型与图纸一致(RING-2为锥面,RING-3/4为组合刮油环)。 拆卸旧环 1)依次取出2-4号旧环,按顺序放置于标记托盘; 2)彻底清洁各环槽,确保无残留弹簧片或积碳。 差180°; (3)各环开口相位布置如下: -1号环:0° -2号环:120° (1)在所有新环外圆涂 Molycote BR2 Plus; (2)在缸套内壁薄涂 Shell Mysella S5 N80 机油; (3)使用环压缩器收紧活塞环,垂直推入缸套,避免倾斜。 验证 1)盘车两圈,确认无异常阻力; 2)抽查一道环口位置是否符合相位要求。 验收标准 1.各环类型、位置、方向正确,无混装;\\n表 4.11 MT009 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT009 030301 气缸套 检测气缸套内径磨损量 1A/8000h JY级 安全防护要求1.检测前必须在主机控制面板悬挂“禁止盘车”和“禁止启动”双警示牌;2.缸口作业区域设置防坠落围栏,工具系防坠绳。 安全注意事项1.禁止在气缸冷却水未排空状态下进行内径测量;2.使用内径千分尺时,手部不得置于测量杆与缸壁之间,防止夹伤。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 内径千分尺(三点式) Mitutoyo 204-304 mm 1套 分辨率0.001mm 2 缸套磨损测量记录仪 Custom-Bore-Wear-Log 1台 自动生成磨损曲线 3 防爆LED手电 Streamlight 88040 1个 24V安全电压 4 清洁气枪 Industrial Air BlowGun 1把 压力≤0.5 MPa 2)备品 序 名称 规格/型号 消耗数量 备注 1 1 本项目为检测类,无备件消耗 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 工业酒精 ≥99.5% 100mL 清洁测量接触面 2 无绒布 Kimwipe EX-L 5张 防刮伤缸壁 3 防锈纸 VCI-200 2张 测量后临时覆盖 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工审核磨损趋势\\n3)若锥度 >0.20 mm 或局部拉伤深度 >0.3mm,启动MT010(更换气缸套)。图 MT009.1气缸套磨损测量截面位置图(略) 验收标准1.圆度 ≤0.08 mm,锥度 ≤0.12 mm;2.测量原始数据完整录入《缸套磨损档案》,包含时间、温度、操作人;3.千分尺校验标签在有效期内,环境温度波动 ≤±3℃。 页码:1/1 版本号:1\\n表 4.12 MT010 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT010 030301 气缸套 更换气缸套 4A/32000h JY级 安全防护要求1.吊装新/旧缸套时使用专用吊耳,下方设置软质承接平台;2.缸体水腔开口处加盖防水布,防止异物或水分进入曲轴箱。 安全注意事项1.禁止用火焰直接加热缸体以拆卸旧套,防止热应力裂纹;2.新缸套压装过程中,操作人员不得站在压机正下方。 序号 名称 规格/型号 数量及单位 备注 1 液压压装机 HYDRA-PRESS-50T 1台 带压力与位移监控 2 缸套拔出器 OEM-MAN-BW-LINER-PULL 1套 螺纹顶压式 3 冷却水腔密封测试仪 LeakTest-CT300 1台 0.3 MPa保压 4 深度规 0- 300 mm 1把 测量缸套凸肩高度 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 气缸套总成 MAN5L35MC-LINER-ASSY 1件 含0形圈、定位销 2 缸套水封0形圈 Viton Φ380×5.0 2个 耐高温氟橡胶 3 缸套油封环 NBR Φ352×3.0 1个 下部密封 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 装配润滑脂 Kluber Isoflex LDS18 Special A 20g 涂缸套外壁 2 密封胶 Loctite 518 少量 水腔法兰面(如适用) 3 清洗剂 Brulin 815GD 300mL 清洁缸体座孔 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工监督压装对中\\n修理步骤及工艺 更换前提确认 1)MT009检测结果确认缸套磨损超限(锥度>0.20mm或裂纹); 2)新缸套已核对尺寸、材质证书,0形圈无老化。 拆卸旧缸套 1)拆除缸头、活塞、冷却水管路; 2)安装缸套拔出器,均匀施力将旧套缓慢顶出; 3)检查缸体座孔有无腐蚀、变形,若有则需镗孔修复。 安装新缸套 1)准备 (1)清洁缸体座孔及新缸套外壁,无毛刺、油污; (2)在新缸套外壁薄涂Kluber 润滑脂; (3)将0形圈装入缸体水封槽,涂少量硅脂。 2)压装 (1)将新缸套垂直放入座孔,使用导向套对中; (2)启动液压压机,以≤5mm/min 速度压入,监控压力曲线; (3)压装到位后,测量缸套上平面凸肩高度,标准值:3.5±0.2mm。 3)密封测试 (1)封闭水腔进出口,注入0.3MPa压缩空气; (2)保压10分钟,压降≤0.01 MPa 判定密封合格。 恢复 1)安装活塞、缸头等附件; 2)清理作业区域,回收旧缸套。 验收标准 1.缸套凸肩高度 3.3~3.7 mm; 2.水腔0.3MPa保压10分钟无泄漏; 3.缸套内径圆度≤0.03mm(出厂状态)。 页码:1/1 版本号:1\\n表 4.13 MT011 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT011 040102 阀杆 检查排气阀杆密封面磨损 6M/4000h JY级 安全防护要求1.拆检前必须隔离气缸启动空气系统,并在阀杆驱动机构处加装机械锁;2.高温阀杆冷却前禁止直接接触,作业区设置“高温部件”警示标识。 安全注意事项1.禁止使用砂轮或电动工具打磨阀杆密封面;2.检查时佩戴耐高温手套及护目镜,防止热辐射或碎屑伤害。\\n保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具) 序号 名称 规格/型号 数量及单位 备注 1 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK 1套 带隔热手柄 2 红外测温仪 Fluke 62 Max+ 1台 测量阀杆温度 3 密封面检测平板 Optical Flat λ/10 1块 用于着色法检查 4 着色剂套装 Dykem Steel Blue +Developer 1套 检查接触印痕 2)备品备件 序 名称 规格/型号 消耗数量 备注 一 本项目为检查类,无备件消耗(但可能触发MT012) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温清洁剂 CRC Brakleen HT 100mL 清除积碳 2 无绒布 Kimwipe EX-L 5张 防刮伤密封面 3 防锈油 CRC 3-36 30mL 检查后临时防护 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 工程师+技师 工程师判定磨损等级 修理步骤及工艺检查前提确认1)主机已停机 ≥4 小时,排气阀杆温度 ≤80℃(用红外测温仪确认);2)启动空气系统已隔离并泄压。拆卸排气阀组件1)拆除阀杆驱动弹簧及锁紧螺母;2)使用专用吊具缓慢吊出排气阀总成,放置于耐热支架。检查阀杆密封面1)清洁(1)用高温清洁剂软化密封面积碳;(2)用铜刷清除残留物,禁用钢丝刷。2)着色法检测(1)在阀座密封面上均匀涂抹 Dykem着色剂;(2)将阀杆轻压旋转180°后提起;(3)观察阀杆密封面印痕:-合格:连续环带,宽度 ≥1.5 mm,无断点;- 轻微磨损:环带不连续但无凹坑;-严重磨损:有沟槽、凹坑或烧蚀斑。判定与处置1)若印痕连续且宽度 ≥1.5 mm,清洁后回装;2)若存在局部凹坑或烧蚀,标记该阀,启动MT012(更换排气阀座); 3)记录检查结果于《排气阀状态档案》。 验收标准 1.阀杆密封面着色印痕为连续环带,宽度 ≥1.5 mm; 2.无可见裂纹、凹坑、烧蚀或局部熔融; 3.回装后阀杆动作灵活,无卡滞。 页码:1/1 版本号:1\\n表 4.14 MT012 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT012 040103 阀座 更换排气阀座 2A/16000h JY级 安全防护要求1.镗削或更换阀座时,气缸内部必须完全隔离,并加盖防异物盖;2.使用便携式镗床时,设备接地良好,操作区设置警戒线。 安全注意事项1.禁止在未冷却的缸盖上进行阀座更换作业;2.新阀座压装或焊接后,必须进行无损检测(PT/UT)。 序号 名称 规格/型号 数量及单位 备注 1 便携式阀座镗床 SUNNEN SV-20 1台 带角度调节 2 液压阀座压装机 HYDRA-SEAT-PRESS 1台 用于过盈配合座 3 渗透探伤套装 Magnaflux ZL-27A 1套 PT检测裂纹 4 角度规 0-90°Protractor 1把 检查密封锥角 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 排气阀座 MAN5L35MC-EXH-SEAT 1件 Stellite合金堆焊 2 定位销(如适用) Φ8×20 mm 1个 不锈钢 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温镍基焊条 ENiCrFe-3 1根 用于焊接固定(如需要) 2 清洗剂 Brulin 815GD 150mL 清洁阀座孔 3 研磨膏(细) Clover Leaf Green 20g 配合研磨 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工批准焊接/压装方案 修理步骤及工艺更换前提确认1)MT011检查确认阀座密封面烧蚀、裂纹或锥面变形;2)新阀座材质、锥角(通常45°)与原设计一致。拆卸旧阀座1)若为压装式:使用液压拉拔器缓慢取出;2)若为焊接式:用碳弧气刨或专用铣刀去除旧座,避免损伤缸盖基体。安装新阀座 1)准备阀座孔 (1)清洁孔内油污、毛刺,测量内径; (2)若为压装,确保过盈量0.05~0.08mm。 2)安装方式选择 (1)压装法:将新阀座冷却至-40℃(干冰),快速压入预热至80℃的缸盖孔; (2)焊接法:采用TIG焊沿阀座底部周向点焊固定,焊后缓冷。 3)密封面精加工 (1)使用便携镗床修整密封锥面,角度45°±0.5°; (2)表面粗糙度 Ra ≤1.6 μm。 2)对焊接区域进行PT探伤,无裂纹、气孔; 3)记录安装参数(温度、压力、角度)。 验收标准 1阀座与阀杆着色印痕连续,宽度 ≥1.8 mm; 2.PT探伤无缺陷(适用于焊接阀座); 3.密封面锥角 45°±0.5°,Ra ≤1.6μm; 4.回装后阀杆落座无弹跳,密封测试0.5MPa保压5分钟无泄漏。 页码:1/1 版本号:1\\n表 4.15 MT013 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT013 050201 喷油嘴偶件 更换喷油嘴偶件 6M/4000h JY级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口处悬挂“高压危险”警示牌,作业区禁止明火 安全注意事项1.禁止用金属工具敲击喷油嘴,防止针阀卡死或密封面损伤;2.新偶件拆封后立即安装,避免暴露于潮湿或粉尘环境。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序 规格/型号 数量及单位 备注名称号1 喷油器专用拆装扳 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 高压燃油压力表 0-20 MPa 1个 校验有效期内可测开启压力3 喷油雾化测试台 Bosch EPS 815 1台 与雾化角用于喷油器压4 扭矩扳手 40 -200 N·m 1把紧螺母2)备品备件 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 高压燃油压力表 0-20 MPa 1个 校验有效期内 3 喷油雾化测试台 Bosch EPS 815 1台 可测开启压力与雾化角 4 扭矩扳手 40 -200 N·m 1把 用于喷油器压紧螺母 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件(针阀+阀体) MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂高精度配对 2 喷油器铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性\\n3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200 mL 用于冲洗油道 2 3 无绒布 高温润滑脂 Kimwipe EX-L 5张 少量 擦拭偶件表面 4)人力人员 Molycote G-1052 涂压紧螺纹 序号 专业 人数 技能等级 备注 修理步骤及工艺 1 机械专业 2 工程师+技师 工程师操作测试 台 更换前提确认 1)主机运行中出现单缸排温异常升高或冒黑烟; 2)或按计划周期(≥4000h)执行预防性更换; 3)新喷油嘴偶件包装完好,配对编号一致。 拆卸旧喷油器 1)关闭该缸高压油泵进油阀,泄放残余压力; 2)用专用扳手松开喷油器压紧螺母(扭矩释放后手动旋出); 3)垂直取出喷油器总成,防止针阀意外伸出。 更换喷油嘴偶件 (1)用清洁柴油冲洗新偶件内部通道; (2)将新喷油嘴旋入喷油器本体,手工拧紧至贴合; (3)更换新铜密封垫,安装喷油器至缸盖,压紧螺母扭矩:120N·m。 功能测试 1)在Bosch EPS 815 测试台上校验: 开启压力:28.0±0.5 MPa 雾化角:150°± 5° 无滴漏、无断续喷射 2)若不合格,整套偶件报废,不得修配。 验收标准 1.喷油开启压力27.5~28.5 MPa; 2.雾化均匀,呈锥形无偏射、无油线; 3.安装后无燃油泄漏,主机运行单缸排温偏差 ≤±15℃。\\n表 4.16 MT014 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT014 050301 柱塞偶件 更换高压油泵柱塞偶件 1A/8000h JY级 安全防护要求1.拆卸高压油泵前必须隔离燃油系统,并挂牌上锁(LOTO);2.柱塞偶件存放于专用防尘盒内,避免磕碰精密配合面。 安全注意事项1.禁止互换不同泵体的柱塞偶件,必须成对使用原厂配对件;2.安装时确保柱塞斜槽与齿条啮合正确,防止供油相位错误。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号柱塞偶件安装导1 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤向套2 供油定时检测仪 AVL 545 1台 测量喷油始点3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙4 1把 用于泵体检修扭矩扳手30-150 N·m盖 序号 名称 规格/型号 数量及单位 备注 1 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE 1个 防止划伤 2 供油定时检测仪 AVL 545 1台 测量喷油始点 3 精密塞尺 0.02-1.00mm 1套 检查齿条间隙 4 扭矩扳手 30-150 N·m 1把 用于泵体检修盖 2)备品备件序 名称 规格/型号 消耗数量 备注1 MAN柱塞+套筒偶件 1套 配对编号一致5L35MC-PLUNGER-KIT2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注Shell Tellus S4 VX1 高压泵专用润滑油 100mL 用于偶件润滑32泵体结合面(如2 密封胶 Loctite 577 少量 适用) 序 名称 规格/型号 消耗数量 备注 1 柱塞+套筒偶件 MAN5L35MC-PLUNGER-KIT 1套 配对编号一致 2 出油阀组件 MAN 5L35MC-DV-ASSY 1套 含弹簧、阀座 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高压泵专用润滑油 Shell Tellus S4 VX32 100mL 用于偶件润滑 2 密封胶 Loctite 577 少量 泵体结合面(如适用) 3 清洗柴油 ISO 4020 Grade A 300mL 冲洗油道 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+工程师 总工确认供油定时 修理步骤及工艺更换前提确认1)主机出现供油不足、单缸功率下降或高压油泵异响;2)或运行时间 ≥8000h,执行计划性更换;3)新偶件配对编号与泵体匹配,无运输损伤。拆卸高压油泵1)拆除进出油管、齿条连接机构;2)松开泵体检修盖螺栓,取出柱塞偶件及出油阀。安装新柱塞偶件1)清洁与检查(1)用清洗柴油彻底冲洗泵体内腔;(2)检查齿条移动是否灵活,间隙0.10~0.20 mm。2)装配(1)在新柱塞表面涂 Shell Tellus S4 VX 32 润滑油;(2)使用导向套将柱塞缓慢插入套筒,旋转使其斜槽对准调节齿条;(3)安装出油阀组件,确保弹簧预紧到位。3)回装泵体(1)安装检修盖,螺栓按对角线顺序拧紧至80 N·m; (2)连接齿条,确保全行程无卡滞。 供油定时校验 1)启动主机至额定转速,用AVL545检测喷油始点; 2)标准值:上止点前12.5°±0.5°CA; 验收标准 1.柱塞偶件运动灵活,无卡滞或泄漏; 2.供油始点为上止点前 12.0°~13.0°CA; 3.主机各缸排温差 ≤±20℃,无功率波动。 页码:1/1 版本号:1\\n表 4.17 MT015 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT015 060103 轴承组件 更换涡轮增压器轴承组件 2A/16000h ZJ级 安全防护要求1.拆卸增压器前必须隔离排气与进气管路,并加装盲板;2.转子组件吊装时使用专用平衡吊具,下方设置软质承接垫。 安全注意事项1.禁止用手直接转动增压器转子判断轴承状态,应使用专用盘车工具;2.新轴承安装前确认无油脂污染或保持架变形。 序号 名称 规格/型号 数量及单位 备注 1 涡轮增压器专用拆装台 Custom-Turbo-Bench 1台 带V型支撑 2 感应加热器 EFD Minac 10 1台 温控±5℃ 3 动平衡检测仪 Schenck BALANCER V 1台 G2.5级精度 4 扭矩扳手 10-80 N·m 1把 用于壳体螺栓 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 径向轴承(主轴) MAN TCA77-BRG-RAD 1套 铜铅合金 2 止推轴承组件 MANTCA77-BRG-THRUST 1套 含瓦片+垫片组 3 轴封环 Carbon Seal Φ60X3 2个 石墨基 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 高温润滑脂 Kluber Isoflex LDS18 Special A 15g 仅涂轴承外圈 2 清洗剂 Brulin 815GD 200mL 清洁轴承座 3 密封胶 Loctite 518 少量 壳体结合面 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导装配 2 电子专业 1 中级 监测振动传感器\\n(如适用) 修理步骤及工艺 更换前提确认 1)主机运行中增压器振动值>4.5mm/s(RMS); 2)或按计划周期 ≥16000h 执行预防性更换; 拆卸增压器总成 1)断开进排气法兰、滑油进出口管路; 2)使用吊车将增压器整体吊离支架,放置于专用工作台。 分解与更换轴承 1)分解 (1)拆除两端轴承盖,取出转子总成; (2)用铜棒轻敲旧轴承内圈,退出主轴。 2)清洁与检查 (1)清洁轴承座孔,测量内径,记录磨损量; (2)检查转子轴颈有无拉伤、椭圆(允许圆度≤0.02mm)。 3)热装新轴承 (1)将径向轴承加热至120±5℃; 2)手动盘车,确认转子转动灵活无卡滞; 3)若条件允许,进行低速动平衡测试(残余不平衡≤2g·mm)。 验收标准 1.转子轴向间隙 0.10~0.15 mm; 2.手动盘车无卡滞,旋转阻力均匀; 3.回装后空载试运行30分钟,振动值≤3.0 mm/s。\\n表 4.18 MT016 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT016 060201 管束芯体 清洗空冷器管束芯体 3M ZJ级 安全防护要求1.清洗前必须隔离海水/淡水侧管路,并排空内部介质;2.高压水枪作业时佩戴防护面罩及防水服。 安全注意事项1.禁止使用酸性清洗剂,防止腐蚀铝制或铜镍合金管束;2.清洗压力不得超过5MPa,防止翅片倒伏或管子破裂。\\n序号 名称 规格/型号 数量及单位 备注 1 高压清洗机 Kärcher HD 7/15-4 1台 压力0-5MPa可调 2 管束专用清洗喷头 Rotating Nozzle 3mm 2个 自旋式 3 风压干燥机 Industrial AirDryer 1台 0.6 MPa 4 泄漏测试装置 Air/Water LeakTester 1套 0.4 MPa 保压\\n序 名称 规格/型号 消耗数量 备注 本项目为清洗 类,无备件消耗 (但可能触发堵 管修复\\n序号 名称 牌号/品级/规格 消耗数量 备注 1 中性清洗剂 Alconox Detojet 2kg pH=9.5,环保型 2 软化水 Deionized Water 200L 配制清洗液 3 防锈剂 CRC 3-36 100mL 清洗后喷涂\\n序号 专业 人数 技能等级 备注 1 机械专业 2 中级+初级 中级操作高压设备\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降 >1.5 kPa;\\n1)主机扫气温度差(进/出空冷器)>15℃,或压降>1.5kPa; 2)空冷器已从系统中隔离并排空。 外部清洁 1)用低压水冲洗空冷器外表面,去除盐结晶与油污; 2)拆除端盖,检查管口堵塞情况。 管束芯体清洗 1)配制清洗液 (1)将Alconox Detojet按2%浓度溶于软化水; (2)水温控制在40±5℃。 2)高压冲洗 (1)将旋转喷头插入每根管子,以3.5MPa压力冲洗; (2)水流方向与正常流向一致,单管冲洗时间 ≥15 秒; (3)重点清洗迎风面及底部积垢区。 3)漂洗与干燥 (1)用清水彻底漂洗至pH=7; (2)用0.6MPa压缩空气吹干管内残留水分。 泄漏测试与防护 1)对淡水侧加压至0.4 MPa,保压10分钟,压降 ≤0.01 MPa; 2)在翅片表面薄喷CRC3-36 防锈剂。 验收标准 1.空冷器淡水侧压降≤1.0kPa(额定流量下); 2.扫气温差恢复至≤10℃; 3.泄漏测试无渗漏,翅片无大面积倒伏。 页码:1/1 版本号:1\\n表 4.19 MT017 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 T017 030200 连杆大端轴承 修复连杆大端轴承异常磨损 故障触发 ZJ级 安全防护要求1.着火后必须立即停机、切断燃油与启动空气,并启动CO2灭火系统(如已动作需确认复位);2.进入扫气箱前执行受限空间作业许可,检测Oz≥19.5%、CH4<1%LEL。 安全注意事项1.禁止在未冷却(>60℃)的扫气箱内使用电动工具;2.残留油泥可能自燃,清理时持续喷雾降温。 序号 名称 规格/型号 数量及单位 备注 1 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 1台 自动高压水射流 2 内窥镜(防爆) GE Mentor VisualiQ-Ex 1台 检查缸套下部 3 红外热像仪 FLIR T860 1台 检测局部热点 4 可燃气体检测仪 MSA Altair 5X 1台 多气体复合 2)备品 备件 序 名称 规格/型号 消耗数量 备注 1 全套活塞环组 MAN5L35MC-RING-SET 1套 含1-4号环 2 活塞头(如需更换) MAN5L35MC-PISTON-HEAD 1件 铸钢整体式 3 扫气口密封条 Viton Strip 5×10mm 若干 更换烧损件 3)消耗 材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 生物降解清洗剂 Envirox SC-90 5L 清除碳化油泥 2 耐高温防火毯 Fiberglass Mat1200°C 2m 局部隔热防护 3 防锈剂 CRC 3-36 200mL 修复后防护 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 3 总工+2×工程师 总工主导故障分析 2 安全监督 1 高级安全员 全程监护受限空间作业 修理步骤及工艺故障确认与隔离1)确认故障现象:扫气箱高温报警、排烟管冒黑烟、单缸排温骤升后骤降;2)停机后盘车检查,发现某缸活塞环断裂、扫气口积碳严重;3)隔离该缸燃油、启动空气、冷却水。扫气箱清理与检查1)打开扫气箱人孔,通风≥30分钟;2)用清洗机器人清除底部碳化油泥(重点:着火点周边);3)目视+内窥镜检查:缸套下部有无拉伤;扫气口边缘是否熔融变形;曲轴箱油雾浓度是否异常。活塞组件修复1)抽出故障缸活塞,确认1号环断裂、环槽烧蚀;2)若活塞头无裂纹,仅更换全套活塞环(执行MT007+MT008);3)若活塞头火力岸熔损 >2 mm,启动 MT018。系统恢复与验证1)回装活塞,按标准扭矩紧固缸头; 2)手动盘车两圈,确认无卡滞;3)空载试运行30分钟,监测:扫气温度≤60℃;无异常振动或异响。 验收标准1.扫气箱内部无残留碳渣、油泥,表面干燥清洁;2.新活塞环安装正确,环口相位符合MT008要求;3.主机空载运行30分钟,扫气温度稳定≤60℃,无复燃风险。 页码:1/1 版本号:1\\n表 4.20 MT018 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT018 030201 活塞头 修复活塞头部烧蚀熔损 故障触发 ZJ级 安全防护要求1.修复作业区设置防火挡板,配备干粉灭火器(≥2具);2.焊接/堆焊操作需办理动火作业许可证。 安全注意事项1.禁止对深度裂纹(>3mm)的活塞头进行堆焊修复,必须更换;2.热处理后必须缓冷,防止二次裂纹。 序号 名称 规格/型号 数量及单位 备注 1 等离子堆焊机 PLASMAD 5000 1台 自动送粉 2 热处理炉 Box Furnace 800° C 1台 控温±10℃ 3 超声波探伤仪 Olympus Epoch 650 1台 检测内部缺陷 4 三维扫描仪 FARO Arm Quantum 1台 修复前后形貌比对 2)备品备件 序 名称 规格/型号 消耗数量 备注 1 本项目为修复类,通常不消耗新活塞(除非报废) 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 镍基合金焊粉 INCONEL 625 300g 耐高温抗烧蚀 2 渗透探伤剂 Magnaflux ZL-27A 1套 PT检测裂纹 3 保温棉 Ceramic FiberBlanket 2 kg 焊后包裹缓冷 4)人力人员 序号 专业 人数 技能等级 备注 1 机械专业 2 总工+高级技师 总工批准修复方案 2 焊接专业 1 高级焊工(ASMEIX认证) 执行堆焊\\n修理步骤及工艺 损伤评估 1)通过MT006或MT017拆检,确认活塞顶存在: 局部熔坑(深度≤3mm); 火力岸微裂纹(长度<10mm,深度<2mm); 2)超声波探伤确认无内部裂纹延伸至销孔或冷却腔。 预处理 3)放入热处理炉预热至250℃,保温2小时。 堆焊修复 1)采用等离子堆焊,使用INCONEL625 焊粉,层间温度控制在200-300℃; 2)堆焊高度超出原轮廓1.5mm,预留机加工余量; 3)焊后立即用陶瓷纤维棉包裹,随炉缓冷至≤50℃。 后处理与验证 2)再次PT探伤,确认无新裂纹; 3)测量重量,与标准活塞偏差≤±50g,否则配重。 验收标准 1.修复区域无裂纹、气孔、未熔合等缺陷(PT/UT合格); 2.活塞顶几何尺寸符合图纸公差(±0.2mm); 3.重量偏差 ≤±50g,冷却腔密封性测试0.3 MPa 保压10分钟无泄漏。 页码:1/1 版本号:1\\n表 4.21 MT019 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT019 0502 喷油器组件 排除喷油器雾化不良故障 1U ZJ级 安全防护要求1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 安全注意事项1.拆卸喷油器前必须泄放高压燃油系统压力,并在燃油泵出口加装盲板;2.高压油管接口区域设置“高压危险”警示标识,禁止明火作业。 保障设施、保障设备(工具)、备件、消耗材料、人力人员需求1)保障设施、保障设备(工具)序名称 规格/型号 数量及单位 备注号喷油器专用拆装扳1 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计手2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗用于压紧螺母3 扭矩扳手 40-200 N·m 1把回装2)备品备件序 名称 规格/型号 消耗数量 备注MAN 1套 原厂配对5L35MC-INJ-NOZZLE-KIT1 喷油嘴偶件Φ18×2.0 mm 1个 退火紫铜,一次2铜密封垫性3)消耗材料序号 名称 牌号/品级/规格 消耗数量 备注1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道2 无绒布 Kimwipe EX-L 5张 擦拭精密表面3 高温润滑脂 Molycote G-1052 少量 涂压紧螺纹4)人力人员序号 专业 人数 技能等级 备注高级主导测试判1 机械专业 2 高级+中级 定 序号 名称 规格/型号 数量及单位 备注 1 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH 1把 防滑齿设计 2 喷油雾化测试台 Bosch EPS815或等效 1台 可调压、可视窗 3 扭矩扳手 40-200 N·m 1把 用于压紧螺母回装 序 名称 规格/型号 消耗数量 备注 1 喷油嘴偶件 MAN5L35MC-INJ-NOZZLE-KIT 1套 原厂配对 2 铜密封垫 Φ18×2.0 mm 1个 退火紫铜,一次性 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 清洁柴油 ISO 4020 Grade A 200mL 冲洗油道 2 无绒布 Kimwipe EX-L 5张 3 高温润滑脂 Molycote G-1052 少量 4)人力人员 序号 专业 人数 技能等级 1 机械专业 2 高级+中级 修理步骤及工艺故障确认1)主机运行中出现:单缸排温异常升高(>平均值 +50℃);排烟冒黑烟或有未燃柴油味;高压油管脉动减弱。2)初步判断为该缸喷油器雾化不良。拆卸与初步检查1)关闭该缸高压油泵进油阀,手动盘车泄压;2)用专用扳手拆下喷油器,检查外部有无燃油泄漏痕迹;3)目视喷孔:若有积碳堵塞或变形,标记待测。雾化性能测试1)在 Bosch EPS 815 测试台上安装喷油器;2)逐步升压至28 MPa,观察:合格:雾锥均匀、无油线、无滴漏,开启压力 28.0±0.5 MPa;雾化不良表现:(1)喷射断续;(2)雾锥偏斜或呈柱状;(3)停喷后滴漏 >1滴/分钟。3)若不合格,分解更换喷油嘴偶件。回装与验证1)更换新铜密封垫,安装喷油器,压紧螺母扭矩:120 N·m; 2)启动主机,观察该缸排温是否恢复正常(偏差≤±20℃);3)运行30分钟无泄漏、无黑烟。 验收标准1.喷油开启压力27.5~28.5 MPa;2.雾化锥角150°±5°,无偏射、无滴漏;3.主机运行后单缸排温偏差≤±20℃,无黑烟。 页码:1/1 版本号:1\\n表 4.22 MT020 维修项目\\n维修项目编号 组成编码 名称 维修项目 维修间隔期 维修级别 MT020 01 机座与机架组件 排除主机功率异常波动故障 1U ZJ级 安全防护要求1.故障排查期间,主机控制模式切换至“本地手动”,防止自动加载干扰;2.数据采集接线须由持证电工完成,符合船用防爆规范。 安全注意事项1.禁止在功率剧烈波动时强行维持高负荷运行;2.调整调速器前必须双人确认,防止飞车风险。 序号 名称 规格/型号 数量及单位 备注 1 主机监控系统(PMS) Integrated BridgeSystem 1套 读取实时功率曲线 2 调速器性能测试仪 Woodward Test Bench 1台 检测响应滞后 3 燃油黏度计 MarconiViscotester 1台 测 HFO黏度 4 多通道数据记录仪 DataTaker DT80 1套 同步录负荷/转速 2)备品 序 名称 规格/型号 消耗数量 备注 1 调速器伺服阀滤芯 OEM-GOV-FILTER 1个 如堵塞 2 燃油温度传感器 PT100,0-200°C 1个 如漂移 3)消耗材料 序号 名称 牌号/品级/规格 消耗数量 备注 1 标准测试燃油 ISO 8217 RMG380 300L 用于稳定测试 2 密封胶 Loctite 577 少量 传感器安装 4)人力人员 人员 序号 专业 人数 技能等级 备注 1 机械专业 2 高级+中级 高级主导系统分析 2 自动化专业 1 中级 负责调速器信号检测 修理步骤及工艺故障特征识别1)确认现象:主机在恒定指令下,输出功率周期性波动(±5%以上),伴随转速摆动;2)排除电网负载突变(如侧推启停)等外部干扰。 分系统排查 1)燃油系统检查 (1)测燃油黏度:若>15cSt(150℃),则加热不足→检查黏度计/加热器; (2)检查燃油滤器压差,若 >0.15 MPa →清洗或更换。 2)调速系统检查 (1)用测试仪检测调速器输出信号是否滞后或振荡; (2)检查伺服阀滤芯是否堵塞(常见原因)。 3)各缸一致性检查 (1)对比各缸排温、高压油管脉动,排除单缸供油不稳(可能触发MT019)。 针对性处置 1)若燃油黏度异常→校准黏度控制器,清洗加热器; 2)若调速器响应迟滞→更换伺服阀滤芯,清洗内部油路; 3)若多缸喷油不均 →执行MT013/MT019 逐缸排查。 验证运行 1)在85%MCR恒定负荷下运行60分钟; 验收标准 1.主机在恒定负荷指令下,功率波动幅度≤±2%; 2.转速稳定性≤±1rpm(额定转速下); 3.燃油黏度控制在设定值 ±1 cSt 范围内 页码:1/1 版本号:1\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_24e1514f-5346-427b-9fb3-511f59fe36d4.pdf#page=31\"}]" + } + }, + { + "type": "器材保障", + "properties": { + "名称": "发动机的器材保障", + "保障设施、保障设备(工具)信息汇总表": "5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n序号 名称 规格/型号 生产单位 通用/专用 体积山 重量8) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 中仪 C-01 同轴度检测 6 塞尺组 0.02 - 1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10 /RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300mm /40-50mm Mitutoyo 等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001mm 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ /iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量(kg) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LINER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0-300mm 市品 通用 1 0.7 600 量具柜F-05 一 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 序号 名称 规格/型号 生产单位 通用/专用 体积山 重量(kg) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flat/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Kärcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量8) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速", + "消耗材料信息汇总表": "5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n序号 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shell 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC /Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henke1 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shell 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "内容": "5器材保障\n5.1 保障设施、保障设备(工具)信息汇总表\n表 5.1 船舶主发动机工具信息汇总表\n序号 名称 规格/型号 生产单位 通用/专用 体积山 重量8) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 中仪 C-01 同轴度检测 6 塞尺组 0.02 - 1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10 /RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300mm /40-50mm Mitutoyo 等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001mm 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ /iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量(kg) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LINER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0-300mm 市品 通用 1 0.7 600 量具柜F-05 一 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 序号 名称 规格/型号 生产单位 通用/专用 体积山 重量(kg) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flat/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Kärcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量8) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\n5.2 消耗材料信息汇总表\n表 5.2 船舶主发动机消耗材料信息汇总表\n序号 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shell 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC /Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henke1 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shell 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"5器材保障\\n5.1 保障设施、保障设备(工具)信息汇总表\\n表 5.1 船舶主发动机工具信息汇总表\\n序号 名称 规格/型号 生产单位 通用/专用 体积山 重量8) 参考价(元) 存放位置 备注 1 液压升降平台 HLP-3000 OEM 或市场品 专用 1200 450 85,000 主机车间东侧工具架A区 用于接近主机上部 2 扭矩扳手 TB-200N·m OEM 或市场品 通用 3 2.5 1,200 工具柜 B-02 精度±3% 3 机油滤清器专用拆装工具 OEM-DIESEL-FIT OEM 专用 5 3.8 2,500 主机备件柜M-07 厂家配套 4 工业吸油泵 VAC-0IL50 OEM 或市场品 专用 25 18 6,800 油料间防爆柜 防爆型 5 激光对 SKF TKSA 71 SKF 专用 8 4.2 98,000 精密仪器室 轴承 中仪 C-01 同轴度检测 6 塞尺组 0.02 - 1.00 mm 市品 通用 0.8 0.6 180 量具盒D-05 精度土0.005m 7 液压拉伸器 HYTORCAVANTI-10 /RS-20 HYTORC 专用 30 22 42,000 螺栓工具架E区 用于地脚螺栓/连杆螺栓 8 内径千分尺 200-300mm /40-50mm Mitutoyo 等 通用 2 1.4 3,600 量具柜F-03 校验有效期内 9 精密千分表 Mitutoyo543-791D Mitutoyo 专用 1.2 0.9 4,200 精密仪器室C-02 分辨率0.001mm 10 磁力表座 Starrett 16B Starrett 通用 1.5 1.8 1,500 量具柜F-04 带万向关节 11 V型支撑架 Custom-Crank-V300 OEM 专用 80 120 18,000 曲轴检修平台旁 承重≥500kg 12 盘车手轮 OEM-MAN-BW-PCW OEM 专用 15 12 5,500 主机附件箱G-01 原厂配套 13 内窥镜 GE MentorVisual iQ /iQ-Ex GE 专用 6 3.5 75,000 探伤设备柜H-02 防爆型用于故障排查 14 轴承安装导向套 OEM-MAN-BW-BG-04 OEM 专用 4 5.2 3,800 轴承装配区I-03 防止瓦片移位 15 活塞吊装专用吊具 OEM-MAN-BW-PST-05 OEM 专用 20 28 12,000 吊具架J-01 带缓冲橡胶夹头 16 感应加热器 EFD InductionMinac 16 / EFD 专用 45 35 68,000 热装工具区K-02 温控精度 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量(kg) 参考价(元) 存放位置 备注 Minac 10 ±5℃ 17 铜棒与塑料锤 Φ20×300 mm 市品 通用 2 2.1 150 普通工具箱L-05 用于轻敲装配 18 活塞环压缩器 OEM-MAN-BW-RCC-06 OEM 专用 8 6.5 4,200 活塞维修台M-03 适配350活塞 19 环槽清洁刮刀 Custom-Piston-Groove-Scraper OEM 专用 0.5 0.4 320 活塞工具盒N-01 铜质加 20 环口定位夹具 Custom-Ring-Aligner OEM 专用 3 2.3 1,800 活塞维修台M-04 控制环开□相位 21 缸套拔出器 OEM-MAN-BW-LINER-PULL OEM 专用 25 32 9,500 缸体检修区0-02 螺纹顶压式 22 液压压装机 HYDRA-PRESS-50T OEM或市品 专用 600 800 180,000 压装工位P区 带压力与位移监控 23 冷却水腔密封测试仪 LeakTest-CT300 OEM 专用 18 15 28,000 密封测试台Q-01 0.3MPa保压 24 深度规 0-150mm/0-300mm 市品 通用 1 0.7 600 量具柜F-05 一 25 放大镜(带LED) 5×/10×withscale/light 市品 通用 0.6 0.3 220 检验工具盒R-01 检查裂纹/印痕 26 防爆LED手电 Streamlight88040 Streamlight 专用 0.4 0.5 1,100 防爆工具柜S-01 24V安全电压 27 清洁气枪 Industrial AirBlow Gun 市品 通用 1.2 0.9 180 气动工具架T-02 压力≤0.5MPa 28 排气阀专用吊具 OEM-MAN-BW-VALVE-HOOK OEM 专用 12 16 6,200 阀件吊装区U-01 带隔热手柄 29 红外测温仪 Fluke 62 Max+ Fluke 通用 0.8 0.35 2,400 电子仪表柜V-03 测量高温 序号 名称 规格/型号 生产单位 通用/专用 体积山 重量(kg) 参考价(元) 存放位置 备注 部件 30 密封面检测平板 Optical Flat/10 市品 专用 10 8 15,000 精密测量台W-01 着色法检查 31 便携式阀座镗床 SUNNEN SV-20 SUNNEN 专用 90 75 130,000 阀维修区X-01 带角度调节 32 液压阀座压装机 HYDRA-SEAT-PRESS OEM 专用 120 180 78,000 阀维修区X-02 过盈配合 33 角度规 0-90°Protractor 市品 通用 1.5 1.2 300 量具柜F-06 检查锥角 34 喷油器专用拆装扳手 OEM-MAN-BW-INJ-WRENCH OEM 专用 4 3.6 2,800 喷油器工具箱Y-01 防滑齿设计 35 高压燃油压力表 0-20 MPa 市品 通用 0.9 0.8 950 仪表校验柜Z-02 校验有效期内 36 喷油雾化测试台 Bosch EPS 815 Bosch 专用 200 220 220,000 喷油器测试室AA-01 测开启压力与雾化角 37 柱塞偶件安装导向套 OEM-MAN-BW-PLUNGER-GUIDE OEM 专用 2 1.7 1,600 喷油泵维修台AB-02 防划伤 38 供油定时检测仪 AVL 545 AVL 专用 15 12 85,000 燃油系统测试区AC-01 测喷油始点 39 涡轮增压器专用拆装台 Custom-Turbo-Bench OEM 专用 300 400 95,000 增压器维修区AD-01 带V型支撑 40 动平衡检测仪 SchenckBALANCER V Schenck 专用 500 600 680,000 平衡实验室AE-01 G2.5级精度 41 高压清洗机 Kärcher HD7/15-4 Karcher 通用 80 65 32,000 清洗站 AF-01 压力0-5MPa可调 42 管束专 Rotating OEM 专用 0.3 0.2 800 清洗配件柜 自旋 序号 名称 规格/型号 生产单位 通用/专用 体积U 重量8) 参考价(元) 存放位置 备注 用清洗喷头 Nozzle 3mm 5 AG-01 式 43 风压干燥机 Industrial AirDryer 市品 通用 120 90 25,000 空压站 AH-01 0.6MPa 44 泄漏测试装置 Air/Water LeakTester OEM 专用 25 20 36,000 密封测试台Q-02 0.4MPa保压 45 防爆型扫气箱清洗机器人 SCB-CLEANBOT-X1 OEM 专用 150 130 420,000 机器人存放区AI-01 自动高压水射流 46 红外热像仪 FLIR T860 FLIR 专用 5 2.1 120,000 电气检测室AJ-01 检测热点 47 可燃气体检测仪 MSA Altair 5X MSA 专用 1 0.7 8,500 安全设备柜AK-01 多气体复合 48 等离子堆焊机 PLASMAD 5000 OEM 专用 400 350 580,000 焊接修复区AL-01 自动送粉 49 热处理炉 Box Furnace800°C OEM 专用 1000 1200 320,000 热处理间AM-01 控温土10℃ 50 超声波探伤仪 Olympus Epoch650 Olympus 专用 6 3.2 95,000 探伤设备柜H-03 检测内部缺陷 51 三维扫描仪 FARO ArmQuantum FARO 专用 30 25 750,000 测绘室AN-01 修复形貌比对 52 主机监控系统(PMS) IntegratedBridge System 船厂集成 专用 一 1,200,000 集控室A0-01 读取功率曲线 53 调速器性能测试仪 Woodward TestBench Woodward 专用 180 200 480,000 调速器测试间AP-01 检测响应滞后 54 燃油黏度计 MarconiViscotester Marconi 专用 12 9 42,000 燃油化验室AQ-01 测HFO黏度 55 多通道数据记录仪 DataTaker DT80 DataTaker 通用 3 2.4 18,000 数据采集柜AR-01 同步录负荷/转速\\n5.2 消耗材料信息汇总表\\n表 5.2 船舶主发动机消耗材料信息汇总表\\n序号 名称 牌号/品级/规格 生产单位 备注 1 柴油机专用润滑油 Shell Mysella S5 N80 Shell 符合MAN 97101标准 2 无纺布抹布 Industrial Grade 市场品 不掉屑 3 清洗剂 CRC Brakleen /Brulin 815GD/ CRC Carbon Clean Pro CRC /Brulin 多用途清洁 4 主机油滤芯 MAN B&W 5L35MC-FIL-01 MAN 原厂件 5 机油放油螺塞密封圈 Viton Φ22×2.5 市场品 耐高温氟橡胶 6 清洁酒精 AR Grade / ≥99.5% 市场品 7 防锈纸 VCI-200 市场品 8 无绒擦拭布 Kimwipe EX-L Kimberly-Clark 防刮伤 9 轴承装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 仅涂瓦背 10 螺纹锁固胶 Loctite 2701 Henke1 用于螺栓(如适用) 11 高温装配润滑脂 Molycote G-1052 Dow Corning 活塞销/螺纹 12 积碳清洗剂 CRC Carbon Clean Pro CRC 环保型 13 防锈油 CRC 3-36 CRC 临时防护 14 二硫化钼润滑膏 Molycote BR2 Plus Dow Corning 涂活塞环外圆 15 缸套润滑机油 Shell Mysella S5 N80 Shell 同主滑油 16 耐油标记笔 Markal Oil-Resistant Markal 标记环开口 17 耐高温标记笔 Markal 900° F Markal 高温环境 18 装配润滑脂 Kluber Isoflex LDS 18Special A Kluber 缸套外壁 19 密封胶 Loctite 518 / 577 Henke1 水腔/泵体法兰 20 高温镍基焊条 ENiCrFe-3 市场品 阀座焊接 21 研磨膏(细) Clover Leaf Green Clover 阀座研配 22 清洁柴油 ISO 4020 Grade A 市场品 冲洗油道 23 高压泵专用润滑油 Shell Tellus S4 VX 32 Shell 偶件润滑 24 中性清洗剂 Alconox Detojet Alconox pH=9.5,环保 25 软化水 Deionized Water 市场品 配清洗液 26 生物降解清洗剂 Envirox SC-90 Envirox 清除碳化油泥 27 耐高温防火毯 Fiberglass Mat 1200°C 市场品 局部隔热 28 镍基合金焊粉 INCONEL 625 Special Metals 堆焊修复 29 渗透探伤剂 Magnaflux ZL-27A Magnaflux PT检测裂纹 30 保温棉 Ceramic Fiber Blanket 市场品 焊后缓冷 31 标准测试燃油 ISO 8217 RMG380 市场品 稳定测试用\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_8b54bbc9-26cb-4bb7-a7c5-6c4abbb153bc.pdf#page=54\"}]" + } + }, + { + "type": "维修安全防护及注意事项汇总表", + "properties": { + "名称": "发动机的维修安全防护及注意事项汇总表", + "概述": "以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。", + "安全防护": "6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006 拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MT009 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MT017 修复连杆异常磨损 1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花", + "注意事项": "6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "内容": "6 维修安全防护及注意事项汇总表\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\n6.1 安全防护\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\n表 6.1 船舶主发动机维修期间安全防护要求\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006 拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MT009 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MT017 修复连杆异常磨损 1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\n6.2 注意事项\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\n表 6.2 船舶主发动机维修期间注意事项\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车", + "knowledge_source": "[{\"filename\": \"777-11A1014-B01001_发动机-维修手册.pdf\", \"info\": \"6 维修安全防护及注意事项汇总表\\n以表格的形式汇总 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求及安全注意事项。\\n6.1 安全防护\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全防护要求汇总后填写下表6.1中。主要反映该维修项目的实施过程中应开展的安全防护要求,如需做好的安全防护措施及不同工作状态下应在设备周围或设备上悬挂的标志。\\n表 6.1 船舶主发动机维修期间安全防护要求\\n序号 维修项目 安全防护要求 备注 1 MT001保养机座与机架组件 1.主机控制面板悬挂“禁止启动”红色警示牌2.机油排放区铺设防滑吸油垫并设围挡 防止误启与油污扩散 2 MT002检查主轴承座 1.锁定曲轴转动机构,飞轮加装机械止动销2.设置激光对中仪警戒区 防止转动伤人 3 MT003检测曲轴跳动 1.盘车机构加装机械锁止装置,挂“禁止盘车”牌2.设置防滑平台,千分表支架稳固 防止测量中曲轴转动 4 MT004更换连杆大端轴承 1.锁定曲轴位置,气缸顶部加盖防异物盖板2.吊装时设警戒区 防止异物落入/坠落 5 MT005更换连杆小端轴承 1.曲轴输出端加装机械止动装置2.吊装活塞总成下方设软质承接垫 防止活塞坠落损坏 6 MT006 拆检活塞头 1.隔离燃油/滑油/冷却水系统,LOTO挂牌上锁 防爆防误启 2.缸内作业使用≤24V防爆照明 7 MT007/008更换活塞环 1.铺设防滑垫,设工具防坠网2.气缸口加盖防护罩 防止工具/异物落入 8 MT009 检测缸套磨损 1.悬挂“禁止盘车”和“禁止启动”双警示牌2.缸口设防坠落围栏,工具系防坠绳 高空/旋转风险 9 MT010 更换气缸套 1.吊装缸套用专用吊耳,下方设软质平台2.缸体水腔加盖防水布 防水防砸 10 MT011 检查排气阀杆 1.隔离启动空气系统,阀杆驱动处加机械锁2.设“高温部件”警示标识 防高温/误动作 11 MT012 更换排气阀座 1.气缸内部完全隔离并加盖防异物盖2.便携镗床接地,设警戒线 防金属屑/电击 12 MT013/019 更换/排除喷油器 1.泄放高压燃油压力,燃油泵出口加盲板2.高压油管区挂“高压危险”牌,禁明火 防燃防爆 13 MT014 更换柱塞偶件 隔离燃油系统,LOTO 挂牌上锁 防燃油泄漏 14 MT015 更换增压器轴承 1.隔离进排气管路,加装盲板2.转子吊装用平衡吊具,设软垫 防气体倒流/坠落 15 MT016 清洗空冷器 1.隔离海水/淡水侧并排空2.高压水枪作业戴面罩及防水服 防高压水伤人 16 MT017 修复连杆异常磨损 1.着火后停机、断油、启动CO系统2.进入扫气箱前办受限空间许可,检测气体 防复燃/室息 17 MT018修复活塞烧蚀 1.作业区设防火挡板,配干粉灭火器≥2具2.焊接需办理动火许可证 防火灾 18 MT020 排除功率波动 1.主机切至“本地手动”模式2.数据接线由持证电工完成,符合防爆规范 防飞车/电火花\\n6.2 注意事项\\n将 3.3 节中该设备维修项目表中各维修项目开展期间的安全注意事项汇总后填写下表6.2中。主要反映该维修项目的实施过程中应注意的安全事项。\\n表 6.2 船舶主发动机维修期间注意事项\\n序号 维修项目 注意事项 备注 1 MT001 1.保养前确认主机停机≥2小时,无残余压力与高温2.排放热机油时戴耐高温手套及护目镜 防烫伤 2 MT002 1.禁止主机运转或盘车未锁定时测量2.使用塞尺时手指不得置于结合面间 防夹伤 3 MT003 1.曲轴未完全支撑不得测量2.磁力表座吸附面须清洁无油 防滑脱 4 MT004 1.禁用锤击拆卸轴承盖2.新轴承瓦背无毛刺、涂层完整 防损伤 5 MT005 1.未拆冷却水管不得强行抽活塞2.热装时戴隔热面罩及手套 防烫/变形 6 MT006 1.抽活塞防活塞环弹出(用环压缩器)2.检查燃烧面戴防颗粒口罩 防吸入积碳 7 MT007/008 1.禁用螺丝刀撬活塞环2.确认“TOP”标记朝上;刮油环胀圈接口错开180° 防划伤/装反 8 MT009 1.冷却水未排空不得测量2.手不得置于千分尺与缸壁间 防夹伤 9 MT010 1.禁用火焰加热缸体2.压装时人员不得站压机正下方 防裂纹/砸伤 10 MT011 1.禁用砂轮打磨阀杆密封面2.戴耐高温手套及护目镜 防碎屑/热辐射 11 MT012 1.缸盖未冷却不得作业2.新阀座安装后须PT/UT无损检测 防热应力/裂纹 12 MT013/019 1.禁用金属工具敲击喷油嘴2.新偶件拆封后立即安装 防卡死/污染 13 MT014 1.禁止互换不同泵体的柱塞偶件2.确保斜槽与齿条啮合正确 防相位错误 14 MT015 1.禁用手直接转增压器转子2.新轴承无油脂污染或保持架变形 防误判/失效 15 MT016 1.禁用酸性清洗剂2.清洗压力≤5 MPa 防腐蚀/翅片倒伏 16 MT017 1.扫气箱>60℃禁用电动工具2.油泥清理时持续喷雾降温 防自燃 17 MT018 1.深度裂纹>3 mm不得堆焊,须更换2.热处理后必须缓冷 防二次裂纹 18 MT020 1.功率剧烈波动时禁止维持高负荷2.调整调速器须双人确认 防飞车\", \"url\": \"http://192.168.2.12:59085/upload/777-11A1014-B01001_发动机-维修手册_a4fb7669-e561-486c-83e2-c6e0e7d19fec.pdf#page=60\"}]" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "曲轴组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "连杆大端轴承的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "活塞头的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "1号压缩环的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "2-4号活塞环的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "气缸套的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "气缸套的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "阀杆的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "阀座的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "喷油嘴偶件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "柱塞偶件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "轴承组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "管束芯体的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "连杆大端轴承的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "活塞头的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "喷油器组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "喷油器组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + }, + { + "type": "维修工作", + "properties": { + "名称": "机座与机架组件的维修工作" + } + } + ], + "relations": [ + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "包含故障", + "from_entity": "发动机的维修工作", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "发动机", + "to_entity": "发动机的维修工作" + }, + { + "type": "安全警告", + "from_entity": "发动机", + "to_entity": "发动机的安全警告" + }, + { + "type": "实现", + "from_entity": "发动机", + "to_entity": "发动机的功能" + }, + { + "type": "适用", + "from_entity": "发动机", + "to_entity": "发动机的环境条件" + }, + { + "type": "实现", + "from_entity": "发动机", + "to_entity": "发动机的基本情况" + }, + { + "type": "包括", + "from_entity": "发动机", + "to_entity": "发动机的组成" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的工作原理" + }, + { + "type": "具有", + "from_entity": "发动机", + "to_entity": "发动机的技术指标参数" + }, + { + "type": "配备", + "from_entity": "发动机", + "to_entity": "发动机的接口" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的布置情况" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "发动机", + "to_entity": "发动机的维修工作" + }, + { + "type": "依赖", + "from_entity": "发动机", + "to_entity": "发动机的器材保障" + }, + { + "type": "包含", + "from_entity": "发动机", + "to_entity": "发动机的维修安全防护及注意事项汇总表" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "修理", + "from_entity": "保养机座与机架组件", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "修理", + "from_entity": "检测曲轴主轴颈跳动量", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "更换连杆大端轴承", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "拆检活塞头磨损情况", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "更换1号压缩环", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "更换2-4号活塞环", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "检测气缸套内径磨损量", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "更换气缸套", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "检查排气阀杆密封面磨损", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "更换排气阀座", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "更换喷油嘴偶件", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "更换高压油泵柱塞偶件", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "修理", + "from_entity": "更换涡轮增压器轴承组件", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "清洗空冷器管束芯体", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "修理", + "from_entity": "修复连杆大端轴承异常磨损", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "修复活塞头部烧蚀熔损", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "排除喷油器雾化不良故障", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "排除喷油器雾化不良故障", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "排除主机功率异常波动故障", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "排除主机功率异常波动故障", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "活塞杆填料函密封失效导致扫气箱内发现润滑油泄漏" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "缸盖密封环老化失效导致主机启动困难或压缩压力不足" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "活塞杆填料函磨损导致" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "修理", + "from_entity": "MT001", + "to_entity": "润滑油压力骤降导致主机紧急停机" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "曲轴组件", + "to_entity": "曲轴组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "曲轴组件的维修工作", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "MT003", + "to_entity": "曲轴主轴颈跳动超差导致主机运行中振动异常增大" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "连杆大端轴承", + "to_entity": "连杆大端轴承的维修工作" + }, + { + "type": "包含故障", + "from_entity": "连杆大端轴承的维修工作", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "MT004", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "活塞头", + "to_entity": "活塞头的维修工作" + }, + { + "type": "包含故障", + "from_entity": "活塞头的维修工作", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT006", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "1号压缩环", + "to_entity": "1号压缩环的维修工作" + }, + { + "type": "包含故障", + "from_entity": "1号压缩环的维修工作", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "MT007", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "2-4号活塞环", + "to_entity": "2-4号活塞环的维修工作" + }, + { + "type": "包含故障", + "from_entity": "2-4号活塞环的维修工作", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "修理", + "from_entity": "MT008", + "to_entity": "活塞环磨损或断裂导致主机润滑油消耗异常增加" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "气缸套", + "to_entity": "气缸套的维修工作" + }, + { + "type": "包含故障", + "from_entity": "气缸套的维修工作", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT009", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "气缸套", + "to_entity": "气缸套的维修工作" + }, + { + "type": "包含故障", + "from_entity": "气缸套的维修工作", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT010", + "to_entity": "气缸套严重磨损导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "阀杆", + "to_entity": "阀杆的维修工作" + }, + { + "type": "包含故障", + "from_entity": "阀杆的维修工作", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "MT011", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "阀座", + "to_entity": "阀座的维修工作" + }, + { + "type": "包含故障", + "from_entity": "阀座的维修工作", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "MT012", + "to_entity": "排气阀密封面磨损或阀座烧蚀导致排气温度异常升高" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "喷油嘴偶件", + "to_entity": "喷油嘴偶件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "喷油嘴偶件的维修工作", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT013", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "柱塞偶件", + "to_entity": "柱塞偶件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "柱塞偶件的维修工作", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "修理", + "from_entity": "MT014", + "to_entity": "高压油管接头密封失效导致高压燃油管路附近有油渍" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "轴承组件", + "to_entity": "轴承组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "轴承组件的维修工作", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "修理", + "from_entity": "MT015", + "to_entity": "涡轮增压器轴承损坏导致排气温度异常升高" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "管束芯体", + "to_entity": "管束芯体的维修工作" + }, + { + "type": "包含故障", + "from_entity": "管束芯体的维修工作", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "修理", + "from_entity": "MT016", + "to_entity": "空冷器管束芯体结垢或堵塞导致空冷器后扫气温度持续偏高" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "连杆大端轴承", + "to_entity": "连杆大端轴承的维修工作" + }, + { + "type": "包含故障", + "from_entity": "连杆大端轴承的维修工作", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "修理", + "from_entity": "T017", + "to_entity": "主轴承或连杆大端轴承磨损导致主机运行中振动异常增大" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "活塞头", + "to_entity": "活塞头的维修工作" + }, + { + "type": "包含故障", + "from_entity": "活塞头的维修工作", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT018", + "to_entity": "活塞头烧蚀或活塞环断裂导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "喷油器组件", + "to_entity": "喷油器组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "喷油器组件的维修工作", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "修理", + "from_entity": "MT019", + "to_entity": "喷油嘴偶件雾化不良导致单缸功率下降、排温偏低" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "喷油器组件", + "to_entity": "喷油器组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "喷油器组件的维修工作", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "MT019", + "to_entity": "喷油器工作不一致导致主机功率输出不稳定" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "修理", + "from_entity": "MT020", + "to_entity": "调速系统响应异常导致主机功率输出不稳定" + }, + { + "type": "发生故障使用维修工作", + "from_entity": "机座与机架组件", + "to_entity": "机座与机架组件的维修工作" + }, + { + "type": "包含故障", + "from_entity": "机座与机架组件的维修工作", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + }, + { + "type": "修理", + "from_entity": "MT020", + "to_entity": "多缸燃烧严重失衡导致主机紧急停机" + } + ] +} \ No newline at end of file