inclusionAI: Ling 3.1 Flash
Ling 3.1 Flash 是 inclusionAI 用於辦公工作、長時間軟體開發與複雜代理的混合推理模型。其稀疏 560B 參數架構每個 token 啟用約 25B 參數,支援多步規劃、工具互動,以及根據中間結果修訂。
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsinclusionai/ling-3.1-flash - Ailoot Ultra · Anthropic Messages
POST /v1/messagesinclusionai/ling-3.1-flash
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
Ling 3.1 Flash 是 inclusionAI 的混合推理語言模型,適合包含多個階段、而非單次簡短回答的任務。開發商將其定位於日常辦公工作、長時間軟體工程與複雜代理流程。它採用混合專家架構,總參數約 560B,每個 token 啟用約 25B,在大型模型容量與較少的啟用運算量之間取得平衡。
其核心設計目標是維持任務狀態,並在較長工作中修正方向。在連接工具的流程中,模型可規劃多個步驟、解讀中間結果,並在證據改變時修訂下一步。提供精確目標、可用資料與完成定義。例如:「檢視這些事件筆記,找出尚未釐清的原因,並產生依優先順序排列的調查計畫。每項行動都列出判斷是否有效所需的證據。」這能將模糊請求轉為可檢查、可延續的成果。
辦公工作的實用輸入包含來源筆記、從文件擷取的文字、欄位定義清楚的表格,以及報告的預期讀者。說明期間、單位與比較基準。要求管理簡報、報告大綱或重要變化說明等書面成果。例如:「只使用這些季度表格,說明最大的變化,區分觀察值與假設,並撰寫簡報,在結尾列出待解問題。」輸入應保留來源標籤,讓產生的主張能追溯至正確資料。
軟體開發方面,開發商強調跨語言重構、效能最佳化,以及分析程式碼庫中經常使用的部分。以文字提供相關檔案、須保留的行為、相依套件版本,以及失敗輸出或量測資料。實用請求應要求建議修改與評估所需檢查:「重構這個剖析器,同時保留文件所述的輸出格式。說明受影響行為、顯示修訂程式碼,並列出能揭露回歸問題的案例。」效能工作應提供實際效能剖析或時間資料,要求每項建議對應量測到的瓶頸。
專業分析應先蒐集相關規則、定義與證據,再要求建議。Ling 3.1 Flash 的用途包括綜合分散資訊、解讀指標與形成行動建議。要求比較時,應列出假設與仍需取得的資訊,而非無依據的裁定。例如提供數個專案提案,要求以相同準則撰寫決策備忘錄,將有來源支持的觀察與推論後果分開。證據衝突時,要求列出衝突段落,以及可解決衝突的問題。
開發商區分模型 1M token 上下文上限,與官方服務目前開放的 256K 上下文。這些數字描述不同界線。應依適用視窗整理工作資料,並為回覆預留空間;模型層級上限不代表每個介面都接受該輸入量。大型任務應將目標、已完成決策、待解問題與來源參考一併保留。以明確邊界區分文件與程式碼,避免待分析資料被誤認為應遵循的指示。
連接工具的任務應準備清楚的工具說明、預期引數與有用的結果記錄。將實際結果回饋至對話,讓下一個提議建立在觀察之上。要求模型說明傳回結果改變了什麼,以及仍缺少哪些證據。模型面向代理的設計支援這種規劃與回饋模式;周邊應用程式則執行工具步驟並保存結果。指令、程式碼修改或報告若能明確標示為建議、已執行且有記錄,或仍待驗證,會更實用。
Ling 3.1 Flash 屬於語言模型產品線;另有 Ling 3.0 Flash VL,是開發商的視覺模型。此文字任務應準備文字來源內容,並保留其結構、標籤與來源脈絡。指定輸出語言與形式,例如精簡備忘錄、發現事項表格、修補說明或編號計畫。要求模型標示缺漏資訊,並依原始限制核對所需成果。長流程仍須檢查中間結果,否則早期的錯誤假設可能被帶入後續推理,再潤飾成看似可信的最終報告。
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions inclusionai/ling-3.1-flash
inclusionai/ling-3.1-flash入門
Ling 3.1 Flash 是 inclusionAI 用於辦公工作、長時間軟體開發與複雜代理的混合推理模型。其稀疏 560B 參數架構每個 token 啟用約 25B 參數,支援多步規劃、工具互動,以及根據中間結果修訂。
- 接受的輸入
- 文字
- 結果
- 文字
Ailoot 可用 · 輸入與方法
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- 輸入
text- 輸出
text- 輸出格式
- json 或 SSE
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 inclusionai/ling-3.1-flash | 預設值— |
欄位messages | 類型message[] | 要求必填 | 值與限制 項目數下限: 1 | 預設值— |
欄位messages[].role | 類型string | 要求必填 | 值與限制 依模型而定 | 預設值— |
欄位messages[].content | 類型string | 要求選填 | 值與限制 適用條件: 文字對話 | 預設值— |
欄位stream | 類型boolean | 要求選填 | 值與限制 | 預設值false |
輸入素材組合
文字 · UTF8 文字
messages[].content
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數content_type | 規格application/json |
參數required | 規格model, messages |
參數material_types | 規格text |
參數messages | 規格具有 role/content 結構的訊息陣列 |
參數file_material | 規格實際 UTF-8 文件以原文文字插入;不推定檔案 ID |
參數optional_controls | 規格stream |
參數control_scope | 規格文字對話;stream 是布林值,預設為 false。 |
參數output_modalities | 規格text |
參數hosted_operations | 規格false |
參數multimodal_input_binding | 規格null |
方法別名: /chat/completions
生命週期: synchronous_or_streamed
將確切模型 ID 與 messages 一併送出。
上下文長度不是輸出上限。
文字檔案可提供原文文字;圖片/音訊/檔案物件輸入需要精確綁定。
方案
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 未指定 選取快速模式時
- flex 模式
- 未指定 選取 flex 模式時
- 最高推理強度
- 未指定 最高推理強度採用 default 調整值時
Ailoot 費率
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 費率表 | 上下文 Token 數大於 | 上下文 Token 數小於或等於 | 費用 |
|---|---|---|---|---|
| 設定詞元基本費率 | 費率表基本費率 | 上下文 Token 數大於— | 上下文 Token 數小於或等於無上限 | 費用 輸入 · 輸入 Token $0.0006 / 1K Token 輸出 · 輸出 Token $0.0018 / 1K Token 輸入 · 讀取快取 $0.00012 / 1K Token 輸入 · 寫入快取 — / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
| 設定請求長度級距 1 | 費率表— | 上下文 Token 數大於0 | 上下文 Token 數小於或等於無上限 | 費用 輸入 · 輸入 Token $0.0006 / 1K Token 輸出 · 輸出 Token $0.0018 / 1K Token 輸入 · 讀取快取 $0.00012 / 1K Token 輸入 · 寫入快取 — / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
請求範例
Ailoot Ultra · OpenAI Chat
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"inclusionai/ling-3.1-flash","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
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="inclusionai/ling-3.1-flash", 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"))
接收並儲存結果
Ailoot Ultra · OpenAI Chat
json 或 SSE
保留所有已完成的結果
請保留所有完整傳回的回應、檔案與內容區塊。
保留每個候選項及其內容/工具呼叫/推理。SSE 中依候選項/工具索引組合增量,保留最終完成原因與用量。
需要檢查原始回應時
保留請求/回應 ID 與標頭。未提供通用的文字工作擷取 URL。
回應欄位
| 欄位 | 類型 |
|---|---|
欄位choices[].index | 類型integer |
欄位choices[].message.content | 類型string|null |
欄位choices[].message.tool_calls | 類型tool_call[] |
欄位choices[].message.reasoning_content | 類型string |
欄位choices[].message.reasoning_details | 類型object|array |
欄位choices[].finish_reason | 類型string|null |
欄位usage | 類型object |
錯誤與後續步驟
| 回應 | 條件 | 下一步 |
|---|---|---|
回應400 · invalid_request_error | 條件必要欄位、素材表示方式或參數值無效 | 下一步提出新的建立請求前,先修正指定欄位。 |
別名
模型別名
Ailoot Ultra inclusionai/ling-3.1-flash
方法路徑別名
/chat/completions
相關呼叫用 ID
Ailoot Ultra · Anthropic Messages POST /v1/messages inclusionai/ling-3.1-flash
inclusionai/ling-3.1-flash入門
Ling 3.1 Flash 是 inclusionAI 用於辦公工作、長時間軟體開發與複雜代理的混合推理模型。其稀疏 560B 參數架構每個 token 啟用約 25B 參數,支援多步規劃、工具互動,以及根據中間結果修訂。
- 接受的輸入
- 文字
- 結果
- json · sse
Ailoot 可用 · 輸入與方法
Ailoot Ultra · Anthropic Messages POST /v1/messages
- 輸入
text- 輸出
json,sse- 輸出格式
- JSON 或 SSE
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 inclusionai/ling-3.1-flash | 預設值— |
欄位messages | 類型message[] | 要求必填 | 值與限制 | 預設值— |
欄位messages[].role | 類型string | 要求必填 | 值與限制 user, assistant | 預設值— |
欄位messages[].content | 類型string | 要求必填 | 值與限制 | 預設值— |
欄位max_tokens | 類型integer | 要求必填 | 值與限制 | 預設值— |
欄位stream | 類型boolean | 要求選填 | 值與限制 | 預設值false |
輸入素材組合
文字 · UTF-8 文字
messages[].content 字串
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數content_type | 規格application/json |
參數required | 規格model, messages, max_tokens |
參數optional_controls | 規格stream |
參數material_types | 規格text |
參數text_file_material | 規格讀取實際 UTF-8 文件,將文字放入指定的 input 或訊息內容字串。 |
生命週期: synchronous_or_streamed
方案
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 未指定 選取快速模式時
- flex 模式
- 未指定 選取 flex 模式時
- 最高推理強度
- 未指定 最高推理強度採用 default 調整值時
Ailoot 費率
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 費率表 | 上下文 Token 數大於 | 上下文 Token 數小於或等於 | 費用 |
|---|---|---|---|---|
| 設定詞元基本費率 | 費率表基本費率 | 上下文 Token 數大於— | 上下文 Token 數小於或等於無上限 | 費用 輸入 · 輸入 Token $0.0006 / 1K Token 輸出 · 輸出 Token $0.0018 / 1K Token 輸入 · 讀取快取 $0.00012 / 1K Token 輸入 · 寫入快取 — / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
| 設定請求長度級距 1 | 費率表— | 上下文 Token 數大於0 | 上下文 Token 數小於或等於無上限 | 費用 輸入 · 輸入 Token $0.0006 / 1K Token 輸出 · 輸出 Token $0.0018 / 1K Token 輸入 · 讀取快取 $0.00012 / 1K Token 輸入 · 寫入快取 — / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
請求範例
Ailoot Ultra · Anthropic Messages
{
"model": "inclusionai/ling-3.1-flash",
"max_tokens": 128,
"messages": [
{
"role": "user",
"content": "Summarize the incident report."
}
],
"stream": false
}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': 'inclusionai/ling-3.1-flash', '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
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': 'inclusionai/ling-3.1-flash', '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))
接收並儲存結果
Ailoot Ultra · Anthropic Messages
JSON 或 SSE
保留所有已完成的結果
請保留所有完整傳回的回應、檔案與內容區塊。
保留所有內容區塊、思考簽章與實際工具使用 ID。組合所有 SSE 區塊增量;第一個文字區塊不是完整輸出。
需要檢查原始回應時
保留請求/回應 ID 與標頭。未提供通用的文字工作擷取 URL。
回應欄位
| 欄位 | 類型 |
|---|---|
欄位id | 類型string |
欄位model | 類型string |
欄位content[] | 類型text|thinking|tool_use|other content block |
欄位stop_reason | 類型string|null |
欄位usage | 類型object |
錯誤與後續步驟
| 回應 | 條件 | 下一步 |
|---|---|---|
回應400 · invalid_request_error | 條件必要欄位、素材表示方式或參數值無效 | 下一步提出新的建立請求前,先修正指定欄位。 |
別名
模型別名
Ailoot Ultra inclusionai/ling-3.1-flash
方法路徑別名
/chat/completions
相關呼叫用 ID
FAQ · inclusionAI: Ling 3.1 Flash
- 可以使用哪些輸入與結果?
POST /v1/chat/completions·inclusionai/ling-3.1-flash:text→textPOST /v1/messages·inclusionai/ling-3.1-flash:text→json,sse- 請求使用哪些欄位?
POST /v1/chat/completions·inclusionai/ling-3.1-flash:model,messages,streamPOST /v1/messages·inclusionai/ling-3.1-flash:model,messages,max_tokens,stream- 適用哪些限制?
POST /v1/chat/completions·inclusionai/ling-3.1-flash:messages.min_items:1