Chuyển đến nội dung chính

Hướng dẫn API Grok 4.7: Xây dựng bộ đánh giá thiết kế mạch bằng AI

Làm theo hướng dẫn API Grok 4.7 để xây dựng trình đánh giá mạch bằng Python với hình ảnh, datasheet, thực thi mã, tìm kiếm web và xác minh cục bộ.
Đã cập nhật 30 thg 9, 2026  · 15 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Sơ đồ mạch là hình vẽ cho thấy cách các linh kiện điện tử được kết nối. Việc rà soát sơ đồ nghĩa là kiểm tra các linh kiện và giá trị của chúng có đáp ứng yêu cầu thiết kế hay không. Bộ cấp nguồn có cung cấp đủ dòng không? Vi xử lý có đọc được toàn bộ ngõ ra của cảm biến không? Câu trả lời đến từ sơ đồ, datasheet của linh kiện, và vài phép tính.

Tôi muốn xem Grok 4.7 có thể hoàn tất toàn bộ quá trình rà soát đó không. Hướng dẫn Grok 4.7 cho biết mô hình được huấn luyện cho các tác vụ dài hơn và kiểm tra kỹ hơn công việc của chính nó. Mạch điện cũng cho ta các con số mà mã Python thông thường có thể kiểm tra, nên ta không cần thêm một mô hình AI khác để đánh giá kết quả.

Cho thí nghiệm này, tôi xây dựng EnviroNode Rev A, một board cảm biến nhỏ cấp nguồn qua USB, và cố tình cài ba lỗi trong thiết kế. Grok không được cho biết có bao nhiêu lỗi. Nó phải tìm ra, viện dẫn tài liệu linh kiện cho mỗi kết luận, đề xuất cách sửa, và gửi các giá trị đã sửa cho các kiểm tra bằng Python.

Bạn không cần nền tảng kỹ thuật điện để theo dõi. Tôi giải thích từng quy tắc mạch khi nó xuất hiện lần đầu. Bạn sẽ học cách:

  • Gửi hình ảnh sơ đồ mạch cho Grok 4.7 qua Responses API

  • Đính kèm datasheet với Files API và để Grok tìm kiếm trong đó

  • Kiểm tra phép tính bằng thực thi mã và kiểm tra giới hạn bằng tìm kiếm web

  • Cung cấp cho Grok một hàm cục bộ verify_design() để quyết định đạt hay trượt

  • Giữ một cuộc hội thoại dài, nhiều tài liệu trong giới hạn ngữ cảnh của mô hình

  • Trả về định dạng đánh giá nhất quán, rồi so sánh cấp độ lập luận

Cùng một board được giữ nguyên từ lần đánh giá hình ảnh đầu tiên đến bài kiểm tra Python cuối cùng.

Tóm tắt nhanh

Grok 4.7 đã xác định mọi lỗi cài sẵn sau khi có datasheet, và thiết kế đã sửa vượt qua các kiểm tra Python. Điều đó nói lên điều gì đó về ba lỗi này, không phải về rà soát mạch nói chung.

  • Không có tài liệu, Grok từ chối đoán: chỉ với hình ảnh, tìm được một lỗi xác nhận, còn giới hạn của IC ổn áp và bộ chuyển đổi ADC được để dưới "cần bằng chứng".
  • Datasheet biến nghi ngờ thành bằng chứng: mỗi kết luận đều trích dẫn một giá trị trong tài liệu, và không có linh kiện đúng nào bị gắn cờ sai.
  • Các lượt chứa nhiều tệp có thể làm cạn kiệt ngữ cảnh dài: sau nhiều lần tìm trong PDF, một lượt tiếp theo vượt quá cửa sổ 500K; vòng lặp đã sửa sẽ nén lại trước lượt tiếp theo.
  • Mức low vượt qua bộ xác minh nhưng lộ ra điểm mù: giá trị bộ lọc đáp ứng các kiểm tra đã viết nhưng bỏ sót tải điện dung và hành vi hồi định mà chưa được kiểm tra.

Đây là một board nhỏ, không phải phép đo chuẩn. Một board có cả tá datasheet sẽ tạo ngữ cảnh lớn hơn và có thể cho kết quả khác.

Grok 4.7 API là gì?

Grok 4.7 API cung cấp cho ứng dụng Python đầu vào văn bản và hình ảnh, đầu ra văn bản, và cửa sổ ngữ cảnh 500.000 token qua ID mô hình grok-4.7. Hướng dẫn chính thức liệt kê các mức lập luận low, medium, high (mặc định), và xhigh; không thể tắt lập luận. API cũng hỗ trợ gọi hàm, đầu ra có cấu trúc, tìm kiếm web, tìm kiếm trên X, và thực thi mã.

Bài tổng quan Grok 4.7 của chúng tôi đề cập đến lần ra mắt và các điểm chuẩn. SpaceXAI gắn Chat Completions là cũ, nên mọi ví dụ ở đây dùng Responses API.

Grok 4.7 có giá bao nhiêu?

Dưới 200.000 token nhắc lệnh, Grok 4.7 có giá $2 cho mỗi triệu token đầu vào, $0,50 cho mỗi triệu token đầu vào được lưu cache, và $6 cho mỗi triệu token đầu ra. Khi một nhắc lệnh đạt 200.000 token, mọi token trong yêu cầu đó sẽ tính phí lần lượt $4, $1, và $12.

Các công cụ phía máy chủ có phí riêng: trang giá tính $5 cho mỗi 1.000 cuộc gọi tìm kiếm web hoặc thực thi mã. Việc tìm trong tài liệu đính kèm tốn một xu mỗi lần, và tài liệu lưu trữ cũng bị tính phí theo ngày trên mỗi GiB. Hãy dùng một prompt_cache_key ổn định cho các yêu cầu liên quan, nhưng vẫn dự trù cho đầu vào không được cache.

Đọc chi phí bị tính từ usage.cost_in_usd_ticks. Tài liệu theo dõi chi phí nói rằng nó bao gồm cả chi phí cache và công cụ. Chia giá trị cho 10^10 để ra số đô la.

Vì sao thử Grok 4.7 trên thiết kế mạch?

Thiết kế mạch kiểm tra năng lực đọc tài liệu, tính toán, dùng công cụ và xác minh trong một tác vụ. SpaceXAI báo cáo 64,0% cho Grok 4.7 trên EEBench. Phương pháp EEBench dùng mô phỏng và kiểm tra BOM thay vì để LLM chấm, và EnviroNode cũng theo nguyên tắc đó.

Chúng ta sẽ xây gì: Rà soát mạch EnviroNode Rev A

EnviroNode Rev A là một nút cảm biến cấp nguồn qua USB. Bạn có thể tải toàn bộ dự án từ GitHub.

Sơ đồ chứa mọi giá trị linh kiện Grok cần cho việc rà soát. Mỗi yêu cầu có một ID như PWR-002 hoặc BW-001, nên mỗi phát hiện có thể trỏ về một quy tắc.

Sơ đồ EnviroNode Rev A hiển thị đầu vào USB, ổn áp TLV70033, ESP32-C3, tầng khuếch đại MCP6001 và bộ lọc RC với giá trị linh kiện

Sơ đồ EnviroNode Rev A kèm giá trị. Ảnh: Tác giả.

Trước khi Grok rà soát board, hãy công khai mọi quy tắc mà bộ xác minh sẽ dùng. Hàm trả về năm kiểm tra đạt hoặc trượt được xây từ tám yêu cầu sau:

  • PWR-001: Đầu vào USB nằm giữa 4,75 V và 5,25 V
  • PWR-002: Ổn áp đáp ứng được tải đỉnh
  • PWR-003: Tải không phải MCU dùng ngân sách 10 mA
  • SIG-001: Thang đo đầy của cảm biến là 1,0 V
  • ADC-001: Ngõ vào ADC luôn ở mức bằng hoặc dưới 2.250 mV
  • ADC-002: Ngõ vào ADC đạt ít nhất 1.500 mV
  • BW-001: Tín hiệu đến 100 Hz suy hao dưới 1 dB
  • BW-002: Tần số cắt của bộ lọc ở mức bằng hoặc dưới 500 Hz

Mô hình nhận đúng bộ yêu cầu này. Không có giới hạn nào của bộ xác minh chỉ xuất hiện sau khi Grok đề xuất cách sửa.

Ba lỗi cài sẵn là gì?

Ba lỗi có thể kiểm tra bằng con số. Số lượng lỗi không được nêu trong prompt.

  • Ổn áp quá nhỏ (PWR-002): TI TLV700 được đánh giá 200 mA, trong khi datasheet ESP32-C3 liệt kê đỉnh phát Wi‑Fi 335 mA và checklist sơ đồ của Espressif yêu cầu ít nhất 500 mA.

  • ADC vượt dải (ADC-001): hệ số khuếch đại 3 đưa 3,0 V vào ADC, nhưng dải hiệu dụng theo datasheet chỉ đến 2.500 mV, và yêu cầu cho phép 90% mức đó.

  • Bộ lọc quá chậm (BW-001): 10 kΩ và 1 µF cho tần số cắt 15,9 Hz, trong khi tín hiệu đến 100 Hz chỉ được phép suy hao tối đa 1 dB.

Lỗi ADC liên quan đến dải đo, không phải hỏng chân. Những lựa chọn đúng, như điện trở LED và độ trễ CHIP_EN, giúp đo được dương tính giả.

Vòng lặp rà soát vận hành ra sao?

Rà soát cần ranh giới rõ ràng: Grok đề xuất thay đổi, còn Python quyết định đạt hay trượt. Sơ đồ cho thấy tài liệu và công cụ đi vào vòng lặp ở đâu.

Sơ đồ vòng lặp rà soát Grok 4.7: bằng chứng nạp vào Grok, gọi công cụ phía máy chủ và hàm verify_design cục bộ, rồi ghi đánh giá có cấu trúc khi mọi kiểm tra đều vượt

Vòng lặp rà soát tách đề xuất khỏi xác minh. Ảnh: Tác giả.

Định nghĩa tiêu chí thành công trước cuộc gọi API đầu tiên. Chỉ tính là lỗi khi Grok liên kết nó với một yêu cầu và bằng chứng hỗ trợ. Chỉ tính là sửa khi verify_design() trả về all_pass = true.

Cách thiết lập Grok 4.7 API trong Python

Bạn sẽ cần khóa API xAI với tín dụng nạp trước, Python 3.10 trở lên, và SDK OpenAI cho Python trỏ đến base URL của xAI. Tạo khóa trong xAI Console, sau đó cài các gói sử dụng dưới đây.

python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install openai python-dotenv pydantic httpx streamlit
pip install matplotlib schemdraw pytest  # Optional diagrams and verifier tests

Các ví dụ API dùng nhóm gói thứ nhất; nhóm thứ hai hỗ trợ sơ đồ và kiểm thử trong kho mã. Tôi đã thử với Python 3.11.9, openai 3.19.2, pydantic 2.13.5, streamlit 1.64.0, và httpx 0.28.1. Lưu khóa dưới biến môi trường XAI_API_KEY, và nạp bằng python-dotenv thay vì đặt trong mã nguồn; hướng dẫn môi trường ảo của chúng tôi giải thích thiết lập nếu bạn mới.

Thực hiện cuộc gọi API Grok 4.7 đầu tiên

Nếu khóa của bạn đã hoạt động với Responses API, hãy chuyển sang Bước 1. Nếu không, yêu cầu này kiểm tra khóa, base URL, và ID mô hình cùng lúc.

import os
import httpx
from dotenv import load_dotenv
from openai import OpenAI

load_dotenv()
client = OpenAI(api_key=os.environ["XAI_API_KEY"], base_url="https://api.x.ai/v1",
                timeout=httpx.Timeout(3600.0))

response = client.responses.create(
    model="grok-4.7",
    reasoning={"effort": "low"},
    input="In one sentence, what does a low-dropout regulator do?",
)
print(response.output_text)

Một câu trả lời một câu nghĩa là thiết lập đã hoạt động. Thời gian chờ dài quan trọng về sau, vì các yêu cầu dùng lập luận và công cụ có thể mất vài phút.

Bước 1: Grok 4.7 có thể rà soát mạch từ hình ảnh không?

Có, Grok 4.7 có thể rà soát sơ đồ chỉ từ hình ảnh, miễn là prompt nói rõ rằng sẽ không có công cụ nào được dùng. Bản chuẩn gửi PNG dưới dạng data URL base64 cùng với văn bản yêu cầu.

image = {
    "type": "input_image",
    "image_url": f"data:image/png;base64,{SCHEMATIC_B64}",
    "detail": "high",
}
response = client.responses.create(
    model="grok-4.7",
    input=[{"role": "user", "content": [
        image,
        {"type": "input_text", "text": REVIEW_PROMPT},
    ]}],
)

Prompt yêu cầu ba phần: đã xác nhận, cần thêm bằng chứng, và đã kiểm tra và chấp nhận. Không nhắc đến số lượng lỗi hay linh kiện nghi ngờ.

Rà soát chỉ từ hình ảnh tìm thấy gì?

Hãy nói rõ với mô hình khi không có công cụ hay datasheet. Nếu không, nó có thể kết thúc phản hồi sau khi nói rằng sẽ tra một thông số mà nó không thể truy cập.

Như đã nêu trong phần Tóm tắt nhanh, Grok xác nhận lỗi bộ lọc với tần số cắt 15,9 Hz và suy hao 16,1 dB tại 100 Hz. Nó đưa ổn áp và ADC vào mục "cần thêm bằng chứng" thay vì đoán giới hạn của chúng.

Bước 2: Cách thêm datasheet với Files API

Tài liệu đính kèm biến mối lo mơ hồ thành kết luận có số liệu hậu thuẫn. Tải mỗi tài liệu một lần và tham chiếu bằng file_id.

with open(DATASHEET_PATH, "rb") as datasheet:
    uploaded = client.files.create(
        file=datasheet,
        purpose="assistants",
        expires_after={"anchor": "created_at", "seconds": 7 * 24 * 3600},
    )
content = [image, *[{"type": "input_file", "file_id": fid} for fid in file_ids],
           {"type": "input_text", "text": EVIDENCE_PROMPT}]

Vì hướng dẫn này đặt expires_after là bảy ngày, ID được cache chỉ hợp lệ trong khung thời gian đó. Không có expires_after, xAI giữ tệp đã tải lên cho đến khi bạn xóa.

Trong các phản hồi SDK OpenAI ghi lại ở đây, việc tìm trong tệp đính kèm xuất hiện dưới dạng các mục custom_tool_call tên pdf_search và pdf_browse, trong khi việc sử dụng đếm chúng dưới document_search_calls. Đó là hành vi quan sát, không phải hợp đồng kiểu công cụ chung, nên vòng lặp cũng kiểm tra bộ đếm sử dụng đã được tài liệu hóa.

Datasheet thay đổi việc rà soát thế nào?

Tài liệu đã giải quyết hai câu hỏi bỏ ngỏ từ Bước 1 và hỗ trợ các phát hiện về nguồn, ADC, và bộ lọc. Kết luận về ổn áp trích dẫn mức 200 mA của TLV700, đỉnh phát 335 mA của ESP32-C3, và khuyến nghị nguồn 500 mA.

Với bộ lọc, Grok tính ra các giá trị tụ có thể thỏa mãn cả hai quy tắc băng thông khi giữ nguyên R5: xấp xỉ 32 đến 81 nF. Mọi mồi nhử đều rơi vào mục "đã kiểm tra và chấp nhận" với lý do.

Bước 3: Cách xác minh phép tính với thực thi mã Grok 4.7

Thực thi mã là sandbox Python phía máy chủ của xAI, được thêm vào tools dưới dạng {"type": "code_interpreter"} khi bạn dùng client OpenAI. Prompt thêm một quy tắc: mọi kết luận có con số phải được tính toán trước khi được tính là đã xác nhận.

Hướng dẫn thực thi mã dẫn ở trên cho biết sandbox không có truy cập mạng và không giữ trạng thái giữa các yêu cầu. Với vài con số từ datasheet, như vậy là đủ.

Grok nên kiểm tra những phép tính nào?

Yêu cầu Grok kiểm tra ngân sách nguồn, dải ADC, và băng thông bộ lọc trong một script. Nếu mạch không phải sở trường của bạn, hãy bỏ qua phần đầu ra dưới đây; phần kết luận nằm sau đó.

f=  100.0 Hz  |H|=0.157177  attenuation=16.0722 dB
fc required for <= 1 dB at 100 Hz: fc >= 196.5227 Hz
V_adc_fs = 3.0000 V
90% limit = 2.2500 V
required rating = max(headroom, mcu min) = 500.00 mA

Giá trị tần số cắt tối thiểu 196,5 Hz là con số mà cách sửa bộ lọc phụ thuộc, và mã tính ra nó thay vì để mô hình tự tính. Ngay cả ở góc dung sai suy hao ít nhất, mất mát tại 100 Hz vẫn hơn 15 dB, nên kết luận vẫn giữ.

Bước 4: Grok 4.7 có thể tìm kiếm web qua API không?

Có. Tìm kiếm web kiểm tra xem các tài liệu đính kèm còn cập nhật không, vì nhà sản xuất có thể sửa datasheet sau thời điểm cắt dữ liệu huấn luyện của mô hình. Hạn chế về miền chính thống để bằng chứng vẫn là nguồn từ nhà sản xuất.

tools = [
    {"type": "code_interpreter"},
    {"type": "web_search", "filters": {"allowed_domains": ["ti.com", "espressif.com"]}},
]

Hướng dẫn tìm kiếm web dẫn ở trên cho phép tối đa năm allowed_domains, bao gồm các tên miền con như docs.espressif.com. Tôi sẽ giữ bước này ngay cả khi datasheet đính kèm còn mới, vì nó có thể bắt được bản sửa được công bố sau khi bạn tải lên.

Các trích dẫn chứng minh điều gì?

Grok nên trích dẫn trang sản phẩm TI hiện tại, tài liệu ESP32-C3, checklist phần cứng, và mọi errata liên quan. Hãy coi những trích dẫn đó là bằng chứng về nguồn, không phải bằng chứng rằng kết luận kỹ thuật là đúng.

Bộ lọc miền vẫn có thể trả về một trang không liên quan. Hãy kiểm tra mỗi trích dẫn hỗ trợ đúng linh kiện và giới hạn được dùng trong phép tính.

Dấu vết terminal hiển thị Grok tìm kiếm trong datasheet đính kèm, chạy thực thi mã, và kiểm tra trang nhà sản xuất bằng tìm kiếm web

Grok tìm trong tệp, tính toán, kiểm tra nguồn. Ảnh: Tác giả.

Bước 5: Cách thêm bộ xác minh bằng gọi hàm Grok 4.7

verify_design() là một hàm Python thuần chạy trên máy của bạn, và nó là trọng tài duy nhất xem bản sửa có đạt hay không. Grok đề xuất các giá trị thiết kế qua gọi hàm, và hàm kiểm tra chúng so với các giới hạn cố định.

VERIFY_DESIGN_TOOL = {
    "type": "function",
    "name": "verify_design",
    "description": "Deterministically check an EnviroNode revision against EN-REQ-001...",
    "parameters": {
        "type": "object",
        "properties": {
            "revision": {"type": "string"},
            "regulator_part": {"type": "string"},
            "gain_rf_ohm": {"type": "number"},
            "gain_rg_ohm": {"type": "number"},
            "filter_r_ohm": {"type": "number"},
            "filter_c_nf": {"type": "number"},
        },
        "required": ["revision", "regulator_part", "gain_rf_ohm",
                     "gain_rg_ohm", "filter_r_ohm", "filter_c_nf"],
    },
}

Công suất phải đáp ứng max((335 + 10) mA × 1.25, 500 mA). Với ADC, 1.0 V × (1 + Rf/Rg) phải nằm giữa 1.500 và 2.250 mV. Kiểm tra bộ lọc đo suy hao tại 100 Hz và giới hạn tần số cắt ở 500 Hz; mỗi kiểm tra trả về giá trị, giới hạn, và đạt/trượt.

Schema công cụ chỉ cho Grok biết cần gửi giá trị gì. Logic đạt hay trượt cốt lõi là Python thuần:

import math

part = PARTS.get(regulator_part.strip().upper())
required_ma = max((335 + 10) * 1.25, 500)
power_ok = (
    part is not None
    and float(part["rated_iout_ma"]) >= required_ma
    and float(part["vin_max_v"]) >= 5.25
    and float(part["vout_v"]) == 3.3
)

gain = 1 + gain_rf_ohm / gain_rg_ohm
adc_mv = gain * 1000

fc = 1 / (2 * math.pi * filter_r_ohm * filter_c_nf * 1e-9)
loss_db = 10 * math.log10(1 + (100 / fc) ** 2)

checks = {
    "PWR-002": power_ok,
    "ADC-001": adc_mv <= 2250,
    "ADC-002": adc_mv >= 1500,
    "BW-001": loss_db <= 1.0,
    "BW-002": fc <= 500,
}
return {"all_pass": all(checks.values()), "checks": checks}

Hàm đầy đủ cũng loại các giá trị không hợp lệ và trả về số đo với mỗi kết quả. Hãy kiểm thử với một thiết kế biết-chắc-đạt, một thiết kế biết-chắc-trượt, một linh kiện không rõ, và một trường hợp sát ngưỡng.

Vì sao phải để mã chấm điểm cách sửa, không phải mô hình?

Giữ các thông số đánh giá linh kiện ngoài tầm kiểm soát của mô hình. Tôi sẽ không để mô hình tự cung cấp mức dòng của nó. Grok gửi một mã linh kiện, và hàm tra mức đánh giá trong danh mục của ứng dụng.

Một tác tử không nên vừa đề xuất giải pháp vừa quyết định nó có đúng không khi có thể dùng mã để kiểm tra câu trả lời. Hãy thay verify_design() bằng bộ kiểm thử hoặc kiểm tra schema khi tác vụ thay đổi. Viết bộ xác minh tốn công, nhưng kết quả đạt hay trượt của nó không phụ thuộc vào ý kiến của mô hình.

Bước 6: Cách tái thiết kế và xác minh mạch

Giao cho Grok một mục tiêu: sửa mọi vi phạm đã xác nhận với bộ thay đổi nhỏ nhất hợp lý, và đừng coi thiết kế đã hoàn tất cho đến khi bài kiểm tra đã định nghĩa trước đó đạt. Cung cấp bằng chứng và công cụ từ Bước 3 đến 5, rồi đặt giới hạn số lượt yêu cầu.

Đây là lúc cảnh báo ngữ cảnh trong phần Tóm tắt nhanh quan trọng. Hãy giải quyết trước khi thêm nhiều lượt.

Vì sao vòng lặp nặng tệp cần nén ngữ cảnh?

Một yêu cầu tiếp theo bao gồm kết quả công cụ trước đó, và việc tìm trong tài liệu có thể trả về nhiều văn bản. Trong nguyên mẫu thất bại, lượt tiếp theo đạt 1.116.321 token và vượt quá cửa sổ 500.000 token của Grok 4.7.

Nén ngữ cảnh không thể cứu một yêu cầu đã vượt giới hạn. Vòng lặp đã sửa sẽ nén mỗi lượt tìm tài liệu thành công trước khi gửi yêu cầu tiếp theo.

details = (response.usage.model_extra or {}).get(
    "server_side_tool_usage_details", {}
)
observed_attachment_call = any(
    item.type == "custom_tool_call"
    and item.name in {"pdf_search", "pdf_browse"}
    for item in response.output
)
used_documents = (
    details.get("document_search_calls", 0) > 0
    or observed_attachment_call
)

if used_documents:
    compacted = client.responses.compact(
        model="grok-4.7", input=history + list(response.output) + follow_up)
    history = list(compacted.output)  # pass the compaction item back unchanged
    # Compaction drops tool output, so restate the verifier's verdict ourselves.
    history.append({"role": "user", "content":
                    "verify_design results, exactly as returned: " + json.dumps(results)})
else:
    history = history + list(response.output) + follow_up
response = client.responses.create(model="grok-4.7", input=history, tools=TOOLS,
                                   store=False, prompt_cache_key=cache_key)

Giữ lại thao tác append cuối đó. Nén sẽ bỏ đầu ra dài của công cụ, nên việc nhắc lại kết quả bộ xác minh giúp phản hồi sau tránh các kiểm tra bịa đặt hay nhầm lẫn. Nén sau mỗi lượt nặng tài liệu là nhịp độ thận trọng; hệ thống lớn hơn có thể dùng ngưỡng token đầu vào thay thế.

Rev B có vượt qua xác minh không?

Có. Grok thay đổi một linh kiện ở mỗi hệ con lỗi: nguồn, hệ số khuếch đại ADC, và băng thông bộ lọc. Sơ đồ cho thấy chính xác các giá trị Rev A và Rev B.

Sơ đồ so sánh thay đổi giữa EnviroNode Rev A và Rev B ở ổn áp, điện trở thiết lập hệ số khuếch đại, và tụ lọc

Ba thay đổi linh kiện sửa Rev A. Ảnh: Tác giả.

Các giá trị đã sửa sau đó được gửi đến verify_design(). Hàm trả về một kết quả cho mỗi yêu cầu.

Đầu ra bộ xác minh cho thấy các kiểm tra về ổn áp, dải ADC và bộ lọc sau khi sửa đều đạt

Thiết kế đã sửa vượt qua mọi kiểm tra xác minh. Ảnh: Tác giả.

Một kết quả trượt sẽ được trả về dưới dạng function_call_output, nên Grok có thể sửa thiết kế cho đến khi các kiểm tra đạt hoặc chạm giới hạn số lượt yêu cầu.

Bước 7: Cách trả về bản rà soát mạch có cấu trúc

Đầu ra có cấu trúc trả về một đối tượng khớp với schema thay vì văn bản bạn phải phân tích. Gọi client.responses.parse() với một mô hình Pydantic trong cùng cuộc hội thoại, với các cuộc gọi công cụ tắt đi.

class Finding(BaseModel):
    violated_requirement: str
    severity: Literal["blocker", "major", "minor"]
    evidence: list[str]
    recommended_change: str
    verifier_result: Literal["pass", "fail", "not_verified"]

parsed = client.responses.parse(
    model="grok-4.7", input=history + [REPORT_REQUEST],
    text_format=DesignReview, tools=TOOLS, tool_choice="none", store=False,
)

Một schema hợp lệ không chứng minh nội dung là đúng, nên hãy đưa kết quả bộ xác minh vào và yêu cầu Grok dựa verifier_result trên đó. JSON sau đó có thể đưa vào hệ thống quản lý vấn đề hoặc hàng đợi phê duyệt của con người.

Bản báo cáo có cấu trúc cho biết gì?

Báo cáo có cấu trúc nên đánh dấu mỗi lỗi ban đầu là đã được xử lý, trích dẫn giá trị đo do bộ xác minh trả về, và giữ các mối lo chưa kiểm tra dưới open_risks. Với thiết kế này, các mối lo đó gồm ổn áp chạm đúng sàn 500 mA và tụ ADC khác khuyến nghị của Espressif.

Mức nỗ lực lập luận cao hơn của Grok 4.7 có cải thiện rà soát mạch không?

Nỗ lực cao hơn không cải thiện điểm của bộ xác minh, nhưng đã thay đổi chất lượng cách sửa bộ lọc. Mỗi mức nhận cùng sơ đồ, prompt, công cụ, và giới hạn lượt yêu cầu.

Nỗ lực

Lỗi / dương tính giả

Cuộc gọi bộ xác minh

Đầu vào / đã cache

Đầu ra / lập luận

Công cụ

Thời gian

Chi phí

low

3/3, 0; ĐẠT

1

256.006 / 197.120

7.950 / 2.323

7

111,2 s

$0,2990

high

3/3, 0; ĐẠT

1

364.611 / 131.456

21.904 / 14.268

15

292,8 s

$0,7385

xhigh

3/3, 0; ĐẠT

2

413.071 / 336.896

19.685 / 14.800

17

277,8 s

$0,5239

low đã giảm điện trở và giữ tụ 1 µF, để hở hành vi tải điện dung và hồi định ngoài bộ xác minh. Hướng dẫn tải điện dung của Microchip nói rằng điện trở nối tiếp có thể cải thiện ổn định, nên kết quả này không chứng minh cách sửa là không ổn định; nó kêu gọi kiểm tra đáp ứng tần số, đáp ứng bước, hoặc trên bàn đo. high thay tụ thay vì thay điện trở, còn xhigh chọn cùng giá trị cuối như high sau một lần gọi bộ xác minh bổ sung.

Khi nào lập luận xhigh đáng giá?

Với phép so sánh đơn lẻ này, high cho cân bằng tốt hơn. Nó tránh mối lo tải chưa được mô hình hóa mà không cần cuộc gọi bộ xác minh thêm như xhigh. Một lần thực thi cho mỗi mức không đủ để xếp hạng chung.

Grok 4.7 có sửa được mạch không?

Câu trả lời cho câu hỏi mở đầu là có, trong phạm vi năm kiểm tra của bộ xác minh. Bảng tổng hợp các phát hiện trước đó trong một khung nhìn.

  • Hình ảnh và yêu cầu
    • Bổ sung: Kiểm tra trực quan
    • Kết quả: Xác nhận những gì sơ đồ một mình có thể chứng minh
  • Datasheet
    • Bổ sung: Giới hạn nhà sản xuất
    • Kết quả: Chuyển hai câu hỏi bỏ ngỏ thành các phát hiện
  • Thực thi mã
    • Bổ sung: Phép tính đã kiểm tra
    • Kết quả: Đo lường vấn đề về nguồn và bộ lọc
  • Tìm kiếm web
    • Bổ sung: Nguồn chính thống hiện tại
    • Kết quả: Kiểm tra xem bằng chứng đính kèm còn cập nhật không
  • Bộ xác minh cục bộ
    • Bổ sung: Kết luận đạt hay trượt từ Python
    • Kết quả: Chỉ chấp nhận một bản sửa vượt qua mọi quy tắc

Grok đã sửa các yêu cầu được mã hóa. Nó không chứng minh rằng board đã sửa hoàn thiện về điện hay sẵn sàng sản xuất.

Tài liệu quyết định một mối lo có bằng chứng hay không. Python quyết định một bản sửa có đạt hay không. Văn xuôi trôi chảy không thể thay thế cho cả hai.

Xem rà soát trong Streamlit

Bài hướng dẫn Streamlit của chúng tôi giải thích giao diện được dùng ở đây. Nó dùng streaming để hiển thị các lần gọi công cụ khi chúng đến, rồi hiển thị các kiểm tra của bộ xác minh và báo cáo cuối.

Rà soát trực tiếp hiển thị các công cụ và báo cáo. Video: Tác giả.

Toàn bộ rà soát tốn bao nhiêu?

Lộ trình từng bước từ chuẩn chỉ-hình-ảnh đến tái thiết kế high tốn khoảng $3,10. Tổng đó bao gồm Bước 1 đến 4 cộng với lần tái thiết kế cuối và báo cáo có cấu trúc.

Phép so sánh riêng low/high/xhigh tốn thêm khoảng $1,56. Các khoản bị tính lấy từ cost_in_usd_ticks; tổng $3,10 bao gồm ước tính $0,11 cho nén vì phản hồi đó có số đếm token nhưng không có trường chi phí bị tính. Loại trừ các yêu cầu thiết lập thất bại và gỡ lỗi.

Hạn chế của rà soát mạch Grok 4.7

Một lần gọi verify_design đạt nghĩa là bản sửa vượt qua năm kiểm tra đã viết, và không hơn. Ghi nhớ các khoảng trống này trước khi bạn tin tưởng thiết lập này với một board thật.

  • Hình ảnh sơ đồ không phải là thiết kế phần cứng: không có kiểm tra bố trí PCB hay nhiệt, và không có board nào được dựng
  • Bộ xác minh có thể tạo ra điểm mù: nó không kiểm tra ổn định với tải điện dung, hồi định, công suất nhiệt của LDO, hay các góc dung sai linh kiện

So sánh mức lập luận là một nghiên cứu tình huống, không phải điểm chuẩn như EEBench. Với phần cứng thực, hãy bổ sung mô phỏng, phân tích dung sai, và phê duyệt của con người trước khi chấp nhận bản sửa.

Suy ngẫm cuối

Trình rà soát mạch đã tìm và sửa cả ba lỗi cài sẵn, nhưng kết quả không phải một chiến thắng gọn ghẽ. Rev B vượt cả năm kiểm tra ngay lần nộp đầu, trong khi phép so sánh low làm lộ nguy cơ tải điện dung và hồi định mà các kiểm tra đó không bao quát. Bài toán API khó hơn là giữ lịch sử nặng tài liệu trong cửa sổ 500.000 token.

Tôi sẽ bổ sung các kiểm tra tải và hồi định của op-amp trước khi thử một board lớn hơn, rồi thiết kế tình huống mà bản sửa đầu thất bại để vòng lặp phải hồi phục. Tôi sẽ để Grok chịu trách nhiệm đọc bằng chứng và đề xuất thay đổi, để Python chịu trách nhiệm về các yêu cầu đã viết, và dành quyền phê duyệt cuối cho kỹ sư.


Khalid Abdelaty's photo
Author
Khalid Abdelaty
LinkedIn

Tôi là một kỹ sư dữ liệu và người xây dựng cộng đồng, làm việc với pipeline dữ liệu, đám mây và công cụ AI, đồng thời viết các hướng dẫn thực hành, tác động cao cho DataCamp và các nhà phát triển mới nổi.

Câu hỏi thường gặp

Grok 4.7 API có miễn phí không?

Không. xAI Quickstart yêu cầu bạn nạp tín dụng vào tài khoản trước. Hãy kiểm tra siêu dữ liệu sử dụng sau mỗi phản hồi và đặt hạn mức chi tiêu trước khi so sánh các mức lập luận.

Bạn có thể dùng xAI Python SDK thay cho OpenAI SDK không?

Có, xai-sdk hoạt động với grok-4.7, nhưng một số tên khác nhau: thực thi mã là code_execution ở đó và code_interpreter trong OpenAI SDK. Ví dụ dùng OpenAI SDK vì cùng định dạng Responses có thể dùng với các nhà cung cấp khác.

Grok 4.7 có thể stream các cuộc gọi công cụ khi đang diễn ra không?

Có. Truyền stream=True để nhận hoạt động khi yêu cầu đang chạy. Trong triển khai này, các mục công cụ hoàn tất đến qua response.output_item.done, và sự kiện response.completed cuối mang đối tượng usage; hãy xác minh tên sự kiện chính xác khi nâng cấp SDK hoặc API.

xAI có lưu các sơ đồ và datasheet đã tải lên không?

Theo mặc định, xAI giữ các yêu cầu và phản hồi API trong 30 ngày và không dùng chúng để huấn luyện nếu không có sự cho phép của bạn. Tệp đã tải lên được giữ cho đến khi bạn xóa hoặc đến khi expires_after hết hạn. Zero Data Retention vô hiệu hóa Files API được dùng ở đây, nên cần cách khác để cung cấp tài liệu.

Grok 4.7 có thể thay thế kỹ sư điện không?

Không. Dự án này kiểm tra một sơ đồ so với một tập yêu cầu đã viết nhỏ; nó không bao gồm bố trí PCB, hành vi nhiệt hoặc điện từ, phân tích dung sai đầy đủ, mô phỏng, hay phê duyệt phần cứng. Hãy dùng rà soát của con người và thử nghiệm thực tế trước khi chấp nhận một thiết kế thật.

Chủ đề
Trí tuệ Nhân tạo

Học AI với DataCamp

Khóa học

Các khái niệm về Large Language Models (LLMs)

2 giờ
111.4K
Khám phá toàn bộ tiềm năng của LLM với khóa học khái niệm của chúng tôi, bao gồm các ứng dụng LLM, phương pháp đào tạo, cân nhắc đạo đức và nghiên cứu mới nhất.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm