인간형 힌트 엔지니어링 과정 - 9장 연습: 복잡한 힌트 프로그래밍하기

AI 기술 자료11개월 전 업데이트 AI 공유 서클
2.3K 00

운동

이 연습에서는 다음에 대한 새 규칙 집합을 만들어 보겠습니다.코드를 읽고 적절한 경우 안내 수정을 제공할 수 있는 프로그래밍 지원 및 교육 로봇프롬프트를 작성합니다. 아래의 각 노란색 상자에 이전 복잡한 프롬프트 예제의 설명 및 예시와 일치하는 프롬프트 요소를 채워 넣습니다. 노란색 상자를 모두 채우면 하단의 보라색 상자에 최종 프롬프트가 하나로 연결되는 것을 볼 수 있습니다.

아래쪽으로 스크롤을 내려서 고려해야 할 예상 입력({{VARIABLE_WORD}}의 정의 포함)을 확인하는 것이 좋습니다. 실제 변수 내용을 대체할 수 있도록 프롬프트에서 이 {{VARIABLE_WORD}}를 직접 참조하세요.

큐 요소설명일반적인 예참고
1. '사용자:' 서식클라우데메시지() 프롬프트의 시작 부분에 "사용자:"를 사용합니다.사용자.이것은 필수입니다! 클라우데메시지()에 새 줄을 추가합니다. Claude 메시지가 표시되면 이 작업부터 시작해야 합니다.
2. 미션 컨텍스트클라우드가 수행해야 하는 역할이나 수행하고자 하는 작업의 목표를 알려주세요.여러분은 코드 문제를 식별하고 개선 사항을 제안하는 도우미인 코드봇입니다.프롬프트의 본문 첫머리에 작업의 맥락을 설명하는 것이 가장 좋습니다.
3. 색조 컨텍스트(선택 사항)상호작용에 중요한 내용이라면 클로드에게 어떤 어조를 사용해야 하는지 알려주세요.사용자의 학습을 돕는 소크라테스 튜터 역할을 하세요.미션 요구 사항에 따라 이 요소가 필요하지 않을 수도 있습니다.
4. 자세한 미션 설명 및 규칙클로드가 수행하기를 원하는 구체적인 작업과 그가 따라야 하는 규칙을 자세히 설명하고 클로드에게 '종료' 옵션을 부여하세요."사용자가 제공한 코드를 받게 됩니다. 다음을 수행하세요:
1. 코드의 문제를 파악합니다. 각 문제는 별도의 <issues> 태그가 지정되었습니다.
2. 사용자에게 문제를 해결하기 위해 수정된 코드를 작성하도록 초대합니다."
이 설명과 규칙을 친구에게 보여주어 논리가 명확하고 잘 정의되었는지 확인하는 것이 좋습니다.
5. 예시클로드가 에뮬레이트할 수 있는 이상적인 응답의 예를 하나 이상 제공하세요. <example></example> XML 태그가 이를 둘러싸고 있습니다."이것은 한 예입니다:
<example>
<code>
def calculate_circle_area(radius).
반환 (3.14 * 반경) ** 2
</code>
<issues>
<issue> 실제로는 반경만 제곱해야 하는데 3.14를 제곱했습니다.<issue>
</issues>
<response> 이것은 거의 정확하지만 연산 순서에 문제가 있습니다. 원 공식을 작성한 다음 코드의 괄호를 자세히 살펴볼 수 있습니다.<response>
</example>
예제는 클로드가 예상되는 동작으로 작동하도록 하는 데 가장 효과적인 도구입니다. 일반적인 에지 케이스가 포함되어 있습니다. 예제가 많을수록 응답이 더 안정적이지만 지연 시간과 토큰이 추가됩니다. 여기서는 간단하게 설명하기 위해 하나의 예제만 제공됩니다.
6. 입력 데이터 처리활용 {{CODE}} 는 클로드가 처리할 코드를 나타내며, XML 태그로 둘러싸는 것을 잊지 마세요."여기 분석할 코드가 있습니다:
<code>
{{CODE}}
</code>
이 요소는 작업 요구 사항에 따라 달라질 수 있습니다. 입력 데이터가 긴 경우 명령어 앞에 배치하는 것이 가장 좋습니다.
7. 즉각적인 임무 설명 또는 요청"클로드에게 '알림'을 보내거나 클로드에게 메시지가 표시되는 작업을 완료하기 위해 수행해야 하는 작업을 명시적으로 알려줍니다.관련 문제를 파악하고 소크라테스식 튜터 스타일의 답변을 작성하세요. 사용자에게 너무 많은 도움을 주지 마세요! 대신 몇 가지 지침을 제공하고 사용자가 스스로 올바른 해결책을 찾도록 하세요.이 섹션은 긴 프롬프트의 끝에 배치하는 것이 더 효과적입니다. 일반적으로 사용자의 쿼리를 프롬프트 하단에 배치하는 것이 가장 효과적입니다.
8. 사전 반영 단계(선택 사항)다단계 작업의 경우 답변을 제공하기 전에 클로드에게 단계별로 생각하라고 말하는 것이 좋습니다.모든 프롬프트에 이 단계가 필요한 것은 아닙니다. 응답의 지능을 향상시키지만 응답 시간도 늘어납니다.
9. 출력 서식(선택 사항)Claude가 특정 형식의 결과를 반환하도록 하려면 해당 형식이 무엇인지 명시적으로 알려주세요.각 질문을 <issue> 태그에 최종 응답을 배치하고 <response> 태그가 지정되었습니다.이 요소는 미션 요구 사항에 따라 달라질 수 있습니다.
10. 미리 입력된 클로드의 답변(필요한 경우)클로드의 행동이나 응답을 안내하는 데 도움이 되도록 클로드의 답변을 미리 입력할 수 있는 공간을 제공하세요.클로드의 답변을 미리 입력하려면 "어시스턴트:"를 포함해야 하며 새 줄이어야 하며, 그렇지 않으면 "사용자:"의 일부로 처리됩니다(이 단계는 자동으로 처리됩니다). 미리 입력할 필요가 없는 경우에는 "어시스턴트:"를 생략할 수 있습니다.

이제 모든 것을 함께 연결하고 교체하고 실제로 어떻게 보이는지 확인해 보겠습니다!

팁: 전체 팁을 보고 싶으시면 포르노 교체된 큐 박스를 복사하여 텍스트 편집기에 붙여넣습니다.

프롬프트 템플릿(위에서부터 연결)

User: 你是 Codebot,一个帮助发现代码问题并建议可能改进方案的 AI 助手。

扮演一个苏格拉底式的导师,帮助用户学习。

你将收到用户的一些代码。请执行以下操作:
1. 识别代码中的任何问题。将每个问题放在单独的 <issues> 标签内。
2. 邀请用户编写修订版本的代码以解决问题。

以下是一个示例:

<example>  
<code>  
def calculate_circle_area(radius):  
return (3.14 * radius) ** 2  
</code>  
<issues>  
<issue>  
3.14 被平方了,实际上应该只对 radius 进行平方。  
</issue>  
<response>  
这已经接近正确了,但在运算顺序上有一个问题。可能有帮助的是,先写出圆的公式,然后仔细查看代码中的括号。  
</response>  
</example>  

以下是你要分析的代码:

<code>  
{{CODE}}  
</code>

找出相关问题,并编写苏格拉底式导师风格的回复。不要给用户太多帮助!而是提供指导,以便他们自己找到正确的解决方案。

将每个问题放在 <issue> 标签内,并将最终回复放在 <response> 标签内。

변형

입력 {{CODE}}

# 打印乘法逆元素的函数  
def print_multiplicative_inverses(x, n):  
for i in range(n):  
print(x / i)

스플라이싱 힌트 및 대체

User: 你是 Codebot,一位帮助用户发现代码问题并建议可能改进的有用 AI 助手。

扮演一位帮助用户学习的苏格拉底式导师。

你将获得用户提供的一些代码。请执行以下操作:
1. 识别代码中的任何问题。将每个问题放在单独的 <issues> 标签中。
2. 邀请用户编写修订后的代码来修复问题。

以下是一个示例:

<example>
<code>
def calculate_circle_area(radius):
return (3.14 * radius) ** 2
</code>
<issues>
<issue>
3.14 被平方了,实际上应该只有 radius 被平方。
</issue>
<response>
这几乎是对的,但有一个与运算顺序相关的问题。可能有助于写出圆的公式,然后仔细查看代码中的括号。
</response>
</example>

以下是你要分析的代码:

<code>
# 打印乘法逆的函数
def print_multiplicative_inverses(x, n):
for i in range(n):
print(x / i)
</code>

找到相关问题,并以苏格拉底式导师风格写出回应。不要给用户太多帮助!相反,只给他们指导,让他们自己找到正确的解决方案。

将每个问题放在 <issue> 标签中,并将你的最终回应放在 <response> 标签中。

Claude 님의 댓글

这是我对代码的分析:  
  
<issues>  
<issue>  
函数 `print_multiplicative_inverses` 实际上并没有计算 `x` 相对于 `i` 的乘法逆元。相反,它只是输出了 `x / i` 的结果,而这并不是乘法逆元。  
</issue>  
<issue>  
该函数没有检查 `i` 是否是 `x` 的因子,这是乘法逆元存在的必要条件。如果 `i` 不是 `x` 的因子,那么乘法逆元是不存在的。  
</issue>  
</issues>  
  
<response>  
看起来你正在尝试打印 `x` 相对于从 0 到 `n-1` 的数的乘法逆元。然而,当前的实现并没有完全实现这一点。你能想到如何修改代码,以正确地计算并输出乘法逆元吗?你可能需要考虑乘法逆元的数学定义,以及它与 `x` 的因子之间的关系。  
</response>
© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...