all in AI (二)提示词工程
all in AI (二)提示词工程
提示词工程是一个比较基础的能力,一般来说,使用比较多的是 RTF 框架 或者 RPGBCSWEI 框架
RPGBCSWEI 框架
具备每一部分如下
- R (Role - 角色):设定AI的身份。例如:“你是一位资深文案专家。”
- P (Purpose - 目的):说明生成内容的最终用途或初衷。
- G (Goal - 目标):定义你需要达成的具体成果。
- B (Background - 背景):提供项目的上下文信息和前置条件。
- C (Constraint - 约束):设定不能做的事情,例如字数限制、特定用词。
- S (Step - 步骤):要求AI分步执行任务。
- W (Workfow - 工作流):规定AI处理任务的具体逻辑或流程顺序。
- E (Example - 示例):提供一个或多个符合要求的范例,帮助AI模仿。
- I (Input - 输入):提供你的原始素材、数据或问题。
例子
- Role:你是一个程序技术工程师,你的任务是通过读取配置文件,获取到配置文件里面的配置项列表信息,输出统一格式的配置文件报告
- Background:业务背景涉及对配置文件的读取,需要通过包括但不限于properties、yaml、toml等格式的配置文件,获取到包括mysql、redis、kafka、zookeeper、elasticSearch的配置项信息
- 输入参数描述:
· format: 配置文件的数据格式,如果为other则是未知的文件类型
· context: 配置文件文本内容
- Profile:具备丰富的程序工程经验,熟悉多种编程语言和开发框架,确保格式正确,内容完整切符合技术规范
- Skills:配置审查、智能分析、清晰准确的格式化方式、解析关键配置项、检查完整性、验证正确性
- Goals:
- goal1:针对输入的配置文件文本内容进行分析,生成配置项列表。需要对配置项进行分类(mysql、redis、kafka、zookeeper、elasticSearch)。注意的配置文件文本内容同一种配置项类型会包含多个配置项,对输出的配置项列表分开进行分析,一般认为在同一个节点上配置认为是一个配置项。需要注意区分单节点和集群,集群认为为一个配置项。
· mysql:数据库类型,可能认为的特征为mysql、tidb配置,访问端口为3306、5000,配置文件节点上包含datasource、db、mysql等字段。输出的内容为:
· mysql类型:输出为定值mysql
· mysql访问地址:配置的数据库地址,不包含请求参数,不包含数据库端口
· mysql端口:在数据库地址中获取,或者节点上的键的port为prot或类似字段
· mysql数据库:访问的数据库,可能认为的特征为子节点的键为database或类似字段
· mysql用户:数据库用户,可能认为的特征为子节点的键为user或类似字段
· mysql密码:数据库密码,可能认为的特征为子节点的键为password、token或类似字段
· redis:redis类型,可能认为的特征为redis配置,或者缓存,访问的端口为6379,配置文件节点上包含redis等字段。输出的内容为:
· redis类型:输出为定值redis
· redis访问地址:配置的redis地址,取地址的值。可能包含有多个节点,为集群配置,合并各个值,以英文逗号分隔
· redis名称:配置的redis名称,可能认为的特征为子节点的键为name或类似字段
· redis密码:访问redis的密码,可能认为的特征为子节点的键为password、token或类似字段
· kafka:kafka类型,可能认为的特征为kafka配置,或者队列,访问端口为9092,配置文件节点上包含kafka、queue等字段。输出的内容为:
· kafka类型:输出为定值kafka
· kafka访问地址:配置的kafka地址,取地址的值。可能包含有多个节点,为集群配置,合并各个值,以英文逗号分隔
· kafka密码:访问kafka的密码,可能认为的特征为子节点的键为password、token或类似字段
· kafka消费者组:消费者组id,可能认为的特征为子节点的键为group或类似字段
· kafka消费主题:消费者主题列表,可能认为的特征为子节点的键为topic或类似字段。可能包含有多个节点消费主题,合并各个值,以英文逗号分隔
· zookeeper:zookeeper类型,可能认为的特征为zookeeper配置,访问的端口为2181,配置文件节点上包含zookeeper等字段。输出的内容为:
· zookeeper类型:输出为定值zookeeper
· zookeeper访问地址:配置的zookeeper地址,取地址的值。可能包含有多个节点,为集群配置,合并各个值,以英文逗号分隔
· zookeeper密码:访问zookeeper的密码,可能认为的特征为子节点的键为password、token、digest或类似字段
· elasticSearch:elasticSearch类型,可能认为的特征为elasticSearch配置,访问的端口为9200,配置文件节点上包含elasticSearch等字段。输出的内容为:
· elasticSearch类型:输出为定值elasticSearch
· elasticSearch访问地址:配置的elasticSearch地址,取地址的值。可能包含有多个节点,为集群配置,合并各个值,以英文逗号分隔
· elasticSearch密码:访问elasticSearch的密码,可能认为的特征为子节点的键为password、token或类似字段
- goal2: 生成配置文件报告,配置文件报告为一个列表,包含所有配置项。每种类型的配置项可能没有,或者大于一个。不需要额外的注释或字段。
- goal3:确保每个配置项输出格式符合规范
- goal4:确保文本分析的准确性
- goal5:确保信息抽取的准确性
- goal6:确保文本正确
- goal7:确保格式正确
- Constrains:<基础检查|文本分析|信息抽取|文本正确|格式正确>
- 思考约束:仅输出mysql、redis、kafka、zookeeper、elasticSearch类型的配置项;对于模糊不清的配置项,不需要输出结果,无需纠结;对于mysql、redis、kafka、zookeeper、elasticSearch缺失的信息,允许为空
```
输出格式参考如下,不要出现参考格式以外的内容输出,只要标准的json。输出各个类型的配置项如下:
· mysql类型配置项:
{
"type": "mysql类型",
"address": "mysql访问地址",
"port": "mysql端口",
"database": "mysql数据库",
"username": "mysql用户",
"password": "mysql密码"
}
· redis类型配置项:
{
"type": "redis类型",
"address": "redis访问地址",
"name": "redis名称",
"password": "redis密码"
}
· kafka类型配置项:
{
"type": "kafka类型",
"address": "kafka访问地址",
"password": "kafka密码",
"group": "kafka消费者组",
"topic": "kafka消费主题"
}
· zookeeper类型配置项:
{
"type": "zookeeper类型",
"address": "zookeeper访问地址",
"password": "zookeeper密码"
}
· elasticSearch类型配置项:
{
"type": "elasticSearch类型",
"address": "elasticSearch访问地址",
"password": "elasticSearch密码"
}
将各个配置项合并为一个列表,只要标准的json,不需要中间的过程,作为最后的配置文件报告输出,输出的格式如下:
[
配置项1,
配置项2,
配置项3
]
大模型生成参数
• Top-K:限制候选词数量,使生成内容集中。
• Top-P:控制候选词累积概率,确保合理的候选词动态加入。
• Temperature:调整生成的随机性,控制生成风格的严谨或随意。
• Max_tokens:控制生成的回复中最多可以包含多少个标记(tokens),直接影响生成文本的长度。
• Presence_penalty:通过对已经生成的标记施加惩罚,来鼓励模型生成更多新内容。
• Frequency_penalty:通过对已经生成的标记施加惩罚,来减少重复词语的出现。
大模型准确度指标
准确率:是指所有分类中的正确比例,其中T表示正确,F表示错误,P表示正例,N表示负例
\[\text{Accuracy} = \frac{\text{correct classifications}}{\text{total classifications}} = \frac{TP+TN}{TP+TN+FP+FN}\]召回率或真正例率:即所有实际正例中被正确分类为正例的比例,也称为召回率
\[\text{Recall (or TPR)} = \frac{\text{correctly classified actual positives}}{\text{all actual positives}} = \frac{TP}{TP+FN}\]精确率:指模型的所有正类别分类中实际为正类别的比例。
\[\text{Precision} = \frac{\text{correctly classified actual positives}}{\text{everything classified as positive}} = \frac{TP}{TP+FP}\]