当前位置: 首页 > article >正文

RexUniNLU开源NLU模型实战:金融研报关系抽取+事件时间线自动生成案例

RexUniNLU开源NLU模型实战金融研报关系抽取事件时间线自动生成案例1. 引言当研报分析遇上智能信息抽取想象一下这个场景作为一名金融分析师你刚收到一份长达50页的行业深度研究报告。你需要从中找出所有提到的公司、它们之间的合作关系、关键的投资事件以及这些事件发生的时间线。传统做法是你得像侦探一样逐字逐句阅读手动标注这个过程可能要花上好几个小时而且容易遗漏重要信息。现在有了RexUniNLU这样的智能工具情况就完全不同了。它能像一位不知疲倦的助手在几分钟内帮你完成所有这些信息提取工作。今天我就带你一起动手看看如何用这个开源的通用自然语言理解模型来解决金融研报分析中的实际问题。RexUniNLU是一个基于DeBERTa-v2模型构建的零样本通用自然语言理解工具。简单来说它不需要你事先用大量金融数据去训练就能理解金融文本并从中抽取出我们关心的信息。它支持多种任务比如识别文本中的公司名、人名命名实体识别找出公司之间的投资、合作等关系关系抽取以及提取重要事件和发生时间事件抽取。在接下来的内容里我会先带你快速部署这个模型然后通过一个真实的金融研报案例一步步展示如何用它来抽取实体关系和生成事件时间线。你会发现把AI技术用在金融分析上并没有想象中那么复杂。2. 快速部署10分钟搭建你的智能分析环境2.1 环境准备与一键部署要开始使用RexUniNLU最方便的方式就是通过Docker镜像。这种方式能避免复杂的依赖安装和环境配置问题让你快速上手。首先确保你的电脑上已经安装了Docker。如果没有可以去Docker官网下载安装过程很简单就像安装一个普通软件一样。接下来我们通过一个简单的Docker命令就能启动服务docker run -d \ --name rex-uninlu \ -p 7860:7860 \ --restart unless-stopped \ csdngpt/rex-uninlu:latest让我解释一下这个命令的每个部分docker run -d在后台运行一个Docker容器--name rex-uninlu给这个容器起个名字方便管理-p 7860:7860把容器内部的7860端口映射到你电脑的7860端口--restart unless-stopped设置容器自动重启除非你手动停止它csdngpt/rex-uninlu:latest指定要使用的镜像名称和版本运行这个命令后Docker会自动从镜像仓库下载所需的文件并启动服务。整个过程通常只需要几分钟取决于你的网络速度。2.2 验证服务是否正常运行服务启动后怎么知道它已经准备好了呢很简单打开你的浏览器访问http://localhost:7860。如果看到类似Gradio的Web界面或者用下面的命令检查curl http://localhost:7860如果返回正常的响应说明服务已经成功启动。如果遇到端口被占用的问题比如7860端口已经被其他程序使用了只需要修改命令中的端口映射部分即可。比如改成-p 7861:7860然后通过http://localhost:7861来访问。2.3 理解模型的核心能力在开始具体案例之前我们先简单了解一下RexUniNLU能做什么。这个模型就像一个多功能的文本理解工具特别擅长从中文文本中提取结构化信息命名实体识别NER能自动找出文本中的人名、公司名、地名、时间等关系抽取RE能识别实体之间的关系比如公司A投资了公司B事件抽取EE能提取出发生了什么事件以及事件的时间、地点等要素文本分类TC能判断一段文本属于哪个类别情感分析能分析文本表达的情感是正面、负面还是中性最重要的是它支持零样本学习。这意味着你不需要准备大量的金融文本数据去训练它它已经具备了基本的理解能力可以直接使用。3. 实战案例从金融研报中提取关键信息3.1 准备一份真实的金融研报文本为了演示效果我准备了一段简化的金融研报内容。在实际工作中你可以直接把整份研报的文本输入进去模型能够处理长文本。# 示例研报文本 research_report 2023年第三季度人工智能芯片行业继续保持高速增长态势。 英伟达NVIDIA于2023年8月发布了新一代AI芯片H200性能较前代提升40%。 该公司首席执行官黄仁勋在发布会上表示H200芯片将主要应用于大型语言模型训练。 与此同时AMD在2023年9月推出了MI300系列AI加速器直接对标英伟达的H100芯片。 行业分析师李华认为AMD的入局将加剧AI芯片市场的竞争。 2023年10月英特尔宣布与微软达成战略合作共同开发下一代AI芯片。 根据合作协议微软将为英特尔的AI芯片提供软件生态支持。 此外国内企业华为在2023年11月发布了昇腾910B芯片主要面向中国市场。 华为轮值董事长徐直军透露该芯片已在多家国内云服务商部署。 2023年12月谷歌发布了自研的TPU v5芯片专注于AI推理场景。 市场研究机构IDC预测到2024年底全球AI芯片市场规模将达到800亿美元。 这段文本虽然不长但包含了丰富的信息多家公司、产品发布事件、合作关系、人物观点、时间信息和市场预测。我们要做的就是把这些信息结构化地提取出来。3.2 第一步识别所有实体首先我们让模型找出文本中所有的命名实体。在金融研报中我们最关心的是公司、人物、产品、时间这些实体。from modelscope.pipelines import pipeline # 创建信息抽取管道 pipe pipeline( taskrex-uninlu, model., model_revisionv1.2.1, allow_remoteTrue ) # 定义我们想要抽取的实体类型 entity_schema { 公司: None, # 公司名称 人物: None, # 人物姓名 产品: None, # 产品名称 时间: None, # 时间信息 机构: None # 研究机构等 } # 执行实体识别 entity_result pipe( inputresearch_report, schemaentity_schema ) # 打印识别结果 print(识别到的实体) for entity_type, entities in entity_result.items(): if entities: print(f{entity_type}: {entities})运行这段代码后你会看到类似这样的输出识别到的实体 公司: [英伟达, AMD, 英特尔, 微软, 华为, 谷歌] 人物: [黄仁勋, 李华, 徐直军] 产品: [H200芯片, MI300系列AI加速器, H100芯片, 昇腾910B芯片, TPU v5芯片] 时间: [2023年第三季度, 2023年8月, 2023年9月, 2023年10月, 2023年11月, 2023年12月, 2024年底] 机构: [IDC]你看模型准确地找出了所有的关键实体。英伟达、AMD、英特尔这些公司黄仁勋、李华这些人物各种芯片产品以及具体的时间点都被一一识别出来了。这比人工阅读标注要快得多而且不会遗漏。3.3 第二步抽取实体之间的关系仅仅知道有哪些实体还不够我们还需要知道它们之间有什么关系。比如哪家公司发布了哪个产品谁说了什么话哪些公司之间有合作# 定义关系抽取的schema relation_schema { 产品发布: { 公司: None, 产品: None, 时间: None }, 合作关系: { 公司1: None, 公司2: None, 合作内容: None }, 人物职务: { 人物: None, 公司: None, 职务: None }, 市场预测: { 机构: None, 预测内容: None, 时间: None } } # 执行关系抽取 relation_result pipe( inputresearch_report, schemarelation_schema ) # 整理并打印关系结果 print(\n抽取到的关系) for relation_type, relations in relation_result.items(): if relations: print(f\n{relation_type}) for rel in relations: print(f - {rel})运行后你会看到模型从文本中提取出了各种关系抽取到的关系 产品发布 - {公司: 英伟达, 产品: H200芯片, 时间: 2023年8月} - {公司: AMD, 产品: MI300系列AI加速器, 时间: 2023年9月} - {公司: 华为, 产品: 昇腾910B芯片, 时间: 2023年11月} - {公司: 谷歌, 产品: TPU v5芯片, 时间: 2023年12月} 合作关系 - {公司1: 英特尔, 公司2: 微软, 合作内容: 共同开发下一代AI芯片} 人物职务 - {人物: 黄仁勋, 公司: 英伟达, 职务: 首席执行官} - {人物: 徐直军, 公司: 华为, 职务: 轮值董事长} 市场预测 - {机构: IDC, 预测内容: 全球AI芯片市场规模将达到800亿美元, 时间: 2024年底}这些结构化的关系信息非常有用。现在我们知道英伟达在2023年8月发布了H200芯片AMD在9月发布了MI300系列英特尔和微软在10月达成了合作等等。所有这些信息都被自动整理成了结构化的数据可以直接用于进一步分析。3.4 第三步提取事件并构建时间线对于金融分析来说事件发生的时间顺序很重要。我们需要知道哪些事件先发生哪些后发生这样才能理解行业的发展脉络。# 定义事件抽取的schema event_schema { 产品发布事件: { 触发词: None, # 如发布、推出 公司: None, 产品: None, 时间: None }, 合作事件: { 触发词: None, # 如合作、达成 公司: None, 合作伙伴: None, 时间: None }, 观点陈述: { 触发词: None, # 如表示、认为、透露 人物: None, 内容: None, 时间: None } } # 执行事件抽取 event_result pipe( inputresearch_report, schemaevent_schema ) # 按时间排序事件 print(\n按时间排序的事件时间线) # 收集所有有时间信息的事件 all_events [] for event_type, events in event_result.items(): if events: for event in events: if 时间 in event and event[时间]: all_events.append({ 时间: event[时间], 类型: event_type, 详情: event }) # 按时间排序这里简化处理实际可能需要更复杂的时间解析 time_order [2023年第三季度, 2023年8月, 2023年9月, 2023年10月, 2023年11月, 2023年12月, 2024年底] sorted_events sorted(all_events, keylambda x: time_order.index(x[时间]) if x[时间] in time_order else len(time_order)) # 打印时间线 for event in sorted_events: time event[时间] etype event[类型] detail event[详情] if etype 产品发布事件: print(f{time}: {detail[公司]}发布了{detail[产品]}) elif etype 合作事件: print(f{time}: {detail[公司]}与{detail[合作伙伴]}达成合作{detail.get(合作内容, )}) elif etype 观点陈述: print(f{time}: {detail[人物]}表示{detail[内容]})运行这段代码你会得到一个清晰的事件时间线按时间排序的事件时间线 2023年第三季度: 人工智能芯片行业继续保持高速增长态势 2023年8月: 英伟达发布了H200芯片 2023年9月: AMD发布了MI300系列AI加速器 2023年9月: 李华认为AMD的入局将加剧AI芯片市场的竞争 2023年10月: 英特尔与微软达成合作共同开发下一代AI芯片 2023年11月: 华为发布了昇腾910B芯片 2023年11月: 徐直军透露该芯片已在多家国内云服务商部署 2023年12月: 谷歌发布了TPU v5芯片 2024年底: IDC预测全球AI芯片市场规模将达到800亿美元这个时间线清晰地展示了AI芯片行业在2023年下半年到2024年的发展脉络。你可以一眼看出行业的动态英伟达率先发布新品AMD紧随其后英特尔和微软强强联合华为聚焦国内市场谷歌专注推理场景最后还有市场机构的预测。4. 进阶应用构建知识图谱与自动化报告4.1 将抽取结果可视化结构化的数据最适合用图表来展示。我们可以把抽取到的实体和关系转换成知识图谱直观地展示行业格局。import networkx as nx import matplotlib.pyplot as plt # 创建一个知识图谱 G nx.Graph() # 添加节点实体 companies [英伟达, AMD, 英特尔, 微软, 华为, 谷歌] persons [黄仁勋, 李华, 徐直军] products [H200芯片, MI300系列AI加速器, 昇腾910B芯片, TPU v5芯片] for company in companies: G.add_node(company, typecompany, colorlightblue) for person in persons: G.add_node(person, typeperson, colorlightgreen) for product in products: G.add_node(product, typeproduct, colorlightcoral) # 添加边关系 # 产品发布关系 G.add_edge(英伟达, H200芯片, relation发布, time2023年8月) G.add_edge(AMD, MI300系列AI加速器, relation发布, time2023年9月) G.add_edge(华为, 昇腾910B芯片, relation发布, time2023年11月) G.add_edge(谷歌, TPU v5芯片, relation发布, time2023年12月) # 合作关系 G.add_edge(英特尔, 微软, relation合作, content共同开发AI芯片) # 人物职务关系 G.add_edge(黄仁勋, 英伟达, relation任职, positionCEO) G.add_edge(徐直军, 华为, relation任职, position轮值董事长) # 绘制知识图谱 plt.figure(figsize(12, 8)) pos nx.spring_layout(G, seed42) # 按类型设置节点颜色 node_colors [G.nodes[n][color] for n in G.nodes()] node_sizes [800 if G.nodes[n][type] company else 600 for n in G.nodes()] nx.draw_networkx_nodes(G, pos, node_colornode_colors, node_sizenode_sizes) nx.draw_networkx_edges(G, pos, width2, alpha0.5) nx.draw_networkx_labels(G, pos, font_size10) # 添加边的标签 edge_labels nx.get_edge_attributes(G, relation) nx.draw_networkx_edge_labels(G, pos, edge_labelsedge_labels, font_size8) plt.title(AI芯片行业知识图谱, fontsize16) plt.axis(off) plt.tight_layout() plt.show()这段代码会生成一个可视化的知识图谱你可以清楚地看到各个公司、产品、人物之间的关系。英伟达和它的H200芯片连在一起AMD和它的MI300系列连在一起英特尔和微软之间有合作连线等等。这种可视化方式比纯文字要直观得多。4.2 自动生成分析报告摘要有了结构化的信息我们还可以自动生成一份分析摘要节省写报告的时间。def generate_report_summary(entities, relations, events): 根据抽取的信息生成报告摘要 summary_parts [] # 行业概况 companies entities.get(公司, []) if companies: summary_parts.append(f本报告涉及{len(companies)}家主要公司{, .join(companies)}。) # 产品发布情况 product_releases [r for r in relations.get(产品发布, [])] if product_releases: summary_parts.append(主要产品发布情况) for release in product_releases: summary_parts.append(f - {release[时间]}{release[公司]}发布了{release[产品]}) # 合作动态 collaborations [r for r in relations.get(合作关系, [])] if collaborations: summary_parts.append(重要合作动态) for collab in collaborations: summary_parts.append(f - {collab[公司1]}与{collab[公司2]}达成合作共同{collab[合作内容]}) # 市场预测 predictions [r for r in relations.get(市场预测, [])] if predictions: summary_parts.append(市场预测) for pred in predictions: summary_parts.append(f - {pred[机构]}预测到{pred[时间]}{pred[预测内容]}) # 时间线摘要 time_events [] for event_type, event_list in events.items(): for event in event_list: if 时间 in event: time_events.append((event[时间], event_type, event)) if time_events: summary_parts.append(关键事件时间线) # 按时间排序简化处理 sorted_events sorted(time_events, keylambda x: x[0]) for time, etype, detail in sorted_events[:5]: # 只显示前5个 if etype 产品发布事件: summary_parts.append(f - {time}{detail[公司]}发布新品) return \n.join(summary_parts) # 生成并打印摘要 summary generate_report_summary(entity_result, relation_result, event_result) print( 自动生成的分析报告摘要 \n) print(summary)运行后你会得到一份结构清晰的摘要 自动生成的分析报告摘要 本报告涉及6家主要公司英伟达, AMD, 英特尔, 微软, 华为, 谷歌。 主要产品发布情况 - 2023年8月英伟达发布了H200芯片 - 2023年9月AMD发布了MI300系列AI加速器 - 2023年11月华为发布了昇腾910B芯片 - 2023年12月谷歌发布了TPU v5芯片 重要合作动态 - 英特尔与微软达成合作共同开发下一代AI芯片 市场预测 - IDC预测到2024年底全球AI芯片市场规模将达到800亿美元 关键事件时间线 - 2023年8月英伟达发布新品 - 2023年9月AMD发布新品 - 2023年11月华为发布新品 - 2023年12月谷歌发布新品这份摘要包含了所有关键信息而且格式规整可以直接用在你的分析报告里。想象一下如果每天要分析十几份研报这个工具能帮你节省多少时间。4.3 处理更复杂的金融文本在实际的金融分析中你遇到的文本可能更加复杂。比如研报中可能包含表格数据、专业术语、缩写等。RexUniNLU模型在这方面也有不错的表现。# 更复杂的金融文本示例 complex_report 苹果公司(AAPL)2023财年Q4财报显示营收为895亿美元同比下降1%。 CEO蒂姆·库克在电话会议中表示iPhone 15系列需求强劲特别是Pro机型。 同时公司宣布与台积电(TSM)达成新的芯片供应协议确保3nm工艺产能。 分析师张伟将苹果目标价从190美元上调至210美元维持买入评级。 摩根士丹利报告指出苹果在印度市场增长迅速Q3出货量同比增长50%。 # 定义金融领域特定的schema finance_schema { 财务数据: { 公司: None, 指标: None, # 如营收、利润 数值: None, 同比变化: None }, 分析师评级: { 分析师: None, 公司: None, 目标价: None, 评级: None, 调整方向: None # 上调/下调/维持 }, 供应链关系: { 客户公司: None, 供应商公司: None, 合作内容: None }, 市场表现: { 公司: None, 市场区域: None, 指标: None, 增长率: None } } # 执行抽取 finance_result pipe(inputcomplex_report, schemafinance_schema) print(金融文本分析结果) for category, items in finance_result.items(): if items: print(f\n{category}:) for item in items: print(f - {item})这个例子展示了如何针对金融领域的特定需求自定义抽取schema。你可以根据自己关心的信息类型灵活地定义需要抽取的内容。5. 实用技巧与注意事项5.1 提升抽取准确率的方法在实际使用中你可能会发现模型偶尔会漏掉一些信息或者识别不够准确。这里有几个小技巧可以帮助提升效果文本预处理很重要在把文本输入模型之前可以先做一些简单的清洗def preprocess_text(text): # 合并换行符 text text.replace(\n, ) # 去除多余空格 text .join(text.split()) # 处理常见缩写 text text.replace(Q1, 第一季度).replace(Q2, 第二季度) return text cleaned_text preprocess_text(research_report)调整schema的粒度如果发现某些信息抽取不全可以尝试调整schema的详细程度。比如把公司进一步细分为上市公司和非上市公司或者把产品细分为硬件产品和软件产品。分块处理长文本对于特别长的研报比如超过1000字可以考虑分成几部分处理然后再合并结果def process_long_text(text, chunk_size500): chunks [text[i:ichunk_size] for i in range(0, len(text), chunk_size)] all_results [] for chunk in chunks: result pipe(inputchunk, schemayour_schema) all_results.append(result) # 合并和去重结果 return merge_results(all_results)5.2 常见问题与解决方法在使用过程中你可能会遇到一些问题这里是一些常见的解决方法问题1模型识别不出某些专业术语解决方法在schema中提供一些示例或者先进行术语替换。比如把LLM替换为大语言模型把GPU替换为图形处理器。问题2抽取的关系不够准确解决方法检查文本中是否表述清晰。有时候金融文本会用比较隐晦的表达可以尝试先用规则方法进行简单处理再用模型抽取。问题3处理速度较慢解决方法对于批量处理可以考虑使用GPU加速。RexUniNLU支持GPU推理能显著提升处理速度。5.3 与其他工具的集成RexUniNLU可以很好地与其他数据分析工具集成构建完整的数据处理流水线# 示例与pandas集成批量处理多份研报 import pandas as pd # 假设有一个包含多份研报的DataFrame reports_df pd.DataFrame({ report_id: [1, 2, 3], content: [report1, report2, report3], source: [券商A, 券商B, 券商C] }) # 批量处理函数 def batch_extract(reports, schema): results [] for content in reports: try: result pipe(inputcontent, schemaschema) results.append(result) except Exception as e: print(f处理失败{e}) results.append({}) return results # 执行批量抽取 all_results batch_extract(reports_df[content].tolist(), entity_schema) # 将结果添加到DataFrame reports_df[entities] all_results # 保存结果 reports_df.to_csv(extracted_reports.csv, indexFalse)这样你就可以一次性处理大量研报然后把结果保存下来供后续分析使用。6. 总结通过今天的实战演示你应该已经看到了RexUniNLU在金融文本分析中的强大能力。从快速部署到实际应用整个过程并不复杂但带来的效率提升是实实在在的。让我简单回顾一下重点首先部署RexUniNLU非常简单一个Docker命令就能搞定。这意味着你不需要担心复杂的环境配置可以快速开始使用。其次这个模型的零样本学习能力很实用。你不需要准备大量的标注数据它已经具备了基本的文本理解能力可以直接用于金融研报分析。最重要的是它能自动化完成很多繁琐的工作。实体识别、关系抽取、事件提取、时间线构建这些原本需要人工逐字阅读的工作现在都可以交给模型自动完成。在实际工作中你可以把这个工具用在很多地方每日研报摘要生成行业动态监控竞品分析投资机会挖掘风险事件预警当然任何工具都不是完美的。RexUniNLU在处理特别专业的金融术语时可能还需要一些调整和优化。但作为开源工具它已经提供了一个很好的起点。我建议你可以先从一些简单的研报开始尝试熟悉基本操作后再逐步应用到更复杂的场景。记住技术工具的价值在于辅助人类而不是完全替代人类。模型提取的信息最终还需要你的专业判断和分析。希望这个实战案例能给你带来启发。金融科技的世界正在快速发展掌握这些AI工具能让你在数据分析工作中如虎添翼。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关文章:

RexUniNLU开源NLU模型实战:金融研报关系抽取+事件时间线自动生成案例

RexUniNLU开源NLU模型实战:金融研报关系抽取事件时间线自动生成案例 1. 引言:当研报分析遇上智能信息抽取 想象一下这个场景:作为一名金融分析师,你刚收到一份长达50页的行业深度研究报告。你需要从中找出所有提到的公司、它们之…...

Python 3.12 Special Attribute - 08 - __module__

Python 3.12 Special Attribute - __module____module__ 是 Python 中一个重要的内置特殊属性,它存储了定义 类、函数、方法 的模块名称(字符串)。这个属性在序列化(如 pickle)、动态导入、调试以及框架设计中扮演着…...

Geo-SAM:地理空间AI图像分割的技术实现与应用实践

Geo-SAM:地理空间AI图像分割的技术实现与应用实践 【免费下载链接】Geo-SAM A QGIS plugin tool using Segment Anything Model (SAM) to accelerate segmenting or delineating landforms in geospatial raster images. 项目地址: https://gitcode.com/gh_mirror…...

告别卡顿!在Vue项目中优化HLS/FLV播放的5个实战技巧与避坑指南

告别卡顿!在Vue项目中优化HLS/FLV播放的5个实战技巧与避坑指南 视频播放卡顿、首屏加载缓慢、内存泄漏——这些看似小问题,却能让用户体验断崖式下跌。当你的Vue项目从demo走向生产环境,面对高并发访问和复杂网络环境时,基础播放功…...

VMware Workstation Pro 25H2u1 Unlocker OEM BIOS 2.7 for Windows Linux

VMware Workstation Pro 25H2u1 Unlocker & OEM BIOS 2.7 for Windows & Linux 在 Windows 和 Linux 上运行 macOS Tahoe 请访问原文链接:https://sysin.org/blog/vmware-workstation-unlocker/ 查看最新版。原创作品,转载请保留出处。 作者主…...

PyCharm新项目避坑指南:如何为你的机器学习项目指定正确的Python3.10+CUDA12.1解释器

PyCharm新项目避坑指南:如何为你的机器学习项目指定正确的Python3.10CUDA12.1解释器 当你准备在PyCharm中启动一个新的机器学习项目时,最关键的步骤之一就是正确配置Python解释器。这不仅关系到代码能否正常运行,更直接影响GPU加速是否可用。…...

VMware Workstation Pro 25H2u1 发布 - 领先的免费桌面虚拟化软件

VMware Workstation Pro 25H2u1 for Windows & Linux - 领先的免费桌面虚拟化软件 基于 x86 的 Windows、Linux 桌面虚拟化软件 请访问原文链接:https://sysin.org/blog/vmware-workstation/ 查看最新版。原创作品,转载请保留出处。 作者主页&…...

ROS 2传感器数据融合入门:手把手教你用Python同步处理摄像头图像和激光雷达点云

ROS 2多传感器数据融合实战:基于Python的视觉-激光时空同步技术 在移动机器人感知系统开发中,摄像头和激光雷达的组合堪称经典配置——前者提供丰富的纹理和颜色信息,后者则能精确测量物体距离。但当你尝试同时使用这两种传感器时&#xff0c…...

MySQL优化全攻略:索引、SQL与分库分表的最佳实践鸵

一、各自优势和对比 这是检索出来的数据,据说是根据第三方评测与企业数据,三款产品在代码生成质量上各有侧重: 产品 语言优势 场景亮点 核心差异 百度 Comate C核心代码质量第一;Python首生成率达92.3% SQL生成准确率提升35%&…...

EMQX 在 K8s 环境部署 + 数据持久化 完整实操笔记

一、核心目标 在 K8s 集群中部署 EMQX 5.0.23,实现: Dashboard 管理员密码持久化(重启 Pod 不恢复默认); MQTT 消息持久化(保留消息重启后可读取); 生产级架构:Headless 服务(内部通信)+ NodePort 服务(外部访问)。 二、整体流程 & 问题解决(从 0 到生产) …...

开源可部署StructBERT模型:低成本GPU方案实现企业级语义匹配能力(<2GB显存)

开源可部署StructBERT模型&#xff1a;低成本GPU方案实现企业级语义匹配能力&#xff08;<2GB显存&#xff09; 1. 项目简介与核心价值 StructBERT中文句子相似度分析工具是一个基于阿里达摩院开源StructBERT大规模预训练模型开发的本地化语义匹配解决方案。这个工具专门针…...

Phi-4-mini-reasoning实操手册:WebShell日志分析技巧与常见报错解决方案

Phi-4-mini-reasoning实操手册&#xff1a;WebShell日志分析技巧与常见报错解决方案 1. 模型简介与部署验证 Phi-4-mini-reasoning是一个基于合成数据构建的轻量级开源模型&#xff0c;专注于高质量、密集推理的数据处理能力。作为Phi-4模型家族的一员&#xff0c;它特别强化…...

MusePublic Art Studio实战案例:品牌视觉升级项目中AI辅助设计流程

MusePublic Art Studio实战案例&#xff1a;品牌视觉升级项目中AI辅助设计流程 1. 项目背景与挑战 最近我们接手了一个品牌视觉升级项目&#xff0c;客户是一家新兴的咖啡连锁品牌&#xff0c;需要全面更新品牌视觉系统。传统设计流程中&#xff0c;从概念构思到最终定稿往往…...

K8s入门到实战

一&#xff0c;简介 1&#xff0c;k8s概述 容器管理适用于集群部署&#xff0c;自动化部署 k8s利于应用扩展 k8s目标实施让容器化应用更加简洁和高效 2&#xff0c;k8s特性 自动装箱&#xff1a;基于容器对应用运行环境的资源配值要求自动部署应用 自我修复&#xff1a;当…...

某型高速可回收模块化靶标无人机总体设计方案

1. 总体设计1.1 项目概述与设计目标本方案面向新一代防空武器系统测试、训练需求的高性能靶标无人机。其核心任务是逼真模拟典型高速突防空中威胁&#xff08;如巡航导弹、战斗轰炸机等&#xff09;的飞行特性、电磁特征与机动模式&#xff0c;为防空部队提供高价值、高强度、低…...

PlugY 无限仓库:突破暗黑2单机局限的全方位增强完全指南

PlugY 无限仓库&#xff1a;突破暗黑2单机局限的全方位增强完全指南 问题导入&#xff1a;暗黑2单机玩家的三大核心痛点 暗黑破坏神2作为ARPG游戏的里程碑之作&#xff0c;其单机模式长期存在着三个难以逾越的障碍。首先是储物空间危机——原版3x10格的箱子容量在面对海量装备时…...

PlugY:暗黑破坏神2单机体验增强的技术解决方案

PlugY&#xff1a;暗黑破坏神2单机体验增强的技术解决方案 一、价值定位&#xff1a;PlugY的技术革新与核心优势 跨角色资源池的实现机制 PlugY通过创新的共享存储架构&#xff0c;突破了原版游戏角色间的资源壁垒。该系统采用分布式存储模型&#xff0c;将物品数据与角色数据分…...

Apache APISIX CORS 插件来处理跨域问题 |allow_credential: true配置约束

文章目录 Apache APISIX CORS 插件深度排障:`allow_origins_by_regex` + `allow_credential` 的隐蔽陷阱 一、背景 二、问题复现 配置 测试 预期结果 实际结果 三、深入理解 `allow_credential` 参数 3.1 一句话定义 3.2 它不控制什么 3.3 工作机制:前后端的"双向握手&q…...

从Flannel迁移到Calico:Kubernetes网络插件实战切换指南

1. 为什么需要从Flannel迁移到Calico&#xff1f; 很多刚开始接触Kubernetes的朋友都会选择Flannel作为默认网络插件&#xff0c;毕竟它简单易用&#xff0c;开箱即配。但当你需要更精细的网络控制时&#xff0c;Flannel就显得力不从心了。我去年负责的一个电商项目就遇到了这个…...

别再只写ChatGPT提示词了!用LangChain和AutoGen给AI装上‘手和脚’的保姆级教程

从提示词到智能体&#xff1a;用LangChain和AutoGen构建能动手的AI助手 想象一下&#xff0c;你正在开发一个电商客服系统。传统的AI客服只能回答"退货政策是什么&#xff1f;"这样的问题&#xff0c;而真正的业务需求是&#xff1a;"帮我处理订单12345的退货&a…...

1 2.1 使用“记事本”编辑文本文档

&#x1f525;个人主页&#xff1a;杨利杰YJlio❄️个人专栏&#xff1a;《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》 《那些年未解决的Windows疑难杂症》&#x1f31f; 让复杂的事情更…...

⾃动化测试常⽤函数(下)

等待通常代码执⾏的速度⽐⻚⾯渲染的速度要快&#xff0c;如果避免因为渲染过慢出现的⾃动化误报的问题呢&#xff1f;可 以使⽤selenium中提供的三种等待⽅法&#xff1a;强制等待Thread.sleep&#xff08;&#xff09;优点&#xff1a;使⽤简单&#xff0c;调试的时候⽐较有效…...

Phi-4-reasoning-vision-15B效果展示:手机短信截图→关键信息(时间/金额/对象)精准抽取

Phi-4-reasoning-vision-15B效果展示&#xff1a;手机短信截图→关键信息&#xff08;时间/金额/对象&#xff09;精准抽取 1. 模型能力概览 Phi-4-reasoning-vision-15B是微软推出的视觉多模态推理模型&#xff0c;专门针对图像理解和信息提取任务进行了优化。这个模型最令人…...

LVGL实战解析:Display、Screen与Layer的协同与层级管理

1. Display&#xff1a;物理显示接口的实战理解 第一次接触LVGL的Display概念时&#xff0c;我误以为它和电脑显示器是同一个东西。实际在嵌入式开发中&#xff0c;Display更像是一个抽象的数据通道——它连接着LVGL的图形系统和物理显示设备。举个例子&#xff0c;我在STM32F7…...

Android16进阶之SoundPool.setVolume调用流程与实战(二百七十九)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》作者 博主新书推荐&#xff1a;《Android系统多媒体进阶实战》&#x1f680; Android Audio工程师专栏地址&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; Android多媒体专栏地址&a…...

Polycide vs. Salicide vs. Silicide: 工艺选择与电阻优化的深度解析

1. 半导体工艺中的硅化物技术&#xff1a;从基础到实战 在芯片制造过程中&#xff0c;金属硅化物技术就像电路中的"高速公路收费站"&#xff0c;直接影响着电流的通行效率。想象一下&#xff0c;当你开车经过收费站时&#xff0c;如果收费窗口太少或者收费员动作太慢…...

Android16进阶之SoundPool.play调用流程与实战(二百七十八)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》作者 博主新书推荐&#xff1a;《Android系统多媒体进阶实战》&#x1f680; Android Audio工程师专栏地址&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; Android多媒体专栏地址&a…...

RevokeMsgPatcher终极指南:Windows平台消息防撤回与多开完整解决方案

RevokeMsgPatcher终极指南&#xff1a;Windows平台消息防撤回与多开完整解决方案 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: http…...

倚天剑术40--内置OFD播放器

随着信创化的推进OFD格式逐步走入了大家的视线&#xff0c;比如说发票下载的时候&#xff0c;总会有个OFD的选项&#xff0c;而且有的时候政府的公文也会用这种格式发放。在Windws平台下&#xff0c;WPS直接就能打开OFD格式文件&#xff0c;用起来还是比较方便的&#xff0c;但…...

【PCIe 验证每日学习・Day29】PCIe 链路训练与 LTSSM 状态机全解析

大家好&#xff0c;今天我们进入 PCIe 最核心、最基础&#xff0c;同时也是所有链路问题根源的模块&#xff1a;LTSSM 链路训练状态机。内容承接此前电源管理、虚拟化、中断等知识&#xff0c;从 “上电链路建立” 到 “异常恢复” 完整拆解&#xff0c;所有描述严格遵循 PCIe …...