Tracks
Tuần trước, Claude Opus 4.7 đã được phát hành, phiên bản mới nhất của mô hình chủ lực từ Anthropic. Với việc tăng độ phân giải thị giác khoảng ba lần và tuân thủ sát hơn các lời nhắc phức tạp, Opus 4.7 được xây dựng để điều hướng giao diện người dùng tinh vi và phân tích các sơ đồ kỹ thuật độ trung thực cao với độ chính xác tỉ mỉ ở cấp độ mới.
Trong hướng dẫn này, tôi sẽ giới thiệu cho bạn những thay đổi chính trong Claude Opus 4.7. Chúng ta sẽ khám phá mô hình này là gì, các tính năng mới quan trọng mà nó mang lại và cách thiết lập cục bộ bằng Python. Cuối cùng, chúng ta sẽ xây dựng một dự án minh họa đa bước, hoạt động đầy đủ: bộ số hóa biểu đồ hình ảnh tự động, độ phân giải cao.
Tôi khuyên bạn nên học khóa Giới thiệu về các mô hình Claude nếu bạn muốn tìm hiểu thêm về các mô hình ngôn ngữ lớn (LLM) của Anthropic.
Claude Opus 4.7 là gì?
Claude Opus 4.7 là LLM chủ lực mới nhất của Anthropic. Do công ty chỉ giới hạn bản Mythos Preview mạnh hơn cho các chuyên gia bảo mật đã được phê duyệt, Opus 4.7 vẫn là giao diện lập trình ứng dụng chủ lực, có sẵn rộng rãi cho các nhà phát triển nói chung.
Phiên bản này mang đến nâng cấp ở một vài khía cạnh:
- Diễn giải dữ liệu hình ảnh
- Logic toán học
- Khả năng làm theo hướng dẫn
- Ghi nhớ nội dung từ môi trường mã phức tạp
Các nhà phát triển ghi nhận sự cải thiện rõ rệt trong khả năng tuân thủ hướng dẫn nghiêm ngặt và tránh các vòng lặp xử lý lặp đi lặp lại. Opus 4.7 có xu hướng tự kiểm tra lại công việc và rà soát giả định trước khi viết mã, từ đó giảm mạnh khả năng tác tử bị mắc kẹt trong các vòng lặp lỗi liên tục.
Khi xem dữ liệu đối chuẩn, một kết quả nổi bật. Trong bài kiểm tra khắt khe SWE-bench Pro, đo lường mức độ AI sửa lỗi phần mềm nguồn mở thực trên GitHub, Opus 4.7 đạt mức tăng 10,9 điểm so với tiền nhiệm. Bước nhảy này củng cố vai trò của dòng mô hình Opus như bậc nhất trong lập trình tác tử.
Để tìm hiểu thêm về mô hình, hãy xem hướng dẫn về Claude Opus 4.7 của chúng tôi.
Có gì mới trong Claude Opus 4.7?
Việc chuyển sang Opus 4.7 giới thiệu một số mặt phẳng điều khiển hoàn toàn mới để quản lý tài nguyên tính toán và một vài thay đổi trong kỹ thuật nhắc. Dưới đây là các thay đổi và tính năng mới quan trọng bạn cần biết:
-
Thị giác đa phương thức độ phân giải cao: Mô hình đẩy kích thước ảnh tối đa được chấp nhận lên tới 2.576 pixel ở cạnh dài nhất, cho độ phân giải hiệu dụng khoảng 3,75 megapixel. Ánh xạ tọa độ hình học đã được đại tu, nghĩa là các tọa độ hộp giới hạn hiện có ánh xạ 1:1 nghiêm ngặt với pixel ảnh thực, loại bỏ nhu cầu về các phép tính hệ số tỉ lệ phức tạp.
-
Suy luận thích ứng: Ngân sách suy nghĩ mở rộng (ví dụ,
budget_tokens) đã bị loại bỏ hoàn toàn. Gửi yêu cầu theo chuẩn cũ sẽ trả về lỗi từ chối HTTP 400. Thay vào đó, Opus 4.7 bắt buộc sử dụng "adaptive thinking" (thinking: {"type": "adaptive"}), cho phép mô hình tự động phân bổ ngân sách suy luận nội bộ dựa trên độ phức tạp của lời nhắc. -
Kiểm soát mức độ nỗ lực chi tiết: Một giá trị tham số mới,
xhigh(rất cao), được đặt toán học giữa cấu hình nỗ lực chuẩnhighvà mức tối đamax. Anthropic đặc biệt khuyến nghịxhighlàm điểm khởi đầu tối ưu cho lập trình tác tử và giải quyết vấn đề phức tạp. Mô hình cũng chuyển mạnh sang tính "nghĩa đen"; nó thực thi chính xác văn bản được cung cấp mà không "đọc giữa các dòng". -
Ngân sách tác vụ: Để giảm thiểu toán học các vòng lặp tác tử mất kiểm soát, Opus 4.7 giới thiệu "task budgets" (hiện đang ở giai đoạn beta công khai). Bằng cách định nghĩa
task_budget, nhà phát triển cho mô hình biết rõ tổng hạn mức token tuyệt đối cho toàn bộ vòng đời tác vụ. Mô hình liên tục theo dõi bộ đếm ngược này và tự điều tiết để đảm bảo hoàn thành tác vụ một cách trơn tru. -
Công cụ bộ nhớ phía máy khách: Opus 4.7 đặc biệt giỏi trong việc ghi và đọc từ một scratchpad được quản lý. Để chính thức hóa điều này, Anthropic đã nâng cấp công cụ bộ nhớ phía máy khách, cung cấp khả năng đồng bộ hóa dựa trên git được tối ưu hóa cho quy trình MemFS (Memory File System).
Thiết lập môi trường cho Claude Opus 4.7
Trước khi bắt đầu viết mã cho dự án demo, chúng ta cần thiết lập môi trường để hỗ trợ Opus 4.7. Trong hướng dẫn này, chúng ta sẽ dùng Python bất đồng bộ, vì đây là tiêu chuẩn ngành cho các quy trình công việc dữ liệu chuyên sâu, độ đồng thời cao.
Chúng ta cần cài Python 3.8 trở lên trên hệ thống. Tôi rất khuyến nghị tạo một môi trường ảo tách biệt để tránh xung đột phụ thuộc.
Cách tạo và kích hoạt môi trường có tên opus_4_7 bằng Anaconda như sau:
conda create -n opus_4_7 python=3.10 -y
conda activate opus_4_7
Xây dựng bộ số hóa biểu đồ tự động, độ phân giải cao với Claude Opus 4.7
Để đưa năng lực lý thuyết của Claude Opus 4.7 vào ứng dụng thực tế, chúng ta sẽ xây dựng một bộ số hóa biểu đồ tự động, độ phân giải cao.
Các nhà khoa học dữ liệu thường xuyên gặp dữ liệu giá trị bị khóa trong hình ảnh tĩnh hoặc PDF (như biểu đồ điểm, biểu đồ cột hoặc đồ thị đường). Khi dùng các mô hình AI cũ hơn, việc tự động trích xuất dữ liệu từ các biểu đồ này đòi hỏi phải viết các phép tính hệ số tỉ lệ phức tạp.
Trong dự án này, chúng ta sẽ xây dựng một script Python nhận ảnh chụp màn hình của bất kỳ biểu đồ nào và tạo tệp CSV chứa dữ liệu thô.
Cụ thể, chúng ta sẽ:
-
Dùng thị giác 3,75MP mới và ánh xạ pixel 1:1 để đọc đồ thị một cách hoàn hảo.
-
Dùng suy luận thích ứng ở mức nỗ lực
xhighđể suy ra chặt chẽ trục X và Y. -
Xuất một Pandas DataFrame sạch chứa chính xác các điểm dữ liệu.
Tôi sẽ hướng dẫn bạn từng bước. Hướng dẫn này là độc lập, nhưng nếu bạn muốn tìm hiểu thêm về năng lực của mô hình hoặc gặp khó khăn khi triển khai tác tử của riêng mình, hãy xem tài liệu chính thức.
Bước 1: Thiết lập khóa API
Trước hết, chúng ta cần bật xác thực. Để làm vậy, hãy tạo khóa API trên Bảng điều khiển nhà phát triển Anthropic.
Không bao giờ hardcode thông tin xác thực API trực tiếp vào kho mã nguồn. Thay vào đó, tạo tệp .env an toàn ở thư mục gốc của dự án:
ANTHROPIC_API_KEY=<paste_your_api_key_here>
Lưu ý mô hình không miễn phí. Để kích hoạt khóa API, chúng ta cần nạp tiền vào tài khoản. Tin tốt là mức giá giống như hai mô hình trước:

Bước 2: Cài đặt phụ thuộc Python
Tiếp theo, hãy cài các thư viện cần thiết. Chúng ta sẽ cần:
-
anthropic, SDK chính thức của Anthropic để tích hợp API; -
python-dotenvđể quản lý biến môi trường; -
pandasđể cấu trúc dữ liệu đã trích xuất.
Mở terminal và chạy lệnh sau (đảm bảo môi trường opus_4_7 đã tạo ở trên đang hoạt động):
pip install anthropic python-dotenv pandas
Bước 3: Tạo chatbot văn bản với suy luận thích ứng
Hãy xây nền tảng bằng cách tạo giao diện dòng lệnh bất đồng bộ cơ bản. Bước này giới thiệu mức nỗ lực xhigh mới của Opus 4.7 và kiến trúc suy luận thích ứng. Tạo tệp chart_digitizer.py và thêm đoạn mã sau:
import os
import asyncio
from dotenv import load_dotenv
from anthropic import AsyncAnthropic
# Ingest secure environment variables
load_dotenv()
# Initialize the asynchronous Anthropic client
client = AsyncAnthropic(
api_key=os.environ.get("ANTHROPIC_API_KEY")
)
async def test_adaptive_thinking():
print("Initiating Text Agent with Adaptive Thinking...")
response = await client.messages.create(
model="claude-opus-4-7",
max_tokens=64000,
stream=True, # Required for long responses
thinking={"type": "adaptive"}, # NEW: Replaces budget_tokens
output_config={"effort": "xhigh"}, # NEW: Extra high effort level
messages=[
{"role": "user", "content": "Explain why 1:1 pixel mapping is crucial for data extraction."}
]
)
# Parse the streaming response structure
async with response as stream:
async for event in stream:
if event.type == "content_block_start":
if event.content_block.type == "thinking":
print("\n--- Internal Reasoning Trace ---")
elif event.content_block.type == "text":
print("\n--- Final Output ---")
elif event.type == "content_block_delta":
if event.delta.type == "thinking_delta":
print(event.delta.thinking, end="", flush=True)
elif event.delta.type == "text_delta":
print(event.delta.text, end="", flush=True)
if __name__ == "__main__":
asyncio.run(test_adaptive_thinking())
Chúng ta có thể chạy bằng lệnh:
python chart_digitizer.py
Script này minh họa cách gửi yêu cầu tới Claude Opus 4.7, nhưng chưa trích xuất dữ liệu từ biểu đồ. Nó chỉ gửi lời nhắc:
Explain why 1:1 pixel mapping is crucial for data extraction.
Bước 4: Định nghĩa lược đồ trích xuất dữ liệu
Để đảm bảo mô hình cung cấp dữ liệu sạch chúng ta có thể dùng trong Pandas, chúng ta sẽ dùng một "Tool" để buộc đầu ra có cấu trúc. Ta định nghĩa một lược đồ JSON cho Claude biết chính xác cách định dạng các tọa độ biểu đồ đã trích xuất.
Cập nhật tệp chart_digitizer.py để thêm lược đồ tool và system prompt sau khi khởi tạo client:
# Define the JSON schema to force structured data extraction
extraction_tool = {
"name": "save_chart_data",
"description": "Saves the extracted data points from the chart into a structured format.",
"input_schema": {
"type": "object",
"properties": {
"x_axis_label": {"type": "string", "description": "The label for the X axis"},
"y_axis_label": {"type": "string", "description": "The label for the Y axis"},
"data_points": {
"type": "array",
"items": {
"type": "object",
"properties": {
"x": {"type": "number", "description": "X-axis value"},
"y": {"type": "number", "description": "Y-axis value"}
},
"required": ["x", "y"]
}
}
},
"required": ["x_axis_label", "y_axis_label", "data_points"]
}
}
SYSTEM_PROMPT = """
You are an expert Data Scientist. Your task is to digitize the provided chart image.
Execute the following strict, literal directives:
1. Scan the image using your 1:1 pixel mapping capabilities to identify the X and Y axes, their scales, and all plotted data points.
2. Utilize your adaptive thinking space to perform the mathematical conversions from visual pixel locations to the actual chart values.
3. You MUST use the 'save_chart_data' tool to output the final extracted data points.
Do not guess. Be highly precise.
"""
Để buộc mô hình dùng tool và system prompt, chúng ta cập nhật yêu cầu để bao gồm các tham số tool và system:
response = await client.messages.create(
model="claude-opus-4-7",
max_tokens=64000,
stream=True,
thinking={"type": "adaptive"},
system=SYSTEM_PROMPT, # Add to enable the system prompt
tools=[extraction_tool], # Add to provide the tool to the model
messages=messages,
output_config={
"effort": "xhigh",
}
)
Bước 5: Thêm ngân sách tác vụ cho suy luận hình ảnh phức tạp
Việc ánh xạ trực quan hàng trăm điểm dữ liệu và tính toán giá trị chính xác của chúng đòi hỏi xử lý nhận thức lớn. Để bảo vệ tín dụng tính toán, chúng ta đặt Ngân sách tác vụ. Chúng ta sẽ thiết lập giới hạn khuyến nghị là 80.000 token cho thao tác này.
Chúng ta có thể đặt giới hạn này trong yêu cầu bằng cách thêm task_budget vào output_config:
response = await client.messages.create(
model="claude-opus-4-7",
max_tokens=64000,
stream=True,
thinking={"type": "adaptive"},
system=SYSTEM_PROMPT,
tools=[extraction_tool],
messages=messages,
output_config={
"effort": "xhigh",
"task_budget": {"type": "tokens", "total": 80000} # Add to limit output tokens
}
)
Lưu ý các header beta cần thiết để mở khóa khả năng này. Để thiết lập, chúng ta cần cập nhật cách khởi tạo tác tử thành:
client = AsyncAnthropic(
api_key=os.environ.get("ANTHROPIC_API_KEY"),
default_headers={"anthropic-beta": "task-budgets-2026-03-13"}
)
Bước 6: Xây dựng bộ số hóa hình ảnh độ phân giải cao
Ở giai đoạn cuối, chúng ta tích hợp khả năng hình ảnh 3,75MP. Chúng ta sẽ xây một hàm tiện ích vững chắc để xử lý nạp ảnh và hoàn thiện mã để xuất tệp CSV chứa dữ liệu.
Đây là đoạn mã hoàn chỉnh cuối cùng cho bộ số hóa hình ảnh của chúng ta:
import os
import asyncio
import mimetypes
import sys
from dotenv import load_dotenv
from anthropic import AsyncAnthropic
import base64
import pandas as pd
# Ingest secure environment variables
load_dotenv()
# Initialize the asynchronous Anthropic client
client = AsyncAnthropic(
api_key=os.environ.get("ANTHROPIC_API_KEY"),
default_headers={"anthropic-beta": "task-budgets-2026-03-13"}
)
# Define the JSON schema to force structured data extraction
extraction_tool = {
"name": "save_chart_data",
"description": "Saves the extracted data points from the chart into a structured format.",
"input_schema": {
"type": "object",
"properties": {
"x_axis_label": {"type": "string", "description": "The label for the X axis"},
"y_axis_label": {"type": "string", "description": "The label for the Y axis"},
"data_points": {
"type": "array",
"items": {
"type": "object",
"properties": {
"x": {"type": "number", "description": "X-axis value"},
"y": {"type": "number", "description": "Y-axis value"}
},
"required": ["x", "y"]
}
}
},
"required": ["x_axis_label", "y_axis_label", "data_points"]
}
}
SYSTEM_PROMPT = """
You are an expert Data Scientist. Your task is to digitize the provided chart image.
Execute the following strict, literal directives:
1. Scan the image using your 1:1 pixel mapping capabilities to identify the X and Y axes, their scales, and all plotted data points.
2. Utilize your adaptive thinking space to perform the mathematical conversions from visual pixel locations to the actual chart values.
3. You MUST use the 'save_chart_data' tool to output the final extracted data points.
Do not guess. Be highly precise.
"""
def encode_high_res_image(image_path: str) -> tuple[str, str]:
if not os.path.exists(image_path):
raise FileNotFoundError(f"Critical Error: Image not located at {image_path}")
with open(image_path, "rb") as image_file:
base64_data = base64.b64encode(image_file.read()).decode("utf-8")
media_type, _ = mimetypes.guess_type(image_path)
if not media_type or not media_type.startswith("image/"):
media_type = "image/png"
return base64_data, media_type
async def digitize_chart(image_path: str = "chart.jpg"):
print("\nInitiating Opus 4.7 Autonomous Chart Digitization...")
IMAGE_PATH = image_path
base64_image_data, media_type = encode_high_res_image(IMAGE_PATH)
messages = [
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": media_type,
"data": base64_image_data
}
},
{
"type": "text",
"text": "Please digitize this chart and extract the data points."
}
]
}
]
response = await client.messages.create(
model="claude-opus-4-7",
max_tokens=64000,
stream=True,
thinking={"type": "adaptive"},
system=SYSTEM_PROMPT,
tools=[extraction_tool],
messages=messages,
output_config={
"effort": "xhigh",
"task_budget": {"type": "tokens", "total": 80000}
}
)
# Accumulate tool input and thinking from the stream
import json
tool_name = None
tool_input_json = ""
thinking_text = ""
async with response as stream:
async for event in stream:
if event.type == "content_block_start":
if event.content_block.type == "tool_use":
tool_name = event.content_block.name
tool_input_json = ""
elif event.content_block.type == "thinking":
thinking_text = ""
elif event.type == "content_block_delta":
if event.delta.type == "input_json_delta":
tool_input_json += event.delta.partial_json
elif event.delta.type == "thinking_delta":
thinking_text += event.delta.thinking
if thinking_text:
print("\n--- Internal Thinking (Math & Scaling) ---")
print(thinking_text[:500] + "...\n[Cognitive trace truncated]")
if tool_name == "save_chart_data" and tool_input_json:
print("\n--- Data Extraction Complete! ---")
chart_data = json.loads(tool_input_json)
df = pd.DataFrame(chart_data["data_points"])
print(f"\nX-Axis: {chart_data['x_axis_label']}")
print(f"Y-Axis: {chart_data['y_axis_label']}")
print("\nExtracted DataFrame:")
print(df.head(10))
output_path = "chart_data.csv"
df.to_csv(output_path, index=False)
print(f"\nDataFrame saved to {output_path}")
if __name__ == "__main__":
image_path = sys.argv[1] if len(sys.argv) > 1 else "chart.jpg"
asyncio.run(digitize_chart(image_path))
Để thử nghiệm, tôi đã tải biểu đồ này từ Yahoo Sports, hiển thị lượng khán giả FIFA World Cup theo năm, vào tệp có tên fifa.webp:
Chúng ta chạy script như trước nhưng truyền tên ảnh biểu đồ làm tham số:
python chart_digitizer.py fifa.webp
Kết quả như sau:
Extracted DataFrame:
x y
0 1930 590000
1 1934 375000
2 1938 375000
3 1950 1040000
4 1954 770000
5 1958 820000
6 1962 890000
7 1966 1560000
8 1970 1600000
9 1974 1870000
Nếu chúng ta vẽ lại, có thể xác minh rằng kết quả rất chính xác dù biểu đồ gốc không có nhãn trên trục y.
Kết luận
Chúng ta đã chuyển thành công từ việc xây dựng một chatbot bất đồng bộ đơn giản sang tạo một động cơ suy luận hình ảnh mạnh mẽ cho khoa học dữ liệu.
Vì mô hình không cần giảm mẫu, nó có thể đọc các biểu đồ phức tạp mà không mất độ chính xác dưới pixel. Tôi khuyên bạn thử nghiệm bộ mã này với nhiều đồ thị phức tạp để thực sự cảm nhận năng lực của nó!
Khi tôi thử mô hình trên nhiều biểu đồ, tôi ấn tượng đặc biệt với độ chính xác của nó. Script này không nên được coi là sản phẩm cuối cùng, vì vẫn còn nhiều chỗ để cải thiện. Nếu bạn muốn luyện tập kỹ năng, đây là vài gợi ý:
- Trích xuất siêu dữ liệu như đơn vị và nhãn trục: Trong ví dụ trên, biểu đồ hiển thị 3,5 nhưng chúng ta không biết đơn vị. Biểu đồ gốc biểu thị 3,5M, nghĩa là 3,5 triệu người.
- Cho phép điều khiển số lượng điểm lấy mẫu: Mô hình đã trích xuất một vài điểm chính, nhưng chưa trích xuất số người tham dự cho từng năm một.
Nếu bạn quan tâm đến lập trình với các mô hình của Anthropic, tôi rất khuyến nghị bạn học khóa Phát triển phần mềm với Claude Code!
Câu hỏi thường gặp về API Claude Opus 4.7
Sử dụng Claude Opus 4.7 tốn bao nhiêu?
Mức giá cơ bản của Opus 4.7 vẫn giống phiên bản trước: 5 USD cho mỗi triệu token đầu vào và 25 USD cho mỗi triệu token đầu ra. Tuy nhiên, do mô hình dùng bộ tokenizer được cập nhật mạnh giúp cải thiện xử lý văn bản, chi phí vận hành thực tế có thể cao hơn tới 35% đối với các lời nhắc nặng về mã do mật độ token tăng.
"Adaptive Thinking" là gì?
Adaptive Thinking cho phép mô hình tự động phân bổ ngân sách token suy luận nội bộ dựa trên độ phức tạp của lời nhắc nhận được. Tính năng này thay thế hoàn toàn "Extended Thinking" trước đây; nhà phát triển không còn có thể đặt giới hạn suy nghĩ nội bộ cứng bằng tham số budget_tokens.
Mức nỗ lực xhigh mới là gì?
Thiết lập nỗ lực xhigh (rất cao) là tham số mới nằm giữa các mức high và max. Nó cho phép nhà phát triển cân bằng chính xác độ trễ phản hồi, mức độ thông minh và chi phí token, và được Anthropic khuyến nghị rõ ràng như điểm khởi đầu tối ưu cho công việc lập trình và quy trình tác tử.
"Task Budgets" hoạt động như thế nào?
Hiện ở giai đoạn beta công khai, Task Budgets cho phép nhà phát triển định nghĩa một giới hạn token khuyến nghị cho toàn bộ vòng lặp tác tử nhiều lượt. Bằng cách đặt ngân sách (tối thiểu 20.000 token), mô hình sẽ thấy bộ đếm ngược đang chạy và tự động điều tiết việc dùng tool để đảm bảo hoàn thành tác vụ một cách trơn tru trước khi ngân sách cạn.
Khả năng thị giác của Opus 4.7 là gì?
Opus 4.7 có thị giác đa phương thức độ phân giải cao, chấp nhận ảnh có cạnh dài nhất tới 2.576 pixel, cho độ phân giải hiệu dụng khoảng 3,75 megapixel. Ngoài ra, ánh xạ tọa độ hình học là 1:1 nghiêm ngặt với pixel ảnh thực, loại bỏ nhu cầu nhà phát triển phải tính toán tỉ lệ phức tạp khi trích xuất dữ liệu.


