Source: https://ailoot.ai/models/vi/scaledown-extract/
Canonical: https://ailoot.ai/models/vi/scaledown-extract/
Language: vi

# ScaleDown: Extract

[Markdown](https://ailoot.ai/models/vi/scaledown-extract/index.md) · [JSON](https://ailoot.ai/models/vi/scaledown-extract/facts.json)

## [ScaleDown: Extract](https://ailoot.ai/models/vi/scaledown-extract/)

Extract tìm thực thể do bên gọi mô tả trong văn bản, hình ảnh và tệp tài liệu. Định nghĩa trường bằng tiếng Anh đơn giản, rồi giữ đoạn khớp, điểm độ tin cậy, độ lệch ký tự và bối cảnh xung quanh. OCR tích hợp hỗ trợ bản quét và PDF, với ngữ cảnh 1.000.000 token được công bố cho quy trình tài liệu.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `scaledown/extract`](https://ailoot.ai/models/vi/scaledown-extract/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `scaledown/extract`](https://ailoot.ai/models/vi/scaledown-extract/#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.

Extract là mô hình trích xuất thực thể theo mô tả của ScaleDown. Thay vì chọn từ một tập kiểu thực thể cố định, bên gọi mô tả thông tin cần tìm bằng tiếng Anh đơn giản. Mô hình trả về đoạn khớp cùng độ tin cậy, độ lệch ký tự và bối cảnh xung quanh, giúp nối kết quả lại với tài liệu nguồn dễ hơn.

#### Mô tả các trường cần có

Đặt tên mỗi thực thể được yêu cầu theo mục đích kinh doanh cụ thể. Quy trình hóa đơn có thể tìm mã định danh tài liệu, ngày và số tiền đúng như được viết. Quy trình hợp đồng có thể tìm các bên được nêu tên, hạn chót hoặc nghĩa vụ chỉ định. Quy trình email có thể tìm thông tin liên hệ hoặc hành động được yêu cầu.

Mô tả ý nghĩa trường thay vì chỉ dựa vào tên ngắn. Phân biệt ngày phát hành với hạn thanh toán hoặc tên người với tên tổ chức. Khi nhiều trường có cách diễn đạt tương tự, cho mỗi trường một định nghĩa giúp giữ các kết quả khớp trả về tách biệt.

#### Giữ kết quả khớp và bằng chứng

Kết quả trích xuất hữu ích giữ đoạn nguồn cùng độ lệch và văn bản xung quanh. Các giá trị đó cho ứng dụng xác định kết quả khớp đến từ đâu và cho người xem xét kiểm tra bằng chứng mà không tìm lại toàn tài liệu. Giữ giá trị độ tin cậy cùng kết quả khớp thay vì coi mọi đoạn trả về đều chắc chắn ngang nhau.

Nếu quy trình cần ngày chuẩn hóa, số tiền chuyển đổi hoặc giá trị suy ra khác, giữ văn bản gốc cùng phép biến đổi sau đó. Trích xuất thực thể xác định tài liệu nói gì; ứng dụng quyết định quy tắc chuẩn hóa và xác thực nào áp dụng cho bằng chứng trả về.

#### Bản quét, tài liệu và đầu vào dài

Phạm vi đầu vào được công bố của mô hình gồm văn bản, hình ảnh và tệp như PDF, với OCR tích hợp cho tài liệu quét. Dùng tài liệu nguồn đọc được và giữ mã định danh tài liệu, trang khi chúng quan trọng cho xem xét. Bản quét kém có thể làm trường mơ hồ, nên kiểm tra bối cảnh trả về trước khi chấp nhận giá trị quan trọng.

Cửa sổ ngữ cảnh được công bố là 1.000.000 token. Với tài liệu hoặc tập lớn, giữ định nghĩa thực thể cần tìm nhất quán và liên kết mỗi kết quả với tài liệu nguồn của nó. Cùng tập định nghĩa có thể giúp ứng dụng so sánh trường trích xuất giữa hợp đồng, hóa đơn, tin nhắn hoặc bản chép lời.

#### Đầu ra văn bản và xác thực ở bước sau

Phương thức đầu ra được công bố là văn bản. Dùng quy trình trích xuất bao quanh để xác thực mọi cấu trúc bản ghi máy đọc được mà nó cần. Giữ văn bản khớp và bối cảnh nguồn trước khi lưu hoặc biến đổi kết quả.

Sản phẩm cuối hữu ích chứa tên thực thể được yêu cầu, văn bản nguồn khớp, vị trí hoặc bối cảnh liên quan và độ tin cậy để xem xét. Giữ rõ các kết quả khớp chưa giải quyết hoặc cạnh tranh thay vì bịa trường thiếu. Điều này tạo bản ghi trích xuất dựa trên bằng chứng cho kiểm tra và biến đổi tiếp theo.

#### Khả năng

- Các loại thực thể được mô tả bằng tiếng Anh thông thường.
- Các đoạn khớp kèm độ tin cậy, vị trí lệch ký tự và ngữ cảnh xung quanh.
- OCR tích hợp cho ảnh quét và PDF.
- Đầu vào văn bản, hình ảnh và tệp với ngữ cảnh 1.000.000 token được công bố.
- Kết quả văn bản phù hợp để trích xuất trường dựa trên bằng chứng.

#### Trường hợp sử dụng

- **Trích xuất trường hóa đơn** — Hóa đơn và định nghĩa các mã định danh, ngày hoặc số tiền cần tìm. Kết quả: Các trường nguồn khớp được lưu cùng bằng chứng.
- **Chuẩn bị đánh giá hợp đồng** — Hợp đồng và các định nghĩa chính xác về các bên, ngày hoặc nghĩa vụ. Kết quả: Các đoạn được trích xuất để đánh giá pháp lý hoặc vận hành sau này.
- **Tiếp nhận email** — Tin nhắn và các thực thể cần cho quy trình. Kết quả: Bản ghi liên hệ hoặc yêu cầu gắn với bằng chứng.
- **Thu thập thông tin từ tài liệu quét** — Bản quét/PDF đọc được và các định nghĩa thực thể ổn định. Kết quả: Các kết quả khớp có ngữ cảnh nguồn và độ tin cậy để xác minh.

#### Giới hạn

- **Ngữ cảnh** — Cửa sổ ngữ cảnh được công bố: 1.000.000 token.
- **Bằng chứng kết quả** — Lưu lại các đoạn, vị trí lệch và ngữ cảnh xung quanh trước khi áp dụng các bước chuẩn hóa sau này.
- **Hợp đồng đầu ra** — Đầu ra được công bố là văn bản; JSON được cưỡng chế theo lược đồ và gọi hàm không được liệt kê cho mô hình này.
- **Định nghĩa trường** — Việc chọn thực thể dựa trên các mô tả được cung cấp thay vì một hệ thống phân loại cố định.

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

[`scaledown/extract`](https://ailoot.ai/models/vi/#m=scaledown%2Fextract&route=Ultra&caller=scaledown%2Fextract&fmt=chat)

ScaleDown /`scaledown/extract`

### Bắt đầu

Extract tìm thực thể do bên gọi mô tả trong văn bản, hình ảnh và tệp tài liệu. Định nghĩa trường bằng tiếng Anh đơn giản, rồi giữ đoạn khớp, điểm độ tin cậy, độ lệch ký tự và bối cảnh xung quanh. OCR tích hợp hỗ trợ bản quét và PDF, với ngữ cảnh 1.000.000 token được công bố cho quy trình 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 scaledown/extract | 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

#### Mức phí Ailoot

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

Đối chiếu từng khoản phí với điều kiện hiển thị. Dùng một mức phí cho mỗi nhóm cấu hình thay thế.

| Cấu hình | Biểu mức phí | Token ngữ cảnh, lớn hơn | Token ngữ cảnh, tối đa và bao gồm | Phí |
| --- | --- | --- | --- | --- |
| Cấu hìnhGiá cơ sở cho token | Biểu mức phíMức phí cơ bản | Token ngữ cảnh, lớn hơn— | Token ngữ cảnh, tối đa và bao gồmKhông có giới hạn trên | Phí Đầu vào · Token đầu vào **$0.0001** / 1K token Đầu ra · Token đầu ra **$0** / 1K token Đầu vào · Đọc bộ nhớ đệm **—** / 1K token Đầu vào · Ghi bộ nhớ đệm **—** / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ **—** / 1K token |
| Cấu hìnhBậc 1 theo độ dài yêu cầu | Biểu mức phí— | Token ngữ cảnh, lớn hơn0 | Token ngữ cảnh, tối đa và bao gồmKhông có giới hạn trên | Phí Đầu vào · Token đầu vào **$0.0001** / 1K token Đầu ra · Token đầu ra **$0** / 1K token Đầu vào · Đọc bộ nhớ đệm **—** / 1K token Đầu vào · Ghi bộ nhớ đệm **—** / 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":"scaledown/extract","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="scaledown/extract", 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** [`scaledown/extract`](https://ailoot.ai/models/vi/#m=scaledown%2Fextract&route=Ultra&caller=scaledown%2Fextract&fmt=chat)

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

`/chat/completions`

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

[`scaledown/extract`](https://ailoot.ai/models/vi/#m=scaledown%2Fextract&route=Ultra&caller=scaledown%2Fextract&fmt=chat)

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

[`scaledown/extract`](https://ailoot.ai/models/vi/#m=scaledown%2Fextract&route=Ultra&caller=scaledown%2Fextract&fmt=messages)

ScaleDown /`scaledown/extract`

### Bắt đầu

Extract tìm thực thể do bên gọi mô tả trong văn bản, hình ảnh và tệp tài liệu. Định nghĩa trường bằng tiếng Anh đơn giản, rồi giữ đoạn khớp, điểm độ tin cậy, độ lệch ký tự và bối cảnh xung quanh. OCR tích hợp hỗ trợ bản quét và PDF, với ngữ cảnh 1.000.000 token được công bố cho quy trình 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 scaledown/extract | 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

#### Mức phí Ailoot

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

Đối chiếu từng khoản phí với điều kiện hiển thị. Dùng một mức phí cho mỗi nhóm cấu hình thay thế.

| Cấu hình | Biểu mức phí | Token ngữ cảnh, lớn hơn | Token ngữ cảnh, tối đa và bao gồm | Phí |
| --- | --- | --- | --- | --- |
| Cấu hìnhGiá cơ sở cho token | Biểu mức phíMức phí cơ bản | Token ngữ cảnh, lớn hơn— | Token ngữ cảnh, tối đa và bao gồmKhông có giới hạn trên | Phí Đầu vào · Token đầu vào **$0.0001** / 1K token Đầu ra · Token đầu ra **$0** / 1K token Đầu vào · Đọc bộ nhớ đệm **—** / 1K token Đầu vào · Ghi bộ nhớ đệm **—** / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ **—** / 1K token |
| Cấu hìnhBậc 1 theo độ dài yêu cầu | Biểu mức phí— | Token ngữ cảnh, lớn hơn0 | Token ngữ cảnh, tối đa và bao gồmKhông có giới hạn trên | Phí Đầu vào · Token đầu vào **$0.0001** / 1K token Đầu ra · Token đầu ra **$0** / 1K token Đầu vào · Đọc bộ nhớ đệm **—** / 1K token Đầu vào · Ghi bộ nhớ đệm **—** / 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": "scaledown/extract",
  "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': 'scaledown/extract', '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': 'scaledown/extract', '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** [`scaledown/extract`](https://ailoot.ai/models/vi/#m=scaledown%2Fextract&route=Ultra&caller=scaledown%2Fextract&fmt=messages)

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

`/chat/completions`

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

[`scaledown/extract`](https://ailoot.ai/models/vi/#m=scaledown%2Fextract&route=Ultra&caller=scaledown%2Fextract&fmt=messages)

FAQ · ScaleDown: Extract

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

`POST /v1/chat/completions` · `scaledown/extract`: `text` → `text` `POST /v1/messages` · `scaledown/extract`: `text` → `json`, `sse`

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

`POST /v1/chat/completions` · `scaledown/extract`: `model`, `messages`, `stream` `POST /v1/messages` · `scaledown/extract`: `model`, `messages`, `max_tokens`, `stream`

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

`POST /v1/chat/completions` · `scaledown/extract`: `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.
