Source: https://ailoot.ai/models/vi/meta-muse-spark-1-3-contributor/
Canonical: https://ailoot.ai/models/vi/meta-muse-spark-1-3-contributor/
Language: vi

# Meta: Muse Spark 1.3 Contributor

[Markdown](https://ailoot.ai/models/vi/meta-muse-spark-1-3-contributor/index.md) · [JSON](https://ailoot.ai/models/vi/meta-muse-spark-1-3-contributor/facts.json)

## [Meta: Muse Spark 1.3 Contributor](https://ailoot.ai/models/vi/meta-muse-spark-1-3-contributor/)

Muse Spark 1.3 Contributor là phiên bản suy luận trong dòng tác tử và lập trình của Meta dành cho quy trình tạo mẫu. Nhà sản xuất liệt kê đầu vào văn bản, hình ảnh, video và PDF, đầu ra văn bản cùng ngữ cảnh 1,048,576 token, với các mức suy luận đến xhigh thay vì max của Standard 1.3.

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

Muse Spark 1.3 Contributor là phiên bản có tên riêng trong dòng Muse Spark của Meta, dành cho tạo mẫu và thử nghiệm. Dòng này được thiết kế cho công việc tác tử và lập trình: vòng lặp công cụ nhiều bước, trợ lý phần mềm và suy luận trên lượng tài liệu nguồn đáng kể. Giữ tên Contributor khi chọn phiên bản thay vì coi nó là mục Standard 1.3 với mọi thiết lập được chuyển sang nguyên vẹn.

Đầu vào và ngữ cảnh

Bảng mô hình chính thức liệt kê văn bản, hình ảnh, video và PDF là đầu vào, văn bản là đầu ra, với cửa sổ ngữ cảnh 1,048,576 token. Nhiệm vụ có thể kết hợp yêu cầu viết, ảnh chụp màn hình, đoạn video liên quan hoặc các trang tài liệu và yêu cầu phần giải thích bằng văn bản, phát hiện có cấu trúc hoặc mã đề xuất. Kết quả văn bản của mô hình có thể trở thành sản phẩm trong ứng dụng bao quanh; kết xuất trang hoặc thực thi mã cần môi trường ứng dụng đó.

Xác định từng nguồn và vai trò của nó trước khi yêu cầu kết quả. Nhiệm vụ tạo mẫu giao diện có thể kết hợp ảnh chụp màn hình với hành vi mong muốn và đoạn mã hiện có. Yêu cầu những khác biệt nhìn thấy, thay đổi triển khai đề xuất và các giả định vẫn cần làm rõ. Nhiệm vụ tài liệu có thể định nghĩa các trường cần trích xuất và yêu cầu trang hoặc đoạn hỗ trợ bên cạnh mỗi phát hiện.

Nhà sản xuất lưu ý khả năng hiểu âm thanh trong phiên bản 1.3 chưa được hỗ trợ đầy đủ và có thể cho phản hồi suy giảm chất lượng. Coi đây là hạn chế riêng của phiên bản thay vì chép khả năng âm thanh của Muse Spark 1.2 hoặc mô hình chép lời mang tên riêng vào mô tả này.

Mức suy luận và ngân sách câu trả lời

Muse Spark tạo suy luận nội bộ trước câu trả lời hiển thị. Các mức nỗ lực được tài liệu hóa áp dụng ở đây là minimal, low, medium, high và xhigh. Mức max thuộc riêng Standard Muse Spark 1.3 và không có cho các mô hình Contributor. Không hỗ trợ tắt suy luận bằng none; bỏ thiết lập vẫn để mô hình suy luận ở mức do mô hình quyết định.

Ngân sách token đầu ra bao gồm cả suy luận nội bộ và văn bản hiển thị. Vì vậy, yêu cầu kết quả viết dài cần chỗ cho cả hai, đặc biệt ở mức nỗ lực suy luận cao hơn. Suy luận nội bộ thô được giữ riêng tư và log probabilities không được hỗ trợ làm thước đo độ tin cậy. Yêu cầu phần giải thích, các trường hoặc mã cuối mà nhiệm vụ cần, thay vì giả định dấu vết suy luận nền tảng sẽ được trả lại dưới dạng văn bản đọc được.

Đối với thử nghiệm trích xuất hoặc định dạng có trọng tâm, định nghĩa bản ghi chính xác và tài liệu nguồn. Đối với vấn đề lập trình hoặc trực quan nhiều bước, xác định các quyết định trung gian và sản phẩm cuối. Nỗ lực suy luận cao hơn thay đổi phần phân bổ cho suy luận; tự nó không xác định điều gì tạo thành kết quả hoàn tất, hữu ích.

Công cụ và phát hiện có cấu trúc

Tài liệu Muse Spark của nhà sản xuất mô tả gọi công cụ do nhà phát triển định nghĩa và đầu ra có cấu trúc. Ứng dụng cung cấp định nghĩa công cụ, mô hình quyết định thao tác cần thiết và chuẩn bị đối số, còn ứng dụng thực thi từng lệnh gọi và trả lại kết quả tương ứng. Câu trả lời tiếp theo có thể sử dụng các kết quả đó để quyết định việc cần làm tiếp. Lệnh gọi đề xuất khác với thao tác đã hoàn thành.

Cùng tài liệu đó phân biệt các công cụ tìm kiếm tích hợp được kết nối với các hàm do nhà phát triển định nghĩa. Tìm kiếm hoặc thực thi mã thuộc môi trường công cụ, không phải phương thức nội dung bổ sung của câu trả lời văn bản. Trong bản mẫu, chỉ cung cấp các thao tác liên quan đến câu hỏi và mô tả điều mỗi thao tác trả lại để câu trả lời sau vẫn gắn với thông tin thực sự đã truy xuất hoặc tính toán.

Đối với trích xuất có cấu trúc, chỉ rõ tên trường, thông tin bắt buộc và cách biểu diễn giá trị thiếu. Bản ghi thực tế có thể chứa định danh nguồn, dữ kiện quan sát được, cách diễn giải và câu hỏi vẫn cần làm rõ. Giữ bản ghi riêng khỏi văn xuôi tùy chọn khi ứng dụng phải xử lý các trường một cách tin cậy. Giao diện schema của nhà sản xuất từ chối schema đệ quy và giới hạn lồng nhau ở mười cấp. Chế độ nghiêm ngặt yêu cầu gốc là đối tượng thuần, mọi thuộc tính được liệt kê đều bắt buộc và không cho phép thuộc tính bổ sung. Cấu trúc khớp không xác lập tính đúng đắn của dữ kiện.

Một nhiệm vụ tạo mẫu hữu ích

Chọn một quy trình có thể tạo sản phẩm kiểm tra được. Cung cấp yêu cầu, ví dụ trực quan và mã quyết định hành vi hiện tại. Yêu cầu phép so sánh ngắn, đoạn mã sửa đổi đề xuất và các ví dụ phân biệt hành vi mong đợi với hành vi hiện tại. Đưa vào mọi kết quả tra cứu hoặc thực thi do ứng dụng trả về trước khi yêu cầu giải thích cuối.

Đối với bản mẫu hướng đến tài liệu, cung cấp PDF và câu hỏi cần trả lời, rồi yêu cầu bản tóm tắt gắn nguồn hoặc bảng so sánh. Đối với video, xác định sự kiện hoặc quan hệ trực quan cần xem xét và yêu cầu mô tả theo thứ tự cùng các quan sát hỗ trợ. Xác định độ dài và các phần của câu trả lời cuối để ngữ cảnh lớn của mô hình phục vụ câu hỏi thực tế.

Ranh giới phiên bản và tính liên tục

Contributor vẫn là phiên bản 1.3 mang tên riêng, với ngữ cảnh và kiểu đầu vào được tài liệu hóa. Hướng dẫn suy luận của Meta phân biệt lịch sử hội thoại thông thường với việc giữ suy luận riêng tư qua các lượt: giao diện trò chuyện của nhà sản xuất không trả lại dấu vết riêng tư đó cho bên gọi bên ngoài. Giữ tin nhắn hiển thị, nguồn và kết quả công cụ cần cho lượt tiếp theo thay vì giả định mọi giao diện đều chuyển tiếp suy luận nội bộ.

Các nguồn đã đọc không quy định giới hạn cứng riêng về dung lượng token đầu vào hoặc đầu ra ngoài cửa sổ ngữ cảnh. Giữ phiên bản, cách chuẩn bị đầu vào và sản phẩm được yêu cầu, đồng thời giữ thực thi công cụ và cung cấp văn bản cuối gắn với các kết quả thực sự thu được trong quy trình tạo mẫu.

Tác vụ thực tế

### Tác vụ thực tế

Ví dụ kỹ thuật bằng tiếng Anh

```
Prototype and test a text-only helper

Design a small Python prototype for an appointment reminder. Input records contain id and minutes_until_start. Return IDs where 0 <= minutes_until_start <= 30, preserving input order. Supply the function and cases at -1, 0, 30 and 31 minutes. Include a short note on assumptions; no calendar connection or reminder sending is available.
```

#### Kết quả mong đợi

```
A self-contained function, boundary-case assertions and explicit assumptions about input fields.
```

#### Kiểm tra kết quả

```
Exactly the 0- and 30-minute records qualify, and the function does not send messages or assume calendar access.
```

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `meta/muse-spark-1.3-contributor`

[`meta/muse-spark-1.3-contributor`](https://ailoot.ai/models/vi/#m=meta%2Fmuse-spark-1.3-contributor&route=Ultra&caller=meta%2Fmuse-spark-1.3-contributor&fmt=chat)

Meta /`meta/muse-spark-1.3-contributor`

### Bắt đầu

Muse Spark 1.3 Contributor là phiên bản suy luận trong dòng tác tử và lập trình của Meta dành cho quy trình tạo mẫu. Nhà sản xuất liệt kê đầu vào văn bản, hình ảnh, video và PDF, đầu ra văn bản cùng ngữ cảnh 1,048,576 token, với các mức suy luận đến xhigh thay vì max của Standard 1.3.

Đầ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 meta/muse-spark-1.3-contributor | 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 Ví dụ: system, user, assistant, tool, function Điều kiện: Các vai trò này được biểu diễn rõ trong các kiểu tương thích của mã nguồn; tập vai trò chính xác vẫn tùy từng mô hình. Tùy thuộc vào mô hình | Mặc định— |
| Trường`messages[].content` | Loại`string\|content_part[]\|null` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc định— |
| Trường`messages[].tool_calls` | Loại`tool_call[]` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc định— |
| Trường`messages[].tool_call_id` | Loại`string` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Áp dụng khi: role=tool; dùng ID thực tế được trả về | Mặc định— |
| Trường`messages[].name` | Loại`string` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc định— |
| Trường`messages[].reasoning_content` | Loại`string` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Áp dụng khi: Gửi lại dữ liệu suy luận thực tế đã được trả về khi mô hình này sử dụng dữ liệu đó | Mặc định— |
| Trường`messages[].reasoning_details` | Loại`object\|array` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`max_tokens` | Loại`integer` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tối thiểu: 1 Tùy thuộc vào mô hình | Mặc định— |
| Trường`max_completion_tokens` | Loại`integer` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tối thiểu: 1 Tùy thuộc vào mô hình | 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 |
| Trường`stream_options.include_usage` | Loại`boolean` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`temperature` | Loại`number` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`top_p` | Loại`number` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`stop` | Loại`string\|string[]` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`tools` | Loại`function_tool[]` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`tools[].type` | Loại`string` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn function Tùy thuộc vào mô hình | Mặc định— |
| Trường`tools[].function.name` | Loại`string` | Yêu cầuBắt buộc | Giá trị & giới hạn Áp dụng khi: Có cung cấp công cụ hàm | Mặc định— |
| Trường`tools[].function.description` | Loại`string` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc định— |
| Trường`tools[].function.parameters` | Loại`JSON_schema` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc định— |
| Trường`tool_choice` | Loại`string\|object` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`parallel_tool_calls` | Loại`boolean` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`response_format` | Loại`object` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`reasoning_effort` | Loại`string` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`reasoning` | Loại`object` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`service_tier` | Loại`string` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`instructions` | Loại`string` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Trường tương thích | Mặc định— |
| Trường`functions` | Loại`function[]` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`function_call` | Loại`string\|object` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`prompt_cache_options` | Loại`object` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
| Trường`modalities` | Loại`string[]` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn text | Mặc định— |
| Trường`provider` | Loại`object` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Điều kiện: provider.options bị từ chối trên tuyến văn bản Ultra này | Mặc định— |
| Trường`cache_control.ttl` | Loại`string` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Điều kiện: 1h bị từ chối tại các vị trí lưu đệm prompt thực tế | Mặc định— |

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, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Tham số`control_scope` | Hợp đồngTùy từng mô hình; công cụ hàm của người dùng khác với công cụ do dịch vụ cung cấp |
| Tham số`output_modalities` | Hợp đồngtext |
| Tham số`hosted_operations` | Hợp đồngfalse |
| Tham số`multimodal_input_binding` | Hợp đồngnull |

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

Mức giá tiêu chuẩn Khi chọn chế độ nhanh

Chế độ Flex

Mức giá tiêu chuẩn Khi chọn chế độ flex

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

Mức giá tiêu chuẩn 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 độ suy luận · cao

Mức giá tiêu chuẩn Khi mức độ suy luận cao

Mức độ suy luận · thấp

Mức giá tiêu chuẩn Khi mức độ suy luận thấp

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

Mức giá tiêu chuẩn Khi mức độ suy luận tối đa

Mức độ suy luận · trung bình

Mức giá tiêu chuẩn Khi mức độ suy luận trung bình

Mức độ suy luận · tối thiểu

Mức giá tiêu chuẩn Khi mức độ suy luận tối thiểu

Mức độ suy luận · xhigh

Mức giá tiêu chuẩn Khi mức độ suy luận là xhigh

#### 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.0002** / 1K token Đầu ra · Token đầu ra **$0.0004** / 1K token Đầu vào · Đọc bộ nhớ đệm **$0.000004** / 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.0002** / 1K token Đầu ra · Token đầu ra **$0.0004** / 1K token Đầu vào · Đọc bộ nhớ đệm **$0.000004** / 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 SDKLuồng Python

```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": "meta/muse-spark-1.3-contributor", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

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='meta/muse-spark-1.3-contributor',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
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"))
```

```python
from openai import OpenAI
import os
from pathlib import Path

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)
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))

with client.chat.completions.stream(model='meta/muse-spark-1.3-contributor',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### 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** [`meta/muse-spark-1.3-contributor`](https://ailoot.ai/models/vi/#m=meta%2Fmuse-spark-1.3-contributor&route=Ultra&caller=meta%2Fmuse-spark-1.3-contributor&fmt=chat)

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

Dùng các đường dẫn phương thức hiển thị ở trên.

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

[`meta/muse-spark-1.3-contributor`](https://ailoot.ai/models/vi/#m=meta%2Fmuse-spark-1.3-contributor&route=Ultra&caller=meta%2Fmuse-spark-1.3-contributor&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `meta/muse-spark-1.3-contributor`

[`meta/muse-spark-1.3-contributor`](https://ailoot.ai/models/vi/#m=meta%2Fmuse-spark-1.3-contributor&route=Ultra&caller=meta%2Fmuse-spark-1.3-contributor&fmt=messages)

Meta /`meta/muse-spark-1.3-contributor`

### Bắt đầu

Muse Spark 1.3 Contributor là phiên bản suy luận trong dòng tác tử và lập trình của Meta dành cho quy trình tạo mẫu. Nhà sản xuất liệt kê đầu vào văn bản, hình ảnh, video và PDF, đầu ra văn bản cùng ngữ cảnh 1,048,576 token, với các mức suy luận đến xhigh thay vì max của Standard 1.3.

Đầ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 meta/muse-spark-1.3-contributor | 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

Mức giá tiêu chuẩn Khi chọn chế độ nhanh

Chế độ Flex

Mức giá tiêu chuẩn Khi chọn chế độ flex

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

Mức giá tiêu chuẩn 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 độ suy luận · cao

Mức giá tiêu chuẩn Khi mức độ suy luận cao

Mức độ suy luận · thấp

Mức giá tiêu chuẩn Khi mức độ suy luận thấp

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

Mức giá tiêu chuẩn Khi mức độ suy luận tối đa

Mức độ suy luận · trung bình

Mức giá tiêu chuẩn Khi mức độ suy luận trung bình

Mức độ suy luận · tối thiểu

Mức giá tiêu chuẩn Khi mức độ suy luận tối thiểu

Mức độ suy luận · xhigh

Mức giá tiêu chuẩn Khi mức độ suy luận là xhigh

#### 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.0002** / 1K token Đầu ra · Token đầu ra **$0.0004** / 1K token Đầu vào · Đọc bộ nhớ đệm **$0.000004** / 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.0002** / 1K token Đầu ra · Token đầu ra **$0.0004** / 1K token Đầu vào · Đọc bộ nhớ đệm **$0.000004** / 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": "meta/muse-spark-1.3-contributor",
  "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': 'meta/muse-spark-1.3-contributor', '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': 'meta/muse-spark-1.3-contributor', '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** [`meta/muse-spark-1.3-contributor`](https://ailoot.ai/models/vi/#m=meta%2Fmuse-spark-1.3-contributor&route=Ultra&caller=meta%2Fmuse-spark-1.3-contributor&fmt=messages)

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

Dùng các đường dẫn phương thức hiển thị ở trên.

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

[`meta/muse-spark-1.3-contributor`](https://ailoot.ai/models/vi/#m=meta%2Fmuse-spark-1.3-contributor&route=Ultra&caller=meta%2Fmuse-spark-1.3-contributor&fmt=messages)

FAQ · Meta: Muse Spark 1.3 Contributor

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

`POST /v1/chat/completions` · `meta/muse-spark-1.3-contributor`: `text` → `text` `POST /v1/messages` · `meta/muse-spark-1.3-contributor`: `text` → `json`, `sse`

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

`POST /v1/chat/completions` · `meta/muse-spark-1.3-contributor`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `meta/muse-spark-1.3-contributor`: `model`, `messages`, `max_tokens`, `stream`

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

`POST /v1/chat/completions` · `meta/muse-spark-1.3-contributor`: `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.
