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

变相提高大模型上下文长度-RAG文档压缩-2.带早停机制的map-refine

我试过用map-refine方法来精炼上下文,由于它是线性的,运行时间随着文档数量线性增长。所以可以考虑通过判断上下文是否可以满足QA来提前结束过程。

import os
import json
from langchain_core.documents import Documentdata = []
file_path = './data/data_>=10.json'
with open(file_path) as f:for line in f:a_record = json.loads(line)data.append(a_record)print(len(data))data_indice = 1
a_query = data[data_indice]['query']
a_docs = data[data_indice]['pos']
a_docs = [Document(item) for item in a_docs]
50

Map-Refine 附加早停机制

Map 阶段

import asyncio
from pydantic import BaseModel, Field
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import PydanticOutputParser
from langchain_core.prompts import PromptTemplate, ChatPromptTemplate
from langchain.output_parsers import OutputFixingParser# ===== map =====class MapSummary(BaseModel):reasoning: str = Field(description="关于问题和本内容之间关联性的思考")summary: str = Field(description="对文本中与问题相关片段的提取,直接输出为str")map_parser = PydanticOutputParser(pydantic_object=MapSummary)map_prompt = ChatPromptTemplate.from_messages([# role, message("system", "你是一名专业的内容提取和总结专家。"),("human", ("请清晰简明地总结以下文本以回答问题。\n\n"  "在总结时,请注意以下几点:\n" "- 你的任务是总结问题相关的文本,而不是回答问题。" "- 包含关键事件、重要事实和核心信息。\n"  "- 省略不必要的细节。\n\n"  "按以下格式要求输出:\n{format_instructions}\n\n""[问题-开始]:\n{query}\n[问题-结束]\n\n""[需要总结的文本-开始]:\n{context}\n[需要总结的文本-结束]\n" )),]
)map_prompt = map_prompt.partial(format_instructions=map_parser.get_format_instructions())llm = ChatOpenAI(base_url='http://localhost:5551/v1',api_key='EMPTY',model_name='Qwen2.5-7B-Instruct',temperature=0.5,
)map_chain = map_prompt | llm | map_parser
tasks = [map_chain.ainvoke({"query":a_query,"context":doc.page_content,})for doc in a_docs
]map_results = await asyncio.gather(*tasks)
map_results
[MapSummary(reasoning='文本主要介绍了90版本阿修罗武器的排行,提到了四把武器的特点和排名依据。', summary='荒古排名第一,理由是其技能攻击力和魔能提升效果;妖刀村正排名第二,因其无视和额外黄字属性;暗影蔽日排名第三,虽然所有攻击力亮眼但需注意堆属性的搭配;圣剑排名第四,适合当前版本的天域套装备。'),MapSummary(reasoning='文本主要讨论了90版本阿修罗的武器排行,提到了支点、别云和天丛云这三把武器的相关信息。', summary='支点、别云和天丛云是90版本阿修罗的优秀武器,支点适合光强修罗,别云有高黄字但存在黄字冲突问题,天丛云则有27白字且适合一觉cd换装。'),MapSummary(reasoning='文本主要描述了90版本阿修罗武器的排行情况,但并未直接提及名刀32和90版本的具体排行情况,因此需要进一步筛选相关信息。', summary='名刀32和七支刀在描述中被提及,但具体排名信息未给出。'),MapSummary(reasoning='文本主要讨论了90版本阿修罗武器的排行,提到了三把武器的特点和优势,与问题相关性较强,可以直接提取关键信息作为总结。', summary='90版本阿修罗武器排行:1.荒古太(未升级和升级后的技能攻击力及获取方式);2.妖刀村正(90版本新武器,无视和额外黄字优势);3.暗影蔽日(所有攻击力高,搭配需注意)。'),MapSummary(reasoning='文本主要讨论了90版本阿修罗的主流武器测试排名,特别是针对吞噬魔和破锁血马蹄卡的测试结果。', summary='90版本阿修罗主流武器测试排名:吞噬魔-支点>开魔能荒古>妖刀传奇;破锁血马蹄卡-妖刀不适合作为破锁血武器。'),MapSummary(reasoning='文本主要讨论了90版本阿修罗武器在20人本的表现,提到了妖刀、开魔能荒古、圣剑等武器的排名情况,以及影响排名的因素。', summary='20人本妖刀>开魔能荒古>圣剑=支点=避日,圣剑攻击力受自身属强影响,荒古属性攻击选最高值。'),MapSummary(reasoning='文本内容与90版本阿修罗武器排行无关,为避免误导,应排除。', summary=''),MapSummary(reasoning='文本主要讨论了90版本DNF游戏中阿修罗武器的排行,特别是前10名的排名情况,与问题相关度高。', summary='90版本DNF修罗武器排行榜:10.无影剑,荒古太刀排名第一。'),MapSummary(reasoning='文本主要介绍了90版本阿修罗武器的排行及特点,与问题相关性较强,但未直接提到排行结果。', summary='文本介绍了90版本阿修罗武器的排行及特点,如七支刀、名刀、天丛云等,但未直接给出具体排行结果。'),MapSummary(reasoning='文本主要介绍了90版本阿修罗武器的排行,提到了别云、支点和圣剑这三种武器的特点和适用情况。问题询问90版本阿修罗武器排行,因此这些信息与问题直接相关。', summary='别云武器适合搭配50黄字装备,支点适合幽魂套和光强修罗,圣剑100属强适合全属强套装,但释放速度慢影响手感。'),MapSummary(reasoning='文本主要讨论了90版本阿修罗武器的排行,提到了暗影蔽日和妖刀村正的优缺点。', summary='90版本阿修罗武器排行,暗影蔽日和妖刀村正表现突出,分别适用于幽魂流光和未升级的荒古。')]

Refine 阶段

一开始的早停只有两个选项:内容不完整(继续)和内容完整(早停)。但有问题,例如枚举类问题,你可以拿部分文档来回答问题,也可以那更多文档来提高QA效果,所以增加第三选项,可以继续完善。这个选项和内容不完整没有什么根本的不同,都是某种意义上的内容不完整。

class RefineSummary(BaseModel):query_context_reasoning: str = Field(description="关于问题、先前内容总结、新内容之间联系的思考")refined_summary: str = Field(description="整合局部内容总结的全局总结")summary_sufficiency_reasoning: str = Field(description="关于当前总结是否足够回答问题(是否提供了所有必要的细节)的思考,此外也需要判断是否可以再扩充新文本以获得更好的回答效果")summary_sufficiency_score: int = Field(description="用100分制表示利用当前总结回答问题的效果预期分数")next_action: str = Field(description="决定下一个动作,从以下选项中选一个:内容不完整, 内容完整, 内容可继续完善")refine_parser = PydanticOutputParser(pydantic_object=RefineSummary)refine_prompt = ChatPromptTemplate.from_messages([# role, message("system", "你是一名专业的摘要专家。你的任务是生成一个最终的内容总结。"),("human", ("我提供你一份当前的总结,和一份新文本,你需要结合两者,精炼出一份新的总结,以作为参考材料回答问题。\n\n""在总结时,请注意以下几点:\n" "- 你的任务是总结问题相关的文本,而不是回答问题。" "- 包含关键事件、重要事实和核心信息。\n"  "- 省略不必要的细节。\n"  "- 去除重复冗余内容,使语言更加简洁和凝练。\n\n""按以下格式要求输出:\n{format_instructions}\n\n""[问题-开始]:\n{query}\n[问题-结束]\n\n""[当前内容总结-开始]:\n{previous_summary}\n[当前内容总结-结束]\n\n""[新文本-开始]:\n{current_summary}\n[新文本-结束]\n"  )),]
)refine_prompt = refine_prompt.partial(format_instructions=refine_parser.get_format_instructions())llm = ChatOpenAI(base_url='http://localhost:5551/v1',api_key='EMPTY',model_name='Qwen2.5-7B-Instruct',temperature=0.2,
)refine_chain = refine_prompt | llm | refine_parser
refine_prompt.pretty_print()
================================[1m System Message [0m================================你是一名专业的摘要专家。你的任务是生成一个最终的内容总结。================================[1m Human Message [0m=================================我提供你一份当前的总结,和一份新文本,你需要结合两者,精炼出一份新的总结,以作为参考材料回答问题。在总结时,请注意以下几点:
- 你的任务是总结问题相关的文本,而不是回答问题。- 包含关键事件、重要事实和核心信息。
- 省略不必要的细节。
- 去除重复冗余内容,使语言更加简洁和凝练。按以下格式要求输出:
[33;1m[1;3m{format_instructions}[0m[问题-开始]:
[33;1m[1;3m{query}[0m
[问题-结束][当前内容总结-开始]:
[33;1m[1;3m{previous_summary}[0m
[当前内容总结-结束][新文本-开始]:
[33;1m[1;3m{current_summary}[0m
[新文本-结束]
refine_result_saves = []for indice, item in enumerate(map_results):if indice == 0:previous_summary = item.summaryelse:refine_result = refine_chain.invoke({"query":a_query,"previous_summary":previous_summary,"current_summary":item.summary,})refine_result_saves.append(refine_result)previous_summary = refine_result.refined_summaryprint(refine_result)print('='*20)
====================
query_context_reasoning='新文本提供了90版本阿修罗的另外三种优秀武器,分别是支点、别云和天丛云,补充了当前总结中未提及的武器信息。' refined_summary='90版本阿修罗的优秀武器包括荒古(排名第一)、妖刀村正(排名第二)、暗影蔽日(排名第三)、圣剑(排名第四)、支点、别云和天丛云。其中,支点适合光强修罗,别云有高黄字但存在黄字冲突问题,天丛云则有27白字且适合一觉cd换装。' summary_sufficiency_reasoning='当前总结已经涵盖了90版本阿修罗的大部分优秀武器,但新文本提供了更多细节,特别是支点、别云和天丛云的具体适用情况,这些信息对于回答问题是有帮助的。' summary_sufficiency_score=85 next_action='内容可继续完善'
====================
query_context_reasoning='新文本补充了90版本阿修罗的优秀武器中未提及的名刀32和七支刀,但未给出具体排名。当前总结中已经包含了其他排名较高的武器,因此需要更新总结以包含新文本中的信息。' refined_summary='90版本阿修罗的优秀武器包括荒古(排名第一)、妖刀村正(排名第二)、暗影蔽日(排名第三)、圣剑(排名第四)、支点、别云、天丛云、名刀32和七支刀。其中,支点适合光强修罗,别云有高黄字但存在黄字冲突问题,天丛云则有27白字且适合一觉cd换装。' summary_sufficiency_reasoning='当前总结已经包含了大部分排名较高的90版本阿修罗武器,但未提及名刀32和七支刀的具体排名。新文本提供了这两款武器的信息,因此需要更新总结。' summary_sufficiency_score=85 next_action='内容可继续完善'
====================
query_context_reasoning='新文本提供了荒古太的具体信息和妖刀村正的详细描述,补充了当前总结中未提及的内容。' refined_summary='90版本阿修罗的优秀武器排名为:1. 荒古太(未升级和升级后的技能攻击力及获取方式);2. 妖刀村正(90版本新武器,无视和额外黄字优势);3. 暗影蔽日(所有攻击力高,搭配需注意)。支点适合光强修罗,别云有高黄字但存在黄字冲突问题,天丛云则有27白字且适合一觉cd换装。' summary_sufficiency_reasoning='当前总结已经涵盖了90版本阿修罗的主要武器排行,但新文本提供了更详细的武器信息,特别是荒古太和妖刀村正的具体描述,可以进一步丰富总结内容。' summary_sufficiency_score=85 next_action='内容可继续完善'
====================
query_context_reasoning='新文本提供了90版本阿修罗武器的主流测试排名,补充了当前总结中未提及的武器排名信息。' refined_summary='90版本阿修罗的优秀武器排名为:1. 吞噬魔-支点;2. 开魔能荒古;3. 妖刀村正;4. 暗影蔽日;5. 天丛云。支点适合光强修罗,别云有高黄字但存在黄字冲突问题,妖刀村正适合破锁血武器。' summary_sufficiency_reasoning='当前总结包含了90版本阿修罗的主要武器排名和部分武器的详细信息,但未提及妖刀村正适合破锁血武器的信息,需要补充。' summary_sufficiency_score=85 next_action='内容可继续完善'
====================
query_context_reasoning='新文本提供了20人本环境下妖刀村正的排名和属性攻击规则,需要结合当前内容总结进行整合。' refined_summary='90版本阿修罗的优秀武器排名为:1. 吞噬魔-支点;2. 开魔能荒古;3. 妖刀村正;4. 暗影蔽日;5. 天丛云。支点适合光强修罗,别云有高黄字但存在黄字冲突问题,妖刀村正适合破锁血武器。20人本环境下,妖刀村正>开魔能荒古>圣剑=支点=避日,圣剑攻击力受自身属强影响,荒古属性攻击选最高值。' summary_sufficiency_reasoning='当前总结已经涵盖了90版本阿修罗的优秀武器排名和适用情况,但未完全包含20人本环境下的具体排名和属性规则,需要进一步完善。' summary_sufficiency_score=85 next_action='内容可继续完善'
====================
query_context_reasoning='新文本为空,无需补充。当前总结已经涵盖了90版本阿修罗武器的排名和适用情况。' refined_summary='90版本阿修罗的优秀武器排名为:1. 吞噬魔-支点;2. 开魔能荒古;3. 妖刀村正;4. 暗影蔽日;5. 天丛云。支点适合光强修罗,妖刀村正适合破锁血武器。20人本环境下,妖刀村正>开魔能荒古>圣剑=支点=避日,圣剑攻击力受自身属强影响,荒古属性攻击选最高值。' summary_sufficiency_reasoning='当前总结已经涵盖了90版本阿修罗武器的排名和适用情况,信息较为全面。' summary_sufficiency_score=95 next_action='内容完整'
====================
query_context_reasoning='新文本提供了90版本DNF修罗武器排行榜的最新信息,但与当前内容总结中的具体排名和详细分析有所差异,需要结合两者进行整合。' refined_summary='90版本阿修罗的优秀武器排名为:1. 吞噬魔-支点;2. 开魔能荒古;3. 无影剑;4. 妖刀村正;5. 暗影蔽日;6. 天丛云。支点适合光强修罗,妖刀村正适合破锁血武器。20人本环境下,妖刀村正>开魔能荒古>圣剑=支点=避日,圣剑攻击力受自身属强影响,荒古属性攻击选最高值。' summary_sufficiency_reasoning='当前总结提供了详细的武器排名和适用情况,但未提及无影剑的具体排名,需要补充。' summary_sufficiency_score=85 next_action='内容可继续完善'
====================
query_context_reasoning='新文本补充了90版本阿修罗武器排行的相关信息,但未直接给出具体排行结果。当前内容总结已经包含了详细的排行结果,因此需要结合新文本进一步完善。' refined_summary='90版本阿修罗的优秀武器排名为:1. 吞噬魔-支点;2. 开魔能荒古;3. 无影剑;4. 妖刀村正;5. 暗影蔽日;6. 天丛云。支点适合光强修罗,妖刀村正适合破锁血武器。20人本环境下,妖刀村正>开魔能荒古>圣剑=支点=避日,圣剑攻击力受自身属强影响,荒古属性攻击选最高值。' summary_sufficiency_reasoning='当前总结已经包含了详细的排行结果和武器特点,但新文本提供了更多武器的信息,可以进一步完善总结。' summary_sufficiency_score=85 next_action='内容可继续完善'
====================
query_context_reasoning='新文本提供了关于别云武器和支点的额外信息,补充了当前内容总结中未提及的装备搭配和属性影响。' refined_summary='90版本阿修罗的优秀武器排名为:1. 吞噬魔-支点;2. 开魔能荒古;3. 无影剑;4. 妖刀村正;5. 暗影蔽日;6. 天丛云。支点适合光强修罗,妖刀村正适合破锁血武器。20人本环境下,妖刀村正>开魔能荒古>圣剑=支点=避日,圣剑攻击力受自身属强影响,荒古属性攻击选最高值。别云武器适合搭配50黄字装备,支点适合幽魂套和光强修罗,圣剑100属强适合全属强套装,但释放速度慢影响手感。' summary_sufficiency_reasoning='当前总结已经涵盖了主要的武器排名和属性,但补充了关于别云武器和支点的额外信息,使得总结更加全面。' summary_sufficiency_score=95 next_action='内容完整'
====================
query_context_reasoning='新文本补充了90版本阿修罗武器排行中的两个重要武器,暗影蔽日和妖刀村正,并指出了它们的适用流派。' refined_summary='90版本阿修罗的优秀武器排名为:1. 吞噬魔-支点;2. 开魔能荒古;3. 无影剑;4. 妖刀村正;5. 暗影蔽日;6. 天丛云。支点适合光强修罗,妖刀村正适合破锁血武器。20人本环境下,妖刀村正>开魔能荒古>圣剑=支点=避日。暗影蔽日适用于幽魂流光。' summary_sufficiency_reasoning='当前总结涵盖了90版本阿修罗的主要武器排名及其适用性,但未提及所有武器的详细对比,可以进一步完善。' summary_sufficiency_score=85 next_action='内容可继续完善'
====================
score_threshold = 95
refine_result_saves = []for indice, item in enumerate(map_results):if indice == 0:previous_summary = item.summaryelse:refine_result = refine_chain.invoke({"query":a_query,"previous_summary":previous_summary,"current_summary":item.summary,})refine_result_saves.append(refine_result)previous_summary = refine_result.refined_summary# 根据分数早停if refine_result.summary_sufficiency_score > score_threshold:break# 根据大模型的判断早停if refine_result.next_action == '内容完整':breakprint(refine_result)print('='*20)

相关文章:

变相提高大模型上下文长度-RAG文档压缩-2.带早停机制的map-refine

我试过用map-refine方法来精炼上下文,由于它是线性的,运行时间随着文档数量线性增长。所以可以考虑通过判断上下文是否可以满足QA来提前结束过程。 import os import json from langchain_core.documents import Documentdata [] file_path ./data/da…...

C++ 虚表(Vtable)和虚基表(Vbtale)与 虚函数 和 虚继承

C的虚表(Vtable)和虚基表(Vbtale)是与 虚函数 和 虚继承 密切相关的概念。它们都是用于支持多态(特别是动态绑定)和虚拟继承的机制,但它们的作用和实现方式有所不同。我们将逐步探讨虚表、虚基表…...

2021年全国研究生数学建模竞赛华为杯E题信号干扰下的超宽带(UWB)精确定位问题求解全过程文档及程序

2021年全国研究生数学建模竞赛华为杯 E题 信号干扰下的超宽带(UWB)精确定位问题 原题再现: 一、背景   UWB(Ultra-Wideband)技术也被称之为“超宽带”,又称之为脉冲无线电技术。这是一种无需任何载波,通过发送纳秒…...

SpringCould+vue3项目的后台用户管理的CURD【Taurus教育平台】

文章目录 一.SpringCouldvue3项目的后台用户管理的CURD【Taurus教育平台】 1.1 背景 二.用户列表(分页查询) 2.1 前端Vue3 (Vue3-Element-Admin)2.2 后端SpringCould 处理 三. 用户信息删除 3.1 前端Vue3 (Vue3-Eleme…...

草图绘制技巧

1、点击菜单栏文件–》新建–》左下角高级新手切换–》零件; 2、槽口:直槽口,中心点槽口,三点源槽口,中心点圆弧槽口; 3、草图的约束:需要按住ctrl键,选中两个草图,然后…...

机器学习-1:线性回归

常用的线性回归模型主要有以下这些 简单线性回归多元线性回归多项式回归岭回归套索回归弹性网络回归逐步回归 一.简单的一元线性回归 1.导入必备的库 #导入必备的库 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection …...

android 的抓包工具

charles 抓包工具 官网地址 nullCharles Web Debugging Proxy - Official Sitehttps://www.charlesproxy.com/使用手册一定记得看官网 SSL Certificates • Charles Web Debugging Proxy http请求: 1.启动代理: 2.设置设备端口 3.手机连接当前代理 …...

AJAX 与 ASP 的深入探讨

AJAX 与 ASP 的深入探讨 引言 随着互联网技术的飞速发展,Web应用程序的交互性和性能要求越来越高。AJAX(Asynchronous JavaScript and XML)和ASP(Active Server Pages)作为两种重要的Web开发技术,在提高Web应用程序性能和用户体验方面发挥着重要作用。本文将深入探讨AJ…...

Qt开发①Qt的概念+发展+优点+应用+使用

目录 1. Qt的概念和发展 1.1 Qt的概念 1.2 Qt 的发展史: 1.3 Qt 的版本 2. Qt 的优点和应用 2.1 Qt 的优点: 2.2 Qt 的应用场景 2.3 Qt 的应用案例 3. 搭建 Qt 开发环境 3.1 Qt 的开发工具 3.2 Qt SDK 的下载和安装 3.3 Qt 环境变量配置和使…...

函数调用过程的详细解析

目录 一、C语言示例代码 二、汇编代码分步解析(x86架构) 1. 调用前:参数压栈(从右向左) 2. 进入被调函数:保存栈帧 3. 执行函数逻辑 4. 恢复栈帧并返回 三、内存布局图示(调用过程中栈的变…...

教师管理系统在职校中的应用与优势

随着信息技术的不断发展,教师管理系统在职校中的应用越来越广泛。这一系统通过集成教师信息、教学资源和日程安排等功能,为职校管理带来了诸多便利和优势。 教师管理系统能够显著提高管理效率。传统的人工管理方式往往繁琐且易出错,而教师管理…...

【系统架构设计师】虚拟机体系结构风格

目录 1. 说明2. 解释器体系结构风格3. 规则系统体系结构风格4. 例题4.1 例题1 1. 说明 1.p263。2.虚拟机体系结构风格的基本思想是人为构建一个运行环境,在这个环境之上,可以解析与运行自定义的一些语言,这样来增加架构的灵活性。3.虚拟机体…...

UE C++ UObject 功能的初步总结

一. Uboject的 1.垃圾回收:上篇文章介绍过 2.引用更新 1. 反射:之前的文章描述过的CDO,还有就是C与蓝图相互调用UFUCTION,UPROPERTY 2.序列化:编辑器的资产序列化到磁盘上,变为.uasset等格式的资产文件。所有的东西存在编辑器里&#xff…...

Django 美化使用ModelForm的输入框

在初次使用ModelForm时&#xff0c;我的html文件代码如下&#xff0c;主要内容是显示一个卡片式表单&#xff0c;通过循环遍历 form 对象动态生成表单字段 {% extends layout.html %}{% block content %} <div class"container"><div class"c1"&g…...

SQL在云计算中的新角色:重新定义数据分析

文章目录 1. 云计算与数据分析的融合2. SQL在云计算中的新角色3. 分布式SQL查询引擎4. SQL-on-Hadoop解决方案5. SQL与其他数据分析工具的集成6. 实时数据分析与SQL7. SQL在云数据仓库中的角色8. 安全性与隐私保护9. SQL的未来展望《SQL数据分析实战&#xff08;第2版&#xff…...

使用Redis实现分布式锁,基于原本单体系统进行业务改造

一、单体系统下&#xff0c;使用锁机制实现秒杀功能&#xff0c;并限制一人一单功能 1.流程图&#xff1a; 2.代码实现&#xff1a; Service public class VoucherOrderServiceImpl extends ServiceImpl<VoucherOrderMapper, VoucherOrder> implements IVoucherOrderSe…...

用Python实现线性回归:从数学原理到代码实战

一、前言&#xff1a;为什么线性回归是AI必修课&#xff1f; 作为机器学习领域的"Hello World"&#xff0c;线性回归算法具有三大核心价值&#xff1a; 1️⃣ 理解监督学习的底层逻辑&#xff08;特征工程→模型训练→预测输出&#xff09; 2️⃣ 掌握梯度下降等优化…...

JS 链表

文章目录 链表题的一些总结两种链表定义set存储链表节点&#xff0c;存的是整个空间同时处理长短不一的两个链表处理方法 while(l1 || l2)处理方法 while(l1 & l2) dummyhead的使用 链表题的一些总结 两种链表定义 class class ListNode {val;next null;constructor(va…...

AI时代:架构师的困境与救赎

在GitHub Copilot生成完整函数、ChatGPT编写业务逻辑的今天&#xff0c;编程正经历着前所未有的范式变革。某在线教育平台的技术负责人曾向我展示&#xff1a;团队使用AI工具3个月后&#xff0c;年轻工程师在架构评审会上对Kafka消息队列的消费机制支支吾吾&#xff0c;却在IDE…...

1-10 github注册仓库

如何在github中注册一个仓库&#xff1f; 1.0 注册仓库 1-1 GitHub的账号注册教程_github注册-CSDN博客 2.0 删除仓库 1-2 从github中删除创建的仓库_github删除仓库-CSDN博客 3.0 创建仓库 1-3 【教程】GitHub新建仓库新手教程_github仓库-CSDN博客 4.0 github操作 1-4 1-9 克…...

JavaScript作用域与闭包

一 作用域 在JavaScript中&#xff0c;作用域&#xff08;Scope&#xff09;指的是变量和函数的可访问性范围。在JavaScript中&#xff0c;作用域有全局作用域和局部作用域之分。 全局作用域&#xff08;Global Scope&#xff09;&#xff1a;全局作用域指的是在代码中任何位置…...

docker容器部署jar应用导入文件时候报缺少字体错误解决

如题&#xff0c;在导入文件时候报错如下&#xff1a; Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager 经查是缺少对应字体&#xff0c;解决办法有两张&#xff1a; 第一种&#xff1a;…...

lean4安装

目录 lean4安装windows 证明等比数列和函数函数 lean4安装windows lean4 windows一键安装(全网最简单的安装流程)_lean4安装-CSDN博客 证明等比数列和函数函数 import Mathlib.Data.Real.Basic -- 导入实数基础库 import Mathlib.Tactic.Simps.Basic -- 导入简化策略 im…...

HTML的入门

一、HTML HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是一种用来告知浏览器如何组织页面的标记语言。 超文本&#xff1a;就是超越了文本&#xff1b;HTML不仅仅可以用来显示文本(字符串、数字之类)&#xff0c;还可以显示视频、音频等…...

Jenkins 部署 之 Mac 一

Jenkins 部署 之 Mac 一 一.Jenkins 部署依赖 JDK 环境 查看 Mac JDK 环境&#xff0c;如果没有安装&#xff0c;先安装 打开终端输入命令:java -version Mac安装配置 JDK 二. 检查 HomeBrew 安装 检查 HomeBrew 是否安装&#xff0c;终端输入命令:brew -v Mac安装HomeB…...

matlab平面波展开法计算的二维声子晶体带隙

平面波展开法计算的二维声子晶体带隙&#xff0c;分别是正方与圆形散射体形成正方格子声子晶体&#xff0c;最后输出了能带图的数据&#xff0c;需要自己用画图软件画出来。 列表 平面波展开法计算二维声子晶体带隙/a2.m , 15823 平面波展开法计算二维声子晶体带隙/a4.m , 942…...

爬虫实战:利用代理ip爬取推特网站数据

引言 亮数据-网络IP代理及全网数据一站式服务商屡获殊荣的代理网络、强大的数据挖掘工具和现成可用的数据集。亮数据&#xff1a;网络数据平台领航者https://www.bright.cn/?promoRESIYEAR50/?utm_sourcebrand&utm_campaignbrnd-mkt_cn_csdn_yingjie202502 在跨境电商、社…...

【kafka系列】生产者

目录 发送流程 1. 流程逻辑分析 阶段一&#xff1a;主线程处理 阶段二&#xff1a;Sender 线程异步发送 核心设计思想 2. 流程 关键点总结 重要参数 一、核心必填参数 二、可靠性相关参数 三、性能优化参数 四、高级配置 五、安全性配置&#xff08;可选&#xff0…...

Kafka日志数据深度解析:从基础查看到高级操作全攻略

#作者&#xff1a;孙德新 文章目录 查看log日志文件(kafka-dump-log.sh)1、查看Log文件基本数据信息2、index文件健康性检查(--index-sanity-check)3、转储文件(--max-message-size)4、偏移量解码(--offsets-decoder)5、日志数据解析(--transaction-log-decoder)6、查询Log文件…...

单例模式、构造函数、左值右值

拷贝构造函数 简单的说就是——用一个对象构造另外一个对象 class Myclass {public:int d0;Myclass(int d_){d d_}; //常用的构造函数Myclass(Myclass c) //拷贝构造函数{d c.d;} }; //对比 class Myclass {public:int d0;Myclass(int d_){d d_}; //常用的构造函数Myclass…...

DeepSeek+即梦 做AI视频

DeepSeek做AI视频 制作流程第一步&#xff1a;DeepSeek 生成视频脚本和分镜 第二步&#xff1a;生成分镜图片绘画提示词第三步&#xff1a;生成分镜图片第四步&#xff1a;使用可灵 AI 工具&#xff0c;将生成的图片转成视频。第五步&#xff1a;剪映成短视频 DeepSeek 真的强&…...

「软件设计模式」建造者模式(Builder)

深入解析建造者模式&#xff1a;用C打造灵活对象构建流水线 引言&#xff1a;当对象构建遇上排列组合 在开发复杂业务系统时&#xff0c;你是否经常面对这样的类&#xff1a;它有20个成员变量&#xff0c;其中5个是必填项&#xff0c;15个是可选项。当用户需要创建豪华套餐A&…...

Android设备 网络安全检测

八、网络与安全机制 6.1 网络框架对比 volley&#xff1a; 功能 基于HttpUrlConnection;封装了UIL图片加载框架&#xff0c;支持图片加载;网络请求的排序、优先级处理缓存;多级别取消请求;Activity和生命周期的联动&#xff08;Activity结束生命周期同时取消所有网络请求 …...

安心联车辆管理系统的硬件架构详解

安心联车辆管理系统的硬件架构可分为车载设备和后端平台设备两大部分&#xff0c;以下是详细的硬件组成及功能说明&#xff1a; 一、车载设备 定位与通信模块 北斗/GPS双模定位模块&#xff1a;支持厘米级定位精度&#xff0c;兼容JT/T808、JT/T809等交通部标准协议&#xff0c…...

适用于iOS的应用商店优化(ASO)清单

面对App Store的激烈竞争&#xff0c;您想优化您的应用使其在竞争中脱颖而出&#xff0c;但又不知道应该从哪里开始。我们已经为您准备好了&#xff01;我们整理了一份适用于iOS的应用商店优化&#xff08;ASO&#xff09;检查清单&#xff0c;用以帮助您入门并提高您在App Sto…...

linux概念详解

用户守护进程 用户空间守护进程是一些在后台运行的长期服务程序&#xff0c;提供系统级服务。 下面举一些例子。 网络服务&#xff1a; 如sshd&#xff08;SSH服务&#xff09;、httpd&#xff08;HTTP服务&#xff09;。 sshd&#xff1a;sshd 守护进程会在后台运行&#x…...

嵌入式开发应该具备哪些编程思维?

目录 1、资源限制思维 2、实时性思维 3、硬件抽象思维 4、中断驱动思维 5、功耗优化思维 6、可靠性和容错思维 7、并发和同步思维 8、故障排除与调试思维 9、状态机思维 嵌入式开发与一般的软件开发不同&#xff0c;嵌入式系统通常受到资源&#xff08;内存、处理器、…...

MongoDB索引介绍

索引简述 索引是什么 索引在数据库技术体系中占据了非常重要的位置&#xff0c;其主要表现为一种目录式的数据结构&#xff0c;用来实现快速的数据查询。通常在实现上&#xff0c;索引是对数据库表(集合)中的某些字段进行抽取、排列之后&#xff0c;形成的一种非常易于遍历读取…...

编程速递-庆祝Delphi诞生30周年!

庆祝Delphi 30周年纪念是一个特别的时刻。 回到1995年&#xff0c;也就是30年前&#xff0c;在微软Windows和互联网时代的曙光初现之时&#xff0c;Borland Delphi的创建者们无法想象&#xff0c;当时使用Borland Delphi构建的应用程序至今仍在运行——为全世界数十亿人服务。…...

YOLOv11-ultralytics-8.3.67部分代码阅读笔记-tuner.py

tuner.py ultralytics\utils\tuner.py 目录 tuner.py 1.所需的库和模块 2.def run_ray_tune(model, space: dict None, grace_period: int 10, gpu_per_trial: int None, max_samples: int 10, **train_args,): 1.所需的库和模块 # Ultralytics &#x1f680; AGPL-…...

一文说清楚什么是Token以及项目中使用Token延伸的问题

首先可以参考我的往期文章&#xff0c;我这里说清楚了Cookie&#xff0c;Seesion&#xff0c;Token以及JWT是什么 其实Token你就可以理解成这是一个认证令牌就好了 详细分清Session&#xff0c;Cookie和Token之间的区别&#xff0c;以及JWT是什么东西_还分不清 cookie、sessi…...

VueRouter 实例

分析下列代码 const router new VueRouter({mode:history,routes }) 1.const router new VueRouter({ ... })用来创建一个 Vue Router 实例&#xff0c;用于管理 Vue.js 应用的路由。2.mode: history&#xff1a; 作用&#xff1a;启用 HTML5 History 模式&#xff0c;去除…...

【算法工程】解决linux下Aspose.slides提示No usable version of libssl found以及强化推理模型的短板

1. 背景 构建ubuntu镜像&#xff0c;然后使用Aspose.slides解析PPTX文档&#xff0c;发现一直提示“No usable version of libssl found”。 2. 尝试 使用deepseek R1、kimi1.5、chatgpt o3&#xff0c;并且都带上联网能力&#xff0c;居然还是没有一个能够真正解决&#xf…...

解析浏览器中JavaScript与Native交互原理:以WebGPU为例

引言 随着Web应用复杂度的提升&#xff0c;开发者对浏览器访问本地硬件能力的需求日益增长。然而&#xff0c;浏览器必须在开放性与安全性之间找到平衡——既不能放任JavaScript&#xff08;JS&#xff09;随意操作系统资源&#xff0c;又要为高性能计算、图形渲染等场景提供支…...

小火车理论

格助词...

深度学习框架探秘|Keras 应用案例解析以及 Keras vs TensorFlow vs PyTorch

引言 上一篇文章《深度学习框架探秘&#xff5c;Keras&#xff1a;深度学习的魔法钥匙》 我们初步学习了 Keras&#xff0c;包括它是什么、具备哪些优势&#xff08;简洁易用的 API、强大的兼容性、广泛的应用领域&#xff09;&#xff0c;以及基本使用方法。本文&#xff0c;…...

【01 背包】

01 背包解题思路&#xff1a; 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 这是标准的背包问题&#xff0c;每一件物品其实只有两个状…...

算法10-二分查找算法

一、二分查找算法概念 二分查找&#xff08;Binary Search&#xff09;是一种高效的查找算法&#xff0c;适用于在有序数组中快速查找目标值。它的核心思想是通过不断缩小查找范围&#xff0c;将时间复杂度从线性查找的 O(n) 优化到 O(log n)。 二、二分查找的流程图 以下是二…...

变相提高大模型上下文长度-RAG文档压缩-3.优化map-reduce(reranker过滤+社区聚类)

我遇到的业务问题实际上是RAG需要处理很多同一对象的日常报告&#xff0c;不像常识类问题&#xff0c;它的相关Document更多而且更分散&#xff0c;日常报告代表数据库里有很多它的内容&#xff0c;而且对象可能只在段落中的几句话提及到。top-k数量受限于大模型长度&#xff0…...

算法11-分治算法

一、分治算法概念 分治算法&#xff08;Divide and Conquer&#xff09;是一种重要的算法设计思想&#xff0c;通过将问题分解为多个子问题&#xff0c;分别解决后再合并结果&#xff0c;从而解决原问题。分治算法的核心思想是“分而治之”&#xff0c;通常包含三个步骤&#…...