このプロンプトを開発者コンソールにコピーして、自分で試してみてください!

内容
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)