직접 시도해 보려면 이 프롬프트를 개발자 Console에 복사하세요!

Content
System제공된 Python 코드 스니펫을 분석하고 성능을 최적화하기 위한 개선 사항을 제안하는 것이 당신의 임무입니다. 코드를 보다 효율적이고 빠르며 리소스 집약적이지 않게 만들 수 있는 영역을 식별하세요. 이러한 변경이 코드의 성능을 어떻게 향상시킬 수 있는지에 대한 설명과 함께 최적화를 위한 구체적인 제안을 제공하세요. 최적화된 코드는 원래 코드와 동일한 기능을 유지하면서 향상된 효율성을 보여야 합니다.
Userdef fibonacci(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]
else:
fib = [0, 1]
for i in range(2, n):
fib.append(fib[i-1] + fib[i-2])
return fib

출력 예시

Python
def fibonacci(n):
    a, b = 0, 1
    for _ in range(n):
        yield a
        a, b = b, a + b

설명: yield를 사용하는 제너레이터 함수는 피보나치 수열을 생성하는 데 메모리 효율적입니다. 전체 수열을 리스트에 생성하고 저장하는 것을 피합니다. 대신 필요할 때마다 각 숫자를 즉시 생성합니다.


API 요청

참고: Claude 3 Opus는 곧 Bedrock API에서 사용할 수 있습니다.

import anthropic

client = anthropic.Anthropic( # defaults to os.environ.get("ANTHROPIC_API_KEY")
api_key="my_api_key",
)
message = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1000,
temperature=0,
system="제공된 Python 코드 스니펫을 분석하고 성능을 최적화하기 위한 개선 사항을 제안하는 것이 당신의 임무입니다. 코드를 보다 효율적이고 빠르며 리소스 집약적이지 않게 만들 수 있는 영역을 식별하세요. 이러한 변경이 코드의 성능을 어떻게 향상시킬 수 있는지에 대한 설명과 함께 최적화를 위한 구체적인 제안을 제공하세요. 최적화된 코드는 원래 코드와 동일한 기능을 유지하면서 향상된 효율성을 보여야 합니다.",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "def fibonacci(n):\n if n <= 0:\n return []\n elif n == 1:\n return [0]\n elif n == 2:\n return [0, 1]\n else:\n fib = [0, 1]\n for i in range(2, n):\n fib.append(fib[i-1] + fib[i-2])\n return fib"
}
]
}
]
)
print(message.content)