- Basic Python fundamentals (基础的对于 Python 的了解)
- Python Environment - 可以运行 Python Notebook 的环境
Claude Model:不同模型的区别在于优化的目标不一样,对于智能和速度的平衡不一样。(intelligence & speed
)
Opus : Intelligence ⬆️,适合复杂科研项目,可以持续运行数小时完成多步复杂任务 Sonnet: 智能、费用、速度的完美平衡,适合用于大多数实践场景
Python Notebook(通常是 Jupyter Notebook)
Python Notebook(通常是 Jupyter Notebook) 是一个交互式的 Python 开发环境,常用于数据分析、机器学习、可视化和教学。你可以一边写代码一边运行,并且在同一页面展示结果(包括文字、表格、图表等)
使用 conda
conda info --envs
conda activate (envname)
conda install jupyterlab
conda install notebook
在目录下运行:
jupyter notebook
会自动启动一个 localhost:8888
的页面。
- 点击右上角 New ⇒ Python 3 (ipykernel)
在 Jupyter
网页里写代码然后 Shift + Enter
执行即可。
- 安装依赖 Install dependencies
Note
前面的 百分号
%
是 IPython 的魔法命令(magic command),它不是普通的 Python 语法。在 Jupyter Notebook 里,如果直接写pip install
,它可能会装到系统 Python,而不是当前 Notebook 内核用的 Python,导致 notebook 里还是导入不了包。所以 IPython 提供了一个 魔法命令%pip
(和%conda
类似),保证它会把包装到 当前内核 所用的环境。
%pip install anthropic python-dotenv
Tip
可以在 Cell 上右键 -清除 Cell Output,避免过多的日志堆积
- 将 KEY 存储在
.env
文件下,这默认 Git Ignore,也就不太可能被泄漏出去。
The ‘create’ function
Generate text
创建 Claude Client
的构造函数
- User Message: Content we want to feed into the model
- Assistant Message: Content the model has produced
模型本身不存储任何信息
为了进行多轮对话,必须将之前的模型返回的内容携带一起返回,共同构成对话的“上文”。
所以当进行对话时,必须维护一个 list
来存储与 LLM交换的所有信息,从而保留完整的上下文。
安装依赖
# Install dependencies、
%pip install anthropic python-dotenv
定义环境变量
在 Notebook(.ipynb
)文件平级的地方新建 .env
文件,可以自定义调用的 baseUrl
和 token
ANTHROPIC_BASE_URL="XXXXXXX"
ANTHROPIC_AUTH_TOKEN="XXXXXXX"
加载环境变量
打印方法仅为了验证环境变量已经成功加载。
# Load env environment
from dotenv import load_dotenv
import os
load_dotenv()
base_url = os.getenv("ANTHROPIC_BASE_URL")
auth = os.getenv("ANTHROPIC_AUTH_TOKEN")
print("ANTHROPIC_BASE_URL=", base_url)
print("ANTHROPIC_AUTH_TOKEN =", auth)
定义工具类
from anthropic import Anthropic
client = Anthropic()
def add_user_message(messages, text):
user_message = {"role": "user", "content": text}
messages.append(user_message)
def add_assistant_message(messages, text):
assistant_message = {"role": "assistant", "content": text}
messages.append(assistant_message)
def chat(messages):
# Make a request
message = client.messages.create(
model = "claude-sonnet-4-5-20250929",
max_tokens = 1000,
messages = messages
)
return message.content[0].text
实际多轮对话
# Make a starting list of messages
messages = []
# Add in the initial user question of "Define quantum computing in one sententce"
add_user_message(messages, "Define quantum computing in one sententce")
# Pass the list of messages into 'chat' to get an answer
ret_message = chat(messages)
# Take the ansewer and add it as an assistant
add_assistant_message(messages, ret_message)
# add in the user's follow-up question
add_user_message(messages, "Give me another sentence")
# Call chat again with the list of messages to get a final answer
ret_message = chat(messages)
Chat Bot Exercise 聊天机器人小练习
Make a chat bot using the three helper funtions we just put together.
1. Prompt the user to enter some input using the built-in "input" function
2. Add it to a list of messages
3. Call the API
4. Add generated text to the list of messages.
5. Print the generated text
6. Repeat from #1
Note
while True
一直等待用户的输入- 使用
built-in
的input
方法,读取用户输入