文章介绍了如何利用大语言模型(LLMs)将非结构化的工业设备日志转化为可交互、可视化的知识图谱。通过10个详细步骤,展示了从环境准备、文本分块、LLM提示词设计、三元组抽取、规范化处理到最终使用NetworkX和ipycytoscape构建交互式知识图谱的完整流程。该方法能够高效提取设备日志中的关键信息,构建实体间的关系网络,为智能运维、故障预测和决策支持提供结构化知识基础。


在工业4.0时代,海量的非结构化数据,如设备日志、维护报告、工单记录等,蕴含着巨大的价值。如何高效地从这些文本中提取关键信息,并将其转化为结构化的知识,是实现智能运维、故障预测和决策支持的关键。本文以智能制造场景为例,深入探讨如何利用大语言模型(LLMs)将非结构化的设备日志,转化为一个可交互、可视化的知识图谱。

**目标读者:**对自然语言处理(NLP)、知识图谱和LLMs感兴趣的初中级Python开发者和AI工程师。

**核心方法:**采用一个高度模块化、循序渐进的方法。每一步都将执行一个明确的步骤,并立即展示其输出结果,让读者清晰地看到数据在每个阶段的演变,最终构建出一个动态的、可交互的知识图谱。

一、 核心技术原理

在深入实践之前,我们首先需要理解两个核心概念:知识图谱(Knowledge Graph)和SPO三元组(Subject-Predicate-Object Triples),以及LLM在其中扮演的关键角色。

1.1 什么是知识图谱?

知识图谱是一种用图结构来表示现实世界中实体(Entities)及其相互关系(Relationships)的知识库。它由节点(Nodes)和边(Edges)组成:

  • **节点 (Nodes):**代表实体,如一台具体的设备(“CNC-A500机床”)、一个故障现象(“主轴转速异常”)或一个解决方案(“重新紧固连接线”)。
  • **边 (Edges):**代表实体间的关系,通常带有方向和标签,描述了实体间的具体联系。例如:(CNC-A500机床) -[发生故障]-> (主轴转速异常)

通过知识图谱,我们可以直观地理解复杂的因果关系、进行根因分析,并为智能问答系统提供结构化知识支持。

1.2 SPO三元组:知识图谱的原子构建块

从文本中构建知识图谱,最基础的单元是 **主-谓-宾(Subject-Predicate-Object, SPO)**三元组。它以一种简洁的结构捕获一个独立的事实:

  • **主体 (Subject)😗*事实陈述的核心实体。
  • **谓词 (Predicate)😗*描述主体和客体之间关系或动作的词语。
  • **客体 (Object)😗*与主体通过谓词相关联的另一个实体。

示例:“CNC-A500型机床报告了’主轴转速异常’警报” -> (CNC-A500型机床, 报告警报, 主轴转速异常)

LLM的强大之处在于其卓越的自然语言理解能力,能够从复杂的句子中准确识别出这些SPO三元组。

1.3 整体技术流程

我们将遵循以下流程,将原始文本转化为知识图谱:

二、 实战演练:从设备日志到故障知识图谱

Step 1: 环境准备 - 安装依赖库

首先,我们需要安装所有必要的Python库。我们将使用 openai与LLM交互,networkx构建图数据结构,以及 ipycytoscape进行交互式可视化。

进阶分析:库选择考量

  • **NetworkX:**轻量级且功能强大的图论库,非常适合在内存中快速构建、操作和分析中小型图谱。其API直观,易于上手。
  • **ipycytoscape:**专为Jupyter环境设计,它将强大的Cytoscape.js可视化引擎带入Notebook,实现了真正的"所见即所得"的交互式分析,远胜于静态图片。
  • **Pandas:**虽然不是核心,但在数据处理的中间环节,使用DataFrame来展示和检查数据(如分块结果、提取的三元组)极为方便,增强了代码的可读性和可调试性。
# 仅需运行一次%pip install openai networkx "ipycytoscape>=1.3.1" ipywidgets pandas# 在经典的Jupyter Notebook中,可能需要额外启用ipywidgets扩展# jupyter nbextension enable --py widgetsnbextension# --- 重要提示:运行此单元后,请重启Jupyter内核! ---

Step 2: 导入所需库

安装完成后,我们将所有需要的模块导入到当前环境中。

import openaiimport jsonimport networkx as nximport ipycytoscapeimport pandas as pdimport osimport reimport warnings# 配置Pandas显示选项和忽略警告,以获得更好的输出体验warnings.filterwarnings('ignore', category=DeprecationWarning)pd.set_option('display.max_rows', 100)pd.set_option('display.max_colwidth', 150)print("库导入成功。")

Step 3: 配置LLM访问凭证

配置对大语言模型的API访问。强烈建议使用环境变量来存储API密钥,避免硬编码在代码中。

# --- 定义你希望使用的LLM模型 ---# 示例: 'gpt-4o', 'gpt-3.5-turbo', 'llama3', 'deepseek-ai/DeepSeek-Coder-V2-Lite-Instruct'llm_model_name = "deepseek-ai/DeepSeek-V3"# <-- *** 请替换为你自己的模型 ***# --- 从环境变量中获取凭证 ---api_key = os.getenv("OPENAI_API_KEY")base_url = os.getenv("OPENAI_API_BASE") # 如果使用非OpenAI官方服务,如Ollama或私有部署# --- 验证并初始化客户端 ---ifnot api_key:    print("错误:未设置OPENAI_API_KEY环境变量。")    raise SystemExit("API密钥配置失败。")else:    client = openai.OpenAI(        base_url=base_url,        api_key=api_key    )    print("OpenAI客户端初始化成功。")# --- 定义LLM调用参数 ---llm_temperature = 0.0# 对于信息抽取任务,设置为0以获得更确定、更稳定的输出llm_max_tokens = 4096

Step 4: 定义输入文本 - 智能制造场景

我们将使用一段模拟的设备维护日志作为我们的非结构化文本输入。这段日志包含了多台设备、多种故障及其处理过程。

unstructured_text = """2025年10月15日,三号生产线的CNC-A500型机床在上午10:30报告了'主轴转速异常'警报,错误代码为E-401。现场技术员张伟检查后发现,故障原因是主轴编码器连接线松动导致的信号丢失。他重新紧固了连接线并重启设备,机床恢复正常运行。同日,四号线的R-200型机器人手臂在下午3点出现'抓取位置偏移'问题,日志显示故障码F-992。经排查,确认为视觉定位系统摄像头有污渍,影响了识别精度。维护团队对摄像头进行了清洁,并重新校准了定位系统,问题解决。初步分析,摄像头污渍的根本原因可能与车间粉尘过多有关,建议增加除尘频率。"""print("--- 输入的设备日志 ---")print(unstructured_text)print(f"总字数: {len(unstructured_text)}")

Step 5: 文本分块 (Text Chunking)

对于长文本,一次性输入给LLM可能会超出其上下文窗口限制。因此,我们需要将文本切分成带有重叠(Overlap)的小块,以确保跨越切分边界的关系信息不丢失。

进阶分析:分块策略与优化

简单的按字数/词数分块是最基础的方法。更高级的策略包括:

  • **按句子或段落分块:**利用自然语言的边界,减少关系被切断的概率。
  • **递归分块 (Recursive Chunking):**先按段落分,如果段落太大再按句子分,以此类推,适应性更强。
  • **重叠大小的选择:**重叠区域应足够大,以包含一个或多个完整的句子,从而为LLM提供充足的上下文来解析关系和进行指代消解。30-50个词通常是一个不错的起点。
chunk_size = 180  # 每块的字数overlap = 40     # 块之间的重叠字数words = list(unstructured_text) # 按字进行切分,更适合中文total_words = len(words)chunks = []start_index = 0chunk_number = 1while start_index < total_words:    end_index = min(start_index + chunk_size, total_words)    chunk_text = "".join(words[start_index:end_index])    chunks.append({"text": chunk_text, "chunk_number": chunk_number})        next_start_index = start_index + chunk_size - overlap        if next_start_index <= start_index:        if end_index == total_words:             break        next_start_index = start_index + 1             start_index = next_start_index    chunk_number += 1print(f"文本被切分为 {len(chunks)} 个块。")chunks_df = pd.DataFrame(chunks)chunks_df['char_count'] = chunks_df['text'].apply(len)display(chunks_df)

Step 6: 定义LLM提示词 (Prompt Engineering)

这是整个流程的"大脑"。一个精心设计的Prompt能够引导LLM准确、稳定地输出我们期望的格式。我们将定义系统角色和用户指令。

进阶分析:工业场景下的Prompt设计要点

  • **领域术语明确:**在谓词示例中直接给出领域内的标准术语,如"发生故障"、“故障原因为”、“解决方案是”,引导模型使用规范的表达。
  • **格式强制性:**强调"必须"、“仅返回JSON”、“不要任何解释”,是为了最大限度地减少后续解析代码的复杂度。使用response\_format={"type": "json\_object"}(如果模型支持)可以进一步增强格式的可靠性。
  • **实体大小写保留:**工业场景中,设备型号(CNC-A500)、错误代码(E-401)等是大小写敏感的专有名词。在指令中明确要求保留这些名词的大小写,对于保证知识图谱的准确性至关重要。
  • **Few-shot示例:**在Prompt中提供1-2个高质量的抽取示例(Few-shot Learning),能极大地提升LLM对任务意图的理解,效果通常优于复杂的零样本(Zero-shot)指令。
extraction_system_prompt = """你是一位专注于工业领域的AI知识抽取专家。你的任务是从设备维护日志或故障报告中,精准地提取故障、原因、解决方案等核心信息,并以'主体-谓词-客体'(SPO)三元组的形式输出。请严格遵守用户指令中定义的JSON格式。"""extraction_user_prompt_template = """请从以下设备日志文本中,提取所有事实性的“主体-谓词-客体”三元组。**极其重要的规则:**1.  **输出格式:** 必须只返回一个有效的JSON数组,数组中每个元素都是一个包含"subject", "predicate", "object"三个键的对象。2.  **纯JSON:** 不要包含任何JSON数组之外的文本、解释或Markdown标记(如 ```json ... ```)。3.  **谓词规范:** 'predicate'的值应简洁并使用标准术语,例如 '发生故障', '错误代码为', '故障原因为', '解决方案是', '负责人是', '位于'。4.  **大小写处理:** 保持实体专有名词(如设备型号、错误代码)的原始大小写,其他内容(如通用描述)转为小写。5.  **指代消解:** 将文本中的代词(如'它', '该问题')解析为它们所指代的具体实体(如'主轴转速异常')。6.  **全面性:** 提取文本中提到的所有不同的事实关系。**待处理文本:**```text{text_chunk}```**JSON输出格式示例:**[  {"subject": "CNC-A500型机床", "predicate": "发生故障", "object": "主轴转速异常"},  {"subject": "主轴转速异常", "predicate": "故障原因为", "object": "主轴编码器连接线松动"}]**你的JSON输出 (必须以'['开头, 以']'结尾):**"""

Step 7: LLM交互 - 逐块抽取三元组

现在,我们遍历每个文本块,调用LLM进行信息抽取,并对返回结果进行健壮的解析。

all_extracted_triples = []failed_chunks = []print(f"开始从 {len(chunks)} 个文本块中抽取三元组,使用模型: '{llm_model_name}'...")for chunk_info in chunks:    chunk_text = chunk_info['text']    chunk_num = chunk_info['chunk_number']        print(f"\n--- 正在处理文本块 {chunk_num}/{len(chunks)} ---")        user_prompt = extraction_user_prompt_template.format(text_chunk=chunk_text)        try:        response = client.chat.completions.create(            model=llm_model_name,            messages=[                {"role": "system", "content": extraction_system_prompt},                {"role": "user", "content": user_prompt}            ],            temperature=llm_temperature,            max_tokens=llm_max_tokens,            response_format={ "type": "json_object" },         )                llm_output = response.choices[0].message.content.strip()                # 健壮的JSON解析逻辑        parsed_json = None        try:            parsed_data = json.loads(llm_output)            # 兼容模型直接返回字典包裹列表的情况            if isinstance(parsed_data, dict):                list_values = [v for v in parsed_data.values() if isinstance(v, list)]                if len(list_values) == 1:                    parsed_json = list_values[0]            elif isinstance(parsed_data, list):                parsed_json = parsed_data                        if parsed_json isnotNone:                print(f"   成功解析并抽取出 {len(parsed_json)} 个三元组。")                for triple in parsed_json:                    triple['chunk'] = chunk_num                all_extracted_triples.extend(parsed_json)            else:                raise ValueError("解析后的JSON结构不符合预期")        except (json.JSONDecodeError, ValueError) as e:            print(f"   错误: JSON解析失败 - {e}")            failed_chunks.append({'chunk_number': chunk_num, 'error': str(e), 'response': llm_output})    except Exception as e:        print(f"   错误: API调用失败 - {e}")        failed_chunks.append({'chunk_number': chunk_num, 'error': f'API Error: {e}', 'response': ''})print("\n--- 抽取结果汇总 ---")if all_extracted_triples:    all_triples_df = pd.DataFrame(all_extracted_triples)    display(all_triples_df)else:    print("未能成功抽取任何三元组。")

预期输出示例 :

subject predicate object chunk
0 CNC-A500型机床 位于 三号生产线
1 CNC-A500型机床 发生故障 主轴转速异常
2 主轴转速异常 错误代码为 E-401
3 主轴转速异常 负责人是 张伟
4 主轴转速异常 故障原因为 主轴编码器连接线松动
5 主轴编码器连接线松动 解决方案是 重新紧固连接线
6 R-200型机器人手臂 位于 四号线
7 R-200型机器人手臂 出现问题 抓取位置偏移
8 抓取位置偏移 故障码为 F-992
9 抓取位置偏移 故障原因为 视觉定位系统摄像头有污渍
10 视觉定位系统摄像头有污渍 解决方案是 清洁摄像头
11 视觉定位系统摄像头有污渍 根本原因为 车间粉尘过多
12 车间粉尘过多 建议方案是 增加除尘频率

Step 8: 三元组规范化与去重

从不同文本块中抽取的知识可能会有重叠或格式不一。此步骤旨在清洗数据,为构建高质量的图谱做准备。

  1. **规范化:**去除首尾空格,统一谓词表达(例如,将"出现问题"统一为"发生故障")。
  2. **过滤:**移除不完整的三元组(如主/谓/宾任一为空)。
  3. **去重:**移除完全相同的(subject, predicate, object)三元组。
normalized_triples = []seen_triples = set()for triple in all_extracted_triples:    subject = triple.get('subject', '').strip()    predicate = triple.get('predicate', '').strip()    object_val = triple.get('object', '').strip()    # 谓词归一化示例    if predicate == '出现问题':        predicate = '发生故障'        if subject and predicate and object_val:        triple_identifier = (subject, predicate, object_val)        if triple_identifier notin seen_triples:            normalized_triples.append({                'subject': subject,                'predicate': predicate,                'object': object_val            })            seen_triples.add(triple_identifier)print(f"原始三元组数量: {len(all_extracted_triples)}")print(f"清洗与去重后三元组数量: {len(normalized_triples)}")normalized_df = pd.DataFrame(normalized_triples)display(normalized_df)

Step 9: 使用NetworkX构建知识图谱

我们将清洗后的三元组加载到networkx的有向图(DiGraph)对象中。

knowledge_graph = nx.DiGraph()for triple in normalized_triples:    knowledge_graph.add_edge(        triple['subject'],         triple['object'],         label=triple['predicate']    )num_nodes = knowledge_graph.number_of_nodes()num_edges = knowledge_graph.number_of_edges()print("--- NetworkX 图构建完成 ---")print(f"图谱包含 {num_nodes} 个独立实体(节点)。")print(f"图谱包含 {num_edges} 条关系(边)。")

Step 10: 使用ipycytoscape进行交互式可视化

最后,也是最激动人心的一步:我们将NetworkX图对象转换为ipycytoscape所需的格式,并定义丰富的视觉样式,以交互方式呈现我们的知识图谱。

进阶分析:数据驱动的可视化设计

一个优秀的知识图谱可视化不仅仅是画出点和线。我们应该利用视觉元素来编码更多信息:

  • **节点大小 (Node Size)😗*我们将节点的大小与其"度"(degree,即连接边的数量)相关联。度越高的节点(如"主轴转速异常")在图中会显得更大,直观地标识出它是关键事件或实体。
  • **节点/边颜色 (Color)😗*可以根据实体类型(如设备、故障、原因、解决方案)或关系类型来定义不同的颜色,使图谱的结构一目了然。
  • **交互性 (Interactivity)😗*通过设置悬停(hover)和点击(select)效果,用户可以高亮显示感兴趣的节点及其关联,并查看详细信息(Tooltip),极大地提升了探索效率。
  • 布局算法 (Layout):cose (Compound Spring Embedder) 布局算法擅长处理中等规模的图,它通过模拟物理斥力和引力来排布节点,能有效减少边的交叉,清晰地展示群组结构。
10.1 转换数据格式
cytoscape_graph_data = nx.cytoscape_data(knowledge_graph)# 为节点添加标签换行和大小,以获得更好的视觉效果node_degrees = dict(knowledge_graph.degree())max_degree = max(node_degrees.values()) if node_degrees else1for node in cytoscape_graph_data['elements']['nodes']:    node_id = node['data']['id']    degree = node_degrees.get(node_id, 0)        node['data']['label'] = str(node_id).replace(' ', '\n')    node['data']['size'] = 20 + (degree / max_degree) * 60    node['data']['tooltip_text'] = f"实体: {node_id}\n关联度: {degree}"# 为边添加工具提示for edge in cytoscape_graph_data['elements']['edges']:    label = edge['data'].get('label', '')    edge['data']['tooltip_text'] = f"关系: {label}"
10.2 创建并配置可视化组件
cyto_widget = ipycytoscape.CytoscapeWidget()cyto_widget.graph.add_graph_from_json(cytoscape_graph_data['elements'])# 定义丰富的视觉样式visual_style = [    {        'selector': 'node',        'style': {            'label': 'data(label)',            'width': 'data(size)',            'height': 'data(size)',            'background-color': '#3498db',            'color': '#ffffff',            'font-size': '12px',            'font-weight': 'bold',            'text-valign': 'center',            'text-outline-width': 2,            'text-outline-color': '#2980b9',        }    },    {        'selector': 'node:selected',        'style': { 'background-color': '#e74c3c', 'border-width': 4, 'border-color': '#c0392b' }    },    {        'selector': 'edge',        'style': {            'label': 'data(label)',            'width': 2.5,            'curve-style': 'bezier',            'line-color': '#2ecc71',            'target-arrow-color': '#27ae60',            'target-arrow-shape': 'triangle',            'arrow-scale': 1.5,            'font-size': '10px',            'color': '#2c3e50',            'text-background-opacity': 0.9,            'text-background-color': '#ecf0f1',            'edge-text-rotation': 'autorotate',        }    },    {        'selector': 'edge:selected',        'style': { 'line-color': '#f39c12', 'width': 4 }    }]cyto_widget.set_style(visual_style)# 设置布局算法cyto_widget.set_layout(name='cose',                        nodeRepulsion=5000,                        idealEdgeLength=150,                        animate=True,                        animationDuration=1000)print("准备显示交互式知识图谱...")print("交互操作:滚动缩放,拖拽平移,悬停查看详情。")display(cyto_widget)

**注意:**上述代码的最后一步 display(cyto_widget)会在Jupyter环境中渲染出一个可交互的图谱。在静态HTML页面中,这里将无法显示动态组件。实际开发时,请在Jupyter Notebook或JupyterLab中运行以查看效果。

三、 总结与展望

通过以上步骤,我们完成了一个从原始文本到交互式知识图谱的完整端到端流程。这个过程清晰地展示了LLM在自动化知识工程中的巨大潜力,它将繁琐、依赖专家规则的传统信息抽取方法,转变为一种更智能、更灵活的范式。

优化方向:

  • **高级实体链接 (Advanced Entity Linking)😗*将抽取的实体(如"张伟")链接到企业内部的员工数据库,实现知识的跨系统融合。
  • **关系与事件抽取 (Relation & Event Extraction)😗*不仅抽取SPO,还可抽取更复杂的事件结构,如包含时间、地点、参与者的完整故障事件。
  • **增量更新与错误修正:**设计一套流程,用于处理新的日志数据(增量更新),并允许专家对LLM的抽取错误进行反馈和修正,形成一个持续学习的闭环。
  • **图数据库存储:**对于大规模图谱,应将其存储在专业的图数据库(如Neo4j, NebulaGraph)中,以支持更高效的复杂查询和分析。
  • **下游应用:**基于构建的知识图谱,开发智能问答机器人(“CNC-A500最近一次故障是什么原因?”)、故障模式推荐系统或根本原因分析工具。

大模型未来如何发展?普通人如何抓住AI大模型的风口?

※领取方式在文末

为什么要学习大模型?——时代浪潮已至

随着AI技术飞速发展,大模型的应用已从理论走向大规模落地,渗透到社会经济的方方面面。

  • 技术能力上:其强大的数据处理与模式识别能力,正在重塑自然语言处理、计算机视觉等领域。
  • 行业应用上:开源人工智能大模型已走出实验室,广泛落地于医疗、金融、制造等众多行业。尤其在金融、企业服务、制造和法律领域,应用占比已超过30%,正在创造实实在在的价值。

请添加图片描述
未来大模型行业竞争格局以及市场规模分析预测:
请添加图片描述

同时,AI大模型技术的爆发,直接催生了产业链上一批高薪新职业,相关岗位需求井喷:
请添加图片描述
AI浪潮已至,对技术人而言,学习大模型不再是选择,而是避免被淘汰的必然。这关乎你的未来,刻不容缓!


那么,我们如何学习AI大模型呢?

在一线互联网企业工作十余年里,我指导过不少同行后辈,经常会收到一些问题,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题,也不是三言两语啊就能讲明白的。

所以呢,这份精心整理的AI大模型学习资料,我整理好了,免费分享!只希望它能用在正道上,帮助真正想提升自己的朋友。让我们一起用技术做点酷事!

ps:微信扫描即可获取
加上后我将逐一发送资料
与志同道合者共勉
真诚无偿分享!!!

在这里插入图片描述


适学人群

我们的课程体系专为以下三类人群精心设计:

  • AI领域起航的应届毕业生:提供系统化的学习路径与丰富的实战项目,助你从零开始,牢牢掌握大模型核心技术,为职业生涯奠定坚实基础。

  • 跨界转型的零基础人群:聚焦于AI应用场景,通过低代码工具让你轻松实现“AI+行业”的融合创新,无需深奥的编程基础也能拥抱AI时代。

  • 寻求突破瓶颈的传统开发者(如Java/前端等):将带你深入Transformer架构与LangChain框架,助你成功转型为备受市场青睐的AI全栈工程师,实现职业价值的跃升。

在这里插入图片描述


※大模型全套学习资料展示

通过与MoPaaS魔泊云的强强联合,我们的课程实现了质的飞跃。我们持续优化课程架构,并新增了多项贴合产业需求的前沿技术实践,确保你能获得更系统、更实战、更落地的大模型工程化能力,从容应对真实业务挑战。
在这里插入图片描述资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

01 大模型系统化学习路线

作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。希望这份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!

图片

👇微信扫描下方二维码即可~

在这里插入图片描述
本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!

02 大模型学习书籍&文档

新手必备的权威大模型学习PDF书单来了!全是一系列由领域内的顶尖专家撰写的大模型技术的书籍和学习文档(电子版),从基础理论到实战应用,硬核到不行!
※(真免费,真有用,错过这次拍大腿!)

请添加图片描述

03 AI大模型最新行业报告

2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

图片

04 大模型项目实战&配套源码

学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

图片

05 大模型大厂面试真题

面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余

图片
在这里插入图片描述

06 全套AI大模型应用开发视频教程

(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)

图片


由于篇幅有限
只展示部分资料
并且还在持续更新中…

ps:微信扫描即可获取
加上后我将逐一发送资料
与志同道合者共勉
真诚无偿分享!!!
在这里插入图片描述
最后,祝大家学习顺利,抓住机遇,共创美好未来!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐