Google LLM prompt engineering(谷歌提示词工程指南)
文章目录
- 基本概念
- AI输出配置:调整AI的回答方式
- 输出长度
- 温度(Temperature)
- Top-K和Top-P
- 提示技术:让AI更好地理解你
- 零样本提示(Zero-shot)
- 少样本提示(Few-shot)
- 系统提示(System Prompting)
- 角色提示(Role Prompting)
- 上下文提示(Contextual Prompting)
- 后退提示(Step-back Prompting)
- 思维链提示(Chain of Thought)
- 思维树(Tree of Thoughts)
- ReAct(推理与行动)
- 代码提示(Code Prompting)
- 编写代码示例
- 解释代码示例
- 调试代码示例
- 提示工程最佳实践
- 提供示例
- 简洁设计
- 明确指定输出
- 使用指令而非约束
- 控制最大标记长度
- 在提示中使用变量
- 尝试不同的输入格式和写作风格
- 对于少样本分类任务,混合不同类别
- 适应模型更新
- 尝试不同的输出格式
- 记录提示尝试
基本概念
当你与大型语言模型(如Gemini)交流时,你输入的文字就是"提示",AI会根据这些提示生成回答。提示工程就是设计高质量提示的过程,引导AI产生准确的输出。
小贴士: 你不需要成为数据科学家或机器学习工程师 — 任何人都可以学习如何写好提示!
大型语言模型(LLM)是一个预测引擎。当你输入文字时,模型会根据它训练过的数据预测下一个词应该是什么。通过精心设计的提示,你可以引导模型生成更符合你期望的回答。
为什么提示工程很重要?
-
好的提示让AI给出准确、有用的回答
-
不好的提示可能导致模糊、不准确的回答
-
提示工程是一个反复尝试和改进的过程
提示工程的应用
-
文本摘要
-
信息提取
-
问答系统
-
文本分类
-
代码生成和翻译
-
推理任务
AI输出配置:调整AI的回答方式
除了提示本身,你还可以调整各种配置选项来控制AI的输出。这些设置会影响AI生成回答的方式。
输出长度
控制AI生成的文字数量。生成更多文字需要更多计算资源,可能导致响应时间变慢和成本增加。
注意: 仅设置输出长度限制不会让AI的回答变得更简洁,它只会在达到限制时停止生成。
温度(Temperature)
控制AI回答的随机性程度:
-
低温度(接近0):回答更确定、更可预测
-
高温度(接近1):回答更随机、更有创意
温度为0时,AI总是选择概率最高的词。
Top-K和Top-P
这些设置控制AI在选择下一个词时考虑的可能性范围:
-
Top-K:只考虑最可能的K个选项
-
Top-P(核采样):只考虑累积概率达到P的选项
👍推荐设置: 一般情况下,温度0.2、Top-P 0.95和Top-K 30会给你提供相对连贯但又不失创意的结果。如果需要更有创意的回答,可以尝试温度0.9、Top-P 0.99和Top-K 40。
‼️警告: 如果你看到AI回答的末尾出现大量重复文字,这可能是"重复循环错误"。这是由于温度和采样设置不当导致的。调整这些参数可以解决问题。
提示技术:让AI更好地理解你
以下是一些强大的提示技术,可以帮助你获得更好的AI回答:
零样本提示(Zero-shot)
最简单的提示方式,直接告诉AI你想要什么,不提供任何示例。
例子:电影评论分类
将电影评论分类为正面、中性或负面。
评论:"Her"是一项令人不安的研究,揭示了如果允许人工智能继续无限制地发展,人类将走向何方。我希望有更多像这样的杰作。
情感:
正面
少样本提示(Few-shot)
通过给AI提供一些例子,帮助它更好地理解你的需求。这种方法向模型展示了它需要遵循的模式。
例子:披萨订单解析
将客户的披萨订单解析为JSON:
示例:
我想要一个小号披萨,配奶酪、番茄酱和意大利辣香肠。
JSON响应:
{
“size”: “small”,
“type”: “normal”,
“ingredients”: [[“cheese”, “tomato sauce”, “pepperoni”]]
}
现在,我想要一个大号披萨,前半部分配奶酪和马苏里拉,另一半配番茄酱、火腿和菠萝。
JSON响应:
{
"size": "large",
"type": "half-half",
"ingredients": [["cheese", "mozzarella"], ["tomato sauce", "ham", "pineapple"]]
}
💡小贴士: 一般来说,少样本提示应该使用3-5个例子。例子应该多样化、高质量且书写良好。
系统提示(System Prompting)
为语言模型设置整体上下文和目的,定义模型应该做什么的"大局"。
例子:电影评论分类(JSON格式)
将电影评论分类为正面、中性或负面。返回有效JSON:
评论:"Her"是一项令人不安的研究,揭示了如果允许人工智能继续无限制地发展,人类将走向何方。它太令人不安了,我无法观看。
模式:
电影:
{
"sentiment": String "POSITIVE" | "NEGATIVE" | "NEUTRAL",
"name": String
}
电影评论:
{
"movie_reviews": [电影]
}
JSON响应:
```
{
"movie_reviews": [
{
"sentiment": "NEGATIVE",
"name": "Her"
}
]
}
```
角色提示(Role Prompting)
为AI模型分配特定角色或身份,帮助模型生成与指定角色一致的回答。
例子:旅游指南
我希望你扮演旅游指南。我会写给你我的位置,你将以幽默的风格建议我附近3个可以参观的地方。
我的位置:“我在曼哈顿。”
旅游建议:
仰望帝国心境:攀登帝国大厦的令人头晕的高度,沐浴在曼哈顿天际线的辉煌中。准备感受像金刚在大苹果上,除了没有巨大猿猴大小的香蕉。
在MoMA变得艺术范儿:在现代艺术博物馆释放你内心的艺术鉴赏家。凝视那些会让你的思维困惑,并让你质疑自己的棍子人画作是否有任何艺术价值的杰作。
在第五大道购物直到倒下:准备好在这些设计师精品店购物时遭受价格冲击。但嘿,你在曼哈顿,所以你不妨拥抱这华丽!
上下文提示(Contextual Prompting)
提供与当前对话或任务相关的特定细节或背景信息,帮助模型理解所问内容的细微差别。
例子:博客文章建议
上下文:你正在为一个关于80年代复古街机电子游戏的博客写作。
建议3个可以写文章的主题,并附上几行关于这篇文章应该包含什么的描述。
街机柜设计的演变:本文将探索街机柜设计的演变,从20世纪70年代早期的木材和金属柜到20世纪80年代及以后的时髦、霓虹灯照明设计。
回顾过去:80年代标志性街机游戏:本文将展示一些20世纪80年代最具标志性和影响力的街机游戏的历史、影响和遗产,突出它们的创新、流行机制和持久魅力。
像素艺术的兴起和复古复兴:本文将深入探讨像素艺术作为早期街机游戏的标志性视觉风格的演变,追溯其根源,探索其技术,并讨论像素艺术在现代游戏和数字艺术中的复兴。
后退提示(Step-back Prompting)
先要求AI考虑与特定任务相关的一般问题,然后将该问题的答案用于解决具体问题。这种"后退"允许AI在尝试解决特定问题前激活相关的背景知识。
例子:游戏关卡故事情节
基于流行的第一人称射击动作游戏,有哪5个虚构的关键设置可以为第一人称射击游戏中的挑战性和引人入胜的级别故事情节做出贡献?
废弃军事基地:一个广阔的、后世界末日的军事综合体,爬满了变异士兵和叛逃机器人,适合挑战性的火器战斗。
赛博朋克城市:一个霓虹灯照明的未来城市环境,有高耸的摩天大楼和密集的小巷,有增强型的敌人和黑客机制。
外星飞船:一艘滞留在地球上的巨大外星飞船,有诡异的走廊、零重力区域和外星生物。
僵尸感染的城镇:一个被侵略性僵尸群占领的荒凉城镇,有激烈的近战战斗和寻找安全通道的解谜元素。
水下研究设施:一个被水淹没的深海实验室,充满了变异的水生生物,需要潜行和水下探索技能才能生存。
然后,你可以将这些主题用作上下文,创建更具体的故事情节:
上下文:[上面的5个主题]
选择其中一个主题,为第一人称射击游戏的新级别写一段既具挑战性又有吸引力的故事情节。
在幽暗深渊的中心,矗立着一座破败的水下研究设施,作为人类野心及其灾难性后果的见证。笼罩在黑暗中,伴随着故障机械的嗡嗡声,以及被淹没灵魂的回声,这座设施如今成为了深海噩梦的温床。玩家,一名配备先进潜水装备和实验性武器的精英海军陆战队员,被派遣深入这个水生恐怖领域。肩负着韧性和智慧的使命,他们必须穿越危险的走廊,解决神秘的谜题,与在深处潜伏的可怕海怪对抗。从抵抗海水压力到智胜狡猾的水生掠食者,在这个未知的水下世界中,每一刻都考验着人类的耐力和勇气极限。
思维链提示(Chain of Thought)
通过生成中间推理步骤来提高AI的推理能力,特别适合解决需要逐步思考的复杂问题。
例子:数学问题
当我3岁的时候,我的伴侣是我年龄的3倍。现在,我20岁了。我的伴侣多大?让我们一步一步思考。
当我3岁时,我的伴侣是3 * 3 = 9岁。
这是6岁的年龄差,我的伴侣比较大。
现在我20岁了,所以我的伴侣是20 + 6 = 26岁。
答案是26岁。
小贴士: 使用思维链提示时,最好将温度设置为0,因为通常只有一个正确答案。
思维树(Tree of Thoughts)
允许AI同时探索多个不同的推理路径,而不是仅仅遵循单一的线性思维链。特别适合需要探索的复杂任务。
思维树通过维护一个思维树,每个思维代表一个连贯的语言序列,作为解决问题的中间步骤。模型可以通过从树的不同节点分支出来探索不同的推理路径。
ReAct(推理与行动)
结合自然语言推理和外部工具(如搜索、代码解释器等),使AI能够执行某些操作,如与外部API交互以检索信息。
ReAct通过将推理和行动结合到一个思考-行动循环中工作。AI首先推理问题并生成行动计划,然后执行计划中的行动并观察结果,最后使用观察结果更新推理并生成新的行动计划。
> 输入新的AgentExecutor链...
Metallica有4个成员。
行动: 搜索
行动输入: James Hetfield有多少个孩子?
观察: 三个孩子
思考: 1/4 Metallica乐队成员有3个孩子
行动: 搜索
行动输入: Lars Ulrich有多少个孩子?
观察: 3
思考: 2/4 Metallica乐队成员有6个孩子
行动: 搜索
行动输入: Kirk Hammett有多少个孩子?
观察: Hammett自1998年以来与他的第二任妻子Lani结婚。他们有两个儿子,Angel(2006年9月29日出生)和Vincenzo(2008年6月28日出生)。
思考: 3/4 Metallica乐队成员有8个孩子
行动: 搜索
行动输入: Robert Trujillo有多少个孩子?
观察: 2
思考: 4/4 Metallica乐队成员有10个孩子
最终答案: 10
代码提示(Code Prompting)
使用特定技巧让AI帮助你编写、解释或调试代码。
编写代码示例
例子:批量重命名文件
写一个Bash代码片段,询问文件夹名称。然后获取文件夹内容并通过在文件名前添加"draft"来重命名所有文件。
#!/bin/bash
# 询问文件夹名称
echo "输入文件夹名称: "
read folder_name
# 检查文件夹是否存在
if [ ! -d "$folder_name" ]; then
echo "文件夹不存在。"
exit 1
fi
# 获取文件夹中的文件列表
files=( "$folder_name"/* )
# 通过在文件名前添加"draft"来重命名每个文件
for file in "${files[@]}"; do
new_file_name="draft_$(basename "$file")"
mv "$file" "$folder_name/$new_file_name"
done
echo "文件重命名成功。"
解释代码示例
例子:解释Bash代码
解释以下Bash代码:
#!/bin/bash
echo "输入文件夹名称: "
read folder_name
if [ ! -d "$folder_name" ]; then
echo "文件夹不存在。"
exit 1
fi
files=( "$folder_name"/* )
for file in "${files[@]}"; do
new_file_name="draft_$(basename "$file")"
mv "$file" "$new_file_name"
done
echo "文件重命名成功。"
这个Bash脚本执行以下任务:
1. 用户输入:
- 使用`echo`和`read`命令提示用户输入文件夹名称。输入的文件夹名称存储在`folder_name`变量中。2. 文件夹存在检查:
- 使用`[ ! -d "$folder_name" ]`条件检查指定名称的文件夹是否存在。如果文件夹不存在,显示错误信息("文件夹不存在。")并以退出代码1退出脚本。3. 文件列表:
- 使用`files=( "$folder_name"/* )`命令列出指定文件夹内的所有文件。这创建了一个名为`files`的数组,包含文件夹中所有文件的路径。4. 文件重命名:
- 使用`for`循环遍历`files`数组中的每个文件。
- 对于每个文件,使用`new_file_name="draft_$(basename "$file")"`命令生成新文件名。这个新文件名是通过在原始文件名前加上"draft_"字符串创建的。
- 然后使用`mv "$file" "$new_file_name"`命令重命名文件,将文件移动到新文件名。5. 成功消息:
- 重命名所有文件后,显示成功消息("文件重命名成功。")表示重命名操作成功。
调试代码示例
例子:调试Python代码
以下Python代码出现错误:
Traceback (most recent call last):
File “/Users/leeboonstra/Documents/test_folder/rename_files.py”, line 7, in <module>
text = toUpperCase(prefix)
NameError: name ‘toUpperCase’ is not defined
调试错误并解释如何改进代码。
import os
import shutil
# 从用户获取文件夹名称
folder_name = input("输入文件夹名称: ")
prefix = input("输入要添加到文件名前的字符串: ")
text = toUpperCase(prefix)
# 检查文件夹是否存在
if not os.path.isdir(folder_name):
print("文件夹不存在。")
exit(1)
# 获取文件夹中的所有文件列表
files = os.listdir(folder_name)
# 遍历文件
for file in files:
# 创建带有前缀的新文件名
new_filename = f"{text}_{file}"
# 移动文件到新名称
shutil.move(os.path.join(folder_name, file),
os.path.join(folder_name, new_file_name))
# 打印成功消息
print("文件重命名成功。")
代码调用了toUpperCase
函数将prefix
转换为大写,但该函数未定义。要修复这个问题,你可以使用字符串类的upper()
方法,它可以将给定字符串转换为大写。修改后的代码如下:
import os
import shutil
# 从用户获取文件夹名称
folder_name = input("输入文件夹名称: ")
prefix = input("输入要添加到文件名前的字符串: ")
text = prefix.upper()
# 检查文件夹是否存在
if not os.path.isdir(folder_name):
print("文件夹不存在。")
exit(1)
# 获取文件夹中的所有文件列表
files = os.listdir(folder_name)
# 遍历文件
for file in files:
# 创建带有前缀的新文件名
new_filename = f"{text}_{file}"
# 移动文件到新名称
shutil.move(os.path.join(folder_name, file),
os.path.join(folder_name, new_filename))
# 打印成功消息
print("文件重命名成功。")
此外,代码还有几处其他问题:
-
变量名不一致:代码中使用了
new_filename
和new_file_name
两个变量名 -
没有处理可能在重命名过程中发生的错误
-
没有保留原始文件的扩展名
改进后的代码应该包含错误处理和更好的文件名处理。
提示工程最佳实践
以下是一些提示工程的最佳实践,帮助你获得更好的AI回答:
提供示例
在提示中提供示例是最有效的方法之一。示例可以帮助AI理解你期望的输出格式和风格。
简洁设计
提示应该简洁、清晰、易于理解。如果提示对你来说已经很混乱,那么对AI来说也可能很混乱。尽量不要使用复杂的语言,不要提供不必要的信息。
改进前后对比
-
改进前:
我现在正在纽约旅游,我想了解更多关于好地方的信息。我带着两个3岁的孩子。我们假期应该去哪里? -
改进后:
扮演旅游指南。描述纽约曼哈顿适合带3岁孩子参观的好地方。
明确指定输出
明确说明你期望的输出。简洁的指令可能不足以引导AI,或者太过笼统。在提示中提供具体细节可以帮助模型关注相关内容,提高整体准确性。
- 好的做法
生成一篇关于前5大视频游戏主机的3段博客文章。博客文章应该信息丰富且吸引人,并且应该以对话风格编写。
- 不好的做法
生成一篇关于视频游戏主机的博客文章。
使用指令而非约束
研究表明,在提示中专注于积极指令比严重依赖约束更有效。这与人类更喜欢积极指令而不是"不要做什么"的列表的方式一致。
- 好的做法
生成一段关于前5大视频游戏主机的博客文章。只讨论主机、制造公司、发布年份和总销量。
- 不好的做法
生成一段关于前5大视频游戏主机的博客文章。不要列出视频游戏名称。
控制最大标记长度
要控制AI回答的长度,你可以在配置中设置最大标记限制,或者在提示中明确要求特定长度。例如:“用推特长度的消息解释量子物理学。”
在提示中使用变量
使用变量可以让你的提示更加动态,避免重复。例如,不要在提示中硬编码城市名称,而是使用变量。
使用变量的提示
变量:
{city} = "阿姆斯特丹"
提示:
你是一名旅游指南。告诉我关于这个城市的一个事实:{city}
阿姆斯特丹是一个美丽的城市,到处都是运河、桥梁和狭窄的街道。它是一个很好的地方,可以参观其丰富的历史、文化和夜生活。
尝试不同的输入格式和写作风格
不同的模型、模型配置、提示格式、词汇选择和提交方式可能产生不同的结果。因此,尝试不同的提示属性很重要。
不同的提问方式
-
问题形式: 什么是世嘉梦幻游戏机,为什么它是如此革命性的游戏机?
-
陈述形式: 世嘉梦幻游戏机是世嘉于1999年发布的第六代视频游戏机。它…
-
指令形式: 写一段描述世嘉梦幻游戏机并解释为什么它如此革命性的段落。
对于少样本分类任务,混合不同类别
在进行分类任务时,确保在少样本示例中混合可能的响应类别。这可以确保模型学习识别每个类别的关键特征,而不是简单地记住示例的顺序。
适应模型更新
了解模型架构变化、添加的数据和功能很重要。尝试新的模型版本,并调整你的提示以更好地利用新的模型功能。
尝试不同的输出格式
除了提示输入格式外,考虑尝试不同的输出格式。对于非创意任务,如提取、选择、解析、排序或分类数据,尝试让输出以JSON或XML等结构化格式返回。
使用JSON输出的好处:
-
始终以相同的风格返回
-
专注于你想要接收的数据
-
减少幻觉的可能性
-
使其关系感知
-
获得数据类型
-
可以排序
记录提示尝试
详细记录你的提示尝试,这样你可以随着时间的推移了解哪些方法有效,哪些无效。
提示工程是一个迭代过程: 制作和测试不同的提示,分析并记录结果。根据模型的表现改进你的提示。继续实验,直到达到期望的输出。当你更改模型或模型配置时,回去继续尝试之前使用的提示。
相关文章:
Google LLM prompt engineering(谷歌提示词工程指南)
文章目录 基本概念AI输出配置:调整AI的回答方式输出长度温度(Temperature)Top-K和Top-P 提示技术:让AI更好地理解你零样本提示(Zero-shot)少样本提示(Few-shot)系统提示(…...
接口出现 请求参数格式错误 的解决方法
目录 前言1. 问题所示2. 原理分析3. 解决方法前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 爬虫神器,无代码爬取,就来:bright.cn Java基本知识: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理…...

Git实战经验分享:深入掌握git commit --amend的进阶技巧
一、工具简介 git commit --amend是Git版本控制系统的核心补救命令,主要用于修正最近一次提交的元数据。该命令不会产生新的提交记录,而是通过覆盖原提交实现版本历史的整洁性,特别适合在本地仓库进行提交优化。 二、核心应用场景 提交信息…...

PTA:jmu-ds-最短路径
给定一个有向图,规定源点为0,求源点0到其他顶点最短路径。###你要实现的 函数接口定义: void Dijkstra(MGraph g,int v);//源点v到其他顶点最短路径 裁判测试程序样例: #include <stdio.h> #include <iostream> …...
Uniapp编写微信小程序,使用canvas进行绘图
一、canvas文档: https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial 二、数据绘制(单位是像素): 1、绘制文本: 文字的长度超过设置的最大宽度,文字会缩在一起 ① 填充文本…...

WEB UI自动化测试之Pytest框架学习
文章目录 前言Pytest简介Pytest安装Pytest的常用插件Pytest的命名约束Pytest的运行方式Pytest运行方式与unittest对比主函数运行命令行运行执行结果代码说明 pytest.ini配置文件方式运行(推荐)使用markers标记测试用例 pytest中添加Fixture(测…...

深入理解 iOS 开发中的 `use_frameworks!`
在使用 CocoaPods 管理 iOS 项目依赖时,开发者经常会在 Podfile 文件中看到一个配置选项:use_frameworks!。本文将详细介绍这个配置选项的含义,以及如何决定是否在项目中使用它。 一、什么是 use_frameworks! 在 CocoaPods 中引入第三方库时…...

矩阵置零算法讲解
矩阵置零算法讲解 一、问题描述 给定一个 (m \times n) 的矩阵,如果一个元素为 (0) ,则将其所在行和列的所有元素都设为 (0) 。要求使用原地算法,即在不使用额外矩阵空间的情况下完成操作。 二、解题思路 暴力解法 最直观的想法是遍历矩阵,当遇到 (0) 元素时,直接将其…...

二本计算机,毕业=失业?
我嘞个豆,二本计算机,毕业即失业?! 今天咱们聊聊普通院校计算机专业的学生未来的发展方向。有些话可能不太中听,但希望大家能理性看待。 首先得承认,对于普通双非和二本的学生来说,就业率加上…...
Java 并发编程挑战:从原理到实战的深度剖析与解决方案
Java 作为企业级应用开发的主流语言,其多线程能力是支撑高并发场景的核心。然而,线程安全、死锁、性能瓶颈等问题仍是开发者难以绕过的暗礁。本文将从 JVM 内存模型、并发工具链到实际案例,系统性揭示 Java 并发编程的挑战与解决方案…...
机器学习第六讲:向量/矩阵 → 数据表格的数学表达,如Excel表格转数字阵列
机器学习第六讲:向量/矩阵 → 数据表格的数学表达,如Excel表格转数字阵列 资料取自《零基础学机器学习》。 查看总目录:学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:…...

[docker基础二]NameSpace隔离实战
目录 一 实战目的 二 基础知识 1)dd 命令详解 2)mkfs命令详解 3)df命令详解 4)mount 命令详解 5)unshare命令详解 三 实战操作一(PID隔离) 四 实战操作二(MOunt隔离) 1)创建 Mount 隔离进程 2)在新进程里边,创建空白文件&#…...

Day22打卡-复习
复习日 仔细回顾一下之前21天的内容,没跟上进度的同学补一下进度。 作业: 自行学习参考如何使用kaggle平台,写下使用注意点,并对下述比赛提交代码 泰坦尼克号人员生还预测https://www.kaggle.com/competitions/titanic/overview K…...
Express知识框架
一、核心概念 1. Express 简介 Node.js 的 Web 框架,提供 HTTP 服务器封装 轻量级但灵活,支持中间件扩展 基于路由,支持 RESTful API 和传统 MVC 架构 无内置 ORM 或模板引擎,但可集成第三方库 2. 核心对象 express() - 创建…...

uniapp + vue3 + 京东Nut动作面板组件:实现登录弹框组件(含代码、案例、小程序截图)
uniapp + vue3 + 京东Nut动作面板组件:实现登录弹框组件(含代码、案例、小程序截图) 代码示下,不再赘述。 动作面板组件:https://nutui-uniapp.netlify.app/components/feedback/actionsheet.html 项目背景 业务需求 描述: uniapp + vue3 + 京东Nut框架:实现登录弹框组…...

C++类和对象--中阶
C类和对象中阶 01. 类的6个默认成员函数 在 C 中,类有 6 个特殊的默认成员函数(不是 6 个构造函数),它们会在特定情况下由编译器自动生成。包括构造函数,析构函数,拷贝构造和赋值运算符重载,取…...
OSPF的四种特殊区域(Stub、Totally Stub、NSSA、Totally NSSA)详解
OSPF的四种特殊区域(Stub、Totally Stub、NSSA、Totally NSSA)通过限制LSA的传播来优化网络性能,减少路由表规模。以下是它们的核心区别: 1. Stub 区域(末梢区域) 允许的LSA类型:Type 1-3&#…...

数据签名在区块链中的独特应用与挑战
随着信息技术的飞速发展,分布式系统因其高效、可靠、可扩展等显著优点,在众多领域得到了极为广泛的应用。分布式系统通过网络将多个独立的计算节点连接在一起,协同完成复杂的任务,这种架构使得系统具备了强大的容错能力和负载均衡…...

数据可视化大屏——物流大数据服务平台(二)
代码分析: 物流大数据平台代码分析 这是一个基于 Bootstrap 和 ECharts 构建的物流大数据平台前端页面,设计采用了经典的三栏布局,主要展示河南省及全国的物流数据可视化内容。下面从多个维度进行分析: 1. 页面结构分析 整体采…...
5倍无损压缩+50 倍速转换HD Video 4K/8K 视频处理
各位视频处理小达人们,我跟你们说啊!有个超厉害的专业视频处理软件,叫HD Video Converter Factory Pro,简称HDVC,是WonderFox公司开发的。这软件功能老强大了,下面我给你们详细唠唠! 先说说它的…...
Vue学习百日计划-Deepseek版
阶段1:基础夯实(Day 1-30) 目标:掌握HTML/CSS/JavaScript基础,理解Vue核心概念和基础语法。 每日学习内容(2小时): HTML/CSS(Day 1-10) 学习HTML标签语义化…...

Maven 处理依赖冲突
Maven处理依赖冲突 什么是依赖冲突?如何解决?Maven自动处理依赖冲突的规则路径优先原则第一声明优先原则注意 子模块覆盖父模块父模块声明dependency子模块覆盖dependency父模块声明dependencyManagement 子模块覆盖dependency父模块声明dependencyManag…...

5.12第四次作业
实验要求:完成上图内容,要求五台路由器的环回地址均可以相互访问 AR1 AR2 AR3 AR4 AR5 AS 200 ospf配置 AR2 AR3 AR4 BGP配置 AR1(AS100) AR2(AS200) AR4 AR5(AS300) 结果...

【Lattice FPGA 开发】Diamond在线调试Reveal逻辑乱跳的解决
在Vivado中在always块中写逻辑时如果出现always块中的异步复位敏感词在块内部未使用的情况,如下例的rst: always (posedge clk or posedge rst) begin if(~tx_sense_flag)o_rd_adr < d1;else if((o_rd_adr d94) & (bit_cnt d7))o_rd_adr <…...

Go语言——kratos微服务框架使用
文章目录 一、安装依赖二、创建项目三、初始化项目四、使用git_bash命令终端运行命令五、创建自己的项目1、修改app.proto3、internal/service/app.go4、修改internal/service/service.go文件5、创建internal/biz/content.go文件6、修改internal/biz/biz.go文件7、创建internal…...
动作识别笔记
一些casual paper review 动作识别Input 从前:RGB,然后 RGB+2D pose 接着各种手工modalities,现在是纯pose 但是包含了 多人 interactive的pose Graph from skeleton verticies: keypoints,Edges: just joint btw keypoints一个训练的sample 是一个 panoramic graph, con…...

hiveserver2与beeline进行远程连接hive配置及遇到的问题
1、hiveserver2 参与用户模拟功能,因为开启后才能保证各用户之间的权限隔离。 1.1、配置 $HADOOP_HOME/etc/hadoop/core-site.xml <!--配置所有节点的root用户都可作为代理用户--> <property><name>hadoop.proxyuser.root.hosts</name>&…...

Stable Diffusion进阶之Controlnet插件使用
前面已经对Stable Diffusion的文生图和图生图的操作界面做了详细的介绍,接下来会介绍Stable Diffusion的进阶部分Controlnet插件的使用。往期文章详见: 爆肝整理!Stable Diffusion的完全使用手册(一)爆肝整理ÿ…...
解决vue create 创建项目,不能使用上下键选择模板的问题
使用 git bash 创建vue项目时候,无法使用上下键盘按键选择创建模板 处理: 1.当前界面,按CTR C终止创建命令; 2.使用 alias vuewinpty vue.cmd,更新命令环境; 3.再次使用 vue create demo创建项目…...

Multisim14使用教程详尽版--(2025最新版)
一、Multisim14前言 1.1、主流电路仿真软件 1. Multisim:NI开发的SPICE标准仿真工具,支持模拟/数字电路混合仿真,内置丰富的元件库和虚拟仪器(示波器、频谱仪等),适合教学和竞赛设计。官网:艾…...