Source: https://ailoot.ai/models/vi/gemini-3-5-flash-thinking/
Canonical: https://ailoot.ai/models/vi/gemini-3-5-flash-thinking/
Language: vi

# Google: Gemini 3.5 Flash

[Markdown](https://ailoot.ai/models/vi/gemini-3-5-flash-thinking/index.md) · [JSON](https://ailoot.ai/models/vi/gemini-3-5-flash-thinking/facts.json)

## [Google: Gemini 3.5 Flash](https://ailoot.ai/models/vi/gemini-3-5-flash-thinking/)

Gemini 3.5 Flash kết hợp hiểu đa phương thức với suy luận cho lập trình và tác vụ tác tử nhiều bước. Mô hình nhận văn bản, hình ảnh, video, âm thanh và PDF, tạo văn bản, với đầu ra có cấu trúc, công cụ và giới hạn đầu vào 1,048,576 token trong cấu hình được ghi trong tài liệu.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `gemini-3.5-flash-thinking`](https://ailoot.ai/models/vi/gemini-3-5-flash-thinking/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `gemini-3.5-flash-thinking`](https://ailoot.ai/models/vi/gemini-3-5-flash-thinking/#method-1)

Về mô hình

Mô tả này trình bày khả năng của mô hình. Đầu vào, đầu ra và tùy chọn có trên Ailoot được liệt kê bên dưới cho phương thức đã chọn.

Gemini 3.5 Flash là cấu hình mô hình Flash đa phương thức của Google dành cho công việc lập trình và tác tử kéo dài. Đầu vào được ghi trong tài liệu là văn bản, hình ảnh, video, âm thanh và PDF, với đầu ra văn bản. Trọng tâm tác vụ gồm lập trình theo vòng lặp, khám phá giải pháp thay thế và chuỗi chỉ dẫn cùng sử dụng công cụ dài hơn. Phiên bản 3.5 cung cấp các tùy chọn suy luận, đầu vào đa phương thức và quy trình công cụ được ghi trong tài liệu.

Tác vụ lập trình có thể kết hợp yêu cầu viết, tệp nguồn liên quan và ảnh chụp kết quả dự kiến. Cung cấp hành vi quan sát được, hành vi kỳ vọng và ràng buộc phải giữ nguyên. Đề bài minh họa là: “So sánh ảnh chụp màn hình với văn bản thành phần, xác định điểm không khớp trong quy trình biểu mẫu và đề xuất một chỉnh sửa tập trung. Giải thích chi tiết nguồn nào làm căn cứ cho thay đổi.” Với tác vụ tài liệu, cung cấp trang liên quan và yêu cầu so sánh với yêu cầu tường minh, kèm tham chiếu nguồn cho mỗi phát hiện.

Phiên bản ghi nhận các mức suy luận minimal, low, medium và high. Medium là mặc định, thay cho mặc định high của Gemini 3 Flash Preview. Minimal phù hợp câu trả lời đơn giản và quyết định công cụ trực tiếp nhưng không bảo đảm tắt hoàn toàn suy luận; low hướng đến tác vụ cần ít bước hơn; high cung cấp suy luận sâu hơn cho toán khó, lập trình và vấn đề tác tử. Google khuyến nghị dùng thinking\_level để điều khiển nỗ lực và giữ thiết lập lấy mẫu mặc định thay vì cố ép suy luận bằng thay đổi temperature, top-p hoặc top-k.

Hành vi đặc trưng là giữ ngữ cảnh suy luận xuyên suốt tác vụ nhiều lượt. Quy trình Interactions của Google tự động mang theo ngữ cảnh đó; quy trình GenerateContent yêu cầu toàn bộ lịch sử hội thoại không sửa đổi, bao gồm chữ ký suy luận. Điều này hỗ trợ nhiệm vụ gỡ lỗi hoặc tái cấu trúc tiếp diễn, trong đó suy luận trước giúp định hướng bước sau. Giữ cấu trúc hội thoại thực tế thay vì biến mỗi yêu cầu tiếp nối thành câu lệnh không liên quan, đồng thời giữ sản phẩm cuối yêu cầu rõ ràng khi công việc tiến triển.

Bộ công cụ được ghi trong tài liệu gồm Google Search, sử dụng thông tin Google Maps làm căn cứ, File Search, Code Execution, URL Context và Function Calling tiêu chuẩn, với sử dụng công cụ kết hợp và Computer Use được đánh dấu là khả năng xem trước. Structured Outputs có thể cung cấp bản ghi dữ liệu được định nghĩa. Giao mục đích và định nghĩa tham số rõ cho hàm: mô hình chọn hàm, còn ứng dụng kết nối thực hiện thao tác và trả kết quả. Google yêu cầu kết quả hàm khớp lời gọi trước theo định danh, tên và số lượng; kết quả đa phương thức thuộc bên trong phản hồi hàm.

Bảng mô hình API cụ thể ghi đầu vào tối đa 1,048,576 token và đầu ra tối đa 65,536 token. Lịch sử hội thoại và phương tiện được cung cấp góp vào ngân sách đầu vào. Bộ nhớ đệm và xử lý theo lô được ghi trong tài liệu cho cấu hình này, với các lựa chọn xử lý Flex và Priority bổ sung trong bảng Google. Những giới hạn và khả năng này mô tả phiên bản của nhà sản xuất; chúng không yêu cầu câu trả lời lấp đầy toàn bộ cửa sổ đầu ra hoặc khiến mọi công cụ đều cần thiết cho tác vụ.

Cấu hình này tạo văn bản thay vì hình ảnh hoặc âm thanh và không dùng Live API. Hướng dẫn nhà phát triển còn loại trừ phân đoạn hình ảnh. Với câu hỏi thị giác, yêu cầu mô tả, trích xuất hoặc diễn giải tài liệu được cung cấp; với bản ghi lời nói, yêu cầu kết quả văn bản. Khi câu trả lời phụ thuộc thông tin mới hơn, quy trình sử dụng kết quả tìm kiếm làm căn cứ được ghi trong tài liệu có thể bổ sung nguồn ngoài kiến thức huấn luyện. Nêu có cần thông tin bên ngoài không và câu trả lời cuối phải giữ bằng chứng gì.

Với nhiệm vụ dài hơn có ích, xác định kết quả cuối và tiêu chí hoàn thành trước bước đầu. Tác vụ phân tích hỗ trợ có thể yêu cầu bảng vấn đề quan sát được, đoạn trích làm căn cứ và phản hồi đề xuất; tác vụ lập trình có thể yêu cầu thay đổi tập trung và kết quả xác thực liên quan. Đính kèm ngữ cảnh nguồn quan trọng, quy định hành động công cụ được phép và yêu cầu câu trả lời cuối tường minh, tách công việc đã hoàn thành khỏi câu hỏi còn cần thông tin. Nhờ vậy, quy trình kéo dài của mô hình trở thành sản phẩm văn bản, mã hoặc cấu trúc cụ thể.

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `gemini-3.5-flash-thinking`

[`gemini-3.5-flash-thinking`](https://ailoot.ai/models/vi/#m=gemini-3.5-flash-thinking&route=Ultra&caller=gemini-3.5-flash-thinking&fmt=chat)

Google /`gemini-3.5-flash-thinking`

### Bắt đầu

Gemini 3.5 Flash kết hợp hiểu đa phương thức với suy luận cho lập trình và tác vụ tác tử nhiều bước. Mô hình nhận văn bản, hình ảnh, video, âm thanh và PDF, tạo văn bản, với đầu ra có cấu trúc, công cụ và giới hạn đầu vào 1,048,576 token trong cấu hình được ghi trong tài liệu.

Đầu vào được chấp nhận

Văn bản

Kết quả

Văn bản

### Có trên Ailoot · đầu vào & phương thức

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions`

Đầu vào

`text`

Đầu ra

`text`

Định dạng đầu ra

json hoặc SSE

| Trường | Loại | Yêu cầu | Giá trị & giới hạn | Mặc định |
| --- | --- | --- | --- | --- |
| Trường`model` | Loại`string` | Yêu cầuBắt buộc | Giá trị & giới hạn gemini-3.5-flash-thinking | Mặc định— |
| Trường`messages` | Loại`message[]` | Yêu cầuBắt buộc | Giá trị & giới hạn Số mục tối thiểu: 1 | Mặc định— |
| Trường`messages[].role` | Loại`string` | Yêu cầuBắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`messages[].content` | Loại`string` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Áp dụng khi: Hội thoại văn bản | Mặc định— |
| Trường`stream` | Loại`boolean` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc địnhfalse |

Tổ hợp tư liệu đầu vào

**Văn bản** · Văn bản UTF8

`messages[].content`

Tham số phương thức và vòng đời

| Tham số | Hợp đồng |
| --- | --- |
| Tham số`content_type` | Hợp đồngapplication/json |
| Tham số`required` | Hợp đồngmodel, messages |
| Tham số`material_types` | Hợp đồngtext |
| Tham số`messages` | Hợp đồngMảng thông điệp có cấu trúc role/content |
| Tham số`file_material` | Hợp đồngTài liệu UTF-8 thực tế được chèn nguyên dạng văn bản; không suy ra ID tệp |
| Tham số`optional_controls` | Hợp đồngstream |
| Tham số`control_scope` | Hợp đồngHội thoại văn bản; stream là giá trị boolean và mặc định là false. |
| Tham số`output_modalities` | Hợp đồngtext |
| Tham số`hosted_operations` | Hợp đồngfalse |
| Tham số`multimodal_input_binding` | Hợp đồngnull |

Bí danh phương thức: `/chat/completions`

Vòng đời: `synchronous_or_streamed`

Gửi ID mô hình chính xác cùng messages.

Độ dài ngữ cảnh không phải giới hạn đầu ra.

Tệp văn bản có thể cung cấp nguyên văn nội dung; đầu vào hình ảnh, âm thanh hoặc đối tượng tệp cần có liên kết chính xác.

### Bảng giá

Thông tin biểu giá không bổ sung tùy chọn yêu cầu. Các tham số được hỗ trợ nằm trong phương thức đã chọn.

Chế độ nhanh

Chưa chỉ định Khi chọn chế độ nhanh

Chế độ Flex

Chưa chỉ định Khi chọn chế độ flex

Mức độ suy luận tối đa

Chưa chỉ định Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa

Giá lưu đệm tường minh

Chưa bật Khi yêu cầu lưu đệm tường minh

#### Mức phí Ailoot

#### Giá theo cấu hình

| Cấu hình | Biểu mức phí | Phí |
| --- | --- | --- |
| Cấu hìnhGiá cơ sở cho token | Biểu mức phíMức phí cơ bản | Phí Đầu vào · Token đầu vào **$0.003** / 1K token Đầu ra · Token đầu ra **$0.018** / 1K token Đầu vào · Đọc bộ nhớ đệm **$0** / 1K token Đầu vào · Ghi bộ nhớ đệm **$0** / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ **—** / 1K token |

Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. [Cách hoạt động của cơ chế tạm giữ và quyết toán →](https://ailoot.ai/docs/vi/billing/reserve/)

### Ví dụ yêu cầu

#### Ailoot Ultra · OpenAI Chat

curlPython SDK

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"gemini-3.5-flash-thinking","messages":[{"role":"user","content":"hello"}],"stream":false}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="gemini-3.5-flash-thinking", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
```

### Nhận và lưu kết quả

#### Ailoot Ultra · OpenAI Chat

json hoặc SSE

##### Lưu tất cả kết quả đã hoàn tất

Lưu mọi phản hồi hoàn chỉnh, tệp và phần nội dung được trả về.

Giữ mọi phương án trả lời cùng nội dung, lệnh gọi công cụ và dữ liệu suy luận của phương án đó. Với SSE, ghép các phần thay đổi theo chỉ số phương án và công cụ, giữ lý do kết thúc cuối cùng cùng dữ liệu sử dụng.

##### Nếu cần kiểm tra phản hồi gốc

Giữ ID và header của yêu cầu, phản hồi. Không cung cấp URL chung để truy xuất tác vụ văn bản.

Trường phản hồi

| Trường | Loại |
| --- | --- |
| Trường`choices[].index` | Loạiinteger |
| Trường`choices[].message.content` | Loạistring\|null |
| Trường`choices[].message.tool_calls` | Loạitool\_call\[\] |
| Trường`choices[].message.reasoning_content` | Loạistring |
| Trường`choices[].message.reasoning_details` | Loạiobject\|array |
| Trường`choices[].finish_reason` | Loạistring\|null |
| Trường`usage` | Loạiobject |

Lỗi và bước tiếp theo

| Phản hồi | Điều kiện | Bước tiếp theo |
| --- | --- | --- |
| Phản hồi400 · `invalid_request_error` | Điều kiệnTrường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số không hợp lệ | Bước tiếp theoSửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới. |

### Bí danh

#### Bí danh mô hình

**Ailoot Ultra** [`gemini-3.5-flash-thinking`](https://ailoot.ai/models/vi/#m=gemini-3.5-flash-thinking&route=Ultra&caller=gemini-3.5-flash-thinking&fmt=chat)

#### Bí danh đường dẫn phương thức

`/chat/completions`

#### ID gọi liên quan

[`gemini-3.5-flash-thinking`](https://ailoot.ai/models/vi/#m=gemini-3.5-flash-thinking&route=Ultra&caller=gemini-3.5-flash-thinking&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `gemini-3.5-flash-thinking`

[`gemini-3.5-flash-thinking`](https://ailoot.ai/models/vi/#m=gemini-3.5-flash-thinking&route=Ultra&caller=gemini-3.5-flash-thinking&fmt=messages)

Google /`gemini-3.5-flash-thinking`

### Bắt đầu

Gemini 3.5 Flash kết hợp hiểu đa phương thức với suy luận cho lập trình và tác vụ tác tử nhiều bước. Mô hình nhận văn bản, hình ảnh, video, âm thanh và PDF, tạo văn bản, với đầu ra có cấu trúc, công cụ và giới hạn đầu vào 1,048,576 token trong cấu hình được ghi trong tài liệu.

Đầu vào được chấp nhận

Văn bản

Kết quả

json · sse

### Có trên Ailoot · đầu vào & phương thức

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages`

Đầu vào

`text`

Đầu ra

`json`, `sse`

Định dạng đầu ra

JSON hoặc SSE

| Trường | Loại | Yêu cầu | Giá trị & giới hạn | Mặc định |
| --- | --- | --- | --- | --- |
| Trường`model` | Loại`string` | Yêu cầuBắt buộc | Giá trị & giới hạn gemini-3.5-flash-thinking | Mặc định— |
| Trường`messages` | Loại`message[]` | Yêu cầuBắt buộc | Giá trị & giới hạn | Mặc định— |
| Trường`messages[].role` | Loại`string` | Yêu cầuBắt buộc | Giá trị & giới hạn user, assistant | Mặc định— |
| Trường`messages[].content` | Loại`string` | Yêu cầuBắt buộc | Giá trị & giới hạn | Mặc định— |
| Trường`max_tokens` | Loại`integer` | Yêu cầuBắt buộc | Giá trị & giới hạn | Mặc định— |
| Trường`stream` | Loại`boolean` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc địnhfalse |

Tổ hợp tư liệu đầu vào

**Văn bản** · Văn bản UTF-8

`Chuỗi messages[].content`

Tham số phương thức và vòng đời

| Tham số | Hợp đồng |
| --- | --- |
| Tham số`content_type` | Hợp đồngapplication/json |
| Tham số`required` | Hợp đồngmodel, messages, max\_tokens |
| Tham số`optional_controls` | Hợp đồngstream |
| Tham số`material_types` | Hợp đồngtext |
| Tham số`text_file_material` | Hợp đồngĐọc tài liệu UTF-8 thực tế và đặt nội dung văn bản vào chuỗi đầu vào hoặc nội dung thông điệp được chỉ định. |

Vòng đời: `synchronous_or_streamed`

### Bảng giá

Thông tin biểu giá không bổ sung tùy chọn yêu cầu. Các tham số được hỗ trợ nằm trong phương thức đã chọn.

Chế độ nhanh

Chưa chỉ định Khi chọn chế độ nhanh

Chế độ Flex

Chưa chỉ định Khi chọn chế độ flex

Mức độ suy luận tối đa

Chưa chỉ định Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa

Giá lưu đệm tường minh

Chưa bật Khi yêu cầu lưu đệm tường minh

#### Mức phí Ailoot

#### Giá theo cấu hình

| Cấu hình | Biểu mức phí | Phí |
| --- | --- | --- |
| Cấu hìnhGiá cơ sở cho token | Biểu mức phíMức phí cơ bản | Phí Đầu vào · Token đầu vào **$0.003** / 1K token Đầu ra · Token đầu ra **$0.018** / 1K token Đầu vào · Đọc bộ nhớ đệm **$0** / 1K token Đầu vào · Ghi bộ nhớ đệm **$0** / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ **—** / 1K token |

Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. [Cách hoạt động của cơ chế tạm giữ và quyết toán →](https://ailoot.ai/docs/vi/billing/reserve/)

### Ví dụ yêu cầu

#### Ailoot Ultra · Anthropic Messages

Nội dung yêu cầu JSON tối thiểu, đầy đủcurl · dùng tài liệu UTF-8 của bạnPython · lưu kết quả đầy đủ

```json
{
  "model": "gemini-3.5-flash-thinking",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'gemini-3.5-flash-thinking', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
```

```python
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'gemini-3.5-flash-thinking', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
```

### Nhận và lưu kết quả

#### Ailoot Ultra · Anthropic Messages

JSON hoặc SSE

##### Lưu tất cả kết quả đã hoàn tất

Lưu mọi phản hồi hoàn chỉnh, tệp và phần nội dung được trả về.

Giữ mọi khối nội dung, chữ ký suy nghĩ và ID sử dụng công cụ thực tế. Ghép tất cả các phần thay đổi của khối SSE; khối văn bản đầu tiên không phải toàn bộ đầu ra.

##### Nếu cần kiểm tra phản hồi gốc

Giữ ID và header của yêu cầu, phản hồi. Không cung cấp URL chung để truy xuất tác vụ văn bản.

Trường phản hồi

| Trường | Loại |
| --- | --- |
| Trường`id` | Loạistring |
| Trường`model` | Loạistring |
| Trường`content[]` | Loạitext\|thinking\|tool\_use\|other content block |
| Trường`stop_reason` | Loạistring\|null |
| Trường`usage` | Loạiobject |

Lỗi và bước tiếp theo

| Phản hồi | Điều kiện | Bước tiếp theo |
| --- | --- | --- |
| Phản hồi400 · `invalid_request_error` | Điều kiệnTrường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số không hợp lệ | Bước tiếp theoSửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới. |

### Bí danh

#### Bí danh mô hình

**Ailoot Ultra** [`gemini-3.5-flash-thinking`](https://ailoot.ai/models/vi/#m=gemini-3.5-flash-thinking&route=Ultra&caller=gemini-3.5-flash-thinking&fmt=messages)

#### Bí danh đường dẫn phương thức

`/chat/completions`

#### ID gọi liên quan

[`gemini-3.5-flash-thinking`](https://ailoot.ai/models/vi/#m=gemini-3.5-flash-thinking&route=Ultra&caller=gemini-3.5-flash-thinking&fmt=messages)

FAQ · Google: Gemini 3.5 Flash

Có những đầu vào và kết quả nào?

`POST /v1/chat/completions` · `gemini-3.5-flash-thinking`: `text` → `text` `POST /v1/messages` · `gemini-3.5-flash-thinking`: `text` → `json`, `sse`

Yêu cầu sử dụng những trường nào?

`POST /v1/chat/completions` · `gemini-3.5-flash-thinking`: `model`, `messages`, `stream` `POST /v1/messages` · `gemini-3.5-flash-thinking`: `model`, `messages`, `max_tokens`, `stream`

Áp dụng những giới hạn nào?

`POST /v1/chat/completions` · `gemini-3.5-flash-thinking`: `messages.min_items`: `1`

Kết nối Ailoot với Claude Code, OpenCode, Hermes hoặc ứng dụng của bạn.

## Công ty và danh mục dự án của công ty

Công ty và danh mục dự án của công ty: hàng triệu khách hàng; doanh số hàng tỷ mỗi tháng.

## Mua token với giá ưu đãi.

Ưu đãi thuê bao cho nhu cầu thường xuyên. Mã khuyến mãi giảm đến 50% khi mua token.

Thuê bao

Chọn gói ưu đãi cho các yêu cầu thường xuyên của bạn.

Mã giảm đến 50%

Nhập mã khi mua. Giá được tính lại theo chương trình đang áp dụng.

Chi phí trong lịch sử

Mô hình, token và số tiền được lưu cho mỗi yêu cầu.

[Chọn gói thuê bao](https://ailoot.ai/docs/vi/billing/subscriptions/) · [Xem giá mô hình](https://ailoot.ai/models/vi/)

## Kết nối API vào sản phẩm bạn đang bán.

SaaS, ứng dụng và bot — theo đề nghị giao kết chính thức và thỏa thuận cấp phép Ailoot. Muốn bán lại, hãy yêu cầu giấy phép bán lại.

Ứng dụng thương mại

Tích hợp tạo văn bản, ảnh, video và âm thanh vào các tính năng trả phí của dịch vụ.

Giấy phép bán lại

Gửi mô tả dự án và cách cung cấp quyền truy cập. Yêu cầu điều khoản sử dụng và bán lại bằng văn bản.

Tài liệu trên website

Đề nghị giao kết, thỏa thuận cấp phép và chính sách xử lý dữ liệu có sẵn trước khi kết nối.

[Yêu cầu giấy phép bán lại](mailto:support@ailoot.ai) · [Đề nghị giao kết và thỏa thuận cấp phép](https://ailoot.ai/legal/offer?lang=vi)

## Ailoot · Công ty và danh mục dự án của công ty





Ailoot dựa trên kinh nghiệm vận hành tích lũy, cơ sở khách hàng lớn, dịch vụ ổn định và việc kiểm soát KPI liên tục.





Công ty và danh mục dự án của công ty: hàng triệu khách hàng; doanh số hàng tỷ mỗi tháng.





Ailoot áp dụng kinh nghiệm vận hành này để cung cấp quyền truy cập API vào các tính năng AI trong sản phẩm của khách hàng, tác tử, ứng dụng và quy trình tự động hóa.
