Tìm kiếm web DeepSeek
Cho DeepSeek V4.1 Flash tìm kiếm thông tin thời gian thực trên web và dẫn nguồn, bằng công cụ web_search của Responses API.
📝 Giới thiệu
deepseek-v4.1-flash hỗ trợ tìm kiếm web: mô hình tự quyết định có cần tìm kiếm không và dùng từ khóa nào, trả lời dựa trên kết quả tìm kiếm và kèm liên kết nguồn. Phù hợp với thông tin thay đổi nhanh như tin tức, thời tiết, thị trường, kết quả thi đấu.
Tìm kiếm web được bật bằng công cụ web_search của Responses API (POST /v1/responses).
Điều kiện
- Nhóm của token: Deepseek官转
- Mô hình:
deepseek-v4.1-flash - Endpoint:
POST https://api.88api.ai/v1/responses
💡 Ví dụ
Cách dùng cơ bản ✅
curl https://api.88api.ai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "deepseek-v4.1-flash",
"tools": [{"type": "web_search"}],
"input": "Thời tiết Hàng Châu hôm nay thế nào?"
}'Python (OpenAI SDK) ✅
from openai import OpenAI
client = OpenAI(base_url="https://api.88api.ai/v1", api_key="sk-token-cua-ban")
resp = client.responses.create(
model="deepseek-v4.1-flash",
tools=[{"type": "web_search"}],
input="Thời tiết Hàng Châu hôm nay thế nào?",
)
print(resp.output_text)Giới hạn số từ khóa và số kết quả ✅
curl https://api.88api.ai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "deepseek-v4.1-flash",
"max_tool_calls": 2,
"tools": [{
"type": "web_search",
"max_keyword": 2,
"limit": 5,
"user_location": {"type": "approximate", "country": "Trung Quốc", "region": "Chiết Giang", "city": "Hàng Châu"}
}],
"input": "Thời tiết Hàng Châu hôm nay thế nào?"
}'Streaming ✅
Thêm "stream": true vào body. Mỗi lần tìm kiếm sẽ trả về lần lượt các sự kiện sau, sau đó mới bắt đầu văn bản trả lời:
| Sự kiện | Ý nghĩa |
|---|---|
response.web_search_call.in_progress | Bắt đầu một lần tìm kiếm |
response.web_search_call.searching | Đang tìm kiếm |
response.web_search_call.completed | Tìm kiếm xong |
response.output_text.delta | Văn bản trả lời theo từng phần |
response.completed | Hoàn tất; có usage |
📬 Ví dụ phản hồi
Trích đoạn; đã lược bỏ phần suy luận (reasoning) và một số trường khác:
{
"object": "response",
"status": "completed",
"output": [
{
"type": "web_search_call",
"id": "ws_0217925902513450000...",
"status": "completed",
"action": {
"type": "search",
"query": "thời tiết Hàng Châu hôm nay"
}
},
{
"type": "message",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "Sáng nay ở Hàng Châu mưa đã tạnh, trời chuyển nhiều mây, nhiệt độ cao nhất khoảng 21–24°C...",
"annotations": [
{
"type": "url_citation",
"title": "中国气象局-天气预报-城市预报",
"url": "https://weather.cma.cn/web/text/HD/AZJ.html",
"site_name": "中国气象局",
"publish_time": "2026年10月21日 08:00:00(CST) 星期三"
}
]
}
]
}
],
"usage": {
"input_tokens": 4320,
"output_tokens": 418,
"total_tokens": 4738,
"tool_usage": {"web_search": 1},
"tool_usage_details": {"web_search": {"search_engine": 1}}
}
}| Trường | Mô tả |
|---|---|
output[].type = "web_search_call" | Một lần tìm kiếm của mô hình; action.query là các từ khóa, phân cách bằng ; khi một lượt dùng nhiều từ khóa |
output[].type = "message" | Câu trả lời cuối cùng; văn bản nằm trong output_text.text |
annotations[].type = "url_citation" | Nguồn được trích dẫn: tiêu đề, liên kết, tên trang, thời gian đăng |
usage.tool_usage.web_search | Số lần tìm kiếm của yêu cầu (tính theo từ khóa) |
⚙️ Tham số
web_search trong tools
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
type | string | Có | Luôn là web_search |
max_keyword | integer | Không | Số từ khóa tối đa mỗi lượt tìm kiếm, 1–50 |
limit | integer | Không | Số kết quả tối đa mỗi lần tìm kiếm, 1–50, mặc định 10 |
user_location | object | Không | Vị trí gần đúng của người dùng, giúp câu hỏi về thời tiết và địa phương chính xác hơn. Định dạng: {"type": "approximate", "country": "Trung Quốc", "region": "Chiết Giang", "city": "Hàng Châu"} |
Tham số cấp yêu cầu
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
max_tool_calls | integer | Không | Số lượt tìm kiếm tối đa trong một câu trả lời, 1–10, mặc định 3 |
stream | boolean | Không | Trả về dạng streaming |
Các tham số khác (input, instructions, max_output_tokens, ...) giống OpenAI Responses.
💰 Tính phí
Chi phí = token của mô hình + phí tìm kiếm:
- Tìm kiếm được tính theo từ khóa: một lượt dùng bao nhiêu từ khóa thì tính bấy nhiêu lần, theo
usage.tool_usage.web_search. Khi mô hình quyết định không tìm kiếm thì không có phí tìm kiếm. - Token: kết quả tìm kiếm được đưa vào làm đầu vào cho mô hình, nên token đầu vào tăng đáng kể (thường thêm vài nghìn token mỗi lần tìm kiếm) và được tính theo giá mô hình.
- Để kiểm soát chi phí, dùng
max_keywordđể giới hạn số từ khóa mỗi lượt vàmax_tool_callsđể giới hạn số lượt tìm kiếm.
❓ Câu hỏi thường gặp
Có dùng tìm kiếm web với /v1/chat/completions được không?
Không. Tìm kiếm web chỉ hoạt động trên /v1/responses. Công cụ web_search gửi tới Chat Completions sẽ không tìm kiếm và không bị tính phí.
Vì sao mô hình không tìm kiếm? Mô hình tự đánh giá câu hỏi có cần tìm kiếm không. Câu hỏi không cần thông tin mới (tính toán, kiến thức chung) sẽ được trả lời trực tiếp. Muốn chắc chắn có tìm kiếm, hãy yêu cầu rõ, ví dụ "hãy tìm trên web rồi trả lời".
Nhóm khác có dùng được không?
Hiện chỉ deepseek-v4.1-flash trong nhóm Deepseek官转 hỗ trợ tìm kiếm web.