JSON Prompting là một kỹ thuật để cấu trúc các hướng dẫn cho các mô hình AI bằng cách sử dụng định dạng JavaScript Object Notation (JSON), giúp các Prompt rõ ràng, tường minh và có thể đọc được bằng máy. Không giống như các Prompt dựa trên văn bản truyền thống có thể gây ra sự mơ hồ và hiểu sai, Prompt JSON tổ chức các yêu cầu dưới dạng cặp khóa-giá trị, mảng và đối tượng lồng nhau, biến các yêu cầu mơ hồ thành các kế hoạch chi tiết chính xác để mô hình làm theo. Phương pháp này cải thiện đáng kể tính nhất quán và độ chính xác—đặc biệt đối với các tác vụ phức tạp hoặc lặp đi lặp lại—bằng cách cho phép người dùng chỉ định các yếu tố như loại tác vụ, chủ đề, đối tượng, định dạng đầu ra và các thông số khác một cách có tổ chức mà các mô hình ngôn ngữ vốn đã hiểu. Khi các hệ thống AI ngày càng dựa vào đầu vào có cấu trúc, có thể dự đoán được cho các quy trình làm việc thực tế, JSON prompting đã trở thành một chiến lược ưu tiên để tạo ra kết quả sắc nét hơn, đáng tin cậy hơn trên các LLM lớn, bao gồm GPT-4, Claude và Gemini.
Trong hướng dẫn này, chúng ta sẽ đi sâu vào sức mạnh của JSON prompting và lý do tại sao nó có thể thay đổi cách bạn tương tác với các mô hình AI.
Chúng tôi sẽ hướng dẫn bạn qua những lợi ích của việc sử dụng JSON Prompting thông qua các ví dụ mã hóa —từ Prompt văn bản đơn giản đến Prompt JSON có cấu trúc—và so sánh đầu ra của chúng. Đến cuối cùng, bạn sẽ thấy rõ cách các Prompt có cấu trúc mang lại sự chính xác, nhất quán và khả năng mở rộng cho quy trình làm việc của bạn, cho dù bạn đang tạo tóm tắt, trích xuất dữ liệu hay xây dựng các pipeline AI nâng cao.

pip install openai
import os
from getpass import getpass
os.environ["OPENAI_API_KEY"] = getpass('Enter OpenAI API Key: ')
Để có được khóa API của OpenAI, hãy truy cập https://platform.openai.com/settings/organization/api-keys và tạo một khóa mới. Nếu bạn là người dùng mới, bạn có thể cần thêm chi tiết thanh toán và thực hiện khoản thanh toán tối thiểu 5 đô la để kích hoạt quyền truy cập API.
from openai import OpenAI
client = OpenAI()
Sử dụng các Prompt có cấu trúc, chẳng hạn như định dạng dựa trên JSON, buộc bạn phải suy nghĩ theo các trường và giá trị — một lợi thế thực sự khi làm việc với LLM.
Bằng cách định nghĩa một cấu trúc cố định, bạn loại bỏ sự mơ hồ và phỏng đoán, đảm bảo rằng mọi phản hồi đều tuân theo một khuôn mẫu có thể dự đoán được.
Dưới đây là một ví dụ đơn giản:
Summarize the following email and list the action items clearly.
Email:
Hi team, let's finalize the marketing plan by Tuesday. Alice, prepare the draft; Bob, handle the design.
Chúng ta sẽ đưa Prompt này vào LLM theo hai cách và sau đó so sánh đầu ra được tạo bởi Prompt dạng tự do với Prompt có cấu trúc (dựa trên JSON) để quan sát sự khác biệt về độ rõ ràng và tính nhất quán.
prompt_text = """
Summarize the following email and list the action items clearly.
Email:
Hi team, let's finalize the marketing plan by Tuesday. Alice, prepare the draft; Bob, handle the design.
"""
response_text = client.chat.completions.create(
model="gpt-5",
messages=[{"role": "user", "content": prompt_text}]
)
text_output = response_text.choices[0].message.content
print(text_output)
Summary:
The team needs to finalize the marketing plan by Tuesday. Alice will prepare the draft, and Bob will handle the design.
Action items:
- Alice: Prepare the draft of the marketing plan by Tuesday.
- Bob: Handle the design by Tuesday.
- Team: Finalize the marketing plan by Tuesday.
prompt_json = """
Summarize the following email and return the output strictly in JSON format:
{
"summary": "short summary of the email",
"action_items": ["task 1", "task 2", "task 3"],
"priority": "low | medium | high"
}
Email:
Hi team, let's finalize the marketing plan by Tuesday. Alice, prepare the draft; Bob, handle the design.
"""
response_json = client.chat.completions.create(
model="gpt-5",
messages=[
{"role": "system", "content": "You are a precise assistant that always replies in valid JSON."},
{"role": "user", "content": prompt_json}
]
)
json_output = response_json.choices[0].message.content
print(json_output)
{
"summary": "Finalize the marketing plan by Tuesday; Alice to draft and Bob to handle design.",
"action_items": [
"Alice: prepare the draft",
"Bob: handle the design",
"Team: finalize the marketing plan by Tuesday"
],
"priority": "medium"
}
Trong ví dụ này, việc sử dụng Prompt JSON có cấu trúc dẫn đến đầu ra rõ ràng và súc tích, dễ phân tích và đánh giá. Bằng cách định nghĩa các trường như “summary”, “action_items” và “priority”, phản hồi của LLM trở nên nhất quán và khả thi hơn. Thay vì tạo ra văn bản tự do, có thể khác nhau về phong cách và chi tiết, mô hình cung cấp một cấu trúc có thể dự đoán được, loại bỏ sự mơ hồ. Cách tiếp cận này không chỉ cải thiện khả năng đọc và độ tin cậy của các phản hồi mà còn giúp dễ dàng tích hợp đầu ra vào các quy trình làm việc tiếp theo, chẳng hạn như trình theo dõi dự án, bảng điều khiển hoặc trình xử lý email tự động.
Khi bạn định dạng Prompt của mình bằng JSON, bạn loại bỏ sự mơ hồ từ cả hướng dẫn và đầu ra. Trong ví dụ này, việc yêu cầu tóm tắt thị trường, cảm xúc, cơ hội, rủi ro và điểm tin cậy có thể tạo ra các định dạng không nhất quán khi được truyền dưới dạng văn bản thuần túy. Tuy nhiên, bằng cách cấu trúc yêu cầu bằng JSON — với các trường được xác định rõ ràng như “summary”, “sentiment”, “opportunities”, “risks” và “confidence_score” — phản hồi trở nên có thể dự đoán được, thân thiện với máy và dễ phân tích hơn. Sự nhất quán này đảm bảo rằng, cho dù bạn đang tạo nội dung, phân tích báo cáo hay trích xuất thông tin chi tiết, quy trình làm việc của bạn vẫn được sắp xếp hợp lý và đáng tin cậy, không có bất ngờ — chỉ là kết quả rõ ràng, có cấu trúc mọi lúc.
plain_text_prompt = """
Analyze the following market update:
Market Text:
Tesla's Q2 earnings beat expectations due to higher Model Y sales, but rising competition from BYD is a risk.
Apple reported steady revenue growth driven by iPhone sales, but services revenue slightly declined.
Amazon's AWS division continues to dominate cloud computing, though regulatory scrutiny in Europe is increasing.
Generate:
- A 2-line market summary
- Sentiment for each company (positive, negative, neutral)
- Key growth opportunities and risks
- A confidence score from 0 to 10
"""
response_plain = client.chat.completions.create(
model="gpt-5",
messages=[{"role": "user", "content": plain_text_prompt}]
)
plain_output = response_plain.choices[0].message.content
print(plain_output)
Market summary:
- Earnings updates skew constructive: Tesla beat on Q2 with strong Model Y, Apple grew on iPhone, and AWS remains the cloud leader.
- Offsetting risks include BYD pressure on Tesla, Apple's services dip, and rising European scrutiny on Amazon.
Sentiment:
- Tesla: Positive
- Apple: Neutral
- Amazon: Positive
Key growth opportunities and risks:
- Tesla
- Opportunities: Sustain Model Y momentum; scale production and pricing to drive volume.
- Risks: Intensifying competition from BYD could pressure share and margins.
- Apple
- Opportunities: Monetize large iPhone base; re-accelerate services via bundles and ecosystem engagement.
- Risks: Services softness; dependence on iPhone for top-line growth.
- Amazon (AWS)
- Opportunities: Leverage leadership to win more enterprise/AI workloads and multi-year commitments.
- Risks: European regulatory scrutiny may lead to fines, compliance costs, or contract/pricing constraints.
Confidence score: 7/10
json_prompt = """
Analyze the following market update and return the response in this JSON format:
{
"summary": "2-line market overview",
"companies": [
{
"name": "string",
"sentiment": "positive | negative | neutral",
"opportunities": ["list of opportunities"],
"risks": ["list of risks"]
}
],
"confidence_score": "integer (0-10)"
}
Market Text:
Tesla's Q2 earnings beat expectations due to higher Model Y sales, but rising competition from BYD is a risk.
Apple reported steady revenue growth driven by iPhone sales, but services revenue slightly declined.
Amazon's AWS division continues to dominate cloud computing, though regulatory scrutiny in Europe is increasing.
"""
response_json = client.chat.completions.create(
model="gpt-5",
messages=[
{"role": "system", "content": "You are a precise assistant that always outputs valid JSON."},
{"role": "user", "content": json_prompt}
]
)
json_output = response_json.choices[0].message.content
print(json_output)
{
"summary": "Markets saw mixed corporate updates: Tesla beat expectations on strong Model Y sales and AWS maintained cloud leadership.\
However, Apple's growth was tempered by softer services revenue while Tesla and AWS face competition and regulatory risks.",
"companies": [
{
"name": "Tesla",
"sentiment": "positive",
"opportunities": [
"Leverage strong Model Y demand to drive revenue and scale production",
"Sustain earnings momentum from better-than-expected Q2 results"
],
"risks": [
"Intensifying competition from BYD",
"Potential price pressure impacting margins"
]
},
{
"name": "Apple",
"sentiment": "neutral",
"opportunities": [
"Build on steady iPhone-driven revenue growth",
"Revitalize Services to reaccelerate growth"
],
"risks": [
"Slight decline in services revenue",
"Reliance on iPhone as the primary growth driver"
]
},
{
"name": "Amazon (AWS)",
"sentiment": "positive",
"opportunities": [
"Capitalize on cloud leadership to win new enterprise workloads",
"Expand higher-margin managed services and deepen customer spend"
],
"risks": [
"Increasing regulatory scrutiny in Europe",
"Potential compliance costs or operational restrictions"
]
}
],
"confidence_score": 8
}
Prompt dạng tự do đã tạo ra một bản tóm tắt hữu ích nhưng thiếu cấu trúc, khiến mô hình có quá nhiều tự do và khó phân tích theo chương trình hoặc tích hợp vào các quy trình làm việc.
Ngược lại, kết quả được nhắc bằng JSON đã cho người dùng toàn quyền kiểm soát định dạng đầu ra, đảm bảo kết quả rõ ràng, có thể đọc được bằng máy với các trường riêng biệt cho tóm tắt, cảm xúc, cơ hội, rủi ro và điểm tin cậy. Cách tiếp cận có cấu trúc này không chỉ đơn giản hóa quá trình xử lý tiếp theo — cho bảng điều khiển, cảnh báo tự động hoặc pipeline dữ liệu — mà còn đảm bảo tính nhất quán trên các phản hồi. Bằng cách định nghĩa trước các trường, người dùng hướng dẫn mô hình cung cấp chính xác những gì họ cần, giảm sự mơ hồ và cải thiện độ tin cậy.
Bằng cách định nghĩa trước các trường có cấu trúc, các nhóm có thể tạo ra các đầu ra nhất quán, có thể đọc được bằng máy mà có thể kết nối trực tiếp vào các API, cơ sở dữ liệu hoặc ứng dụng mà không cần định dạng thủ công. Việc tiêu chuẩn hóa này không chỉ tăng tốc quy trình làm việc mà còn đảm bảo kết quả đáng tin cậy, có thể lặp lại, giúp việc cộng tác và tự động hóa trở nên liền mạch trên các dự án.
