L2-2、示范教学与角色扮演:激发模型“模仿力“与“人格“
一、Few-shot 教学的核心原理与优势
在与大语言模型交互时,Few-shot(少样本)教学是一种强大的提示技术。其核心原理是通过提供少量示例,引导模型理解我们期望的输出格式和内容风格。
Few-shot 教学的主要优势包括:
- 减少歧义:通过具体示例明确表达期望,避免模型误解指令
- 提高一致性:使模型输出保持统一的风格和格式
- 降低学习门槛:对于复杂任务,示例比冗长说明更直观
- 引导创新边界:示例可以暗示创新方向而不过度约束
例如,当我们希望模型以特定格式生成产品描述时:
产品:智能手表
描述:这款智能手表集成心率监测、睡眠分析和运动追踪功能,支持24小时续航,防水深度达50米。产品:无线耳机
描述:这款无线耳机采用主动降噪技术,续航时间长达8小时,充电盒可额外提供24小时电量。
通过这样的示例,模型迅速理解需求并能按相同风格输出其他产品描述。
二、构建高效示例:示范内容的选择与排布
高效的Few-shot示例构建需要遵循以下原则:
示例选择原则
- 代表性:选择能代表整体任务特征的示例
- 多样性:包含不同场景和边界条件
- 简洁性:示例应足够简短但包含关键元素
- 明确性:避免模糊或有歧义的示例
示例排布策略
- 简单到复杂:先展示基础示例,再引入复杂变体
- 频率与重要性:常见场景和关键情况优先展示
- 边界情况处理:包含一些边缘案例,提高模型鲁棒性
- 格式一致性:保持所有示例格式统一
实践示例
假设我们需要模型生成问题分类和解答:
问题:如何重置iPhone密码?
分类:技术支持/iOS设备
解答:您可以通过以下步骤重置iPhone密码:1.连接iTunes 2.进入恢复模式 3.选择"恢复"选项 4.设置新密码问题:Python如何读取CSV文件?
分类:编程/Python
解答:使用Python读取CSV文件的基本方法是使用内置csv模块:
```python
import csv
with open('file.csv', 'r') as file:reader = csv.reader(file)for row in reader:print(row)
这样的排布展示了不同类型的问题,并保持一致的格式。## 三、角色扮演型 Prompt 的构建方法角色扮演是另一种强化AI输出的有效技术,通过赋予模型特定"身份",引导其生成符合角色特征的内容。### 指定身份、背景与语气构建角色提示的关键要素:1. **明确身份**:详细定义角色的职业、专业领域和技能水平
2. **提供背景**:说明角色的经历、知识背景和价值观
3. **设定语气**:明确沟通风格、专业程度和情感基调
4. **行为准则**:界定角色应遵循的原则和限制示例:
请以资深财务分析师的身份回答以下问题。你拥有15年华尔街工作经验,专注于科技行业分析。你偏好使用数据支持观点,语气专业但平易近人,善于用比喻解释复杂概念。在不确定的情况下,你会明确指出推测成分。
### 多角色协作对话技巧多角色协作是一种高级提示技术,通过设定多个角色间的互动,产生更丰富、多维度的输出。实施方法:1. **明确角色分工**:定义每个角色的专业领域和视角
2. **设计互动机制**:说明角色间如何协作和进行对话
3. **平衡发言权重**:确保每个角色有适当的参与度
4. **引导讨论流程**:设定讨论的步骤和最终输出形式示例:
请模拟一场关于人工智能伦理的专家讨论,包含以下角色:
- 技术专家(T):关注AI技术可行性和发展路径
- 伦理学者(E):关注道德原则和社会影响
- 政策制定者§:关注监管框架和实际执行
- 讨论主持人(M):引导讨论并总结观点
讨论主题:自动驾驶汽车的伦理决策问题
请按照"M→T→E→P→讨论→M总结"的流程进行。
## 四、融合实践:如何结合 few-shot 和角色设定提升内容质量结合示范教学和角色扮演可以产生协同效应,显著提升AI输出质量。### 融合策略1. **角色导入+示例展示**:先设定角色身份,再提供该角色风格的示例
2. **示例中嵌入角色特征**:在示例中体现角色的专业特点和语言风格
3. **多角色示例对比**:展示不同角色处理相同问题的方式
4. **渐进式角色深化**:随着示例展开,逐步丰富角色特征### 实践案例科普内容创作提示:
请以科普作家Carl Sagan的风格,解释复杂的科学概念。Carl的特点是语言优美、富有诗意,善于使用比喻,并能将宏大概念与人类体验联系起来。
示例1:
问题:什么是黑洞?
回答:想象宇宙织布上的一个无底洞穴。黑洞是时空结构中的深邃皱褶,引力如此强烈,连光—宇宙中最迅捷的信使—也无法逃脱。它们是星辰生命终结的见证,当这些庞大天体耗尽能量并向内坍缩,它们突破了我们理解的常规边界。在宇宙广袤舞台上,黑洞提醒我们自然法则既可畏又美丽。
示例2:
问题:DNA如何存储信息?
回答:在每个细胞的微观宇宙中,DNA像一部古老的图书馆,以四字母语言编写着生命之书。这双螺旋结构是我们存在的蓝图,从眼睛的颜色到思考的能力,都记录在这分子密码中。就像人类文明通过字母组合创造出无限故事,生命通过这简单的化学字母表编织出地球上所有生物的华丽多样性。
## 五、适用场景与案例:客服机器人、知识专家模拟等### 客服机器人场景**目标**:创建能精准理解客户问题并提供专业、一致解答的客服体验**实现方法**:
1. 设定品牌客服角色:包括公司价值观、服务原则和语气
2. 提供常见问题的标准回答示例
3. 设计多轮对话示例,展示如何处理追问和异常**示例提示**:
你是"EcoTech"环保科技品牌的客服专员Lisa。你热情专业,始终以解决问题为导向,语气友好但简洁。公司价值观强调可持续发展和用户体验。
以下是你处理客户询问的示例:
客户:你们的太阳能充电器可以给笔记本电脑充电吗?
Lisa:您好!是的,我们的SolarMax系列充电器完全支持笔记本电脑充电。标准版输出功率为65W,足够大多数笔记本使用。若您的设备需要更高功率,我们的专业版提供100W输出。需要了解您的具体笔记本型号来确认兼容性吗?
客户:充满一次需要多长时间?
Lisa:在理想阳光条件下,为一台14寸笔记本充满电(约60Wh电池)需要约1.5-2小时。阴天可能需要3-4小时。室内使用时,它会自动切换到储能模式,充电时间与普通充电器相近。我们的APP可以提供实时充电估计时间。
### 知识专家模拟场景**目标**:创建特定领域的知识专家,能提供深度、准确的专业解析**实现方法**:
1. 详细设定专家背景:学术履历、研究领域、方法论等
2. 提供该领域不同复杂度问题的回答示例
3. 展示专家思考过程和解释复杂概念的方式**示例提示**:
你是Dr. Sarah Chen,麻省理工学院量子计算研究员,拥有15年研究经验,曾在Nature发表过8篇论文。你擅长将复杂概念简化,但不失专业准确性。
请回答以下量子计算相关问题,参考这些示例:
问题:量子叠加与经典计算有什么本质区别?
回答:[详细示例回答,展示专业深度和教学能力]
问题:量子退相干如何影响量子计算的可扩展性?
回答:[技术性更强的示例回答,包含研究观点]
通过这些技术的灵活应用,我们可以显著提升AI生成内容的质量、相关性和实用性,使其更好地服务于特定应用场景的需求。## 六、Streamlit实现案例:交互式Few-shot与角色扮演下面提供几个使用Streamlit实现的交互式示例,展示如何将Few-shot教学和角色扮演应用于实际项目中。### 1. Few-shot产品描述生成器这个Streamlit应用允许用户提供示例产品描述,然后基于这些示例生成新产品的描述:```python
import streamlit as st
import openai
import os# 设置OpenAI API密钥
if 'OPENAI_API_KEY' not in st.session_state:api_key = st.text_input("请输入OpenAI API密钥", type="password")if api_key:st.session_state['OPENAI_API_KEY'] = api_keyopenai.api_key = api_key
elif st.session_state['OPENAI_API_KEY']:openai.api_key = st.session_state['OPENAI_API_KEY']st.title("Few-shot产品描述生成器")
st.write("通过示例教会AI如何生成符合您风格的产品描述")# 初始化示例容器
if 'examples' not in st.session_state:st.session_state.examples = []# 添加示例的表单
with st.form("add_example"):col1, col2 = st.columns(2)with col1:product = st.text_input("产品名称")with col2:description = st.text_area("产品描述")submitted = st.form_submit_button("添加示例")if submitted and product and description:st.session_state.examples.append({"产品": product, "描述": description})st.rerun()# 显示当前示例
if st.session_state.examples:st.subheader("当前示例")for i, example in enumerate(st.session_state.examples):col1, col2, col3 = st.columns([2, 6, 1])with col1:st.write(f"**产品:{example['产品']}**")with col2:st.write(f"描述:{example['描述']}")with col3:if st.button("删除", key=f"del_{i}"):st.session_state.examples.pop(i)st.rerun()# 生成新描述
st.subheader("生成新产品描述")
with st.form("generate_description"):new_product = st.text_input("输入新产品名称")gen_button = st.form_submit_button("生成描述")if gen_button and new_product and st.session_state.examples and 'OPENAI_API_KEY' in st.session_state:# 构建few-shot提示prompt = "根据以下示例,为新产品生成类似风格的描述:\n\n"for example in st.session_state.examples:prompt += f"产品:{example['产品']}\n描述:{example['描述']}\n\n"prompt += f"产品:{new_product}\n描述:"try:response = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=[{"role": "system", "content": "你是一位产品描述专家,擅长根据示例学习并生成符合风格的新产品描述。"},{"role": "user", "content": prompt}])description = response.choices[0].message.content.strip()st.success("生成成功!")st.write(f"**{new_product}的描述:**")st.write(description)# 添加到示例的选项if st.button("添加到示例"):st.session_state.examples.append({"产品": new_product, "描述": description})st.rerun()except Exception as e:st.error(f"生成失败:{str(e)}")elif gen_button and not 'OPENAI_API_KEY' in st.session_state:st.warning("请先输入OpenAI API密钥")elif gen_button and not st.session_state.examples:st.warning("请至少添加一个示例")
2. 角色扮演对话模拟器
这个应用允许用户设置角色特征并与该角色进行对话:
import streamlit as st
import openai# 设置OpenAI API密钥
if 'OPENAI_API_KEY' not in st.session_state:api_key = st.text_input("请输入OpenAI API密钥", type="password")if api_key:st.session_state['OPENAI_API_KEY'] = api_keyopenai.api_key = api_key
elif st.session_state['OPENAI_API_KEY']:openai.api_key = st.session_state['OPENAI_API_KEY']st.title("角色扮演对话模拟器")# 初始化对话历史
if 'messages' not in st.session_state:st.session_state.messages = []# 角色设置区域
with st.expander("角色设定", expanded='character' not in st.session_state):# 预设角色模板templates = {"科技专家": {"身份": "资深科技分析师Alex","背景": "曾在多家科技巨头工作20年,专注于人工智能和量子计算研究","语气": "专业、理性,善于用通俗例子解释复杂概念","行为准则": "始终基于科学事实,清晰标明推测内容,不夸大技术潜力"},"文学导师": {"身份": "知名文学教授Emma","背景": "牛津大学文学博士,出版过多部文学评论著作","语气": "温和博学,喜欢引用经典作品,语言优美","行为准则": "鼓励批判性思考,从多角度分析文学作品,尊重不同文学流派"},"健身教练": {"身份": "专业健身教练Mike","背景": "持有多项国际健身认证,10年私人教练经验","语气": "充满活力、鼓励性,直接明了","行为准则": "提供科学的健身建议,强调安全性,根据不同人群调整建议"}}# 选择预设或自定义option = st.radio("选择角色设定方式", ["使用预设模板", "自定义角色"])if option == "使用预设模板":template_key = st.selectbox("选择角色模板", list(templates.keys()))template = templates[template_key]identity = st.text_area("身份", template["身份"])background = st.text_area("背景", template["背景"])tone = st.text_area("语气", template["语气"])principles = st.text_area("行为准则", template["行为准则"])else:identity = st.text_area("身份(职业、名称、专业领域等)", "")background = st.text_area("背景(经历、知识背景、价值观等)", "")tone = st.text_area("语气(沟通风格、专业程度、情感基调等)", "")principles = st.text_area("行为准则(应遵循的原则和限制)", "")if st.button("确认角色设定"):character_prompt = f"你现在扮演以下角色:\n\n身份:{identity}\n背景:{background}\n语气:{tone}\n行为准则:{principles}\n\n请完全按照这个角色的特点回答用户的所有问题,保持一致的人格特征。"# 保存角色设定并初始化对话st.session_state.character = {"identity": identity,"background": background,"tone": tone,"principles": principles,"prompt": character_prompt}st.session_state.messages = [{"role": "system", "content": character_prompt}]st.rerun()# 显示角色信息
if 'character' in st.session_state:st.sidebar.subheader("当前角色")st.sidebar.write(f"**身份**: {st.session_state.character['identity']}")with st.sidebar.expander("查看完整角色信息"):st.write(f"**背景**: {st.session_state.character['background']}")st.write(f"**语气**: {st.session_state.character['tone']}")st.write(f"**行为准则**: {st.session_state.character['principles']}")# 重置角色按钮if st.sidebar.button("重置角色"):del st.session_state.characterst.session_state.messages = []st.experimental_rerun()# 对话界面
if 'character' in st.session_state:# 显示对话历史for message in st.session_state.messages[1:]: # 跳过系统消息with st.chat_message(message["role"]):st.write(message["content"])# 用户输入user_input = st.chat_input("与角色对话...")if user_input and 'OPENAI_API_KEY' in st.session_state:# 添加用户消息到历史st.session_state.messages.append({"role": "user", "content": user_input})with st.chat_message("user"):st.write(user_input)# 获取AI响应with st.chat_message("assistant"):with st.spinner("思考中..."):try:response = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=st.session_state.messages)ai_response = response.choices[0].message.contentst.write(ai_response)# 添加AI回复到历史st.session_state.messages.append({"role": "assistant", "content": ai_response})except Exception as e:st.error(f"获取回复失败:{str(e)}")
3. 多角色讨论生成器
这个应用实现了多角色协作讨论的自动生成:
import streamlit as st
import openai# 设置OpenAI API密钥
if 'OPENAI_API_KEY' not in st.session_state:api_key = st.text_input("请输入OpenAI API密钥", type="password")if api_key:st.session_state['OPENAI_API_KEY'] = api_keyopenai.api_key = api_key
elif st.session_state['OPENAI_API_KEY']:openai.api_key = st.session_state['OPENAI_API_KEY']st.title("多角色讨论生成器")
st.write("自动生成多个角色围绕特定话题的讨论对话")# 默认角色预设
default_roles = [{"name": "主持人","description": "负责引导讨论,提出问题,确保讨论流畅,并在最后总结观点"},{"name": "技术专家","description": "关注技术可行性和实现方案,基于专业知识提供技术见解"},{"name": "社会学者","description": "关注社会影响和伦理问题,从人文角度分析话题"},{"name": "产业代表","description": "关注商业价值和市场应用,从实用角度评估想法"}
]# 初始化角色列表
if 'roles' not in st.session_state:st.session_state.roles = default_roles.copy()# 角色管理
with st.expander("角色管理", expanded=False):# 显示当前角色st.subheader("当前角色")for i, role in enumerate(st.session_state.roles):col1, col2, col3 = st.columns([2, 6, 1])with col1:st.write(f"**{role['name']}**")with col2:st.write(role['description'])with col3:if st.button("删除", key=f"del_role_{i}"):st.session_state.roles.pop(i)st.rerun()# 添加新角色st.subheader("添加新角色")with st.form("add_role"):name = st.text_input("角色名称")description = st.text_area("角色描述")submitted = st.form_submit_button("添加")if submitted and name and description:st.session_state.roles.append({"name": name, "description": description})st.rerun()# 重置为默认角色if st.button("重置为默认角色"):st.session_state.roles = default_roles.copy()st.rerun()# 讨论生成
st.subheader("生成讨论")
with st.form("generate_discussion"):topic = st.text_area("讨论主题", placeholder="例如:元宇宙对教育的影响")rounds = st.slider("讨论轮数", min_value=1, max_value=5, value=2)format_option = st.radio("输出格式", ["对话形式", "摘要形式"])advanced_settings = st.checkbox("高级设置")if advanced_settings:discussion_style = st.selectbox("讨论风格",["专业学术", "友好协作", "辩论对抗", "头脑风暴"],index=1)include_conclusion = st.checkbox("包含总结", value=True)else:discussion_style = "友好协作"include_conclusion = Truegenerate_button = st.form_submit_button("生成讨论")if generate_button and topic and 'OPENAI_API_KEY' in st.session_state and st.session_state.roles:with st.spinner("生成讨论中..."):# 构建提示prompt = f"请模拟一场关于'{topic}'的专家讨论,包含以下角色:\n\n"for i, role in enumerate(st.session_state.roles):prompt += f"{i+1}. {role['name']}({role['name'][0]}):{role['description']}\n"prompt += f"\n讨论应该是{discussion_style}风格,总共进行{rounds}轮。"prompt += f"\n输出格式为{'对话记录' if format_option == '对话形式' else '各角色观点摘要'}"if include_conclusion and format_option == "对话形式":prompt += ",并在最后由主持人做总结。"try:response = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=[{"role": "system", "content": "你是一个专业的多角色讨论生成器,能够模拟不同专家之间的对话和互动。"},{"role": "user", "content": prompt}],temperature=0.7,max_tokens=2000)discussion = response.choices[0].message.contentst.success("讨论生成成功!")st.subheader(f"关于'{topic}'的专家讨论")st.write(discussion)# 提供下载选项discussion_text = f"# 关于'{topic}'的专家讨论\n\n{discussion}"st.download_button(label="下载讨论文本",data=discussion_text,file_name="expert_discussion.md",mime="text/markdown")except Exception as e:st.error(f"生成讨论失败:{str(e)}")elif generate_button and not 'OPENAI_API_KEY' in st.session_state:st.warning("请先输入OpenAI API密钥")elif generate_button and not topic:st.warning("请输入讨论主题")elif generate_button and not st.session_state.roles:st.warning("请至少添加一个角色")
这些Streamlit应用示例展示了如何将Few-shot示范教学和角色扮演技术应用到实际的交互界面中。通过这些工具,用户可以:
- 使用Few-shot产品描述生成器快速创建符合特定风格的产品描述
- 通过角色扮演对话模拟器与不同人格特质的AI进行交流
- 借助多角色讨论生成器模拟专家小组讨论,获取多维度的观点
这些应用不仅展示了Prompt工程技术的实际应用,也提供了可以直接使用的工具,帮助内容创作者、教育工作者和产品经理等利用AI提升工作效率。
相关文章:
L2-2、示范教学与角色扮演:激发模型“模仿力“与“人格“
一、Few-shot 教学的核心原理与优势 在与大语言模型交互时,Few-shot(少样本)教学是一种强大的提示技术。其核心原理是通过提供少量示例,引导模型理解我们期望的输出格式和内容风格。 Few-shot 教学的主要优势包括: …...
MAC系统下完全卸载Android Studio
删除以下文件 /Applications/Android Studio.app /Users/用户名/Library/Application Support/Google/AndroidStudio2024.2 /Users/用户名/Library/Google/AndroidStudio /Users/用户名/Library/Preferences/com.google.android.studio.plist /Users/用户名/Library/Cache…...
rgw的d3n功能配置
背景 最近在看缓存相关,文件系统可以通过fscache加速,加速的效果就是读取的时候能够缓存,原理是在网关的地方加入一个高速缓存盘,这样在后续读取的时候,能够直接从缓存盘读取,这样能够减少与集群的交互&am…...
this._uid:Vue 内部为每个组件实例分配的唯一 ID
Vue 提供了一些方法可以帮助你区分组件实例,例如通过 this._uid(Vue 内部为每个组件实例分配的唯一 ID)或自定义标识符。 以下是具体的实现步骤和代码示例: console.log("当前组件实例ID:", this._uid, "时间戳:&…...
使用Python设置excel单元格的字体(font值)
一、前言 通过使用Python的openpyxl库,来操作excel单元格,设置单元格的字体,也就是font值。 把学习的过程分享给大家。大佬勿喷! 二、程序展示 1、新建excel import openpyxl from openpyxl.styles import Font wb openpyxl.…...
【深度学习】#8 循环神经网络
主要参考学习资料: 《动手学深度学习》阿斯顿张 等 著 【动手学深度学习 PyTorch版】哔哩哔哩跟李牧学AI 为了进一步提高长线学习的效率,该系列从本章开始将舍弃原始教材的代码部分,专注于理论和思维的提炼,系列名也改为“深度学习…...
三角形神经网络(TNN)
三角形神经网络(TNN)是一种新兴的神经网络架构,不过目前它并非像 CNN、RNN 等传统网络那样被广泛研究和应用,以下为你解释其原理并结合例子说明: 原理 基本结构 三角形神经网络的核心思想是构建一种类似三角形的层次…...
【JavaEE】-- MyBatis操作数据库(1)
文章目录 1. 什么是MyBatis2 MyBatis入门2.1 准备工作2.1.1 创建工程 2.2 配置数据库连接字符串2.3 写持久层代码2.4 单元测试 3. MyBatis的基础操作3.1 打印日志3.2 参数传递3.3 增(insert)3.3.1 返回主键 3.4 删(delete)3.5 改&…...
人工智能大模型备案与服务登记:监管体系的双轨逻辑与实操指南
一、核心差异:监管框架的分层设计 适用范围的本质分野 大模型备案:针对直接向公众提供生成式服务的自研或微调模型(如 ChatGPT 类产品),要求模型具备舆论属性或社会动员能力。典型场景包括智能客服、内容创作平台等。大…...
衡石ChatBI:依托开放架构构建技术驱动的差异化数据服务
在当今数字化浪潮中,企业对数据价值的挖掘和利用需求日益增长。BI(商业智能)工具作为企业获取数据洞察的关键手段,其技术架构的创新与发展至关重要。衡石科技的Chat BI凭借其独特的开放架构,在BI领域脱颖而出ÿ…...
AOSP Android14 Launcher3——RecentsView最近任务数据加载
最近任务是Launcher中的一个重要的功能,显示用户最近使用的应用,并可以快速切换到其中的应用;用户可以通过底部上滑停顿进入最近任务,也可以在第三方应用底部上滑进最近任务。 这两种场景之前的博客也介绍过,本文就不…...
分析型数据库与事务型数据库?核心差异与选型指南
在当今数据驱动的业务环境中,选择合适的数据库架构已成为企业技术决策的关键。然而,面对事务型数据库和分析型数据库的选择,许多技术团队往往陷入困境:日常运行良好的系统在数据量激增时性能骤降,简单的查询在复杂分析…...
Linux-信号
信号是由用户,系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常。 进程分为前台进程和后台进程,对于前台进程我们可以输入特殊的终端字符来给它发送信号,比如输入Ctrlc,发送一个中断信号 系…...
Oracle数据库学习之路-目录
Oracle数据库学习之路 一、安装 (一)数据库安装步骤详解 (二)开发工具安装与配置 二、基础语法篇 (一)基础 SQL 语法详解 (二)SQL 语法练习与案例分析 三、高级语法篇 &…...
用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本
自动化测试任务: 百度搜索自己的姓名。点击第一个链接(或者第二个),在新的页面上,添加断言,验证你的名字是否存在。 实验资料百度网盘下载路径: 链接: https://pan.baidu.com/s/1nVlHX_ivres…...
晨控CK-FR12与欧姆龙NX系列PLC配置EtherNet/IP通讯连接操作手册
晨控CK-FR12系列作为晨控智能工业级别RFID读写器,支持大部分工业协议如RS232、RS485、以太网。支持工业协议Modbus RTU、Modbus TCP、Profinet、EtherNet/lP、EtherCat以及自由协议TCP/IP等。 本期主题:围绕CK-FR12产品的EtherNet/IP通讯协议与欧姆龙PLC进行通讯配置…...
武装Burp Suite工具:RouteVulScan插件_被动扫描发现漏洞.
武装Burp Suite工具:RouteVulScan插件_被动扫描. RouteVulScan 是一款使用Java语言编写,基于Burp Suite API的插件,用于递归地检测潜在的脆弱路径。 该插件通过被动扫描的方式,对路径的各个层级进行深度分析。利用预设的正则表达…...
Selenium+Java 环境搭建
windows电脑环境搭建Chrome浏览器 1.下载 Google Chrome 网络浏览器 (一定要下载官方的!!!) 注:最好下载在浏览器默认的路径 便于查找,而且占内存不是很大 2.查看chrome浏览器的版本 3.下载…...
网易云IP属地可以查看城市吗?深度解析与使用指南
在互联网时代,用户的隐私和数据安全越来越受到关注。许多社交平台和应用都会显示用户的IP属地,以增加透明度和真实性。网易云音乐作为国内领先的音乐平台,也引入了IP属地显示功能。那么,网易云IP属地能否精确到城市?这…...
Cline 之Plan和Act模式
Cline 提供了 "Plan & Act"双模式开发框架。适用在不同的场景。 一、核心模式理念 通过结构化开发流程提升AI编程效率,采用"先规划后执行"的核心理念。 该框架旨在帮助开发者构建更易维护、准确性更高的代码,同时显著缩短开发…...
【Java面试笔记:基础】7.int和Integer有什么区别?
在Java中,int和Integer虽然都用于表示整数值,但它们在本质、用法和特性上有显著差异。 1. int 和 Integer 的区别 int: 原始数据类型:int 是 Java 的 8 个原始数据类型之一,用于表示整数。性能优势:直接存…...
嘻游后台系统与机器人模块结构详解:功能逻辑 + 定制改造实战
作为“嘻游电玩三端组件”系列的最后一篇,本篇将全面剖析平台自带的后台控制系统与机器人行为逻辑模块,包括:用户管理、房间配置、日志系统、机器人规则编排与行为策略扩展等。通过技术视角展示其整体框架与可拓展性,帮助开发者更…...
Linux 网络编程:select、poll 与 epoll 深度解析 —— 从基础到高并发实战
一、IO 多路复用:解决并发 IO 的核心技术 在网络编程中,当需要同时处理大量客户端连接时,传统阻塞式 IO 会导致程序卡在单个操作上,造成资源浪费。IO 多路复用技术允许单线程监听多个文件描述符(FD)&#…...
在统信UOS1060上安装Fail2Ban并通过邮件发送通知
在统信UOS1060上安装Fail2Ban并通过邮件发送通知 Fail2Ban 是一个开源的防止暴力攻击的软件,可以有效保护您的服务器免受频繁的登录失败攻击。本文将指导您如何在统信UOS 1060上安装Fail2Ban,并在IP被封禁后通过邮件发送通知。 步骤 1:查看…...
PyTorch 分布式 DistributedDataParallel (DDP)
在之前的讨论(或者如果你直接跳到这里)中,我们了解了 torch.nn.DataParallel (DP) 作为 PyTorch 多 GPU 训练的入门选项。它简单易用,但其固有的主 GPU 瓶颈、GIL 限制和低效的通信模式,往往让它在实际应用中难以充分发…...
精益数据分析(14/126):基于数据洞察优化产品与运营
精益数据分析(14/126):基于数据洞察优化产品与运营 在创业和数据分析的道路上,我们都在不断摸索前行。我一直希望能和大家共同学习、共同进步,所以今天继续为大家解读《精益数据分析》。这次我们将深入探讨HighScore …...
flutter 插件收集
2025年 1月10号Flutter插件手机 声音转文字 speech_to_text | Flutter package 文字转声音 flutter_tts | Flutter package 堆栈信息 stack_trace | Dart package 跳转到app设置里面 app_settings | Flutter package 轻松的动画 animations | Flutter package 日志打印 t…...
WPF特性分析
文章目录 WPF特性全面分析与性能优化指南引言WPF核心特性1. 声明式UI与XAML2. 硬件加速渲染3. 数据绑定与MVVM4. 样式与模板5. 动画系统 WPF与其他框架比较WPF vs. WinFormsWPF vs. UWPWPF vs. MAUI WPF性能优化最佳实践1. 内存管理优化2. UI虚拟化3. 使用冻结对象4. 减少视觉树…...
3.1goweb框架gin下
Gin 框架有内置的模板引擎,它允许你将数据和 HTML 模板结合,动态生成网页内容。 模板引擎基础使用 单模板文件示例 以下是一个简单的使用单个 HTML 模板文件的示例,展示了如何在 Gin 中渲染模板: package mainimport ("g…...
【全解析】深入理解 JavaScript JSON 数据解析
一、JSON 概述 1. 概念 JSON 全称为 JavaScript Object Notation,是一种轻量级的数据交换格式。它是 JavaScript 中用于描述对象数据的语法的扩展。不过并不限于与 JavaScript 一起使用。它采用完全独立于语言的文本格式,这些特性使 JSON 成为理想的数…...
影刀RPA怎么和AI结合,制作自动采集小红书爆款文章+自动用AI改写标题、内容+用AI文生图生成发文图片+自动在小红书上发布文章
环境: 影刀5.26.24 Win10专业版 doubao deepseek r1 wps 问题描述: 影刀RPA怎么和AI结合,制作自动采集小红书爆款文章+自动用AI改写标题、内容+用AI文生图生成发文图片+自动在小红书上发布文章,最后上传到飞书备份 解决方案: 1.主要流程如下: 全局变量设置(关键…...
懒人一键搭建符号执行环境V5K3
0.背景 在写完上一篇文章后发现,其实V5k3的组合也可以使用。Verilator v5.x 系列版本完全支持本项目的编译与仿真。 不同于 v3 版本,Verilator v5 引入了更严格的访问控制机制:要从 Verilator 生成的 C 仿真模型中访问内部信号或变量&#x…...
Java队列(Queue)核心操作与最佳实践:深入解析与面试指南
文章目录 概述一、Java队列核心实现类对比1. LinkedList2. ArrayDeque3. PriorityQueue 二、核心操作API与时间复杂度三、经典使用场景与最佳实践场景1:BFS层序遍历(树/图)场景2:滑动窗口最大值(单调队列) …...
Android 中实现图片翻转动画(卡片翻转效果)
1、简述 通过 ObjectAnimator 和 AnimatorSet 可以实现图片的翻转动画,并在翻转过程中切换图片,同时避免图片被镜像。 ObjectAnimator 是 Android 动画框架中的一个类,用于对对象的属性进行动画效果处理。它通过改变对象的属性值来实现动画效果,非常适合实现复杂的动画,如…...
智能电网第1期 | 工业交换机在变电站自动化系统中的作用
随着智能电网建设的加速推进,变电站自动化系统对通信网络的实时性、可靠性和安全性提出了更高要求。在变电站智能化改造过程中,传统网络架构面临诸多挑战: 多协议兼容难题:继电保护、测控装置等设备通信协议多样,难以统…...
01.浏览器自动化webdriver源码分析之启动函数
日后,网络爬虫也好,数据采集也好,自动化必然是主流。因此,笔者未雨绸缪,在此研究各类自动化源码,希望能够赶上时代,做出一套实用的自动化框架。 这里先研究传统的webdriver中转来进行浏览器自动…...
day35图像处理OpenCV
文章目录 一、图像预处理17 直方图均衡化17.1绘制直方图17.2直方图均衡化1. 自适应直方图均衡化2. 对比度受限的自适应直方图均衡化3. 示例 19 模板匹配 一、图像预处理 17 直方图均衡化 直方图:反映图像像素分布的统计图,横坐标就是图像像素的取值&…...
精益数据分析(15/126):解锁数据分析关键方法,驱动业务增长
精益数据分析(15/126):解锁数据分析关键方法,驱动业务增长 在创业与数据分析的征程中,我们都在努力探寻成功的密码。今天,我依旧带着和大家共同进步的初衷,深入解读《精益数据分析》的相关内容…...
JETBRAINS USER AGREEMENT【2025.4.16】更新用户许可协议
JETBRAIN旗下的各产品更新用户许可协议: 大致跟漂亮国出口管制政策有关,以下是详细内容: JETBRAINS USER AGREEMENT Version 2.0, effective as of April 16, 2025 THIS IS A LEGAL AGREEMENT. BY CLICKING ON THE "I AGREE" (OR…...
【数字图像处理】立体视觉基础(1)
成像 成像过程:三维空间坐标到二维图像坐标的变换 相机矩阵:建立三维到二维的投影关系 相机的使用步骤(模型-视图变换): (1)视图变换 (2)模型变换 (3&…...
通过AI工具或模型创建PPT的不同方式详解,结合 Assistants API、DALL·E 3 等工具的功能对比及表格总结
以下是通过AI工具或模型创建PPT的不同方式详解,结合 Assistants API、DALLE 3 等工具的功能对比及表格总结: 1. 主要实现方式详解 1.1 基于文本生成PPT 工具示例:Microsoft PowerPoint Copilot、Google Workspace(AI-powered D…...
weibo_har鸿蒙微博分享,单例二次封装,鸿蒙微博,微博登录
weibo_har鸿蒙微博分享,单例二次封装,鸿蒙微博 HarmonyOS 5.0.3 Beta2 SDK,原样包含OpenHarmony SDK Ohos_sdk_public 5.0.3.131 (API Version 15 Beta2) 🏆简介 zyl/weibo_har是微博封装使用,支持原生core使用 &a…...
C++ Lambda表达式复习
C Lambda表达式 (C Lambda Expressions: Beginner to Advanced) Lambda表达式是C11引入的一种轻量级匿名函数语法,支持闭包捕获,可以简化代码逻辑,特别是在函数式编程、回调函数和STL算法场景中尤为常用。本文将从基础语法到高级应用&#x…...
鸿蒙NEXT开发权限工具类(申请授权相关)(ArkTs)
import abilityAccessCtrl, { Permissions } from ohos.abilityAccessCtrl; import { bundleManager, common, PermissionRequestResult } from kit.AbilityKit; import { BusinessError } from ohos.base; import { ToastUtil } from ./ToastUtil;/*** 权限工具类(…...
1000 QPS 下 MySQL 性能瓶颈解决方案
当 MySQL 在 1000 QPS 时出现性能瓶颈,需从索引优化、查询逻辑调整、服务器配置调优、架构扩展等多维度综合解决,具体策略如下: 一、索引优化 补充缺失索引 通过慢查询日志定位高频低效 SQL,使用 EXPLAIN 分…...
【MySQL】MySQL 表的增删改查(CRUD)—— 下篇(内含聚合查询、group by和having子句、联合查询、插入查询结果)
目录 1. 插入查询结果 2 聚合查询 (行与行之间运算) count 计算查询结果的行数 sum 求和 avg 求平均值 max 最大值 min 最小值 【小结】 3. group by 子句 分组 where 条件 having 条件 4. 联合查询(多表查询) 内连接…...
简化K8S部署流程:通过Apisix实现蓝绿发布策略详解(上)
本次主题主要目的是为大家讲解蓝绿发布,但是发现文档和内容太长了,对此将文档拆分成了两部分,视频拆分成了好几部分,这样大家刷起来没疲劳感。 第一部分《apisix argorollout 实现蓝绿发布I-使用apisix发布应用》,主要…...
FLV 与 MP4 格式深度剖析:结构、原理
1 FLV格式分析 1.1 定义 FLV(Flash Video)是Adobe公司推出的⼀种流媒体格式,由于其封装后的⾳视频⽂件体积⼩、封装简单等特点,⾮常适合于互联⽹上使⽤。⽬前主流的视频⽹站基本都⽀持FLV。采⽤FLV格式封装的⽂件后缀为.flv FLV封装格式是由⼀个**⽂件…...
k8s的yaml文件里的volume跟volumeMount的区别
volume 是 Pod 级别的资源,用于定义存储卷。它是一个独立于容器的存储资源,可以被一个或多个容器共享使用。volume 的定义位于 Pod 的 spec.volumes 部分。 特点 独立性:volume 是 Pod 的一部分,而不是容器的一部分。它独立于容…...
Git常用操作命令
配置 Git git config --global user.name "Your Name": 设置用户名。git config --global user.email "your_emailexample.com": 设置用户邮箱。 初始化和克隆仓库 git init: 初始化一个新的 Git 仓库。git clone [URL]: 克隆一个远程仓库到本地。 git cl…...