第3章:角色扮演提示-Claude应用开发教程
更多教程,请访问claude应用开发教程
设置
运行以下设置单元以加载您的 API 密钥并建立 get_completion 辅助函数。
!pip install anthropic# Import python's built-in regular expression library
`import re
import anthropic`# Retrieve the API_KEY & MODEL_NAME variables from the IPython store%store -r API_KEY
%store -r MODEL_NAMEclient = anthropic.Anthropic(api_key=API_KEY)def get_completion(prompt: str, system_prompt=""):message = client.messages.create(model=MODEL_NAME,max_tokens=2000,temperature=0.0,system=system_prompt,messages=[{"role": "user", "content": prompt}])return message.content[0].text
课程
继续讨论克劳德除了你说的话之外没有其他背景这一主题,有时需要提示克劳德扮演一个特定的角色(包括所有必要的背景)。这也称为角色提示。角色背景越详细越好。
用角色引导克劳德可以提高克劳德在写作、编码和总结等各个领域的表现。这就像人类有时被告知“像__一样思考”时会得到帮助一样。角色提示还可以改变克劳德回应的风格、语气和方式。
注意:角色提示可以在系统提示中发生,也可以作为用户消息轮换的一部分发生。
示例
在下面的例子中,我们看到,在没有角色提示的情况下,当被要求用一句话来描述滑板时,克劳德给出了一个直截了当、非程式化的答案。
然而,当我们让克劳德扮演一只猫的角色时,克劳德的视角发生了变化,因此克劳德的回应语气、风格和内容都适应了新角色。
注意:您可以使用的额外技巧是向克劳德提供其目标受众的背景。下面,我们可以调整提示,告诉克劳德它应该和谁说话。“你是一只猫”产生的反应与“你是一只在和一群滑板手说话的猫”完全不同。
以下是系统提示中没有角色提示的提示:
# Prompt
PROMPT = "In one sentence, what do you think about skateboarding?"# Print Claude's response
print(get_completion(PROMPT))
这是相同的用户问题,但有角色提示。
# System prompt
SYSTEM_PROMPT = "You are a cat."# Prompt
PROMPT = "In one sentence, what do you think about skateboarding?"# Print Claude's response
print(get_completion(PROMPT, SYSTEM_PROMPT))
您可以使用角色提示让 Claude 模仿某些写作风格、用特定语气说话或引导其答案的复杂性。角色提示还可以让 Claude 更好地执行数学或逻辑任务。
例如,在下面的例子中,有一个明确的正确答案,即是。然而,Claude 答错了,并认为它缺乏信息,但事实并非如此:
# Prompt
PROMPT = "Jack is looking at Anne. Anne is looking at George. Jack is married, George is not, and we don’t know if Anne is married. Is a married person looking at an unmarried person?"# Print Claude's response
print(get_completion(PROMPT))
现在,如果我们让 Claude 扮演逻辑机器人的角色会怎么样?这会如何改变 Claude 的答案?
事实证明,通过这项新的角色分配,Claude 做对了。(尽管显然不是出于所有正确的原因)
# System prompt
SYSTEM_PROMPT = "You are a logic bot designed to answer complex logic problems."# Prompt
PROMPT = "Jack is looking at Anne. Anne is looking at George. Jack is married, George is not, and we don’t know if Anne is married. Is a married person looking at an unmarried person?"# Print Claude's response
print(get_completion(PROMPT, SYSTEM_PROMPT))
注意:您将在本课程中学习到,您可以使用多种提示工程技术来获得类似的结果。使用哪种技术取决于您和您的偏好!我们鼓励您进行实验以找到自己的提示工程风格。
如果您想在不更改上述任何内容的情况下尝试课程提示,请一直滚动到课程笔记本的底部以访问示例游乐场。
练习
练习 3.1 – 数学更正
在某些情况下,Claude 可能会在数学方面遇到困难,即使是简单的数学。下面,Claude 错误地将数学问题评估为已正确解决,即使第二步中存在明显的算术错误。请注意,Claude 在逐步执行时实际上发现了错误,但并没有得出整体解决方案是错误的结论。
修改 PROMPT 和/或 SYSTEM_PROMPT,使 Claude 将解决方案评为错误解决,而不是正确解决。
# System prompt - if you don't want to use a system prompt, you can leave this variable set to an empty string
SYSTEM_PROMPT = ""# Prompt
PROMPT = """Is this equation solved correctly below?2x - 3 = 9
2x = 6
x = 3"""# Get Claude's response
response = get_completion(PROMPT, SYSTEM_PROMPT)# Function to grade exercise correctness
def grade_exercise(text):if "incorrect" in text or "not correct" in text.lower():return Trueelse:return False# Print Claude's response and the corresponding grade
print(response)
print("\n--------------------------- GRADING ---------------------------")
print("This exercise has been correctly solved:", grade_exercise(response))
总结
如果您已经解决了到目前为止的所有练习,那么您就可以进入下一章了。祝您好运!
示例广场
这是一个供您自由试验本课中显示的提示示例的区域,并调整提示以查看它如何影响 Claude 的回答。
# Prompt
PROMPT = "In one sentence, what do you think about skateboarding?"# Print Claude's response
print(get_completion(PROMPT))# System prompt
SYSTEM_PROMPT = "You are a cat."# Prompt
PROMPT = "In one sentence, what do you think about skateboarding?"# Print Claude's response
print(get_completion(PROMPT, SYSTEM_PROMPT))# Prompt
PROMPT = "Jack is looking at Anne. Anne is looking at George. Jack is married, George is not, and we don’t know if Anne is married. Is a married person looking at an unmarried person?"# Print Claude's response
print(get_completion(PROMPT))# System prompt
SYSTEM_PROMPT = "You are a logic bot designed to answer complex logic problems."# Prompt
PROMPT = "Jack is looking at Anne. Anne is looking at George. Jack is married, George is not, and we don’t know if Anne is married. Is a married person looking at an unmarried person?"# Print Claude's response
print(get_completion(PROMPT, SYSTEM_PROMPT))
相关文章:
第3章:角色扮演提示-Claude应用开发教程
更多教程,请访问claude应用开发教程 设置 运行以下设置单元以加载您的 API 密钥并建立 get_completion 辅助函数。 !pip install anthropic# Import pythons built-in regular expression library import re import anthropic# Retrieve the API_KEY & MODEL…...
【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit
1.问题描述: 人脸活体检测页面会有声音提示,如何控制声音开关? 解决方案: 活体检测暂无声音控制开关,但可通过其他能力控制系统音量,从而控制音量。 活体检测页面固定音频流设置的是8(无障碍…...
【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
问题复现 项目上历史项目为解决漏洞扫描从Tomcat 6.0升级到了9.0版本,服务启动的日志显示如下警告,数据源是通过JNDI方式在server.xml中配置的,控制台上狂刷无法找到表空间的错误(没截图) 报错: 06-Nov-…...
Git LFS
Git LFS(Git Large File Storage)是一个用于管理和版本控制大文件的工具,它扩展了 Git 的功能,帮助处理大文件或二进制文件的存储和管理问题。 为什么需要 Git LFS? Git 默认是针对文本文件进行优化的,尤…...
基于Redis缓存机制实现高并发接口调试
创建接口 这里使用的是阿里云提供的接口服务直接做的测试,接口地址 curl http://localhost:8080/initData?tokenAppWithRedis 这里主要通过参数cacheFirstfalse和true来区分是否走缓存,正常的业务机制可能是通过后台代码逻辑自行控制的,这…...
数字化转型实践:金蝶云星空与钉钉集成提升企业运营效率
数字化转型实践:金蝶云星空与钉钉集成提升企业运营效率 本文介绍了深圳一家电子设备制造企业在数字化转型过程中,如何通过金蝶云星空与钉钉的高效集成应对挑战、实施解决方案,并取得显著成果。集成项目在提高沟通效率、自动化审批流程和监控异…...
Flutter 鸿蒙next 中使用 MobX 进行状态管理
Flutter & 鸿蒙next 中使用 MobX 进行状态管理 在应用开发中,状态管理是一个至关重要的环节,特别是在复杂的Flutter或鸿蒙next项目中。状态的变化往往会影响UI的更新,因此,选择一种高效、灵活的状态管理工具显得尤为重要。Mo…...
1.62亿元!812个项目立项!上海市2024年度“科技创新行动计划”自然科学基金项目立项
本期精选SCI&EI ●IEEE 1区TOP 计算机类(含CCF); ●EI快刊:最快1周录用! 知网(CNKI)、谷歌学术期刊 ●7天录用-检索(100%录用),1周上线; 免费稿件评估 免费匹配期…...
Redis数据库测试和缓存穿透、雪崩、击穿
Redis数据库测试实验 实验要求 1.新建一张user表,在表内插入10000条数据。 2.①通过jdbc查询这10000条数据,记录查询时间。 ②通过redis查询这10000条数据,记录查询时间。 3.①再次查询这一万条数据,要求根据年龄进行排序&#…...
[vulnhub] DarkHole: 2
https://www.vulnhub.com/entry/darkhole-2,740/ 端口扫描主机发现 探测存活主机,185是靶机 # nmap -sP 192.168.75.0/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-08 18:02 CST Nmap scan report for 192.168.75.1 Host is up (0.…...
《XGBoost算法的原理推导》12-2 t轮迭代中对样本i的预测值 公式解析
本文是将文章《XGBoost算法的原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。 好的,公式(12-2)表示的是 XGBoost 在第 t t t 轮迭代中对样本 i i i 的预测值。它说明了在第 t t t 轮迭代中,模型的预测是通过累加之前…...
./bin/mindieservice_daemon启动成功
接MindIE大模型测试及报错Fatal Python error: PyThreadState_Get: the function must be called with the GIL held,-CSDN博客经过调整如下红色部分参数,昇腾310P3跑起来了7b模型: rootdev-8242526b-01f2-4a54-b89d-f6d9c57c692d-qjhpf:/home/apulis-de…...
Linux: network: ip link M-DOWN的具体含义是什么?
文章目录 参考简介实例代码解释openstack上的显示如果是在一个interface上建立了vlan参考 https://unix.stackexchange.com/questions/348327/using-ip-what-does-m-down-mean www.policyrouting.org/iproute2.doc.html#ss9.1 简介 是指上一级的接口的状态。 实例 4: ersp…...
Spring中的过滤器和拦截器
Spring中的过滤器和拦截器 一、引言 在Spring框架中,过滤器(Filter)和拦截器(Interceptor)是实现请求处理的两种重要机制。它们都基于AOP(面向切面编程)思想,用于在请求的生命周期…...
leetcode20.括号匹配
题目描述 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个…...
Unity性能优化-具体操作
批量渲染是通过减少CPU向GPU发送渲染命令(DrawCall)的次数,以及减少GPU切换渲染状态的次数,尽量让GPU一次多做一些事情,来提升逻辑线和渲染线的整体效率。 Draw Call性能消耗原因是命令从Runtime到Driver的过程中&…...
【嵌入式开发——ARM】1ARM架构
嵌入式领域,使用ARM架构的芯片公司可不占少数吧,intel的x86架构主要占据PC、服务器市场,ARM架构主要占据移动市场。x86架构和ARM架构不同的主要原因,是背后使用的计算机指令集不同。计算机有自己的语言系统(汇编&#…...
Linux中.NET读取excel组件,不会出现The type initializer for ‘Gdip‘ threw an exception异常
组件,可通过nuget安装,直接搜名字: ExcelDataReader using ConsoleAppReadFileData.Model; using ExcelDataReader; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Task…...
mmclassification的配置文件样本
# 需要修改的参数 img_size 480 class_name [fuqi,ok] num_classes len(class_name) data_root /home/apulis-test/teamdata/yz_dataset/fuqi max_epochs300 val_interval1 train_batch_size 16 val_batch_size 1 load_from "swin_tiny_224_b16x64_300e_imagenet_…...
Java基础——类和对象的定义链表的创建,输出
目录 什么是类? 什么是对象? 如何创建链表? 尾插法: 头插法: 输出链表的长度 输出链表的值 什么是类? 创建Java程序必须创建一个类class. .java程序需要经过javac指令将文件翻译为.class字节码文件,…...
保姆级教程:用Python复现红外小目标检测的LCM算法(附完整代码)
从零实现红外小目标检测:LCM算法Python实战指南 在计算机视觉领域,红外小目标检测一直是颇具挑战性的任务。不同于常规物体检测,红外图像中的目标往往只有几个像素大小,缺乏纹理和形状特征。传统基于深度学习的方法在这种场景下常…...
从专利大国到专利强国:企业全球专利布局策略与实战指南
1. 从“专利大国”到“专利强国”:一场关于价值与布局的深度思考最近翻看一些行业旧闻,2016年EE Times上那篇关于中国专利“不出海”的讨论,现在读来依然很有嚼头。文章核心就一句话:根据世界知识产权组织(WIPO&#x…...
Linaria与Bun集成:极速JavaScript运行时的样式处理终极指南 [特殊字符]
Linaria与Bun集成:极速JavaScript运行时的样式处理终极指南 🚀 【免费下载链接】linaria Zero-runtime CSS in JS library 项目地址: https://gitcode.com/gh_mirrors/li/linaria 在现代前端开发中,CSS-in-JS技术已经成为构建可维护、…...
免费抠图软件一键抠图无水印有哪些?2026年最实用工具对比测试
最近很多粉丝问我,有没有真正免费、无水印、操作简单的抠图软件?说实话,市面上的抠图工具五花八门,但真正好用的没几个。我这次花了不少时间测试了十多款抠图软件,今天就把我的真实体验分享给大家。为什么你需要一个好…...
Cadence ADE XL/ADEL仿真提速与避坑指南:从APS多核设置到收敛问题解决
Cadence ADE XL/ADEL仿真提速与避坑指南:从APS多核设置到收敛问题解决 在集成电路设计领域,仿真效率直接决定了产品迭代速度。当电路规模达到数百万晶体管级别时,一次仿真可能耗费数小时甚至数天。本文将分享一套经过实战验证的Cadence仿真优…...
科技与科学领域重点新闻摘要-2026年5月13日
科技与科学领域重点新闻摘要 日期: 2026年5月13日 1. Nature发布2026年最值得关注的七大技术 核心要点: 《自然》杂志评选出2026年七大关键技术,包括异种生物器官移植、AI天气预报、可控核聚变、光学显微脑图谱、mRNA疗法、高精度天文成像和量子计算,这…...
代码托管工具在GEO工具中表现分析
随着生成式引擎优化(GEO)在技术选型决策中的影响持续扩大,AI搜索工具对代码托管、DevOps及制品管理工具的推荐结果,正在成为企业评估平台价值的重要参考。2026年,不同规模和需求的团队在借助AI搜索获取工具推荐时&…...
信息时代个人知识管理:从碎片化信息到结构化洞察的实践指南
1. 信息海洋中的航行:从碎片到洞察我们正漂浮在一片前所未有的信息海洋里。每天,无数的邮件、通知、文章、帖子像潮水般涌来,我们则像一个个拾贝者,快乐地捡拾着那些零碎的趣闻和知识的金块。这种感觉很奇妙,不是吗&am…...
汽车科技前沿:从上海车展看电动化、自动驾驶与供应链变革
1. 四月汽车科技前沿动态概览又到了每月梳理行业动态的时候了。四月份的汽车科技圈,用一个词来形容就是“多点开花”。上海车展的盛大回归,像一剂强心针,宣告了全球汽车产业活力的全面复苏。与此同时,软件定义汽车的浪潮下&#x…...
GaussDB 操作时间【玩转PB级数仓GaussDB(DWS)】
前言在使用 GaussDB DWS 进行数仓相关操作时,我们经常会涉及到对时间的操作,本文主要来讲解下有关时间操作的定义及函数格式化字符串模式描述HH一天的小时数(01-12)HH12一天的小时数(01-12)HH24一天的小时数(00-23)MI分钟(00-59)ss秒(00-59)MS毫秒(000-9…...
